네트워크 혼잡의 원인 : 너무 많은 출발지가 너무 높은 속도로 많은 데이터를 보내려고 시도
-> 이를 처리하기 위해서는 네트워크 혼잡을 일으키는 송신자들을 제어하는 매커니즘이 필요
시나리오 1 : 2개의 송신자와 무한 버퍼를 갖는 하나의 라우터 -> buffer overflow 가 나지 않음
- 두 호스트 A와 B가 각각 출발지와 목적지 사이에서 단일 홉을 공유하는 연결을 갖는다.
- 호스트 A와 B의 애플리케이션이 λin 바이트/초의 평균 전송률로 데이터를 전송하고 있다.
- 라우터 버퍼의 양은 무한하다고 가정한다.
- 연결당 처리량(per-connection throughput) : 수신자 측에서의 초당 바이트 수
- 0 ~ R/2 사이의 전송률 : 수신자 측의 처리량은 송신자의 전송률과 같다.
- R/2 이상의 전송률 : 처리량은 R/2
- 즉, 호스트 A와 B가 전송률을 아무리 높게 설정하더라도 각자 R/2보다 높은 처리량을 얻을 수 없다
A와 B가 각각 1/2씩 합치면 R
- 평균 지연
- 전송률이 R/2에 근접할 경우 : 평균 지연은 점점 커진다.
- 전송률이 R/2를 초과할 경우 : 무제한 (무한한 사용 가능한 버퍼링을 가정) -> queueing delay랑 흡사함 .
- -> segment가 점점 쌓이는 형태.
- 라우터 버퍼의 양이 유한하다고 가정한다. → 버퍼가 가득 찼을 때 도착하는 패킷들은 버려진다.
- 각 연결은 신뢰적이라고 가정한다. → 패킷이 라우터에 버려지면 송신자에 의해 재전송될 것이다. ->확실할 때
- 네트워크 안으로 세그먼트를 송신하는 트랜스포트 계층에서의 송신율(제공된 부하, offered load)
: λ'in 바이트/초 = 최초의 데이터 전송과 재전송 합의 속도
a. 어떠한 손실도 발생하지 않는 경우 (버퍼가 비어 있을 때만 패킷을 송신)
- 연결의 처리량 = λin
- 평균 호스트 송신율은 R/2를 초과할 수 없다.
b. 패킷이 확실히 손실된 것을 알았을 때만 송신자가 재전송하는 경우
- 제공된 부하 λ'in이 R/2일 경우 : 데이터의 전송률은 R/3
- 전송된 데이터의 R/2 중
- 0.333R 바이트/초는 원래의 데이터
- 초당 0.166R 바이트/초(평균)는 재전송 데이터
송신자는 buffer overflow 때문에 버려진 패킷을 보상하기 위해 재전송을 수행해야 한다.
c. 송신자에서 너무 일찍 타임아웃되어 패킷이 손실되지 않았지만, 큐에서 지연되고 있는 패킷을 재전송하는 경우
- 원래의 데이터 패킷과 재전송 패킷 둘 다 수신자에게 도착한다.
- 각 패킷이 라우터에 의해 두 번씩 전달된다고 가정했을 때, 제공된 부하가 R/2일 때의 처리량은 R/4
시나리오 2의 요약
커다란 지연으로 인한 송신자의 불필요한 재전송은(time out에 의해 실제로는 loss가 발생하지 않았으나 재전송 한 경우 그럴 경우 마지막에 버리게 ) 라우터가 패킷의 불필요한 복사본들을 전송하는 데 링크 대역폭을 사용하는 원인이 된다.
- 4개의 호스트는 겹쳐지는 2홉 경로를 통해 패킷을 전송한다.
- 각각의 호스트가 타임아웃/재전송 매커니즘을 허용이 된다.
- 모든 호스트는 λin의 동일한 값을 가진다.
- 모든 라우터 링크는 R 바이트/초 옹량을 갖는다.
여기서 홉이란?
홉(Hop):
- 홉은 네트워크에서 패킷이 한 노드에서 다음 노드로 이동하는 것을 나타내는 단위이다. 이는 패킷이 네트워크를 통해 전달될 때 거치는 각 단계를 의미한다. 예를 들어, A 노드에서 B 노드로 패킷을 보내고, 그 다음에 B 노드에서 C 노드로 패킷을 보내는 경우, A에서 B로 가는 단계와 B에서 C로 가는 단계 각각을 홉이라고 할 수 있다
- 라우터 R2는 λin과 관계없이, R1에서 R2까지의 링크 용량, 최대 R인 도착률을 가질 수 있다.
- A ~ C와 B ~ D의 트래픽은 버퍼 공간을 라우터 R2에 경쟁해야 한다.
→ R2를 성공적으로 통과하는 A ~ C의 트래픽의 양은 B ~ D에서 제공된 부하가 크면 클수록 더 작아진다.
트래픽이 많은 경우 A~C 종단 간 처리율이 0이 된다.
아래 그래프처럼 제공된 부하와 처리량 간의 tradeoff가 발생한다.
λin이 R/2가기전에 0에 수렴하게 된다. 도착을 거의 안하게 된다.
패킷이 경로상에서 버려질 때, 버려지는 지점까지 패킷을 전송하는 데 사용된 상위 라우터에서 사용된 전송 용량(buffer, link)은 낭비된 것이다 -> output이 안나오므로 ...
따라서 못넘어가게 Source에서 양을 조절해서 congestion 상황으로 몰리지 않게 한다.
종단 간의 혼잡 제어
네트워크 계층은 혼잡 제어 목적을 위해 트랜스포트 계층에게 어떤 직접적인 지원도 제공하지 않는다.
따라서 네트워크에서 혼잡의 존재는 단지 관찰된 네트워크 동작(packet loss 및 delay)에 기초하여 종단 시스템이 추정해야 한다.
이는 TCP가 혼잡 제어를 위해 취하는 방식이다.
- TCP 세그먼트 손실과 증가하는 왕복 지연값을 네트워크 혼잡의 발생 표시로 간주한다.
- TCP는 그에 따라서 전송량(Window Size)을 줄인다.
네트워크 지원 혼잡 제어
라우터들은 네트워크 안에서 혼잡 상태와 관련하여 송신자나 수신자 또는 모두에게 직접적인 피드백을 제공한다.
- ATM ABR(Available Bite Rate) 혼잡 제어에서 라우터는 자신이 출력 링크(outgoing link)에 제공할 수 있는 전송률을 송신자에게 명확히 알릴 수 있게 해준다.
- 최근 IP와 TCP가 이 방식을 선택적으로 구현할 수 있다.
혼잡 정보가 전달되는 두 가지 방법 → 둘 중 하나로 네트워크에서 송신자에게 피드백된다.
- 직접 피드백
- 네트워크 라우터 → 송신자
- 알림의 형태 : 초크 패킷(choke packet)
- 송신자에서 수신자에게로 흐르는 패킷 안에 특정 필드에 표시/수정
- 수신자가 표시된 패킷을 수신했을 때, 혼잡 상태를 송신자에게 알린다.
- 완전한 왕복 시간이 걸린다.
'컴퓨터 네트워크' 카테고리의 다른 글
컴퓨터 네트워크 4장- 네트워크 계층 개요 (0) | 2024.05.18 |
---|---|
컴퓨터 네트워크 3장- 혼잡제어 (0) | 2024.04.21 |
컴퓨터 네트워크 3장 - 연결지향형 트랜스포트: TCP (0) | 2024.04.13 |
컴퓨터 네트워크 3장- 신뢰적인 데이터 전송의 원리 (0) | 2024.04.12 |
컴퓨터 네트워크 3장- 비연결형 트랜스포트: UDP (0) | 2024.04.12 |