百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

面试问到UDP,这样回答offer拿到手软

off999 2025-03-10 19:21 35 浏览 0 评论

UDP协议,作为一个面试互联网公司几乎必问的题目,你真的有回答好吗?

请你讲一下什么是UDP

请你说一下TCPUDP区别

请你说下UDP在哪些场景用到。

请你说下UDP特性

请你......

(求求你不要再问了,呜呜呜)

面试的时候,UDP回答好了,并且能答到一些让面试官觉得眼前一亮的点,会给你面试加不少分,并且作为一个基础问题,更能看出候选人的基础到底牢不牢固,这个问题没有回答好,基本就与offer失之交臂。所以让我们一起来快乐的学习下UDP吧~

推荐视频:

腾讯一面题: UDP如何实现可靠性传输?

网络原理tcp/udp,网络编程epoll/reactor,面试中正经“八股文”

直播学习地址:C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂

UDP它是一种用户数据报协议,即User Datagram Protocol。UDP和TCP都属于运输层协议中的一种

UDP的主要特点有:

1.UDP是无连接的,所以在发送数据前和发送数据后,都不需要建立连接和断开连接,减少了开销

2.UDP使用尽最大努力交付,即UDP它不保证可靠交付,这个我稍后会举一个例子,说明什么是尽最大努力交付。

3.UDP是面向报文的,发送方的UDP只在应用程序交下来的报文添加了首部后就交付给IP层。UDP对应用层交下来的报文,既不合并,也不拆分,也就是说应用层交给UDP多长的报文,UDP就照样的发送,UDP一次交付一个完整的报文。为了提高效率,应用程序必须选择合适大小的报文,如果报文过长,那么UDP把它交给IP层,IP层可能需要进行分片;如果报文太短,会使得IP数据报的首部相对长度较大,两种情况都会使得IP层的效率降低。

4.UDP没有拥塞控制,所以当网络出现拥塞的时候不会使得源主机的发送速率降低,这非常适用于对实时性要求高的应用,比如实时视频会议等等,它要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞的时候丢失部分数据,对时延要求较高(当很多源主机都同时向网络发送高速率的实时视频流时,网络就有可能发送拥塞,所以不适用拥塞控制功能的UDP是有可能会引起网络产生严重拥塞的问题)。

5.UDP支持一对一,一对多,多对一和多对多的交互通信

6.UDP的首部开销小,只有8个字节,相对于TCP的20字节,要短很多。

用户数据报UDP包含有两个字段,一个是首部字段,另外一个是数据字段。首部字段有8个字节,分别由四种信息组成,每个信息长度都是为2个字节的。

1.源端口:源主机的发送该信息的端口号,如果不需要对方回信,则可以置为0。

2.目的端口:目的地的端口号,在终点交付报文的时候需要用到。

3.长度:UDP用户数据报的长度。

4.检验和:检测UDP用户数据报在传输中是否有错。

接下来我们来讨论下它是如何尽最大努力交付

【文章福利】需要C/C++ Linux服务器架构师学习资料加群812855908(资料包括C/C++,Linux,golang技术,内核,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg,大厂面试题 等)

首先在发送方,在发送前,会先生成一个伪首部,这个伪首部既不向下传递也不向上递交,只是为了做检验和临时生成的,在发送方填完检验和字段到UDP首部后,就会去除伪首部。

伪首部是12字节大小,包括有分别都是4字节的源IP地址,目的IP地址,1个字节的全0,和存储1个字节大小的17(UDP在IP报文的协议号是17),最后2字节存储UDP用户数据报的长度

也许有人就会问了,要这个1字节的全0有什么用呢?因为为了做检验和,UDP把伪首部和UDP用户数据报看做由许多16位的字(即两个字节)组成起来的。那么伪首部有12字节,可以分为6个字,UDP首部有8个字节,共4个字,UDP数据部分如果是奇数个字节,那么就需要填入一个全零的字节(这个字节不会发送),筹齐16位的字。然后把这些数据通过二进制的方式加起来,然后取它们的反码,写入检验和字段中。需要注意的是,因为校验和是16位大小的,即两个字节。我们在计算的过程中可能会发生进位的情况,这个时候需要把高位溢出的数移到最低位相加

