IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> UDP相关协议 -> 正文阅读

[网络协议]UDP相关协议

UDP协议格式

在这里插入图片描述
拼装报头的过程就是”封装“
UDP长度:整个UDP的长度=报头+载荷,使用2个字节的数据来表示,单位是字节,表示数据范围 0-65535byte,一个UDP数据报最大就是64KB,所有在使用UDP传输数据的时候一定要注意报文长度不能超过64K,超过就会丢失一部分数据.
那么传输大的数据报该怎么办呢?
最好的办法就是直接改成TCP,TCP对数据的长度没有限制.
UDP校验和
为什么要引入校验和:
网络传输数据本质都是一些0/1 bit流,这些bit流是通过光信号或者电信号来表示的,在传输过程中受到一些干扰,就容易出现“比特翻转",校验和就是为了验证看当前的数据是否出现问题.
如去超市买生活用品:卫生纸,抽纸,牙膏,洗面奶,洗衣液一共五种东西。此时去超市买的时候就会一边买一边检查买的结果.如果发现手上的东西已经五种了,就认为买完了。如果发现手里有三种或者六种就认为买错了.
但是手中的五种东西也不一定完全正确,有可能把洗衣液买成了洗衣粉。
校验和不一定百分百进行校验,如果校验和正确不能保证数据一定正确,但是校验和不正确就说明数据一定错误.
校验和往往根据原始数据的内容生成,不同的内容,生成的校验和也不一样。

使用校验和的算法:crc

crc:循环冗余校验
将数据当成二进制数据,依次按照字节为单位取出数据,然后把这些数据进行累加.随着累加可能出现溢出,溢出的部分就丢弃,
传输数据的时候把数据+crc校验和一起传输给目标.
接收方同时收到数据+crc校验和,接收方就会按照同样的算法,针对数据再计算一次crc校验和,把新的计算结果和收到的crc校验和进行对比,如果一致就认为数据发送和接收时数据的内容没变,如果传输过程中发送比特翻转,接收和发送的内容就不一样,此时新计算校验和与crc大概率不相同.

使用校验和的算法:md5

md5本质上是一个”非对称的哈希算法“
md5算法特性:(本质上就是针对数据进行一系列的数学变换)

  1. 定长:无论输入的字符串多长,得到的md5值都是固定长度
  2. 分散:只要输入的字符串,发生一点点变化,得到的md5值都会差别巨大。
  3. 不可逆:给定原字符串可以得到md5值,但是给定md5值无法得到原字符串.

md5应用场景

  1. 作为hash算法
  2. 作为校验和(因为md5分散的特性,只要数据发生一点点变化,md5值都会差别很大,如果两个字符串md5值一致那么大概率两个字符串相同)
  3. 应用一些密码学的场景(不可逆特性)

UDP的特点

无连接:知道ip和端口号就可以直接进行传输,不需要建立连接.
不可靠:发生端发送数据如果发送故障导致接收方无法收到,不会返回任何错误信息.
面向数据报:UDP不会拆分也不会合并.
全双工:UDP的socket既可以读也可以写.

经典面试题:基于UDP实现可靠传输.

这个问题看似问的是UDP实则考察的是TCP,可以参考TCP可靠传输再应用层实现类似逻辑.

  1. 实现应答机制,接收到数据后反馈一个ACK
  2. 实现确认序号,以及去重
  3. 实现超时重传
  4. 实现连接管理,三次握手(建立连接),四次挥手(断开连接)
  5. 实现滑动窗口,提高效率
  6. 限制滑动窗口,实现流量控制/拥塞控制
  7. 实现延时应答,捎带应答,心跳机制
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:45:58  更:2021-11-10 12:46:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/1 21:26:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码