计算机网络——验证性、Wireshark、CPT
验证性
Ipconfig
ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息,它有很多的参数可用,比如使用最多的/all
在CMD窗口使用ipconfig/all会获得更加详细的信息
Ping
PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 。ping 是工作在 TCP/IP 网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。
使用方式:
其中字节表示一个packet包含32*8=256bits,时间表示单个包来回的时间和,TTL则是Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量,一定程度上可以表示当前IP到目标IP的“距离”。
使用ping/? 可以获取更多有关该指令的信息:
当ping命令无法正确执行时,即ping某一目标的<ip>可以正确通信,但ping它的域名却无法正常通信时可以考虑是否是DNS解析服务器出错或者DNS的配置出现错误导致目标IP的地址解析出现问题
Tracert (Trace Route)
TRACERT (Trace Route 的组合缩写),也称为路由追踪,该命令行程序可用于跟踪 Internet 协议 (IP) 数据包传送到目标地址时经过的路径。
使用示例(使用tracert命令追踪baidu.com):
1.tracert的原理是TTL机制,通过不停发送TTL递增的包,记录经过的节点
2.发送的packet会经过网关传往外界,所以追踪其他的ip地址时会出现前几个节点相同的情况
ARP(Address Resolution Protocol)
ARP(Address Resolution Protocol)即地址解析协议,是用于根据给定网络层地址即 IP 地址,查找并得到其对应的数据链路层地址即 MAC地址的协议。 ARP 协议定义在 1982 年的 RFC 826。
arp命令使用示例(arp -a):
使用arp -s命令可以将arp缓存类型由静态转换为动态(尝试固定网关):
出现提示添加失败,该提示出现的原因是权限不够需要提升权限才可用
以管理员身份运行 cmd后再次执行该命令即可正常执行
此外还可以使用 arp/? 查看arp的相关帮助
DHCP(Dynamic Host Configuration Protocol)
DHCP即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:
1 用于内部网或网络服务供应商自动分配 IP 地址给用户
2 用于内部网管理员对所有电脑作中央管理
简单的说,DHCP 可以让计算机自动获取/释放网络配置。
命令示例(ipconfig/release):
也可以使用以下命令重新获取网络配置 ipconfig/renew :
网卡ip变成169.254.x.x,一种情况是是pc的网卡启动或者dhcp续租成功时,检测到环境中存在ip冲突,操作系统为保护起见分配的保留ip地址。此地址不是合法的地址,因此无法获取的网关的mac地址,无法实现上网等操作。路由器不响应这类消息的arp请求,这个地址无法通过路由器。另一种情况是dhcp功能打开,发出discover消息,没有得到应答消息,操作系统自动分配给pc网卡一个169.254.xx.xx的ip地址。
netstat
无论是使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。
netstat(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。
目录C:\WINDOWS\system32\drivers\etc\services可以查看对应的端口
使用 netstat -an可以查看连接:
DNS(Domain Name System)
DNS即域名系统,是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口。
DNS的相关信息可以在C:\WINDOWS\system32\drivers\etc\hosts查到
解析过的 DNS 记录将会被缓存,以利于加快解析速度。可以使用 ipconfig /displaydns 命令查看:
我们也可以使用 ipconfig /flushdns 命令来清除所有的 DNS 缓存。
使用 nslookup 命令可以指定DNS服务器进行解析
cache
cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。
浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。
启用cache的情况下打开网页:
关闭cache的情况下打开网页:
可以看到关闭cache的情况下加载的时间明显更长
Wireshark
Ethernet 帧结构
帧结构:
前导码:包括同步码(用来使局域网中的所有节点同步,7字节长)和帧标志(帧的起始标志7,1字节)两部分;
目的地址:接收端的MAC地址,6字节长;
源地址:发送端的MAC地址,6字节长;
类型:数据包的类型(即上层协议的类型),2字节长;
数据:被封装的数据包,46-1500字节长;
校验码:错误检验,4字节长。
Ethernet帧最小长度46字节
当PING子网外的主机时,目的mac会填写当前网关mac: