我的编程空间,编程开发者的网络收藏夹
学习永远不晚

UDP协议是什么?其具有什么特点?

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

UDP协议是什么?其具有什么特点?

  传输层最重要的协议为TCP协议和UDP协议。这两个协议的对比非常有趣,TCP协议复杂,但传输可靠;UDP协议简单但传输不可靠。其他的各个传输层协议在某种程度上都是这两个协议的折中。那我们先来看看传输层协议中比较简单的UDP协议。
  1.UDP协议简介
  UDP(User Datagram Protocol)传输与IP传输非常类似。你可以将UDP协议看作IP协议暴露在传输层的一个接口。UDP协议同样以数据包(datagram)的方式传输,它的传输方式也是"Best Effort"的,所以UDP协议也是不可靠的(unreliable)。那么,我们为什么不直接使用IP协议而要额外增加一个UDP协议呢? 一个重要的原因是IP协议中并没有端口(port)的概念。IP协议进行的是IP地址到IP地址的传输,这意味者两台计算机之间的对话。但每台计算机中需要有多个通信通道,并将多个通信通道分配给不同的进程使用(关于进程,可以参考Linux进程基础)。一个端口就代表了这样的一个通信通道。正如我们在邮局和邮差中提到的收信人的概念一样。UDP协议实现了端口,从而让数据包可以在送到IP地址的基础上,进一步可以送到某个端口。
  尽管UDP协议非常简单,但它的产生晚于更加复杂的TCP协议。早期的网络开发者开发出IP协议和TCP协议分别位于网络层和传输层,所有的通信都要先经过TCP封装,再经过IP封装(应用层->TCP->IP)。开发者将TCP/IP视为相互合作的套装。但很快,网络开发者发现,IP协议的功能和TCP协议的功能是相互独立的。对于一些简单的通信,我们只需要“Best Effort”式的IP传输就可以了,而不需要TCP协议复杂的建立连接的方式(特别是在早期网络环境中,如果过多的建立TCP连接,会造成很大的网络负担,而UDP协议可以相对快速的处理这些简单通信)。UDP协议随之被开发出来,作为IP协议在传输层的"傀儡"。这样,网络通信可以通过应用层->UDP->IP的封装方式,绕过TCP协议。由于UDP协议本身异常简单,实际上只为IP传输起到了桥梁的作用。
  2.UDP协议头

