Computer Networking

[컴퓨터 네트워크] chap3. Transport Layer

rngPwns 2024. 10. 22. 12:06

3.1 Transport-layer sevices

  • 기본적인 목적: network 계층에서 host to host를 deliver해준다면 목적지 host까지 온 후 목적지 process 찾아갈 수 있어야 한다.
  • 서로 다른 호스트에서 실행되는 앱 프로세스 간의 논리적 통신 제공(application 프로세스 간 end-to-end communication)
  • 전송프로토콜은 end systems(hosts)에서만 실행
    • 발신자는 앱 메시지를 내려받은 후 segment로 분할하여 네트워크 계층으로 전달(네트워크 계층에서 목적지 호스트 찾아감)
    • 수신자(목적지 호스트)는 segment를 메시지로 재조립하여 앱 계층으로 전달(그대로 보관해서)
  • 인터넷 어플리케이션에 사용할 수 있는 두 가지 transport 프로토콜 : TCP, UDP

  • L4에서의 TCP segmentation-> 바운더리 인식 X(어플리케이션에서 내려보내는 메시지 byte stream 으로 봄), TCP의 버퍼에 쫙 들어옴-> 버퍼로부터 일정 maximum segment만큼 떠서 네트워크 계층으로 내려보냄(maximum segment size로 최대한 크게 만듦(segment 하나 당 header가 붙음-transport, network ...), segment 가 작으면 작을수록 동일한 양의 데이터 내보내는 데 overhead의 비중 커짐. transport 계층에서는 가급적 한 번에 많은 바이트 내보내길 원함(MTU_maximum transmission unit_네트워크 인터페이스마다 다름_최대 크기에서 네트워크 계층에서 붙일 header 뺀 크기)보다는 작게. -> 물리적으로 내보낼 수 있는 최대 frame 수 고정_ network interface card가 허용하는 최대 size 안에 들어갈 수 있도록 network 계층에서 붙일 header 붙임. ->link 게층도 network interface card가 허용하는 선에서 헤더 붙임 ->쭉 내려보낸 메시지는 network interface card 통해서 medium으로 돌아가게 됨
  • (L4에서의 UDP) L3에서의 IP fragmentation : transport 계층에 한덩이씩 내보냄 -> network 계층에서 올려보낼 때 내보낸 message boundary 지켜진 상태로 올려보냄. segmentation과 달리 덩어리 일정한 크기x. link transmission rate =R (MTU)
    • MSS : TCP연결 설정 시 설정됨
    • MTU : NIC(네트워크 인터페이스 카드)와 관련됨 ,네트워크 계층에서 데이터 포장하는 사이즈

 

  • 전송계층과 네트워크 계층 서비스와 프로토콜
    • 네트워크 계층: 호스트 간 논리적 통신(계층적으로 이루어져 있음-> 윗 계층은 아랫계층이 제공하는 서비스 이용하여 자기가 추가적인 서비스 제공)
    • 전송계층 : 프로세스 간 논리적 통신(네트워크 계층 서비스에 의존, 네트워크 계층 서비스 향상), 네트워크 계층의 호스트간 delievery service 이용->네트워크 계층이 호스트간 delivery 해 주면 + 목적지에 도착한 것을 application에 전달(프로세스간 end-to-end 통신 제공)
    • mux, demux : end-to-end process간 통신
  • transport layer acitons

*transport 계층에서 제공하는 가장 기본적인 서비스, TCP, UDP 둘 다 제공

  • sender : 애플리케이션 계층 메시지 전달, 세그먼트 헤더 필드 값 결정, 세그먼트 생성, 세그먼트  ip로 전달

수신자 : IP에서 세그먼트 수신, 헤더 값 확인, 애플리케이션 계층 메시지 추출> 소켓을 통해 애플리케이션으로 메시지 demux

[두가지 주요 인터넷 전송 프로토콜 애플리케이션]

  • TCP와 UDP : Mux/ Demux -적절한 프로세스(소켓)찾기
    • TCP : 전송 제어 프로토콜
      •  안정적으로, in-order로 전송, 혼잡 제어('네트워크 혼잡> loss발생> loss 복구 위한 delay 소요' 피하기 위해) 흐름제어(너무 빨리 보내면 receiver측 버퍼 overflow, 연결설정(연결해제도)- 이러한 기능+mux, demux 하기 위해 connection set up , 다 끝나면 연결 끊어줌.  -추가적기능 o
    • UDP : 사용자 데이터그램 프로토콜
      • 불안정적, 순서정렬 X 전송, "최선의 노력" IP의 무분별한 확장 - 추가적기능x
    • 둘 다 delay 보장, 대역폭 보장 x(스트리밍 앱에 필요)

3.2 Multiplexing and demultiplexing

  • sender에서의 mux : 여러 소켓의 데이터처리, 전송헤더 추가(나중에 demux에 사용)
  • receiver에서의 demux : 헤더정보 사용하여 수신된 segmetn 를 올바른 소켓으로 전달, 목적지 process를 찾아주는 과정 - message mux(나중에 demux 가능한 정보 실어줌): sender측 기능할 때 mux 이루어짐
  • demux 가 작동하는 방식 : 호스트가 datagram 수신(각 데이터그램에는 소스 및 대상 ip주소 있음, 각 데이터그램은 하나의 전송 계층 세그먼트 전달, 각 세그먼트에는 소스 및 대상 포트 번호 있음) , 호스트는 ip주소와 포트번호 사용하여 세그먼트를 적절한 소켓으로 전달 - host가 ip datagram 받음 -> ip로부터 trasnport 계층으로 올라온 걸 적절한 socket 찾아줌

 

연결없는 demux

 

*나중에 추가하기

 

3.3 Connectionless transport : UDP

 

3.4 Internet checksum used by TCP & UDP

 

3.5 Principles of reliable data transfer (rdt)

TCP만 제공 NOT UDP

3.6 Connection-oriented transport: TCP

 

3.7 Principles of congestion control

TCP만 제공 NOT UDP

 

3.8 TCP congestion control

congestion - network에 sender 집어넣은 traffic이 주체. sender들의 transmission rate 낮추게 함(throught)

3.9 TCP fairness

 

3.10 Evolution of transport-layer functionality

공정성 신경써야 함. TCP가 과연 fair하게 congestion control 하나?

delay에 대한 요구사항, security에 대한 요구사항 (현재 인터넷에서 사용하는 UDP, TCP는 제공하지 X) -앞으로 어떻게 evolve될 것인가.