네트워크

네트워크 시작하기 - 3(인캡슐레이션과 디캡슐레이션)

우잉~ 2024. 10. 30. 19:38

인캡슐레이션과 디캡슐레이션

 

상위 계층에서 하위 계층으로 데이터를 보내면 물리 계층에서 전기 신호 형태로 네트워크를 통해 신호를 보낸다.

데이터를 받으면 하위 계층에서 다시 상위 계층으로 데이터를 보낸다.

 

인캡슐레이션: 데이터를 하위 계층으로 보내는 과정

디캡슐레이션: 데이터를 상위 계층으로 보내는 과정

 

인캡슐레이션과 디캡슐레이션

 

현대 네트워크는 패킷 기반 네트워크

패킷(Packet)이란? 데이터를 전송하기 쉽게 작은 단위로 쪼개는데, 이 작은 단위를 패킷이라고 한다.

 

데이터를 패킷으로 쪼개서 목적지로 보내고, 받을 때는 다시 큰 데이터 형태로 결합하여 사용한다.

 

인캡슐레이션과 디캡슐레이션을 더 자세하게 설명하자면

인캡슐레이션: 애플리케이션에서 데이터를 1~4계층으로 내려보내면서 * 패킷에 데이터를 넣을 수 있도록 분할하는 과정으로 즉, 정보가 추가되어 가는 과정이다.

디캡슐레이션: 물리 계층에서 전송한 전기 신호를 데이터 형태로 변환하면서 추가된 정보를 제거하는 과정이다.

 

* 패킷에 데이터를 넣을 수 있도록 분할하는 과정이 대체 뭐냐? → 4계층, 3계층, 2계층에서 각각 자신이 필요한 정보를 추가할 수 있도록 적절한 크기로 자르는 것

 

각 계층의 네트워크 전송 위한 정보를 넣을 수 있는 부분을 헤더(Header)라고 한다.

각 계층의 정보(헤더)를 담은 채로 아래 계층으로 이동한다.

데이터 전송 과정

 

디캡슐레이션은 반대로 받은 전기 신호를 데이터 형태로 만들어 위로 올려보낸다.

물리 계층에서 전달 받은 데이터의 2계층 헤더를 확인하는 과정이 이루어지는데, 만약 목적지가 자신이 아니라면 패킷을 버리고, 자신에게 온 게 맞다면 3계층으로 정보를 올려보낸다. → 이때 2계층의 정보는 필요 없으므로 2계층 헤더를 벗겨내고 올려준다.

3, 4계층에서도 같은 과정(헤더 벗김)을 거치게 되며 데이터를 애플리케이션에 올려보내 준다.

 

2, 3, 4계층의 헤더 정보는 전부 다르다.

 

2, 3, 4계층 헤더 정보

 

복잡한 헤더에도 꼭 2가지 정보는 반드시 포함되어야 한다.

1. 현재 계층에서 정의하는 정보

- 2계층: 출발지, 도착지 MAC 주소

- 3계층: 출발지, 도착지 IP 주소

- 4계층: 시퀀스 넘버, 에크 넘버

 

2. 상위 프로토콜 지시자

- 어떤 프로토콜로 올려보내 줘야 하는지 결정하기 위함

- 4계층으로 데이터를 올려보낼 때 TCP로 보내야 하는지? UDP로 보내야하는지? 구분이 안 되어 있으면 어느 프로토콜로 보내야하는지 모르기 때문이다. 

- 상위 프로토콜 지시자는 프로토콜 번호, 포트 번호, 이더 타입으로 표현할 수 있다.

 

프로토콜 번호

프로토콜 번호 프로토콜
1 ICMP(Internet Control Message)
2 IGMP(Internet Group Management)
6 TCP(Transmission Control)
17 UDP(User Datagram)
50 ESP(Encap Security Payload)
51 AH(Authentication Header)
58 IPv6용 ICMP
113 FC(Fibre Channel)

 

포트 번호

포트 번호 서비스
TCP 20, 21 FTP (File Transfer Protocol)
TCP 22 SSH (Secure Shell)
TCP 23 TELNET (Telecommunication Network)
TCP 25 SMTP (Simple Mail Transfer Protocol)
UDP 49 TACACS (Terminal Access Controller Access-Control System)
TCP 53/UDP 53 DNS (Domain Name System)
UDP 67, 68 BOOTP (Bootstrap Protocol)
TCP 80/UDP 80 HTTP (HyperText Transfer Protocol)
UDP 123 NTP (Network Time Protocol)
UDP 161, 162 SNMP (Simple Network Management Protocol)
TCP 443 HTTPS (HyperText Transfer Protocol Secure)
TCP 445/UDP 445 Microsoft-DS (Microsoft Directory Services)

 

이더 타입

이더 타입(Ether Type) 프로토콜
0x0800 IPv4 (Internet Protocol version 4)
0x0806 ARP (Address Resolution Protocol)
0x22F3 IETF TRILL Protocol
0x8035 RARP (Reverse ARP)
0x8100 VLAN–tagged frame (802.1Q)
0x88B8 AH (Authentication Header)
0x86DD IPv6 (Internet Protocol version 6)
0x88CC LLDP (Link Layer Discovery Protocol)
0x8906 FCoE (Fibre Channel over Ethernet)
0x8915 RoCE (RDMA over Converged Ethernet)

 

 

* 애플리케이션에서 데이터가 4계층으로 내려올 때 적절한 크기로 쪼개질 수 있도록 유도하는 값을 MMS(Maximum Segment Size)라고 부른다.

*네트워크에서 한 번에 보낼 수 있는 데이터 크기를 MTU(Maximum Transmission Unit)이라고 부르며, 일반적인 이더넷에서 수용할 수 있는 크기는 1,500바이트이다. Jumbo Frame(얘는 9,000바이트까지 MTU를 확장시켜줌!)은 제외!