忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 1713 | 回复: 3

[C++] 关于使用TCP协议中 IP头部和TCP头部 传输的问题 [复制链接]

论坛徽章:
0
发表于 2017-12-04 16:30 |显示全部楼层
1. 假设两端使用TCP传输数据。当应用层的数据到达传输层后,传输层会把数据封装成TCP报文段(增加TCP头部), 然后递交到网络层,并加上IP头部。 这样的话数据就会有IP头部+TCP头部+用户数据。而数据是以字节流的形式传输到对端的。在传输层只对用户数据进行了编号。TCP头部和IP头部都没有编号的。那么对端接收时,是怎样保证TCP头部和IP头部自身的的格式有序的? (因为我在想会不会出现:对端接收到的第一个字节是IP头部的第1个字节, 但是第2个字节是TCP头部的。)


2. 对端是不是收到一个完整的报文段才将其数据递交到应用层?还是说收到该报文段一部分的数据也可以直接递交到应用层?


谢谢!

论坛徽章:
12
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之同曦
日期:2017-03-17 19:13:162016科比退役纪念章
日期:2016-11-07 08:28:12luobin
日期:2016-06-17 17:46:36wusuopu
日期:2016-06-17 17:43:4515-16赛季CBA联赛之福建
日期:2016-01-14 12:49:22程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:00程序设计版块每日发帖之星
日期:2015-06-08 22:20:002015年亚洲杯之科威特
日期:2015-03-24 14:21:272015年迎新春徽章
日期:2015-03-04 09:57:092016科比退役纪念章
日期:2018-04-10 16:20:18
发表于 2017-12-05 09:29 |显示全部楼层
感觉楼主对 IP 协议理解的有问题

推荐 《TCP IP 协议卷一》,最好能用 tcpdump 实际操作一下。

或者别的类似的书籍资料也行

论坛徽章:
41
黑曼巴
日期:2018-02-02 05:54:372016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:36每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:45程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之广夏
日期:2017-12-18 03:07:47
发表于 2017-12-06 13:46 |显示全部楼层
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。

论坛徽章:
0
发表于 2017-12-06 20:15 |显示全部楼层
windoze 发表于 2017-12-06 13:46
TCP是流不是包。
TCP是流不是包。
TCP是流不是包。

大神别激动!  反复看了谢希仁的《计算机网络》后,问题解决了。链路层会将上层传下来的数据封装成帧,并且会加上帧检验序列。所以对端的链路层收到一帧后,会进行差错检验。如果接收到没有差错的帧,就会将帧剥离首部和尾部,然后层层上传,最终接收缓冲区就能收到一个完整的报文段(报文段由按序排列的若干字节组成,但报文段可能不会按序到达)
如果收到有错误的帧,这时就会将其丢弃。或者这一帧在规定时间内没有到达对端,发送端后续就会超时重传。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP