随笔分类 -  TCP

摘要:TCP协议连接建立时3次握手的过程。简述TCP协议连接建立时3次握手的过程。根据TCP头部,说明下列3个包在连接建立过程中的次序.002000 50 83 aa 46 49 3e dd 33 96 37 a3 a0 12...P..FI>.3.7...003016 a0 c4 c0 00 00 02 04 05 b4 04 02 08 0a d7 9b................004062 b7 00 56 4a 2a 01 03 03 02b..VJ*....(1)002083 aa 00 50 33 96 37 a2 00 00 00 00 a0 02.....P3.7.... 阅读全文
posted @ 2012-05-16 22:23 小哥er 阅读(6426) 评论(0) 推荐(0)
摘要:TIME_WAIT状态TCP要保证在所有可能的情况下使得所有的数据都能够正确被投递。当关闭一个 socket 连接时,主动关闭一端的 socket 将进入TIME_WAIT状态,而被动关闭一方则转入CLOSED状态。见图解。当一个socket关闭的时候,是通过两端互发信息的四次握手过程完成的,当一端调用close()时,就说明本端没有数据再要发送了。这好似看来在握手完成以后,socket就都应该处于关闭CLOSED状态了。但这有两个问题,第一:我们没有任何机制保证最后的一个ACK能够正常送达第二:网络上仍然有可能有残余的数据包(wandering duplicates,或老的重复数据包),我们 阅读全文
posted @ 2012-05-14 22:00 小哥er 阅读(554) 评论(0) 推荐(0)
摘要:TCP协议有个超时重传机制,想必大家都比较熟悉。TCP协议是一种传输可靠的协议,因此这个机制是必不可少的。那么今天要探讨的是在发送队列还有数据的情况下,网络连接异常断开后,协议栈是到底是怎样来处理这些数据的,资源又是怎样被回收的呢?我这里先给出几个测试的结果:1、修改linux系统下的tcp_retries2为1,当socket发送队列有一定数据时,突然切断网线,造成异常断链的场景,此时,大约过了1秒,用netstat观察established的连接消失;2、继续把该参数修改为15,重复上面的实验,发现大约过了15分钟后,established的连接才断开;3、把参数再次修改为5,大约过了7秒 阅读全文
posted @ 2011-09-10 19:35 小哥er 阅读(3978) 评论(0) 推荐(0)