모든 TCP 패킷에는 PSH 플래그가 설정되어 있습니다. 이에 대한 책임은 누구/무엇입니까?

모든 TCP 패킷에는 PSH 플래그가 설정되어 있습니다. 이에 대한 책임은 누구/무엇입니까?

서버->클라이언트 TCP 스트림에서 서버의 모든 패킷에는 PSH 플래그가 설정되어 있습니다. 이 플래그를 설정한 데는 Nagle의 책임이 있습니까?

답변1

푸시 플래그( PSH또는 P)는 전송 호스트에 의해 설정됩니다. 송신 애플리케이션이 100바이트의 쓰기 또는 송신을 사용하는 경우 각 패킷이 PSH설정됩니다. 발신자가 2000바이트를 보내는 경우 두 개의 패킷으로 전송되며 PSH표준 프레임 크기가 1500이라고 가정할 때 두 번째 패킷에는 플래그가 포함됩니다.

푸시 플래그는 수신된 데이터가 수신 애플리케이션에 즉시 전달되어야 함을 수신 호스트에 나타냅니다.

답변2

푸시 플래그의 설정은 일반적으로 전송 애플리케이션이 아니라 전송 TCP 계층에 의해 제어됩니다. 대부분의 최신 TCP/IP 스택은 send() 에 제공된 버퍼의 끝에 PSH 비트를 설정합니다.

원천: 푸시 플래그를 기다리지 않음으로써 TCP 대기 시간 개선

답변3

P 비트를 항상 설정하는 것은 올바른 표준이지만 이전 TCP 스택에서 볼 수 있는 비효율적인 동작입니다.

관련 정보