UDP协议是什么?其具有什么特点?_UDP_计算机_通信_编程学习网教育
  上面的source port和destination port分别为UDP包的出发端口和目的地端口。Length为整个UDP包的长度。
  checksum的算法与IP协议的header checksum算法相类似。然而,UDP的checksum所校验的序列包括了整个UDP数据包,以及封装的IP头部的一些信息(主要为出发地IP和目的地IP)。这样,checksum就可以校验IP:端口的正确性了。在IPv4中,checksum可以为0,意味着不使用checksum。IPv6要求必须进行checksum校验。
  2.1.UDP端口号
  由于很多软件需要用到UDP协议,所以UDP协议必须通过某个标志用以区分不同的程序所需要的数据包。端口号的功能就在于此,例如某一个UDP程序A在系统中注册了3000端口,那么,以后从外面传进来的目的端口号为3000的UDP包都会交给该程序。端口号理论上可以有2^16这么多。因为它的长度是16个bit
  2.2.UDP检验和
  这是一个可选的选项,并不是所有的系统都对UDP数据包加以检验和数据(相对TCP协议的必须来说),但是RFC中标准要求,发送端应该计算检验和。
  UDP检验和覆盖UDP协议头和数据,这和IP的检验和是不同的,IP协议的检验和只是覆盖IP数据头,并不覆盖所有的数据。UDP和TCP都包含一个伪首部,这是为了计算检验和而摄制的。伪首部甚至还包含IP地址这样的IP协议里面都有的信息,目的是让UDP两次检查数据是否已经正确到达目的地。如果发送端没有打开检验和选项,而接收端计算检验和有差错,那么UDP数据将会被悄悄的丢掉(不保证送达),而不产生任何差错报文。
  2.3.UDP长度
  UDP可以很长很长,可以有65535字节那么长。但是一般网络在传送的时候,一次一般传送不了那么长的协议(涉及到MTU的问题),就只好对数据分片,当然,这些是对UDP等上级协议透明的,UDP不需要关心IP协议层对数据如何分片,下一个章节将会稍微讨论一些分片的策略。
  4.IP分片
  IP在从上层接到数据以后,要根据IP地址来判断从那个接口发送数据(通过选路),并进行MTU的查询,如果数据大小超过MTU就进行数据分片。数据的分片是对上层和下层透明,而数据也只是到达目的地还会被重新组装,不过不用担心,IP层提供了足够的信息进行数据的再组装。
  在IP头里面,16bit识别号唯一记录了一个IP包的ID,具有同一个ID的IP片将会被重新组装;而13位片偏移则记录了某IP片相对整个包的位置;而这两个表示中间的3bit标志则标示着该分片后面是否还有新的分片。这三个标示就组成了IP分片的所有信息,接受方就可以利用这些信息对IP数据进行重新组织(就算是后面的分片比前面的分片先到,这些信息也是足够了)。
  因为分片技术在网络上被经常的使用,所以伪造IP分片包进行流氓攻击的软件和人也就层出不穷。
  可以用Trancdroute程序来进行简单的MTU侦测。请参看教材。
  5.UDP和ARP之间的交互式用
  这是不常被人注意到的一个细节,这是针对一些系统地实现来说的。当ARP缓存还是空的时候。UDP在被发送之前一定要发送一个ARP请求来获得目的主机的MAC地址,如果这个UDP的数据包足够大,大到IP层一定要对其进行分片的时候,想象中,该UDP数据包的第一个分片会发出一个ARP查询请求,所有的分片都辉等到这个查询完成以后再发送。事实上是这样吗?
  结果是,某些系统会让每一个分片都发送一个ARP查询,所有的分片都在等待,但是接受到第一个回应的时候,主机却只发送了最后一个数据片而抛弃了其他,这实在是让人匪夷所思。这样,因为分片的数据不能被及时组装,接受主机将会在一段时间内将永远无法组装的IP数据包抛弃,并且发送组装超时的ICMP报文(其实很多系统不产生这个差错),以保证接受主机自己的接收端缓存不被那些永远得不到组装的分片充满。
  6.ICMP源站抑制差错
  当目标主机的处理速度赶不上数据接收的速度,因为接受主机的IP层缓存会被占满,所以主机就会发出一个“我受不了”的一个ICMP报文。
  7.UDP服务器设计
  UDP协议的某些特性将会影响我们的服务器程序设计,大致总结如下:
  关于客户IP和地址:服务器必须有根据客户IP地址和端口号判断数据包是否合法的能力(这似乎要求每一个服务器都要具备)
  关于目的地址:服务器必须要有过滤广播地址的能力。
  关于数据输入:通常服务器系统的每一个端口号都会和一块输入缓冲区对应,进来的输入根据先来后到的原则等待服务器的处理,所以难免会出现缓冲区溢出的问题,这种情况下,UDP数据包可能会被丢弃,而应用服务器程序本身并不知道这个问题。
  服务器应该限制本地IP地址,就是说它应该可以把自己绑定到某一个网络接口的某一个端口上。
  8.UDP的特点
  A)是无连接的。相比于TCP协议,UDP协议在传送数据前不需要建立连接,当然也就没有释放连接。
  B)是尽最大努力交付的。也就是说UDP协议无法保证数据能够准确的交付到目的主机。也不需要对接收到的UDP报文进行确认。
  C)是面向报文的。也就是说UDP协议将应用层传输下来的数据封装在一个UDP包中,不进行拆分或合并。因此,运输层在收到对方的UDP包后,会去掉首部后,将数据原封不动的交给应用进程。
  D)没有拥塞控制。因此UDP协议的发送速率不送网络的拥塞度影响。
  E)UDP支持一对一、一对多、多对一和多对多的交互通信。
  F)UDP的头部占用较小,只占用8个字节。
  在本篇文章中对UDP协议进行了了解,如果你已经掌握了IP协议,那么UDP协议就没有任何困难可言,它只是IP协议暴露在传输层上的接口 。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

