31.14. 이더넷 네트워크의 흐름 제어
이더넷 링크에서 네트워크 인터페이스와 스위치 포트 간 연속 데이터 전송은 전체 버퍼 용량을 유발할 수 있습니다. 전체 버퍼 용량은 네트워크 혼잡을 초래합니다. 이 경우, 발신자가 수신기의 처리 용량보다 높은 속도로 데이터를 전송할 때, 스위치 포트인 링크의 다른 쪽 끝에 있는 네트워크 인터페이스의 낮은 데이터 처리 용량으로 인해 패킷 손실이 발생할 수 있습니다.
흐름 제어 메커니즘은 각 발신자와 수신자가 서로 다른 이더넷 링크의 데이터 전송을 관리하고 이를 수신합니다. 패킷 손실을 방지하기 위해 이더넷 흐름 제어 메커니즘은 패킷 전송을 일시적으로 일시 중단하여 스위치 포트에서 더 높은 전송 속도를 관리합니다. 라우터는 일시 정지 프레임을 스위치 포트 이상으로 전달하지 않습니다.
수신(RX) 버퍼가 가득 차면 수신자는 일시 정지 프레임을 송신기로 보냅니다. 그런 다음 송신기는 짧은 하위 초 기간 동안 데이터 전송을 중지하고 이 일시 중지 기간 동안 들어오는 데이터를 버퍼 수신을 계속합니다. 이 기간은 수신자가 인터페이스 버퍼를 비우고 버퍼 오버플로를 방지할 수 있는 충분한 시간을 제공합니다.
이더넷 링크의 양쪽 끝은 다른 쪽 끝에 정지 프레임을 보낼 수 있습니다. 네트워크 인터페이스의 수신 버퍼가 가득 차면 네트워크 인터페이스는 일시 정지 프레임을 스위치 포트로 보냅니다. 마찬가지로 스위치 포트의 수신 버퍼가 가득 차면 스위치 포트는 일시 정지 프레임을 네트워크 인터페이스로 보냅니다.
기본적으로 Red Hat Enterprise Linux의 대부분의 네트워크 드라이버에는 일시 정지 프레임 지원이 활성화됩니다. 네트워크 인터페이스의 현재 설정을 표시하려면 다음을 입력합니다.
# ethtool --show-pause enp1s0
Pause parameters for enp1s0:
...
RX: on
TX: on
...
전환 벤더에 대해 확인하여 스위치가 일시 정지 프레임을 지원하는지 확인합니다.
추가 리소스
-
시스템의
ethtool(8)
도움말 페이지 - 네트워크 링크 흐름 제어란 무엇이며 Red Hat Enterprise Linux에서 작동하는 방법은 무엇입니까? (Red Hat Knowledgebase)