一.新模块'subprocess' 二.粘包问题 (只有tcp协议才会发送粘包,udp不会发生) EX: 发送端发送数据,接收端不知道应该如何去接收,造成的一种数据混乱的现象 1.合包机制(nagle算法): 将多次连续发送且间隔较小的数据,进行打包成一块数据传送. 2.拆包机制: 还有一个机制是拆 ...
分类:
编程语言 时间:
2018-08-14 21:05:37
阅读次数:
148
Delay ack(延迟确认) 正常情况下服务器收到一个请求时就会立即回复ACK确认给客户端,然后客户端再发送下一个包,服务器再进行回复。有时候服务器回复的ACK包有长度,但实际内容长度为0,这也没关系属于正常的。不过一次发送一次确认效率比较低,能不能收多次批量确认一次呢?这就是延迟确认。 Dela ...
分类:
编程语言 时间:
2018-07-28 13:44:45
阅读次数:
164
1、粘包产生原因: (1)TCP为提高传输效率,发送方往往要收集到足够多的数据后才发送一个TCP段。若连续几次需要send的数据都很少,通常TCP会根据优化算法(Nagle)把这些数据合成一个TCP段后一次发送出去,这样接收方就收到了粘包数据; (2)接收方不知道消息之间的界限,不知道一次性提取多少 ...
分类:
其他好文 时间:
2018-07-10 19:17:15
阅读次数:
231
原文链接地址:https://www.cnblogs.com/kakawith/p/8378425.html 一、黏包成因 tcp协议的拆包机制 面向流的通信特点和Nagle算法 总结: 黏包有两种: 一种是因为发送数据包时,每次发送的包小,因为系统进行优化算法,就将两次的包放在一起发送,减少了资源 ...
分类:
其他好文 时间:
2018-06-23 20:58:20
阅读次数:
205
在TCP进行数据传输时,可以分为成块数据流和交互数据流两种,如果按字节计算,成块数据与交互数据的比例约为90%和10%,TCP需要同时处理这两类数据,且处理的算法不同。 书籍本章中以Rlogin应用为例观察交互数据的传输过程。提示经受时延的确认是如何工作以及Nagle算法怎样减少了通过广域网络传输的 ...
分类:
其他好文 时间:
2018-06-13 00:57:33
阅读次数:
200
1. Nagle 算法 在一个 Rlogin 连接上客户一般每次发送一个字节到服务器,这就产生了一些 41 字节长的分组:20 字节的 IP 首部、20 字节的 TCP 首部和 1 个字节的数据。在局域网上,这些小分组(被称为微小分组(tinygram))通常不会引起麻烦,因为局域网一般不会出现拥塞 ...
分类:
编程语言 时间:
2018-05-27 00:21:22
阅读次数:
275
20 Apr 18 一、上节课复习 1、 TCP(建立的是一个双向连接)三次握手建连接,四次挥手断连接 三次握手: c syn=1 seq=x >s s ack=1+x syn=1 seq=y >c c ack=1+y >s 四次挥手: s fin=1 >c c >ack=1 >s c >fin=1 ...
分类:
其他好文 时间:
2018-04-22 14:23:14
阅读次数:
192
TCP传输小数据包效率问题(译自MSDN) http://www.ftpff.com/blog/?q=node/16 摘要:当使用TCP传输小型数据包时,程序的设计是相当重要的。如果在设计方案中不对TCP数据包的 延迟应答,Nagle算法,Winsock缓冲作用引起重视,将会严重影响程序的性能。这篇 ...
分类:
其他好文 时间:
2018-04-15 11:47:36
阅读次数:
199
1. Nagle算法: 是为了减少广域网的小分组数目,从而减小网络拥塞的出现; 该算法要求一个tcp连接上最多只能有一个未被确认的未完成的小分组,在该分组ack到达之前不能发送其他的小分组,tcp需要收集这些少量的分组,并在ack到来时以一个分组的方式发送出去;其中小分组的定义是小于MSS的任何分组 ...
分类:
编程语言 时间:
2018-04-15 11:41:27
阅读次数:
175
一、什么是粘包 须知:只有TCP有粘包现象,UDP永远不会粘包 粘包不一定会发生 TCP发生粘包的两种情况: 1.由于Nagle算法,将多次间隔小且数量小的数据,合并成一个数据块 2.数据量发送大,接受少 首先需要掌握一个socket收发消息的原理 应用程序所看到的数据是一个整体,或说是一个流(st ...
分类:
其他好文 时间:
2018-04-12 20:50:11
阅读次数:
154