UDP协议是什么?其具有什么特点?

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

UDP协议是什么?其具有什么特点?

  传输层最重要的协议为TCP协议和UDP协议。这两个协议的对比非常有趣,TCP协议复杂,但传输可靠;UDP协议简单但传输不可靠。其他的各个传输层协议在某种程度上都是这两个协议的折中。那我们先来看看传输层协议中比较简单的UDP协议。  1.UDP协议简介  UDP(User Datagram Protocol)传输与I
UDP协议是什么?其具有什么特点?

为什么说UDP协议是不可靠协议?

  什么是UDP协议  为什么说UDP协议是不可靠协议?了解这个问题,我们首先必须先清楚UDP是什么?UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务
为什么说UDP协议是不可靠协议?

网络协议是什么?常见的网络协议有哪些?

  网络协议即网络中(包括互联网)传递、管理信息的一些规范。如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守一定的规则,这些规则就称为网络协议。  一个网络协议至少包括三要素:  语法:用来规定信息格式;数据及控制信息的格式、编码及信号电平等。  语义:用来说明通信双方应当怎么做;用于协
网络协议是什么?常见的网络协议有哪些?

什么是NetBEUI协议?简单安装NetBEUI协议

  局域网中的协议和互联网中的协议还有一些差异,那么今天我们来认识一下NetBEUI协议。不少小型局域网的建设过程中,都需要使用这个协议,但是因为其自身缺少路由功能,不少系统中都没这个协议了,那NetBEUI协议如何进行安装?  NetBEUI,即NetBios Enhanced User Interface(NetB
什么是NetBEUI协议?简单安装NetBEUI协议

解答什么是AppleTalk协议

  对于AppleTalk协议可能很多朋友都比较陌生,AppleTalk是苹果公司为其Macintosh计算机提供网络服务而开发的一种网络协议,它是桌面协议中自动化程度最高的协议,但同时也是最繁琐的。如果你对它不是很了解,没关系,接下来就让我们一起来学习吧!  AppleTalk(AT)是由Apple公司创建的一组网络
解答什么是AppleTalk协议

VPN隧道协议是什么?

  大家在学习VPN隧道协议的时候,是不是会接触到PPTP、L2TP、IPSec词汇?那么到底是什么意思,它们之间有什么联系?  VPN(虚拟网络)发展至今已经不再是一个单纯经过加密的访问隧道了,它已经融合了访问控制、传输管理、加密、路由选择、可用性管理等对中功能,并在全球的信息安全体系中发挥着重要作用。通过隧道可以将
VPN隧道协议是什么?

介绍网络协议,什么是网络协议三要素?

  网络的复杂性取决于人们对它的需求。那么在这当中,最为重要的就是网络协议了。那么什么是网络协议?相信很多人都会疑惑,下面给大家介绍网络协议是什么以及网络协议的三要素是什么的基础知识,不懂的朋友可以通过本文了解学习。  网络协议是什么?  网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。例如,网络中一
介绍网络协议,什么是网络协议三要素?

讲解什么是STP(生成树协议)

  生成树协议和其他协议一样,是随着网络的不断发展而不断更新换代的。不是很了解的朋友,下面我们就一一道来吧!  STP(Spanning Tree Protocol)是生成树协议的英文缩写。该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环
讲解什么是STP(生成树协议)

交换路由信息的协议是什么?

  什么是网关,你知道吗?网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种
交换路由信息的协议是什么?

ARP协议主要功能作用是什么?

  ARP协议主要功能作用是什么?说到ARP协议,网络工程师们一定不陌生吧。ARP的全称为 Address Resolution Protocol ,即地址解析协议,至于它的作用,编程学习网小编后面再给大家细细道来。此外,还有一个协议和ARP协议长得很像,叫作RARP(Reverse ARP),即反向地址解析协议,但是这个
ARP协议主要功能作用是什么?

ICMP协议是什么以及工作原理解析

  ICMP协议是什么以及工作原理解析。网络工程师们对网络协议一定不陌生,从专业角度定义,网络协议是计算机在网络中实现通信时必须遵守的约定,也就是通信协议。网络协议有很多,接下来编程学习网小编就来给大家介绍一个多功能的网络层协议——ICMP协议  ICMP协议是什么?  ICMP是Internet
ICMP协议是什么以及工作原理解析

ISDN是什么?它有什么优点?

  你是否知道ISDN?它究竟是有什么优点?不知道的话,那就随着小编一起来了解吧。  1、ISDN定义  综合业务数字网(Integrated Services Digital Network,ISDN)是一个数字电话网络国际标准,是一种典型的电路交换网络系统。  综合业务数字网(ISDN),俗称“一线通&
ISDN是什么?它有什么优点?

SSL协议是什么?SSL未开启如何解决?

  本文给大家介绍一下著名的网络安全协议SSL,如果有需要的朋友可以参考学习,希望以下的分享对您的学习有所帮助。  安全套接字协议(Secure Socket Layer,SSL)是web浏览器与Web服务器之间安全交换的信息的协议。提供两个基本的安全服务:鉴别与保密。  SSL是Netscape于1994年开发的,后
SSL协议是什么?SSL未开启如何解决?

软件开发模型有哪些?各有什么特点

  软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。那么软件开发模型有哪些?各有什么特点?  1、原型模型  典型的原型开发方法模型。适用于需求不明确的场景,可以帮助用户明确需求。  2、瀑布模型  瀑布模型是将软件生存周期中的各个活动规定为依线性顺序连接
软件开发模型有哪些?各有什么特点

什么是代理防火墙?代理防火墙有什么优缺点?

  由于网络访问式一项很复杂的活动,因而对它的管理也不容易,并且很多使用计算机用户也不是专业的计算机管理者,它们对于连接在网络上的计算机的保护很脆弱,导致其他用户在未经授权的情况下,很容易地通过网络进入到他的计算机中,窃取信息,或者破坏计算机系统。  为了防止这些问题,计算机专家提出了防火墙的概念,防火墙是保护区与外界
什么是代理防火墙?代理防火墙有什么优缺点?

编程热搜

  • 华为高级工程师认证费用
      华为高级工程师认证费用是多少?华为高级工程师认证要多少钱?华为高级工程师认证是华为认证体系中用于标识个人能力在某一技术领域达到高级工程师级别的证明,认证费用为200美金,通过考试取得的证书3年有效。  华为高级工程师认证费用是必修方向和选修方向的总和,其中必修方向认证费用为300美金,选修方向认证费用为180美金。
    华为高级工程师认证费用
  • 2024年初级软考上半年考试时间安排
    初级软考每年安排两次考试,2024年初级软考上半年考试时间已公布,2024年初级软考上半年考试时间为5月25-28日。2024年初级软考上半年报名时间及入口:根据往年各省初级软考报名时间来看,2024年上半年初级软考报名时间3月份开始,具体请考生关注全国各省2024上半年软考报名时间及入口汇总表,希赛小编将及时为大家更
    2024年初级软考上半年考试时间安排
  • HCIA证书和HCIE哪个比较好?
      HCIA证书和HCIE哪个比较好?华为认证包含三个等级,分别是HCIA(华为认证网络工程师)、HCIP(华为认证网络资深工程师)、HCIE(华为认证互联网专家)认证。  HCIA(Huawei Certified ICT Associate )即华为认证ICT工程师,是华为职业认证中用于标识个人能力在某一技术领域达
    HCIA证书和HCIE哪个比较好?
  • 教你在PPT中创建好看的镜像效果
      当我们在阅读杂志书刊,或者看电影的时候常常都会看到像下图一样的原图片与图片镜像的组合效果的图片,在很多的摄影作品中也会有,我们其实也可以在PPT中轻松实现这种应用于各大媒介的图文特效技巧,不信的话我们一起来学习一下,操作过程其实并不复杂!  下面我们就开始我们的具体操作步骤了,首先第一步,我们需要先打开PowerP
    教你在PPT中创建好看的镜像效果
  • 多媒体应用设计师可以提前交卷吗
      可以。但是多媒体应用设计师提前交卷有时间限制,根据软考的考场规则,按照人力资源和社会保障部文件规定,开考5分钟后应试人员一律禁止入场。专业技术人员资格考试原则上封闭2个小时,不足2小时的全程封闭。  软考多媒体应用设计师属于专业技术人员资格考试,专业技术人员资格考试原则上封闭2个小时,不足2小时的全程封闭。  根据
    多媒体应用设计师可以提前交卷吗
  • 全国计算机二级C语言程序设计章节练习题及答案(1)
      对于备考计算机二级C语言考试的考生可以多做试题,一方面了解往年考试题型,一方面熟悉往年考点。今天编程学习网小编给大家准备了全国计算机二级C语言程序设计章节练习题及答案(1),供考生们练习。  点击查看:全国计算机二级C语言程序设计章节练习题及答案汇总  判断题  ×1.C++语言和C语言都是面向对象的程序设
    全国计算机二级C语言程序设计章节练习题及答案(1)
  • 广西2024上半年计算机软考什么时候报名?
    广西2024上半年计算机软考3月25日开始报名,具体报名时间见全国各省2024上半年软考报名时间及入口汇总表。2024上半年广西软考考试采用网络报名的方式,考生在规定的报名时间内进入中国计算机技术职业资格网,点击页面右下方的报名入口,进入全国计算机技术与软件专业技术资格(水平)考试网上报名平台,选择“广西”入口后点击进
    广西2024上半年计算机软考什么时候报名?
  • 软考可以申请退税吗
      可以。软考证书是可以抵扣个税的,按照个税6项专项附加扣除标准,在取得软考证书的当年,可以按照3600元定额扣除。  软考证书可以抵扣个税,根据国务院印发的《个人所得税专项附加扣除暂行办法》,第三章继续教育包含三条,具体内容如下:  第八条 纳税人在中国境内接受学历(学位)继续教育的支出,在学历(学位)教育期间按照每
    软考可以申请退税吗
  • win10如何正确禁用IPv6网络协议
       在Windows Vista和Server 2008开始,微软包括本地支持的IPv6(互联网协议第6版),并默认启用。IPv6是新的计算机的地址协议,最终将取代IPv4这是目前最流行的标准。win10中默认开启了对IPv6协议的支持,但是会影响到系统运行速度和磁盘占有率等。除非你的网络有IPv
    win10如何正确禁用IPv6网络协议
  • 2020年数据库系统工程师上午真题及答案解析
      2019上半年数据库系统工程师考试已结束,今天编程学习网小编为大家整理了2020年数据库系统工程师上午真题及答案解析,以便大家了解2020下半年数据库系统工程师基础知识考试真题。  软考数据库系统工程师上午考试为基础知识,编程学习网小编为大家整理了2020年数据库系统工程师上午真题,想知道答案和解析的考生可以直接进入在线题
    2020年数据库系统工程师上午真题及答案解析

目录