【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
看到TCP通信物理帧的长度是46---1500.
那么如果用户数据比较大(比如50K),那么用TCP通信的时候系统会怎么处理呢?
如果我用socket函数,如send,recv,write,read等进行数据的发送和读取,它能一次读完么?还是说一次性可能会读不完,需要你主动的去编写读完的条件?
应用层以下数据会进行拆分和重组么?
【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
看到TCP通信物理帧的长度是46---1500.
那么如果用户数据比较大(比如50K),那么用TCP通信的时候系统会怎么处理呢?
如果我用socket函数,如send,recv,write,read等进行数据的发送和读取,它能一次读完么?还是说一次性可能会读不完,需要你主动的去编写读完的条件?
应用层以下数据会进行拆分和重组么?
tcp协议栈为你完成了数据包重组.
send,recv,write,read完全有可能接收或发送不完整, 需要判断返回值, 继续发送或接收.
对用户来说,使用socket的相关函数,就跟操作一般的文件一样,用户把要发送或接受的数据看作数据流。至于数据包的创建,重组,拆分等操作操作系统已经帮我们完成了,用户唯一要做的只是判断相关的函数执行是否成功。