[Linux网络_70] ARP协议 | RARP | DNS | ICMP协议

[复制链接]
发表于 2025-9-18 07:03:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目录
1.ARP协议
ARP 流程
ARP 哀求
ARP应答
总结
APR 中心人诱骗
2.DNS
开放式标题
3.ICMP协议
3.1ping下令
2.2traceroute下令

   先把标题本身解构,然后再谈细节
  

  • ARP 根据目标ip找并转化为mac的协议
  • RARP 根据目标Mac找ip
  • DNS  域名剖析
  • ICMP 检测网络通畅,发arp哀求包测试
  1.ARP协议



  • 固然我们在这里先容ARP协议, 但是必要夸大,
  • ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议
ARP数据报的格式

ARP协议是在一个局域网中,对一个生疏的主机,让路由器获取目标主机的MAC地点的协议。


  • ARP协议,根据目标IP地点,得到目标主机的MAC地点,得到对方主机的MAC地点之后,在发送MAC帧
  • 以是ARP协议的原理是什么呢?照旧先讲故事,然后画图明白。
举个栗子:
网络寻址过程类比(IP→MAC)

  • 脚色映射




    • 校长 → 外部网络
    • 张三老师 → 路由器
    • 课堂 → 局域网
    • 学号 → IP地点
    • 姓名 → MAC地点
    • 奖状 → 数据报文


  • 焦点流程
    ▩ 当校长(外部网络)下发奖状(数据报文)时,只标注学号(IP地点)
    ▩ 张三老师(路由器)在课堂(局域网)中广播询问:"12号同砚是谁?"(ARP哀求)
    ▩ 王五同砚(目标主机)举手回应:"我是12号,MAC地点是xx:xx:xx"(ARP相应)
    ▩ 张三老师创建「学号-姓名」映射表(ARP缓存表),后续可直接通过姓名(MAC地点)传递数据
  • 技能对应
  1. [!NOTE]
  2. "教室内的喊话" = ARP广播请求  
  3. "举手应答"     = ARP单播响应  
  4. "小本本记录"   = ARP缓存表(有效期约2分钟)  
  5. "校长发奖状"   = 网络层基于IP地址的通信
复制代码
从刚才得故事我们得到一个简单得结构,当得到一个数据报文想要交给目标主机的时间,我得先做一次根据IP地点得到MAC地点的过程。


  • 由于路由器收到一个千里迢迢来的数据报文,路由器只知道这个数据包要去的IP地点,并不清晰目标主机的MAC地点。
  • 路由器必须要知道目标主机MAC地点,由于路由器要把IP报文重新封装MAC帧。
  • 必须要添加源MAC地点和目标MAC地点,然后将MAC帧交付给目标主机。
下面详细相识ARP协议工作流程。


  • 假设主机1是一个路由器,实在它也是一个局域网中的设备,毗连一个外网,其中有数据从外网中转发到路由器中。
  • 现在路由器收到一个报文,这个报文只包罗它要去的目标IP,好比说IP7,但是路由器不肯定能认识整个局域网全部主机。
  • 以是大概它并不认识IP7,怎么办呢?
  • 不要紧,路由器在数据链路层封装一个ARP哀求,向局域网广播一条消息,我是主机1,在座各位谁是IP7,假如你是就把你的MAC地点给我。
  • 全部人都收到,但是只有主机7的IP地点是IP7,全部主机7把ARP哀求处理之后在相应一个ARP应答,我是主机7,我的IP地点是IP7,我的MAC地点是M7
  • 现在我告诉你了,我就直接发送给路由器。进而路由器知道IP7的MAC地点
然后把IP报文封装成MAC帧发给主机7。
总结:

  • ARP哀求阶段,先在局域网内广播
  • ARP应答,目标主机一对一发送给哀求方主机


ARP协议是在MAC帧上面的
以是MAC帧有效载荷里面不仅能包罗IP数据报文,也能包罗ARP哀求/应答


下面详细认识一下ARP报文的格式




  • 留意到源MAC地点、目标MAC地点在以太网首部和ARP哀求中各出现一次,对于链路层为以太网的情况是多余的,但假如链路层是别的范例的网络则有大概是须要的。
  • 硬件范例指链路层网络范例,1为以太网;
  • 协议范例指要转换的地点范例,0x0800为IP地点;
  • 硬件地点长度对于以太网地点为6字节(MAC地点长度);
  • 协议地点长度对于和IP地点为4字节(IP地点长度);
  • op字段为1表现ARP哀求,op字段为2表现ARP应答。
