[네트워크] 네트워크 계층 - 혼잡, 혼잡 제어
혼잡의 원인
1. 네트워크의 처리 능력보다 많은 패킷이 입력되었을 경우
2. 라우터의 출력 선로를 통한 전송 용량 부족
3. 프레임 분실 혹은 Timeout으로 인한 재전송에 의한 트래픽 증가
4. 응답 프레임에 의한 트래픽 증가
5. 피기배킹에 의한 Timeout
6. 잘못된 라우팅 알고리즘
7. 과도하게 크거나, 과도하게 작은 TTL
TTL (Time To Live)
네트워크 상으로 송신된 패킷은, 수신 호스트에 도달할 때까지 무한정 이동하지 않는다. TTL은 패킷의 생존 시간을 의미하는데, 이는 홉을 하나 지날 때마다 1씩 감소시켜 0이 되면 패킷을 삭제하는 구조이다.
예를 들어, TTL이 16인 패킷은 16개의 라우터를 지나도 수신 호스트에 도달하지 못했을 경우, 폐기된다.
혼잡 제어
흐름 제어는 송수신 호스트 간의 논리적인 점대점 전송 속도를 다룬다. 혼잡제어는 호스트와 라우터를 포함한 서브넷에서의 네트워크 전송 능력 문제를 다룬다.
버스트 현상과 트래픽 성형
트래픽이 특정 시간에 집중되는 현상을 버스트 현상이라고 한다. 혼잡은 버스트 현상에서 기인하는 경우가 많다.
즉, 짧은 시간 안에 패킷이 많이 발생하는 경우에 혼잡이 일어날 확률이 높다.
트래픽 성형은 송신 호스트가 전송하는 패킷 발생 빈도를 예측할수 있는 전송률로 이루어지도록 하는 기능이다.
송신 호스트는 네트워크와 협상해 네트워크로 유입되는 패킷의 특성을 조율한다. 과도한 양의 패킷을 전송하면 네트워크에서 패킷 처리를 늦추거나 거부하는 등의 방법으로 적절히 통제해야 한다.
트래픽 성형과 관련된 알고리즘으로 리키 버킷(Leaky Bucket)이 있다.
리키 버킷
리키 버킷은 송신 호스트가 과도한 패킷을 발생 시키려고 해도, 버퍼를 통해 패킷이 발생되는 속도를 저장한다. 버퍼를 초과할 정도의 패킷이 발생되면, 패킷 분실 오류가 발생한다.
혼잡 제거
가상 회선 방식의 서브넷에서 혼잡을 감지했을 때, 혼잡이 사라질 때까지 연결 설정을 허락하지 않는 방식이다.
실제 네트워크에서는 일부 지점에서 혼잡이 발생하는 경우가 많기 때문에, 패킷의 전송 경로를 조정해줌으로써 혼잡을 피하도록 가상 회선 연결을 설정하는 방안이 필요하다.
자원 예약
가상 회선 연결 과정에서 사용하는 대역을 미리 할당받음으로써, 혼잡을 미리 방지하는 방식이다.
이는 할당받은 대역을 사용하지 않거나 필요 이상으로 할당 받았을 경우, 트래픽을 낭비할 수 있다.
ECN (Explicit Congestion Notification) 패킷
라우터의 특정 출력 선로의 사용 정도가 한계치를 초과하면 주의 표시를 해두며, 송신 호스트에게 ECN 패킷을 전송한다. 이를 받은 송신 호스트는 전송하는 패킷의 양을 줄인다.