【计算机网络】传输层协议UDP

目录

  • 一、端口号
    • 1.1 端口号范围划分
    • 1.2 认识知名端口号
  • 二、UDP协议
    • 2.1 UDP协议端格式
    • 2.2 UDP的特点
    • 2.3 UDP的缓冲区
    • 2.4 UDP使用注意事项
    • 2.5 基于UDP的应用层协议

一、端口号

传输层协议负责数据的传输,从发送端到接收端。端口号标识一个主机上进行通信的不同的应用程序。IP+端口号就能确定互联网中的唯一进程。

1.1 端口号范围划分

  • 0 - 1023:知名端口号, HTTP、 FTP、 SSH 等这些广为使用的应用层协议, 他们的端口号都是固定的
  • 1024 - 65535:操作系统动态分配的端口号。客户端程序的端口号, 就是由操作系统从这个范围分配的

1.2 认识知名端口号

有些服务器是非常常用的,为了使用方便,人们约定一些常用的服务器,都是用以下这些固定的端口号

  • ssh 服务器,使用 22 端口
  • ftp 服务器,使用 21 端口
  • telnet 服务器,使用 23 端口
  • http 服务器,使用 80 端口
  • https 服务器,使用 443

可使用下面的指令查看知名端口号:

cat /etc/services

两个问题:
一个进程是否可以 bind 多个端口号?

可以,一个进程可以有多个服务,比如tcp、udp,两个分别有各自的端口号,可以找到对应的客户端。

一个端口号是否可以被多个进程 bind?

不能,因为端口号是用来确定一个主机上的唯一一个进程,如果可以被多个进程绑定,就不具有唯一性。

二、UDP协议

2.1 UDP协议端格式

在这里插入图片描述

  • 报头:源端口号、目的端口号、UDP长度、UDP检验和
  • 16 位 UDP 长度,表示整个数据报(UDP 首部+UDP 数据)的最大长度
  • 如果校验和出错,就会直接丢弃

2.2 UDP的特点

  1. 无连接:知道对端的 IP 和端口号就直接进行传输,不需要建立连接
  2. 不可靠:没有确认机制,没有重传机制;如果因为网络故障该段无法发到对方,UDP 协议层也不会给应用层返回任何错误信息
  3. 面向数据报:不能够灵活的控制读写数据的次数和数量

面向数据报:应用层给多少,UDP发送多少,既不会拆分,也不会合并。

2.3 UDP的缓冲区

  • UDP 没有真正意义上的发送缓冲区,调用 sendto 会直接交给内核,由内核将数据传给网络层协议进行后续的传输动作
  • UDP 具有接收缓冲区,但是这个接收缓冲区不能保证收到的 UDP 报的顺序和发送 UDP 报的顺序一致;如果缓冲区满了,再到达的 UDP 数据就会被丢弃
  • UDP 的socket既能读,也能写,是全双工的

2.4 UDP使用注意事项

  • UDP 协议首部中有一个16 位的最大长度,也就是说一个UDP能传输的数据最大长度是 64K
  • 如果我们需要传输的数据超过 64K,就需要在应用层手动的分包,多次发送,并在接收端手动拼装

2.5 基于UDP的应用层协议

  • NFS:网络文件系统
  • TFTP:简单文件传输协议
  • DHCP:动态主机配置协议
  • BOOTP:启动协议(用于无盘设备启动)
  • DNS:域名解析协议

也包括用户自己写UDP程序时自定义的应用层协议

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

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

相关文章

力扣之1459.矩形面积

1. 1459.矩形面积 1.1 题干 表: Points ---------------------- | Column Name | Type | ---------------------- | id | int | | x_value | int | | y_value | int | ---------------------- id 是该表中具有唯一值的列。 每个点都用二维坐标 (x_value, y_value) 表示。 编…

化工行业如何做数字化转型?

据红杉的一项调查报告中指出,国内超九成的企业(95%)已经开展了不同程度的数字化实践,并将把数字化转型作为企业的战略核心。数字化转型或者说通过数据手段来帮助企业更好发展的方式,已成为未来不可避免的趋势。 那么&a…

SG-SLAM下载部署安装运行记录

1、论文简介 论文地址 GitHub - silencht/SG-SLAM: SG-SLAM: A Real-Time RGB-D Visual SLAM toward Dynamic Scenes with Semantic and Geometric Information 下载论文,zip文件 2、配置环境 其实没什么好说的,就是按照作者提供的文档 2.1cmake错…

三菱变频器RS-485 端子的接线和构成

RS-485 端子排列 RS-485 端子接线方法 RS-485 的计算机1台、变频器1台时 RS-485 的计算机1台、变频器n台(多台)时 通讯运行的初始设定 1、为使变频器和计算机进行 RS-485 通讯,进行必要的设定。 2、通讯分为使用变频器的PU接口的通讯和使用RS-485端子的通讯。 3、…

【算法题】139. 单词拆分-力扣(LeetCode)

【算法题】139. 单词拆分-力扣(LeetCode) 1.题目 下方是力扣官方题目的地址 139. 单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意:不要求字典中出现的单词全部都使用,并且…

如何下载旧版本app或者旧版本的电脑软件?下载旧版本手机app和电脑软件的方法

