반응형

목차

네트워킹에서 캡슐화 및 캡슐화 해제는 데이터가 OSI 또는 TCP/IP 모델의 계층을 통과할 때 헤더와 트레일러를 추가하고 제거하는 프로세스를 의미합니다. 이번 포스팅에서는 OSI 모델을 기준으로 설명해보겠습니다.

캡슐화 과정

캡슐화는 무단 액세스를 방지하기 위해 객체의 속성과 메서드를 숨기는 데 사용되는 기술이며 주로 데이터 안전을 위해 사용됩니다. 즉, 캡슐화는 복잡한 시스템을 최종 사용자가 다루기 쉽게 만드는 방법입니다.

캡슐화 과정에서 네트워크 프로토콜 스택의 각 계층은 데이터가 올바르게 전달될 수 있도록 제어 정보를 추가합니다. 이 제어 정보는 헤더 또는 트레일러의 형태로 추가되며 때로는 두 가지가 모두 추가되기도 합니다. 데이터가 캡슐화되면 각 계층은 수신 측의 해당 계층과 통신합니다.

다음은 캡슐화가 어떻게 작동하는지에 대한 과정입니다.

  1. 애플리케이션 레이어(레이어 7): 데이터는 소프트웨어 애플리케이션에서 생성되어 메시지 형태로 프레젠테이션 계층으로 전달됩니다.

  2. 프레젠테이션 계층(계층 6): 프레젠테이션 계층은 메시지 형식을 수신 측에서 이해할 수 있는 공통 형식으로 변환합니다. 그런 다음 데이터를 세션 계층으로 전달합니다.

  3. 세션 레이어(레이어 5): 세션 계층은 각 끝단에서 애플리케이션 간의 연결을 설정, 관리 및 종료합니다. 데이터를 강화하여 전송 계층으로 전달합니다.

  4. 전송 계층(계층 4): 전송 계층은 메시지를 더 작은 단위(세그먼트)로 나누고 각 세그먼트에 헤더를 추가한 후 네트워크 계층으로 전달합니다. 헤더에는 소스 및 대상 포트 번호와 시퀀스 번호 등의 정보가 포함됩니다.

  5. 네트워크 계층(계층 3): 네트워크 계층은 각 세그먼트에 자체 헤더(소스 및 대상 IP 주소 포함)를 추가하여 패킷을 생성합니다. 그런 다음 패킷에 대한 최적의 경로를 결정하여 데이터 링크 계층으로 보냅니다.

  6. 데이터 링크 계층(계층 2): 데이터 링크 계층은 패킷에 헤더와 트레일러를 추가하여 프레임을 생성합니다. 헤더에는 소스 및 대상 컴퓨터의 물리적 주소(MAC 주소)에 대한 정보가 포함되어 있습니다.

  7. 물리적 계층(계층 1): 그런 다음 물리적 계층은 바이너리 프레임을 신호로 변환하여 로컬 미디어를 통해 전송합니다.

이 프로세스는 데이터가 목적지에서 올바르게 포맷, 주소 지정, 전송, 라우팅 및 수신되도록 보장합니다. 기본적인 과정은 이렇게 설명할 수 있지만 네트워크의 특정 구성이나 요구 사항에 따라 각 계층과 관련된 프로토콜과 하드웨어가 더 많을 수 있습니다.


캡슐화 해제 과정

캡슐레이션은 데이터 전송의 수신 측에서 발생하는 프로세스입니다. 캡슐화의 반대 개념으로, 송신 측의 각 계층에 추가된 헤더와 트레일러를 제거합니다. 이러한 헤더(및 트레일러)가 제거되면 그 안에 포함된 정보를 사용하여 데이터를 처리하고 다음 계층으로 전달합니다.

다음은 캡슐화 해제가 어떻게 작동하는지에 대한 과정입니다.

  1. 물리적 계층(계층 1): 이 계층은 물리적 미디어에서 신호 형태로 데이터를 수신합니다. 이 계층은 이러한 신호를 다시 바이너리 데이터로 변환하여 데이터 링크 계층으로 전달합니다.

  2. 데이터 링크 계층(계층 2): 이 계층은 헤더와 트레일러를 읽어 물리적 전송 오류를 확인하고 데이터가 이 디바이스를 위한 것인지 확인합니다. 모든 것이 확인되면 헤더와 트레일러를 제거하고 나머지 데이터(송신 측 네트워크 계층의 패킷)를 네트워크 계층으로 전달합니다.

  3. 네트워크 레이어(레이어 3): 이 계층은 헤더를 읽어 데이터를 전송할 전송 계층 프로토콜(TCP 또는 UDP)을 결정하고 패킷이 실수로 이 장치로 전송된 경우 라우팅을 수행합니다. 그런 다음 헤더를 제거하고 나머지 데이터(전송 측 전송 계층의 세그먼트)를 올바른 전송 계층 프로토콜로 전달합니다.

  4. 전송 계층(계층 4): 이 계층은 헤더를 읽어 데이터를 전송할 애플리케이션 계층 프로토콜을 결정하고, 데이터가 순서대로 수신되지 않은 경우 데이터를 재정렬합니다. 그런 다음 헤더를 제거하고 나머지 데이터(송신 측 세션 계층의 데이터)를 세션 계층으로 전달합니다.

  5. 세션 레이어(레이어 5): 이 계층은 애플리케이션 간의 연결을 관리하고 데이터를 프레젠테이션 계층으로 전달합니다.

  6. 프레젠테이션 계층(계층 6): 이 계층은 데이터가 애플리케이션 계층에서 읽을 수 있는 형식인지 확인하며, 일반적인 형식에서 다시 변환할 수도 있습니다.

  7. 애플리케이션 레이어(레이어 7): 마지막으로 이 계층은 데이터를 수신하여 적절한 소프트웨어 애플리케이션에서 사용할 수 있도록 합니다.