这里大概会有一些疑惑,为什么会有目标以太网地点,我为什么要发起ARP哀求,由于我不知道你的MAC地点是多少,当前不认识,那这个目标以太网地点填多少呢?


  • 以是在ARP哀求的时间并不知道对方MAC地点,但目标IP地点可以填。
  • 目以太网地点没办法填了,但不要紧,可以添补全F,代表你并不知道对方MAC地点是多少。以是一样平常用全F表现该字段并为设置概念。

ARP 流程

ARP 哀求

下面团结ARP数据包格式再来明白一下工作流程
ARP上面没有了,MAC帧大概把ARP哀求直接交给ARP,也有大概直接把数据帧直接交给IP


  • 现在一个数据包千里迢迢送到主机1(路由器),但主机1只知道数据包目标IP是IP7,它想把数据包发送给IP7,但是这个报文向下交付必须要颠末MAC帧要重新添加IP7对应的MAC地点,但是现在主机1并不知道IP7的MAC地点。
  • 以是上层网络层来发起ARP哀求,这个发起仅仅是调用了一下函数,不交给它数据。
构建好ARP哀求是把ARP哀求直接发送到网络中吗?


  • 并不是,固然ARP属于链路层,但是它实在是属于MAC帧协议的上层协议,以是ARP哀求发送到局域网中,必须将ARP向下交付到数据链路层的MAC帧协议。添加MAC帧的报头。形成MAC帧然后才气发送到局域网。这才是在网络中发送的ARP哀求。

细节


这个ARP哀求终极都会被局域网中的全部主机在MAC帧层全部都要收到, 标题是:收到之后要不要处理报文(解包+向上交付)呢?


  • 要!,由于这个目标MAC地点是全F,以是全部主机全部都能收到,收到之后这个MAC帧之后,提取MAC报头的目标MAC地点发它是广播的
  • 然后去掉MAC报头,根据帧范例0806向上交付给ARP。
以是结论是局域网内全部主机都要处理这个ARP哀求!
那交付给ARP之后,主机密先看ARP数据报谁人字段呢?先看目标IP?


  • 那就先看目标IP,发现这个目标IP和我本身IP地点不一样,就把这个哀求直接抛弃, 我如许干,局域网中全部不是目标IP7的全部主机如许干。
  • 在ARP层把这个哀求抛弃。

标题是:主机1大概向主机7发信息,注定主机1要知道主机7MAC地点。
主机7未来也大概向主机1发信息,全部主机7也大概要知道主机1的MAC地点。
以是主机7也大概向主机1发送ARP哀求,以是主机7大概

  • 收到ARP哀求
  • 曾经向别人发起过ARP哀求,以是别人也可以会主机7举行ARP应答
换句话说,任何一台主机收到一个ARP,大概是ARP哀求,大概是ARP应答。
我们发现MAC帧协议的筹划,ARP哀求和应答范例都筹划成0806.

以是先看目标IP主机,你怎么知道这个ARP是哀求照旧应答??


  • 以是先看目标IP不对!任何一台主机在举行ARP哀求时我们永世都是先看op,op是1分析是ARP哀求,然后再看目标IP,不是我就抛弃。
以是现在目标IP不是IP7的局域网中全部主机都先看op,发现op是1,分析是ARP哀求 ,然后再看目标IP不是我,就直接抛弃。


  • 主机7数据链路层先收到这个ARP哀求,发现目标MAC是广播的,以是报头和有效载荷分离,再看帧范例发现是0806,然后交给ARP。
  • 主机7先看op是1,分析是哀求,然后看目标IP是IP7,不就是说本身吗,发现MAC1向我发起哀求了。

ARP应答

接下来就是给MAC1 ARP应答。


细节


前四个字段稳定,op填2表现是ARP应答, 发送端MAC地点是我本身MAC7,发收端IP地点也是我IP7,目标以太网地点现在知不知道?


  • 当然知道,我现在是在做ARP应答,肯定是我曾经收到ARP哀求了,而哀求的时间对方早已经把它的MAC地点和IP地点给了我,以是目标以太网地点直接填MAC1,目标IP地点直接填IP1。
  • 至此构建好一个ARP应答。
  • 然后向下交付给数据链路层,添加MAC帧报头,这个时间已经知道给谁应答,知道对方MAC地点,IP地点等其他。直接在MAC帧报头填上即可。
