[网络工程师]-传输层协议-UDP协议

news2024/11/23 7:47:46

        用户数据协议(User Datagram Protocol,UDP)是一种不可靠的、无连接的数据报服务。源主机在传送数据前不需要和目标主机建立连接。数据附加了源端口号和目标端口号等UDP报头字段后,直接发往目的主机。这时,每个数据报的可靠性依靠上层协议来保证。在传送数据较少且较小的情况下,UDP比TCP更加高效。

1、UDP报文

        源端口字段:该字段长度为16位。作用与TCP数据段中的端口号字段相同,用来标识源端的应用进程。在需要对方回信时用,不需要时可用全0;

        目标端口字段:该字段长度为16位。作用与TCP数据段中的端口号字段相同,用来标识目标端的应用进程。在目标交付报文时必须用到;

        长度字段:该字段长为16位。标明UDP头部和UDP数据的总长度字节;

        校验和字段:该字段长为16 。用来对UDP头部和UDP数据进行校验,有错就丢弃。与TCP不同的是,对UDP来说,此字段是可选项,而TCP数据段中的校验和字段是必须有的一项。

2、UDP校验

        虽然UDP协议没有提供任何差错控制机制,但UDP通过使用校验和来确保UDP报文被传送到正确的目的端。

        UDP校验和计算有一个与众不同的特点:校验和除覆盖UDP报文外,还覆盖一个附加头部,称为伪头部(Pseudo Header)。伪头部有来自IP报文的4个字段(协议、源IP地址、目的IP地址、UDP长度)和填充字段,伪头部格式如下所示:

     

        其中填充字段为全0,其目的是使伪头部的长度为32位的整数倍;协议字段就是IP报头格式中的协议字段,为17(在IP报文格式的协议字段中17表示UDP协议);UDP长度字段表示UDP报文长度。

        UDP计算校验和加上伪头部的目的就是为了验证UDP报文是否在两个端点之间正确传输。因为UDP报文包含源端口和目的端口,而伪头部包含源IP地址和目的IP地址。假如UDP报文在通过因特网传输时,有人恶意篡改了源IP地址(IP源地址欺骗),则这种情况可以通过UDP的校验和查询出来。

        需要注意的是,UDP计算校验和的伪头部信息中部分内容来源于IP报头信息,也就是说,UDP在计算校验和是,UDP必须从IP层获取相关信息,否则无法形成伪头部,也就计算不出UDP的校验和。这一过程实际上违背了网络体系中的分层原则,但这种违背是出于实际的需求而不得不做的折中。事实上,UDP(包括TCP)与IP 的联系是非常紧密的,而且它们一般都在操作系统内核实现,因此无论是UDP还是TCP要获取IP的相关信息都是非常容易和方便的。

3、UDP端口

        协议端口号是标识目标主机进程的方法。TCP/IP使用16位的端口号来标识端口,所以端口的取值范围为[0,65535]。端口可以分为系统端口、等级端口、客户端使用端口。

3.1 系统端口

        系统短开口的取值范围是[0,1023],常见的如下表所示:

协议号名称功能
20FTP-DATAFTP数据传输
21FTPFTP控制
22SSH

SSH登录

23TELNET远程登录
25SNMP简单邮件传输协议
53DNS域名解析
67DHCPDHCP服务器开启,用来监听和接收客户请求消息
68DHCP客户端开启,用来接收DHCP服务器的消息回复
69TFTP简单FTP
80HTTP超文本传输
110POP3邮局协议
143IMAP交互式邮件存取协议
161SNMP简单网管协议
162SNMP(Trap)SNMP Trap报文

3.2 登记端口

        登记端口是为没有熟知端口号的应用程序所用的,端口范围为[1024,49151]。这些端口必须在IANA(互联网数字分配机构)上登记以避免重复。

3.3 客户端使用端口

        客户端使用端口仅在客户进程运行时动态使用,使用完毕后,进程会释放端口。该端口范围为[49152,65535]。

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

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

相关文章

【数据结构】链表

目录 一、线性表接口 二、单链表 2.1 单链表的结构定义 2.2 头插法 2.3中间位置的插入 2.4尾插法 2.5遍历链表 2.6查询线性表中是否包含指定元素 2.7返回索引为index的元素值 2.8修改索引为index位置的元素为新值,返回修改前的元素值 2.9删除链表中索引为…

公众号免费搜题系统

公众号免费搜题系统 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击…

嵌入式FreeRTOS学习十,任务调度和任务就绪链表任务调度过程

一.main函数里面的栈是哪里分配的 main函数里面用到的栈,假设为msp,是汇编代码里面设定的,对于STM32F103,在汇编代码里的向量表设置了一个栈_initial_sp,那这个栈是给谁用的呢? 可以看到,这个_initial_sp在内存中分配了一个空间区…

案例驱动,手把手教你学PyTorch(二)

通过案例学PyTorch。 扫码关注《Python学研大本营》,加入读者群,分享更多精彩 Autograd Autograd 是 PyTorch 的自动微分包。多亏了它,我们不需要担心偏导数、链式法则或类似的东西。 那么,我们如何告诉 PyTorch 做它的事情并计…

python在线及离线安装库

