PSH 플래그의 실제 예는 무엇입니까?

PSH 플래그의 실제 예는 무엇입니까?

TCP PSH와 URG 플래그의 차이점을 이해하려고 합니다. 나는 지금까지 PSH 플래그가 설정되면 수신 장치는 버퍼가 가득 찰 때까지 기다리지 않고 단지 데이터를 장치로 보낸다는 것을 알고 있습니다.

하지만 내가 개념을 더 잘 이해할 수 있도록 누군가 나에게 이에 대한 실제 예를 들어 줄 수 있습니까?

나는 겪고 있었다https://packetlife.net/blog/2011/mar/2/tcp-flags-psh-and-urg/기사와 설명은 매우 훌륭하지만 주어진 예를 이해하지 못하고 있습니다.

그것은 말한다,

패킷 #4에서 초기 HTTP 요청에 PSH 플래그가 설정되어 있음을 알 수 있습니다. 이는 클라이언트에 추가할 데이터가 더 이상 없으며 요청이 애플리케이션(이 경우 웹 데몬)으로 즉시 전송되어야 함을 나타냅니다.

위의 경우 클라이언트에 더 이상 보낼 데이터가 없다면 왜 FIN 플래그가 설정된 패킷을 보내지 않겠습니까?

답변1

클라이언트에 추가 데이터가 없습니다.지금 바로하지만 그렇다고 해서 앞으로도 아무것도 없을 것이라는 의미는 아닙니다.

프로토콜에 클라이언트로부터 정확히 하나의 요청(및 정확히 하나의 응답)이 있다고 가정합니다. 오랫동안 HTTP의 경우에는 그렇지 않았습니다. 여러 요청에 대한 연결 재사용은 HTTP/1.1 이전에도 존재했으며 요즘은 어디에나 있습니다. 클라이언트는 요청을 제출하고 응답을 기다립니다.그런 다음 다른 요청을 제출합니다.이러한 장기 연결의 장점은 TCP 흐름 제어가 최적의 상태에 도달할 수 있다는 것입니다.

다른 많은 프로토콜의 경우에도 마찬가지입니다. 예를 들어, SMTP는 이메일을 보내기 위해 5개 이상의 명령/응답을 교환하며, 프로토콜 사양에서는 "파이프라인"(응답을 기다리지 않고 한 번에 모든 명령을 보내는 것)을 명시적으로 금지합니다. 이는 클라이언트가 단일 라인을 푸시하고 서버가 응답하도록 하고, 다른 라인을 푸시하고 서버가 응답하도록 해야 함을 의미합니다.

물론 많은 프로토콜이인터렉티브– Telnet 및 SSH에서는 서버가 모든 키 입력에 응답해야 합니다. VNC와 RDP는 모든 마우스 클릭에 반응합니다.

관련 정보