캡슐화 해제 과정은 송신 측의 각 계층에서 추가한 헤더와 트레일러를 제거하고 이러한 헤더와 트레일러에 포함된 정보를 처리함으로써 데이터가 목적지에서 올바르게 처리되고 수신될 수 있도록 합니다.


캡슐화와 해제를 통한 데이터 전송 과정

  1. 애플리케이션 레이어: 사용자가 웹 브라우저와 같은 애플리케이션에서 메시지를 입력합니다. 이 메시지는 수신 컴퓨터로 전송해야 하는 데이터입니다.

  2. 전송 계층: 데이터는 전송 계층으로 전달되어 세그먼트로 나뉩니다. 각 세그먼트에는 소스 및 대상 포트 번호와 같은 정보가 포함된 헤더가 지정됩니다.

  3. 네트워크 계층: 그런 다음 각 세그먼트는 네트워크 계층으로 전달되어 패킷으로 캡슐화됩니다. 패킷의 헤더에는 소스 및 대상 IP 주소가 포함됩니다.

  4. 데이터 링크 계층: 패킷은 데이터 링크 계층으로 전달되어 프레임으로 캡슐화됩니다. 프레임의 헤더에는 소스 및 대상 MAC 주소가 포함됩니다.

  5. 물리적 계층: 그런 다음 프레임은 물리적 네트워크 매체(예: 이더넷 케이블 또는 Wi-Fi)를 통해 수신 컴퓨터로 전송됩니다.

    (데이터 전송)

  6. 물리적 계층: 수신 컴퓨터는 물리적 네트워크 매체에서 프레임을 받아들입니다.

  7. 데이터 링크 계층: 프레임은 헤더와 트레일러를 제거하여 패킷으로 디캡슐화됩니다. 수신 컴퓨터는 대상 MAC 주소를 확인하여 프레임이 이 컴퓨터를 위한 것인지 확인합니다.

  8. 네트워크 계층: 패킷은 헤더를 제거하여 세그먼트로 디캡슐링됩니다. 수신 컴퓨터는 대상 IP 주소를 확인하여 패킷이 이 컴퓨터를 위한 것인지 확인합니다.

  9. 전송 계층: 헤더를 제거하여 세그먼트가 원래 데이터로 디캡슐링됩니다. 수신 컴퓨터는 대상 포트 번호를 확인하여 데이터가 어떤 애플리케이션을 위한 것인지 확인합니다.

  10. 애플리케이션 계층: 마지막으로 수신 컴퓨터는 데이터를 의도한 애플리케이션으로 전달하여 처리합니다.

그림으로 요약하는 네트워크 모델과 캡슐화 과정

OSI, TCP/IP 모델과 해당 계층에서 대표적으로 사용하는 프로토콜입니다.

 

다음은 네트워크를 다룬다면 꼭 알아야할 네트워크 포트의 종류를 정리했으니 한번 보셔도 좋을 것 같습니다. 블로그 초기에 작성한 글로 반말에 퀄리디가 다소 떨어지긴합니다만 정리는 그래도 잘 되어 있습니다.

 

[Network]네트워크 포트 종류

네트워크 포트란, 네트워크 상에서 데이터가 주고받는 경로를 식별하기 위한 번호이다. 컴퓨터와 네트워크 장비는 각각 IP 주소를 가지고 있지만, IP 주소만으로는 어떤 프로그램이나 서비스를

easyitwanner.tistory.com

과정을 최대한 간단하게 그려봤습니다.

  • 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 값이 높을수록 모든 데이터를 전송하는 데 필요한 패킷 수가 줄어들어 라우터의 작업 부하가 감소하고 효율성이 향상됩니다. 그러나 이 값이 너무 높으면 패킷을 조각화해야 할 수 있으며, 이로 인해 네트워크 성능이 저하될 수 있습니다.

반응형