网络基础(3):UDP、多播、DNS

一、UDP:
面向数据报的传输协议,进程的每个输出都产生一个UDP数据报,而TCP程序产生的数据会根据MSS进行重组或者拆分,不提供可靠性
在这里插入图片描述
长度:UDP报文的长度
校验和:覆盖首部和数据,由于UDP数据报可能为奇数,因此计算的时候需要填0,还会用到IP首部里面的部分,为0说明发送端没有计算检验和
在这里插入图片描述
IP分片:
一个主机会有多个网卡,发送IP报文首先判断哪个网卡发送,并且获取MTU,比较IP数据大小和MTU的比值,需要则进行分片,每个分片除了最后一个数据段总是8的倍数,运输层(TCP、UDP首部只会出现在第一个分片),丢失了其中一片数据也要整个数据报重传
在这里插入图片描述
为什么除了第一个分片之后的其他分片不需要UDP首部:
因为分片和重组在IP层进行,重组的时候不需要知道端口号,重组成完整的UDP报文后由传输层接收,再传到指定端口号

如何确定MTU:利用ICMP返回不可分片差错报文
开始的报文大小设为某个值,当路由器收到该报文,且该报文大于该链路的MTU,则会返回ICMP不可分片报文。若返回了下一个MTU,则使用该MTU,否则使用最接近现在使用的MTU的MTU。

ARP泛洪:高速率发送同个IP的ARP请求
IP分片分成5个片,这些片的目的IP相同,5个IP包会同时发送ARP申请mac地址,得到mac地址后,只会发送最后一个IP分片,每次都会发送最后一个报文。第一个数据报到达的时候会启动计时器,如果超时还没有接收到全部的报文,就会丢弃接收到的报文。

二、广播:
协议栈对数据帧的处理:
在这里插入图片描述
接口卡仅接收目的mac地址为本身的主播、广播,并进行校验
设备驱动进行帧过滤,对于单播和广播判断协议类型,对于多播判断本身地址是否属于多播的地址组(因此多播效率高一点)
IP会进行首部校验
UDP会根据目的端口去判断该端口是否有程序监听,没有的话返回ICMP差错报文(广播报文在这一步丢弃)

多播:
在这里插入图片描述
多播IP地址映射为mac地址:
在这里插入图片描述
存在多个多播IP映射成同一个mac地址,因此接口卡会接收不想接收的IP(对应的mac相同),需要在设备驱动程序进行IP地址确认。

三、DNS域名系统
主机会生成DNS报文并封装在UDP报文中,根据配置文件中的名字服务器的IP,将该报文发送给对应的服务器,若对应的名字服务器中没有存储对应的IP,则会递归地通过根服务器或者其他服务器来获取相对应的IP,完成域名->IP的转换

在名字服务器上存储的域名类似一个树结构,如果是IP查询类型,会根据从www.baidu.com.从尾部开始查询。如果是指针查询192.168.32.1,则实际上查询的是1.32.168.192.in_addr.arpa.也会从尾部开始查询
在这里插入图片描述
报文格式:
在这里插入图片描述
**标识:**由客户端进行设置,服务器返回结果(两个相同),客户端可以验证响应与查询是否匹配
标志:
在这里插入图片描述
QR:0表示查询报文,1表示应答报文
opcode:0标准查询,1反向查询,2服务器状态请求
AA:表示授权回答,直接回答是授权,从缓存中返回值来回答不是授权回答
TC:表示截断的
RD:期望递归,如果申请的本地服务器没有对应的IP,本地服务器就会帮助去其他服务器寻找对应的IP
RA:可用递归
rcode:返回差错
**后4个16字节表示:**可变长度
查询问题:
在这里插入图片描述
查询类型为指针查询可以查询IP对应的域名。

查询名:
在这里插入图片描述
后三个字段采用了RR(资源记录):
在这里插入图片描述
域名:资源数据对应的名字,格式和查询名相同
生存时间:表示资源数据在客户端中存活的时间

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值