TCP에서 흐름 제어와 혼잡 제어의 차이점은 무엇입니까?


82

TCP에서 흐름 제어와 혼잡 제어의 차이점은 무엇입니까?

이 질문은 두 부분으로 나눌 수 있습니다.

  1. 흐름 및 혼잡 제어의 전반적인 목적은 무엇입니까?
  2. 작업은 어떻게 완료됩니까?

Wikipedia 에 따르면 TCP 흐름 제어는 ACK 메시지에보고 된 창 크기에 의존합니다. 혼잡 제어는 승인 메시지에도 의존합니다. 두 목표의 차이점과 작동 방식을 알고 싶습니다.


46
숙제 질문이 아닙니다. 더 많은 면접 준비 질문. 그것에 대해 "주제에서 벗어난"것은 무엇입니까? @EJP
GM Lucid

답변:


125

1 부, 슈퍼 일반 개요 :

흐름 제어는 수신 측에서 제어합니다. 발신자는 수신자가 처리 할 수있는 것만 전송하도록합니다. 고속 광섬유 연결을 사용하는 사람이 전화 접속 또는 이와 유사한 방식으로 누군가에게 전송하는 상황을 생각해보십시오. 발신자는 패킷을 매우 빠르게 보낼 수 있지만 전화 접속시 수신자에게는 쓸모가 없으므로 발신자가 보낼 수있는 것을 제한하는 방법이 필요합니다. 흐름 제어는이 통신이 원활하게 진행되도록하기 위해 사용 가능한 메커니즘을 다룹니다.

혼잡 제어는 네트워크의 모든 사람이 주어진 시간에 "공정한"양의 네트워크 리소스에 액세스 할 수 있도록하는 방법입니다. 혼합 네트워크 환경에서는 모든 사람이 동일한 일반 수준의 성능을 가정 할 수 있어야합니다. 이를 이해하는 데 도움이되는 일반적인 시나리오는 사무실 LAN입니다. 사무실에는 LAN 내에서 모든 작업을 수행하는 여러 LAN 세그먼트가 있지만 구성 LAN 세그먼트보다 느린 WAN 링크를 통해 모두 나가야 할 수도 있습니다. 궁극적으로 5mb WAN 링크를 통해 나가는 LAN 내에서 100mb 연결이있는 그림. 더 큰 네트워크에 문제가 없는지 확인하려면 일종의 혼잡 제어가 필요합니다.

2 부 :

이 질문이 면접 준비 질문이라면 위에서 말했듯이 일반적으로 TCP / IP를 읽는 데 시간을 할애 할 수 있습니다. Wikipedia를 사용하지 마십시오. RTFM! 이것은 당신의 시간에 매우 가치가 있습니다. 이것이 현대 인터넷의 대부분을 차지하는 가장 중요한 프로토콜이라고 주장 할 수 있습니다.

흐름 제어에 대해 읽어야 할 사항 : 중지 및 대기, 슬라이딩 창, PAUSE 프레임.

혼잡 제어에 대해 읽어야 할 사항 : QoS (서비스 품질), 재전송 정책, 윈도우 정책.

그 외에도 특정 공급 업체 구현 (Cisco 등)을 검색 할 수 있습니다.


3
좋은 대답이지만 적어도 한 가지 실수가 있습니다. "PAUSE 프레임"은 혼잡 제어에서 사용 되지 않으며 흐름 제어를위한 메커니즘입니다.
Angel

1
당신은 절대적으로 정확합니다. 잘못된 단락에 추가되어 지금 편집 중입니다.
JP Doherty

24

흐름 제어 : 발신자는 수신자 측에서 수용 할 수있는 충분한 데이터를 보냅니다.

혼잡 제어 : 발신자는 라우터의 버퍼 (큐) 오버플로를 방지하기 위해 전송 된 패킷의 양을 줄입니다.


22

흐름 제어 :

  • 발신자가 수신자에게 과부하를주지 않도록합니다.
  • 혼잡 제어와는 달리 국소 현상입니다.
  • 일반적으로 발신자가 시작합니다.

혼잡 제어 :

  • 네트워크가 패킷로드를 처리 할 수 ​​있는지 확인합니다.
  • 이는 글로벌 현상이며 해당 네트워크에 연결된 모든 호스트에 영향을 미칩니다.
  • 라우터에 의해 시작됩니다.

4

흐름 제어 는 주로 수신자 측 에서 수행되어 발신자 가 네트워크에 주입하는 데이터의 양을 조정합니다 . 혼잡 제어 는 주로 발신자 측 에서 수행되며 ACK 패킷의 타이밍에 따라 네트워크의 혼잡을 감지하여 해당 상황에 전송되는 데이터의 양을 조정합니다.


4

혼잡 제어는 글로벌 문제입니다. 서브넷 내의 모든 라우터와 호스트를 포함합니다.

지점에서 지점으로 범위가 지정된 흐름 제어에는 발신자와 수신자 만 포함됩니다.


2

혼잡 제어 : 공유기의 버퍼 오버 플로우를 방지하는 것 외에도 두 가지 다른 중요한 요소를 다룹니다.

  • 공정성 : 네트워크에 연결된 호스트에 대해 기아가 발생해서는 안되며 용어는 훨씬 더 복잡합니다.
  • 효율성 : 혼잡을 유발하지 않도록 링크를 최대한 활용해야합니다.

2

흐름 제어는 수신기 측에서 수행됩니다. 송신자가 수신자의 버퍼 크기보다 큰 패킷을 보내면 수신자의 버퍼에서 오버플로가 발생합니다. 수신자 측에서 이러한 오버플로를 방지하기 위해 발신자 측에서 사용되는 윈도우 기술이 있습니다. 혼잡 제어는 발신자 측에서 수행됩니다. 이것은 세계적인 현상입니다. 이것은 라우터에서 발생합니다. 많은 발신자가 동일한 링크를 통해 더 많은 패킷을 푸시하려고하면 라우터의 버퍼 오버플로가 발생합니다.


이것은 질문에 대한 정직한 답변처럼 보이지만 현재 귀하의 답변은 약간 혼란 스럽습니다. 또한 다소 짧습니다. 흐름 제어에 대해 한두 개의 전체 단락을 사용하고 혼잡 제어에 대해 한두 개의 전체 단락을 사용하는 것을 고려하십시오.
Julian

0

흐름 제어 :

  1. 송신자 버퍼가 가득 차면 소스가 데이터를 보내지 못하도록하여 데이터가 삭제되지 않도록합니다.
  2. 이 경우 수신기 버퍼가 가득 찼습니다.
  3. 슬라이딩 윈도우 프로토콜로 쉽게 달성 할 수 있습니다.

혼잡 제어

  1. 소스에서 데이터 전송을 시작하면 네트워크의 도움을 받아 목적지에 도달합니다. 혼잡 제어는 소스를 방지하므로 데이터가 네트워크의 라우터에 의해 삭제되지 않아야합니다.

  2. 이 문제는 라우터의 대기열과 관련이 있습니다.

  3. 라우터가 네트워크에 연결된 다른 소스에서 다른 패킷을 가져 오기 때문에 달성하기가 더 복잡합니다.


-4

흐름 제어 : 네트워크가 흡수 할 수있는 정도, 혼잡 창을 나타냅니다. 혼잡 제어 : 수신기가 광고 된 창을 흡수 할 수있는 정도를 나타냅니다. 보낸 사람의 max_window = min (광고 창, 혼잡 창);

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.