网站的布局结构三种,seo推广分析,asp.net网站开发上,社交媒体营销策略有哪些TCP为了防止在网络中过多的小分组会导致阻塞#xff0c;因此提供了Nagle算法#xff1a;要求一个TCP连接上最多只能有一个未被确认的未完成的小分组#xff0c;在该分组的确认到达之前不能发送其他的小分组。相反#xff0c;TCP收集这些少量的分组#xff0c;并在确认到来…TCP为了防止在网络中过多的小分组会导致阻塞因此提供了Nagle算法要求一个TCP连接上最多只能有一个未被确认的未完成的小分组在该分组的确认到达之前不能发送其他的小分组。相反TCP收集这些少量的分组并在确认到来时以一个分组的方式发出去。Nagle算法会导致自己写的TCP程序中小分组不能及时的发送出去。现在我写了个基于TCP的socket程序希望AP往client端发送1000个16字节的报文。结果发现client端接收到的报文并不是每次大小都是82字节(82字节是因为有66字节的TCP和IP头等外加16字节我自己的数据)会出现大小为98字节的数据(98字节是因为有66字节的TCP和IP头等外加两个16字节的自己的数据)。如下图所示这时就想起了关闭TCP中的Nagle算法。于是在我的TCP发送的Socket程序中加入如下代码(记得还要导入头文件 #include )/* Disable the Nagle (TCP No Delay) algorithm *///sock_cli是自己定义的socket套接字int flag 1;int ret setsockopt( sock_cli, IPPROTO_TCP, TCP_NODELAY, (char *)flag, sizeof(flag) );if (ret -1) {printf(Couldn‘t setsockopt(TCP_NODELAY)\n);exit(-1);}重新编译并且运行抓包后如下图所示可以发现不会在出现小分组等待的现象说明关闭了Nagle算法。