本片博客将对网络相关的命令工具进行调研,侧重于相关命令的实现原理,并顺便复习做计算机网络的相关知识
1.ping命令
全称是Packet Internet Groper,用于测试网络连接量,主要当做一个测试程序,主要用于确定网络的连通性。这对确定网络是否正确连接,以及网络连接的状况十分有用。
主要实现方式:
运行ping命令后会向目的地址发送4个icmp回送请求,每个32字节数据,如果一切正常,你应能得到4个回送应答
这里需要解释一下什么是icmp:
ICMP(Internet Control Message Protocol)是Internet控制报文协议。它是tcp/ip的一个子协议,用于在IP主机,路由器之间传递控制消息。
ICMP报文包含在IP数据报中,属于IP的一个用户,IP头部就在ICMP报文的前面,所以一个ICMP报文包括IP头部、ICMP头部和ICMP报文,
IP头部的Protocol值为1就说明这是一个ICMP报文。
在这里我们需要特别注意ICMP报文中的Type和Code两个域:Type域用于说明ICMP报文的作用及格式,Code域用于详细说明某种ICMP报文的类型。
ping 产生 ICMP 响应请求(Type=8)和应答(Type=0)报文,一台主机向一个节点发送一个Type=8的ICMP报文,如果途中没有异常(例如被路由器丢弃、目标不回应ICMP或传输失败),则目标返回Type=0的ICMP报文:
下面是ping www.baidu.com 的结果
由上面的执行结果可以看到,ping命令执行后本机向目标主机发送了四个大小为32字节的ICMP报文,接受可来自目标主机的四个ICMP回复报文,
同时还显示了被测试系统主机名和相应IP地址、来自目标主机的回复,往返时间和生存时间(TTL)
ipconfig命令:可用于显示当前的TCP/IP配置的设置值。这些信息一般用来检验人工配置的TCP/IP设置是否正确
2.arp命令:显示和修改“地址解析协议(arp)”缓存中的项目
常用arp -a显示所有的缓存项目,我们先来看一下结果:
首先接口的ip地址就是本机的内网地址,那么其他的网络地址和物理地址代表的是什么呢?
这里我们就需要先了解一下arp即地址解析协议的原理:
主机A要与主机B通信不仅需要知道主机B的IP地址和物理地址,通常情况下只能主要IP地址,物理地址如何获得呢?通过arp协议!
arp协议是用来根据IP地址获取物理地址。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,
以此确定目标的物理地址;
收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。在这里就产生了arp缓存,
就像截图所示,存储了目标主机的IP地址和物理地址的映射
而网络命令arp就可以用来查询删除修改这些缓存的命令。
3.ipconfig命令
主要用于显示当前的TCP/IP配置的设置值。这些信息一般用来检验人工配置的TCP/IP设置是否正确
看下命令行输入ipconfig后的结果
可以看到无线局域网适配器 WLAN 说明链接的是wifi,同时还显示了本机的IPv4和IPv6地址。
在这里顺便复习一下什么是子网掩码:
IP地址是TCP/IP网络中用来唯一标识每台主机或设备的地址,由32位(共四个八位组)的二进制组成。
IP地址分为两部分,左边网络编号部分用来标识主机所在的网络;右边部分用来标识主机本身,这部分称为主机地址。连接到同一网络的主机必须拥有相同的网络编号
子网掩码是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址两部分
4.net命令:
先看下语法
功能强大的以命令行方式执行的工具。它包含了管理网络环境、服务、用户、登陆等功能
其中的一些命令是马上产生作用并永久保存的,使用的时候要十分慎重。