随笔分类 -  协议TCP/IP

计算机网络TCP/IP
摘要:结论: 1. internet 548bytes. 2. 局域网 1472bytes局域网链路层的MTU(最大传输单元) 1500字节, MTU指的是最大传送的数据, 不包括链路层首部和尾部.所以IP首部(20字节) + IP包数据 = 1500字节, IP包数据 = 1480字节UD... 阅读全文
posted @ 2014-10-16 11:34 helloweworld 阅读(2759) 评论(0) 推荐(0)
摘要:共11中状态,下图是正常连接和关闭的状态,还有一种状态时同时关闭时的状态 closing. 阅读全文
posted @ 2013-04-21 16:49 helloweworld 阅读(181) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2013-04-21 16:29 helloweworld 阅读(168) 评论(0) 推荐(0)
摘要:RTT Round-Trip Time 比如重传定时器,那么到底多长时间没接到ACK才重传呢? 测量的RTT RTT的测量可以采用两种方法: (1)重传队列中数据包的TCP控制块在TCP重传队列中保存着发送而未被确认的数据包,数据包skb中的TCP控制块包含着一个变量,tcp_skb_cb->when,记录了该数据包的第一次发送时间。RTT = 当前时间 – when (2)TCP Ti... 阅读全文
posted @ 2013-04-21 16:22 helloweworld 阅读(1750) 评论(0) 推荐(0)
摘要:重传定时器 希望收到另一端的确认。 如:一端发送数据,希望收到ACK,但迟迟未收到ACK,就会重传,这里经过多长时间重传由重传定时器决定。 坚持定时器 使窗口大小信息保持不断流动。 如:看另一篇博文。http://www.cnblogs.com/lucasfeng/archive/2012/11/27/2790407.html 保活定时器 检测一个空闲连接的另一端何时崩溃或重启。 连接... 阅读全文
posted @ 2013-04-21 13:05 helloweworld 阅读(290) 评论(0) 推荐(0)
摘要:引言TCP通过让接收方指明希望从发送方接收的数据字节数(即窗口大小)来进行流量控制。如果窗口大小为 0会发生什么情况呢?这将有效地阻止发送方传送数据,直到窗口变为非0为止。TCP不对ACK报文段进行确认, TCP只确认那些包含有数据的ACK报文段。如果一个确认丢失了,则双方就有可能因为等待对方而使连接终止:接收方等待接收数据(因为它已经向发送方通告了一个非 0的窗口),而发送方在等待允许它继续发送数据的窗口更新。为防止这种死锁情况的发生,发送方使用一个坚持定时器 (persist timer)来周期性地向接收方查询,以便发现窗口是否已增大。这些从发送方发出的报文段称为窗口探查 (window 阅读全文
posted @ 2012-11-27 11:12 helloweworld 阅读(478) 评论(0) 推荐(0)
摘要:什么是糊涂窗口综合症 当发送端应用进程产生数据很慢、或接收端应用进程处理接收缓冲区数据很慢,或二者兼而有之;就会使应用进程间传送的报文段很小,特别是有效载荷很小。 极端情况下,有效载荷可能只有1个字节;而传输开销有40字节(20字节的IP头+20字节的TCP头) 这种现象就叫糊涂窗口综合症。 发送端引起的糊涂窗口综合症 如果发送端为产生数据很慢的应用程序服务(典型的有telnet应用),例如,一次... 阅读全文
posted @ 2012-11-27 10:56 helloweworld 阅读(576) 评论(0) 推荐(0)
摘要:TCP有个套接字选项TCP_NODELAY设置这个选项可以禁止Nagle算法。 解决的问题: 小包问题,如从键盘输入的一个字符,占用一个字节,可能在传输上造成41字节的包,其中包括1字节的有用信息和40字节的标题数据,这种情况转变成了4000%的消耗。 Nagle算法要求,一个TCP连接上最多只能有一个未被确认的未完成的小分组。 阅读全文
posted @ 2012-11-15 21:12 helloweworld 阅读(190) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2012-11-09 12:03 helloweworld 阅读(151) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2012-11-09 10:40 helloweworld 阅读(178) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2012-11-09 10:13 helloweworld 阅读(178) 评论(0) 推荐(0)
摘要:如果不计任选字段,TCP首部通常是20字节,封装在IP数据报中。 32位序号 序号用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则TCP用序号对每个字节进行计数。序号是32bit的无符号数,序号到达2^32-1后又从0开始。 32位确认序号 确认序号包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加1。只有ACK标志(下面介绍)为1时确认序号字段才有效。 4位首部长度 首部长度给出首部中32bit字的数目。需要这个值是因为任选字段的长度是可变的。 例如... 阅读全文
posted @ 2012-11-08 19:56 helloweworld 阅读(3809) 评论(0) 推荐(0)
摘要:实验步骤: 1、server监听; 2、client连接; 3、client发hello good boy; 4、kill 服务器已经连接的socket子进程; 5、client发anotherline. 相关代码UnixTCPServerModify.c UnixTCPClientModify.c 阅读全文
posted @ 2012-11-08 17:11 helloweworld 阅读(345) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2012-09-10 11:02 helloweworld 阅读(850) 评论(0) 推荐(0)