传输层协议UDP

目录

[一. 传输层](#一. 传输层)

[1. 端口号](#1. 端口号)

端口号划分

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

[2. 查询命令](#2. 查询命令)

[二. UDP协议](#二. UDP协议)

[1. UDP协议端格式](#1. UDP协议端格式)

UDP如何将报头与有效载荷分离

UDP数据封装

[2. UDP特点](#2. UDP特点)

[3. 面向数据报](#3. 面向数据报)

[4. UDP缓冲区](#4. UDP缓冲区)

[5. UDP常用处](#5. UDP常用处)


一. 传输层

1. 端口号

在我们的电脑中运行着许多的程序,计算机会为每一个程序配备一个端口号。主机从网络中接收到数据时,会先自下而上的进行传输传输层处理数据时通过识别端口号来判断数据是传送给哪个程序的。

传输的五大元素由,源端口,源IP,目的端口,目的IP,协议号组成。源IP目的IP确定了需要传输的两台主机,源端口目的端口确定了哪两个程序之间的数据传递,协议号决定了传输协议是采用UDP还是TCP处理数据。

端口号划分

端口号长度是16位,因此端口号的范围就是 0~2^16

0 - 1023:知名端口号,HTTP,FTP等这些广为使用的应用层协议,它们的端口号是固定的。

ssh服务器,22端口

ftp服务器,21端口

telnet服务器,23端口

http服务器,80端口

https服务器,443端口

1024 - 65535:操作系统动态分配的端口号,客户端程序的端口号


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

一个进程往往包含许多的功能,需要进行多份协议的传输,因此一个进程可以bind多个端口号。一个进程可以打开多个文件描述符,每个文件描述符都对应一个端口号。

2. 查询命令

cat /etc/services

可以查看文件知名端口号

我们使用端口号时要避开这些端口号

netstat

查看网络状态

n:拒绝显示别名,能显示数字的全部转化成数字

l:仅列出有在listen的服务状态

t:仅显示tcp选项

u:仅显示udp相关选项

a:显示所有选项

p:显示建立连接的相关程序名

pidof

查看服务器进程id

语法:pidof 进程名

二. UDP协议

1. UDP协议端格式

UDP协议是传输层协议,系统通过网络套接字将应用层和传输层进行连接,socket规定传输层传输格式,随后进行bind绑定端口和IP

我们先前学习了应用层,应用层主要是处理实际的数据进行打包,完成打包之后到了传输层会制定相应的传输形式,此处我们介绍面向数据报的UDP协议。

16位源端口号:确定了数据发送的起始端口

16位目的端口号:确定了数据发送的终点端口

16位UDP长度:定义了整个UDP数据报的长度(首部+数据)

16为UDP检验和:判断传输过程中是否发生错误


UDP如何将报头与有效载荷分离

UDP报头固定8字节,在每次读取的时候读取8字节即可,剩下的就是有效载荷,这样就完成了报头与有效载荷分离


UDP数据封装

传输层在接受到应用层的数据后(应用层数据),对应用层数据添加报头进行封装(8字节报头),最终形成数据报(报头+应用层数据)

2. UDP特点

无连接:不需要建立连接,只需要知道目的端口和IP就可以传输

不可靠:没有确认机制,不会进行握手操作,若数据丢失,也没有重传机制

面向数据报:发送只能以一份一份数据报进行发送,接收只能一份一份数据报进行接收,且有最大受限大小。

3. 面向数据报

面向数据报形式不可拆分合并数据。发送方一次性sendto 100个字节的数据,那么接收放也需要一次性接收100 字节的数据

4. UDP缓冲区

UDP没有发送缓冲区,只有接收缓冲区。缓冲区接收发送方数据,不能保证接收的顺序和发送的顺序一致,若缓冲区满了会自动丢弃数据。因此通常会给数据添加编号,进行编号排序,接收到数据后重新编排。

5. UDP常用处

UDP是一种数据量小,数据传输快,传输成本低的协议。通常使用在直播,游戏数据实时传输这类可以允许少量数据损失,对速度要求快的场景

相关推荐
Doro再努力12 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene13 小时前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
忧郁的橙子.13 小时前
02-本地部署Ollama、Python
linux·运维·服务器
chian-ocean13 小时前
深入 CANN:使用 `tbe-op` 构建自定义高性能算子
网络
醇氧13 小时前
【linux】查看发行版信息
linux·运维·服务器
中议视控13 小时前
可编程网络中央控制系统主机通过红外发射棒控制空调电视等红外设备
网络·物联网·5g
No8g攻城狮13 小时前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu
XiaoFan01214 小时前
免密批量抓取日志并集中输出
java·linux·服务器
souyuanzhanvip14 小时前
ServerBox v1.0.1316 跨平台 Linux 服务器管理工具
linux·运维·服务器
数据安全科普王14 小时前
打破中心枷锁:P2P网络如何用“去中心化”重构互联网通信
网络·去中心化·p2p