MAC 网络命令(PING + TRACEROUTE)

这篇具有很好参考价值的文章主要介绍了MAC 网络命令(PING + TRACEROUTE)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

ICMP

1.PING

发送接收过程

ping命令详解​​​​​​​

使用技巧

2.TRACEROUTE

作用1工作原理

作用2工作原理

traceroute命令详解


ICMP

在学习这两个命令之前,需要先简单的了解一下ICMP网络协议

ICMP 全称是 Internet Control Message Protocol,也就是互联网控制报文协议

ICMP 主要的功能包括:确认 IP 包是否成功送达目标地址、报告发送过程中 IP 包被废弃的原因和改善网络设置等。​​​​​​​​​​​​​​

在 IP 通信中如果某个 IP 包因为某种原因未能达到目标地址,那么这个具体的原因将由 ICMP 负责通知

MAC 网络命令(PING + TRACEROUTE)
​​​​​​​

对于差错报文类型 3(目标不可达)还可以继续进行细分MAC 网络命令(PING + TRACEROUTE) 

1.PING

PING (Packet Internet Groper), 因特网包探索器,用于测试网络连接量的程序 。Ping是工作在TCP/IP网络体系结构中 应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议) Echo 请求报文,测试目的站是否可达及了解其有关状态 。

在网络中ping是一个十分强大的TCP/IP工具。它的作用主要为:

(1)用来检测网络的连通情况和分析网络速度;

(2)根据域名得到服务器IP;

(3)根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量。

发送接收过程

我们模拟一下发送和接收的过程

发送方A

ping 命令执行的时候,源主机A首先会构建一个 ICMP 回送请求消息数据包。

ICMP 数据包内包含多个字段,最重要的是两个:

  • 第一个是类型,对于回送请求消息而言该字段为 8;
  • 另外一个是序号,主要用于区分连续 ping 的时候发出的多个数据包。

每发出一个请求数据包,序号会自动加 1。为了能够计算往返时间 RTT,它会在报文的数据部分插入发送时间。

然后,由 ICMP 协议将这个数据包连同地址A(被ping主机IP地址)一起交给 IP 层。IP 层将以 A作为目的地址,本机 IP 地址作为源地址协议字段设置为 1 表示是 ICMP 协议,再加上一些其他控制信息,构建一个 IP 数据包。

接下来,需要加入 MAC 头。如果在本地 ARP 映射表中查找出 IP 地址A所对应的 MAC 地址,则可以直接使用;如果没有,则需要发送 ARP 协议查询 MAC 地址,获得 MAC 地址后,由数据链路层构建一个数据帧,目的地址是 IP 层传过来的 MAC 地址,源地址则是本机的 MAC 地址;还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。

接收方B

主机 B 收到这个数据帧后,先检查它的目的 MAC 地址,并和本机的 MAC 地址对比,如符合,则接收,否则就丢弃。

接收后检查该数据帧,将 IP 数据包从帧中提取出来,交给本机的 IP 层。同样,IP 层检查后,将有用的信息提取后交给 ICMP 协议。

主机 B 会构建一个 ICMP 回送响应消息数据包,回送响应数据包的类型字段为 0,序号为接收到的请求数据包中的序号,然后再发送出去给主机 A。

在规定的时候间内,源主机如果没有接到 ICMP 的应答包,则说明目标主机不可达;如果接收到了 ICMP 回送响应消息,则说明目标主机可达。

此时,源主机会检查,用当前时刻减去该数据包最初从源主机上发出的时刻,就是 ICMP 数据包的时间延迟。

