目录

网络存在的问题

网络传送的不可靠

网络不安全

传输层的UDP

UDP工作机制

应用层观察UDP的特点

缺点

优点

UDP Header结构

checksum(校验和)

UDP接收缓冲区

缓冲区概念

接收缓冲区

UDP发送成功现象

UDP传输总结

1.发送

2.接收


网络存在的问题

在网络中的变数很多,因为要经过的传播路由太多,最后得到的数据也不一定能完整。

网络传送的不可靠

1.发送了数据,对方不一定能收到

2.不能严格按照发送的顺序被对方接收

网络不安全

1.我们发送的数据很有可能在途径路由时被查看,修改,窃听等等

2.可能会有人伪造我们发送的数据直接给别人

那么关于以上两点,就需要交给网络层以上解决

传输层的UDP

全名 User Datagram Protocol : 用户报文协议

UDP就是一个非常简单的传输层协议,只能完成传输层最基本的职责。

说UDP不可靠,真是因为他什么操作也没有,起不到保护作用。

UDP工作机制

我觉得老师的图非常好,所以我只在概念上做几点说明

先上图

UDP的报头(header),可以理解成就是快递单上的地址,一会儿再详细说明。

payload也就是数据内容,由应用层提供再由传输层打包

那么UDP的职责就是将应用层的payload打包,贴上标签,然后就往网络层发送,

至于到没到接收者手里,发送者无从知晓

应用层观察UDP的特点

缺点

不可靠,在上述的红字有所体现。

优点

无连接:不会一直占用服务器

面向数据报文:不会拆开数据包来看,不会因此破坏数据顺序结构和完整性

成本低:就是便宜

UDP Header结构

UDP的header放了双方的IP和端口,长度8个字节

图中为整个报文结构,UDP长度就是报文长度

payload就是除去header剩下的报文长度

checksum(校验和)

就像是验证完整性这么的一个东西,比如你steam下载完解压的时候你要验证文件对不对,网络发文件也要用。

多用于远距离通信,保证数据完整性和准确性。

当我发送的时候,我会把原始数据的checksum放在header中,等接收方一收到,会再计算出一个checksum,两个校验对比,不一样,那就证明数据被损坏或者修改过来。

UDP接收缓冲区

缓冲区概念

从应用层到数据链路层中,保存数据的区域都可以称为缓冲区,概念比较抽象

接收缓冲区

UDP没有发送缓冲区,只有接收缓冲区。

我们理解为,接收方的UDP接收到数据后,不需要立刻被应用层拿走,放在接收缓冲区默默等待即可,但如果应用层在接收缓冲区没有东西的时候去拿数据,又没有超时机制的话,就会死等了。

UDP发送成功现象

一句话,UDP只要把数据放到网上那就是发送成功了,收没收到跟我没关系

UDP传输总结

1.发送

1.从应用层先收到payload数据,相当于把应用层的内存数据拷贝到自己的内核内存区域

2.准备header部分:

1).源端口(socket里就有,也不用自己写)

2).目标端口

3).UDP长度

4).checksum

3.header+payload 就相当于 datagram

4.直接把打包好的datagram交给网络层发送

5.只要网络层发送成功(数据已经到达网卡)

6.通知应用层发送成功

如果接收方能收到,一定是原封不动完好无损的数据,这就是面向数据报文的好处

2.接收

1.将从网络层收到的包裹放到内核缓冲区

2.通过header定长,把包裹分解为header部分和payload部分 - 解包

3.读取header部分,包括端口,ip信息,checksum(校验和),长度等

4.长度不对直接扔,谁也不需要告诉

5.checksum(校验和)不对直接扔

6.把payload放到接收缓冲区

7.通知应用层数据到了

8.应用层来取

9.应用层一直不来,信息照样可以扔

