摘要: 网络编程,对网络的理解是面试几乎必问的内容,所以,要好好学习网络知识。网络编程无非就是涉及到tcp,udp,ip,ICMP,http协议等。TCP建立连接的时候三次握手TCP断开连接的时候四次握手,断开连接的时候Time_wait时间、平静时间TCP连接中的TIME_WAIT状态http://www.apkbus.com/android-13543-1-1.htmlTCP连接中的TIME_WAIT状态二http://www.apkbus.com/android-13544-1-1.html TCP/IP协议详解 http://www.apkbus.com/android-13528-1-1.h 阅读全文
posted @ 2013-04-17 11:59 羊皮稿 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 你所不知道的传输层题记:23页的文档上,满满当当的写满了笔记,纸质的东西,始终害怕丢失,还是选择把它总结到博客上来。PS.老规矩,列出可能遇到的20个问题,如果您是都能回答的高手,请您绕道,我是小菜,只做自己的学习笔记。1.传输层的主要功能是什么?2.传输层如何区分不同应用程序的数据流?3.传输层有哪些协议?4.什么是UDP协议?5.为什么有了UDP,还需要TCP?6.什么是TCP协议?7.怎么理解协议和程序?8.TCP是否真的有链接?9.链接是如何建立的(逻辑上)?10.所谓的建立TCP链接开销很大,具体是指什么?11.三次握手的目的是什么?12.TCP如何提供可靠性?13.什么是预期确认? 阅读全文
posted @ 2013-04-17 09:21 羊皮稿 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 一、TIME_WAIT状态的必要性上述四次握手描述的是客户段主动关闭,服务器被动关闭的流程,其一般过程如下:1、 客户端发送FIN报文段,进入FIN_WAIT_1状态。2、 服务器端收到FIN报文段,发送ACK表示确认,进入CLOSE_WAIT状态。3、 客户端收到FIN的确认报文段,进入FIN_WAIT_2状态。4、 服务器端发送FIN报文端,进入LAST_ACK状态。5、 客户端收到FIN报文端,发送FIN的ACK,同时进入TIME_WAIT状态,启动TIME_WAIT定时器,超时时间设为2MSL。6、 服务器端收到FIN的ACK,进入CLOSED状态。7、 客户端在2MSL时间内没收到对 阅读全文
posted @ 2013-04-17 09:16 羊皮稿 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 一般来说,tcp正常关闭需要四个包。比如a和b关闭连接,a先 给b发一个fin,b会进行确认ack,然后b也会发出fin,当a接受到这个fin,并发出最后一个ack后,就会处于time_wait状态。这个时 间长短跟操作系统有关,一般会在1-4分钟,也就是两倍的数据包(2msl)最大生存时间。TCP主动关闭方采用TIME_WAIT主要是为了实现终止 TCP全双工连接的可靠性及允许老的重复分节在网络中消逝,等过了2msl(大约1~4分钟)后TIME_WAIT就会消失。TIME_WAIT状态的目 的是为了防止最后a发出的ack丢失,让b处于LAST_ACK超时重发FIN。 所以说,主动发起关闭连接 阅读全文
posted @ 2013-04-17 09:11 羊皮稿 阅读(314) 评论(0) 推荐(0) 编辑