1. 컴퓨터 네트워킹 – flow control(흐름제어)
데이터 패킷을 전송할 때 수신 한도를 넘는 과잉 패킷의 입력으로 패킷 분실이나 로크 업(lock up)이 일어나지 않도록 패
킷의 흐름 양을 조절하는 것
Stop – and – Wait
매번 전송한 패킷에 대해 확인 응답을 받아야만 그 다음
패킷을 전송하는 방법
Sliding window
전송측이 전송한 프레임에 대한 ACK 프레임을 수신하지 않더라
도, 여러 개의 프레임을 연속적으로 전송하도록 허용하는 방법
go-back-N 과 selective repeat 방식 혼합
2. 컴퓨터 네트워킹 – congestion control(혼잡제어)
- 한 라우터에 데이터가 몰리는 경우, 그 데이터를 모두 처리할 수 없게 되고 이런 경우 호스트들은 다시 재전송을 요청한
다. 결국 오퍼플로우나 데이터 손실이 발생하는데 이때 송신측에서 보내는 데이터 전송속도를 강제로 줄이는 것
- 네트워크 내에서 패킷 수가 과도하게 증가하는 현상을 방지하거나 제거하는 것 역시 혼잡제어라 함
- AIMD(Additive Increase / Mulitcative Decrease)
처음에 패킷을 하나보내고 문제없이 도착하는 경우 윈도우를 1씩 증가시키면서 전송하는 방법
만약 패킷 전송을 실패하거나 일정시간이 넘으면 패킷을 보내는 속도를 반으로 줄이게 됨
문제점 : 초기 네트워크의 높은 대역폭을 사용하지 못하여 오랜 시간이 걸리고 혼잡해지는 상황을 미리 감지못함
3. 컴퓨터 네트워킹 – slow start
- 느린 시작 방식은 처음엔 패킷을 하나씩 보내는 것부터
시작
- 하나씩 보낸 것이 문제가 없다고 판단되면 2배씩 요청
을 증가시킴
- 처음엔 네트워크의 수용량을 예상한 정보가 없지만 한
번 혼잡 현상이 발생한 뒤, loss 값의 절반을 slow-start-
threshold 값으로 설정
- loss가 일어나기 이전 값의 congestion window size의
절반을 slow-start threshold 값 설정
4. 컴퓨터 네트워킹 – fast recovery
- 패킷을 받는 쪽에서 먼저 도착해야 할 패킷이 도착하지 않고 다음
패킷이 도착한 경우에도 ACK 패킷을 보냄
- 단, 순서대로 잘 도착한 마지막 패킷의 다음 패킷의 순번
을 ACK 패킷에 실어서 보낸다. 따라서 중간에 패킷 하나가 손실
되게 되면 보내는 측에서는 순번이 중복된 ACK 패킷을 받게 된다.
- 이때 윈도우 사이즈를 반으로 줄이고 중복되지 않은 ACK를 전송
받을 때까지 대기한다 = 유실된 패킷을 잘 받은 이후에 처리가 되
면 중복되지 않은 ACK가 도착
**TCP Reno