计算机网络之UDP协议

一.什么是UDP协议:

      1.1UDP的基本概念

     UDP协议又叫做用户数据报协议,是一个目标在传输层提供直接发送报文的能力,UDP与TCP相比,它不会拆分数据,它只是能够发送报文。

       1.2为什么要使用UDP协议

        我们可能会想,如果只是单纯地发送数据,为什么不直接使用IP协议。这是因为传输层协议在承接上方应用层的调用,需要提供应用到应用的通信,也就是说需要附上端口号。每一个端口代表不同的应用。但是IP协议不能区分应用,IP协议只是承接传输层的调用,将数据从主机传输到主机。所以就为UDP协议的应用提供了空间。

        1.3UDP协议的封包格式

        使用UDP协议就是为了用户能够直接发送报文,最大限度地简化应用的设计。UDP的报文格式只有五个部分:

         1.Source Port:源端口号,因为UDP协议不需要ACK确认报文,所以这个字段是可以省略的。但是对于代理和防火墙来说,这个字段是非常重要的。

        2.Destination Port:目标端口号,不可以省略

        3.Length:表示消息体长度

        4.Checksum:表示校验和,来检查封包是否出错

        5.Data octets:表示一个字节一个字节的数据,Octet是8位。

二.UDP中的校验和机制

        2.1UDP校验和的实现方式:

             1.计算校验和:发送端在发送UDP数据包之前会对UDP数据报文的内容进行校验和计算。首先将UDP报文数据划分为以16比特为单位的字(字节数不够的可以补零),把这些字节相加然后取反。

              2.校验和字段:发送端将计算得到的检验和值放在UDP数据报的校验和字段中。

              3.接受端验证:接收端在接收到UDP数据包后,会进行校验和的验证,将UDP数据报文划分为16比特的字,并对其进行求和计算,然后将计算的到的校验和与UDP数据包中的校验和字段进行比较,如果相等,则认为数据包未损坏,如果不相等,则认为数据包可能已经损坏。

           UDP的校验和机制并不提供数据的可靠性传输,它只能检测到一部分错误,并不能保证数据的完整性和可靠性。因为UDP的校验和机制只是对UDP数据报中的数据进行简单的加法和取反操作,接收内容不同但是计算出的校验和值相同的情况是会出现的。

三.UDP与TCP的区别

        3.1目的不同:
              TCP协议是为了提供可靠的网络传输协议,而UDP是为了在提供报文交换能力的基础上尽量轻装上阵

        3.2可靠性差异:

              TCP协议是保证提供可靠的服务,所以在建立连接时会有三次握手机制,保证通信的双方都在线,并且TCP协议具有时间窗口来持续收集无序的数据,直到这些数据成功的排列成发送的顺序;而UDP并没有以上的特性,UDP协议只管发送数据包,并不需要ACK(确认报文),所以不能保证数据是否发送成功。

        3.3传输速度:

              与TCP协议相比,UDP协议更加轻量级,并且封包小,没有连接,可靠性检查,所以UDP比TCP的传输速度快。

        3.4有无连接:

              TCP是一个面向连接的协议,如果需要传输数据,则必须要先建立连接,而UDP是一个无连接协议,可以随时发送数据。

        3.5流控技术:

             TCP协议采用了流控技术来确保发送方不会因为一次发送过多的数据报而使接收方不堪重负,TCP在发送缓冲区中存储数据,并在接收缓冲区中接收数据。当应用程序准备就绪时,接收方从接收缓冲区中读取数据,如果接收缓冲区已满,接收方将无法处理更多的数据,并将其丢弃,这是TCP的流控技术,而UDP则没有相应的功能。

        3.6适用场景不同:

              使用TCP协议每个数据封包都需要确认,所以不太适合高速数据传输的场景。比如在网络游戏场景中,如果使用TCP协议,每个封包都需要确认,就会造成一定的延迟,体验感不好;再比如观看视频的时候,因为音频和视频数据在传输的时候天生就允许一定的丢包率,所以不太适合使用TCP。而对于一些只需要一次简单的请求或者返回的操作,使用UDP比较合适。

              

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/860399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

