网络原理之UDP

hi,大家好,又见面了,今天为大家介绍一下UDP的网络原理
网络原理之UDP_第1张图片

文章目录

  • 认识UDP报文格式
    • UDP特点
      • TCP,UDP应用场景
      • 基于UDP的应用层协议

认识UDP报文格式

UDP特点

TCP,UDP应用场景

基于UDP的应用层协议

1.认识UDP报文格式
网络原理之UDP_第2张图片
网络原理之UDP_第3张图片

其实在真正传输的过程中,格式就是第二章图,每个端口号占2个字节,也就是16个比特位,取值范围是0-65535
网络层已经有了源IP和目的IP,那么源端口和目的端口是干啥的呢,是区分发送和接收的数据是从哪个程序的,在同一台主机上可以区分,在不同的主机上也能区分,举个现实的例子,来区分一下源IP,目的IP,源端口和目的端口
我从西边来,到东边买个菜去
这里的我就是源端口,菜就是目的端口
西边就是源IP,东边就是目的IP
端口号的取值范围是0-65535
<1024的端口,称为"知名端口号",这些知名端口号是给名气大的端口号用的
比如http服务器 :8080,ssh :22,ftp :21

报文长度
报文长度也是2个字节,65535,换算成64KB,这个容量其实是非常小的
使用UDP传输室数据的时候要注意UDP数据报不能太长,万一真的要传输一个比较大的数据,可以把一个大的数据拆分成多个部分,使用多个UDP数据报来传输,但是涉及到的封装分用次数太多了,很麻烦,所以直接用TCP,TCP没有限制

校验和
网络传输充满变数,传输过程复杂,网络路径也复杂,可能会出现传输错误
通过网线的电信号来传输,电信号使用高低电平表示0,1
如果外部环境干扰,比如遇到强磁场,强电场,就会导致高低电平的翻转,这个过程就叫做比特翻转,此时数据传输就出错了
因此就要设计校验和,校验和存在的意义就是用来判定一下,当前传输的数据是否出错
如果传输前和传输后的校验和对不上,那么数据一定不对
如果校验和对,数据也有可能不对,因为校验和是一个数字,可能数据个数对,但是内容可能是被替换了,为了解决问题,我们将数据内容作为参数计算数据内容发送变化,校验和也会变化
UDP的校验和算法是CRC算法,是一个简单粗暴的校验和算法,不作过多讨论,自己了解一下吧

2.UDP特点
我们再来复习一下
无连接
不可靠
面向数据报
全双工:UDP的socket既能读,也能写,这个概念叫做全双工

缓冲区

UDP只有接收缓冲区,没有发送缓冲区: UDP没有真正意义上的
发送缓冲区。发送的数据会直接交给内核,由内核将数据传给网络层协议,进行后续的传输动作.
UDP具有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致;如果缓冲区满了,再到达的UDP数据就会被丢弃
这个和TCP不一样,TCP的缓冲区会进行整队操作,然后保证顺序执行

3. TCP和UDP应用场景
TCP用于可靠传输的情况,比如应用于文件传输,重要状态更新等场景;
UDP用于对高速传输和实时性要求较高的通信领域,例如,学校机房广播上课
注意!
UDP可以实现广播
TCP不能实现广播
广播和群聊不一样
广播是不知道对端IP,群聊是一个一个遍历用户IP,挨个转发

4基于UDP的应用层协议
NFS:网络文件系统
TFTP:简单文件传输协议
DHCP:动态主机配置协议
BOOTP:启动协议(用于无盘设备启动)
DNS:域名解析协议
网络原理之UDP_第4张图片
今天内容比较简单短小,下期我们介绍TCP,就比较有难度了,我们下期见,拜拜~

你可能感兴趣的:(java,网络协议,udp)