请教:Tcp/Ip通讯时分包组包在哪一层

CathySun118 2007-03-01 04:56:00
请问:我昨了个通讯程序,通讯一端发送一个100字节的数据报,另一端有时会收到两包数据(这两包数据才能组合成完整的数据包),请问这种问题是如何引起的,并请教TCP/IP通讯时是在哪一层分包的?又是在哪一层组包的?谢谢!
...全文
1802 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wj19781215 2007-03-12
  • 打赏
  • 举报
回复
可能是发送和接收的速度不一致,你的发送缓冲区已满,每次只能发送一定字节的数据。
杂家老周 2007-03-07
  • 打赏
  • 举报
回复
100个字节在局域网中是应该不会被拆分的,如果有这种情况,看看换块网卡试试,就算你知道是哪个层拆分的你也什么都做不了,只能在接受时进行数据校验
CathySun118 2007-03-05
  • 打赏
  • 举报
回复
我应用层发的是一包阿,但多了对方的应用层成了两包了.
calories 2007-03-05
  • 打赏
  • 举报
回复
你用的是TCP还是UDP?
ensoniq 2007-03-02
  • 打赏
  • 举报
回复
TCP是流式协议,拆包和合并包都是有可能发生的,UDP一般不会。当然IP层以下有时还会有拆包的情况,那是另外一回事了。
loverx 2007-03-02
  • 打赏
  • 举报
回复
在应用层 拆吧

100字节,远远小于MTU,TCP,UDP层---IP层都不会拆包的

他们拆包是为了数据传输

你的属于业务逻辑了,在应用层 拆吧
CathySun118 2007-03-02
  • 打赏
  • 举报
回复
但我100字节的包怎么会拆分呢?两个程序在同一台机器上
loverx 2007-03-02
  • 打赏
  • 举报
回复
分包的时机:当包大小超过MTU
MTU: maximum transmission unit最大传输单元,由硬件规定

比如用UDP发送8000bit数据
而MTU为1000(假设)
将在IP层进行8次拆包,8个1000的包

对于TCP只要在开始确定MTU的时候会进行拆包




4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