如许MAC帧报头就填加好了。然后再发送到局域网中。

这个应答全部主机都能收到吗?都能!收到之后会不会做处理(对报文剖析后向上交付)?
不会!,由于主机在数据链路层判断时发现目标MAC地点不是本身就直接抛弃。最后只有主机1收到了。收到做报头和有效载荷剖析,发现目标MAC地点不就是我吗,然后帧范例是0806,然后将有效载荷交给上层ARP。
主机1先看op发现是2,分析是ARP应答,然后直接提取ARP中发送端MAC地点。 并且这个MAC地点对应的IP地点是IP7。自此主机1就得知了IP7所对应MAC地点是MAC7。自此完成一次ARP哀求和相应整个过程。

总结

以是ARP协议在整个局域网里,全部主机做法都一样,抓取数据包先看帧范例, 帧范例0806交给ARP,每一个主机在本身ARP层永世只先看op,先确认是哀求照旧应答,假如是哀求并且是给我的就给别人构建ARP相应,否则就抛弃。


  • 假如是应答就直接提取发送端以太网地点和发送端IP地点,构建对应关系,就知道对方的MAC和IP地点了。
  • 现在一个主机得到另一个主机的IP和MAC地点,那局域网上全部主机想要相互通信时,在通信之前都可以如许做得到对方MAC地点。
  • 以是回到刚才场景,数据包到达入口路由器主机1,但是入口路由器并不知道IP7的MAC地点是谁,以是举行ARP之后,现在知道IP7对应的MAC地点了,以是自此对IP数据包重新封装成真正的数据帧,帧范例是0800,然后发送给主机7。

现在我们在把整个网络发送拉通一下:


  • 当一个数据颠末路由选择到入口路由器处, 入口路由器只知道目标主机的IP地点
  • 我们能确定的是路由器里面配的有目标网络和子网掩码,而且对应的网络和路由器是直接相连的
  • 拿着目标主机的目标IP和路由器的子网掩码按位与,发现你这个主机肯定在这个局域网
  • 但是路由器只知道目标IP,不要紧在局域网内ARP找到你的MAC地点
  • 然后封装成数据帧,单向的交给主机D,就完成了找到目标网络和目标主机,数据就可以交付了。

难道整个网络就只会在最后入口路由器发生吗?


  • 刚开始的时间,主机A要把数据交给路由器A,那主机A大概不知道路由器A的MAC地点,只知道路由器A的IP地点,以是当主机A想转发一个数据包时,主机A也工作在网络层,也有本身的目标网络和子网掩码,从上面交过来的报文也有本身的目标IP
  • 以是在主机A在本身的路由表查的时间并不认识这个目标IP是谁,但是根据目标IP和子网掩码按位与,对比和本身直连的局域网发现两个目标网络不相当,立马判断我要发送的目标主机和我不再同一个局域网
  • 以是固然我不知道你在哪,但我知道谁知道,路由器知道。
  • 在我的路由表中也设置了下一跳路由IP地点,但是我并不知道路由器的MAC地点,以是封装ARP哀求得到路由器的MAC地点,然后封装成MAC帧交给路由器。
  • 路由器在转发的时间发现也大概去某个目标网络,找到下一跳路由器,但是也不认识下一跳路由器MAC地点
不要紧在路由器和路由器之间也可以ARP找到目标路由器。
以是ARP过程可以在网络通信过程中,陪同着网络通信不停在举行。


  • 其次一个局域网顶多上百台呆板,只要我有子网掩码那局域网全部大概的IP地点都能构建起来,以是作为一个路由器是不是可以简单粗暴向和我处在同一个局域网全部主机,全部发起ARP哀求,终极路由器不就得到了和我之间相连的全部主机的IP地点和MAC地点,以是在路由器中就可以或许知道周边全部主机的情况。
  • 由于有ARP的存在,以是允许路由器,假如是一堆路由器可以彼此发现,然后团结对应的IP地点构建出更加详细的网络转发路由表结构。

