首页 > 其他分享 >计算机网络--常用协议

计算机网络--常用协议

时间:2023-02-08 09:57:27浏览次数:36  
标签:ARP 常用 -- 8.8 MAC 计算机网络 地址 ms ICMP

ARP协议

ARP协议是位于数据链路层的地址解析协议(Address Resolution Protocol)是通过解析IP地址得到MAC地址的一个TCP/IP协议。

主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

TCP/IP分层结构中,把ARP划分为网络层

数据链路层在进行数据封装时,需要目的MAC地址

 

E2|ARP

以太网首部:以太网目的地址(6B)|以太网源地址(6B)|帧类型(2B)

以太网ARP字段:

ARP首部:硬件类型(2B)|协议类型(2B)|硬件地址长度(2B)|协议地址长度(1B)|操作(2B)

发送者硬件地址(6B)|发送者IP地址(4B)|目标硬件地址(6B)|目标IP地址(4B)

ARP协议包主要分为 ARP 请求包和 ARP 响应包。

  1. Address Resolution Protocol (request):ARP 请求数据包结构 发送=ARP请求=广播

sender-IP: 发送者的IP地址

sender-MAC: 发送者的MAC地址

target-ip: 在发送 ARP 广播时,为全 0 (00:00:00:00:00:00)。 为获得某个IP地址的MAC地址。先进行广播

target-mac: 目标端 IP 地址。

E2封装:

D-MAC:全F 广播

S-MAC:自身MAC


  1. Address Resolution Protocol (reply):ARP 回复数据包结构 回复=ARP应答=单播

sender-ip: 发送者的IP地址

sender-mac: 发送者的MAC地址

target-ip: ARP请求中的源地址变为ARP应答中的目的地址

target-mac: 目标端 IP 地址。

E2封装:

D-MAC:来源MAC 单播

S-MAC:自身MAC

回复后就能够获取到目的地的MAC地址


同一个广播域的主机通信依赖于MAC地址。所以通信之前会先在网络上发一个广播,询问对应IP地址的MAC地址。发送方就拿到了接收方的MAC地址,进而完成通信。

通过ARP广播(泛洪)获取MAC地址,接收方单播回复,广播方获取到MAC地址并加入缓存中。

广播地址:FF:FF:FF:FF

  • 广播域:广播报文所能传递的范围

  • 交换机的所有端口同一个广播域,(不划分vlan的情况下)

  • 路由器每个接口都是一个广播域,(不划分vlan的情况下) 广播报文是无法穿越路由器的三层接口的

 

如果目标的IP地址不在同一个广播域,必须通过网关(gateway)来中转,所以会在与网关直连的网卡上请求网关的MAC地址。网关收到目标地址的应答后将建立新的ARP表项并将开始维护ARP缓存表,然后完成最终的通信。

 

 

ARP缓存表

ARP协议引入了ARP缓存表的概念,每台主机或路由器在维护着一个ARP缓存表(ARP table),这个表包含IP地址到MAC地址的映射关系,表中记录了对,他们是主机最近运行时获得关于其他主机的IP地址到MAC地址的映射,当需要发送数据的时候,主机就会根据数据报中的目标IP地址信息,然后在ARP缓存表中进行查找对应的MAC地址,最后通过网卡将数据发送出去。

ARP缓存表包含一个寿命值(TTL,也称作生存时间),它将记录每个ARP表项的生存时间,生存时间到了就会从缓存表中删除。从一个表项放置到ARP缓存表中开始,一个表项通常的生存时间一般是10分钟吗,

