Linux_博客-URG-PSH

来源:互联网 发布:辐射4提取脸部数据 编辑:程序博客网 时间:2024/06/06 18:53

一.URG&PSH是什么?

PSH :占1位。TCP在收到PSH置位的报文后,不管后续再有无报文,先将缓存中的提交给应用程序进程。当URG=1时,表示紧急指针字段有效。通知发送方本数据报文段中含有紧急数据,需要马上传输,这时发送方不会等到缓冲区满再发送,而是直接优先将该报文段发送出去。
URG:占1位。表示在当前的报文中有紧急的事件需要应用程序去优先处理。

二.怎么用?

URG=1时,紧急数据(数据从序号开始到紧急指针指向字节)不经过缓冲区直接交给上层程序,而报文段后面的普通数据还需要进入接收方缓冲区;
PSH=1,希望将本报文段及发送方缓冲区的数据一块交付给应用进程;


三.URG和PSH的区别?

紧急URG将紧急报文字段插入到普通报文字段的前面,而推送PSH是利用紧急数据重新直接创建一个报文,并立即发送出去;
URG=1,表示紧急数据(数据从序号开始到紧急指针指向字节)不经过缓冲区直接交付应用进程,PSH=1表示尽快推送,将数据先交给缓冲区,不等待缓冲区填满(默认TCP/IP是将数据缓存到一定上限,才交由上层)就交给上层程序;
URG=1交给上层进程的只有紧急数据,PSH=1交给上层程序的是紧急数据和之前接收方缓冲区排好序的数据;