深入理解网络原理2----UDP协议

本文介绍了UDP协议的校验和机制,以及其与TCP协议的区别,包括连接方式、可靠传输、数据传输模式和通信方向。CRC算法用于UDP数据包的错误检测。
摘要由CSDN通过智能技术生成


前言

随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同⼯作来完成业务,就有了⽹络互连。


一、UDP协议

协议段格式(简图)

在这里插入图片描述
在这里插入图片描述

校验和

校验和的作用:尝试检查当前传输的数据是否存在问题?是否出现了bit翻转?如果发现存在问题,就可以把这个错误的数据包丢弃掉,避免将错就错。

UDP中,校验和使用比较简单的CRC算法(循环冗余校验)来完成校验。
原理是:UDP数据报发送方,在发送之前,先计算一遍CRC,把算好的CRC值放到UDP数据报中(设这个CRC值为value1),接下来这个数据包通过网络传输到达接收端,接收端收到这个数据后,也会按照同样的算法再算一遍CRC的值,得到的结果为value2,比较这两个值是否一致,如果一致说明数据没问题,如果不一致,说明传输过程中发生了比特翻转。上述CRC算法,只要有一个bit位发生翻转,此时一定可以发现问题。如果两个/多个bit位发生翻转,有可能恰好校验和和之前一样(低概率事件忽略不计)。

二、UDP与TCP

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

有连接/无连接

此处连接”不是物理意义的连接,而是抽象,虚拟的连接。
相当于打电话、拨号,直到对方接通,才算完成建立连接。TCP进行编程的时候,也存在类似的建立连接的过程。 像发微信、发短信,不论对方是否同意都能发过去,则不需要建立连接,就能进行通信。UDP进行编程时,则不需要进行连接。

可靠传输/不可靠传输

网络上存在的“异常情况”很多,无论使用什么样的软硬件的技术手段,无法100%保证网络数据能从A一定传输到B。此处的可靠传输是尽可能的完成数据传输,虽然无法确保数据到达对方,至少可以确认对方是否收到这个数据。则此处可靠传输,主要指的是发的数据到没到,发送方能够清楚感知到。

面向字节流/面向数据报

面向字节流:此处字节流和文件操作中的字节流完全一致,网络中传输数据的基本单位就是字节。
面向数据报:每次传输的基本单位是一个数据报(由一系列的字节构成特定的结构)。

全双工/半双工

全双工:一个通道可以双向通信。
半双工:一个通道只能单向通信。


最后,码字不易,如果觉得对你有帮助的话请点个赞吧,关注我,一起学习,一起进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值