趣谈网络协议——UDP协议
1. TCP和UDP的区别
- TCP是面向连接的,UDP是面向无连接的,所谓建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方的交互状态,用这样的数据结构来保证所谓的面向连接特性
- TCP提供可靠交付,TCP传输的数据,无差错,不丢失,不重复,按顺序到达;而UDP继承了IP包的特性,不保证不丢失,不保证按顺序到达
- TCP是面向字节流的,没头没尾;而UDP继承IP的特性,是基于数据报的,一个一个发,一个一个收
- TCP有拥塞控制,根据网络情况自己调整发送速度;UDP就不管,应用让发就发
2. UDP包头
关键:
端口:无论应用程序用TCP还是UDP,都有监听一个端口,正是这个端口用来区分应用程序
3. UDP的特点
- 沟通简单
- “轻信他人”谁都可以给它传数据,它也可以给任何人传数据,甚至同时给多个人发数据
- 不会根据网络情况进行拥塞控制
4. UDP的三大应用场景
- 需要资源少,网络情况较好的内网,或者对丢包不敏感的应用。比如DHCP,PXE中下载镜像用到的TFTP(内网)
- 不需要一对一沟通建立连接,而是可以广播的应用。比如DHCP就是广播的,还有组播(IGMP包),VXLAN
- 需要处理速度快,时延低,可以容忍少量丢包。
5. UDP应用例子
- 网页或者APP的访问,原来通常使用的是HTTP,这是基于TCP的;QUIC是谷歌提出的一种基于UDP的改进通信协议,目的是降低时延,提供更好的用户互动体验,QUIC将建立连接,自适应拥塞控制等交给应用层
- 流媒体协议,比如直播,现在用的比较多是RTMP,这是基于TCP的,很多直播应用基于UDP自己实现了视频传输协议
- 实时游戏,在异步IO机制引入之前,常常是面对海量客户端连接的策略
- LoT物联网,谷歌提出的Thread协议就是基于UDP的
- 移动通信领域,比如4G移动网络
6. 问题总结
6.1 怎样才算一个连接?
是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方的交互状态,用这样的数据结构来保证所谓的面向连接特性(TCP更好的比喻是在码头上增加了记录人员,核查人员和督导人员,至于IP层和数据链路层,它没有任何改造。)
趣谈网络协议——UDP协议相关推荐
- 趣谈网络协议笔记-二(第十七讲)
趣谈网络协议笔记-二(第十七讲) P2P协议:我下小电影,99%急死你 自勉 逃离舒适区! 正文 一. P2P协议 整个篇章讲的就是这两个协议之间的区别.P2P协议就是迅雷下载数据时所用的协议, 众所 ...
- 趣谈网络协议笔记-二(第十三讲)
趣谈网络协议笔记-二(第十三讲) 套接字Socket:Talk is cheap, show me the code 前言 这只是笔记,是为了整理刘超大神的极客时间专栏的只是而存在的! 经常会在网络上 ...
- 趣谈网络协议笔记-二(第十二讲)
趣谈网络协议笔记-二(第十二讲) TCP协议(下):西行必定多妖孽,恒心智慧消磨难 前言 哈哈哈,越当我看刘超的通俗讲解,我就越感觉自己的无能.每次当我看了讲解之后,每次当我感觉到这个东西原来是这么简 ...
- 趣谈网络协议笔记-二(第十一讲)
趣谈网络协议笔记-二(第十一讲) TCP协议(上):因性恶而复杂,先恶后善反轻松 自勉 我似乎天性不擅长争斗,但是有些时候,我也必须砥砺前行. 强大是和平的前提,而善良不是. 前言 今天回到家里已经是 ...
- 趣谈网络协议笔记-二(第十讲)
趣谈网络协议笔记-二(第十讲) UDP协议:因性善而简单,难免碰到"城会玩" 自勉 如果手上没有剑,我就无法保护你.如果我一直握着剑,我就无法抱紧你.--<Bleach> ...
- 趣谈网络协议笔记-二(第七,八,九讲)
趣谈网络协议笔记-二(第七,八,九讲) 勉励 人生而自由,却无往不在枷锁(牢笼)之中. ------卢梭@<社会契约论> 为那些有形的牢笼感到庆幸吧. 为自己出生于这个时代感到庆幸吧,因为 ...
- 华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)
华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解) 程序员高级码农II 2020-09-25 07:23:00 前言 虽然在大学的时候大家都学过网络协议 ,但是肯定感觉网络协议的知识点非常多 ...
- 华为研究院19级研究员几年心得终成趣谈网络协议文档
苦且绕不过去.经过多次放弃之后,我发现在我的职业生涯中,网络这一关无论如何也绕不过去.本来觉得写Java程序时可以依赖别人的库,所以就不用关心这么多底层的技术了,但是到后来才发现,服务数量一多,吞吐量 ...
- 华为研究院高级研究员几年心得终得趣谈网络协议文档,附资深架构师讲解
苦且绕不过去.经过多次放弃之后,我发现在我的职业生涯中,网络这一关无论如何也绕不过去.本来觉得写Java程序时可以依赖别人的库,所以就不用关心这么多底层的技术了,但是到后来才发现,服务数量一多,吞吐量 ...
- 面试华为必备:华为18级大牛呕心沥血三年整理的 趣谈网络协议
前言 华为是一个热门的互联网大厂,华为每年都要进很多新人,对于新人来说,那些高大上的技术是用不到的,反倒是非常需要这些基础的文档,有这些新手进步会快很多,搞清楚TCP IP协议栈,其他的学起来也就容易 ...
最新文章
- 深度学习(6)构造简单的神经网络
- Redis中Value使用hash类型的效率是普通String的两倍
- python软件怎么用-Python如何创建应用程序
- 事件溯源|日志记录-一个基础的微服务模式
- MySQL 之视图、 触发器、事务、存储过程、内置函数、流程控制、索引(二)
- 剑指offer之两个队列实现栈的问题
- 【从零开始搭建自己的.NET Core Api框架】(二)搭建项目的整体架构
- jpa findone怎么用_Jpa VS MyBatis,你用哪个?
- 高颜值免费在线绘图工具新增WGCNA和差异分析
- Mysql学习总结(37)——Mysql Limit 分页查询优化
- Pycharm专业版注册教程
- 全国大学生电子设计竞赛综合测评硬件调试经验
- c语言中0x13,int 0x13 常用功能详解
- 软件测试-自我介绍-整体框架
- 艺赛旗RPA--经验分享:Python 中的“特殊”函数
- 最近组织游泳社的体会
- 奇异的水果世界——水果篇
- c语言中的线程管理,深入解析C++编程中线程池的使用
- TVAnts技术实现猜想
- 日期操作比较全面得代码
热门文章
- 新概念单片机c语言 pdf,新概念51单片机C语言教程实例代码(1).pdf
- mysql新建数据库并执行sql文件
- opengl超级宝典(第5版)的环境搭建
- MCP2515在8M晶振控制器下配置1M波特率的配置
- 网站ddos发包服务器,ddos发包搭建
- java 绩效考核系统源码_基于jsp的企业绩效考核系统-JavaEE实现企业绩效考核系统 - java项目源码...
- html制作摩天轮,LED幻彩摩天轮的制作方法
- 通讯录标准化输入fread c语言,C语言实现通讯录系统
- 计算机辅助设计autocad2005(建筑)四级考试,计算机辅助设计(AutoCAD平台)
- python语言程序设计实践教程答案实验二_20192428 实验二《Python程序设计》实验报告...