네트워크

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

25G 2023. 11. 19. 17:20

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

 

상위 계층에서 하위 계층으로 데이터를 보내면 물리 계층에서 전기 신호 형태로 네트워크를 통해 신호를 보낸다. 받는 쪽에서 다시 하위 계층에서 상위 계층으로 데이터를 보낸다. 이렇게 데이터를 보내는과정을 인캡술려이션, 받는과정을 디캡슐레이션이라고 부릅니다.

 

현대 네트워크는 대부분 패킷 기반 네트워크로 이루어져 있습니다. 패킷 네트워크는 데이터를 패킷이라는 단위로 쪼개서 보내는데 이런 기법으로 하나의 통신이 회선 전체를 점유하지 않고 동시에 여러단말이 통신하도록 할 수 있게 해주는겁니다. 그럼 쪼개진 데이터를 받는쪽에서 결합해서 사용하는거죠

 

애플리케이션에서 데이터를 1~4계층으로 내려보내면서 패킷에 데이터를 넣을 수 있도록 분할하는데 이과정을 인캡슐레이션이라고 부릅니다.

네트워크 상황을 고려해 적절한 크기로 데이터를 쪼개고 4계층 부터는 네트워크 전송을 위한 정보를 헤더에 붙여 넣습니다.

반대로 받는 쪽에서 디캡슐레이션을 해야하는데(패킷데이터를 합치기위해) 받은 전기 신호(2진데이터)를 데이터 형태로 만들어 2계층으로 올려보냅니다. 2개층에서는 송신자가 작성한 2계층 헤더에 포함된 정보를 확인합니다. 만약 2계층에 적힌 정보 중 목적지가 자신이 아니라면 자신에게 온 패킷이 아니므로 버립니다. 이때 랜카드가 이 역할을 수행합니다.  만약 자신에게 보내진 데이터가 맞다면 3계층으로 이 정보를 보내서 3계층에서도 자신에게 온것이 맞는지 확인후 4계층으로 보내고 4계층도 이러한 과정을 통해 애플리케이션에 보내게 됩니다.

 

위 과정에서 계층별 헤더 값이 다 다르고 이는 프로토콜 번호를 보고 계층별로 판단할 수 있습니다.

 

MSS & MTU(데이터 크기 조절)

애플리케이션에서 데이터를 만들어 보낼 때 데이터 플로계층(1~4)에서 네트워크 상황에 맞게 데이터를 잘 쪼개 상대방에게 전달합니다. 네트워크에서 수용할 수 있는 크기를 역산정해 데이터가 4계층으로 내려올때 적절한 크기로 쪼개질 수 있도록 유도하는데 이 값을 MSS라고 부릅니다. 네트워크에서 한번에 보낼 수 있는 데이터 크기를 MTU라고 부르며 일반적인 이더넷에서 수용할 수 있는 크기는 1500byte 입니다. 모두 데이터 크기를 지칭하는 것이므로 MTU값은 2계층의 데이터값 MSS는 4계층에서 가질 수 있는 최대 데이터 값입니다.