패킷 & 세그먼트

썩은요플렛's avatar
Aug 30, 2024
패킷 & 세그먼트
 
패킷(Packet)과 세그먼트(Segment)는 컴퓨터 네트워크에서 데이터를 전송하는 과정에서 중요한 역할을 하는 데이터 단위입니다. 이 두 용어는 주로 네트워크 프로토콜의 계층에서 데이터를 관리하고 전달하는 데 사용되며, 각각의 프로토콜 계층에서 다르게 정의된다.

1. 패킷(Packet)과 세그먼트(Segment)란?

1.1 패킷(Packet)

패킷은 데이터를 네트워크를 통해 전송할 때 사용되는 기본 단위이다. 데이터 통신의 전체 과정에서 패킷은 종단 간(end-to-end) 전송을 담당한다. 패킷은 네트워크 계층(OSI 모델의 3계층)에서 다루어지며, 주로 인터넷 프로토콜(IP)을 사용하여 데이터를 목적지까지 전송한다.
패킷은 크게 세 가지 주요 구성 요소로 나뉜다:
  • 헤더(Header): 송신자와 수신자의 IP 주소, 프로토콜 정보, 패킷 길이, TTL(Time To Live) 등과 같은 제어 정보를 포함한다.
  • 페이로드(Payload): 실제 전송되는 데이터이다. 이 데이터는 전송 계층(Transport Layer)에서 생성된 세그먼트나 메시지일 수 있다.
  • 트레일러(Trailer): 데이터 전송의 무결성을 확인하기 위한 체크섬(Checksum)과 같은 추가 정보를 포함할 수 있다.
패킷은 네트워크 계층에서 사용되며, IP 주소를 사용해 데이터를 여러 네트워크를 거쳐 목적지까지 전송한다.

1.2 세그먼트(Segment)

세그먼트는 전송 계층(OSI 모델의 4계층)에서 사용되는 데이터 단위이다. 세그먼트는 전송 계층 프로토콜(TCP/UDP)에 따라 데이터를 관리하며, 네트워크 상에서 신뢰성 있는 데이터 전송을 담당한다. 세그먼트는 주로 TCP(Transmission Control Protocol) 프로토콜을 사용할 때 사용되는 용어이다.
세그먼트는 다음과 같은 구성 요소로 이루어진다:
  • 헤더(Header): 전송 제어 정보(예: 출발지 및 목적지 포트 번호, 시퀀스 번호, 확인 응답 번호, 플래그 등)를 포함한다.
  • 데이터(Data): 실제 전송되는 데이터, 즉 애플리케이션 계층에서 전송하려는 정보이다.
세그먼트는 전송 계층에서 생성된 후, 네트워크 계층으로 전달되어 패킷으로 캡슐화된다. 세그먼트는 TCP 연결의 신뢰성과 데이터의 순차적인 전송을 보장하는 데 중요한 역할을 한다.

2. 패킷과 세그먼트의 차이점

패킷과 세그먼트는 데이터 통신 과정에서 서로 다른 계층에서 작동하며, 다음과 같은 차이점이 있다:
  • 계층:
    • 세그먼트: 전송 계층(Transport Layer)에서 생성되고 사용된다. TCP/UDP와 같은 프로토콜에서 데이터의 전송을 관리한다.
    • 패킷: 네트워크 계층(Network Layer)에서 생성되고 사용된다. 주로 IP 프로토콜을 사용하여 데이터를 네트워크 상에서 전달한다.
  • 역할:
    • 세그먼트: 데이터의 신뢰성과 순차적인 전송을 보장한다. TCP의 경우, 세그먼트는 데이터의 순서를 유지하고, 데이터가 손실될 경우 재전송을 요청하는 메커니즘을 포함한다.
    • 패킷: 데이터를 네트워크를 통해 목적지로 전달한다. 패킷은 세그먼트를 포함하고 있으며, 네트워크 상의 라우팅을 통해 전달된다.
  • 헤더 정보:
    • 세그먼트 헤더: 포트 번호, 시퀀스 번호, ACK 번호 등 TCP/UDP 프로토콜에 관련된 정보가 포함된다.
    • 패킷 헤더: IP 주소, 패킷 길이, TTL 등 네트워크 계층의 라우팅에 필요한 정보가 포함된다.

