... | ... | @@ -674,11 +674,11 @@ TCP는 분리된 메시지를 보내는 것이 아니라, 데이터를 바이트 |
|
|
4. Reliability through ACK
|
|
|
데이터를 송신하고 수신자로부터 ACK를 받지 않으면, 송신자 TCP가 데이터를 재전송한다.
|
|
|
5. Flow control
|
|
|
송신자는 수신자가 받을 수 있는 만큼 데이터를 전송한다. 송신 속도보다 수신 속도가 빠를 경우에는 문제가 없지만, 반대의 경우에는 문제가 발생한다. 수신측의 제한된 용량을 넘어서면 데이터가 손실될 수 있기 때문이다. 때문에 수신자는 자신이 받을 수 있는 바이트 수 (사용하지 않은 버퍼 크기, receive window)를 송신자에게 전달한다. 송신자는 수신자 receive window가 허용하는 바이트 수만큼 데이터를 전송한다.
|
|
|
송신자는 수신자가 받을 수 있는 만큼 데이터를 전송한다. 송신 속도보다 수신 속도가 빠를 경우에는 문제가 없지만, 반대의 경우에는 문제가 발생한다. 수신측의 제한된 용량을 넘어서면 데이터가 손실될 수 있기 때문이다. 때문에 수신자는 자신이 받을 수 있는 바이트 수 (사용하지 않은 버퍼 크기, receive window)를 송신자에게 전달한다. 송신자는 수신자 receive window가 허용하는 바이트 수만큼 데이터를 전송한다.
|
|
|
6. Congestion control
|
|
|
네트워크 정체를 방지하기 위해 receive window와 별도로 congestion window를 사용하는데 이는 네트워크에 유입되는 데이터양을 제한하기 위해서이다. Receive window와 마찬가지로 congestion window가 허용하는 바이트 수만큼 데이터를 전송한다. Flow control과 달리 송신자가 단독으로 구현한다.
|
|
|
|
|
|
|
|
|
6. Congestion control
|
|
|
네트워크 정체를 방지하기 위해 receive window와 별도로 congestion window를 사용하는데 이는 네트워크에 유입되는 데이터양을 제한하기 위해서이다. Receive window와 마찬가지로 congestion window가 허용하는 바이트 수만큼 데이터를 전송하며 여기에는 TCP Vegas, Westwood, BIC, CUBIC 등 다양한 알고리즘이 있다. Flow control과 달리 송신자가 단독으로 구현한다.
|
|
|
|
|
|
12. **LINQ 결과인 IEnumerable<T>를 for 문으로 루프 돌때, breakpoint 걸어서 확인해보기**
|
|
|

|
|
|
|