浅析TCP协议中URG和PSH的区别与联系

 

浅析TCP协议中URGPSH的区别与联系。URG(紧急标志位)表示本报文段中发送的数据是否包含紧急数据。URG=1时,表示有紧急数据。后面的16位紧急指针字段只有在URG=1时才有效。

URG(紧急标志位)表示本报文段中发送的数据是否包含紧急数据。URG=1时,表示有紧急数据。后面的16位紧急指针字段只有在URG=1时才有效。

以上为TCP的段格式,今天来主要看看图中URGPSH 这两个标志位的区别和联系:

PSH(急迫标志位)在一个交互程序中,当客户发送一个命令给服务器时,它设置PSH标志并停下来等待服务器的响应。通过允许客户应用程序通知其TCP设置PSH标志,客户进程通知TCP在向服务器发送一个报文段时不要因等待额外数据而使已提交数据在缓存中滞留。类似地,当服务器的TCP接收到一个设置了PSH标志的报文段时,它需要立即将这些数据(包括以前存中滞留的数据)递交给服务器进程而不能等待判断是否还会有额外的数据到达。 PSH=1,只对接收方的接收缓冲区起作用,发送方通过使用PUSH位来通知接收方将所有收到的数据立即提交给服务器进程,而不需要等待额外数据(将缓存填满)而让数据在缓存中停留。

接下来看看两者的区别和联系:

联系:两者的存在都是为了提高报文段的优先级,使报文段更先推送给上层。

区别:URG是通过置1来让后面的紧急指针字段有效,从而让报文段更先发送。

PSH是通过置1来告诉对方在接收到报文段后应该立即把数据发给上层而不是缓存起来

URG=1,表示紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据),不进入接收缓冲就直接交给上层进程,余下的数据都是要进入接收缓冲的;一般来说TCP是要等到整个缓存都填满了后再向上交付,但是如果PSH=1的话,就不用等到整个缓存都填满,直接交付,但是这里的交付仍然是从缓冲区中交付的,URG是不要经过缓冲区的

 

 

你想要通俗的答案有!可以用快递来比喻。1、URG就想是有个很急的快递从仓库出发,被标记了URG的快件直接交给一个快递员直接送到你手中,不跟其他货件配送,这是单独紧急配送到你手中的。2、PSH可以用在总站坐车来比喻,客人甲是被标记成PSH的人,我在总站一上车,汽车就发车了(无论汽车是否满载),去到第二个城市客运站过安检,队列看到你直接把你和你前面的人安排成一批次人统一处理(不用再等你后面的人来了再处理)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值