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 本机硬件耗费的时间的最小值/平均值/最大值/平均偏差,其中平均偏差的计算公式为:

SQRT(SUM(RTT∗RTT)/N–(SUM(RTT)/N)2)SQRT(SUM(RTT*RTT) / N – (SUM(RTT)/N)^2) SQRT(SUM(RTT∗RTT)/N–(SUM(RTT)/N)2)

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

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

ping 参数

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

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

ping 执行过程

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

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

地址解析

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

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

  • /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 到对方主机的命令,返回数据包到达目的主机所经历的路径详细信息,并显示每个路径所消耗的时间。

Linux 计算机网络 从 ping 来初窥计算机网络相关推荐

  1. 初窥Linux神秘面纱(贰):基本指令讲解(中)及疑难解惑(精)

    目录 mkdir指令: rmdir指令: rm指令: man指令 : cp指令: mv指令: cat与tac指令: more指令: less指令: head与tail指令 疑问解答: mkdir指令: ...

  2. 【重点】初窥Linux 之 我最常用的20多条命令

    [重点]初窥Linux 之 我最常用的20多条命令 玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我 ...

  3. 高中信息技术初知计算机网络教案,高中信息技术选修3教案-1.1 初识计算机网络-浙教版...

    高中信息技术选修3教案-1.1 初识计算机网络-浙教版 初 识 计 算 机 网 络 教材分析 <初识计算机网络>是高中信息技术基础网络技术应用第一章第一节的教学内容.本节内容针对网络知识的 ...

  4. 计算机网络之ping的原理

    文章目录 计算机网络之ping的原理 1.ping的原理 计算机网络之ping的原理 1.ping的原理 ping,Packet Internet Groper,是一种因特网包探索器,用于测试网络连接 ...

  5. 【100道面试题真题讲解】C++面试题讲解+JAVA面试题讲解+Linux面试题讲解+数据结构面试题+计算机网络面试题 讲解视频-持续更新中

    最近找到了一个非常好的公众号:IT笔试面试真题讲解,每天视频分享一道IT公司面试高频题目,完全免费哦,非常适合找工作的学生复习+总结+提炼. 白嫖不敢独吞,分享给大家,也给作者增加一点访问量,鼓励作者 ...

  6. 初窥Linux神秘面纱(壹):基本指令讲解(上)及疑难解惑(精)

    目录 前情提要: ls指令: pwd指令: cd指令: whoami指令: touch指令: 疑问补充: 前情提要: 今天,我将开始新版块的书写---LInux窥境之路,神奇而又美丽的操作系统将在我的 ...

  7. 信息安全初窥(二):信息安全能力体系

    文章目录 前言 一.信息安全需要哪些能力? 1.法律与标准 2.攻防技术 3.工程实践 二.如何锻炼这些能力? 前言 上篇文章说到,我对信息安全行业的前途非常乐观,但这种乐观建立在不那么美好的事实之上 ...

  8. 计算机网络实验报告哈工大_哈工大计算机网络实验报告.doc

    哈尔滨工业大学 计算机通信网络实验指导书 倪洁 徐志伟 2012.11.1 实验一 IIS网站的架设 一.实验目的 Windows Server 2003包含Internet Information ...

  9. 计算机网络摘要怎么写,计算机网络实践论文摘要怎么写 计算机网络实践论文摘要范文参考...

    [100篇]免费计算机网络实践论文摘要范文,为你的摘要写作提供相关参考,可用于计算机网络实践方向的硕士论文和本科论文写作参考研究,每一篇都是经典优秀的摘要范文格式模板,[赶紧阅读吧!] 第一篇论文摘要 ...

最新文章

  1. ElasticSearch Groovy脚本远程代码执行漏洞
  2. 久坐 缺乏运动 消化能力 会减弱
  3. Cpp 对象模型探索 / 外部调用私有的虚函数的方法
  4. ajax如何实现、readyState五中状态的含义
  5. 数模国赛要点与注意事项全分享!
  6. xcode-select: error: tool 'xcodebuild' requires Xcode错误解决方法
  7. python爬取哔哩哔哩视频_Python实现视频爬取下载
  8. linux打开文件异常
  9. Java基础学习总结(30)——Java 内存溢出问题总结
  10. win10电脑开机密码忘了怎么办_电脑开机密码忘了怎么办最简单的方法_windows7教程...
  11. 7.EVE-NG硬盘扩容,存储海量镜像
  12. 图说:Windows 8如何关机、重启
  13. Atitit codeblock c++开发环境建立attilax总结
  14. sql基础语句(联表查询)
  15. CPU占用100%的一般原因及解决办法
  16. 计算机组成原理6-20,计算机组成原理课后题6.20PPT课件
  17. PC改变文档显示颜色,保护眼睛,缓解眼疲劳
  18. 易到用车构架演进及上云探索
  19. gdi与gdi+绘图效率_.NET和GDI +进行绘图[第1部分:基础知识]
  20. Docker Harbor概述及构建

热门文章

  1. 气动调节阀故障要怎么处理?
  2. 加州大学伯克利分校计算机科学硕士,2020年加州大学伯克利分校排名TFE Times美国最佳计算机科学硕士专业排名第3...
  3. 【机器学习】详解 转置卷积 (Transpose Convolution)
  4. RestClient(接口请求)
  5. 【拼车小程序源码推荐】方便省力快速搭建首选人人拼车CMS系统
  6. 如何使用LODOP实现合同套打精准打印?
  7. 数字IC设计or数字验证,选哪个好?
  8. texstudio深色主题设置
  9. 球的半径和体积:输入球的中心点和球上某一点的坐标,计算球的半径和体积
  10. Rtsp服务搭建(Ffmpeg+Node.js+jsmpeg网络视频服务器)