URG和PSH
来源:互联网 发布:vga 网络机顶盒 编辑:程序博客网 时间:2024/06/06 15:44
URG和PSH
1.基本概念
URG和PSH属于tcp协议中的标志位。
URG:表示本报文段中发送的数据是否包含紧急数据。URG=1,表示有紧急数据。后面的紧急指针字段只有当URG=1时才有效。
PSH:告诉对方收到该报文段后是否应该立即把数据推送给上层。如果为1,则表示对方应当立即把数据提交给上层,不做处理。
2.URG和PSH的特点及区别
(1)URG的特点:
紧急数据的起始点=序号
紧急数据的终止点=序号+紧急指针
紧急指针就是记录紧急数据的字节数,紧急指针永远为正数
在紧急数据后面的数据为普通数据,需要按序缓存
窗口为0也可以发送紧急数据
紧急数据都处理完成后,tcp就告诉进程恢复到正常操作
URG强调的是直接读取数据,不会将该数据复制到缓存中
(2)PSH的特点:
PSH=1表示该报文希望在到达对端时,将这个报文及缓存区之间缓存尚未交付的数据一并交付给进程。
PSH的数据=本报文数据+缓存区数据
PSH的方向--->单方向(接收PSH报文的一端)
PSH强调的是尽快将数据交付给上层(协议),而不需要经过强迫数据交互(默认tcp/ip是将数据缓存到一定的上限,再将数据递交给上层,以提高网络性能).可见,该部分数据是需要复制到缓存中的。
(3)如何区分URG和PSH:
(a)两者都是对数据的处理方式,URG是在前端处理数据,一旦收到不经过缓冲区就交付给应用程序,PSH是在后
台处理数据,告诉内核不必等缓冲区满了再向上层递交;
(b)通过URG递交的数据都是紧急数据,然而通过PSH递交的数据则是缓冲区已经排好序的数据加上当前报文,
URG是不要经过缓冲区的。
URG=1,表示紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指向字节就是紧急数据)不进入缓冲区(一般不都是待发送的数据要先进入发送缓存吗?就直接交个上层进程,余下的数据都是要进入接收缓冲的;一般来说TCP是要等到整个缓存都填满了后在向上交付,但是如果PSH=1的话,就不用等到整个缓存都填满,直接交付,但是这里的交付仍然是从缓冲区交付的。
- URG和PSH
- URG和PSH
- URG和PSH
- URG和PSH
- URG和PSH
- URG和PSH
- URG和PSH的区别
- TCP中的URG和PSH
- URG和PSH标志位
- URG/PSH
- URG/PSH
- URG--PSH
- URG-PSH
- URG--PSH
- URG-PSH
- URG-PSH
- URG-PSH
- TCP标志中的URG和PSH位
- Javascript设计模式-03-建造者模式
- 第16章 使用Spring MVC创建 REST API
- 设计模式--常用8个设计模式
- ReactNative iOS运行再次出错:No bundle URL present
- 注解
- URG和PSH
- 整理一份PHP高级工程师面试题
- VS2010之MFC入门到精通教程
- 排序列表
- jxl生成文件,excel打开显示:office已检测此文件存在问题
- Javascript DOM 编程艺术--笔记1
- Pro Git 简体中文版(Git教程)
- 类加载器
- C字符数组