Linux 计算机网络 从 ping 来初窥计算机网络

news2024/11/18 15:44:21

Linux 计算机网络 从 ping 来初窥计算机网络

在上一章节《计算机网络从零到一》我们重点讲解了整个网络的形成,以及物理层、数据链路层、网络层这三层的形成以及他们所解决的问题,而本章节主要讲解 ping 命令在 Linux 中到底发生了一些什么。

ping 简介

当我们第一次接手服务器时,首先需要验证的就是网络相关配置,而最简单直接的就是 ping 命令。如我们要验证所在服务器是否能访问百度搜索网址,则可以使用

ping www.baidu.com
# ping 命令在linux默认参数下,会无限制的运行,如需要停止可以使用 [ctrl+C]

在这里插入图片描述

可以看到详细的 ping 命令运行过程,以及在退出程序后的一个统计数据。

详细运行过程中,标识了每一次 ping 包的数据大小为 64kytes;通过 www.baidu.com 的回复 ip 39.156.66.14 传回;每一次都有一个序列号 icmp_seq,从 1 开始递增(老版本为 0);ttl 也在之前讲解过,为 tcp/ip 的剩余生命周期;time 是当前服务器记录的每一次从发送请求,到接收到回复的时间(所以不需要两个服务器进行时间同步)。

在统计数据中,会显示发送了多少个包,接收到多少个包,丢包率以及总的消耗时间;还会有 rtt 本机硬件耗费的时间的最小值/平均值/最大值/平均偏差,其中平均偏差的计算公式为:

S Q R T ( S U M ( R T T ∗ R T T ) / N – ( S U M ( R T T ) / N ) 2 ) SQRT(SUM(RTT*RTT) / N – (SUM(RTT)/N)^2) SQRT(SUM(RTTRTT)/N(SUM(RTT)/N)2)

在这里插入图片描述

值越大,表示网络情况越不稳定

在 Linux 下才有这个值;windows 下无;Mac 下叫做 stddev

ping 参数

我们可以使用 man ping 来查看 ping 的使用手册,下表列举了常用的 ping 参数供大家参考:

命令释义
-c [number]count:指定ping的次数,在到达后自动停止
-AAdaptive ping:根据每一次ping的时间,自动调整ping的速度
-fFlood ping:使用极限速度ping目标地址,只有超级用户能够使用,会自动使用静默模式
-i [double]interval:每次ping 的间隔时间,单位秒
-I [interface]interface:使用指定网卡进行ping任务
-qquiet output:使用静默模式,只输出汇总信息
-t [number]ttl:设置ttl值

ping 执行过程

不知道大家有没有疑惑,ping 命令貌似很简单,但是既可以 ping ip 又可以 ping host,还能 ping website。那他是如何进行解析的呢,如果我们现在 host 中配置了一个与 website 相同的,那么 ping 命令会如何解析呢?还有 ping 命令究竟是怎么与目标服务器进行连接的,好像也没看到使用什么端口,不是说连接两个服务器都需要开端口进行连接吗?

带着疑问我们一步一步进行尝试。

地址解析

地址解析不仅存在于我们的 ping 命令中,也存在各种需要与目的地服务器交互的程序中。在之前的章节中,我们介绍了 traceroutedns 解析计算机网络从零到一,其实大部分已经有萌芽的趋势,我们再汇总进行一次全面的解析。

一共涉及到三个重要的文件:

  • /etc/hosts

配置所有的 ip:服务器名

  • /etc/host.conf

这个文件在之前的三个章节中均未讲解到。稍后进行讲解。

  • /etc/resolv.conf

配置我们 DNS 服务器相关的解析,详情请跳转 dns 解析

/etc/host.conf

当需要访问其他服务器时,指定主机名的查找方法。默认首先查找 /etc/hosts,如果未能查找再使用 /etc/resolv.conf 文件查找 DNS 服务器,向 DNS 服务器进行请求。

cat /etc/host.conf
# multi on

在这里插入图片描述

默认情况下,只会有一行 multi on,标示是否允许 /etc/hosts 中指定的主机有多个 ip 地址,如果有多个 ip 地址,我们一般称之为多穴主机(路由器就是一种多穴主机)。当然,还有其他的相关设置:

  • order hosts,bind,nis

主机的解析顺序,使用先 hosts 也就是主机映射解析 /etc/hosts;然后使用 bind,也就是 DNS 解析。当然也可以先 DNS解析 写成 order bind,hosts,nisnis 防火墙。

  • ospoof on

是否开启对该服务器进行 ip 地址欺诈的保护。

当然,这里只列举了最重要的参数,其余可以查看 man5 手册,host.conf 部分:

https://www.man7.org/linux/man-pages/man5/host.conf.5.html

host.conf 配置

当你看完手册后,可以发现上面的描述全是错误的,因为大多数已经被遗弃了,现在只能配置三个参数:

  • trim [list]

可以存在多个,使用 :;, 进行分割的一个数组,并且每个元素都应该是 . 开头。及西裤将自动从使用 DNS 解析的任何域名进行匹配,如果匹配成功,会删除末尾的域名。(这个不会影响 nishosts)。

  • multi [on/off]

