笔试面试目前遇到常见的问题:tip/ip的建立过程
2013-11-09 22:24
495 查看
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念: 未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。 Backlog参数:表示未连接队列的最大容纳数目。 SYN-ACK 重传次数 服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。 半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。
相关文章推荐
- java基础:常见的概念问题,面试笔试可能会遇到哟
- 钟表问题(常见面试笔试问题整理)
- 苹果面试过程中求职者可能遇到的问题
- 整理最近php面试过程中遇到的一些问题
- 讲解Oracle面试过程中常见的二十个问题
- 面试过程中遇到的问题
- tcp/ip--面试中遇到几个问题
- C/C++笔试面试常见问题1
- Java程序基础测试 基础笔试、面试常见问题集合
- Android 笔试/面试,常见问题整理
- ubuntu 12.04建立环境编译过程中遇到的问题
- 链表的一些常见笔试面试问题总结及代码
- JS 开发过程中遇到的常见问题
- Java面试过程中会遇到的问题
- 讲解Oracle面试过程中常见的二十个问题
- [项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor相关知识及各种常见使用问题
- 2018春,在实习面试过程中遇到的一些问题
- JS 开发过程中遇到的常见问题
- SQL Server DBA常见面试 笔试问题(转)