社区
网络及通讯开发
帖子详情
发送tcp数据时的排队问题
赵小东砰砰砰
2015-09-10 10:11:17
两个tcp流
一个正在发数据,sendbuffer开的很大,里面有一堆包(d1, d2,……dn)正在发送中
一个需要回复ACK(a1)
那这个ACK是否是sendbuffer内包被全部发完后再发送,即 d1,d2,……dn,a1的顺序?
此时ACK能否有办法插队,即 d1,a1,d2,……dn
谢谢
...全文
154
2
打赏
收藏
发送tcp数据时的排队问题
两个tcp流 一个正在发数据,sendbuffer开的很大,里面有一堆包(d1, d2,……dn)正在发送中 一个需要回复ACK(a1) 那这个ACK是否是sendbuffer内包被全部发完后再发送,即 d1,d2,……dn,a1的顺序? 此时ACK能否有办法插队,即 d1,a1,d2,……dn 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
我不懂电脑
2015-09-11
打赏
举报
回复
数据在sendbuffer后会重新分包发送ack对应新包的顺序
土著巫师
2015-09-11
打赏
举报
回复
TCP协议是基于流的协议,也是无边界的协议,没有包的概念(UDP才有包的说明),在TCP流上传输数据,要自己界定解析数据的起、止标记。TCP上只有带外数据可以插队传输,否则都是顺序发送、顺序接收的。关于什么是带外数据一两句话讲不清楚。
RabbitMQ实战视频课程
MQ全称为Message Queue, MQ是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的
数据
)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中
发送
数据
进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。
排队
指的是应用程序通过 队列来通信。队列的使用除去了接收和
发送
应用程序同
时
执行的要求。其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等
带外
数据
概述 许多传输层有带外
数据
的概念,有
时
候也称经加速
数据
。其想法是一个连接的某端发生了重要的事情,而且该端希望迅速通告其对端。这里的“迅速”意味着这种通知在已经
排队
等待
发送
的任何“普通”
数据
之前
发送
,也就是优先级更高。
TCP
带外
数据
TCP
没有真正的带外
数据
,不过提供了紧急模式。假设一个进程已经往一个
TCP
套接字写出N字节
数据
,而且
TCP
把这些
数据
排队
在该套接字的
发送
缓冲区中,等...
TCP
四次分手过程详解与案例演示
什么是
TCP
四次分手? 服务端和客户端建立
TCP
连接
时
需要三次握手,而断开
时
,服务端和客户端一共需要
发送
4次
数据
包才能真正完成一次
TCP
连接的断开。 四次分手的过程 1、某个应用进程首先调用close,我们称为这一端执行主动关闭(active close)。这一端的
TCP
于是
发送
一个FIN分节,表示
数据
发送
完毕。 2、接收到FIN的另一端执行被动关闭,这个FIN由
TCP
确认,它的接收也作为文件结束符传递给接收方应用进程(放在已
排队
等候该应用进程接收的任何其他
数据
之后),因为FIN的接收意味着应用进程在相应连
TCP
协议.之
发送
数据
,粘包,拆包
问题
(二)
Tcp
协议
发送
数据
,粘包,拆包
问题
,这句话本身是错误的,
tcp
是协议,
发送
接收
数据
时
并不会粘包,
tcp
,ip,只负责传输
数据
粘包是应用层解析
数据
时
,包1和包2粘连在一起,解析
数据
时
,出现错误的,网络中,很多博主,就没搞清楚。 send,
发送
频率太快,导致
发送
包的
时
候,出现粘包,其实
tcp
传输
数据
时
,没有包的概念,和uart串口一样,只有 流的概念,
tcp
协议讲的很清晰,
tcp
是面向流的,一个一个字节流,
tcp
传输
时
,只按流的方式
发送
,没有一包一包 的概念,假如
发送
数据
很大,
tcp
协议,自动分成多包一个一个
RST及java socket关闭后读写的各种异常
方法关闭了Socket,虽然
TCP
规定半关闭状态下B仍然可以接收
数据
,但close动作关闭了该socket上的任何
数据
操作,如果此
时
A继续write,B将返回RST,A的该次write无法立即通知应用层(因为write仅把
数据
写入
发送
缓冲区),只会把状态保存在
tcp
协议栈内,下次write
时
才会抛出。都关闭,已经
排队
等待
发送
的
数据
会被尝试
发送
,最后(默认)
发送
FIN。,它会
发送
FIN但依然可以读取
数据
;后,无论是
发送
FIN/RST关闭的,之后再读写均会抛。
发送
FIN,4次挥手,连接关闭,一切都很和谐。
网络及通讯开发
1,314
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章