标题:TCP数据包和TCP流的问题
取消只看楼主
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
结帖率:91.43%
已结贴  问题点数:20 回复次数:5 
TCP数据包和TCP流的问题
假设服务器和客户端通信,然后自己在TCP/UDP上又封装了一个自定义的协议头A,数据格式就是: ip | tcp/udp | A | data 这样的情况。
服务器一直给客户端发送以上模式的数据。
如果是UDP(不考虑丢包什么的),我理解就是发一个包,收一个包。我发了多少个包,wireshark就能抓到多少个UDP的数据包,每个UDP的数据包都是 ip | udp | A |data 这样格式的数据。
但是TCP不是说是流吗,对TCP流的理解不是很清楚,只知道在接收方要一直recv,不能send几次就recv几次。
是说有可能一次发送就是我send的数据,有可能一次发送多个send的数据,有可能将一个send的数据拆分成几次发送,对吗?用wireshark抓包下来的数据,是每个TCP数据包里都是我自定义格式的这种单条数据,还是可能单条数据也会被分开在几个TCP数据包里,或者几条自定义的数据在一个TCP数据包里?
搜索更多相关主题的帖子: TCP 数据包 udp 数据 发送 
2017-12-21 00:20
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
得分:0 
谢谢。

也就是我一次要发送的所有数据叫一个流。
我用了N次send来发送整个流数据,用了M次recv来接收完整个数据流,总共产生了K个TCP数据包。
M和N、K之间可能相等,可能不等,但是没有一个确定的关系。
N和K之间一定相等吗?
同问,有头和没头是什么意思
2017-12-21 13:48
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
得分:0 
回复 7楼 吹水佬
知道了,谢谢
2017-12-21 19:14
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
得分:0 
还有一个关于流的问题。

具体一点。
客户端和服务器建立了一个TCP的socket连接。
服务器往客户端发了一个文件,文件发送完以后并没有断开,依旧保持连接。
那流到底是这个socket连接(文件发完还没有结束),还是文件发完流就结束了,还是这两个都是错的?
2017-12-21 19:19
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
得分:0 
也就是说,一个流是对于一次TCP握手的建立到建立断开整个过程的?
2017-12-21 23:06
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
得分:0 
非常感谢小刘和水哥
2017-12-22 19:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483570-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035982 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved