네트워크
[네트워크이론] 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 주소를 가짐
- IP 서비스 모델 : best-effort delivery service -> 데이터 전달을 위해 "best effort"를 하지만 전달 보장은 안 함
- 트랜스포트 계층 다중화(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는 이에 대한 제한이 없음
- congestion control은 애플리케이션 자체보다 인터넷 전체를 위한 서비스