3. 네트워크 통신에서의 패킷과 세그먼트

네트워크 통신 과정에서 패킷과 세그먼트는 다음과 같은 단계를 거친다:

3.1 데이터 생성

  • 애플리케이션 계층(Application Layer)에서 사용자가 보낸 데이터가 생성된다. 예를 들어, 웹 브라우저가 서버에 HTTP 요청을 보낼 때, 요청 데이터가 생성된다.

3.2 전송 계층 (세그먼트 생성)

  • 데이터는 전송 계층으로 전달되어 세그먼트로 분할된다. TCP를 사용하면, 데이터는 세그먼트로 나뉘며, 각 세그먼트에는 포트 번호, 시퀀스 번호, 확인 응답 번호 등의 헤더 정보가 추가된다.

3.3 네트워크 계층 (패킷 생성)

  • 세그먼트는 네트워크 계층으로 전달되며, 이때 IP 주소 등의 네트워크 정보를 포함한 헤더가 추가되어 패킷이 된다. 패킷은 IP 주소를 사용해 데이터를 목적지로 전송한다.

3.4 데이터 링크 계층

  • 패킷은 데이터 링크 계층으로 전달되어, 물리적 네트워크(예: 이더넷, Wi-Fi)를 통해 전송되기 위해 프레임(Frame)으로 캡슐화된다. 프레임은 패킷을 포함하며, 물리적 네트워크에서 데이터 전송을 관리한다.

3.5 전송 및 수신

  • 프레임은 물리적 네트워크를 통해 전송되며, 수신 측에서는 반대 순서로 데이터를 처리한다. 즉, 프레임이 데이터 링크 계층에서 처리되고, 네트워크 계층에서는 패킷이, 전송 계층에서는 세그먼트가 처리되어 최종적으로 원래의 데이터가 애플리케이션 계층에 전달된다.

4. TCP와 UDP에서의 세그먼트와 패킷

4.1 TCP (Transmission Control Protocol)

TCP는 연결 지향 프로토콜로, 신뢰성 있는 데이터 전송을 보장한다. TCP에서는 데이터를 세그먼트로 나누고, 각 세그먼트가 순서대로 전송되며, 수신 측에서 순서가 유지되도록 한다. 또한 데이터가 손실되면 재전송을 요청한다.
  • TCP 세그먼트: 포트 번호, 시퀀스 번호, 확인 응답 번호, 플래그(예: SYN, ACK, FIN) 등이 포함된 헤더를 가지고 있다.
  • TCP 패킷: 세그먼트가 네트워크 계층으로 전달되어 IP 헤더가 추가된 패킷이 된다.

4.2 UDP (User Datagram Protocol)

UDP는 비연결형 프로토콜로, TCP와 달리 데이터 전송의 신뢰성을 보장하지 않는다. 데이터는 세그먼트(UDP에서는 데이터그램이라고도 함)로 나뉘고, 전송되지만 순서가 유지되지 않거나 손실될 수 있다.
  • UDP 세그먼트: 포트 번호, 길이, 체크섬 등이 포함된 간단한 헤더를 가지고 있다.
  • UDP 패킷: UDP 세그먼트가 네트워크 계층으로 전달되어 IP 헤더가 추가된 패킷이 된다.

5. 요약

  • 패킷: 네트워크 계층에서 사용되는 데이터 단위로, IP 주소와 같은 네트워크 정보를 포함하며, 데이터를 여러 네트워크를 통해 목적지까지 전달한다.
  • 세그먼트: 전송 계층에서 사용되는 데이터 단위로, TCP/UDP 프로토콜을 통해 데이터의 신뢰성과 순서를 관리한다. 세그먼트는 패킷으로 캡슐화되어 네트워크를 통해 전송된다.
이처럼 패킷과 세그먼트는 네트워크 통신에서 서로 다른 역할을 하며, 각 계층에서 데이터를 효율적이고 신뢰성 있게 전달하는 데 중요한 역할을 한다.
Share article

RottenYogurt's Development Blog