1、TCP是面向连接、面向字节流的可靠传输协议,每次传输都需要建立连接、数据传输、释放连接
2、TCP建立连接过程
为何A要有对B的确认发送确认呢?
是防止已失效的连接请求报文突然有传送到B,产生错误。如果A的第一个连接请求报文由于网络延时,一段时间后在A后面的重传请求到达B后到达了B,B收到此失效报文就会误以为新的连接请求,B建立连接等待A传输数据,但A不会传输任何数据,B的资源就白白浪费了。
3、TCP释放连接过程
数据传输后双方都可以释放连接。
为何A要在TIME-WAIT状态必须等待2MSL(Maximum Segment Lifttime,最长报文段寿命)?
1、为了保证A发送的最后一个ACK能够到达B。有可能丢失A会重传
2、防止已失效的请求连接出现在本连接中。