[Network] 10. TCP Flow & Congestion Control
·
Computer Science/Network
목차1. Flow Control2. Congestion Control (1)3. Congestion Control (2)4. TCP Fairness1. Flow Control 💡 Overflow를 방지하기 위해 receiver's buffer를 sender에게 알림으로써 전송량을 통제한다.💡 Sender-side window = min(cwnd, rwnd) 📌 Connection ManagementTCP는 통신이 시작하기 전에 접속을 초기화하는 과정이 있다. 왜 이런 과정이 필요할까?seq # 초기값은 보안적인 이유로 난수로 지정한다. receiver의 window size를 sender에게 통지하여 OverFlow를 방지한다. (불필요한 재전송 방지)이 두 가지 정보를 교환해야 하는데, 굳이 따로..
[Network] 9. Connection-oriented transport: TCP
·
Computer Science/Network
목차 1. Overview 2. TCP Sequence number와 ACKs 3. TCP Sender event 4. TCP Fast Retransmit 5. TCP Timeout and RTT 1. Overview Point-to-point 하나의 소켓에는 하나의 서버와 클라이언트가 연결되어 있다. 즉, process와 process의 1:1 통신이다. Reliable, in-order byte stream No "message boundaries" 메시지 경계가 없다는 게 뭔가 했더니 StackOverFlow에 답이 있었다. (역시...) UDP는 "FOO", "BAR"라고 보내면 그대로 딱딱 맞게 가야하지만, TCP는 뒤섞여서 보내진다. (어차피 seq#로 재조립 가능하기 때문) Full dupl..
[Network] 8. Pipelined Protocols
·
Computer Science/Network
수업 들을 때도 제법 헷갈리던 부분인데, 생각보다 정리하는데 오래 걸렸다. 나중에 다시 봐야지 목차 1. Performance of rdt 3.0 2. Pipelining 3. Go-Back-N 4. Selective Repeat 1. Performance of rdt 3.0 📌 As-is : stop-and-wait (non-pipelining) 기존의 stop-and-wait은 상당히 비효율적이다. RTT(Round Trip Time) 내에서 하나의 packet을 보내고 기다리는 동안 sender가 아무 것도 할 수가 없다. 이렇게 한 RTT 내에서 하나의 packet만 주고 받는 것을 non-pipelining 방식이라고 한다. 예를 들어, 1Gbps link, 30ms RTT 환경에서 8000bi..
[Network] 7. Principles of Reliable Data Transfer
·
Computer Science/Network
목차 1. Reliable Data Transfer 2. rdt 1.0 : 모든 게 이상적인 환경 3. rdt 2.0 : Bit errors (no loss) 4. rdt 2.1 : Introducing Sequence Number 5. rdt 2.2 : NAK-free Version 6. rdt 3.0 : Lossy Channel With Bit Error 7. Summary 1. Reliable Data Transfer rdt는 reliable data tranfer protocol을 의미하는 가상의 프로토콜이다. (실제로 없는 개념) 📌 As-is Reliable channer : 신뢰적인 데이터 채널 (Transport Layer) Unreliable channer : 비신뢰적인 데이터 채널 (N..