일시 중지 프레임이 호스트에 전달됩니까?

일시 중지 프레임이 호스트에 전달됩니까?

최근에 MAC 계층에서 일시 중지 프레임을 삭제해야 하며, 그렇지 않은 경우 드라이버가 해당 프레임을 삭제해야 한다고 언급한 데비안 포럼을 본 적이 있습니다. 이것이 사실입니까? 스위치로부터 일시 중지 프레임을 수신한 경우 호스트는 실제로 어떻게 트래픽을 다시 조절합니까?

나는 이더넷 흐름 제어에 대해 더 잘 이해하려고 노력하고 있습니다. 위의 진술이 사실이라면 호스트에 전달된다는 것은 실제로 무엇을 의미합니까?

답변1

흐름 제어를 처리할 수 있는 세 가지 방법이 있습니다.

  1. 과부하가 걸리면 데이터를 바닥에 떨어뜨립니다.
  2. 일반적으로 로컬 대기열이 가득 차서 상위 계층의 요청에 대해 서비스를 제공할 수 없는 경우 해당 상위 계층에 오류를 반환합니다.
  3. 속도를 줄여야 한다는 상위 계층에 사전에 알립니다.

이더넷 계층에서는 방법 3이 일시정지 프레임을 통해 지원됩니다. 종종 상위 계층은 방법 3을 지원하지 않고 대신 방법 2를 지원합니다. 계층의 아래에 방법 3을 지원하는 계층이 있지만 그 위의 계층은 방법 2만 지원하는 경우 일시적으로 하위 계층으로의 데이터 전달을 중단하여 방법이 발생할 수 있습니다. 2 상위 레이어에 적용합니다.

또는 보다 구체적으로 말하면 일시 중지 프레임을 수신하면 전송 엔진을 중지하고 적절한 시간에 전송 엔진을 다시 시작하도록 타이머를 설정합니다. 전송 엔진이 중지되는 동안 로컬 대기열은 상위 계층의 데이터로 채워집니다. 가득 차면 상위 계층에 "사용 중" 오류가 반환되고 적절하게 처리됩니다.

답변2

지금까지 이더넷 흐름 제어는 실패한 실험이었습니다.헤드 오브 라인 차단문제. 스위치는 호스트에 일시 중지 프레임을 보내서는 안 됩니다. Cisco 스위치는 일시 중지 프레임을 보내도록 구성할 수 없다고 생각합니다. Cisco 스위치에서 이더넷 흐름 제어를 활성화하면 수신하는 일시 중지 프레임을 존중하게 됩니다. 호스트는 수신된 일시 중지 프레임을 무시하는 것이 현명합니다.

스위치가 전송을 처리할 수 없으면 프레임을 삭제해야 합니다. 상위 계층, 특히 TCP는 삭제된 프레임을 사용하여 정체가 발생한 시기와 물러날 시기를 파악합니다. 프레임 삭제에 실패하면 TCP 혼잡 제어가 실패하고 일반적으로 다음과 같은 결과가 발생합니다.버퍼블로트.

관련 정보