建立ARP表项。 以我们的电脑为例,在开机的时候,我们的电脑肯定是没有ARP表项的(或者应该说只有路由器的ARP表项,因为可能是动态获取IP地址

 

动态ARP缓存 ------老化时间

如果在ARP缓存中没有查询到该IP-MAc映射,则发送ARP广播帧进行ARP请求

如果向外网段发送消息,先向ARP表查询是否有网关的地址映射。没有则向网关地址发送ARP,获取网关的MAC地址。

 arp -a  #查看ARP表项

正向ARP

已知IP获取MAC

(RARP:Reverse Address Resolution Protocol):反向地址转换协议

已知MAC获取IP

 

arp绑定 通常是为了安全和管理

 

无故ARP

Gratuitous ARP不同于一般的ARP请求,它并非期待得到ip对应的mac地址,而是当主机启动的时候,将发送一个Gratuitous arp请求,即请求自己的ip地址的mac地址。

指主机发送ARP查找自己的IP地址。通常,它发生在系统引导期间进 行接口配置的时候。

免费ARP可以用来探测IP地址是否冲突。

重复地址检测DAD(Duplicate Address Detect)是在接口使用某个IPv6单播地址之前进行的,主要是为了探测是否有其它的节点使用了该地址。

IPV4每次获得一个单播地址都要发送广播GARP(免费ARP,无故ARP),进行重复地址检测,确认无人使用后在使用次地址。

此时发送的报文,源MAC目的MAC都是自己。如果广播域中没有人回复,则没有冲突。反之冲突。

如果没有手动更改,则会一直发送免费ARP。会有重复的报文在网段中泛洪。

 

 

ARP代理

同─网段、不同物理网络上的计算机之间,可以通过ARP代理实现相互通信。

 

 

ICMP

ICMP(Internet Control Message Protocol)Internet控制报文协议,它是网络层的一个重要协议。用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息

Ping——检测链路通断到目的地设备连通性

ICMP协议用来在网络设备间传递各种差错和控制信息

  • ICMP用来传递差错、控制、查询等信息。

  • 是一个测试协议,测试联通性。从网络层开始

  • 有来有回,会发送一个ICMP Echo Request 请求报文,请求返回 ICMP Echo Reply

  • ICMP无回复,ping不通

    • 请求超时

    • 数据不可达,无法访问目标主机

 C:\Users\su>ping 8.8.8.8
 正在 Ping 8.8.8.8 具有 32 字节的数据:
 来自 8.8.8.8 的回复: 字节=32 时间=20ms TTL=114
 来自 8.8.8.8 的回复: 字节=32 时间=20ms TTL=114
 来自 8.8.8.8 的回复: 字节=32 时间=20ms TTL=114
 来自 8.8.8.8 的回复: 字节=32 时间=21ms TTL=114
 ​
 8.8.8.8 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
 往返行程的估计时间(以毫秒为单位):
    最短 = 20ms,最长 = 21ms,平均 = 20ms
     

时间:数据来回时间

TTL:Time to Love 生存时间,一个路由一跳,默认一般是225,每经过一个路由减1,防止回环,到0被放弃

 

Tracert路由追踪

TTL值为0时将不转发,直接回复主机,主机TTL=0返回获取封装的IP地址

先发一个TTL=1,获取第一个路由地址

再发一个TTL=2,获取第二个路由地址

再发一个TTL=3,获取第三个路由地址,以此类推,一直到达目的地址,目的地址也会返回一个信息

TTL也使用ICMP封装,类型为11,编码为0

 tracert -d 8.8.8.8   // -d 取消域名解析
 C:\Users\su>Tracert 8.8.8.8
 通过最多 30 个跃点跟踪
 到 dns.google [8.8.8.8] 的路由:
   1     2 ms     2 ms     4 ms  192.168.0.1 [192.168.0.1]
   2     4 ms     3 ms     4 ms  192.168.1.1 [192.168.1.1]
   3     5 ms     4 ms     4 ms  100.64.0.1
   4     6 ms     6 ms     5 ms  58.20.126.241
   5    26 ms    25 ms    26 ms  119.39.126.113
   6     *       *       *     请求超时。
   7    20 ms    24 ms    22 ms  219.158.8.114
   8    19 ms    22 ms    21 ms  219.158.97.29
   9    21 ms    21 ms    21 ms  219.158.16.246
  10    27 ms    30 ms    29 ms  72.14.213.114
  11    21 ms     *      21 ms  108.170.241.1
  12    21 ms    20 ms    22 ms  209.85.143.37
  13    21 ms    19 ms    20 ms dns.google [8.8.8.8]
 跟踪完成。

请求超时,但任然会转发

默认尝试5次ping,如果某次ping通了,将返回访问的IP地址。

加速器原理,改变了网关地址

 

ICMP报文结构

Type(8B)、Code(8B)、Checksum(16B)

Type:类型,Code:标识,Checksum:检验

类型编码描述
3 0 Echo Reply
0 0 网络不可达
3 1 主机不可达
3 2 协议不可达
3 3 端口不可达
5 0 重定向
8 0 Echo Request
11 0 TTL超时

 

当网络设备无法访问目标网络时,会自动发送lCMP目的不可达报文到发送端设备。

ICMP Echo Request和ICMP Echo Reply分别用来查询和响应某些信息,进行差错检测。

ICMP从上到下越来越精确

错误消息类型:

网络不可达 :无法通过路由转发抵达主机

主机不可达: 源主机已经能够到达目的主机的网络,节点没法找到目的ip,查询目的ip的mac地址失败,目的主机的无法到达,返回一个错误消息目的主机不可达

协议不可达: 已经找到主机,对方的协议未开启,访问失败

端口不可达: 未开放对应端口,端口不可达

重定向: ICMP报文会把下一跳的地址发送给主机

 

ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据包向它的目的地转发。

发生ICMP重定向通常有两种情况:

1)当路由器从某个接口收到数据还需要从相同接口转发该数据时;

