下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

详细分析TCP的推送比特PSH(即Push)

作者:课课家教育     来源: http://www.kokojia.com点击数:4736发布时间: 2017-07-02 09:30:08

标签: TD-LTETD-SCDMAHSRP

软考,您想通过吗?一次通过才是硬道理

  TCP,传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。现在小编给大家分享一篇教程,那就是详细分析TCP的推送比特PSH(即Push)。

 详细分析TCP的推送比特PSH(即Push)_TD-LTE_TD-SCDMA_HSRP_课课家

  一、简介PSH

  在教程开始之前,小编先问大家一个问题,那就是大家知道什么是PSH吗?事实上,它就是TCP报头里面的一个标志位,发送方在发送数据时是能够直接设置这一个标志位的。当这两个应用程序在进行交互式通信的时候,有时候在一端的应用进程希望在键入一个命令以后,马上就可以接收到对方的响应。在这一种情况下面,TCP就能够直接使用推送(也就是push)的操作。这一个时候,发送端TCP就会推送比特PSH设置成为1,另外一个方面还会马上进行创建一个报文段发送出去。接收TCP收到推送比特置1的报文段,大家就应该尽快地(也就是"推送向前")交付给接收应用进程,然而是不需要再等到整一个缓冲都已经填满了再向上交互的。由此可见,PSH比特也有人将其称之为急迫比特。

  虽然说应用程序是能够直接进行选择推送操作,但是推送这一个操作还是往往不会被人们进行使用的,然而事实上现在的TCP协议栈(协议栈是指网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:由上层协议到底层协议,再由底层协议到上层协议)基本上大家都能够自行处理这一个问题的,然而不是交给应用层进行处理的。

  二、实现过程

  发送方都应该使用这一个标志,来通知接收方将所收到的数据通通都提交给接收进程,在这里的数据当然也包括和PUSH一起传送的数据以及接收方TCP已经为接收进程收到的其他一些数据。在最初的时候,在TCP规范里面,是允许发送应用程序设置TCP的PSH标识的。当发送应用程序成功的设置了TCP里面的PSH标识以后,TCP就应该要将发送缓存里面的数据发送出去,然而是不需要等待其他一些额外的数据,而接受端在收到PSH标志以后,都应该要将已经接受到的数据提交给应用程序,而并不需要等待其他一些可能的数据。

  多数源自于伯克利(也就是BSD,即伯克利软件套件,这是Unix的衍生系统,常被当作工作站级别的Unix系统,促进了因特网的开发)的TCP实现可在发送缓存被清空(换句话来说,也就是发送缓存里面的数据会被全部发送)时已经自动设置了PSH标识。正正就是因为应用程序是在写数据给TCP的时候,就会被TCP发送了(除非是因为接受端窗口为0,又或者是其他一些不可以进行发送的原因)。假如说是一些待发送的数据就自动会清空发送缓存,那么协议栈栈就会自动为这一个数据包设置成为PSH标志了。然而就是因为源自于BSD的TCP从来都不会将所接收到的数据延迟提交给应用程序,因此接收端也会自动忽略掉所接收到的PUSH标识。

  三、注意事项

  在这里的话,大家还需要注意一点那就是:PSH位就是使用来通告接收方马上将收到的报文连同TCP接收缓存里面的数据一起递交应用进程进行处理。一般情况下,都会出现在发送方封装最后一个应用字段的TCP报文里面,针对于TCP这一种交互式应用,那么仅仅只需要封装有应用字段的TCP报文,通通都会将PSH位设置成为1。当然了,一些应用程序的开发者,大家也能够根据自己的需要,在某一个应用功能模块或者是某一个应用操作里面,把全部的封装应用字段的TCP报文PSH位设置成为1。这样子的话,就可提高交互双方的处理效率了。就小编而言,这样子的操作在理论上应该也是可行的一种方法。

  小编结语:

  今天的考试认证教程,大致介绍如此,希望能助您在学习思科认证的道路上一臂之力,能让你更稳更好更快的走在学习Cisco的路上。如果你还是与犹未尽,可以进入我们的官网课课家教育,了解更多的Cisco认证入门教程。

赞(14)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程