标示是否允许 /etc/hosts 中指定的主机有多个 ip 地址,如果有多个 ip 地址,我们一般称之为多穴主机。

  • reorder [on/off]

建议禁用。如果设置为 on,解析库则会尝试重新排列主机地址,以便在解析时,后弦列出同一网段的地址。

地址解析实例

所以,可以知道地址解析是由 /etc/host.conf 决定的,那我们来验证一下:

我们设置为优先解析 host,再解析 dns

cat /etc/hosts
# 192.168.111.128 maggot111128 maggot111128.huangyichun.com
ping maggot111128.huangyichun.com

在这里插入图片描述

确实是解析到了我们 hosts 文件中对应的地址,如果 ping 不存在的则为:

在这里插入图片描述

则解析到了本人的个人网站服务器了。

ping 协议 ICMP

在之前的 raceroute 讲解中,我们也提到了 ICMP 协议,但没有作为主题进行讲解。

Internet Control Message ProtocolTCP/IP 的一个子协议,用于在 ip 主机和路由器之间传递 控制信息,位于在 ip 之上,报文承载在 IP 分组之中,位于网络层。有两个版本分别对应 IPv4IPv6

在这里插入图片描述

ICMP 虽在 TCP/IP 之上,但是与 TCP/IP 一样,是网络层的一部分,ICMP 报文作为 IP 报文的数据部分进行发送。同样 IGMP 也是网络层。

控制信息 包含以下信息:

  • 网络是否通常
  • 主机是否可达
  • 路由是否可用

控制信息 并不传递用户数据,但是它是否成功是信息传递的基础。可以用来检查网络状况,是否正常、网络延时是怎样等等。他不需要端口号。

ICMP 报文类型

ICMP 作为控制协议,有查询和差错两大类报文,总计类 8 类:

在这里插入图片描述

ping ICMP 回送请求和应答报文

在网络可达性测试中使用的分组网间探测命令 ping 能产生 ICMP 回送请求和应答报文。目的主机收到 ICMP 回送请求报文后立刻回送应答报文,若源主机能收到 ICMP 回送应答报文,则说明到达该主机的网络正常。

traceroute ICMP 时间超时报文

tracert 命令主要用来显示数据包到达目的主机所经过的路径。通过执行一个 tracert 到对方主机的命令,返回数据包到达目的主机所经历的路径详细信息,并显示每个路径所消耗的时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/148204.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习open62541 --- [73] 数据源造成无法监测变量的问题解决

本人最近遇到一个问题:给一个变量添加数据源后,使用监测项去监测变量变化,如果采样时间为0,会发现无法监测到变量的变化。 本文讲述这种情况的发生原因以及解决办法。 一 Server例子 首先准备server例子,如下&#x…

WSL 下载服务器加速

网络下载加速,这里使用修改 hosts 文件 ,地址映射 方法,所有网址适用,这里以 WSL 下载服务器为例子 命令 wsl -l -o 访问的地址: https://raw.githubusercontent.com/microsoft/WSL/master/distributions/Distributi…

Java设计模式中组合模式是什么/树形结构怎么组合或显示存储,编程怎么实现树形结构

继续整理记录这段时间来的收获,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 5.7 组合模式 5.7.1 概述 又名整体模式,是用于把一组相似的对象当作一个单一的对象依据树形结构来组合对象,用来表示部分以及整体层次属于…

基于asp.net+vbscript+wsc编写网站

1、前言 asp大家应该都比较熟悉&#xff0c;就是一个动态服务器页面&#xff0c;有点类似于jsp。只是不同的是asp可以在IIS服务器上创建&#xff0c;并且如果配置了.net环境的话&#xff0c;那么就可以在asp里面<%%>写vbscript。vbscript是一种脚本语言&#xff0c;其实就…

因果推断5--DML(个人笔记)

目录 1论文介绍 1.1论文 1.2摘要 1.3DML思路 2价格需求曲线 2.1价格需求弹性 2.2价格需求弹性计算DML代码 2.3价格需求弹性例子--数据集 2.4建模过程 2.5回归结果 1论文介绍 1.1论文 V. Chernozhukov, D. Chetverikov, M. Demirer, E. Duflo, C. Hansen, and a. W.…

(强制)类型转换方法

目录 一、C语言中的类型转换 二、C中的强制类型转换 2.1 static_cast 2.2 reinterpret_cast 2.3 const_cast 2.4 dynamic_cast 2.5 总结 一、C语言中的类型转换 在C语言中&#xff0c;若赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或…

[PyTorch笔记]深度学习计算

[PyTorch笔记]深度学习计算1 层和块1.1自定义神经网络块1.2顺序块1.3在前向传播中执行代码2.参数管理2.1 访问参数、用于调试、诊断和可视化2.2 参数初始化2.2.1内置初始化&#xff1a;2.2.2 自定义初始化2.3 在不同模型组件间共享参数3.延后初始化4.自定义层4.1 不带参数的层4…

深入理解数据结构 —— 跳表

