TCP flow control
데이터를 조금씩 보내보는 것이다. 괜찮으면 양을 늘려서 보낸다. 이때는 exponential하게 양을 늘리다가 threshhold를 만나면 linear하게 늘리면서 보낸다. 그러다가 어느 순간 패킷이 안돌아오면 절반으로 확 떨어뜨린다.
확 떨어뜨리는 이유는 네트워크는 공유 자원이기 때문에 조금씩 줄인다고 해결되지 않기 때문이다.
즉 처음에는 윈도우 사이즈가 1에서 시작하는데 점점 늘어나는 것이다.
tcp에서 패킷 유실을 탐지하는 방법은 두가지이다.
1. timeout
2. 3 duplicated Ack
하지만 위의 두 상황은 네트워크 입장에서 다르다.
3 duplicated Ack는 다른건 잘가는데 하나만 안간거다
timeout은 network 자체가 문제인 상황이다.
그래서 timeout에 의한 것이면 다시 밑바닥부터 시작이고 3 duplicated Ack에 의한 것이면 조금만 줄인다. 이렇게 차이를 인지하는 버전이 Series 2이다.
TCP는 개개인들에게 형평성을 어떻게 보장할까?
어느 한 개가 많이 쓰게되면 절반으로 줄이는 과정을 반복하기 때문이다.