一、概述
1、TCP是面向连接的协议,它基于运输连接来传送TCP报文段
2、TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程
3、TCP运输连接有以下三个阶段:
(1)建立TCP连接
(2)数据传送
(3)释放TCP连接
4、TCP的运输连接管理就是使运输连接的建立和释放都能正常进行
5、TCP的连接建立要解决以下三个问题:
(1)使TCP双方都能确知对方的存在
(2)使TCP双方能够协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)
(3)使TCP双方能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配
二、TCP使用“三报文握手”建立连接
1、TCP客户机向TCP服务器发送TCP连接请求报文段,请求报文段的SYN被设置为1,序号字段seq设置一个初始值X,TCP客户机进入SYN-SENT同步已发送状态
2、TCP服务器收到客户机的TCP连接请求后,向客户机发送针对TCP连接请求的确认报文段,请求确认报文段的SYN设置为1,确认位ACK设置为1,序号字段seq设置为初始值y,确认号字段ack设置为x+1,表示对请求的确认,并进入SYN-RCVD同步已接收状态
3、TCP客户机收到连接确认报文段后,向TCP服务器发送针对TCP连接请求的确认的确认报文段,确认位ACK设置为1,序号字段seq设置为x+1,确认号字段ack设置为y+1,并进入ESTABLISHED连接已建立状态,TCP服务器收到后也进入该状态,随后连接双方即可进行数据传输
(1)根据TCP标准的规定,SYN=1的报文段不能携带数据,但要消耗掉一个序号
(2)TCP标准规定,普通的确认报文段如果不携带数据,则不消耗序号
4、之所以采用“三报文握手”建立连接,而不是“两报文握手”,是为了防止已失效的连接请求报文段突然又传送到了TCP服务器,因而导致错误。