( 该图由AI制作 学习AI绘图 )
目录
将 HTTP 请求消息交给协议栈
当控制流程从 connect 回到应用程序之后 (图中的②结束)
进入数据收发阶段(
从应用程序调用
write
将要发送的数据交给协议栈
开始
(
图
③
)
)
协议栈收到数据后执行发送操作
协议栈收到数据
会将数据存放在内部的发送
缓冲区
中
等待应用程序的下一段数据
要积累多少数据才能发送
,
不同种类和版本的操作系统会有所不同
补充:如何判断何时发送
1:是每个网络包能容纳的数据长度
根据一个叫作 MTU 的参数来进行判断 。 MTU 表示一个网络包的最大长度 , 在以太 网中一般是 1500 字节 ( 图 ) 。 MTU 是包含头部的总长度 , 因此需要从 MTU 减去头部的长度 , 然后得到的长度就是一个网络包中所能容纳的最大 数据长度 , 这一长度叫作 MSS 。 当从应用程序收到的数据长度超过或者接 近 MSS 时再发送出去 , 就可以避免发送大量小包的问题了