서버->클라이언트 TCP 스트림에서 서버의 모든 패킷에는 PSH 플래그가 설정되어 있습니다. 이 플래그를 설정한 데는 Nagle의 책임이 있습니까?
답변1
푸시 플래그( PSH
또는 P
)는 전송 호스트에 의해 설정됩니다. 송신 애플리케이션이 100바이트의 쓰기 또는 송신을 사용하는 경우 각 패킷이 PSH
설정됩니다. 발신자가 2000바이트를 보내는 경우 두 개의 패킷으로 전송되며 PSH
표준 프레임 크기가 1500이라고 가정할 때 두 번째 패킷에는 플래그가 포함됩니다.
푸시 플래그는 수신된 데이터가 수신 애플리케이션에 즉시 전달되어야 함을 수신 호스트에 나타냅니다.
답변2
푸시 플래그의 설정은 일반적으로 전송 애플리케이션이 아니라 전송 TCP 계층에 의해 제어됩니다. 대부분의 최신 TCP/IP 스택은 send() 에 제공된 버퍼의 끝에 PSH 비트를 설정합니다.
답변3
P 비트를 항상 설정하는 것은 올바른 표준이지만 이전 TCP 스택에서 볼 수 있는 비효율적인 동작입니다.