본문 바로가기

CS/컴퓨터네트워크

transport layer 용어정리

transport 계층 핵심 개념

- multiplexing / demultiplexing

 

multiplexing : 나중에 목적지에 가서demultiplexing 될 수 있도록 sender측에서 transport header 붙여줌

demultiplexing : header info 이용하여 올바른 socket 찾아갈 수 있도록 한다.

 

어떤 socket을 찾기 위해서 ip address로 host로 온 후 -> port 번호가지고 socket 찾아간다

 

<UDP datagram>

DNS, SNMP, HTTP/3는 UDP 위에 올라

checksum : error가 있냐 없냐만 판단 (recovery 하지않음)

-> error있을때 버릴지 올릴지는UDP가 원하는대로 함

 

UDP checksum

: sender측에서 계산한 checksum과 받은 checksum이 같은지 비교해서 error detect 한다.

: 계산 방법

  -> 두 개의 16bit을 binary로 생각하고 더함(carry 발생하면 제일 뒤에다가 1 더해줌) 이러한 더한 결과를 ones-complement 취함(0->1로 1->0으로).이 결과가 checksum 된다.


network는 unreliable이기에 transport에서 reliable되게끔 reliable data transfer protocol 이용해 처리해줘야함

-> reliable보장해주기 위한 구성요소

   -> checksum, acknowledgement, negative ackknowledgement, sequence number, timer, pipelining&window

ack : error recovery 역할

pipelining: ack 받지않은 상태의sement가 여러 개일 수 있게 해줌 (하나 보내고 그에 대한 ack 받기 전까지 data 아예 안보내면 자원낭비이기에 필요하다)

window : pipelining의 규모 (maximum n개까지 가능하다 제한 둔다)

 -> window size 정하는 기준 

   1. receiver가 receive할 수 있는 ability & buffer message

   2. level of congestion in network

timeout 지나면 loss 발생했다 생각하고 retransmit 한다


TCP

flow control : sender가 receiver를 overwhelm 하지 않는다

congestion control : sender가 network를 overwhelm 하지 않는다

full-duplex data :주기만/받기만 하지 않고 주고 받는다 ( sender, reciever 둘다 seq랑 ack 모두 주고 받는다 )

 

timeout을 너무 크거나 작게 잡으면 안되고 적당히 잡아야한다

-> 이를 위해 RTT를 estimate한다.

  -> Sample RTT이용하여 estimate

     sample RTT란?

       : 특정 segment를 보내고나서 ack 받기 전까지 걸리는 시간 

   retransmit한 data에 대한 SampleRTT는 timeout 시간조정에 반영하지 않는다

estimated RTT : sampleRTT들을 평균낸 값

estimated RTT= (1-a)*estimated RTT + a*SampleRTT

-> sample이 old할수록 sample의 영향이 낮아진다

 

timeout interval = estimatedRTT + 4*DevRTT(safety margin)

DevRTT : sample이 estimatedRTT로부터 얼마나 벗어낫겠느냐

 

retransmission 유발 요소

1. timeout

2. 3 duplicate acks

'CS > 컴퓨터네트워크' 카테고리의 다른 글

Network layer - Router  (0) 2023.12.12
Network layer - overview of Network Layer  (0) 2023.12.12
application layer-4 (DNS)  (0) 2023.10.25
application layer-2  (0) 2023.10.24
application layer-1  (0) 2023.10.24