TCP的三次握手与四次握手过程及状态转换

这是个网络编程面试的重点知识点,总结一下:

建立连接——三次握手

TCP通过三次握手建立服务器与客户端之间的连接。
所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个数据包。
三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。
在socket编程中,服务器首先调用socket、bind、listen和accept,并阻塞于accept,当客户端调用connect时,将触发三次握手过程。
第一次握手:客户端调用connect发送一个SYN数据包给服务器,并进入SYN_SENT状态,等待服务器的确认;
第二次握手:服务器收到客户端发来的SYN数据包,必须发回确认包(ACK)应答,同时自己也发送一个SYN包给客户端,此时服务器进入SYN_RCVD状态;
第三次握手:客户端收到服务器的数据后connect返回,进入ESTABLISHED状态,并向服务器发回确认包ACK,服务器接收到这个ACK后accept返回,也进入ESTABLISHED状态。
至此,三次握手完成,服务器和客户端就建立起了连接。上述过程图示如下:
这里写图片描述

终止连接——四次握手

TCP通过四次握手终止服务器与客户端之间的连接,一共需要发送四个数据包。
第一次握手:客户端或服务器调用close发起主动关闭,我们以客户端为例,客户端发送一个FIN给服务器,并进入FIN_WAIT_1状态;
第二次握手:服务器收到FIN后发送一个确认包ACK到客户端,并进入CLOSE_WAIT状态,客户端接收到ACK后进入FIN_WAIT_2状态;
第三次握手:经过一段时间,服务器做好了关闭连接的准备工作,然后调用close(代码主动调用或由内核调用)给客户端发送一个FIN,并进入LAST_ACK状态;
第四次握手:客户端收到服务器的FIN后发送ACK给服务器,然后进入TIME_WAIT状态,服务器接收到这个ACK后进入CLOSED状态。
至此四次握手完成,客户端与服务器间的连接被终止,图示如下(左边client,右边server):
这里写图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《TCP/IP详解 卷一、二、三pdf》是一本网络技术的权威著作,由美国网络专家Douglas E. Comer所著。这本书是关于TCP/IP协议的详细解析和介绍,包含了网络通信的基本原理、协议栈的结构、数据传输过程等内容。 《TCP/IP详解 卷一、二、三pdf》的卷一主要介绍了TCP/IP协议的基础知识,包括协议栈的层次结构、IP地址和子网划分、网络接口和路由选择、ARP和RARP协议、网络地址转换等。这一卷的内容非常基础,是理解后续卷的基础。 卷二则深入介绍了TCP协议的工作原理和实现细节。包括三次握手四次挥手过程、拥塞控制、流量控制和窗口管理、超时重传、各种TCP选项和标志位等。通过详细解析,读者能够更好地理解TCP协议的工作机制和数据传输的流程。 卷三则介绍了一些与IP协议相关的主题,如IP路由表和路由查找算法、多播和广播、IP转发和分片、IP协议的安全性等。这一卷的内容相对较为复杂,需要读者具备一定的网络知识和经验。 总的来说,《TCP/IP详解 卷一、二、三pdf》是一本全面深入介绍TCP/IP协议的重要参考书。无论是对于网络工程师、系统管理员还是对于对网络通信感兴趣的读者来说,这本书都具有很高的参考价值。通过阅读这本书,读者可以更好地理解网络通信的原理和实现,提高网络的性能和安全性。 ### 回答2: 《TCP/IP详解 卷一、二、三》是一本经典的网络技术书籍,全称为《TCP/IP协议详解:卷一-协议》、《TCP/IP协议详解:卷二-实现》和《TCP/IP协议详解:卷三- TCP事务、HTTP、NNTP、IMAP等》。 《TCP/IP详解 卷一-协议》首先介绍了TCP/IP协议栈的基本原理和架构,包括IP协议、ICMP协议、ARP/RARP协议、UDP协议、TCP协议等。通过深入解析这些协议,读者可以全面了解TCP/IP协议栈的工作机制和功能。 《TCP/IP详解 卷二-实现》从实现的角度出发,介绍了如何在不同的操作系统中进行TCP/IP协议栈的实现,包括网络设备驱动程序、协议控制块、握手过程、数据传输和错误处理等。这本书详细讲解了TCP/IP协议栈在各种操作系统环境下的实际应用。 《TCP/IP详解 卷三- TCP事务、HTTP、NNTP、IMAP等》则着重介绍了一些常用的应用层协议,如TCP事务、HTTP协议、NNTP协议、IMAP协议等。这些协议在互联网中起到了重要的作用,通过深入了解它们的工作原理和应用场景,读者可以更好地掌握网络应用开发和应用层协议的使用。 总体来说,《TCP/IP详解 卷一、二、三》是一本权威、全面的TCP/IP网络技术著作。适合网络工程师、系统管理员、软件开发人员等专业人士学习使用。通过阅读这本书籍,读者可以深入理解TCP/IP协议栈的原理和实现,提升对网络通信的理解和应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值