例子:

  1111 1111 1111 1111
+0000 0000 0000 0001
——————————————————————
  0000 0000 0000 0001
取反:1111 1111 1111 1110

这个时候1111 1111 1111 1110就会填入检验和。接收方在接收的时候,会通过获得的UDP用户协议报生成伪首部,然后把数据分成16位的字再次加起来,这次不取反码了,直接和UDP首部中的检验和做加法,如果得到的是全1,那么代表用户数据报在传输的过程没有丢失,如果出现的不是全1,则代表有差错,接收方就应该丢弃这个UDP用户数据报

但是这也仅仅只能解决数据缺失的问题,如果这里面16bit数据做了位置交换,那么UDP是检测不出来的。但是也有许多技术是使用到的UDP协议,包括有:TFTP,SNMP,NFS,DNS,BOOTP等。

这里和大家在科普一个知识点,QQ发送消息使用的就是UDP协议,大家也许会惊讶说,这怎么可能?UDP有乱序和丢包问题,使用QQ发送消息从来没见过乱序的情况呀,洪爵你是不是在吹牛。

这是真的,UDP是运输层协议,它本身不能保数据的顺序性,但是QQ是在其之上的应用层去保证了它的顺序性,如果大家感兴趣,洪爵可以出一期视频给大家演示一下它是如何做到的。什么?我怎么知道大家感不感兴趣?大家可以通过赞赏本篇文章...咳咳,公众号给我发信息呀,告诉洪爵想要看(赞赏的话就更好了)。

好的,咱们继续聊UDP,大家知道UDP数据报能发送的最大长度吗?

之前有说到,UDP首部中有2个字节存储了UDP的用户数据报的长度,那么2个字节即16位,所以UDP用户数据报最大长度不能超过2^16-1 = 65535字节UDP首部占用了8个字节,IP层首部占用了20个字节,那么就只剩下65535-8-20=65507个字节;除此之外,能限制UDP用户数据报长度的还有UDP的缓冲区大小,所以UDP能发送的最大长度 = min(缓冲区大小,65507),然而这就是最终结果吗?当然不是,得出来的只是理想的最长长度,因为还有最后一层能控制UDP传输长度的情况,就是MTU的大小(最大传输单元,Maximum Transmission Unit)。以太网数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决定的,这个1500字节被称为链路层的MTU。

不过鉴于Internet上的标准MTU值为576字节,所以建议在进行Internet的UDP编程时,最好将UDP的数据长度控制在 (576-8-20)548字节以内。并且Internet上许多路由器也是为576,所以为了适配,设置为500+为最理想,腾讯游戏使用的MTU就是500+。

难道说要发送UDP数据报只能发送小于等于MTU大小的吗?其实UDP并不会受到MTU的影响,MTU只会影响下层IP分片,如果你发送数倍于MTU的数据,导致IP层大量分片,这种情况下,如果某个分片丢失了,就会导致整个UDP数据报无效。所以一般不会去发送过大的UDP用户数据报。

UDP,应该说UDP所在的运输层还有一个很重要的功能:复用分用

同一时间可能有多个应用程序与外界进程进行交互,这个时候大家都可以通过运输层传送到IP层(网络层)。

接收端在接收UDP后,如果发现收到的报文中的目的端口号不正确,就会丢弃这个报文,并且通过网际控制报文协议ICMP发送“端口不可达”差错报文给发送方。如果正确,则会把UDP用户数据报通过相应的端口,上交到对应端口号的应用进程。

好啦,UDP就讲到这里了,相信大家啃完这篇文章,面试再回答UDP就能完虐面试官。

相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: