목차
네트워킹에서 캡슐화 및 캡슐화 해제는 데이터가 OSI 또는 TCP/IP 모델의 계층을 통과할 때 헤더와 트레일러를 추가하고 제거하는 프로세스를 의미합니다. 이번 포스팅에서는 OSI 모델을 기준으로 설명해보겠습니다.
캡슐화 과정
캡슐화는 무단 액세스를 방지하기 위해 객체의 속성과 메서드를 숨기는 데 사용되는 기술이며 주로 데이터 안전을 위해 사용됩니다. 즉, 캡슐화는 복잡한 시스템을 최종 사용자가 다루기 쉽게 만드는 방법입니다.
캡슐화 과정에서 네트워크 프로토콜 스택의 각 계층은 데이터가 올바르게 전달될 수 있도록 제어 정보를 추가합니다. 이 제어 정보는 헤더 또는 트레일러의 형태로 추가되며 때로는 두 가지가 모두 추가되기도 합니다. 데이터가 캡슐화되면 각 계층은 수신 측의 해당 계층과 통신합니다.
다음은 캡슐화가 어떻게 작동하는지에 대한 과정입니다.
- 애플리케이션 레이어(레이어 7): 데이터는 소프트웨어 애플리케이션에서 생성되어 메시지 형태로 프레젠테이션 계층으로 전달됩니다.
- 프레젠테이션 계층(계층 6): 프레젠테이션 계층은 메시지 형식을 수신 측에서 이해할 수 있는 공통 형식으로 변환합니다. 그런 다음 데이터를 세션 계층으로 전달합니다.
- 세션 레이어(레이어 5): 세션 계층은 각 끝단에서 애플리케이션 간의 연결을 설정, 관리 및 종료합니다. 데이터를 강화하여 전송 계층으로 전달합니다.
- 전송 계층(계층 4): 전송 계층은 메시지를 더 작은 단위(세그먼트)로 나누고 각 세그먼트에 헤더를 추가한 후 네트워크 계층으로 전달합니다. 헤더에는 소스 및 대상 포트 번호와 시퀀스 번호 등의 정보가 포함됩니다.
- 네트워크 계층(계층 3): 네트워크 계층은 각 세그먼트에 자체 헤더(소스 및 대상 IP 주소 포함)를 추가하여 패킷을 생성합니다. 그런 다음 패킷에 대한 최적의 경로를 결정하여 데이터 링크 계층으로 보냅니다.
- 데이터 링크 계층(계층 2): 데이터 링크 계층은 패킷에 헤더와 트레일러를 추가하여 프레임을 생성합니다. 헤더에는 소스 및 대상 컴퓨터의 물리적 주소(MAC 주소)에 대한 정보가 포함되어 있습니다.
- 물리적 계층(계층 1): 그런 다음 물리적 계층은 바이너리 프레임을 신호로 변환하여 로컬 미디어를 통해 전송합니다.
이 프로세스는 데이터가 목적지에서 올바르게 포맷, 주소 지정, 전송, 라우팅 및 수신되도록 보장합니다. 기본적인 과정은 이렇게 설명할 수 있지만 네트워크의 특정 구성이나 요구 사항에 따라 각 계층과 관련된 프로토콜과 하드웨어가 더 많을 수 있습니다.
캡슐화 해제 과정
캡슐레이션은 데이터 전송의 수신 측에서 발생하는 프로세스입니다. 캡슐화의 반대 개념으로, 송신 측의 각 계층에 추가된 헤더와 트레일러를 제거합니다. 이러한 헤더(및 트레일러)가 제거되면 그 안에 포함된 정보를 사용하여 데이터를 처리하고 다음 계층으로 전달합니다.
다음은 캡슐화 해제가 어떻게 작동하는지에 대한 과정입니다.
- 물리적 계층(계층 1): 이 계층은 물리적 미디어에서 신호 형태로 데이터를 수신합니다. 이 계층은 이러한 신호를 다시 바이너리 데이터로 변환하여 데이터 링크 계층으로 전달합니다.
- 데이터 링크 계층(계층 2): 이 계층은 헤더와 트레일러를 읽어 물리적 전송 오류를 확인하고 데이터가 이 디바이스를 위한 것인지 확인합니다. 모든 것이 확인되면 헤더와 트레일러를 제거하고 나머지 데이터(송신 측 네트워크 계층의 패킷)를 네트워크 계층으로 전달합니다.
- 네트워크 레이어(레이어 3): 이 계층은 헤더를 읽어 데이터를 전송할 전송 계층 프로토콜(TCP 또는 UDP)을 결정하고 패킷이 실수로 이 장치로 전송된 경우 라우팅을 수행합니다. 그런 다음 헤더를 제거하고 나머지 데이터(전송 측 전송 계층의 세그먼트)를 올바른 전송 계층 프로토콜로 전달합니다.
- 전송 계층(계층 4): 이 계층은 헤더를 읽어 데이터를 전송할 애플리케이션 계층 프로토콜을 결정하고, 데이터가 순서대로 수신되지 않은 경우 데이터를 재정렬합니다. 그런 다음 헤더를 제거하고 나머지 데이터(송신 측 세션 계층의 데이터)를 세션 계층으로 전달합니다.
- 세션 레이어(레이어 5): 이 계층은 애플리케이션 간의 연결을 관리하고 데이터를 프레젠테이션 계층으로 전달합니다.
- 프레젠테이션 계층(계층 6): 이 계층은 데이터가 애플리케이션 계층에서 읽을 수 있는 형식인지 확인하며, 일반적인 형식에서 다시 변환할 수도 있습니다.
- 애플리케이션 레이어(레이어 7): 마지막으로 이 계층은 데이터를 수신하여 적절한 소프트웨어 애플리케이션에서 사용할 수 있도록 합니다.
캡슐화 해제 과정은 송신 측의 각 계층에서 추가한 헤더와 트레일러를 제거하고 이러한 헤더와 트레일러에 포함된 정보를 처리함으로써 데이터가 목적지에서 올바르게 처리되고 수신될 수 있도록 합니다.
캡슐화와 해제를 통한 데이터 전송 과정
- 애플리케이션 레이어: 사용자가 웹 브라우저와 같은 애플리케이션에서 메시지를 입력합니다. 이 메시지는 수신 컴퓨터로 전송해야 하는 데이터입니다.
- 전송 계층: 데이터는 전송 계층으로 전달되어 세그먼트로 나뉩니다. 각 세그먼트에는 소스 및 대상 포트 번호와 같은 정보가 포함된 헤더가 지정됩니다.
- 네트워크 계층: 그런 다음 각 세그먼트는 네트워크 계층으로 전달되어 패킷으로 캡슐화됩니다. 패킷의 헤더에는 소스 및 대상 IP 주소가 포함됩니다.
- 데이터 링크 계층: 패킷은 데이터 링크 계층으로 전달되어 프레임으로 캡슐화됩니다. 프레임의 헤더에는 소스 및 대상 MAC 주소가 포함됩니다.
- 물리적 계층: 그런 다음 프레임은 물리적 네트워크 매체(예: 이더넷 케이블 또는 Wi-Fi)를 통해 수신 컴퓨터로 전송됩니다.
(데이터 전송) - 물리적 계층: 수신 컴퓨터는 물리적 네트워크 매체에서 프레임을 받아들입니다.
- 데이터 링크 계층: 프레임은 헤더와 트레일러를 제거하여 패킷으로 디캡슐화됩니다. 수신 컴퓨터는 대상 MAC 주소를 확인하여 프레임이 이 컴퓨터를 위한 것인지 확인합니다.
- 네트워크 계층: 패킷은 헤더를 제거하여 세그먼트로 디캡슐링됩니다. 수신 컴퓨터는 대상 IP 주소를 확인하여 패킷이 이 컴퓨터를 위한 것인지 확인합니다.
- 전송 계층: 헤더를 제거하여 세그먼트가 원래 데이터로 디캡슐링됩니다. 수신 컴퓨터는 대상 포트 번호를 확인하여 데이터가 어떤 애플리케이션을 위한 것인지 확인합니다.
- 애플리케이션 계층: 마지막으로 수신 컴퓨터는 데이터를 의도한 애플리케이션으로 전달하여 처리합니다.
그림으로 요약하는 네트워크 모델과 캡슐화 과정
다음은 네트워크를 다룬다면 꼭 알아야할 네트워크 포트의 종류를 정리했으니 한번 보셔도 좋을 것 같습니다. 블로그 초기에 작성한 글로 반말에 퀄리디가 다소 떨어지긴합니다만 정리는 그래도 잘 되어 있습니다.
- FCS
Frame Check Sequence의 약자로 전송되는 데이터의 무결성을 보장하기 위해 네트워킹에서 사용되는 일종의 오류 검사 프로세스입니다.
최대 세그먼트 크기(MSS)와 최대 전송 단위(MTU)
- 최대 세그먼트 크기(MSS, Maximum Segment Size)
이 용어는 TCP 프로토콜에 특정한 용어입니다. 컴퓨터 또는 통신 장치가 조각화되지 않은 단일 조각으로 처리할 수 있는 최대 데이터 양을 바이트 단위로 지정한 것을 말합니다. 이는 기본적으로 장치가 처리할 수 있는 TCP 세그먼트 내 애플리케이션 계층 데이터의 최대 양입니다. MSS는 일반적으로 TCP 옵션을 통해 TCP 핸드셰이크 중에 정의됩니다. MSS에는 TCP 헤더나 IP 헤더가 포함되지 않는다는 점에 유의해야 합니다. - 최대 전송 단위(MTU, Maximum Transmission Unit)
인터넷과 같은 패킷 또는 프레임 기반 네트워크에서 전송할 수 있는 가장 큰 크기의 패킷 또는 프레임(바이트 단위로 지정)입니다. MTU는 TCP 헤더와 IP 헤더를 포함한 전체 TCP 패킷을 의미합니다. 예를 들어 이더넷의 표준 MTU는 1500바이트입니다. 이는 대부분의 인터넷에서 지원되는 가장 큰 이더넷 패킷 크기이며, TCP 헤더와 IP 헤더를 모두 포함합니다.
네트워크 통신의 효율성을 위해서는 MTU와 MSS의 관계가 중요합니다. IP 조각화를 방지하려면 TCP 세그먼트가 MTU에 들어갈 수 있을 만큼 충분히 작아야 하며, TCP 및 IP 헤더의 길이를 고려해야 합니다.
MSS와 MTU는 모두 네트워크 성능을 최적화하는 데 중요한 역할을 합니다. MSS와 MTU 값이 높을수록 모든 데이터를 전송하는 데 필요한 패킷 수가 줄어들어 라우터의 작업 부하가 감소하고 효율성이 향상됩니다. 그러나 이 값이 너무 높으면 패킷을 조각화해야 할 수 있으며, 이로 인해 네트워크 성능이 저하될 수 있습니다.
'Network > Network 이론' 카테고리의 다른 글
[Network 이론] 네트워크 회선의 종류 (0) | 2023.05.20 |
---|---|
[Network 이론] 네트워크 연결의 종류 (0) | 2023.05.20 |
[Network 이론] OSI 모델과 TCP/IP 모델 비교 (0) | 2023.05.17 |
[Network 이론] OSI 7계층 (0) | 2023.05.17 |
[Network 이론] 네트워크란 (0) | 2023.05.16 |