秋招Day12 - 计算机网络 - UDP

article/2025/7/5 12:12:50

说说TCP和UDP的区别?

TCP使用无边界的字节流传输,可能发生拆包和粘包,接收方并不知道数据边界;UDP采用数据报传输,数据报之间相互独立,有边界

应用场景方面,TCP适合对数据的可靠性要求高于速率要求的场景,比如邮件传输文件传输网页浏览。UDP适合对速率要求高、可以容忍一定数据丢失的场景,比如即时聊天在线视频语音电话

你会如何设计QQ中的网络协议?

首先是登陆功能,由于需要准确性和数据加密,所以采用TCP + SSL/TSL协议来进行登陆。

登陆之后的即时聊天/语音视频通话功能,由于实时性要求高,所以采用UDP协议。

如何保证消息的不丢失?

对于TCP协议来说,如果发生消息丢失,则会尝试进行重传(RTO超时重传/快速重传

对于UDP协议,可以通过应用层的重传机制来保证消息不丢失。当接收方的应用层收到消息后,发送一个确认信息给发送方,如果发送方没有收到确认信息,则重传。同时,每个消息都有一个序列号,接收方通过序列号来判断消息是否丢失,如果发现序列号不连续,就要求发送方重新发送,这样还可以避免消息重复。

消息持久化也很重要,可以将消息保存在服务器或者本地数据库中,即时网络断连,也能从数据库中恢复消息。

为什么QQ采用UDP协议?

  • QQ并不是全部采用UDP协议,比如文件传送采用的是TCP保证可靠性。
  • 使用UDP传输信息的好处是延迟较低,对于数据丢失的处理比较简单。TCP是一个全双工的协议,需要建立连接,网络开销较大
  • 如果使用QQ语音或者视频通话,UDP的优势更能显现,首先延迟较小,其次是偶尔的丢包不需要重传,因为用户可以接受偶尔的卡顿和画面模糊,但是如果频繁出现几秒前的画面和声音,几乎是不可接受的。
  • QQ的服务器设计容量是海量级的,一台服务器要容纳几十万的并发连接,因此服务器只有采用UDP与客户端通信才能保证如此大规模的服务,服务器压力小。

UDP协议为什么不可靠?

  • 不保证消息交付:无确认、无重传、无超时
  • 不保证交付顺序:无序号、不重排、无队首阻塞(TCP需要等待丢失的数据重传才能把数据交付到应用层)
  • 不跟踪连接状态
  • 不进行拥塞控制

DNS为什么要用UDP?

DNS既使用TCP又使用UDP。

使用TCP的情况是区域传送,也就是DNS服务器之间同步域名解析数据时。因为数据同步所要传输的数量大于普通的请求和响应,而TCP能够传输更大的报文长度,而且为了保证数据的正确性,所以使用TCP。

客户端向DNS服务器请求域名解析的时候使用UDP,服务器返回的内容不会超过UDP的最大允许长度,并且不需要建立连接,大大提升的响应速度,但这要求客户端自己有超时处理/请求重传/重试机制来保证响应数据的可靠性。


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

相关文章

Baklib知识中台重塑企业知识生态

Baklib四库体系构建知识中枢 Baklib通过独创的四库体系(显性知识库、隐性经验库、场景案例库、智能模型库),构建起企业知识管理的核心枢纽。显性知识库集中存储制度文档、产品手册等结构化信息,隐性经验库则通过问答社区、专家笔…

字节跳动社招面经 —— BSP驱动工程师(5)

接前一篇文章:字节跳动社招面经 —— BSP驱动工程师(4) 本文内容参考: ARM64架构启动流程_arm64 linux kernel 启动流程-CSDN博客 特此致谢! 上一回讲解了“嵌入式充电站”发的一篇文章字节跳动社招面经——BSP驱动工…

超越与沉浸:关于意识觉醒的量子化生存艺术

一、现象世界的认知架构:从AR渲染到神经编译 人类意识系统犹如搭载生物算法的增强现实(AR)设备,每秒将4000万比特的原始感官数据,通过神经编译引擎压缩成40比特的认知全息图。在这个过程中: 海马体材质库自…

自主设计一个DDS信号发生器

DDS发生器 DDS信号发生器是直接数字频率合成技术,采用直接数字频率合成(Direct Digital Synthesis,简称DDS)技术,把信号发生器的频率稳定度、准确度提高到与基准频率相同的水平,并且可以在很宽的频率范围内进行精细的频率调节。采…

浏览器网站禁止黏贴,但是要交作业怎么快速黏贴

出现的问题: 写这篇博客的原因:学校最近要求使用 iwrite 写英语作文,但是浏览器禁止黏贴,我们自己只能手动输入,但是作为程序猿的我想到了一个很好的解决方案。 解决思路: 我们直接在浏览器的控制台的源代码…

CAN通讯协议中各种参数解析

1.各种参数缩写 2.多帧传输时间参数解析 - Sender(左侧) 指的是 多帧数据的发送者,也就是: ECU(被测系统 / 响应方) - Receiver(右侧) 指的是 多帧数据的接收者,也就是…

第十二节:第五部分:集合框架:Set集合的特点、底层原理、哈希表、去重复原理

Set系列集合特点 哈希值 HashSet集合的底层原理 HashSet集合去重复 代码 代码一:整体了解一下Set系列集合的特点 package com.itheima.day20_Collection_set;import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Set; import java.util.…

deepseek原理和项目实战笔记2 -- deepseek核心架构

混合专家(MoE) ​​混合专家(Mixture of Experts, MoE)​​ 是一种机器学习模型架构,其核心思想是通过组合多个“专家”子模型(通常为小型神经网络)来处理不同输入,从而提高模型的容…

迈向分布式智能:解析MCP到A2A的通信范式迁移

智能体与外部世界的桥梁之言: 在深入探讨智能体之间的协作机制之前,我们有必要先厘清一个更基础的问题:**单个智能体如何与外部世界建立连接?** 这就引出了我们此前介绍过的 **MCP(Model Context Protocol&…

TCP/IP协议精华总结pdf分享

hi ,大家好,应小伙伴们的要求,上次分享了个人的一些学习和职场经验,其中网络协议PDF文档是我之前学习协议的时候总结一些精华知识,网络属于基本功,是互联网必备知识,我深信掌握好核心20%知识&am…

齐次变换矩阵与运动旋量的指数映射

在三维空间中,刚体的位姿(位置和姿态)可以通过齐次变换矩阵进行描述。齐次变换矩阵是一种 44 的矩阵,其一般形式为: T [ R p 0 1 ] T\begin{bmatrix}R&p\\0&1\end{bmatrix} T[R0​p1​] 其中, R …

MySQL DDL操作全解析:从入门到精通,包含索引视图分区表等全操作解析

目录 一、DDL 基础概述 1.1 DDL 定义与作用 1.2 DDL 语句分类 1.3 数据类型与存储引擎 1.3.1 数据类型 1.3.2 存储引擎差异 二、基础 DDL 语句详解 2.1 创建数据库与表 2.1.1 创建数据库 2.1.2 创建表 2.2 修改表结构 2.2.1 添加列 2.2.2 修改列属性 2.2.3 删除列…

torch.randn vs torch.rand

1 分布类型: randn:生成标准正态分布(均值 0,标准差 1) rand:生成 [0, 1) 区间的均匀分布 2 数值范围: randn:可能产生负数(范围 (-∞, ∞)) rand&#xff…

NLP学习路线图(十九):GloVe

自然语言处理(NLP)的核心挑战在于让机器理解人类语言的丰富含义。词向量(Word Embeddings)技术通过将词语映射到高维实数空间,将离散的符号转化为连续的向量,为NLP任务奠定了坚实基础。在众多词向量模型中&…

极客时间:用 FAISS、LangChain 和 Google Colab 模拟 LLM 的短期与长期记忆

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

dify应用探索

一个典型的 Agent Multi-Agent 系统 智能导购会根据用户意图分类并传递给相应商品导购Agent,返回商品信息。采用Multi-Agent架构,其中Router Agent负责对用户问题进行意图 分析,并路由到其它商品导购Agent,商品导购Agent负责向厥客收 集商品…

py爬虫的话,selenium是不是能完全取代requests?

selenium适合动态网页抓取,因为它可以控制浏览器去点击、加载网页,requests则比较适合静态网页采集,它非常轻量化速度快,没有浏览器开销,占用资源少。当然如果不考虑资源占用和速度,selenium是可以替代requ…

c++类和对象-继承

参考链接:46 类和对象-继承-继承方式_哔哩哔哩_bilibili 1.概述 作用:提高代码复用率,多个子类和父类有相同之处,又有自己各自的特点。例如基类人有四肢、会走路、说话,不同子类中国人是黑头发,说汉语&am…

MySQL中的锁

MySQL中有哪些锁? 全局锁(FTWRL) 含义:Flush Table with Read Lock的缩写,它会锁定整个数据库实例,让所有表都处于只读状态。 使用全局锁,要执行的命令: flush tables with read lock 之后,整个数据库就处于只读…

探索 Dify 的工作流:构建智能应用的新范式

目录 前言1. 什么是 Dify 的工作流2. 工作流的核心组成2.1 节点(Node)2.2 连接线(Edge)2.3 上下文与变量系统 3. 工作流的典型使用场景3.1 多轮对话与智能客服3.2 文档问答系统3.3 多语言营销文案生成3.4 多模型对比与评估&#x…