标题:TCP数据包和TCP流的问题
只看楼主
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用lyl930130在2017-12-21 19:19:45的发言:

客户端和服务器建立了一个TCP的socket连接。
服务器往客户端发了一个文件,文件发送完以后并没有断开,依旧保持连接。
那流到底是这个socket连接(文件发完还没有结束),还是文件发完流就结束了,还是这两个都是错的?

TCP协议建立连接和终止连接要通过“握手”,握手建立连接后,不管有无收发数据,直到一方调用close终止连接握手后才断开连接。
2017-12-21 20:07
燕小六
Rank: 4
来 自:北京
等 级:业余侠客
威 望:3
帖 子:49
专家分:247
注 册:2017-11-29
得分:0 
以下是引用吹水佬在2017-12-21 16:35:57的发言:

“头”,数据包头部信息,主要是一些数据包属性信息(如数据包的大小等等)。
send一个数据包后就由系统去处理怎样分块。recv也是由系统决定收到分发的数据块。
有时send一个数据包可能会recv收到几块数据。

是帧大小
2017-12-21 20:50
燕小六
Rank: 4
来 自:北京
等 级:业余侠客
威 望:3
帖 子:49
专家分:247
注 册:2017-11-29
得分:0 
以下是引用lyl930130在2017-12-21 19:19:45的发言:

还有一个关于流的问题。

具体一点。
客户端和服务器建立了一个TCP的socket连接。
服务器往客户端发了一个文件,文件发送完以后并没有断开,依旧保持连接。
那流到底是这个socket连接(文件发完还没有结束),还是文件发完流就结束了,还是这两个都是错的?

你上层(应用层)传不传完文件跟tcp一点关系都没有,只要你不调用关闭,或者对方不发fin  rst这个链接这个流就没有结束,tcp还有个探测保活,是可以重置链接的,但是它只是为了探测对方还有没有保持链接和网络通畅,如果不出现以上两点,tcp是不会关闭的
2017-12-21 20:55
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
得分:0 
也就是说,一个流是对于一次TCP握手的建立到建立断开整个过程的?
2017-12-21 23:06
燕小六
Rank: 4
来 自:北京
等 级:业余侠客
威 望:3
帖 子:49
专家分:247
注 册:2017-11-29
得分:0 
以下是引用lyl930130在2017-12-21 23:06:51的发言:

也就是说,一个流是对于一次TCP握手的建立到建立断开整个过程的?

是的,tcp只是一个流,他不管你上面怎么看这个流,也不管这个流承载了什么东西
2017-12-22 08:26
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用燕小六在2017-12-21 20:50:05的发言:


是帧大小

专家说“帧”,包括帧头帧尾,按规定顺序帧串成流。
俗人叫“块”,包括块头块尾,按规定顺序块结成包。
说“帧”好,叫“块”也吧,大小由硬件和系统决定。
2017-12-22 09:29
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.012334 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved