作为一名Wi-Fi研发工程师,排除网络故障问题是很常见的。那么如何获得操作技能呢?让我们一步步从协议的基础知识开始。协议规范、协议栈源码分析、调试方法、日志分析……让我们一点一点开始吧~
接续我之前的文章《TCP/IP(五)——我想这会给你一个通俗易懂的IP解释》,我会继续分享这篇文章。
5 IP协议相关技术
IP 是一种网络协议,其目的是将数据包传送到目标主机。完成此过程需要哪些步骤?(1、2、3 次以上)
(1) 必须完成目标主机的IP MAC地址解析。
(2)发送数据包时的异常处理函数。
5.1 IP协议是否可以完成以上所有工作
前四篇文章介绍了,当应用程序发送数据包时,必须经过传输层、网络层、数据链路层、物理层的封装才发挥作用;我是这么理解的。各种任务。例如,传输层根据端口进行传输,网络层根据IP地址进行传输,数据链路层通过MAC地址进行传输,物理层主要负责数字信号和电信号的转换。一个很明显的例子就是在终端中运行ping www.baidu.com命令来说明它只依赖于IP协议。来自服务器的响应(1、2、3时间向上)(1)会话层:首先,服务器不知道该字符串代表什么,因此它必须通过DNS解析IP地址,并发送一个HTTP。到此IP 地址的会话。
(2)传输层:系统为这个数据包分配端口号,向接收者发起请求,建立socket连接,发送到网络层。
(3)网络层:添加网络层头。网络层收到数据包后,查找路由表,并将数据包转发给接收端。当然,这可能需要多次转移。发送到路由侧的数据链路层。
(4)数据链路层:添加数据链路层报头,通过邻居协议ARP(arp request/reply)/ipv6邻居协议(NS/NA)找到接收方/发送方对应的MAC地址。
(5)物理层:数据包通过传输介质发送到空中接口,直至到达接收端。
相关协议:
(1)应用层
http – www 访问协议。
(2)传输层
TCP – 通过HTTP 提供可靠的数据传输。
UDP——音频和视频流的传输,包括DNS,也是基于UDP的。
(3)网络层
Icmp – 链路传输质量控制、延迟、MTU 路由发现、错误检查、链路可达性等。
DNS – 提供域名和IP 之间的转换和网络验证。
ARP – 提供IP 地址和MAC 地址之间的转换。
.
因为我们知道发送数据包需要多个协议的协调,所以本章简单总结了各个协议的细节。
5.2 DNS
DNS 请求:
DNS 响应:
DNS 的主要功能是将罗马字母和点的字符串转换为计算可识别的IP 地址。 DNS协议也可以应用于IPV4IPV6。
5.2.1 为什么需要DNS协议
请尝试想象一下。如果没有DNS协议,如果你想访问服务器或主机,你的网络拓扑中有很多机器,你就必须输入相应的IP地址。每个人都必须有一个名为“新华词典”的IP,但目前只输入主机名/域名更方便。
5.2.2 DNS域名系统的作用
目前端到端通信过程只有两种方法:使用IP地址或使用主机名。由于IP 地址很难记住,因此使用主机名进行通信。 DNS 服务器转换该主机域名。 IP地址;
在Linux系统上,通常可以使用nsloopup查询IP地址-MT:~$ nslookup www.baidu.comServer: 127.0.0.53Address: 127.0.0.53#53
未经授权的答案:www.baidu.com 规范名称=www.a.shifen.com.Name: www.a.shifen.comAddress: 220.181.38.150Name: www.a.shifen.comAddress: 220.181.38.149Name: www.a.shifen.comAddress 3336 0 240e:83:205:58:0:ff:b09f:36bf 名称: www.a.shifen.com 地址: 240e:83:205:5a:0:ff 3336 0b 05f:346b
5.2.3 互联网DNS域名树结构
上图显示了DNS 服务器层次结构的一部分。从上到下:根域名服务器、顶级域名服务器、权威域名服务器。域名和IP地址之间的映射关系必须存储在域名服务器上,以便所有其他应用程序可以查询。显然,并非所有信息都可以存储在一台名称服务器上。 DNS 使用分布在世界各地的域名服务器将域名转换为IP 地址。
域名服务器可分为四种类型:
根域名服务器:根域名服务器是顶级域名服务器。每个根域名服务器都知道所有顶级域名服务器的域名和IP地址。互联网上共有13个根域名服务器,IP地址各不相同。当本地域名服务器向根域名服务器发送查询请求时,路由器将查询请求消息转发给距离DNS客户端最近的根域名服务器。这加快了DNS 查询过程并更有效地利用互联网资源。
顶级域名服务器:这些域名服务器负责管理在该顶级域名服务器上注册的所有二级域名。当收到DNS查询请求时,返回相应的响应(可能是最终结果,也可能是下一级权威域名服务器的IP地址)。
权威名称服务器:这些名称服务器负责管理特定区域内的域名。每个主机的域名必须在认可的域名服务器上注册。因此,权威的域名服务器知道其管辖的域名与IP地址的映射关系。另外,权威域名服务器还知道其下级域名服务器的地址。
本地域名服务器:本地域名服务器不属于上述域名服务器层次结构的一部分。当主机发送DNS请求报文时,该报文首先被发送到该主机的本地域名服务器。本地域名服务器充当代理并将消息转发到上述域名服务器层次结构。本地域名服务器距离您的用户相对较近,通常在几个路由器内。或者它们可能位于同一个LAN 中。本地域名服务器IP地址必须直接配置在需要域名解析的主机上。
5.2.3 DNS域名解析过程
DNS域名解析有两种方法:递归查询和迭代查询。
递归查询:
递归查询是指本地主机尝试访问服务器资源,而本地域名服务器不知道要查询的服务器域名对应的IP。下面的图表显示了这一点:
迭代查询:
迭代查询与递归查询的区别在于,当DNS请求到达DNS服务器时,如果该级DNS服务器找不到目标IP地址,则每一级DNS域名服务器都不会发送该DNS请求。将推荐的DNS域名服务器返回给上层,主机向上级推荐的DNS服务器发起请求,直至查询到目标IP地址。
5.2.4 DNS主要记录
IP到域名的映射只是DNS系统的一部分。 DNS域名系统管理的信息还包括:
5.3 ARP
ARP,也称为地址解析协议,用于获取设备IP 对应的MAC 地址。 ARP仅适用于IPv4,IPv6对应的寻址协议是ICMPv6。
5.3.1 ARP报文格式
ARP 包括两种报文类型:arp 请求和arp 响应。
//ARP请求
//ARP响应
5.3.2 ARP是如何获取到对端MAC的
这是一个图表来解释这一点。
请注意,arp 请求是广播数据包,arp 响应是单播数据包。
5.3.3 ARP缓存
从上面我们可以看出,ARP协议在发送数据包之前会获取接收者的MAC地址。之后每次发送数据包都需要发送ARP,这显然增加了网络流量。传输效率很低。因此,通常需要将获取到的IP地址到MAC地址的映射关系在缓存表中保存一定时间,并在下次发送数据包时重新发起请求。不过这个缓存表只能保存一定时间,过了一段时间就会被重新请求。
当发送方发送arp而接收方没有响应时,重试次数通常会写入设备节点cat /proc/sys/net/ipv4/neigh/wlan0/ucast_solicit(广播)cat /proc。 /sys /net/ipv4/neigh/wlan0/mcast_solicit(多播)
5.3.4 ARP协议的必要性
我们将解释ARP的必要性,它连接IP和数据链路层,实现IP-MAC搜索。
问题- 如果我发送一个没有IP 或MAC 的数据包,它能到达目标主机吗?
用这张图来回答这个问题。
首先,如果PC1不需要IP地址来向PC2发送数据包,那么当设备PC1向PC2发送数据包时,在路由器获知MAC地址之前,数据包应该发送给谁?路由器可以选择将数据包发送给世界上的任何用户,并在了解所有MAC 地址后将其保留在路由表中。这样会产生大量的流量,浪费系统资源。
其次,如果PC1向PC2发送数据包时没有MAC地址,则当PC1向PC2发送数据包时,PC1只有IP地址。当数据包到达Route1时,它不知道下一条路由(nextroute)。该路由有一个MAC 地址(DA mac),它可能会将数据包发送到所有设备,但这也会导致流量浪费。
因此,IPMAC是必不可少的。
让我们根据上图中空数据包的实际捕获来看看这个过程。
5.4 ICMP
5.4.1 ICMP扮演的角色
根据上一篇文章的分析,我们发现ICMP可以用于MTU路由发现。本章重点介绍ICMP 的用途。
(1) MTU根发现。我们在4.4.3中分析了具体特征。忘记的同学可以回去查看。
(2) 检查IP数据包是否正确发送,如果没有成功到达,则发送ICMP数据包通知具体原因。
(3)网络质量检测。使用ping 延迟来确定网络是否开放以及干扰量。
(4)设备软件是否有问题(比如用ping来测试设备软件的RX性能的稳健性)?在这个话题上,小编思考了如何识别导致ping问题的软件原因。稍后我将把它放在一个单独的主题中(Wi-Fi 兼容性)。
(5) Toolknife,如果你把你的网络结构想象成一个巨大的电路设计,如果某个地方出现了电源问题,你可以使用ICMP数据包来检查它。这个比喻的目的是提醒大家ICMP的作用。包可以用在日常开发过程的各个方面,例如接收网络消息和查看ICMP 数据包时。首先解释其上下文以确定其功能。
下面是当IP数据包没有成功传送到目标机器时的错误通知机制的示例。
5.4.2 ICMP消息类型
ICMP 目标不可达消息(类型3)
当路由器无法将IP数据包发送到目标地址时,该消息返回给发送者。实际上,最常见的消息是代码1(主机无法访问)。这意味着目标地址不存在目标主机。路由表或目标主机无权访问网络。消息4(需要分段,未配置分段)是路径MTU 发现,如第4.4.3 节中所述。
还有其他几种消息类型,但我们在这里不会单独讨论它们:实际开发中,当好友收到消息时,您可以暂时保留消息。
5.5 DHCP
DHCP(动态主机配置协议)是一种动态地址分配协议,可以实现为每个主机分配IP地址的协议,并且适用于IPV4和IPV6。
5.5.1 DHCP优势 – 即插即用
DHCP服务器可以主动为每台主机分配IP地址。
5.5.2 DHCP工作机制
客户端设备如何从DHCP 服务器获取IP 地址通常,DHCP 分配IP 地址有两种方式。
(1) DHCP服务器选择一个特定的IP并将其分配给该IP。
(2)将固定的MAC分配给特定的MAC地址。
//DHCP整个过程
如果您觉得读完本文有所收获,请关注编辑部公众号,继续一起前进。
以上#TCP/IP(6)相关内容来源仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92932.html