-
对于OSI 7层网络模型(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)来说,TCP和UDP都属于传输层。
-
TCP和UDP的优缺点
(1) TCP是面向连接的,UDP是面向无连接的。
TCP在通信之前必须通过三次握手机制与对方建立连接,而UDP通信不必与对方建立连接,不管对方的状态就直接把数据发送给对方。
(2) TCP连接过程耗时,UDP不耗时。
(3) TCP连接过程中出现的延时增加了被攻击的可能,安全性不高,而udp不需要连接,安全性较高。
(4) TCP是可靠的,保证数据传输的正确性,不易丢包,UDP是不可靠的,易丢包。
tcp可靠的四大手段:
a. 顺序编号:TCP在传输文件的时候,会将文件拆分为多个TCP数据包,每个装满的数据包大小大约在1k左右,TCP协议为保证可靠传输,会将这些数据包顺序编号。
b.确认机制:当数据包成功的被发送方发送给接收方,接收方会根据TCP协议反馈给发送方一个成功接收的 ACK信号,信号中包含了当前包的序号。
c. 超时重传:当发送方发送数据包给接收方时,会为每一个数据包设置一个定时器,当在设定的时间内,发送方仍没有收到接收方的ACK信号,会再次发送该数据包,直到收到接收方的ACK信号或者连接已断开。
d.校验信息:TCP首部校验信息较多,UDP首部校验信息较少。
(5) TCP传输速率较慢,实时性差,UDP传输速率较快。
TCP建立连接需要耗时,并且TCP首部信息太多,每次传输的有用信息较少,实时性差。
(6)TCP是流模式,UDP是数据包模式。
TCP只要不超过缓冲区的大小就可以连续发送数据到缓冲区上,接收端只要缓冲区上有数据就可以读取,可以一次读取多个数据包,而UDP一次只能读取一个数据包,数据包之间独立。
- TCP/udp的使用场合?
(1)对数据可靠性的要求。TCP适用于可靠性高的场合,UDP适用于可靠性低的场合。
(2)应用的实时性。TCP有延时较大,UDP演示较小。
(3)网络的可靠性。网络不好的情况下使用TCP,网络条件好的情况下,使用UDP。
- TCP三次握手、四次挥手
三次握手:
四次挥手: