zoukankan      html  css  js  c++  java
  • UDP协议相关解释


     

           UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。

          UDP协议全称是用户数据报协议  ,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。

            与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。

            UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成[2]  ,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。

    特点:

              1)无连接,发送数据之前不需要建立连接。开销和发送之前的时间延迟较短。 

              2)尽最大努力交付。(可以采取一定策略实现可靠传输)

              3)面向报文,UDP对应用程序交付的报文,添加UDP首部后直接交给IP层。不合并,不拆分。

              4)没有拥塞控制,网络拥塞不会使源主机发送率降低。

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

              6)UDP首部开销较小,8字节(TCP为20字节、IP为20字节)

    UDP协议在网络协议中的位置

    UDP报文帧头


     

    源端口和目的端口在FPGA极客空间《你知道PORT吗》中有详细解释。

    总长度:16位,定义的用户数据报的总长度。首部加上数据,16位可以定义的总长度是0-65535字节,但最小长度是8字节,有首部没有数据。

    校验和:这个字段用来校验整个用户数据报(首部加数据),具体校验和算法,详见FPGA极客空间《你知道PING功能是怎么实现的吗》。


     

    UDP伪首部

    伪首部的作用:为了数据包的接收者确定发送和接收UDP数据包是来自正确的源地址且该数据包是发给自己的。

    发送方构造伪首部与待发送的UDP数据一起计算校验和然后发送给接收方,接收方使用同样的方法计算校验和,并与发送方的校验和比较,如果一致,则说明该数据包是发给本机的,且数据传输无误。

    UDP在IP中的封装


     

     版权所有权归卿萃科技 杭州FPGA 事业部,转载请注明出处  

     

    作者:杭州卿萃科技ALIFPGA  

     

    原文地址:杭州卿萃科技FPGA极客空间 微信公众号

     


     

        

     

      扫描二维码关注杭州卿萃科技FPGA极客空间

     

     


     

     

  • 相关阅读:
    org.tinygroup.tinydb-数据库开发组件
    org.tinygroup.database-数据库元数据定义
    org.tinygroup.databasebuinstaller-数据库结构及元数据自动创建
    org.tinygroup.dbrouter-数据库分区分表
    org.tinygroup.metadata-元数据定义
    org.tinygroup.jsqlparser-SQL解析器
    org.tinygroup.xmlparser-XML解析器
    四则运算程序扩展:将程序改为java语言,并允许用户输入,对输入结果进行验证
    课堂练习四: 返回一个整数数组中最大子数组的和。
    自动生成四则运算问题的测试
  • 原文地址:https://www.cnblogs.com/alifpga/p/7697804.html
Copyright © 2011-2022 走看看