什么是跳表 只要是平衡搜索二叉树能实现的功能&#xff0c;跳表都能实现&#xff0c;且时间复杂度都相同 例如&#xff1a; 哈希表的功能&#xff1a;插入&#xff0c;查找&#xff0c;删除有序表的功能&#xff1a;查找大于某值最小的数&#xff0c;小于某值最大的数&#…

干货 | 数据跨境传输合规体系的构建思路

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。第一部分&#xff1a;研究背景随着经济活动数字化转型加快&#xff0c;“数据”对生产、流通、分配和消费活动产生重要影响&#xff0c;成为新的生产要素。地区之间数据流通愈发频繁&#xff0c;…

图像频域滤波(理想低通滤波)

图像变换是对图像信息进行变换&#xff0c;是能量保持但重新分配&#xff0c;利于加工处理。这里主要介绍傅里叶变换的图像频域滤波。 图像从空间域变换到频域后&#xff0c;其低频分量对应图像中灰度值变化较为缓慢的区域&#xff0c;高频分量表征图像中物体的边缘和随机噪声等…

基于yolov5的钢材表面缺陷识别(pycharm连接远程服务器,老版本yolov5运行遇到的问题)

时间&#xff1a;2023年1月 1 pycharm远程连接服务器 提示&#xff1a;需要下载pycharm专业版。 参考文献&#xff1a; [1] [2] [3] [4] 设置解释器的界面有一些不同&#xff0c;在此截图记录一下。 &#xff08;这是已经弄好了之后回头截图的&#xff0c;假设它不存在哈) …

【寒假每日一题】洛谷 P6206 [USACO06OCT] Another Cow Number Game G

题目链接&#xff1a;P6206 [USACO06OCT] Another Cow Number Game G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 奶牛们在玩一种数字游戏&#xff0c;Bessie 想让你帮她预测一下结果。游戏开始时&#xff0c;Bessie 将得到一个正整数 N。此时她的分数为 0。 奶…

C 程序设计教程(07)—— 数据类型转换

C 程序设计教程&#xff08;07&#xff09;—— 数据类型转换 该专栏主要介绍 C 语言的基本语法&#xff0c;作为《程序设计语言》课程的课件与参考资料&#xff0c;用于《程序设计语言》课程的教学&#xff0c;供入门级用户阅读。 目录C 程序设计教程&#xff08;07&#xff…

mysql学习总结(一)

总结一下近期学习的mysql内容&#xff1a;这里主要总结一下mysql的底层数据结构索引的本质是什么&#xff1f;索引的本质就是排好序的一种数据结构&#xff0c;通过索引我们能干什么呢&#xff1f;&#xff0c;快速的去定位到我们想要查找的数据&#xff0c;就像是你看书&#…

Ansible 介绍与实战操作演示

文章目录一、概述二、Ansible 架构三、Ansible 工作原理四、Ansible 安装与基础配置1&#xff09;开启记录日志2&#xff09;去掉第一次连接ssh ask确认五、Ansible 的七个命令1&#xff09;ansible2&#xff09;ansible-doc3&#xff09;ansible-playbook4&#xff09;ansible…

非线性系统辨识:非线性 ARX 和 Hammerstein-Wiener

1. 系统辨识 系统辨识是根据系统的输入输出时间函数来确定描述系统行为的数学模型。现代控制理论中的一个分支。通过辨识建立数学模型的目的是估计表征系统行为的重要参数&#xff0c;建立一个能模仿真实系统行为的模型&#xff0c;用当前可测量的系统的输入和输出预测系统输出…

Js逆向教程25-BOM DOM过检测

作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; Js逆向教程25-BOM DOM过检测 一、JS BOM 检测 它是一种浏览器环境&#xff0c;脱离了浏览器在外部不能直接调用的就是BOM 在浏览器中…

SAP工作流对象类

目录 1. 实现IF_WORKFLOW接口 2. 创建流程属性 3. 接口方法参考 4. 定义事件 5. 工作流触发&#xff08;事件抛出&#xff09; 业务对象作为工作流的数据内核&#xff0c;也是联系业务流程和工作流的重要核心&#xff0c;体现形式一般为BOR或者业务对象类&#xff0c;用来标识不…

SpringCloud从入门到精通(六)

Hystrix-熔断器 Hystrix-概述 • Hystix 是Netflix 开源的一个延迟和容错库&#xff0c;用于隔离访问远程服务、第三方库&#xff0c;防止出现级联失败&#xff08;雪崩&#xff09;。• 雪崩&#xff1a;一个服务失败&#xff0c;导致整条链路的服务都失败的情形 Hystix 主要功…

【Neo4j构建知识图谱】:cypher操作语言加载 CSV电影人数据集链接文件

这目录 数据链接来源1、创建约束2、从 CSV 文件添加节点3、从 CSV 文件添加关系4、运行cypher查询5、清理数据库参考CSV 文件可以使用LOAD CSV密码条款。出于安全原因,无法加载本地CSV文件,这些文件必须在HTTP或HTTPS服务器(如GitHub,Google Drive和Dropbox)上公开访问。使…