TCP的的重要性我想可想而知,虽然时间较UDP慢,但他是支持全双工的面向连接的可靠传输协议,他提供的额外服务包括,流量控制(滑动窗口),差错控制,拥塞控制(慢启动曲线)等等。
以下图片来自《数据通信与网络》第四版
而对于TCP的连接和终止时其中的基础:
1、TCP的连接
三次握手
这个比较简单,客户端发送SYN字段,主动打开,该字段不含数据,但是占用一个序列号,称为伪字节。服务器端发送SYN和ACK,分别是请求建立和确认字段,最后客户端发送ACK确认字段。
说点相关的其他内容:有些黑客会利用该协议进行SYN泛洪攻击,攻击者利用大量伪造的IP向服务器发送SYN字段,而服务器端发送的SYN+ACK一直到不了目的端,在这段时间内,大量的资源被占用而没有被使用,服务器耗尽资源而崩溃。我所了解到的解决方法大致有:限制半连接的数目上限,缩短无法建立连接到释放连接的时间,过滤来自不需要的源地址的数据包,或者使用cookie推迟资源分配知道完整的连接建立(STCP)。感兴趣的可以再去详细了解下。
2、TCP的终止连接
三次握手