2)当路由器从某个接口到发往远程网络的数据时发现源ip地址与下一跳属于同一网段时。

跨网段访问需要通过网关,网关查询发现需要再次从原来的接口转发。此路由是次优路径,路由会给主机发送ICMP重定向报文信息封装地址给主机。

重定向路由是动态时效,重启后失效,如果设置静态才会永久保存。


对于网络设备,禁止发放ICMP报文。回复ICMP报文会暴露回应方的IP地址信息

多路径探测

从路由的多个端口,向外发包,以TLL递增的形式,获取路由经过的地址

 

标签:ARP,常用,--,8.8,MAC,计算机网络,地址,ms,ICMP
From: https://www.cnblogs.com/xuanstudy/p/17100596.html

相关文章

  • SecureCRT--解决Key exchange failed.No compatible key-exchange method
    简介    本文介绍SecureCrt连接Linux的报错问题:Keyexchangefailed.Nocompatiblekey-exchangemethod问题复现我在使用SecureCrt连接Linux时,报了如下错误:K......
  • 配置Freeswitch(mod_unimrcp)与百度Mrcp Server实现实时语音识别(ASR)
    前面我们已经搭建好了百度MrcpServer服务器,接下来我们将Freeswitch与unimrcpserver两者连接起来,配置百度unimrcpserver的文章大家去这里看一下:搭建百度MrcpServer与Fr......
  • Grafana 系列文章(十一):Loki 中的标签如何使日志查询更快更方便
    ......
  • Nordic DFU
    想要讲清楚一个技术,必然需要从搜索资料开始!https://devzone.nordicsemi.com/guides/short-range-guides/b/software-development-kit/posts/getting-started-with-nordic......
  • Unity学习路线
    【第一阶段】01Unity3D基础操作02C#语言基础03PS图像简单处理04Unity3D界面UI(UGUI或NGUI)05Unity3D动画系统(Mecanim和DOtween)06Unity3D图形数学(点乘、欧......
  • freeSwitch入门
    简单使用windows安装FreeSwitch自己的电脑系统是xubuntu22.10UbuntuKineticKudu(developmentbranch)版本,linx安装FreeSwitch需要自己编译安装,里面安装编......
  • 删除子文件夹
    你是一位系统管理员,手里有一份文件夹列表folder,你的任务是要删除该列表中的所有子文件夹,并以任意顺序返回剩下的文件夹。如果文件夹 folder[i] 位于另一个文件夹 f......
  • CANFD 传输速率分析
    https://my.oschina.net/u/2252538/blog/3191024 CAN-FD:英文为CAN with Flexible Data-Rate,翻译为【可变速率的CAN】 BRS(Bit Rate Switch)位速率转换开关......
  • Unity3D入门基础知识
    一、基础概念1、物体与空物体物体(GameObject),其实是一个节点或容器。一般所谓的“物体”,即有形状的东西,对应的Mesh,网格信息代表了物体(形状)。空物体(EmptyObject),即空对象......
  • 登录案例需求和分析
    登录案例需求用户登录案例需求:1.编写login.html登录页面username&password两个输入框2.使用Druid数据库连接池技术,操作mysql,day14......