TCP 전송과 NIC에 대한 실제 쓰기 사이의 지연

TCP 전송과 NIC에 대한 실제 쓰기 사이의 지연

Python을 사용하여 설명된 소켓 프로그래밍 문제에 대한 해결책을 찾는 동안여기(요컨대 문제는 ~ 25 Bytes클라이언트가 TCP 소켓을 통해 보낸 메시지()가 즉시 예약(플러시)되기를 원한다는 것입니다.)이것기사.

"설정된 연결 작동 방식" 섹션의 6항에 있는 기사는 다음과 같습니다.

네트워크가 사용량이 많거나, TCP 전송 창이 가득 찼거나, 트래픽 조정 정책이 적용 중인 경우 등의 경우 사용자가 실제로 write(2)를 호출한 시점부터 NIC로의 실제 데이터 전송이 지연될 수 있습니다.

내 질문은 다음과 같습니다

  • 매우 빠른 개인 네트워크가 있고(가용성을 보장할 수 있음) TCP 전송 창이 가득 차지 않습니다. 25바이트 정도의 작은 메시지가 즉시 전송되나요?
  • 최근 Ubuntu(예: 14, 16, 18)에서는 이러한 트래픽 조정 정책이 기본적으로 무엇입니까?

답변1

트래픽 조정 정책은 Ubuntu가 아닌 ISP의 백본에서 설정되므로 매우 빠른 개인 네트워크가 있고 직접 관리하는 경우에는 문제가 되지 않습니다(예: 회사가 아님: 회사인 경우 해당 회사에 문의) 사용되는 포트의 네트워크 엔지니어).

최신 운영 체제에서 TCP 창은 64K이므로 DOS(8K) 또는 커널 2.16에서 실행하지 않는 한 메모리가 정상(16K)이면 문제가 되지 않습니다.

예, 개인 네트워크를 사용하여 Ubuntu에서 25바이트가 즉시 전송될 것이라고 믿습니다.

관련 정보