three.js - MeshPhongMaterial材质

phong网格材质:Mesh - Phong - Material 一种用于具有镜面高光的光泽表面的材质。 它可以模拟,具有镜面高光的光泽表面,提供镜面反射效果。 MeshPhongMaterial: MeshPhongMaterial是一种基于Phong光照模型的材质,主要…

工作记录2

1. 要实现y轴超出部分滚动的效果&#xff0c;可以这样写 <div style"max-height: 384px; overflow-y: auto;"> </div> 2. 当后端接口还没好的时候&#xff0c;可以自己模拟一下接口返回的数据 export const getCommodityDetail (id) > Promise.re…

MySQL入门学习-连接查询.复杂连接

复杂连接是指涉及多个表之间的连接操作&#xff0c;通过使用条件和连接类型来组合和关联这些表的数据。 一、常见的复杂连接类型及其特点、使用方法和示例代码&#xff1a; 1. INNER JOIN&#xff08;内连接&#xff09;&#xff1a; - 特点&#xff1a;返回两个表中满足连接…

构建实用的Flutter文件列表:从简到繁的完美演进

前言&#xff1a;为什么我们需要文件列表&#xff1f; 在现代科技发展迅速的时代&#xff0c;我们的电脑、手机、平板等设备里积累了大量的文件&#xff0c;这些文件可能是我们的照片、文档、音频、视频等等。然而&#xff0c;当文件数量增多时&#xff0c;我们如何快速地找到…

HTML(20)——定位

定位 作用&#xff1a;灵活的改变盒子在网页中的位置 实现&#xff1a; 定位模式&#xff1a;position边偏移&#xff1a;设置盒子的位置 leftrighttopbottom 相对定位 position&#xff1a;relative 改变位置的参照物是自己原来的位置&#xff0c;并且不脱标占位&#x…

程序员是干嘛的?程序员在职场中的重要性

程序员是干嘛的&#xff1f;程序员在职场中的重要性 随着科技的飞速发展&#xff0c;计算机技术得到了广泛应用&#xff0c;程序员也成为了当今职场中不可或缺的一部分。那么&#xff0c;程序员究竟是干什么的呢&#xff1f;他们为什么如此重要&#xff1f;下面我们来详细探讨一…

驾校预约管理系统

摘 要 随着驾驶技术的普及和交通安全意识的增强&#xff0c;越来越多的人选择参加驾校培训&#xff0c;以获取驾驶执照。然而&#xff0c;驾校管理面临着日益增长的学员数量和繁琐的预约管理工作。为了提高驾校的管理效率和服务质量&#xff0c;驾校预约管理系统成为了必不可少…

微信app支付没上架开通方法

对于许多商家来说&#xff0c;特别是那些经营游戏、商城等拥有自己APP的商家&#xff0c;接入微信支付无疑是一个重要的步骤&#xff0c;它能让用户更方便地进行支付操作&#xff0c;提升购物体验。然而&#xff0c;随着微信支付政策的调整&#xff0c;现在开通APP支付并不像以…

Java抽象类:深入理解与应用

一、引言 在Java的面向对象编程中&#xff0c;抽象类&#xff08;Abstract Class&#xff09;是一个非常重要的概念。它允许我们定义一个类&#xff0c;该类中包含一些抽象方法和非抽象方法&#xff0c;但自己不能被实例化。抽象类主要用于创建类的层次结构&#xff0c;并为子…

单片机练习题6

一、填空 1&#xff0e;如果采用晶振的频率为3MHz&#xff0c;定时器/计数器Tx&#xff08;x0,1&#xff09;工作在方式0、1、2下&#xff0c;其方式0的最大定时时间为 &#xff0c;方式1的最大定时时间为 &#xff0c;方式2的最大定时时间为 。 答…

手机照片压缩到20k以内免费,这几款心动软件快收好!

