encapsulation, decapsulation의 간단한 이해
OSI 7 계층을 생각해봅시다.
- 보내는 입장에서는 애플리케이션 계층에서 데이터를 쏘고, 물리적 계층을 지나 다른 기기로 신호를 전송합니다.
- 받는 입장에서는 물리적 계층을 지나 애플리케이션 계층에서 정보를 받아봅니다.
보내는 부분은 데이터 => 전기 신호를 '인캡슐레이션'
받는 부분은 전기 신호 => 데이터를 '디캡슐레이션'
조금 더 자세히 알아봅시다.
[인캡슐레이션]
어플리케이션에서 데이터를 보내려고 합니다.
네트워크 상황을 고려하여 적절한 데이터를 쪼개고 4계층, 3계층, 2계층으로 내려가면서 각각 헤더를 붙입니다.
=> 네트워크 상황을 고려하여 데이터를 쪼개는 방법은 후술하겠습니다.
[디캡슐레이션]
물리적 계층을 통해 받은 전기 신호에서 시작합니다.
2계층에서 헤더를 해석하여 NIC의 MAC 주소와 일치하지 않으면 패킷을 버리고 아니면 올려보냅니다. 이 과정에서 2계층에서 붙은 헤더는 이미 점검하는데 사용했으므로 쓸모 없어졌으니 2계층 헤더를 제거합니다.
3계층에서는 IP 주소를 보고 자신에게 온 것이 맞는지 확인합니다.
TCP/IP 에서도 마찬가지로 같은 과정을 거칩니다. 아래와 같이 표현될 수 있습니다.
그렇다면 2, 3, 4 계층에서 붙는 헤더들은 무엇이 있는가?
encapsulation 과정에서 붙는 헤더는 너무 많아서 다 알기 힘듭니다.
프로토콜마다 붙는 헤더의 정보가 다르기도 합니다. 그러나 이러한 정보 중 반드시 다음 두 정보는 붙어야 합니다.
1. 현재 계층에서 정의하는 정보
2. 상위 프로토콜 지시자
이게 무슨 말이냐?
현재 계층에서 정의하는 정보는 다음과 같습니다.
4계층, 트랜스포트 계층 : seq, ack를 넣어서 패킷의 순서를 넣습니다.
3계층, 네트워크 계층 : 출발지, 도착지 ip 주소를 넣습니다.
2계층, 데이터 링크 계층 : 출발지, 도착지 MAC 주소를 넣습니다.
그렇다면 '상위 프로토콜 지시자'는 또 무엇인가?
3계층의 ip는 4계층에서 tcp, udp로 나뉘고, 더 상위로 올라가면 ftp, http, pop3 등 더 다양한 프로토콜로 나뉩니다.
따라서, 디캡슐레이션하는 과정에서 상위 프로토콜이 무엇인지 알아야 적절한 프로토콜로 올릴 수 있게 됩니다.
'상위 프로토콜 지시자'는 각 계층마다 부르는 용어가 다른데
4계층은 포트 번호, 3계층은 프로토콜 번호, 2계층은 이더 타입이라고 부릅니다.
네트워크 상황에 데이터를 적절하게 쪼개는 방식은 무엇인가?
네트워크에서 수용할 수 있는 크기를 산정하여 적절한 크기로 쪼개질 수 있도록 유도하는데 이 값을 MSS라 합니다
Maximum Segment Size의 약자입니다.
네트워크에 한 번에 보낼 수 있는 데이터의 크기를 MTU(Maximum Transmission Unit)이라고 부릅니다.
일반적인 이더넷에서 수용할 수 있는 크기는 1500 바이트입니다.
MTU는 2계층 데이터 값, MSS는 4계층에서 가질 수 있는 최대 데이터 값입니다.
'🌐 Network > 🌐 Network' 카테고리의 다른 글
통신 방식과 MAC 주소, IP주소(CIDR 기반, 유효 IP 범위) (0) | 2021.03.11 |
---|---|
규모에 따른 네트워크 구분 및 네트워크 장비들에 대한 이해 (0) | 2021.03.08 |
OSI 7계층에 대한 이해 (0) | 2021.03.08 |
IP class, (서브)넷마스크, 네트워크 주소, 서브네팅 (0) | 2021.02.21 |
3 tier 구성에서 Web Server와 WAS의 차이는 무엇인가? (0) | 2021.02.01 |