综上所述,ping 这个程序是使用了 ICMP 里面的 ECHO REQUEST(类型为 8 ECHO REPLY (类型为 0

ping命令详解

以下是MAC OS操作系统下ping命令的详细应用,不同操作系统间的操作和可选字段略有不同

ping [-AaDdfnoQqRrv] [-c count] [-G sweepmaxsize] [-g sweepminsize] [-h sweepincrsize]

    [-i wait] [-l preload] [-M mask | time] [-m ttl] [-P policy] [-p pattern]

    [-S src_addr] [-s packetsize] [-t timeout] [-W waittime] [-z tos] host

ping [-AaDdfLnoQqRrv] [-c count] [-I iface] [-i wait] [-l preload] [-M mask | time] [-m ttl]

    [-P policy] [-p pattern] [-S src_addr] [-s packetsize] [-T ttl]

    [-t timeout] [-W waittime] [-z tos] mcast-group

如果单独的ping一个地址的话会不间断地ping指定计算机,直到管理员中断。

1. ping-c的使用

通过这个命令可以自己定义发送的个数,对衡量网络速度都很有帮助,比如我想测试发送10个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少

2. ping-s的使用

发送s(size)指定大小的到目标主机的数据包。

3. ping-t的使用

不间断地ping指定计算机,直到t(timeout)。

​​​​​​​其他字段的实用性并不大,一般在工作中不会用到,想了解的大佬可以自行研究

使用技巧

当你的网络出现故障不能访问某计算机如 14.215.177.39 (百度的 IP 地址之一 ) 时,我们一般可采用由近及远的连通性测试来确定问题所在。现假设你的 IP 是 192.168.1.2,你旁边计算机的 IP 是 192.168.1.3,网关的 IP 是 192.168.1.1 ,那么过程如下:

ping 192.168.1.2 ,测试自己计算机的状态,如果 OK,那么说明本机网络软件硬件工作正常,否则,问题在本机,检查本机 TCP/IP 配置即网卡状态等

ping 192.168.1.3 ,测试到旁边计算机的连通性,如果OK,那么说明本子网内部工作正常,否则,问题在本机网络出口到交换机之间,检查本机网卡到交换机的连线等

ping 192.168.1.1,测试到网关的连通性,如果 OK,那么说明本子网出口工作正常,否则,问题在网关,这是你无能为力的事情,报告给网管

ping 14.215.177.39,测试到百度的连通性,如果 OK,那就 OK,否则,问题在网关以外,这也是你无能为力的事情,报告给网管或者李彦宏?

2.TRACEROUTE

traceroute (Windows 系统下是tracert) 命令利用ICMP 协议定位您的计算机和目标计算机之间的所有路由器。TTL 值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP 呼叫报文的TTL 值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。

traceroute 的第一个作用就是故意设置特殊的 TTL,来追踪去往目的地时沿途经过的路由器。

​​​​​​​互联网是由网关连接在一起的大型复杂的网络硬件集合。跟踪某人的数据包遵循的路由(或找到丢弃该数据包的错误网关)可能很困难。 Traceroute利用IP协议的“生存时间”字段,并尝试从每个网关到某个主机的路径中引发ICMP TIME_EXCEEDED响应。

唯一必需的参数是目标主机名或IP地址。默认的探测数据报长度为40字节,但是可以通过在目标主机名之后指定一个数据包长度(以字节为单位)来增加。

获得IP之后可通过网站 http://ip.cn 查看这些节点位于何处,是哪个公司的,大致清楚本机到百度服务器之间的路径。

作用1工作原理

它的原理就是利用 IP 包的生存期限 从 1 开始按照顺序递增的同时发送 UDP 包,强制接收 ICMP 超时消息的一种方法。

比如,将 TTL 设置 为 1,则遇到第一个路由器,就牺牲了,接着返回 ICMP 差错报文网络包,类型是时间超时

接下来将 TTL 设置为 2,第一个路由器过了,遇到第二个路由器也牺牲了,也同时返回了 ICMP 差错报文数据包,如此往复,直到到达目的主机。

这样的过程,traceroute 就可以拿到了所有的路由器 IP。

当然有的路由器根本就不会返回这个 ICMP,所以对于有的公网地址,是看不到中间经过的路由的。

traceroute 还有一个作用是故意设置不分片,从而确定路径的 MTU

因为有的时候我们并不知道路由器的 MTU 大小,以太网的数据链路上的 MTU 通常是 1500 字节,但是非以外网的 MTU 值就不一样了,所以我们要知道 MTU 的大小,从而控制发送的包大小。

作用2工作原理

首先在发送端主机发送 IP 数据报时,将 IP 包首部的分片禁止标志位设置为 1。根据这个标志位,途中的路由器不会对大数据包进行分片,而是将包丢弃。

随后,通过一个 ICMP 的不可达消息将数据链路上 MTU 的值一起给发送主机,不可达消息的类型为「需要进行分片但设置了不分片位」。

发送主机端每次收到 ICMP 差错报文时就减少包的大小,以此来定位一个合适的 MTU 值,以便能到达目标主机。文章来源地址https://www.toymoban.com/news/detail-449216.html

traceroute命令详解

traceroute [ -adDeFISnrvx ] [ -f first_ttl ] [ -g gateway ]
    [ -i iface ] [ -M first_ttl ]
    [ -m max_ttl ] [ -P proto ] [ -p port ]
    [ -q nqueries ] [ -s src_addr ] [ -t tos ]
    [ -w waittime ] [ -A as_server ] [ -z pausemsecs ]
    host [ packetlen ]

到了这里,关于MAC 网络命令(PING + TRACEROUTE)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络故障排除之Traceroute命令详解

      遇到网络故障的时候,你一般会最先使用哪条命令进行排障? 除了Ping,还有Traceroute、Show、Telnet又或是Clear、Debug等等。 今天安排的,是 Traceroute 排障命令详解,给你分享3个经典排障案例哈 。   Traceroute是为了探测源节点到目的节点之间数据报文所经过的路径。 利用IP报文

    2024年02月12日
    浏览(35)
  • 【Linux】网络诊断 traceroute命令详解

    目录 一、traceroute概述 1.1 traceroute命令简介 1.2 命令格式 1.3 原理 1.4 命令功能 二、使用实例 实例1:traceroute 用法简单、最常用的用法 实例2:跳数设置 实例3:设置探测数据包数量 实例4:显示IP地址,不查主机名 实例5:绕过正常的路由表,直接发送到网络相连的主机 实例

    2024年01月19日
    浏览(34)
  • 非常有用的Linux网络诊断命令:traceroute

    traceroute 是一个网络诊断工具,用于检测数据包从本机到目标主机经过的路由路径。它可以帮助我们分析出网络连接的瓶颈,定位网络问题,并帮助我们优化网络连接。在 Linux 系统中,traceroute 命令是一个非常常用的工具。 在大多数 Linux 发行版中,traceroute 工具已经默认安装

    2024年02月13日
    浏览(26)
  • 【Shell 命令集合 网络通讯 】Linux 追踪数据包在网络中的路径 traceroute命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 traceroute命令用于追踪数据包在网络中的路径。它通过发送一系列的ICMP(Internet Control Message Protocol)回显请求数据包(ping包),并记录每个数据包的传输时间,从而确定数据包从源主机到目标主机经过的所有中间路由器。 当我们使用trac

    2024年02月04日
    浏览(48)
  • Linux与Windows下追踪网络路由:traceroute、tracepath与tracert命令详解

    在进行网络诊断或排查问题时,了解数据包从源主机到目标主机之间的具体传输路径至关重要。Linux系统提供了 traceroute 和 tracepath 工具来实时显示链路路径信息,而Windows则使用了 tracert 命令实现相同的功能。本文将详细介绍这三个命令的用法及其在不同操作系统中的应用。

    2024年02月01日
    浏览(33)
  • 命令模式-请求发送者与接收者解耦

     去小餐馆吃饭的时候,顾客直接跟厨师说想要吃什么菜,然后厨师再开始炒菜。去大点的餐馆吃饭时,我们是跟服务员说想吃什么菜,然后服务员把这信息传到厨房,厨师根据这些订单信息炒菜。为什么大餐馆不省去这个步骤,像小餐管那样点菜呢?原因主要有以下几点:

    2024年02月14日
    浏览(23)
  • 命令模式——请求发送者与接收者解耦

    在软件开发中,经常需要向某些对象发送请求(调用其中的某个或某些方法),但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个。此时,特别希望能够以一种松耦合的方式来设计软件,使得请求发送者与请求接收者能够消除彼此之间的耦合,让对象之间的调用

    2024年02月14日
    浏览(26)
  • TCP/IP详解——ICMP协议,Ping程序,Traceroute程序,IP源站选路选项

    Internet 控制消息协议 ICMP(Internet Control Message Protocol)是 网络层 的一个重要协议 。ICMP协议用来在 网络设备间传递各种差错和控制信息 ,并对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。 ICMP通常被IP层或者更高层的协议(TCP/IP)使用 。一些

    2024年02月04日
    浏览(30)
  • 网络编程-UDP协议(发送数据和接收数据)

    需要了解TCP协议的,可以看往期文章 https://blog.csdn.net/weixin_43860634/article/details/133274701 通过此图,可以了解UDP所在哪一层级中 发送数据 接收数据 运行效果 1、 UDP是面向无连接通信协议 (通俗一点讲,就是不管是否已连接成功,直接发送数据),该特性正好与TCP协议相反,

    2024年02月07日
    浏览(28)
  • 电脑网络本地连接只有发送没有接收怎么办?

    今天项目组同事遇到这样的网络问题,地连接只有发送没有接收,这样就无法访问网络了,该如何解决呢。 1、IP地址,子网掩码和网关是否设置正确!!! 2、用ping命令 ping 网卡 (ping 127.0.0.1),再 ping 自己的IP地址,检查网卡是否有问题,这步检测过后 ,我发现网卡没有问

    2024年02月07日
    浏览(208)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包