[F-Lab 모각코 챌린지 24일차] 패킷 Packet

Nami·2023년 6월 24일
0

66일 포스팅 챌린지

목록 보기
24/66
post-custom-banner

IP에서 패킷을 만들어 보내면 받는 쪽에서 그 패킷을 뜯어본다. 라는 표현을 보아서 패킷은 대체 무엇일까 궁금했다. 내부도 궁금했고 패킷은 어디서부터 어디까지 쓰이는 지도 모호해서 제대로 공부해보았다.


패킷 Packet

패킷이란?

패킷은 인터넷에서 전송되는 데이터의 기본 단위로 '헤더'와 '데이터 조각'이라는 두 부분으로 구성된다.

인터넷을 통해 주고 받는 바이너리 데이터 블록(조각)을 포괄적으로 패킷(Packet)이라 부르며, 그 형식은 프로토콜마다 특징적인 규정이 존재한다. 패킷이 사용되는 이유는 보내는 데이터를 작은 단위로 나눠 빠르고 효율적이게 전달하기 위함이다.

패킷의 헤더에 패킷의 송신지와 수신지 등 패킷의 전송을 제어할 수 있는 정보가 담겨있기 때문에 패킷이 송신지와 수신지에서 하나의 단위로 취급되어 전송하는 데이터 단위가 될 수 있다.
보내는 사람의 주소와 받는 사람의 주소가 기입된 소포나 택배가 하나의 단위로 배송되는 것과 같은 원리.

캡슐화 Encapsulation

패킷을 만들고, 전송하고 재결합할 때 사용되는 헤더에 기록되는 정보와 그 정보를 어떻게 처리할 것인지에 대해선 프로토콜이 정하고, 프로토콜에 따라 데이터에 헤더가 추가되어 패킷이라는 단위로 변환되는 과정이 캡슐화(Encapsulation)이다.

  • 인터넷에서 패킷을 만들 때 사용하는 대표적인 프로토콜이 TCP/IP 프로토콜이다.
  • 패킷마다 독립적으로 전송되기 때문에 어디에서 어디로 가는지에 대한 정보를 모든 패킷이 가지고 있어야 하고, 패킷을 다시 결합하여 데이터를 만들 수 있도록 모든 패킷은 저마다 고유 번호를 갖고 있어야 함.

각 계층이 데이터를 프로토콜에 따라 처리하고 헤더를 추가한 데이터 단위가 모두 패킷이다. 즉, 응용 계층(Application layer)의 메시지, 전송 계층의 세그먼트, 인터넷 계층의 데이터그램, 네트워크 인터페이스 계층의 프레임이 각 계층에서 패킷을 부르는 이름이다. 패킷의 헤더가 송신지와 수신지를 담고 있기 때문에 하나의 전송 단위로 취급되어 각 계층으로 볼 때 패킷인 각각의 데이터 단위를 전송할 수 있게 되는 것.

특히 IP 프로토콜에 따라 만들어진 IP 데이터그램을 IP 패킷 또는 그냥 패킷이라고 부르는 경우가 많음.
즉, 패킷은 네트워크에서 전송되는 데이터의 기본 단위이면서, 인터넷 계층에서 정의되는 데이터 단위를 의미하기도함.

패킷 교환 방식

패킷은 데이터를 효율적으로 전송하기 위해 데이터를 작은 조각을로 분할하고 분할된 조각에 헤더를 붙여 캡슐화한 데이터를 의미한다. 이 패킷을 라우터가 라우팅을 통해 송신 호스트에서 수신 호스트까지 전송하는 것이 패킷 교환 방식이다.

TCP/IP의 4계층에서 만들어진 데이터 단위가 모두 헤더와 데이터로 구성되어 있다는 측면에서 패킷의 종류지만, 원본 데이터를 분할하여 전송의 효율성을 꾀하는 패킷 전송 방식의 패킷을 만드는 것은 전송 계층의 TCP 프로토콜이다. 전송 계층에서 만든 데이터 단위가 '부분, 분할하다'는 뜻을 가진 Segment이다.

정확히는 전송 계층에서 TCP 프로토콜에 따라 분할한 데이터에 헤더를 붙인 것을 세그먼트라고 함. 전송 계층에는 TCP외에 UDP 프로토콜이 있는데 UDP는 데이터를 분할하지 않고 상위 계층에서 받은 데이터에 헤더를 붙이기 때문에 데이터그램이라고 함.

TCP/IP 4 Layer

  • 애플리케이션 프로그램은 메시지나 데이터 스트림을 인터넷 전송 계층 프로토콜인 UDP(User Datagram Protocol) 또는 TCP(Transmission Control Protocol) 중 하나로 전송한다.
  • 해당 프로토콜은 애플리케이션으로부터 데이터를 수신하고 패킷 단위로 나누어 대상 주소를 추가한 후 프로토콜 계층인 인터넷 네트워크 계층을 따라 패킷을 전달한다.
  • 인터넷 계층은 IP 주소로 수신지 호스트까지 패킷을 전송한다. IP(Internet Protocol) 데이터그램에 포함한 후 데이터그램 헤더 및 트레일러에 넣고 데이터그램 전송위치(직접 또는 게이트웨이에)를 결정한 후 네트워크 인터페이스 계층으로 데이터그램을 패스한다.

네트워크 인터페이스 계층은 IP 데이터그램을 승인하고 이더넷이나 토큰 링 네트워크와 같은 특정 네트워크 하드웨어를 통해 이들을 프레임으로 전송한다.

IP 프로토콜이 만든 데이터그램을 패킷이라고 부르는 이유

TCP 프로토콜이 데이터를 분할해서 만든 세그먼트를 수신 호스트까지 전송할 수 있는 IP 주소가 IP 데이터그램 헤더에 담기기 때문. 라우터가 이 IP 주소를 기반으로 라우팅을 하는 과정이 패킷교환 방식에 따라 데이터를 전송되는 과정이기 때문에 IP 데이터그램을 패킷 교환방식의 패킷이라고 볼 수 있음.

각 계층에선 어떤 헤더들이 추가되는가?

송신 측은 수신 측이 알아야할 정보들을 각 계층에서 추가하면서 데이터를 전달하고 수신 측은 송신 측이 보낸 정보들을 각 계층에서 해석해나가면서 데이터를 전달받는다. 계층화된 데이터는 특정 계층에서 발생하는 오류를 빠르게 찾아낼 수 있다.


참조 ✅

post-custom-banner

0개의 댓글