网络层的功能:选择数据通过网络的最佳路径。
数据传输的标准(数据帧)如下:
在数据封装的时候在网络层会封装ip地址的头部,形成ip数据包 IP数据包是网络传输的信封,它说明了数据发送的源地址和目的地址,以及数据传输的状态。一个完整的数据包由首部和数据两部分组成。首部前20字节属于固定长度,是所有IP数据包必须有的,后面是可选字段,其长度可变,首部后面是数据包携带的数据。
版本(4):4个bit位。我们常用的就是IPv4和IPv6,相对应的版本号就是4和6,转化成4位bit分别是0100和0110。
首部长度(4):4个bit位。该值包含了固定字段和可选字段的长度,以4字节为一个单位。
优先级与服务类型(8):该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,服务类型定义了如何处理数据一般没有使用。
总长度(16):IP数据包的总长度,最长为 65535 字节,包括包头和数据。
标识符(16):16个bit位。表示一个数据报的唯一ID。通常情况下,每发送一个IP数据报,该值就加1。同一个数据报的不同分片,使用同一个ID。
标志(3):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出(完整)。
段偏移量(13):一个数据包需要分片,指明这个分片举例原始数据开始的位置,作用重组数据。
TTL生命周期(8):可以防止一个数据包在网络中无限循环的转发下去,每经过一个路由器 -1,当TTL的值为0时,该数据包将被丢弃 0-255。
协议号(8):8个bit位。表示IP的上一层是什么协议,如TCP、UDP等。目前我们常用的协议号可以从这个协议列表中查询获得。
首部校验和(16):该字段只对IP数据报的首部进行校验。
源地址(32):源ip地址,表示发送端的IP地址。
目标地址(32):目标ip地址,表示接收端的IP地址。32个比特位。这两个地址就是我们常说的192.168.1.1这种地址。
可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。这个字段很少用,通常只会给实验或军事领域使用。因为此字段是变长的,所以在此字段后面加上Padding字段,将其填充为32bit的整数倍。
数据。这里就存放着上层协议的数据。
ICMP即互联网控制消息协议。它是互联网协议族的核心协议之一。它用于 TCP/IP 网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些信息,使网络管理者可以对所发生的问题作出诊断,然后采取适当的措施解决问题。
icmp作用:
检测网络的双向联通性。
Ping是网络设备、Windows、Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议。 Ping常用于探测到达目的节点的网络可达性。
ping选项:
tips:
ping的通一定通 ping不通不一定网络不通。
例如对ip地址192.168.56.1 进行1600字节的长ping。
冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。交换机的每个接口都是一个冲突域。 广播域:一台机器发送广播,能收到消息的机器,都是在同一广播域,交换机的所有端口默认在同一个广播域里,路由器的每一个端口都是一个独立的广播域。
该图就只有一个广播域(交换机默认在1个广播域内)
上图有两个广播域(路由器接了两个接口)
地址解析协议,即ARP是根据IP地址获取物理地址的一个TCP/IP协议。在IP以太网中,当一个上层协议要发包时,有了该节点的IP地址,ARP就能提供该节点的MAC地址。
ARP工作原理:
1.PC1想发送数据给PC2,会先检查自己的ARP缓存表,只在终端设备上。
2.如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)
3.交换机收到广播后做泛洪处理,除PC1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答, 并在自己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,而其他主机则丢弃这个ARP请求消息。
4.PC1在自己的ARP表中添加PC2的IP地址和MAC地址的对应关系,以单播方式与PC2通信。
PC2在自己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,以单播方式发送ARP应答。
泛洪现象:pc3也接受到了ARP请求消息,丢弃这个ARP请求消息。
无故ARP:
当一台设备获取到一个Ip 地址时 ,会自动发送一个无故ARP,检测是否有设备已使用了此地址。