现在我知道主机D对应目标MAC地点了,下一次来的数据包去的照旧主机D,难道每一次都要举行ARP哀求吗?
ARP过程是一个稍微繁琐的过程,全部并不是,ARP的结果,会被暂时缓存起来的。


  • 第一次不认识,举行ARP,第二次直接查缓存表,就找到MAC地点直接发就行了。
    这个缓存,一是暂时,二叫缓存分析大概被抛弃。
  • 每台主机都维护一个ARP缓存表,可以用arp -a下令检察。缓存表中的表项有逾期时间(一样平常为20分钟),假如20分钟内没有再次利用某个表项,则该表项失效,下次还要发ARP哀求来得到目标主机的硬件地点


为什么会主动清掉?


  • 由于局域网中IP地点会变的,大概这个主机你关机了下次重新申请时IP地点就变了,以是IP和MAC地点映射关系就变了。
  • 假如你乐意大概网卡换了那MAC地点也就换了,如果永世性保存ARP缓存,那么这个主机换完网卡就大概永世上不了网了。
实在尚有一种情况,大概我们只知道对方MAC地点,不知道IP地点。
RARP逆地点剖析,肯定比ARP更简单,由于已经知道对方MAC地点了,直接给对方发让它把本身的IP地点给我。MAC->IP。

APR 中心人诱骗

再谈最后一个话题 ,ARP是可以缓存的。主机1要把数据跨网络送到另一台主机,起首要先把数据送到路由器。


  • ARP缓存会定期更新,并且有一个特点,当ARP收到多个ARP应答时,ARP会以最新的为主!
  • 假设本日主机1已经缓存过了知道路由器IP和MAC对应关系了。 现在有一个中心人主机3鬼鬼祟祟来到这个局域网,主机3伪造了一种ARP应答,ARP没有记忆,它也不知道本身哀求多少次,以是主机3直接给主机1直策应答,我是IP4,我的MAC地点是MAC3。IP地点和MAC地点都是一堆数字本身并不能辨别。以是主机3给主机1发送大量的ARP应答。

    主机1扛不住了最后就更新了ARP缓存,IP4:MAC3。路由器内部肯定也维护了更多的主机对应的IP地点和MAC地点信息。

    同理,主机3向路由器发起大量ARP应答,我是IP1,我的MAC地点是MAC3。路由器也扛不住了,也更新了ARP缓存,把IP1对应的MAC1换成MAC3。

  • 以是今后今后,主机1想向外网发信息,它把本身的数据发给路由器,它ARP缓存里有对应路由器的IP和MAC对应关系,IP4:MAC3,以是直接在数据链路层封装MAC帧,不外目标MAC变成了MAC3,以是数据直接就交给了中心人主机3
  • 中心人主机3,假冒主机1,IP地点稳定把数据包转发给路由器,
    由于路由器在本身IP层之上包罗IP层已经将MAC帧报头去掉了,以是实在在网络层及往上看到的报文完全都是一样的,就好像这个报文直接从主机1过来了。
同理当外网来的应答到了路由器发现是要给IP1的,然后查ARP缓存发现IP1:MAC3,以是封装成MAC帧交给主机3,主机3收到报文之后再把报文交给主机1。
自此主机收到应答,主机1和路由器就正常通信,由于IP及其以上的报文完全一样。但是它们俩并不知道在局域网中隔墙有耳,有人乐成的成为你们两个人的中心人,这就叫做ARP诱骗。

全部上层全部的http的数据,各个报文终极不就是发送到网络里的数据帧吗,全部只要把你诱骗了,
终极你全部报文我都能收到,包罗http里面的数据。
然后中心人当然了窜改了,以是必要有证书,对称密钥,非对称密钥,数字择要让中心人即便拿到了也没办法。

现在为止我们已经懂了不同层的有不同的功能就表现出不同特性办理不同的标题,数据链路层+网络层+传输层,下三层组合就已经能包管数据从主机A可靠的跨网络送到主机D


  • 但是送完还不敷,还要把数据用起来,以是还必要应用层
  • 根据TCP的端口号交付给应用层,而应用层是以历程为表现形式的
  • 以是就可以做到把一个历程的数据颠末网络可靠的转发到另一个主机上特定的历程来完成网络通信的历程间通信原理! 这就是TCP/IP。


