3.1 트랜스포트 계층 서비스 및 개요 - Computer Network

3.1 트랜스포트 계층 서비스 및 개요 - Computer Network

생성일
Jun 3, 2024 02:08 AM
Description
트랜스포트 계층 서비스 및 개요에 대해 알아봅니다.
Tag
Computer Network
Computer Science Engineering

3.1 트랜스포트 계층 서비스 및 개요

트랜스포트 계층 프로토콜은 각기 다른 호스트에서 동작하는 애플리케이션 프로세스 간의 논리적 통신(logical communication)을 제공한다.
= 애플리케이션의 관점에서 보면, 프로세스들이 동작하는 호스트들이 직접 연결된 것처럼 보인다.
아래 그림처럼, 트랜스포트 계층 프로토콜은 네트워크 라우터가 아닌 종단 시스템에서 구현된다.
notion image
  1. 송신 측의 트랜스포트 계층은 송신 애플리케이션 프로세스로부터 수신한 메시지를 트랜스포트 계층 패킷으로 변환한다.
    1. (이는 트랜스포트 계층 세그먼트(segment)라고 부른다. : L4-PDU)
    2. 애플리케이션 메시지를 작은 조각으로 분할한다.
    3. 각각의 조각에 트랜스포트 계층 헤더를 추가한다.
  1. 트랜스포트 계층은 송신 종단 시스템에 있는 네트워크 계층으로 세그먼트를 전달한다.
      • 세그먼트는 네트워크 계층 패킷(데이터그램(datagram) : L3-PDU) 안에 캡슐화되어(encapsulate) 목적지로 전달된다.
      네트워크 라우터는 오로지 데이터그램의 네트워크 계층 필드에 대해 동작한다.
      즉, 데이터그램 안에 캡슐화된 트랜스포트 계층 세그먼트의 필드를 검사하지 않는다.
  1. 수신 측에서 네트워크 계층은 데이터그램으로부터 트랜스포트 계층 세그먼트를 추출하고 트랜스포트 계층으로 세그먼트를 보낸다.
  1. 트랜스포트 계층은 수신 애플리케이션에서 세그먼트 내부의 데이터를 이용할 수 있도록 수신된 세그먼트를 처리한다.
네트워크 애플리케이션에서는 하나 이상의 트랜스포트 계층 프로토콜을 사용할 수 있다.
e.g., 인터넷 : TDP, UDP라는 두 가지 프로토콜을 가지고 있다.

3.1.1 트랜스포트 계층과 네트워크 계층 사이의 관계

💡 트랜스포트 계층 프로토콜은 각기 다른 호스트에서 동작하는 프로세스들 사이의 논리적 통신을 제공한다.
💡 네트워크 계층 프로토콜은 호스트들 사이의 논리적 통신을 제공한다.
  • 트랜스포트 계층 프로토콜은 종단 시스템에 존재하며,애플리케이션 프로세스에서 네트워크 계층 사이에서 메시지를 운반하는 역할을 한다.
  • 메시지가 네트워크 계층 내부에서 어떻게 이동하는지는 언급하지 않는다.즉, Application을 다루는(작성하거나 run 하는) 입장에서는 앞으로 이루어질 physical connection을 염려하지 않아도 된다.
  1. 트랜스포트 계층이 제공할 수 있는 서비스는 하위 네트워크 계층 프로토콜의 서비스 모델에 의해 제약받는다.
    1. e.g.,
      네트워크 계층 프로토콜이 호스트 사이에서 전송되는 트랜스포트 계층 세그먼트에 대한 지연 보장이나 대역폭 보장을 제공할 수 없다면,
      트랜스포트 계층 프로토콜은 프로세스끼리 전송하는 메시지에 대한 지연 보장이나 대역폭 보장을 제공할 수 없다.
  1. 하위 네트워크 프로토콜이 상응하는 서비스를 제공하지 못할 때도, 특정 서비스는 트랜스포트 프로토콜에 의해 제공될 수 있다.
    1. e.g.,
      하위 네트워크 프로토콜이 비신뢰적일 때, 트랜스포트 계층이 애플리케이션에게 신뢰적인 데이터 전송 서비스를 제공할 수 있다.
      (비신뢰적이다 = 패킷을 분실하거나, 손상시키거나, 복사본을 만든다)

3.1.2 인터넷 트랜스포트 계층의 개요

TCP & UDP

Transmission Control Protocol, TCP

  • 신뢰적이고 연결지향형 서비스를 제공한다. (reliable data transfer)
  • 혼잡 제어(congestion control) : 혼잡한 네트워크 링크에서 각 TCP 연결이 링크의 대역폭을 공평하게 공유하여 통과하도록 해준다.

User Datagram Protocol, UDP

  • 비신뢰적이고 비연결형인 서비스를 제공한다.
  • UDP 트랜스포트 프로토콜을 사용하는 애플리케이션은 허용이 되는 한, 그것이 만족하는 어떤 속도로든 전송할 수 있다.

세그먼트와 데이터그램

  • 세그먼트(segment) : 트랜스포트 계층 패킷을 일컫는 말
  • TCP에 대한 패킷을 세그먼트(segment), UDP에 대한 패킷을 데이터그램(datagram)이라는 용어로 나타내기도 한다.
이 책에서는 TCP와 UDP 패킷을 모두 세그먼트라고 지칭, 네트워크 계층 패킷에 대해서는 데이터그램이라는 용어를 사용한다.

인터넷 프로토콜(Internet Protocol, IP)

인터넷의 네트워크 계층 프로토콜
IP 서비스 모델은 호스트들 간에 논리적 통신을 제공하는 최선형 전달 서비스(best-effort delivery service)
즉, IP가 통신하는 호스트들 간에 세그먼트를 전달하기 위해 최대한 노력하지만, 어떤 보장도 하지 않는다.
  • 세그먼트의 전달 보장 X
  • 순서 보장 X
  • 내부 데이터의 무결성(integrity) 보장 X
→ IP는 비신뢰적인 서비스(unreliable service)이다.
💡 각 호스트는 적어도 하나의 IP 주소를 갖고 있다.

UDP와 TCP의 서비스 모델

트랜스포트 계층 다중화(transport-layer mulitplexing)와 역다중화(demultiplexing)

‘호스트 대 호스트 전달’ → ‘프로세스 대 프로세스 전달’
종단 시스템 사이의 IP 전달 서비스를 / 종단 시스템에서 동작하는 두 프로세스 간의 전달 서비스로 확장한다.

헤더에 오류 검출 필드를 포함

이로써 무결성 검사를 제공한다.