TCP 和 IP 协议
什么是 TCP/IP 协议
TCP/IP 中的 TCP 是 Transmission Control Protocol 传输控制协议,IP 是 Internet
Protocol 网络协议。实现网络之间传输通信的协议簇。也就是不仅仅是指 TCP 和 IP,也包括例如 FTP、UDP 等协议。由于 TCP 和 IP 协议最具代表性,因此常称 TCP/IP 协议
TCP 协议
TCP 协议位于传输层,负责通信双方的数据传输。
建立 TCP 连接(三次握手)
客户端发送一个
SYN包给服务端,告知其其想要建立连接如果接受同意建立连接,则返回一个
SYN + ACK包给客户端,说明同意建立连接如何拒绝连接?服务端返回
RST包来表示拒绝连接,或者不向客户端进行回复,而客户端会在等待超时后从而放弃客户端收到后,再次向服务端发送一个
ACK包,告知其已收到了同意进行通信的消息,双方开始通信
为什么非得是三次?
为了确保通信双方都可以正常进行发送和接受。如果是两次握手,当客户端发送连接请求报文由于某些原因导致延迟、滞留丢失了,客户端将会重传发送新的连接请求报文,而之前丢失的报文,在以后的某个时间段到达了服务端,服务端确认该报文后将会建立连接,对于客户端来说该报文已失效,不会用于向服务端发送数据,但由于连接已建立,服务端会一直等待客户端发送数据,造成资源浪费;如果是四次握手,由于三次握手即可确保双方都能正常通信,则四次握手是多余不必的,
断开 TCP 连接(四次挥手)
- 客户端发送一个
FIN包给服务端,告知其想要断开连接 - 服务端收到断开连接的请求后,返回一个
ACK包给客户端,告知其同意断开连接 - 然后服务端也向客户端发送一个
FIN包,告知其服务端也要断开连接了 - 客户端接受到该包后,返回一个
ACK包告知服务端同意断开连接,双方断开连接
为什么非得是四次?
由于 TCP 连接是全双工,所以需要双方分别释放到对方的连接,仅单独一方释放连接,只代表不能再向对方发送数据,但连接仍处于半释放的状态。
IP 协议
IP 协议工作于网络层。主要用途如下:
- 负责为计算机分配 IP 地址
- 将一个 IP 地址的数据,发送到另一个IP地址的设备上。
该博客版权归饶英俊(Royin)所有,严禁抄袭,欢迎转载。如有反馈或建议等可通过邮箱联系我
本文链接:https://raoyingjun.github.io/2021/10/26/TCP%E5%92%8CIP%E5%8D%8F%E8%AE%AE/