首页 > 代码库 > TCP/UDP
TCP/UDP
| TCP协议 | UDP协议 |
相同点 | 都为传输层协议,负责承担数据传输的任务。 | |
不同点 | 1、传输控制协议; 2、TCP是可靠的面向连接、面向字节流服务; 3、TCP支持全双工和并发的TCP连接,提供确认、重传与拥塞控制; 4、TCP需要经过三次握手才能建立一个安全连接,所以效率比较低,但是安全性高。 | 1、用户数据报协议; 2、UDP是不可靠的无连接数据报服务,也是一种无连接的、不可靠的、面向报文的传输服务; 3、UDP适用于那些系统对性能的要求高于对数据完整性的要求,需要“简短快捷”的数据交换、需要多播和广播的应用环境; 4、UDP不需要经过三次握手,所以效率高,但是安全性低不可靠。 |
----建立连接三次握手:
(1) 第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。
(2) 第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。
(3) 第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。
----四次挥手关闭连接
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送(报文段4)。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A(报文段6)。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。