社区
通信技术
帖子详情
TCP 带外数据只有一个字节吗?
johnsonest
2003-08-17 11:36:51
请知道的大侠赐教!多谢
...全文
133
2
打赏
收藏
TCP 带外数据只有一个字节吗?
请知道的大侠赐教!多谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BetonArmEE
2003-12-09
打赏
举报
回复
是的 应该说是只有最后一个字节有效
scatzr
2003-08-17
打赏
举报
回复
不知道带外数据是什么意思,tcp头是20个字节,数据理论上可以支持1500字节
TCP
带外
数据
传输 OOB
数据
完全解析
带外
数据
说明
TCP
的
带外
数据
可传输一
字节
内容,实际上
带外
数据
和其他
数据
是一起发送,一起接收。区别在于: 对于发送端: 发送
带外
数据
,会将当前发送缓冲区待发送的
TCP
报文 header 设置 flag 的 URG 标志和紧急指针 Urgent pointer 的值,仅仅如此而已。
带外
数据
的位置为该次发送
带外
数据
调用的最后
一个
字节
。 对于接收端: 接收端,则是读取接口的行为的差异...
TCP
-
带外
数据
(紧急
数据
)
注意:2011-01,
TCP
的紧急
数据
已经是废弃的功能了。不建议新的应用程序使用,只为旧程序兼容而存在。 1. 紧急标志 当你再次看到图 1 时,相信你已经无比的亲切,再观察下面彩色的 6 个标志位,有 5 个你已经熟知了,还剩下最后
一个
URG,对,就是图 1 中那个鲜红的,醒目的那个位置。 除此之外,还有
一个
字段—— 16 位紧急指针,它正是配合 URG 标志位一起使用的,言外之意就是这个字段只有在 URG 被置位时才有意义。因为只有
一个
紧急指针,这也意味着它只能标识
一个
字节
的
数据
。这
TCP
带外
数据
OOB
传输层协议使用
带外
数据
(out-of-band,OOB)来发送一些重要的
数据
,如果通信一方有重要的
数据
需要通知对方时,协议能够将这些
数据
快速地发送到对方.为了发送这些
数据
,协议一般不使用与普通
数据
相同的通道,而是使用另外的通道实现.OOB
数据
(
TCP
)介绍
带外
数据
即就是优先
数据
,linux系统的套接字机制支持低层协议发送和接受
带外
数据
.但是
TCP
协议没有真正意义上的
带外
数据
.为了发送重要协议,
TCP
TCP
带外
数据
(URG,MSG_OOB)
为何不直接将
一个
字节
的紧急
数据
放在紧急指针哪里呢? 答:因为
TCP
数据
包在ip层可能被拆包,成为多个
数据
段。
一个
包含紧急
数据
的
数据
包被拆成两个
数据
包,那么这两个包有的
tcp
头部有相同的紧急指针(和UGR)。如果将紧急
数据
直接放在紧急指针的内存处,那么将多出
一个
紧急
数据
!所以,不该将紧急
数据
放在
TCP
头部。 同时,在拆包后,对端将收到两个包,第
一个
包到达的时候就知道了UGR和紧急指针。如果紧急指针所指的位置已在该包的
数据
段中,那么紧急
数据
就到达了。否则,要等到第二个包到达的时候,才能去得到紧
TCP
带外
数据
(即紧急模式的发送和接受)
首先给出OSI 参考模型与
TCP
/IP协议模型图: 如上图所示,我们的
TCP
位于传输层,下面还有互联网层(主要是IP)与网卡等 。相信学过网络编程的都知道,对于报文的处理,在经过每一层时都会有添加头部和解析头部的操作。如下所示: 在这里,自然,我们只关心的是
TCP
包的首部 首部之后就是用户
数据
,再来一次图: 在这里,我们只关心以下两个部分: 紧急字段URG:...
通信技术
4,390
社区成员
28,906
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章