下载旧版本软件的方法介绍,下面以下载旧版本剪映为例:

【STM32 Blue Pill编程实例】-手机通过HC-05串口蓝牙控制LED

手机通过HC-05串口蓝牙控制LED 文章目录 手机通过HC-05串口蓝牙控制LED1、HC-05串口蓝牙模块介绍2、硬件准备和接线3、模块配置4、代码实现5、手机控制在本文中,我们介绍如何使用 STM32CubeIDE 和 HAL 库将 HC-05 蓝牙模块与 STM32 Blue Pill 开发板连接。 我们将使用 Android…

分布式事务一致性:本地消息表设计与实践

概念 本地消息表是一种常见的解决分布式事务问题的方法。其核心思想是将分布式事务拆分成本地事务来处理,通过消息队列来保证各个本地事务的最终一致性。 实现步骤 创建本地消息表:在数据库中创建一个本地消息表,用于存储待发送的消息以及消…

泽众P-One性能测试平台火焰图帮助定位产品性能问题

在软件开发过程中,性能问题往往是最头疼的问题之一。随着软件系统的日益复杂,快速准确地定位并解决性能问题变得尤为重要。泽众P-One作为一站式性能测试平台,通过引入火焰图性能分析可视化工具,极大地提升了性能问题的定位效率和解…

PDF样本册如何分享到朋友圈

​想象一下,你刚刚参加了一场行业盛会,获取了一份包含最新行业动态、优秀案例的PDF样本册。你迫不及待地想要分享给身边的朋友,与他们共同学习、探讨。然而,传统的分享方式要么依赖纸质版,要么通过电子邮件&#xff0c…

数据库-约束与多表查询

1.约束 例子: 外键约束 例子: 2.多表查询 多表关系 概述 内连接 外连接 自连接 联合查询 子查询 介绍 标量子查询 仅有一个值 列子查询 行子查询 表子查询 练习

大模型团队招人(校招):阿里巴巴智能信息,2025届春招来了!

阿里巴巴智能信息,2025届春招开始啦,欢迎有意向的优秀同学扫码投递。实习的内容也是大语言模型的核心方向Alignment,在这里有丰富的实验资源、良好的数据支持、优秀的师兄师姐带领你进入大模型的全新领域。内推直达:https://talen…

有哪些软件具备员工电脑的通讯软件管控功能

1、金刚钻信息网站桌面管理系统:系统里集合了上网行为管理、网络传输控制、硬件设备控制等功能,其中网络传输控制功能可以通过控制QQ、微信等 IM工具传输来管控网页和邮件敏感内容发布等渠道,预防企业内部敏感信息外泄。 2、洞察眼MIT系…

Blender软件三大渲染器Eevee、Cycles、Workbench对比解析

Blender 是一款强大的开源3D制作平台,提供了从建模、雕刻、动画到渲染、后期制作的一整套工具,广泛应用于电影、游戏、建筑、艺术等领域。 渲染101云渲染云渲6666 相比于其他平台,如 Autodesk Maya、3ds Max 或 Cinema 4D,Blende…

【JAVA开源】基于Vue和SpringBoot的蜗牛兼职平台

本文项目编号 T 034 ,文末自助获取源码 \color{red}{T034,文末自助获取源码} T034,文末自助获取源码 目录 一、系统介绍1.1 平台架构1.2 管理后台1.3 用户网页端1.4 技术特点 二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景…

PHP限定post提交数据的次数

PHP限定post提交数据的次数。 在PHP中&#xff0c;你可以通过记录IP地址的提交次数并在会话或数据库中存储这些信息来实现这个需求。以下是一个简单的PHP示例&#xff0c;它使用会话来跟踪IP地址的提交次数。 <?php session_start(); // 获取用户的IP地址 $ip_address $…

linux内核 devtmpfs介绍

文章目录 概要整体架构流程技术细节 概要 提示&#xff1a;这里可以添加技术概要 linux内核中 devtmpfs实现介绍 内核版本&#xff1a;5.10 Devtmpfs在Linux中是一个特殊的设备文件系统&#xff0c;主要用来linux内核中加速启动过程和管理设备节点。高版本的linux基本都是使用…

使用adb命令进行内存测试

使用 adb &#xff08;Android Debug Bridge&#xff09;&#xff0c;可以从命令行进行多种内存测试和查看内存使用情况。以下是一些常用的 adb 命令可以进行内存测试和分析。 1、获取系统整体内存信息 adb shell dumpsys meminfo 2、获取特定应用内存信息 adb shell dumps…

本地搭建我的世界服务器(JAVA)简单记录

网上参考教程挺多的&#xff0c;踩了不少坑&#xff0c;简单记录一下&#xff0c;我做的是一个私人服务器&#xff0c;就是和朋友3、4个人玩。 笨蛋 MC 开服教程 先放一个比较系统和完整的教程&#xff0c;萌新可用&#xff0c;这个教程很详细&#xff0c;我只是记录一下自己的…

WebServer:log

超时锁的编写 这个问题处于blockqueue.h文件中&#xff0c;内容如下&#xff1a; template<class T> bool BlockDeque<T>::pop(T& item, int timeout) {std::unique_lock<std::mutex> locker(mtx_);while(deq_.empty()) {if(condConsumer_.wait_for(lo…