본문 바로가기

전체 글49

[네트워크] Chap 3.9 - Evolution of transport-layer functionality (QUIC) Evolving transport-layer functionalityTCP, UDP는 등장한지 40년이 넘은 오래된 프로토콜이다. Transport layer의 기능들이 진화함에 따라, TCP에서 UDP를 쓰는 Applicatin layer로 넘어가게 되었다.QUIC: Quick UDP Internet ConnectionsQUIC은 UDP 위에 있는 application 계층의 프로토콜이다.HTTP의 성능을 향상시키기 위한 목적으로 등장했다.(→ 정확히 말하자면 HTTP/2의 한계를 극복하는 것이 목표였다.)현재 많은 Google server와 app들에 구현되어있다. (ex. Chrome, Youtube 모바일 앱 등) HTTP/2 over TCP위에서 왼쪽 그림을 보자.HTTP/2는 loss-sens.. 2024. 11. 27.
[네트워크] Chap 3.8 - TCP congestion control & TCP fairness TCP congestion control : details Window size (W=min(rwnd,cwnd))의 의미sender(send TCP)가 receiver(receive TCP)로부터 new ACK을 받지 않고도 보낼 수 있는 최대 byte 수(ex. 노란색 부분 byte 수 => the maximum number of in-flight (unacked) bytes)TCP sending rate ≒ (cwnd bytes sent per RTT sec.) = cwnd / RTT 각 RTT 마다 send TCP가 수신하는 ACK 개수는 다르다.그 개수를 N_ACK_RTT 라고 하면 그 값은 그 RTT에 전송된 segments 개수와 같으며, 그 값은 floor(cwnd/MSS)이다. (즉 몇개의.. 2024. 11. 26.
[네트워크] Chap 3.7 - Congestion이란? Congestion이란? Congestion이란?너무 많은 source host들이 너무 많은 데이터를 빠르게 전송해서 라우터의 버퍼가 넘치는 상황을 말한다.라우터의 버퍼가 넘치면, queueing delay가 발생하여 delay가 길어지고, packet이 loss되기도 한다. flow control과 헷갈리지 말자!flow control은 하나의 sender가 하나의 receiver에게 너무 빨리 보내버리는 것이고,congestion control은 여러 sender가 데이터를 너무 빨리 보내버리는 것이다.Principles of congestion control  Congestion control: too many sender가 데이터를 너무 빨리 보내는 상황을 control하여, 라우터의 버퍼가 넘.. 2024. 11. 25.
[네트워크] Chap 3.6 - TCP flow control & Connection management TCP flow control- application이 receive buffer에서 데이터를 읽어가는 속도(A)와 sending TCP가 보내는 속도 (B) 가 다름- B가 A 보다 지나치게 크면, receive buffer 가 아무리 커도 overflow 발생할 수 있음.- 즉, 들어오는 속도가 너무 크면 버퍼를 아무리 크게 잡아도 소용 없음.   => 핵심은 버퍼의 크기가 아님. 들어오고 나가는 률의 차이가 관건!TCP flow control이란?receiver가 sender를 control하는것을 말한다.buffer의 잔여량을 알려줘서 sender host의 sending rate를 control=> receiver buffer의 overflow를 방지하기 위한 목적이다! receiver buff.. 2024. 11. 24.
[네트워크] Chap 3.5 - TCP reliable data transfer TCP reliable data transferTCP는 unreliable한 IP의 위에서, rdt를 해준다.- pipelining을 통해, out-of-order를 탐지 가능 → in-order-delivery가 가능- cumulative acks- single retransmission timer per connection RetransmissionTCP는 loss 등 뭔가 문제가 발생했을 경우 재전송을 한다.재전송은 크게① timeout이 발생한 경우② 3 duplicate ACK을 받은 경우 (timeout 이전에 빨리 재전송하는 방법이다)2가지 상황일때 시작된다.TCP sender events:1. data received from app(NextSeqNumber - SendBase) = num.. 2024. 11. 23.
[네트워크] Chap 3.4 - TCP segment structure TCP overviewpoint-to-point one sender, one receiverTCP는 1:1 통신만 지원한다. (unicast만 지원하며, multicast는 불가능하다) connection-orientedTCP는 data 전송 전에 handshaking 과정을 거치면서 control msg를 교환한다. pipeliningwindow size (w) 내에 있는 패킷들이 ACK 없이도 전송된다. full duplex같은 connection 안에서 bi-directional data flow가 가능하다. 즉 sender와 receiver의 역할이 고정되어 있지 않고, 양쪽 방향으로 데이터 전송이 가능하다. flow control sender will not overwhelm receiver즉 .. 2024. 11. 22.