TCP/IP是脱胎于OSI七层标准模子的。OSI七层标准定的非常完善


  • 会话层主要是用来举行毗连管理,从前我们在写网络版本计数器套接字的时间,创建好的毗连当不通信了上层就把它关了,有没有一种大概毗连创建好了但长时间不消,那应用层是不是要本身做一些毗连管理。
  • 以是毗连管理的工作在会话层是必要的,一样平常由应用层来做,只不外我们没直接做罢了。
  • 以是会话层对毗连负责我们要必要有的。只不外在TCP/IP没有表现出来,由于由应用层完成。
  • 实在表现层我们也曾经学过,什么是固有格式,这不就是本身界说好的协议字段吗,哀求request,相应response,然后序列化+反序列化,这不就是表现层吗。
  • 当数据反序列化拿到结构化数据之后,然后才在上面应用,针对特定应用的协议完成特定的功能。这叫做应用层。
以是会话层,表现层我们没有直访问过,但是在我们的代码里早就碰到过了。



2.DNS

DNS是一整套从域名映射到IP的体系。


  • 域名是我们常常用的如www.baidu.com等,我们学了套接字和网络原理我们知道实在在网络通信里我们根本就不消域名,用的都是IP地点
  • 而毕竟上在公网中举行网络通信只能用IP地点,由于网络协议栈里只有IP,以是域名这个东西并不是网络协议栈中必有的东西,但是现实生存中我们确实不是用的IP地点,访问百度用的从来都是域名。
  • 缘故原由在于IP地点是数字,数字对于呆板很友好,对人非常不友好。
让你按照数字去访问别人网址记不住,不如用这个域名。域名存在的代价便于互联网商业化。
DNS配景
TCP/IP中利用IP地点和端口号来确定网络上的一台主机的一个步伐. 但是IP地点不方便记忆.
于是人们发明白一种叫主机名的东西, 是一个字符串, 并且利用hosts文件来形貌主机名和IP地点的关系.



最初, 通过互连网信息中心(SRI-NIC)来管理这个hosts文件的.


  • 假如一个新盘算机密接入网络, 大概某个盘算机IP变动, 都必要到信息中心申请变动hosts文件.
  • 其他盘算机也必要定期下载更新新版本的hosts文件才气准确上网.
如许就太贫困了, 于是产生了DNS体系.


  • 一个构造的体系管理机构, 维护体系内的每个主机的IP和主机名的对应关系.
  • 假如新盘算机接入网络, 将这个信息注册到数据库中;
  • 用户输入域名的时间, 会主动查询DNS服务器, 由DNS服务器检索数据库, 得到对应的IP地点
当用户输入域名时,会先问离本身迩来域名服务器集群,问不到这些呆板然后继续向上问,大概直接问道根域名服务器,假如有的话递归返回。
以是域名服务器就像一个多叉树的结构。最上面有一个根节点。
至今, 我们的盘算机上仍旧保存了hosts文件. 在域名剖析的过程中仍旧会优先查找hosts文件的内容
  1. cat /etc/hosts
复制代码


域名简介
主域名是用来辨认主机名称和主机所属的构造机构的一种分层结构的名称.
  1. www.baidu.com
复制代码
域名利用 . 毗连


  • com: 一级域名. 表现这是一个企业域名. 同级的尚有 “net”(网络提供商), “org”(非盈利构造) 等.
  • baidu: 二级域名, 公司名.
  • www: 只是一种风俗用法. 之前人们在利用域名时, 往往命名成雷同于ftp.xxx.xxx/www.xxx.xxx如许的格式, 来表现主机支持的协议
域名剖析过程各人自行搜刮资料. 可以参考之前 TCP/IP 的解说文章
利用 dig 工具分析 DNS 过程
安装 dig 工具
  1. sudo apt install dnsutils
复制代码
之后就可以利用 dig 指令检察域名剖析过程了.
  1. dig www.baidu.com
复制代码


更多 dig 的利用方法,请点击相识。

   欣赏器中输入url后一敲回车,拿到首页,请形貌整个过程发生的变乱
  这是一个经典标题. 一个标题就可以观察网络学的怎么样, 并且这是一个开放式标题,没有固定答案, 越详细越好. 可以参考:
欣赏器中输入url后,发生的变乱
开放式标题

一样平常在体系和网络中有许多这种开放式标题,大概口头上问你:你怎么明白指针?


  • 这个时间固然本身知道许多,但是好像不知道怎么给别人怎么谈,是先说概念照旧应用场景,照旧说指针的标题。
  • 别人就想看你怎么给别人表明。以是对我们来讲对于回到开放式标题,并不是回答标题本身。而是要先想清晰这个标题你该怎么回答。
  • 对于这种开放式标题,我们可以告诉起首告诉他,我想谈这种技能点的那些方面。好比,照旧问你怎么明白指针?
