혼자 정리

[네트워크이론] 3.1 트랜스포트 계층 서비스 및 개요 본문

네트워크

[네트워크이론] 3.1 트랜스포트 계층 서비스 및 개요

tbonelee 2024. 1. 4. 22:49

(Computer Networking a top-down Approach 책의 내용입니다)

  • 트랜스포트 계층은 서로 다른 호스트의 애플리케이션 프로세스 사이에 논리적 통신(logical communication) 을 제공한다.
  • 트랜스포트 계층 프로토콜은 end system에만 존재하고 네트워크 라우터에는 존재하지 않음
  • 관련된 데이터 흐름 :
    • 송신 측의 트랜스포트 계층은 애플리케이션 계층 메시지를 받아서 chunk로 조각낸 다음, 트랜스포트 계층 헤더를 각 chunk에 붙여서 트랜스포트 계층 segment로 만든다.
    • 트랜스포트 계층은 네트워크 계층으로 segment를 전달
    • 네트워크 계층에서는 이를 캡슐화해서 목적지로 전달
    • (라우터는 데이터그램의 네트워크 계층 필드에 대해서만 동작함)
    • 송신 측의 네트워크 계층에서 데이터그램의 트랜스포트 계층 segment를 추출하여 트랜스포트 계층으로 전달한다.
    • 트랜스포트 계층은 전달받은 segment를 처리하여 애플리케이션 계층으로 전달한다.
  • 인터넷의 대표적인 두 가지 프로토콜 - TCP, UDP
    • 애플리케이션에 각각 다른 종류의 서비스를 제공

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

  • 트랜스포트 계층은 서로 다른 호스트에서 동작하고 있는 프로세스 간 논리적 통신을 제공
  • 네트워크 계층은 서로 다른 호스트 간 논리적 통신을 제공
  • 트랜스포트 계층의 서비스는 하위 네트워크 프로토콜의 서비스 모델에 의해 제약된다.
    • ex) 네트워크 계층 프로토콜이 호스트 사이에서 전송되는 트랜스포트 계층 세그먼트에 대한 지연 보장이나 대역폭 보장을 제공할 수 없다면, 트랜스포트 계층 프로토콜은 프로세스끼리 전송하는 메시지에 대한 지연 보장이나 대역폭 보장을 제공할 수 없다.
  • 네트워크 프로토콜이 상응하는 서비스를 제공하지 못할 때에도 트랜스포트 계층이 제공 가능한 서비스도 존재
    • ex1) 네트워크 프로토콜이 패킷을 분실, 손상, 중복 생성하여 비신뢰적일 때에도 애플리케이션에 신뢰적인 데이터 전송 서비스를 제공할 수 있음
    • ex2) 네트워크 계층이 트랜스포트 계층 세그먼트의 기밀성을 보장할 수 없을 때에도 암호화를 통해 외부인이 애플리케이션 메시지를 읽지 못하도록 할 수 있음

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

  • segment : 트랜스포트 계층 패킷 or TCP 패킷을 가리킴
  • datagram: UDP 패킷 or 네트워크 계층 패킷을 가리킴
    책에서는 segment -> 트랜스포트 계층 패킷, datagram -> 네트워크 계층 패킷으로 통일함
  • IP (Internet Protocol)는 인터넷의 네트워크 계층 프로토콜
    • IP 서비스 모델 : best-effort delivery service -> 데이터 전달을 위해 "best effort"를 하지만 전달 보장은 안 함
      • 도착 보장 x, 순서 보장 x, 데이터 무결성(integrity) 보장 x
      • unreliable service로 부름
    • 모든 호스트는 최소한 하나의 네트워크 계층 주소(so-called IP address)를 가짐
      • 모든 호스트는 IP 주소를 가짐
  • 트랜스포트 계층 다중화(multiplexing), 역다중화(demultiplexing)
    • host-to-host 전달을 process-to-process 전달로 확장하는 것
    • TCP, UDP의 가장 중요한 책임
  • TCP, UDP는 segment 헤더에 에러 detection 필드를 추가하여 데이터 integrity 체크를 제공
  • UDP는 process-to-process delivery, 에러 체크 두 가지 서비스만 제공
  • TCP는 reliable data transfer, congestion control을 추가로 제공
    • congestion control은 애플리케이션 자체보다 인터넷 전체를 위한 서비스
      • 하나의 TCP 커넥션이 막대한 트래픽으로 링크, 라우터를 폭주시키는 것을 방지
      • UDP는 이에 대한 제한이 없음