一、TCP 协议
在 TCP/IP 协议栈中,传输层有两个协议: TCP(传输控制协议)和 UDP(用户数据报协议)。
- TCP 协议传输更加稳定可靠,UDP 协议传输效率更高。这两个协议各有特点,在实际应用
中,根据实际应用的需要,选择不同的传输层协议。比如:Web、邮箱等对可靠性要求高 的服务,都使用 TCP 协议来传输;
对于即时通讯、DHCP 等要求快速完成信息传递的服务,就使用 UDP 协议来传输。 - TCP 是面向连接的、可靠的进程到进程通信的协议。TCP 提供全双工服务,即数据可在 同一时间双向传输,每一个 TCP
都有发送缓存和接收缓存,用来临时存储数据
二、六个控制位:
URG:紧急位。紧急指针有效位
ACK:确认位。只有当ACK=1时,确认序列号字段才有效;当ACK=0时,确认号字段无效
PSH:急迫位。标志位为1时,要求接收方尽快将数据段送达应用层。
RST:重置位。当RST值为1时,通知重新建立TCP连接。
SYN:同步(连接)位。同步序号位,TCP需要建立连接时将这个值设为1
FIN:断开位。当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设为1.数据段的数目。这个值的大小是可变的,
三、TCP三次握手和四次挥手
三次握手
四次挥手
四、UDP协议
相比 TCP 协议而言,UDP 是一个无连接、不保证可靠性的传输层协议,也就是说发送端
不关心发送的数据是否到达目标主机、数据是否出错等,收到数据的主机也不会告诉发送方
是否收到了数据,它的可靠性由上层协议来保障。既然 UDP 有这样的缺点,那为什么进程还
愿意使用它呢?因为 UDP 也有优点, UDP 的首部结构简单,在数据传输时能实现最小的开销,
如果进程想发送很短的报文而不关心可靠性,就可以使用 UDP。使用 UDP 发送很短的报文
时,在发送端和接收端之间的交互要比使用 TCP 时少得多。
因此,相比 TCP 协议,UDP 传输数据速度更快,效率更高。