• 网络原理 --- 传输层Ⅰ UDP协议



    网络原理

    介绍TCP/IP协议中每一层里面的核心内容~

    • 应用层
    • 传输层
    • 网络层
    • 数据链路层
    • 物理层

    传输层

    传输层主要负责端到端之间的传输,重点关注的是起点和终点

    核心的协议有两个:

    • UDP: 无连接 ,不可靠传输,面向数据报,全双工
    • TCP : 有连接,可靠传输,面向字节流,全双工

    UDP 协议

    UDP协议:

    所谓的学习协议,很大工作就是在理解协议的报文格式~~

    UDP报头格式非常简单,里面只有4个字段~

    为什么能使用的端口是 0-65535 ?
    在传输层协议中,表示端口号,长度就是 2 个 字节~
    在这里插入图片描述

    但是64kb太小了,如果需要使用UDP传输一个比较大的数据,就需要考虑进行拆包!!

    💙拆包:

    把一个大的数据报,拆成多个小的~

    🌰举个例子:
    随着业务的发展,网页上的广告越来越多,广告的样式也越来越复杂,这就导致,商搜服务器和入口服务器之间传输的数据量越来越大~ 直到单个数据报长度已经接近64kb了~
    但是在应用层代码这里,针对广告数据拆包,拆成多个UDP数据报,分别传输,开发起来会比较复杂,测试起来也比较复杂,风险较高~

    真正的解决问题方案:

    直接使用 TCP !
    TCP 是字节流的,没有对包的长度做出限制~

    在这里插入图片描述

    🎠校验和: 检查数据是否出错了~

    网络传输过程中,受到一些干扰,是容易导致传输的数据出错的~

    毕竟光信号和电信号,在一些特殊环境中可能受到影响~
    比如 强电场,强磁场等
    因此就需要保证接收方收到数据之后,能知道这个数据是否正确

    校验和 :

    UDP的校验和使用一个比较常见的 CRC算法(循环冗余校验)
    UDP报文中的每个字节,都进行累加,加和也放到一个两个字节 的数字中
    加的过程中如果溢出了,不需要处理~~
    最终得到的结果,就是校验和

    发送方发送的时候,就先计算一个校验和~

    接收方接收的时候按照同样的规则,再算一遍校验和,检查自己算的校验和和发送方算的校验和是不是一样,如果是,说明数据没问题,如果不是,说明数据出错了

    校验和例子:

    飞雪连天射白鹿,笑书神侠倚碧鸳

    总结

    在这里插入图片描述

    你可以叫我哒哒呀
    本篇到此结束
    “莫愁千里路,自有到来风。”
    我们顶峰相见!
  • 相关阅读:
    【python函数】torch.nn.Embedding函数用法图解
    产品经理的API文档阅读指南
    Matlab生成c代码,生成dll被Labview调用
    python进程池和线程池
    Oracle中instr,rtrim,XMLPARSE,XMLAGG,GETCLOBVAL函数的使用
    docker安装
    一文学会Spring JDBC 使用
    面试官:React怎么做性能优化
    算法-动态规划-最长递增子序列
    奥克斯空调红外遥控信号编码协议的分析,STC51单片机读红外程序
  • 原文地址:https://blog.csdn.net/m0_58437435/article/details/127446851