WebSocket 을 공부하던 도중, TCP/IP Model 과 OSI 7계층 Model 에 대해 공부하여야 겠다고 판단하여 우선 OSI 7계층 Model 을 공부하였음.
OSI 7계층 Model 과 TCP/IP Model 은 다음과 같이 존재함.
그렇다면 왜 계층이 이렇게 나누어졌는가를 생각해보았다.
- 통신이 일어나는 과정을 단계적으로 파악하기 위해서.
- 특정한 곳의 에러가 다른 단계로 퍼지지 않게 하기 위해서.
라고 판단하였다. 요즘은 TCP/IP Model 이 OSI 7계층 Model 보다는 더 많이 자주 사용되지만, 기본 base 가 없으면 활용도 할 수 없기 때문에 기본부터 들어가보겠다.
OSI (Open Systems Interconnection Reference Model) Layer 7 계층
1. Physical Layer
- Network node 간의 물리적 케이블 또는 무선 연결을 담당.
- 물리적으로 연결된 두 대의 computer 가 0과 1의 나열을 주고받을 수 있게 해주는 module (function)
2. Data Link Layer
- 장치 간 신호를 전달하는 Physical Layer 를 이용하여 Network node 간 데이터를 전송함.
- framing 이라는 기술을 사용하여 프레임 (Frames, 1111 ~ 0000) 으로 감싼다.
- 같은 network 에 있는 여러 대의 computer 들이 데이터를 주고받기 위해서 필요한 module (function)
- physical address 인 mac address 를 통해 통신을 하게 됨.
- Network protocol 을 식별하고 오류 검사를 수행하고, frame 을 동기화하는 LLC (논리적 연결 제어, Logical Link Control), MAC (매체 접근 제어, Media Access Control) 주소를 사용하여 데이터 전송 및 수신 권한을 정의하는 MAC의 두 부계층으로 구성되어있음.
3. Network Layer
- Data Link 에서 받은 frame 내부에 포함된 IP address 를 기반으로 원하는 목적지를 전달하는 역할.
- data 를 패킷 (Packets, 출발지, 목적지 IP, 기타) 으로 감싼다.
- logical address 인 IP address 를 통해 routing (길찾기) 하고 자신의 다음 router 에게 데이터를 넘겨준다 (forwarding)
- router 의 기능 대부분이 여기 network layer 에 자리잡는다. 다른 여러 router 를 통한 routing 을 비롯한 packet forwarding 을 담당함.
- OS Kernel 이 예시이다.
4. Transport Layer
- Port number 를 사용하여 도착지 컴퓨터의 최종 도착지인 Process 까지 data 가 도달하게 하는 module (function)
- data 를 세그먼트 (Segment, 출발지, 목적지 PORT, 전송 제어, 순서 검증 정보)로 감싼다.
- TCP 3-way handshake 는 실제로 연결된 게 아니고, 연결이 되었나보다 처럼 논리적으로 연결이 된 것 (물리적 연결된 랜선과는 다른 느낌)
- OS Kernel 을 예시로 들 수 있음.
5. Session Layer
- 이 이상부터는 모두 Data 로 표현됨.
- 기기, 컴퓨터 또는 서버 간의 대화 가 필요하면 session 이라는 통신 채널을 만들어야 함.
- session 을 열고, data 가 전송되는 동안 session 이 열려 있고, 작동하는지 확인하며 통신이 종료되면 session 을 닫는 역할을 함.
- checkpoint 를 두어 연결이 손실되는 경우 마지막 check point 에서 연결 복구를 시도함.
-> 동기화 기능을 제공함.
6. Presentation Layer
- Application Layer 에 대한 데이터를 준비함. 다른 장치가 올바르게 수신되도록 Data 를 encoding, 암호화 및 압축하는 방식 정의
- 반대로 session layer 에 대한 데이터를 준비함.
- Application Layer 의 data 표현에서 독립적인 부분을 나타냄.
- 일반적으로 응용프로그램 형식을 준비 또는 network 형식으로 변환하거나 network 형식을 응용프로그램 형식으로 변환하는 것.
-> 응용프로그램이나 network 를 위해 데이터를 표현함.
7. Application Layer
- 사용자에게 보여지는 부분으로, Google chrome, safari 등의 web browser 와 zoom 등의 응용프로그램이 대표적.
- 각 응용프로그램 (Process) 는 Port number 를 부여받음.
Reference
https://livenow14.tistory.com/54?category=993618