PSH标志位
单词PUSH,意思是“推”。
接收缓冲区和发送缓冲区
进程A发送数据时,并不是直接发送,而是先写到自己的发送缓冲区。接收进程B接收到TCP报文时,会先将数据放入接收缓冲区。
PSH作用
将发送缓冲区的数据发送出去,将数据从接收缓冲区读取的时间是不确定的。
- 发送端
TCP模块自行决定,什么时候将发送缓冲区中数据打包成TCP报文,但如果发送缓冲区满了TCP同样会将数据打包发送。由于有MSS(最大报文段长度)的限制,数据可能会被打包成一个或多个TCP报文段。最后一个报文段会标记为PSH。
- 接收端
如果接收方接收到的某个TCP报文段包含PSH标志,接收方就会立即将缓冲区的所有数据推给进程。同样的,接收缓冲区如果满了也会推。
总结
发送方发送数据进行打包时,会将最后一个打包的TCP报文加上PSH标志;
接收方收到含有PSH的报文,会立刻把接收缓冲区的数据推给进程。
(本文仅作个人学习使用)