TCP协议与UDP协议的区别

本文详细对比了TCP与UDP两种网络传输协议的特点与应用场景。TCP为面向连接的协议,确保数据可靠传输;而UDP则为无连接协议,适用于对速度要求高、能容忍一定数据丢失的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP协议与UDP协议的区别

      TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!

      TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。

      TCP/IP协议集包括应用层,传输层,网络层,网络访问层。

其中应用层包括:

      超文本传输协议(HTTP):万维网的基本协议.   

      文件传输(TFTP简单文件传输协议): 远程登录(Telnet),提供远程访问其它主机功能,它允许用户登录 internet主机,并在这台主机上执行命令.    

      网络管理(SNMP简单网络管理协议),该协议提供了监控网络设备的方法,以及配置管理,统计信息收集,性能管理及安全管理等.   

      域名系统(DNS),该系统用于在internet中将域名及其公共广播的网络节点转换成IP地址. 

其次网络层包括:    

      Internet协议(IP)     

      Internet控制信息协议(ICMP)    

      地址解析协议(ARP)    

      反向地址解析协议(RARP)  

      最后说网络访问层:网络访问层又称作主机到网络层(host-to-network).网络访问层的功能包括IP地址与物理地址硬件的映射,以及将IP封装成帧.基于不同硬件类型的网络接口,网络访问层定义了和物理介质的连接.

      当然我这里说得不够完善,TCP/IP协议本来就是一门学问,每一个分支都是一个很复杂的流程,但我相信每位学习软件开发的同学都有必要去仔细了解一番。

下面我着重讲解一下TCP协议和UDP协议的区别。

      TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。

      TCP的详情请参考:https://jiayang.blog.csdn.net/article/details/110938448

UDP(User Data Protocol,用户数据报协议)

      UDP是一种简单的,面向数据报的无连接的协议,提供的是一种不可靠的协议,就如同真实世界中的短信功能,虽然我们用手机编辑了短信,并且也点击发送,但短信的内容是否真的能够发送到目标手机,是未知的,由于网络原因或者其他的原因,短信可能没有达到目标手机,但对于发送方来说,确实发送了短信。UDP数据报分为首部和数据两个部分,格式如图所示:

 

      (1) UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

      (2) 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。

      (3) UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。

      (4) 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。

      (5)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表(这里面有许多参数)。

      (6)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。

      我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。

UDP的包头结构:

      源端口 16位

      目的端口 16位

      长度 16位

      校验和 16位

小结TCP与UDP的区别:

      1.基于连接与无连接;

      2.对系统资源的要求(TCP较多,UDP少);

      3.UDP程序结构较简单;

      4.流模式与数据报模式 ;

      5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漁陽

彼此共勉,砥砺前行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值