메시지는 네트워크를 통해 주고받는 정보를 의미한다. 그 메시지는 패킷 단위로 주고받게 된다.
패킷이란 패킷 교환 네트워크에서 주고받는 데이터 단위이다.
2GB 짜리 파일이 있다면 이것이 통째로 옮겨가는 것이 아닌 패킷 단위로 쪼개져서 전송되고, 전송된 목적지에서 쪼개진 패킷이 재조립되서 도착한다.
이렇게 주고받는 정보를 패킷 단위로 주고받는 네트워크가 바로 패킷 교환 네트워크다.
그리고 오늘날 인터넷에서 주로 활용되는 네트워크이기도 하다.
중간 노드로써 패킷을 교환하는 역할이다. 패킷을 전달할 때, 하나의 경로만으로 보내는 것이 아닌 여러 경로로 보낼 수 있다.
패킷 교환 네트워크와 상반되는 개념이다. 정해져 있는 링크로만 통신하는 네트워크로써, 사전에 연결 수립 작업을 진행하여 그 연결로만 통신하는 네트워크다.
내가 친구와 메시지를 주고받는다고 생각해보자. 이 과정을 세세하게 나누면 계층으로 표현할 수 있다. 계층이란, 네트워크 송수신 과정에서의 정형화된 단계를 의미한다.
내가 메시지를 보내면 4계층부터 1계층 순으로 메시지를 전송하게 되고, 친구는 1계층부터 4계층 순으로 메시지를 전달받게 된다.
반대로 친구가 메시지를 보내면 4계층부터 1계층 순으로 메시지를 전송하고, 나는 1계층부터 4계층 순으로 메시지를 전달받게 된다.
대표적으로 OSI 모델과 TCP/IP 모델이 있다.
총 7계층으로 이루어져 있다. 이론적인 참조를 위해 만들어진 모델이다.
OSI 모델과 유사하나, 만들어진 목적이 다르다.
OSI 모델은 이론적인 참조를 위해 만들어졌고, TCP/IP 모델은 실제 구현을 위해 만들어진 모델이다.
즉, OSI 모델은 이론적, 이상적인 설계에 집중되어 있고 TCP/IP 모델은 실제 구현에 집중되어 있다.
내가 친구와 메시지를 주고받을 때, 캡슐화와 역캡슐화 과정을 거치면서 주고받는다.
메시지를 전달할 때, 송신 측에서는 높은 계층에서 낮은 계층으로, 수신 측에서는 낮은 계층에서 높은 계층으로 메시지가 이동한다.
이 과정에서 캡슐화가 이루어진다.
계층마다 주로 사용되는 프로토콜이 다른데 (네트워크 계층에서는 IP, 전송 계층에서는 TCP, 응용 계층에서는 HTTP), 계층을 지날수록 프로토콜의 목적에 따라 헤더가 추가된다.
즉, 응용 계층에 있던 헤더와 페이로드가 전송 계층을 지나면서 하나의 페이로드로 합쳐지고, 새 헤더가 추가된다. 전송 계층에 있던 헤더와 페이로드가 네트워크 계층을 지나면서 하나의 페이로드로 합쳐지고 새 헤더가 추가된다. 그리고 네트워크 계층에 있던 헤더와 페이로드가 데이터 링크 계층을 지나면서 하나의 페이로드로 합쳐지고, 새 헤더와 트레일러가 추가된다.
이렇게 계층을 지나면 지날수록 헤더의 내용이 추가되는 과정이 캡슐화 이다.
즉, 캡슐화란
**상위 계층으로부터 내려받은 패킷을 페이로드로 삼아, 상위 계층으로부터 받은 정보에 걸맞는 헤더 혹은 트레일러를 덧붙이는 과정
**
을 의미한다.
위에서 설명한 캡슐화 과정에서 붙인 헤더 및 트레일러는 각 계층에서 제거하는 것을 의미한다. 이는 수신하는 쪽 입장에서 진행된다. 최종적으로 수신받고자 하는 데이터만 수신받는 것이 역캡슐화다.
PDU란 캡슐화 과정에서 생겨난 헤더와 페이로드(캡슐화된 데이터들)를 의미하는데, 각 계층에서 PDU를 부르는 지칭이 다르다.
OSI 계층에서는 아래와 같이 부른다.