我筹划从如下几方面谈一谈关于指针的标题,第一指针概念,第二指针应用场景,第三指针常见标题。


  • 第一指针概念,什么是指针?为什么有指针?等等。
  • 第二指针应用场景,谈谈指针怎么用,怎样传参,指针和数组之间的关系,包罗特别指针有那些。
  • 第三指针常见的标题,野指针怎样产生怎么办理等等。
当先把标题本身解构,然后再谈细节。如许回答是非常有条理的。 然后会以为你的知识成体系了。
对于欣赏器中输入url后一敲回车,拿到首页,请形貌整个过程发生的变乱。


  • 通常先交接本身想怎么回答这个标题,一样平常发起分两方面,一站在纯应用层去表明这个标题,忽略掉OS为我们做的网络通信的全部细节。
  • 把整个应用层竣事完毕之后,我们在谈一谈底层通信的其他细节标题。
  • 纯应用层当然先容的是http哀求和相应,哀求格式有那些,相应格式有那些,然后通信之前创建好毗连之后,双方就可以交换哀求和相应了,当然哀求之前有大概某些客户端好比欣赏器先做域名剖析找到IP在构建哀求想目标IP和目标端口发起http哀求。
  • 然后给相应。然后再谈哀求和相应里面常见的字段状态码,cookie等。
  • 然后创建毗连的过程,发哀求和相应的过程大概面对各种各样技能通信细节标题
  • 好比大概发生数据丢包标题,网络拥塞标题,数据路由的标题,路由过程中主机和子网标题,
  • 确认子网分别标题,路由查找标题,确认到下一跳ARP过程等。
还可以说假如细节太多影响时间欢迎随时打断我。
如许回答表现出:

  • 知识表现分别
  • 沟通表达本领
  • 思量时间标题

3.ICMP协议

ICMP协议是一个 网络层协议
一个新搭建好的网络, 往往必要先举行一个简单的测试, 来验证网络是否流畅;
但是IP协议并不提供可靠传输. 假如丢包了, IP协议并不能关照传输层是否丢包以及丢包的缘故原由.
我们不停谈的是网络通信功能,但假如网络出标题了是不是也要支持我们举行故障排查的功能。
以是IP协议不仅仅有通信本领,还要帮我们举行故障排查。
ICMP功能
ICMP正是提供这种功能的协议; ICMP主要功能包罗:


  • 确认IP包是否乐成到达目标地点.
  • 关照在发送过程中IP包被抛弃的缘故原由.
  • ICMP也是基于IP协议工作的. 但是它并不是传输层的功能, 因此人们仍旧把它归结为网络层协议;
  • ICMP只能搭配IPv4利用. 假如是IPv6的情况下, 必要是用ICMPv6;


ICMP的报文格式
关于报文格式, 我们并不筹划重点关注, 稍微有个相识即可


ICMP大概分为两类报文:


  • 一类是关照堕落缘故原由
  • 一类是用于诊断查询


3.1ping下令





  • 留意, 此处 ping 的是域名, 而不是url! 一个域名可以通过DNS剖析成IP地点.
  • ping下令不光能验证网络的连通性, 同时也会统计相应时间和TTL(IP包中的Time To Live, 生存周期).
  • ping下令会先发送一个 ICMP Echo Request给对端;
  • 对端吸收到之后, 会返回一个ICMP Echo Reply
ping下令基本原理实在很简单,就是构建出不同生命周期报文,把TTL设置为1、2、3等等,好比说第一次TTL设置为1,然后ICMP报错,然后在构建一个报文TTL设为2 在发,最后知道对方主机收到了,通过如许的方式不就探测了从当前主机到远端主机必要颠末多少跳数的路由器。
ping下令底层是通过利用ICMP协议,设置TTL跳数,然后举行检测网络连通性的一种做法。


一个值得留意的坑
有些人大概会问: telnet是23端口, ssh是22端口, 那么ping是什么端口?
万万留意!!! 这是圈套
 


ping下令基于ICMP, 是在网络层. 而端口号, 是传输层的内容. 在ICMP中根本就不关注端口号如许的信息.
2.2traceroute下令

可以或许打印出从当前主机到目标服务区所颠末的路由器的IP地点。
也是基于ICMP协议实现, 把TTL设置1、2、3等等发起多次ICMP,每个ICMP终极都要给我应答,以是最后再ICMP返回时把路上路由器信息返回给我。


回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表