A: Sender, B:Receiver
read를 하면 rec buf에서 data가 올라가는 것이다.
Recv buf의 크기만큼(빈공간 만큼) Sender가 보내주는 것을 Flow control이라고 한다.
Header에 RecvBuffer라는 공간의 필드가 있다. 이 부분이 얼마만큼 빈공간이 있는지를 알려주는 것이다.
Flow control은 매우 중요한 기능중 하나임.
Flow control은 보내는 양? 보내는 속도? 어떤 것을 조절하는 것인가.>> 속도를 조절하는 것임. 1초동안 얼마의 데이터를 보낼 것인가 에 대한 답이므로
-.Sender에서는 보낼 Data가 있지만 리시버에서 계속 버퍼가 꽉차있다고 한다면, Sender는 주기적으로 리시버의 버퍼 상태를 체크하기 위해 빈공간의 데이터라도 그냥 보내서 ack를 확인한다.(버퍼의 크기 확인)
SYNbit가 평소에는 0인데, TCP Connection을 열고자 할때 1이 된다. 처음에는 TCP Connection을 여는 것과, 상대방에게 나의 Seq No를 알려준다.
3번째는 실제 데이터가 들어간다.