25. OSI계층과 프로토콜
이번 네트워크 프로그래밍에서 표현할 프로그램에 대한 이야기는 모두 끝났다. 마지막으로 첫 시간에 소개한 OSI 7계층에 대한 이야기와 주요 프로토콜에 대한 소개를 하며 마쳐볼까 한다. 만약 이전 글들을 모두 읽었다면 다시 보는 OSI 계층이 다른 느낌으로 올 것이 분명하다.
- 물리 계층 (Physical Layer)
OSI 계층 중 가장 낮은 계층으로 네트워크에서 다른 네트워크로 전달되는 하드웨어로 구성된다. 물리 계층의 데이터 단위는 비트(Bits)이다. 데이터 계층에서 받은 데이터를 기계가 알아들을 수 있는 비트로 변환되어야 한다. 전자기적 신호로 구성되므로 매우 복잡한 기술을 필요로 한다.
- 물리 계층의 데이터 단위 : 비트(Bits)
- 물리 계층의 프로토콜(장비) : 전선, 전파, 도파관
- 데이터 링크 계층 (Data Link Layer)
데이터 링크 계층은 물리 계층으로 부터 받은 정보의 주소를 할당하는 역할을 한다. 자신의 인접한 노드의 주소를 할당하는 역할을 한다. 혹은 데이터의 오류가 감지되는 경우 해당 데이터를 누락 시키는 기능도 수행한다.
- 데이터 링크 계층의 데이터 단위 : 프레임(Frame)
- 데이터 링크 계층의 프로토콜(장비) : 무선 인터넷, 이더넷, ISDN
- 네트워크 계층 (Network Layer)
네트워크 계층은 전송 계층 및 데이터 링크 계층으로부터 받은 데이터를 패킷 형태로 변환한다. 네트워크 계층의 기능은 라우팅이다. 목적지 네트워크로 가기 위헤 다음으로 진행 되어야할 네트워크 노드의 방향을 지정해준다.
네트워크 계층의 데이터 단위 : 패킷(Packet)
- 네트워크 계층의 프로토콜(장비) : IPv4, IPv6, ICMP
- 전송 계층 (Transport Layer)
전송 계층은 데이터의 송,수신자와의 연결에 대한 프로토콜이다. 앞서 배웠던 TCP와 UDP를 생각하면 쉽다. TCP가 데이터를 송신해 받는 사람이 데이터를 받을 준비가 되어 있는 지 확인하고, 준비가 되어 있으면 연결을 유지하며 양측간의 송수신 작업을 시작하기 때문이다.
전송 계층의 데이터 단위 : 세그먼트(Segment)
- 전송 계층의 프로토콜(장비) : TCP, UDP
- 세션 계층 (Session Layer)
세션 계층은 전송 계층에서 받은 데이터를 응용프로그램과의 연결을 유지하기 위한 계층이다. 전송 계층으로부터 세그먼트로 받은 데이터를 메시지로 만들어 응용 프로그램에 전달할 준비를 한다. 보안 프로토콜도 이 계층에서 발생한다.
세션 계층의 데이터 단위 : 메시지(Message)
- 세션 계층의 프로토콜(장비) : ADSP, TLS, SSL
- 표현 계층 (Presentation Layer)
세션 계층으로 부터 받은 메시지를 응용프로그램에 전달하는 기능을 수행한다. 응용 프로그램에서 데이터 사용이 가능하도록 데이터에 포맷을 변경한다. 만약 수신 받은 데이터를 아스키 형식으로 맞게 변환이 필요하다면 이 계층에서 수행하게 된다.
표현 계층의 데이터 단위 : 메시지(Message)
- 표현 계층의 프로토콜(장비) : XDR, SMB
- 응용 계층 (Application Layer)
네트워크 데이터를 우리가 볼 수 있도록 변환을 해준다. 대표적으로 웹 브라우저로 데이터를 띄우는 과정을 의미한다. 우리가 브라우저에 주소를 입력하거나, HTML 형식의 파일을 웹 사이트로 만드는 역할이 이 계층에 속한다.
응용 계층의 데이터 단위 : 메시지(Message)
- 응용 계층의 프로토콜(장비) : HTTP, SMTP, FTP, SSH, 텔넷