在数字化时代&#xff0c;手机拍照已成为我们记录生活的重要方式之一。然而&#xff0c;高清的照片也意味着占用着越来越多的手机存储空间。如果你正在为手机内存告急而烦恼&#xff0c;那么这几款手机照片压缩神器或许能成为你的救星&#xff01;它们不仅可以将照片轻松压缩至…

【Linux】多线程的相关知识点

一、线程安全 1.1 可重入 VS 线程安全 1.1.1 概念 线程安全&#xff1a;多个线程并发执行同一段代码时&#xff0c;不会出现不同的结果。常见对全局变量或者静态变量进行操作&#xff0c;并且没有锁的保护的情况下&#xff0c;会出现问题。重入&#xff1a;同一个函数被不同…

vue3通过vue-video-player实现视频倍速、默认全屏、拖拽进度条等功能

效果图&#xff1a; 1、场景&#xff1a; js原生的video标签在不同浏览器及不同型号手机上都展示的不一样&#xff0c;一部分没有倍速&#xff0c;一部分没有全屏等功能&#xff0c;为了统一视频播放的交互功能&#xff0c;使用vue-video-player插件来完成&#xff0c;vue-vid…

Java面试题:讨论事务的ACID属性,并解释在Java中如何管理事务

事务是数据库管理系统中的一组操作&#xff0c;这些操作要么全部成功&#xff0c;要么全部失败&#xff0c;事务的ACID属性确保了数据库系统的可靠性和一致性。ACID是指&#xff1a; Atomicity&#xff08;原子性&#xff09;&#xff1a;事务中的所有操作要么全部完成&#xf…

轻松打造分班查询系统,这个工具助您一臂之力!

新学期伊始&#xff0c;老师们知道该如何快捷制作并发布分班查询系统吗&#xff1f;面对繁杂的学生名单和班级分配&#xff0c;无疑是一项巨大的麻烦。传统的纸质通知效率低下&#xff0c;容易出错&#xff0c;更别提在信息传递过程中可能出现的混乱和误解了。 现在有一个工具可…

【工具推荐】ONLYOFFICE 桌面编辑器 8.1:引入全新功能,提升文档处理体验

ONLYOFFICE 桌面编辑器 8.1 现已发布&#xff1a;功能完善的 PDF 编辑器、幻灯片版式、改进从右至左显示、新的本地化选项等 【工具推荐】ONLYOFFICE 桌面编辑器 8.1&#xff1a;引入全新功能&#xff0c;提升文档处理体验 一、什么是ONLYOFFICE&#xff1f; ONLYOFFICE 是…

tomcat设置Context不生效的问题反思(粗心错误)

近日一个兄弟在设置tomcat的Host时&#xff0c;发生了设置"context"后&#xff0c;没有生效的问题&#xff0c;以下是发生问题的配置文件部分截取&#xff1a; <Host name"www.test.com" appBase"/data/myapps" unpackWARs"true" …

Kotlin 中的内联函数

1 inline 内联函数&#xff1a;消除 Lambda 带来的运行时开销。 举例来说&#xff1a; fun main() {val num1 100val num2 80val result num1AndNum2(num1, num2) { n1, n2 ->n1 n2} }fun num1AndNum2(num1: Int, num2: Int, operation: (Int, Int) -> Int): Int …

一个项目学习Vue3---NVM和NPM安装

内容资源下载&#xff1a;关注公众号(资小库)回复vue下载本内容资源 1.Windows安装NVM包管理工具 公众号回复&#xff1a;nvm 获取nvm下载地址 步骤1&#xff1a;删除本机Node.js 设置->应用->安装的应用->搜索node.js->删除 清理目录文件 C:\Program Files…

微型导轨:手术机器人的高精度“骨骼”

微型导轨精度高&#xff0c;摩擦系数小&#xff0c;自重轻&#xff0c;结构紧凑&#xff0c;被广泛应用在医疗器械中&#xff0c;尤其是在手术机器人中的应用&#xff0c;通过手术机器人&#xff0c;外科医生可以远离手术台操纵机器人进行手术。可以说&#xff0c;是当之无愧的…