송신 측과 수신 측의 데이터 처리 속도 차이 해결하기 위한 기법
Flow control은 receiver가 패킷을 지나치게 많이 받지 않도록 조절
receiver가 sender에게 본인의 상태를 feedback함
방법
Stop and Wait : 매번 전송한 패킷에 대해 확인 응답을 받아야만 다음 패킷 전송
Sliding Window (Go Back N ARQ : 오류 제어 시)
수신 측에서 설정한 윈도우 크기만큼 송신측에서 확인 응답 없이 세그먼트를 전송할 수 있게 하여 데이터 흐름을 동적으로 제어
송신 측에서 프레임에 번호를 붙여 윈도우 크기만큼의 프레임을 차례대로 전송하고 대기
이때, 전송한 프레임을 버퍼에 저장 (버퍼의 개수 = 윈도우 크기)
수신 측에서 프레임의 수신을 완료하면 그 결과를 ACK+프레임 번호 형식으로 송신 측에 통보
송신 측은 ACK를 확인하면 해당 프레임을 버퍼에서 지우고 다음 차례의 프레임을 버퍼에 저장하고, 수신 측에 전송
'3 way handshaking'을 통해 수신 호스트의 receive window size에 자신의 send window size를 맞추게 된다.
피기 배킹
양방향 전송을 지원하는 경우
ACK를 별도의 응답으로 보내지 말고, 정보 프레임에 담아 함께 보내면 전송 횟수를 줄이는 효과
AIMD (Addictive Increase/ Multiplicative Decrease) (합 증가 / 곱 감소)
Slow Start (느린 시작)
초기 수용량을 예상할 수 있는 정보는 없지만, 한 번 혼잡이 발생하면 어느정도 예상 가능 → 혼잡이 발생하는 window 크기의 절반까지는 이전처럼 2배씩 증가, 이후 부터는 1씩 증가
Fast Retransmit (빠른 재전송)
Fast Recovery (빠른 회복 정책)
패킷 통신 방식 프로토콜 → 3계층인 Network Layer에 존재
패킷 전달 여부를 보증하지 않음 → 패킷을 보낸 순서와 받은 순서가 다를 수 있음.
→ 이걸 TCP가 관리해줌