传输层--UDP协议

2023-11-10

传输层的功能:

传输层一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同端口向下交到传输层,再往下就共用网络层提供的服务。

具体功能:

1.传输层是为应用进程之间提供端到端的逻辑通信(网络层是为主机之间提供逻辑通信)。
2.传输层要对收到的报文进行差错检测。
3.传输层有很多种协议,这里主要讲两种不同的运输协议,即面向连接传输控制协议TCP(Transmission Control Protocol)和无连接的用户数据报协议UDP(User Datagram Protocol)。

本文先讲解UDP协议,下一篇博客讲解TCP协议。

前提

1.对于TCP/IP模型中的任一层来说,如果当前层上面还有分层,当数据报自底向上分用的时候,由于是一对多,所以需要知道要将当前数据交给上一层的谁。
2.另一方面还需要知道,如何将报头与有效数据进行分隔。

UDP协议的报头

1.报头如下:

这里写图片描述

2.报头详细解释:

(1)源端口号:对于TCP/IP模型中的任一层来说,如果当前层上面还有分层,当数据报自底向上分用的时候,由于是一对多,所以需要知道要将当前数据交给上一层的谁。UDP是传输层的协议,传输层的上一层是应用层,对于应用层的服务来说,是以端口号来区分各个服务进程,所以传输层的协议需要知道上一层的端口号。需要知道是哪个服务进程发给我的报文,所以需要16位的源端口号。
(2)目的端口号:同样需要知道是要发给哪个服务进程,所以还需要16位的目的端口号。

  • 从这里可以看出来,当我们将本地端口号转换为网络字节序对应的端口号时,用到的是htons函数,s表示的就是short,就占16个比特位。

(3)16位总长度:因为UDP是面向数据报的,所以需要知道每个报文的总长度。总长度表示能传输数据的最大长度,包括UDP首部和UDP数据。由于总长度是16位,所以最大为64k.

  • 因为64k很小,这极大限制了使用UDP的场景,如果当用户传来的数据超过64k,如果想要用UDP,用户就必须自己进行分包,将数据报进行切分,分成小的数据报,最后用户再进行组装,但是很可能会出错,因为如果出现丢包问题,就无法进行组装。

(4)16位校验和:因为数据再传输过程中,可能会出现收到的数据与发送的数据不一致,因此需要校验和来进行校正,如果校验和出错,那么当前数据报直接被丢弃。

  • 什么是校验和?
    例如:当我们买菜的时候,菜比较多,有可能记不住,但是每个菜都会有数量,最后可以根据数量来判断当前买的菜是否正确,这种数量之和就叫校验和。

3.可以看到:
(1)UDP的报头长度为8字节,所以对于UDP数据报来说,前面8字节就是报头,后面的数据就是有效数据,通过定长的报头做到了将有效载荷与报头进行分隔。
(2)UDP通过端口号知道我要将我的有效数据交给上一层的谁。
(3)因为UDP报头里面有一个字段叫16位UDP(总)长度,这就做到了将报文与报文之间进行分隔。

UDP协议的特点

1.无连接

(1)什么叫连接?
当我们打电话时,我们拨号的动作就叫建立连接,当对方接听之后,双方才开始进行通信。而发短信就没有建立连接。
也就是:当我们发送数据时需要给对方说一下,我要向你发送数据了,当你回应我之后,我再给你发,我向你询问再收到你回应的过程就叫做建立连接。
(2)为什么UDP是无连接的?
因为UDP只用知道对方的端口号就可以直接进行数据间传递,没有任何建立连接的过程。

2.不可靠

(1)什么叫可靠?
我向你发送数据,无论你收没收到,我都知道,并且还要保证你收到的数据和我发送的数据一致,并且还要保证发送的数据能够按序到达。
(2)为什么UDP不可靠?
因为UDP不包含任何确认机制,发送数据对方是否收到我不知道,如果数据在网路传输过程中丢失也不知道更不会重发等。

3.面向数据报

(1)什么是面向数据报?
如果发送的数据为10k,那么接收的数据大小必须为10k,不能分10次接收,每次接收1k。并且取数据要么取1个,要么取两个,不能取半个。
(2)面向数据报的缺点
不够灵活的对数据进行发送和接收。

UDP其它知识

1.UDP没有发送缓冲区,只有接收缓冲区。

