CS/Network

[Network] Transport Layer, Mux & Demux

sebinChu 2024. 4. 24. 15:04

개요

TCP Keywords

  • reliable data transfer
  • flow control
  • congestion control

Transport Layer가 하는 일

  • 서로 다른 host의 프로세스 간 Logical communication 제공
  • 프로토콜은 End System 즉, host에서 돌아간다.
    • Network 계층의 라우터들을 거쳐서 데이터들이 전달되지만, Transport 계층은 이 거쳐가는 과정은 보이지 않고 두 엔드 시스템(프로세스) 사이의 Logical Communication에만 집중한다.
    • Sender: App Layer의 메시지를 segment 단위로 메시지를 잘라서, Transport Layer의 헤더를 붙이고 Network Layer로 전송
    • Receiver: 받은 segment를 합쳐서 메세지를 만들고 App Layer로 전달

 

⇒ App ↔ Transport가 메시지를 주고 받을 때 자르고/붙이고 함

⇒ Transport Layer의 핵심은 Multiplexing & Demultiplexing

 


 

Transport Layer vs. Network Layer

Network: host 간 logical 통신(우편 배달)

Transport: process 간 logical communication(배달이 된 우편들을 정확히 배분 ex. 12명 ↔ 12명 각각의 이름 매칭)

 


Transport - ① reliable ② unreliable

①  reliable & in-order TCP

  • 보낸 그대로, 순서대로 전달한다.
  • congestion control
  • flow control 

📖 커넥션을 맺어야 통신이 가능하다.

  • connection setup 

 

② unreliable & unordered

중간에 날아갈 수 있고, 순서 상관없이 도달 ⇒ 그저 “전달만”!!

 


TCP, UDP가 모두 해줄 수 없는 것은

  1. 언제까지 도달하도록 보장할 순 없다.
  2. 속도 유지를 보장할 수 없다.
    • 예를 들어, 스트리밍 중에 계속 몇 bps로 속도를 유지할 것인지는 보장 X

 

 


Multiplex & Demultiplex

멀티플렉스: 프로세스로부터 받은 패킷에 포트 번호를 넣어 헤더를 만들어서, 하나의 통로로 하위 계층에 보냄.

★ 디멀티: 그 반대, Transport 계층으로 오면 전송된 세그먼트의 헤더 정보를 확인해서 적절한 프로세스의 문(목적지)에 도달하게끔 함.

 

TCP와 UDP의 Demux

디멀티플렉스는 받은 소켓의 헤더 정보를 확인해서 적절한 프로세스와 연결해주는 것.

TCP와 UDP는 Demux하는 방식이 다르다. 각각 Connection-oriented, Connectionless

 

 

① Connectionless Demux

  1. Datagram 소켓을 생성
  2. desincation IP, Port로 전송
  3. 받는 호스트 측에서 UDP Segment를 확인해서, Destination Port가 같다면 OK

⇒ 즉 (src_ip, src_p, dst_ip, dst_pt) 중 dst_pt만 확인해서 같은 소켓으로 보낸다. 보내는 쪽의 주소와 포트 넘버가 달라도 Desination 정보가 같으면 같은 곳으로 보내짐!

 

 

② Connection-Oriented Demux

(src_ip, src_p, dst_ip, dst_pt) → 이 네 가지 값을 하나의 튜플로 묶어, 정보로 활용한다.

TCP에서는이 네가지 정보가 담긴 튜플을 활용해서 segment를 적절한 소켓으로 전달한다.

  • 웹 서버는 TCP를 사용하는데, 클라이언트와 커넥션을 맺을 때마다 다른 소켓을 사용한다.→ non-persistent HTTP는 요청마다 새 커넥션을 하기 때문에 모두 다른 소켓을 사용한다.
    • reliable data transfer
    • flow control
    • congestion control