【Java】浅析TCP和UDP

UDP

        UDP:用户数据报协议。UDP是无连接通讯协议,即在数据传输的时候,数据的发送端和接收端在不建立逻辑连接的情况下可以进行数据的传送。简单来说,当一台计算机向另一台计算机发送数据的时候,发送端不会确认接收端是否存在,就会发送数据,同样接收端在接收数据的时候,也不会向发送端反馈是否收到数据。

优点:

       使用UDP协议消耗资源小,通信效率高。即UDP通常会用于音频、视频和普通数据的传输(例如视频会议,此情况下使用UDP进行传输,即使偶尔丢失一两个数据包,也不会对接收结果产生太大的影响)

缺点:

        在使用UDP传输数据的时候,由于UDP面向的是无连接性,不能保证数据的完整性,因此在传输重要数据的时候不建议使用UDP协议。

特点:

        数据被限制在64Kb以内,超出这个范围就不能发送了。

                              

TCP

        传输控制协议。TCP协议是面向连接的通信协议,即在传输数据之前,在发送端和接收端建立逻辑连接,然后在传输数据,它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次请求都会经历“三次握手”

三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠。

  • 第一次握手,客户端向服务器端发出连接请求,等待服务器确认。

  • 第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。

  • 第三次握手,客户端再次向服务器端发送确认信息,确认连接。整个交互过程如下图所示。

                                    

        完成三次握手,连接建立后,客户端和服务器端就可以开始进行数据传输了,由于面向连接的特性,TCP协议可以保证传输数据的安全,在应用方面也是十分广泛的。

小结两者区别

1)TCP是可靠传输,UDP是不可靠传输

2)TCP面向连接,UDP无连接

3)TCP传输数据有序,UDP不保证数据的有序性

4)TCP不保证数据边界,UDP保留数据边界

5)TCP 传输速度相对于UDP较慢

6)TCP有流量控制和拥塞控制,UDP没有

7)TCP是重量级协议,UDP是轻量级协议

8)TCP首部较长(20字节),UDP首部较短(8字节)

基于TCP和UDP的常用协议

HTTP、HTTPS、FTP、TELNET、SMTP(简单邮件传输协议)协议基于可靠的TCP协议

TFTP、DNS、DHCP、TFTP、SNMP(简单网络管理协议)、RIP基于不可靠的UDP协议

猜你喜欢

转载自blog.csdn.net/weixin_43267344/article/details/107870933
今日推荐