网络层功能
定义了基于IP协议的逻辑地址
连接不同的媒介类型
选择数据通过网络的最佳路径
ICMP协议
ICMP协议(Internet control Message Protocol)的全称是"Internet控制消息协议"主要用于在IP网络中发送控制消息,提供可能发生在通信环境中的各种问题的反馈
例如,当路由器收到一个不能被送到最终目的地的数据包时,路由器会向源主机发送一个ICMP主机不可达的消息
ICMP原理
ICMP协议属于网络层协议
传输ICMP信息时,要先封装ICMP头部
然后再封装IP头部
最后再交给数据链路层
ICMP协议的使用
ping命令的返回信息在检查网络连通性时,ping命令是用得最多的当我们ping一台主机时,本地计算机发出的就是一个典型的CMP数据包,用来测试两台主机是否能够顺利连通
ping命令能够检测两台设备之间的双向连通性,即数据包能够到达对端,并能够返回
ping命令的基本格式
-t 参数会一直不停的执行ping(持续测试连通性时候使用)
ctrl+c 终止
-a 参数可以显示主机名称
-l 参数可以设定ping包的大小(字节,测试通信质量)
用法
C:\>ping [–t] [-l 字节数] [-a] [-i] IP_Address| target_name
ping (网络诊断工具)
因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP(因特网信报控制协议);回声请求消息给目的地并报告是否收到所希望的ICMPecho(ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。
Ping是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。
TTL(生存周期值)
TTL是IPv4包头的一个8 bit字段,TTL的最大值是255,TTL的一个推荐值是64
TTL是IP数据包在计算机网络中可以转发的最大跳数。TTL字段由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送 ICMP time exceeded消息。
TTL的主要作用
避免IP包在网络中的无限循环和收发,节省了网络资源,并能使IP包的发送者能收到告警消息
TTL值100-130之间主机为windows
TTL值240-255之间主机为linux或Unix
不同的操作系统,它的TTL值是不相同的。默认情况下:
Linux系统的TTL值为64或255
Windows NT/2000/XP系统的TTL值为128
Windows 98系统的TTL值为32
UNIX主机的TTL值为255
ARP协议
Address Resolution Protocol,地址解析协议,将一个已知的IP地址解析成MAC地址
ARP解析过程
A主机要同网段的B主机做通信,A主机首先会查本机缓存中有没有B主机的mac地址,如果没有,A主机发送arp请求(广播),同个网段中的机器收到广播后会查看请求的是否是自己的IP地址,如果是自己的IP地址,则吧自己mac地址以单播形式发送给主机A,主机A再进行包的组装,主机内的缓存不是永久保留的