(1)因为UDP不可靠,如果发送的数据包在网络传输过程中丢失,UDP不会在进行重发,也就不需要保存当前数据的拷贝,因此就不需要有发送缓冲区。
(2)因为操作系统会将收到的数据放置进缓冲区里面,所以需要有接收缓冲区。对于UDP的接收缓冲区来说,如果当前缓冲区已经满了,如果再接收到数据,就会将数据包进行丢弃;由于网络有延迟,所以发送的数据包与接收到的数据包顺序可能不一致。

2.为什么UDP不可靠,现在还要使用UDP协议呢?

(1)由于UDP协议不保证可靠性,就会使得其它方面变得比较好例如效率变得很高,并且用户基于UDP编程时,代码也会比较简单。
(2)另一方面,有些数据在传输过程中不用要求完全可靠,丢失几个数据包也没有大的影响,因此可以使用UDP但使得效率变得比较高。例如:视频在传输过程中,就可以使用UDP协议,偶尔丢失一些帧,并不影响视频的观看。

3.基于UDP的应用协议(这里列举后面会用到的)

(1)DNS:域名解析协议;
(2)DHCP:动态主机配置协议

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

传输层--UDP协议 的相关文章

  • IP地址、子网掩码、默认网关和DNS服务器之间的联系与区别

    文章目录 1 IP地址 2 子网掩码 3 默认网关 4 DNS服务器 1 IP地址 IP 是32位二进制数据 通常以十进制表示 并以 分隔 IP 地址是一种逻辑地址 用来标识网络中一个个主机 IP 有唯一性 指的是公网地址 即每台机器的 I
  • 计算机网络(1)——概念、组成、功能和分类

    文章目录 0 总揽全局 1 计算机网络的概念 2 计算机网络的功能 3 计算机网络的组成 4 计算机网络的分类 视频来源 https www bilibili com video BV19E411D78Q p 1 0 总揽全局 1 计算机网
  • 【计算机网络09】传输层之TCP连接管理

    文章目录 1 深入理解序号seq 确认号ack 2 建立连接 三次握手 2 1 状态解读 2 2 前 2 次握手的特点 2 3 为什么建立连接要进行 3 次握手 2 次不行吗 2 4 第 3 次握手失败了会怎么处理 3 释放连接 四次挥手
  • 可靠数据传输的实现

    可靠数据传输协议 我们知道 TCP和UDP都是基于IP网际协议来传输数据的 但是IP网际协议是一种不可靠数据传输协议 它不负责数据丢失等情况 而TCP是一种可靠数据传输 因此我们需要来关注TCP是如何实现可靠数据传输的 经完全可靠信道的可靠
  • 计算机网络-应用层协议2(FTP)

    1 文件传输协议 FTP 原理 如图所示 FTP工作原理如下 用户或主机通过FTP用户接口与FTP客户进程交互 该用户首先提供远程主机的主机名 使本地主机的FTP客户进程建立一个到远程FTP服务器进程的TCP连接 紧接着该用户提供用户标识和
  • 交换机自学习和转发帧

    交换机自学习和转发帧 主机A给主机B发送帧 首先假设已经通过arp协议得到主机B的MAC地址 当交换机1收到该帧后将源MAC地址和接口登记 然后在帧交换表中查到目的MAC地址 没有找到就进行盲目转发 泛洪 交换机2收该帧后 做相同的动作 主
  • 端口介绍

    文章来源 https m toutiaocdn com group 6680437870504706572 app news article timestamp 1563010542 req id 201907131735410100230
  • 2.6.1 ADSL技术

    ADSL技术 即 非对称数字用户线技术 利用 数字技术 对 现有的 模拟电话用户线 进行改造 使其能够承载宽带数字业务 标准模拟电话信号的 频带 被限制在 300 3400 Hz 的范围内 无法承载宽带数字业务 但 用户线本身 可通过的 信
  • 现阶段计算机网络技术专业人才培养的发展对策

    确立具有高职特色的人才培养目标 在市场经济的条件下 人才培养首先要适应市场需求 以市场行业的需求为导 向制定人才培养目标 学校人才培养是否能满足社会需求 可以通过学生在对口行 业及相关领域的就业情况来衡量 高职教育培养高技能应用型人才 与研
  • 计算机网络试题

    一 选择题 1 OSI模型与TCP IP模型都具有的层次是 A 会话层 网络层和物理层 B 表示层 会话层和数据链路层 C 网络层 传输层和应用层 D 表示层 数据链路层和物理层 2 对于计算机网络体系结构 下列关于第N层和第N 1层的关系
  • 【计算机网络】湖科大微课堂笔记 p38-40 以太网交换机的生成树协议STP、虚拟局域网VLAN概述和实现机制

    以太网交换机的生成树协议STP 如何提高以太网的可靠性 若出现了链路故障 则可能会无法通信 可以通过添加冗余链路提高以太网可靠性 但是 冗余链路可能会形成网络环路 可能会带来网络风暴 使得帧在网络中反复转发 分别成顺时针和逆时针 可以类比图
  • 计算机网络学习笔记第四章(网络层)超详细整理

    目录 4 1 网络层概述 1 简介 2 总结 4 2 网络层提供的两种服务 1 面向连接的虚电路服务 2 无连接的数据报服务 3 虚电路服务与数据报服务的对比 4 3 IPv4 1 概述 2 分类编制的IPv4地址 2 1 简介 2 2 总
  • 计算机网络4--Internet结构

    本页内容 1 基本结构 2 结构图解 3 层次结构图解 1 基本结构 a 端系统通过接入ISP access ISPs 连接到Internet b 接入ISP必须进一步互连 保证任意两个主机可以互相发送分组 c 构成复杂的网络互连的网络 2
  • 2023面试问答-计算机网络

    OSI 的七层模型分别是 各自的功能是什么 简要概括 物理层 底层数据传输 如网线 网卡标准 数据链路层 定义数据的基本格式 如何传输 如何标识 如网卡MAC地址 网络层 定义IP编址 定义路由功能 如不同设备的数据转发 传输层 端到端传输
  • LWIP学习笔记(2)---IP协议

    IP首部 最高位在左边记为 bit 最低位在右边 记为31 bit 传输顺序 先0 7bit 在8 15bit 然后16 13 最后24 31bit 这种方式称为 big endian 也叫网络字节序 版本 ipv4 或 6 ipv6 首部
  • 几率大的网络安全面试题(含答案)

    其他面试题类型汇总 Java校招极大几率出的面试题 含答案 汇总 几率大的网络安全面试题 含答案 几率大的多线程面试题 含答案 几率大的源码底层原理 杂食面试题 含答案 几率大的Redis面试题 含答案 几率大的linux命令面试题 含答案
  • 计算机网络复习资料

    一 题型 选择题 包括单选和多选 共30分 其中单选每题1分 计20分 多选每题2分 计10分 简答题 每题5分 共20分 分析计算题 共40分 共4题 论述题 本题10分 共1题 二 考试大纲 人工智能 主 计科 补 1 概述 1 互联网
  • 通信子网在计算机网络中的地位和作用

    一 通信子网是计算机网络的核心组成部分 通信子网是计算机网络的核心组成部分 它负责为计算机网络中的各种设备提供通信支持 无论是主机之间的数据传输 还是主机与终端之间的数据通信 都需要通过通信子网来实现 通信子网是连接各个设备的关键基础设施
  • 计算机网络基础——光模块(Optical Modules)基础知识介绍

    一 光模块的工作原理 光模块 Optical Modules 的工作原理是将电信号转换为光信号 或者将光信号转换为电信号 实现光纤通信中的光电转换和电光转换功能 具体来说 光模块主要由光电子器件 光发射器和光接收器 功能电路和光接口等部分组
  • 计算机网络基础 走入计算机行业的重中之重

    计算机网络是指将地理位置不同的 功能独立的多台计算机通过通信线路连接起来 以功能完善的网络软件支撑 实现资源共享和信息传递的系统 对于信息安全高级工程师来说 理解计算机网络的基本原理是至关重要的 下面我们将逐一解析计算机网络的核心概念 网络

