흐름제어와 혼잡제어는 TCP 통신에 관한 두가지 기법이다.
TCP 통신에는 4가지 문제점이 존재한다.
- packet이 손실될 수 있다.
- packet의 순서가 바뀔수 있다.
- 네트워크가 혼잡하다. (Congestion)
- 수신자가 과부하되어 데이터를 받을 수 없게 된다.
흐름제어
송신과 수신 간의 데이터 처리 속도 차이를 해결하기 위한 것이다.
송신 쪽 전송량이 수신측 처리량보다 클 경우 패킷이 전송량을 제어해줘야 한다.
흐름제어에는 두가지 방식이 있다.
1. Stop and Wait (정지 - 대기)
먼저 전송한 패킷에 대한 응답을 받아야 그 다음 패킷을 전송할 수 있다.
2. Sliding Window
수신 측에서 설정한 윈도우 크기만큼 송신 측에서 응답 없이 세그먼트(데이터 작은 단위)를 전송할 수 있게
해서 데이터 흐름을 동적으로 조절한다.
혼잡제어
네트워크 혼잡을 피하기 위해 송신 쪽에서 보내는 데이터의 전송 속도를 제어한다.
송신 쪽 데이터 전달과 네트워크 데이터 처리 속도 차이를 해결하기 위한 기법이다.
- AIMD
처음에 패킷을 하나씩 보내고 도착하면 윈도우크기를 1씩 증가시키며 전송하는 방법이다. - 느린 시작
방식은 AIMD와 동일하나 전송속도가 지수 함수 꼴로 증가하고 혼잡 현상이 발생하면 윈도우크기를 1로 떨어뜨린다. - 빠른 재전송
문제가 되는 순서의 패킷을 재전송 해줄 수 있다. - 빠른 회복
혼잡 상태가 되면 윈도우크기를 1로 줄이지 않고 반으로 줄이고 선형증가시킨다.
흐름 제어 : 송신측과 수신측 간의 데이터 처리 속도 차이를 조절해 데이터 손실을 방지하는 것
혼잡 제어 : 네트워크의 혼잡을 피하기 위해 송신측의 전송 속도를 조절하는 것
출처
TCP/IP (흐름제어/혼잡제어) | 👨🏻💻 Tech Interview
최종 수정 : 12/17/2022, 7:23:59 AM
gyoogle.dev
https://velog.io/@chullll/%ED%9D%90%EB%A6%84%EC%A0%9C%EC%96%B4-%ED%98%BC%EC%9E%A1%EC%A0%9C%EC%96%B4
흐름제어 & 혼잡제어
흐름제어 송신측과 수신측 사이의 데이터 처리 속도 차이를 해결하기 위한 기법이다 송신 측의 전송량 > 수신측의 처리량인 경우, 패킷이 수신 측의 큐를 넘어 손실될 수 있어서 송신측 패킷 전
velog.io
'컴퓨터 네트워크' 카테고리의 다른 글
컴퓨터의 메모리 (0) | 2024.10.14 |
---|---|
컴퓨터 CPU (0) | 2024.10.14 |
OSI 응용계층 (0) | 2024.09.25 |
TIL 240924 (OSI 전송 계층) (0) | 2024.09.24 |
OSI 데이터링크 계층 (0) | 2024.09.04 |