1. OSI 7계층은 왜 만들어졌을까?
- Open System Interconnection, 국제표준화기구(ISO)가 1977년에 정의한 국제 통신 표준 규약을 의미
- 통신의 접속에서부터 완료까지의 과정을 7단게로 구분, 정의
OSI 7계층을 발표하게된 과정
● 네트워크의 시작
- 서로 다른 컴퓨터 사이에 정보를 주고받을 수 있게 됨
1900년대 중반 네트워크가 시작되었다. 이전에는 컴퓨터 사이에서 데이터를 주고받을 수 있는 수단이 없었기 때문에 어떤 연산을 수행할 때 컴퓨터 하나의 본체 안에서만 수행을 했다. 그렇기 때문에 컴퓨터가 연산할 수 있는 양에는 한계가 있었고 멀리 떨어져 있는 컴퓨터에 데이터를 전달하기 위해서는 하드디스크에 담아서 직접 이송을 해줘야 된다던가 하는 어려움이 있었다. 이 때 네트워크가 만들어지게 되면서 멀리 떨어져 있는 컴퓨터들 사이에서 데이터를 주고받을 수 있게 되었고 더 많은 연산들을 서로 공통적으로 할 수 있게 되면서 비약적인 발전이 시작되었다.
● 프로토콜의 발전
- 여러 회사에서 각각의 프로토콜을 개발함 → 통일된 규정이 없어 문제 발생
그러면서 자연스럽게 프로토콜이 발전하였다. 프로토콜은 컴퓨터와 컴퓨터 사이에서 서로 데이터를 송신하는 과정을 의미하는데, 여러 각각의 컴퓨터 회사에서 독자적으로 프로토콜을 개발하면서 서로 경쟁하며 발전하기 시작하였다. 이때 문제가 한 가지 발생했었는데, 바로 통일된 규정이 없었다는 것이다.
이 문제는 사람으로 치면 서로 다른 언어를 사용하는 사람들끼리 대화를 시도하는 상황인데, 만약에 서로 다른 언어를 사용하는 사람들이 대화를 시도할 경우 아무리 자기가 가진 정보를 주고 싶어도 이해를 할 수 없으니 대화가 성립하지 않는다.
● 표준의 탄생
- 국제표준기국에서 표준 네트워크 프로토콜, OSI를 발표함
그렇기 때문에 국제표준기구인 ISO에서 표준 규약인 OSI를 발표하게 된 것이다.
이제 공용어가 탄생하면서 사람들은 서로 같은 규칙의 같은 언어를 사용하면서 데이터를 주고받는 것이 가능해졌다.
다시 한 번 OSI를 설명하자면 OSI는 Open System Interconnection의 약자로 '서로 다른 컴퓨터들이 데이터를 주고받을 수 있도록 표준화된 규칙'을 의미한다.
2. OSI 7계층은 어떻게 동작할까?
OSI 7계층은 위 그림과 같이 7계층으로 이루어져 있다. 가장 밑에서부터 물리계층, 두 번째 데이터 링크 계층, 세 번째 네트워크 계층, 네 번째 전송계층, 다섯 번째 세션계층과 여섯 번째 표현계층, 마지막으로 어플리케이션 응용계층으로 이루어져 있다.
7계층을 어떤 클라이언트가 "Hi"라는 메시지를 전달한다고 가정하고 예시를 들어 설명하고자 한다.
● Application Layer (응용 계층)
- 사용자와 직접 연결되어 네트워크 접근을 돕는 계층
- 이용자에게 데이터에 접근할 수 있도록 하는 인터페이스 제공
- 사용자로부터 입력 받은 정보를 바로 아래층, 표현계층에서 주고받을 수 있도록 하는 기능 제공
● Presentation Layer (표현 계층)
- 데이터를 응용계층에서 사용하는 표현으로 변환해주는 계층
- 데이터의 인코딩과 디코딩이 이루어진다.
- Ex)문자열을 ASCII 코드로 변환
● Session Layer (세션 계층)
- 컴퓨터간 연결인 세션의 생성과 유지를 관리하는 계층
- 오류가 발생 시 복구 역할을 수행
- Session : 프로세스들 사이에서 통신을 하기 위해 메시지 교환을 통해 서로를 인식한 이후부터 통신을 마칠 때까지의 기간
● Transport Layer (전송 계층)
- 데이터를 신뢰성 있게 전송하기 위한 계층
- 패킷으로 나누어 전송하고, 실패할 경우 다시 패킷을 보내는 등의 역할을 수행
- TCP (Transmission Control Protocol)
- UDP (User Datagram Protocol)
*참고 : [10분 테코톡] 칙촉의 TCP/UDP 정리
실제로 이렇게 작은 데이터를 분리를 하지는 않지만 예시를 위해서 나눠보았다. 원래 72와 105가 담겨있던 데이터가 72라는 패킷과 105라는 패킷으로 나누어져 전송되는 것을 확인할 수 있다.
● Network Layer (네트워크 계층)
- 데이터 전송 경로, 순서 등을 결정 하는 계층
- 데이터를 Packet 단위로 분할하여 전송하고, 수신시 합치는 역할을 한다.
- IP 주소를 사용하여 데이터를 전송한다.
● Data Link Layer (데이터 링크 계층)
- 물리적인 기기들 사이에서 데이터를 전송하는 계층
Network Layer와 큰 차이가 없어보일 수 있지만 Network Layer는 끝에서 끝까지 오는 전체적인 경로에 관한 개념이었다면 Data Link Layer는 기기와 기기 사이에서 물리적으로 연결되어 있는 기기 사이의 전송을 담당하는 계층이라고 할 수 있다.
- 패킷을 프레임(frame)으로 구성하고, 각 프레임에 대한 에러 검사와 수정을 수행
- MAC 주소를 사용하여 데이터를 전송한다.
● Physical Layer (물리 계층)
- 데이터를 물리적인 신호로 변환하는 계층
- 단순 전달만 수행하며, 데이터를 검증하지 않음
- 비트 단위의 전기 신호를 전달한다.
비트 단위라고 하면 저희같은 개발자에게는 1과 0으로 이루어진 숫자가 더 익숙하겠지만 실제로 이는 물리 계층이기 때문에 on과 off로 이루어진 전기적인 신호로 데이터를 전달해준다.
위 내용을 다신 정리해보자
먼저 어떤 클라이언트가 "Hi"라는 메시지를 보내려고 한다. Application Layer에서 그 데이터를 받고 Presentation Layer에서 이 "Hi"라는 표현을 컴퓨터가 이해할 수 있는 아스키 코드로 변환을 해준다. 다음에 Session Layer에서 다른 컴퓨터와의 연결을 담당하는 세션을 열고 그 열려있는 세션 사이에서 Transport Layer가 그 데이터를 각각의 패킷으로 분할해 전송을 시작한다. 전송할 때는 Network Layer가 올바른 경로를 탐색을 해주고 그에 따라서 Data Link Layer가 기기와 기기 사이에서 데이터를 전송한다. 이때 이 기기와 기기 사이에서 전송되는 데이터는 Physical Layer에서 전기적인 신호로 변경되어 전달된다. 이렇게 "Hi"에서부터 비트 신호로 변경되는 이 과정을 통틀어서 캡슐화라고 부른다.
다시 수신자로 건너가서 수신자의 컴퓨터로 다시 번역이 되게 된다. 이때 비트에서 "Hi"로 변경되는 이 과정을 역캡슐화라고 부른다.
3. 왜 우리는 OSI 7계층을 알아야 할까?
OSI 7계층의 특징
- 네트워크 프로토콜을 나타내는 표준 규약이다.
- 네트워크 과정이 7개의 계층으로 모듈화 되어있다.
-- 각 계층은 특정한 역할과 기증을 수행한다.
-- 각 계층은 다른 계층과 독립적으로 동작한다.
-- 각 계층은 인접한 계층과만 통신하여, 다른 계층에 미치는 영향을 최소화 한다.
OSI 7계층을 알아야 하는 이유
데이터 전송 과정을 단계적으로 이해함으로써, 네트워크 기반 서비스를 설계할 수 있다.
각 계층의 역할과 발생할 수 있는 문제를 이해함으로써, 네트워크 문제를 빠르게 추적하고 해결할 수 있다.
참고
https://www.youtube.com/watch?v=wuOzMvNEzAg&ab_channel=%EC%9A%B0%EC%95%84%ED%95%9C%ED%85%8C%ED%81%AC
'개발 관련 강의 정리 > 10분 테코톡' 카테고리의 다른 글
[10분 테코톡] 지토의 Auto Configuration 정리 (0) | 2023.06.27 |
---|---|
[10분 테코톡] 😼 피카의 TDD와 단위테스트 정리 (0) | 2023.06.26 |
[10분 테코톡] 🌱 시드의 제네릭 정리 (0) | 2023.06.24 |
[10분 테코톡] 폴로의 Forward proxy vs Reverse proxy vs Load Balancer 정리 (0) | 2023.06.23 |
[10분 테코톡] 레고의 Ajax 정리 (0) | 2023.06.22 |
댓글