社区
C++ 语言
帖子详情
TCP通信协议包头定义
马壮mz
2015-07-27 09:18:11
使用TCP通信协议时,数据报中有无必要定义包头包尾呢,Tcp协议能完全彻底的确保通信内容的正确与否,
...全文
582
4
打赏
收藏
TCP通信协议包头定义
使用TCP通信协议时,数据报中有无必要定义包头包尾呢,Tcp协议能完全彻底的确保通信内容的正确与否,
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
www_adintr_com
2015-07-27
打赏
举报
回复
TCP 传输的内容是有校验的,保证传输的准确性,如果校验失败会要求发送方重新发送。 如果真有那么巧,校验和字段和某个数据同时在传输中产生了错误,而且错来刚好匹配上了校验和,那还是有可能收到错误数据的。不过这种情况出现的概率低得可以认为它不存在。
jiqiang01234
2015-07-27
打赏
举报
回复
1、tcp传输消息时需要自定义包头包尾(即帧协议),因tcp是二进制流协议,没有消息边界,无法自动完成“分包”的功能 2、自定义帧协议可以提高tcp的可靠性(tcp不保证100%可靠收发),更强的可靠性需要自定义来保证 3、自定义的帧协议能更好的根据业务逻辑来定义数据
飞翔的薄荷
2015-07-27
打赏
举报
回复
包头应该要加标示,tcp没问题,但是你自己写的代码解析错误,导致数据混乱,也是有可能的。
赵4老师
2015-07-27
打赏
举报
回复
不知道有多少前人掉在TCP Socket send(人多)send(病少)send(财富) recv(人多病)recv(少财富) 陷阱里面啊!
http://bbs.csdn.net/topics/380167545
C#
TCP
通信自
定义
包头
winform经常用到
TCP
通信,使用
TCP
通信协议
的好处大家都知道,数据传送可靠,不会丢失,也就是不会丢包。但是使用
TCP
协议接收数据比有点麻烦,数据会粘包。为了保证数据正常的解析,这里使用最大众的解决方法,在发送的数据包前面
定义
一个2个字节长度的
包头
,根据
包头
可以知道后续数据的长度。具体做法是发送端发送数据时同时将数据长度写到
包头
,接收端默认读取两个字节,有数据来它便读到了数据包的长度,接着通...
TCP
协议与
包头
格式
TCP
(Transmission Control Protocol,传输控制协议)是面向连接的、可靠的、基于字节流的
通信协议
,是互联网协议套件中的核心协议之一。它运行在传输层,主要运用于提供端到端的可靠传输。
TCP
/UDP
包头
介绍
TCP
Transmission Control Protocol 面向连接的,可靠的,基于字节流的传输层
通信协议
TCP
传输的数据单元是它的报文段,包括首部和数据 传输过程中,报文都会进行封装后再传输(封装-->传输)
TCP
报文首部(
包头
)
TCP
包头
为20字节
TCP
包头
解释 line 1:源端口号、目的端口号,用于建立连接时,确认源端口(本机)和目的主机的端口号 line 2:序号,用来表示发送端到接收端的数据字节流 line 3:确认序号,表示下一次所期望收到
TCP
自
定义
通信协议
我们为什么要自
定义
TCP
应用层传输协议? 因为在
TCP
流传输的过程中,可能会出现分包与黏包的现象。我们为了解决这些问题,需要我们自
定义
通信协议
进行封包与解包。 什么是分包与黏包? 分包:指接受方没有接受到一个完整的包,只接受了部分。 黏包:指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。 PS:因为
TCP
是面向字节流的,是没有边界的概念的,...
TCP
包头
详解
TCP
(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层
通信协议
。当应用层向
TCP
层发送用于网间传输的、用8位字节表示的数据流,
TCP
则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后
TCP
把数据包传给IP层,由它来通过网络将包传送给接收端实体的
TCP
...
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章