网络协议详解 :UDP相关推荐

  1. nbns协议_网络协议详解1 - NBNS

    NetBIOS 简介 NetBIOS,Network Basic Input/Output System的缩写,一般指用于局域网通信的一套API,相关RFC文档包括 RFC 1001, RFC 100 ...

  2. TCP/IP网络协议详解

    一. 计算机网络体系结构分层 一图看完本文 计算机网络体系结构分层 计算机网络体系结构分层 Frame:   物理层的数据帧概况 Ethernet II: 数据链路层以太网帧头部信息 Internet ...

  3. 网站访问全过程涉及的网络协议详解

    从其浏览器中输入http://www.baidu.com,直到baidu的网站首页显示在其浏览器中,请你分析在此过程中,按照TCP/IP 参考模型,从应用层到网络接口层都用到了哪些协议,每个协议所起的 ...

  4. 【网络协议详解】——GNS3的使用(学习笔记)

  5. 【网络协议详解】——IPv6协议(学习笔记)

    目录

  6. java udp 协议_网络协议 - UDP 协议详解

    ¶ 网络协议 - UDP 协议详解 基于TCP和UDP的协议非常广泛,所以也有必要对UDP协议进行详解.@pdai ¶ UDP概述 UDP(User Datagram Protocol)即用户数据报协 ...

  7. Linux网络-UDP/TCP协议详解

    Linux网络-UDP/TCP协议详解 零.前言 一.UDP协议 二.TCP协议 1.应答机制 2.序号机制 3.超时重传机制 4.连接管理机制 三次握手 四次挥手 5.理解CLOSE_WAIT状态 ...

  8. 趣谈网络协议-第二模块-底层网络知识详解:2最重要的传输层

    趣谈网络协议-第二模块-底层网络知识详解:2最重要的传输层 1:第10讲 | UDP协议:因性善而简单,难免碰到"城会玩" TCP 和 UDP 有哪些区别? UDP 包头是什么样的 ...

  9. 网络-IP协议详解(报文格式、分类、NAT、子网、CIDR、抓包分析)

    目录 简介 报文格式 IPv4地址 分类 网络地址转换NAT 子网划分与子网掩码 CIDR 实战 参考 简介 IP(网际互连协议,Internet Protocol)是TCP/IP协议族中最为核心的协 ...

最新文章

  1. python时间处理模块 datetime time模块 deltetime模块
  2. 【转】txt中导入数据,matlab画图问题
  3. 如何分析EFCore引发的内存泄漏
  4. 参数传递机制之JWT
  5. ORA-23616:执行块5失败
  6. php 添加inotify扩展,php inotify 扩展的安装
  7. html 缓存 js文件缓存吗,如何为css / js文件设置缓存
  8. 360浏览器保存密码设置_电脑小技巧查看浏览器保存的系统账号密码
  9. 【回顾】推荐系统工程师技能树
  10. 我的前端笔记之 meta 篇
  11. 2018年计算机基础模拟试题,2018年大学计算机基础试题及答案
  12. 怎么注册开通个人微信小程序
  13. A wet night
  14. 独家首发成语类智力多玩法微信小程序源码下载好玩而又强大
  15. CorelDRAW 里面如何将文字调整成半透明的颜色
  16. Windows下的虚拟桌面软件——Virgo
  17. C++Builder:定时器Timer控件
  18. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
  19. 计算几何之求圆与直线的交点
  20. Druid关闭监控页面及设置密码

热门文章

  1. Matlab 希腊字母
  2. 【数据库问题】[08S01] Communications link failure
  3. 什么是BSP?理解LINUX BSP
  4. 越是好的品牌越应该早点做私域
  5. ASCII, LATIN1, UTF8 简介
  6. php视频压缩技术,PHP 实现文件压缩解压操作的方法
  7. C语言:计算机-加减乘除
  8. 平安集团的“快变”与“阵痛”
  9. 使用 Rest-Assured 测试 REST API
  10. 无线ap与无线路由器的区别