有关于UDP

网络原理:

一:  应用层

与应用程序相关 --- 不同的应用程序有不同应用层协议
自定义应用层协议:

考虑在客/服之间传什么信息 [需求]

考虑信息/数据什么格式组织 [需求]

但是这种自定义太过于灵活,所以有一些特定的数据传输格式,基于这些传输数据

介绍

结束标签

HTTP

是一个标签化的语言,类似XML

xml的标签是自定义

html的标签是约定好的

分隔符和长度

XML

典型,古老

格式很有特点-通过“标签”形式组织键值对数据

; 分隔符

JSON

相当于XML的替代品

与语言无关的数据组织格式

} 分隔符

protobuffer

上面两个都带宽高,效率下降,

高效组织数据-(谷歌)(数据格式&库)(操作这种格式的数据)

但是为二进制的,不方便看

通过声明长度来确定边界

这个表的内容不做过多的介绍,只是在这里列出一个纲,详细展开来说,有点long

二: 传输层

端与端之间的传输 -- 重点关注起点和终点
核心协议有两个:UDP,TCP

UDP

无连接

不可靠连接

面向数据报

全双工

TCP

有连接

可靠连接

面向字节流

全双工

UDP协议详细介绍:

先给你们看一个UDP协议的报文格式:

 

在详细一点:

源端口

2个字节

发件人

目的端口

2个字节

收件人

UDP长度

2个字节

0~65535

校验和

2个字节

检查数据是否出错了 (2)

UDP载荷

一个完整的应用层的数据报

1)

  • 2个字节-> 0—65535 ->
  • 这个大小现在不够用,so->如果使用UDP传输一个比较大的数据,就需要考虑进行拆包,把一个大的数据报,拆成多个小的~~ ->
  • 那这考虑的事情就很多了~,比如拆成三个发送,不一定按顺序到 -> 用TCP~~

2)

  • 网络传输中, 受到一些干扰, 是容易导致一些传输数据出错的->
  • 使用CRC算法, (循环冗余校验) -> 检验一下
  • 把UDP报文中的每个字节,都进行累加,加和也放到两个字节的数字中(如果溢出就溢出),最终的结果就是校验和~
  • 发送方发送的时候,就先计算一个校验和,接收方按照同样的规则,再算一遍校验和,来看一下自己算的校验和 和 发送方的校验和是不是一样~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值