首页 > 代码库 > 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)。