随机推荐

  • 用定时器0控制切换流水灯顺序,用外部中断控制两种数码管显示方式

    include reg52 h 此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16 对数据类型进行声明定义 typedef unsigned char u8 sbit LSA P2 2 sbit LS
  • 开关电源变换器稳态原理分析(电感伏秒平衡及电容电荷平衡)

    在大量开关周期中 当开关频率固定时 开关占空比D也保持恒定 例如对n个周期 电流波形和电压波形在每个开关周期是重复的 这就意味着电压波形和电流波形变成周期性波形 周期为T 即i n 1 T i nT v n 1 T v nT 这样的状态就称
  • 通过 Debian Packages安装ROS 2(Linux Mint20.2安装ROS2 foxy)

    安装ROS foxy的文章较少 这里记录一下自己安装时遇到的一些坑 1 https raw githubusercontent com访问不了 1 设置语言环境 locale check for UTF 8 sudo apt update
  • openssh升级编译安装,更新Openssh和openssl

    openssh下载 https www openssh com openssl下载 https www openssl org 注 openssh需要配套openssl使用 软件包安装和编译安装的区别 软件包安装 yum provides
  • pycharm中从虚拟环境导包

    一 现有环境 在terminal中输入命令 pip freeze gt requirements txt 下载包到本地 二 把下载好的包放入新环境项目的跟目录下 新环境会提示是否安装 点击 install requirements 点击in
  • LeetCode 18. 四数之和

    文章目录 1 排序 双指针 2 对上面代码加剪枝 题目链接 https leetcode cn problems 4sum 1 排序 双指针 class Solution using ll long long public vector
  • Linux使用4g模块拨号上网

    imux6ull 串口连接移远的4g模块EC200N 使用pppd拨号上网 1 设置内核支持pppd 打开pppd下的所有项 编译内核 Device Drivers gt Network device support gt PPP poin
  • Git出现无法同步问题的解决方式

    在我们使用git同步至github服务器上去时 可能会出现 the request URL returns error 403 Forbbidden while accessing 权限不够 此项目为私有 没有权限 输入用户名和密码 或远程
  • 高级面向对象技术

    封装 三种方式 工厂函数模式 构造函数模式 构造函数模式和原型结合 工厂函数模式代码示例 function factory name var obj new Object obj name name obj sayName function
  • 9_1 ArrayList 初始化 (elementData.getClass() != Object[].class)

    第一个知识点 数组也有自己 class 表示维度 Lxxx表示数组的元素类型 package 集合类 ArrayList类 import java util ArrayList import java util Arrays public
  • 实现高效的并行计算:使用Fork/Join框架和并行流

    要实现高效的并行计算 可以使用Java中的Fork Join框架和并行流 这两个工具都是Java提供的用于并行处理任务的机制 可以充分利用多核处理器的能力 1 Fork Join框架 Fork Join框架是Java中用于并行任务处理的一个
  • 有向图邻接矩阵c语言编程,邻接矩阵有向图(一)之 C语言详解

    本章介绍邻接矩阵有向图 在 图的理论基础 中已经对图进行了理论介绍 这里就不再对图的概念进行重复说明了 和以往一样 本文会先给出C语言的实现 后续再分别给出C 和Java版本的实现 实现的语言虽不同 但是原理如出一辙 选择其中之一进行了解即
  • vue-i18n 的使用

    一 安装 安装 Vue i18n 插件 您可以使用以下命令进行安装 npm install vue i18n next save 安装 npm install vue i18n next save legacy peer deps adde
  • 微软Kinect:谁还要控制器?

    体感控制游戏 Kinect谁还要控制器 这是XBoxKinect系统背后最重要的思想 微软的新玩具在10天内卖出了100万台 记者陈赛简单说 Kinect是嵌入XBox的三个小镜头 一个RGB摄像头 一个红外投影仪和一个远程感应器 这些镜头
  • 火狐浏览器插件

    All in one sidebar 侧栏控制 Firebug 在浏览网页的同时 具备丰富开发的功能 LastPass 在线密码管理器 gtranslator 翻译 Xmarks 书签 ColorZilla 颜色复制 Adblock Plu
  • 北京大学肖臻老师《区块链技术与应用》公开课笔记20——ETH中GHOST协议篇

    北京大学肖臻老师 区块链技术与应用 公开课笔记 以太坊GHOST协议 对应肖老师视频 click here 全系列笔记请见 click here About Me 点击进入我的Personal Page BTC系统中出块时间为10min 而
  • AntdPro项目前端测试的探索

    测试规范 测试工具的选择 在本项目中以 ant design pro 项目为测试项目 测试工具最终选型为 jest javascript的常用测试框架 enzyme 支持react的jest测试库 react test renderer 快
  • ftp服务器收集信息,用VBScript收集系统信息并上传到ftp空间

    之前无聊整理出来了一份这个东西 因为在单位给新入职的员工配电脑时 需要登记一遍设备 可每次总要查感觉挺麻烦 结果下面的这份VBS脚本就诞生了 只可惜这个脚本做好了却没派上用场哎 这个脚本的功能是运行后自动将查询到的计算机相关信息记录到一个文
  • 详解 Neo4J 出现问题

    项目启动报错提示如下错误 org springframework data mapping PropertyReferenceException No property selectMenuPage found for type Menu
  • 传输层--UDP协议

    传输层的功能 传输层一个很重要的功能就是复用和分用 应用层不同进程的报文通过不同端口向下交到传输层 再往下就共用网络层提供的服务 具体功能 1 传输层是为应用进程之间提供端到端的逻辑通信 网络层是为主机之间提供逻辑通信 2 传输层要对收到的