从外卖APP到网络协议:深入解析UDP及应用层协议

article/2025/8/17 21:17:15

目录

  • 1. 应用层和传输层
      • 1.1 开发中常见的自定义协议格式
  • 2. UDP
      • 2.1 源端口号及目的端口号
      • 2.2 UDP报文长度
      • 2.3 UDP校验和(checksum)
  • 3. 基于UDP的应用层协议

关注我,学习更多企业开发和面试内容~

在这里插入图片描述

1. 应用层和传输层

应用层和程序员接触最密切,应用程序?该层很多协议都是程序员自定义的,也有现成的应用层协议,如HTTP协议(超文本传输协议),后面讲。

【例子】 点外卖,首先会看到商家列表,这就涉及到程序和服务器之间的网络通信交互。
协议:以","为分隔符。
请求:用户信息,位置信息。如构造一个“1000,100,32”的字符串。
响应:商家列表,包含:名称,图片,简介,评分。如“麻辣烫,图片地址,好吃,4.8”。

自定义协议只要客户端和服务器能对应上即可。

上述通过文本方式构造的协议,很粗糙,实际开发中很少这么干,下面介绍。

1.1 开发中常见的自定义协议格式

  1. xml(很少用)

通过标签来组织数据,很少用于网络通信,但其他地方会用。与html不同,xml的标签是自定义的。
在这里插入图片描述

【优势】数据可读性高。

【劣势】写起来繁琐,传输时占用的网络带宽多。

  1. json(很流行)

通过键值对结构来组织数据,当下最流行的组织数据的格式。键值对之间用",“分隔,键和值用”:",键是String类型,值可以是数字,字符串,数组,也可以是json等等。
在这里插入图片描述
【优势】数据可读性高。

【劣势】传输时占用的网络带宽多。除非是对性能要求很高的场景,其余很多地方都用json。

  1. protobuffer(pb)

使用二进制的方式来组织数据,可以保证带宽占用最低(相当于把要传递的信息按二进制压缩了)
【优势】占用宽带最低,传输效率最高,适合于对性能要求高的场景。

【劣势】可读性不高(二进制肉眼看不懂),一定程序影响开发效率。(相对于计算机的执行效率,程序员的开发效率更重要)

传输层是面试的考点,也是工作中经常用的。主要的协议有UDP和TCP,还有其他的协议,先学习UDP。


2. UDP

学习一个协议,最主要就是理解协议的报文格式。

【教材】在这里插入图片描述

【我的画图】报头和载荷之间可以认为是一个"字符串拼接"(当然这里是二进制数据)。
在这里插入图片描述

RFC标准文档明确规定了UDP格式,上述图中,UDP报头分成4个部分,每个部分2个字节(16位的数据,表示的范围是0-65535,也就是64kb)。

2.1 源端口号及目的端口号

UDP报文不携带源IP及目的IP(他们不在传输层,而是在网络层)。


2.2 UDP报文长度

UDP数据报占两个字节,最长就是64kb。

若两个字节的长度不够用,能不能改成4个字节?
不能,不是技术上的问题,而是一旦升级通信双方都要升级,一旦一方不愿意,通信就进行不了。


2.3 UDP校验和(checksum)

网络传输中,由于外场干扰,可能会让高电平变成低电平(或低变高),出现数据传输出错的情况。因此需要有办法识别出出错的数据,这个方法就是校验和。

在这里插入图片描述

校验和本质上就是一个字符串,原始数据相同得到的校验和一定相同,但校验和相同得到的原数据大概率相同(理论上会存在不相同的情况,实际概率很低,可以忽略不计)。

如何用校验和完成数据校验?

  1. 发送方把要发送的数据整理好(称为Data1),通过一定的算法计算出校验和checksum1。把Data1和checksum1一起通过网络发送出去。
  2. 接收方收到数据(称为Data2),收到数据checksum1。Data2可能和Data1不一样,接收方通过Data2按相同的算法计算,得到校验和checksum2。
  3. 对比checksum1和checksum2,相同则认为Data1和Data2大概率相同,若不同,则Data2和Data1一定不相同。

【检验和的原理】 计算校验和有很多算法,UDP使用的是CRC算法(循环冗余算法)。

  1. 把当前要计算校验和的数据,每个字节都进行累加,把结果保存到这个变量(2个字节)中,累加溢出也没关系。
  2. 如果中间某个数据出现传输错误,第二次计算校验和就会和第一次不同。
    但CRC这个算法不是特别靠谱,比如数据中前一个字节恰好少1,后一个字节恰好多1。

