1-5. 인캡슐레이션과 디캡슐레이션

최건우·2022년 5월 28일
0

네트워크 입문

목록 보기
5/7
  • 네트워크 관점에서의 데이터 흐름
    • Encapsulation: 데이터를 보내는 과정(상위계층 -> 하위계층으로 데이터 전송)
      • 물리 계층에서 전기 신호 형태로 네트워크를 통해 신호를 보냄
    • Decapsulation: 데이터를 받는 과정(다시 하위계층 -> 상위계층으로 데이터를 보냄)
  • 패킷 기반 네트워크
    • 데이터를 패킷이라는 작은 단위로 쪼개어 취급함
    • 패킷 개념을 통해 하나의 통신이 회선 전체를 점유하지 않고 동시에 여러 단말이 통신할 수 있음
    • 데이터를 보낼 때는 패킷으로 쪼개 보내고, 목적지에서는 패킷을 받아 다시 큰 데이터 형태로 결합
  • Encapsulation
    • 데이터를 Data Flow Layer로 내려보내면서 패킷에 데이터를 넣을 수 있도록 분할하는 과정
      • 전송할 데이터가 7계층에서 출발해 1계층까지 전달되는 상황
      • 네트워크 상황에 따라 데이터를 적절한 크기로 쪼갬
      • 데이터가 하위계층에 전달되면, 4계층부터 1계층까지 각 계층마다 헤더에 전송을 위해 필요한 정보를 비트 단위(0, 1)로 추가함
      • 최종적으로, (패킷 단위로 나눠진 데이터 + 헤더)가 2계층에서 전기 신호로 변환되어 전송됨
  • Decapsulation

    • 수신자가 받은 전기 신호를 데이터 형태로 다시 결합하는 과정
      • 수신된 데이터가 1계층에서 7계층까지 전달되는 상황
        • 전기 신호가 데이터 형태로 변환되어 2계층으로 전달
        • 2계층에서는 송신자가 작성한 2계층 헤더에 포함된 정보를 확인(랜 카드의 역할)
          • 목적지가 자신이 맞으면 3계층으로 보내고, 아니면 버림
        • 이렇게 각 계층마다 (인캡슐레이션에서 추가된) 자신의 계층 헤더를 참고하고, 버리는 과정
      • 디캡슐레이션 과정에서 데이터를 다음 계층으로 올려보낼 때, 이전 계층의 헤더 정보는 더 이상 필요없으므로 벗겨내고 올려보낸다
  • Encalsulation, Decapsulation에 나타나는 두 가지 정보 흐름

    • Encalsulation, Decapsulation 과정을 통해 데이터가 전송되는 과정
    • 각 계층 헤더를 이용해 송신자 계층과 수신자 계층 간의 논리적 통신 과정
  • 계층별 헤더에 포함되는 정보

    • 반드시 포함되어야 하는 두 가지 정보
      • (1)현재 계층에서 정의하는 정보: 각 계층에서의 목적에 맞는 정보들
        • 4계층: 패킷의 순서 정보(ex. TCP 4계층 - 시퀀스 번호, ACK번호)
        • 3계층: 논리적 주소로서의 출발지, 도착지 IP 주소
        • 2계층: 물리적 주소로서의 출발지, 도착지 MAC 주소
      • (2)상위 프로토콜 지시자
        • 프로토콜 스택은 상위계층으로 올라갈수록 종류가 많아진다.
        • 만약 이 정보가 헤더에 적혀있지 않으면, 디캡슐레이션하는 목적지에서는 상위 계층으로 올려보낼 때 어떤 상위 프로토콜로 올려보내 줘야 할지 결정할 수가 없음.
        • 계층별 상위 프로토콜 지시자 명칭
          • 4계층: Port Number
          • 3계층: Protocol Number
          • 2계층: 이더 타입(Ether Type)
          • 헤더에 적힌 상위 프로토콜 지시자는 동작하는 계층보다 한 계층 위의 정보임을 명심한다. 디캡슐레이션할 때 상위 프로토콜 지시자 정보를 이용해 어느 상위계층 프로토콜로 보낼지를 구분하기 때문이다. 예를 들어, Port Number는 4계층 헤더에 적혀있지만 Application Layer에서의 프로토콜 종류를 나타내주는 정보이다.
    • 그러나 인캡슐레이션 과정에서 들어가는 헤더 정보는 프로토콜마다, 헤더마다 상이하여 많은 공부가 필요함.
  • (참고) 데이터 크기 조절

    • MSS(Maximum Segment Size): 애플리케이션에서 데이터를 4계층으로 내려보낼 때의 4계층이 최대 수용 가능한 데이터 크기
      • 보통, 이더넷에서 수용 가능한 크기는 1500bytes(Jumbo Frame 제외)
      • 이 중 2계층 헤더들의 크기(TCP 헤더, IP 헤더 각 20bytes가 표준)를 제외한 MSS 크기 = 1460bytes
    • MTU(Maximum Transmission Unit): 네트워크에서 한 번에 보낼 수 있는 데이터 크기(2계층의 최대 수용 크기)




* 이 글은 'IT 엔지니어를 위한 네트워크 입문(길벗, 2022)'를 읽고 개인적인 공부를 위해 정리한 글입니다. 문제가 있는 경우, 지적해 주시면 감사하겠습니다.

profile
부족한 경험을 채우기 위한 나만의 기록 공간

0개의 댓글