目录 一、配置python环境变量: 二、在线安装python库: 三、离线安装python库: 一、配置python环境变量: 1、以windows10为例,右键电脑->>属性: 2、选择高级系统设置: 3、选择环境变量&#xff1a…

八行代码一键照片转漫画

有些小程序可以实现照片转漫画的功能,本文和你一起来探索其背后的原理。用Python实现八行代码一键照片转漫画。    文章目录一、效果展示二、代码详解1 导入库2 照片转漫画一、效果展示 在介绍代码之前,先来看下本文的实现效果。    喜欢的小伙伴也…

操作系统主引导扇区代码是如何被加载到内存的?

1. 问题:OS引导代码为什么需要org 07c00h? 在前几天在知乎上的的一个回答《想带着学生做一个操作系统,可行性有多大?》中,我们引用了一段主引导扇区MBR中的操作系统加载代码: org 07c00h ; 告诉编译器程…

PCA实现降维的过程

PCA将相关性高的变量转变为较少的独立新变量,实现用较少的综合指标分别代表存在于各个变量中的各类信息,既减少高维数据的变量维度,又尽量降低原变量数据包含信息的损失程度,是一种典型的数据降维方法。PCA保留了高维数据最重要的…

web前端期末大作业 HTML+CSS+JavaScript仿京东

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目| HTML期末大学生网页设计作业,Web大学生网页 HTML&am…

SpringBoot发送邮件

06.发送邮件 在使用javaSE时&#xff0c;我们会发现发送邮件较为麻烦&#xff0c;而在SpringBoot中&#xff0c;发送邮件就变成一件较为简单的时。 导入mail的maven的启动类。 <dependency><groupId>org.springframework.boot</groupId><artifactId>…

DSPE PEG Azide, DSPE-PEG-N3;磷脂聚乙二醇叠氮

中文名称&#xff1a;磷脂聚乙二醇叠氮(DSPE-PEG-N3) 中文别名&#xff1a;N-二硬脂酰磷脂酰乙酰胺-PEG-叠氮 磷脂PEG叠氮 英文名称&#xff1a;DSPE PEG Azide, DSPE-PEG-N3 性状&#xff1a;根据不同的分子量为固体或者粘稠液体。 溶剂&#xff1a;溶于DCM&#xff0c;…

表单标签。。

一、任务目标 掌握表单标签及其属性的使用 二、任务背景 HTML表单用于收集用户输入。表单元素指的是不同类型的 input 元素、复选框、单选按钮、提交按钮等。 三、任务内容 1、<form></form>标签 用于创建HTML表单&#xff0c;常用属性如下&#xff1a; action&…

OpenGL ES 学习(一) -- 基本概念

最近在研究 SurfaceView 和 TextureView&#xff0c;发现栅格化这东西&#xff0c;一直没怎么搞明白&#xff0c;一搜都是关于 OpenGL 的&#xff0c;没办法&#xff0c;当初也是要学习这个&#xff0c;现在重试拾起。 之前接触 OpenGL &#xff0c;是主要解决一个渲染模糊问题…

JavaEE-操作系统

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录操作系统介绍操作系统的定位进程进程控制块内存管理进程间通信思维导图总结操作系统介绍 操作系统是一组做计算机资源管理的软…

文献学习01_Attention Is All You Need_20221119

论文信息 Subjects: Computation and Language (cs.CL); Machine Learning (cs.LG) &#xff08;1&#xff09;题目&#xff1a;Attention Is All You Need &#xff08;你需要的就是关注&#xff09; &#xff08;2&#xff09;文章下载地址&#xff1a;https://doi.org/10.4…

今天给大家介绍一篇基于javaWeb的汽车订票系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

牛客网之SQL非技术快速入门(3)-排序、关联关系

知识点&#xff1a; &#xff08;1&#xff09;order by colunm_name(s) ASC|DESC order by ID ASC,name ASC,sex DESC 不写就是默认升序&#xff0c;DESC降序 &#xff08;2&#xff09;3中关联关系&#xff1a;left join、right join、inner join/join 21、现在运营想要查…

【微信开发第四章】SpringBoot实现微信H5支付

前言 在进行微信公众号业务开发的时候,微信支付可以说是非常重要的一环。该篇文章每一步都有记录&#xff0c;力争理解的同时各位小伙伴也能够实现功能 文章目录前言1、公众号配置2、微信支付实现代码总结1、公众号配置 1、绑定域名 先登录微信公众平台进入“设置与开发”&…

阿里云架构实战之ALB(应用型负载均衡)介绍与搭建

ALB介绍 服务器端负载均衡SLB&#xff08;Server Load Balancer&#xff09;是一种对流量进行按需分发的服务&#xff0c;通过将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力&#xff0c;并且可以消除系统中的单点故障&#xff0c;提升应用系统的可用性。 阿里云负…

代码随想录算法训练营第60天 | 一刷结束篇 84.柱状图中最大的矩形

代码随想录系列文章目录 一刷总结篇 文章目录代码随想录系列文章目录84.柱状图中最大的矩形dp 普通思路单调栈一刷总结篇84.柱状图中最大的矩形 题目链接 这道题和接雨水是两个相似的题&#xff0c;相辅相成的那种&#xff0c;双指针是过不了力扣的会超时&#xff0c;所以我也…