TCP的运输连接管理
本片文章总结了TCP连接的建立和释放过程,过程说明中只说明了相应过程的做了什么,具体的报文段字段可以在图片中查看
TCP的连接建立(三报文握手)
前提假设:A为客户端 ,B为服务端
连接建立过程
- B建立传输控制模块(TCB)等待客户请求,A建立传输控制模块准备发送请求
- A发送连接请求报文段,不能携带数据,消耗掉一个序号
- B收到连接请求后发送确认报文段,不能携带数据,消耗掉一个序号(可以将这一步分为ACK=1,ack=x+1和SYN=1,seq=y两步,形成四报文握手)
- A收到B的确认报文段后向B发送ACK报文段,可以携带数据,但如果不携带数据则不消耗序号
为什么A最后还要发送一次确认报文?
如果A最后不发送一次确认报文,那么在网络中存在的已失效的连接请求报文段传到B后,B发送确认报文段后就进入连接建立状态,而A对B发送过来的确认报文不会有任何反应,这将白白消耗B很多的资源。如果A最后发送一次确认报文就不会有这个问题。