md5/sha1算法(两种算法差不多,只介绍md5)有一系列公式完成md5计算(怒需要考虑公式啥样),md5的值是一个16进制的数,需要知道md5特点。

【特点】

  1. 定长。无论原始数据多长,计算得到的md5都是固定长度(校验和本身没必要很长,不然不方便网络传输)。
  2. 分散。给定两个原始数据,哪怕绝大部分一样,只要有一个字节不同,得到的md5值都会差异很大。
  3. 不可逆。用原始数据计算md5非常容易,但用md5还原出原始数据很难,基本不可行。

3. 基于UDP的应用层协议

有一些应用层协议是基于UDP实现的,相较于UDP,很多时候会优先考虑TCP。

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

此外,自定义的UDP程序也可以使用自定义的应用层协议。


http://www.hkcw.cn/article/CZrrqkgJBO.shtml

相关文章

【JavaWeb】基本概念、web服务器、Tomcat、HTTP协议

目录 1. 基本概念1.1 基本概念1.2 web应用程序1.3 静态web1.4 动态web 2. web服务器3. tomcat详解3.1 安装3.2 启动3.3 配置3.3.1 配置启动的端口号3.3.2 配置主机的名称3.3.3 其他常用配置项日志配置数据源配置安全配置 3.4 发布一个网站 4. Http协议4.1 什么是http4.2 http的…

自扶正救生艇,乘风破浪,守护生命

在复杂水域救援中存在显著缺陷。遇巨浪或急流漩涡易倾覆且无法自主复位,使救援人员与被困者陷入二次危险。统计显示,激流救援中近三成五的救援人员伤亡源于船只倾覆后被困。更严重的是,传统救生艇倾覆后常需外部救援力量才能恢复,…

法国7月1日起实施最严户外禁烟令,范围包括这些

法国卫生与家庭部长卡特琳沃特兰表示,法国将在所有儿童可能出入的户外场所禁止吸烟。该禁令将于7月1日生效,范围包括海滩、公园、花园、学校外、公交车站和体育场馆等。责任编辑:zx0002

规定明令禁止自热类食品坐火车既不能带也不能托运

自热米饭发热包因高温爆炸风险被高铁禁止,单独食材包携带需密封完好且车上禁加热。各地规定不一,建议优先选择高铁餐食或非加热速食,出行前确认车站要求。一、发热包为何被禁?安全风险是主因自热米饭的发热包主要成分为镁铝粉、生石灰等,遇水后快速放热,温度可达100℃以上…

贵妇扎堆的“月子中心”IPO 圣贝拉月子中心28天收费13.88万起

核心提示:1.尽管“圣贝拉”定位高端月子服务,28天收费13.88万元起,但一度陷亏损泥潭,2022年经调整净亏损4463万元,高成本结构侵蚀利润,租赁与人力成本合计占销售成本近70%。2.这家“最贵”月子中心的合规风险密集暴露:位于北京的月子中心2021-2022年两次因无证行医被处罚…

(NAT64)IPv6网络用户访问IPv4网络服务器(动态映射方式)

1.实验拓扑 2.配置 [FW1]dis cu 2025-05-29 10:44:44.030 !Software Version V500R005C10SPC300 # sysname FW1 # ipv6 #nat64 prefix 3001:: 96 # interface GigabitEthernet1/0/0undo shutdownip address 1.1.1.1 255.255.255.0 # interface GigabitEthernet1/0/1undo shut…

力扣刷题Day 64:括号生成(22)

1.题目描述 2.思路 回溯,过程当中记录左括号和右括号的数量,以此作为剪枝的依据。 3.代码(Python3) class Solution:def generateParenthesis(self, n: int) -> List[str]:def backtrack(left_n, right_n, parenthesis):if …

高速收发器

一、高速收发器 1.FPGA高速收发器:GTP,GTX,GTH,GTZ 2.每个Quad有4对高速收发器GT(4个TX和4个RX)和一个COmmon 3.走差分,提高抗干扰性 4.CPLL是每个lane私有的,QPLL是整个Quad的所有通道共享的 5.每个MGT的bank有两对差分参考时钟 6.CPLL的时钟…

社保交满最低缴费年限停止就亏大了

社保交满最低缴费年限后停止缴纳确实会带来损失‌。首先,社保缴费满15年只是满足了领取养老金的一个必要条件,但并不是最优条件。养老金的领取金额与缴费年限和缴费金额密切相关,缴费年限越长、金额越高,退休后领取的养老金也会越多‌。具体来说,养老金的计算遵循“多缴多…

瑞幸咖啡降价 价格战再升级

瑞幸咖啡降价 价格战再升级!5月30日,消费者发现瑞幸咖啡多款饮品价格降至6.9元。此前,瑞幸咖啡的最低价通常是9.9元一杯。这次降价可能与近期外卖平台的价格战有关。本季度,奶茶和咖啡行业的价格竞争尤为激烈,瑞幸的主要竞争对手之一库迪咖啡将单品价格压低至3.9元和4.9元…

专家揭秘:荔枝吃多了可能引发“荔枝病” 空腹过量食用风险大

专家揭秘:荔枝吃多了可能引发“荔枝病” 空腹过量食用风险大!日前,话题#荔枝病突然冲上热搜。据报道,广东一名女子因过量食用荔枝后出现头晕不适、持续性鼻出血等症状,被诊断为“荔枝病”。科普博主称,此病严重时会引发休克甚至死亡。“荔枝病”也叫“低血糖急性脑炎综合…

2025端午档新片预售总票房破5000万

据网络平台数据,截至5月30日13时08分,2025年端午档新片预售总票房(含点映)破5000万,《碟中谍8:最终清算》领跑2025年端午档新片预售票房榜。(总台央视记者许盼盼)责任编辑:0342

t010-银行管理系统

项目演示地址 摘 要 伴随着信息技术与互联网技术的不断发展,人们进到了一个新的信息化时代,传统管理技术性没法高效率、容易地管理信息内容。为了实现时代的发展必须,提升管理高效率,各种各样管理管理体系应时而生,各…

这条中国土狗被称为查尔斯国王 海外爆红引发关注

这条中国土狗被称为查尔斯国王 海外爆红引发关注!近日,一条来自中国河北的长毛狗在海外迅速走红,被人们誉为“中国狗王”。这条狗在YouTube、TikTok等平台上的视频累计播放量突破3亿次,引发全球社交平台的现象级传播,并衍生出超过20种语言的二次创作内容。这条狗被外国人尊…

为什么端午节,要挂艾草?

端午时节,大街小巷飘散着艾草的清香,家家户户门前,悬挂的艾草,束随风摇曳。这一延续千年的传统习俗,不仅有古人的智慧与祈愿,更蕴含着深厚的文化内涵。为什么端午节要挂艾草?从挂法、寓意到最佳时间点,教你这一习俗的来历。关于端午挂艾草的起源,民间流传着多种说法。…

生成式引擎优化(GEO)的技术逻辑与内容喂养策略

在生成式人工智能重构信息分发规则的今天,GEO(Generative Engine Optimization)已从技术概念演变为企业争夺AI认知高地的核心战场。这场变革的本质,是推动内容从“被动检索”向“主动嵌入”跃迁,让品牌信息深度融入大模…

“婚内强奸”被羁押当事人申请国赔 索赔33万并追责

婚内强奸被羁押当事人申请国赔!5月29日下午,40岁的尹某在律师的陪同下向河南省濮阳县人民检察院递交了《国家赔偿申请书》。此前,他因“婚内强奸”被羁押了285天,去年这天是他走出看守所的日子。出于某些原因,他选择在一年后的这一天正式申请国家赔偿33万元,并要求追责相…

WebFuture:后台修改内容链接地址保存提示内容链接地址禁止输入外部url链接

问题描述: 后台修改友情链接内容链接地址保存报错,提示内容链接地址禁止输入外部url链接,如图所示: 解决方法: 运维中心-内容管理配置-内容管理上传配置里面启用允许外部链接。 对于旧版的系统,在启用允许…

其他 | 对 Dubbo 通信与 Skywalking 集成的简单调研

1.调研目标 可以说明一下对 Dubbo 和 Skywalking 的理解,以及这次调研的目的。 目前在我们的系统中大量使用了 OpenFeign 作为主要的服务调用方式,少部分有高性能需求的接口(如 Data Core)使用了 gRPC 协议提供接口。并且由于没…

福特公司因软件问题在美召回超百万辆汽车

据美国广播公司当地时间29日报道,美国政府汽车监管机构表示,福特汽车公司因软件问题,在全美召回超过100万辆汽车。报道称,福特汽车公司本月早些时候向美国国家公路交通安全管理局报告了这一软件问题。该问题可能导致车辆在倒车时,后视摄像头影像出现延迟、卡顿或不显示等故…