目录
一、网络层的功能
二、IP数据包的格式
三、ICMP协议
1.ICMP协议的概念和作用
2.ping命令
2.1 ping 的格式
2.2 ping选项
2.3 当我们ping不通时,及服务器出现问题,如何排错
2.4 信息传递时出现的问题类型和具体情况
四、冲突域和广播域
1.冲突网
2.广播网
五、ARP协议--协助分装数据包
1.ARP协议概述和作用
2.ARP协议工作原理
2.1在同一局域网内的MAC寻址
2.2不同局域网内的MAC寻址
一、网络层的功能
定义了基于IP协议的逻辑地址,就是ip地址
连接不同的媒介类型
在网络中选择最佳路径转发数据
二、IP数据包的格式
数据封装的时候在网络层会封装ip地址的头部,形成ip数据包 IP数据包格式(分为20字节的固定部分,表示每个ip数据包必须包含的部分,和40字节的可变长部分。
- 版本: 你使用的ip协议版本 ,例如是ipv4还是 ipv6
- 首部长度:IP头部的长度 0000-1111(不包括数据)
- 优先级与服务器类型:区别数据包的优先处理级别
- 总长度:整个数据包的长度
----数据的分片及重组
- 标识符 :确定数据的分片是否来自于同一个文件--一个文件占一个位置
- 标志 :代表数据过小不需要分片;代表该组最后一个数据包
- 段偏移量:该数据片离起点的位置坐标
----数据的分片及重组
----mtu 最小数据单元 1500字节 分片/包
- TTL:生命周期 0-255,经过一个三层设备,就会减一;如果为0,设备会认为该包为无效的数据包就会丢弃。
- 二层交换机 不减 TTL
- 三层交换机 减 TTL
- 延伸:
- TTL大于等于128 windows系统
- TTL小于等于 64 linux系统
- 协议号:上层协议, icmp 测试协议(三层):1 ,tcp:6, udp:17
- 首部校验和:只检测ip头部的完整性
源地址:源ip地址,表示发送端的IP地址
目标地址:目标ip地址,表示接收端的IP地址
可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据
注:根据实际情况可变长,例如创建时间等 上层数据
三、ICMP协议
1.ICMP协议的概念和作用
- Internet控制消息协议ICMP (Internet Control Message Protocol)是IP协议的辅助协议
- ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
- icmp作用:检测网络的双向联通性
2.ping命令
Ping是网络设备、Windows、Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议。 Ping常用于探测到达目的节点的网络可达性。
2.1 ping 的格式
ping 空格 IP地址 [选项]
-l 指定数据包的大小
2.2 ping选项
显示自己 IP地址 ipconfig
ping --help 显示帮助命令
-t 长ping
-l size 发送缓冲区大小。
-w 超时等待时间
-n 指定ping 几次ping -t ip地址 长ping ctrl+c 停止
ping -l 指定包的大小(1600 2000) ip地址
ping -w 指定等待时间(默认是秒:2 ) ip 地址
ping -n 指定的次数(5) ip 地址
tip:
ping通一定通
ping不通不一定网络不通----可能问题出在icmp ,禁用了 icmp 协议
2.3 当我们ping不通时,及服务器出现问题,如何排错
ping 自己 127.0.0.1 硬件
看双方地址是否有问题
看网关是否有问题
防火墙策略是否有问题( 配合 找网络工程师)
2.4 信息传递时出现的问题类型和具体情况
四、冲突域和广播域
1.冲突网
冲突域是一个以太网术语,指的是这样一种网络情形,即网段上的一台设备发送分组时,该物理网段上的其他所有设备都必须债昕它。这很糟糕,因为如果同一个物理网段中的两台设备同时传输数据,将发生冲突(即两台设备的数字信号将在线路上相互干扰),导致设备必须在以后重传数据。冲突对网络性能有严重的负面影响,因此绝对要避免冲突。前面描述的情形通常出现在集线器环境中,在这种环境中,所有主机都连接到一个集线器,它们组成一个冲突域和一个广播域。
总结:
冲突域:两台设备同时发送消息时,互相干扰,那他们就处于同一个冲突域
2.广播网
广播域的书面定义如下:广播域指的是网段中的一组设备,它们侦昕在该网段上发送的所有广播。广播域的边界通常为诸如交换机和路由器等物理介质,但广播域也可能是一个逻辑网段,其中每台主机都可通过数据链路层(硬件地址)广播访问其他所有主机。介绍广播域的基本概念后,下面来看看半双工以太网使用的一种冲突检测机制。
总结---广播域:
- 一台机器发送广播,能收到消息的机器都是在同一广播域,
- 交换机的所有端口默认在同一个广播域里,
- 路由器的 每一个端口都是一个独立的 广播域
五、ARP协议--协助分装数据包
1.ARP协议概述和作用
1.通过 ip地址 找到 mac地址 (将一个已知的ip地址转换成 mac地址)
2.检测地址是否冲突
在配置好ip地址的一瞬间,arp协议会发送一个广播, 检测此地址是否被使用
源地址: 192.168.1.1
目的地址: 192.168.1.1
2.ARP协议工作原理
ARP 协议工作时有一个大前提,那就是 ARP 表。
在一个局域网内,每个网络设备都自己维护了一个 ARP 表,ARP 表记录了某些其他网络设备的 IP 地址-MAC 地址映射关系,该映射关系以 <IP, MAC, TTL> 三元组的形式存储。
2.1在同一局域网内的MAC寻址
假设当前有如下场景:IP 地址为192.168.10.11的主机 A,想要给同一局域网内的 IP 地址为192.168.10.14主机 D,发送 IP 数据报文。
首先。我们要清楚的是:
当主机发送 IP 数据报文时(网络层),仅知道目的地的 IP 地址,并不清楚目的地的 MAC 地址,而 ARP 协议就是解决这一问题的。
为了达成这一目标,主机 A 将不得不通过 ARP 协议来获取主机 D 的 MAC 地址,并将 IP 报文封装成链路层帧,发送到下一跳上。在该局域网内,关于此将按照时间顺序,依次发生如下事件:
1、主机 A 检索自己的 ARP 表,发现 ARP 表中并无主机 D 的 IP 地址对应的映射条目,也就无从知道主机 D 的 MAC 地址。主机 A 将构造一个 ARP 查询分组,并将其广播到所在的局域网中。
- ARP 分组是一种特殊报文,ARP 分组有两类,一种是查询分组,另一种是响应分组,它们具有相同的格式,均包含了发送和接收的 IP 地址、发送和接收的 MAC 地址。当然了,查询分组中,发送的 IP 地址,即为主机 A 的 IP 地址,接收的 IP 地址即为主机D 的 IP 地址,发送的 MAC 地址也是主机 A 的 MAC 地址,但接收的 MAC 地址绝不会是主机 D的 MAC 地址(这是我们要查询的,因为A不知到D的MAC地址),而是一个特殊值——FF-FF-FF-FF-FF-FF(广播地址)。也就是说,查询分组将广播给该局域网内的所有设备。
2、主机 A 构造的查询分组将在该局域网内广播,理论上,每一个设备都会收到该分组,并检查查询分组的接收 IP 地址是否为自己的 IP 地址,如果是,说明查询分组已经到达了主机 D,否则,该查询分组对当前设备无效,丢弃之。
3、主机 D 收到了查询分组之后,验证是对自己的问询,接着构造一个 ARP 响应分组,该分组的目的地只有一个——主机 A,发送给主机 A。同时,主机D提取查询分组中的 IP 地址和 MAC 地址信息,在自己的 ARP 表中构造一条主机 A 的 IP-MAC 映射记录。
- ARP 响应分组具有和 ARP 查询分组相同的构造,不同的是,发送和接受的 IP 地址恰恰相反,发送的 MAC 地址为发送者本身,目标 MAC 地址为查询分组的发送者,也就是说,ARP 响应分组只有一个目的地,而非广播。
4、主机 A 终将收到主机 B 的响应分组,提取出该分组中的 IP 地址和 MAC 地址后,构造映射信息,加入到自己的 ARP 表中。
2.2不同局域网内的MAC寻址
更复杂的情况是,发送主机 A 和接收主机 B 不在同一个子网中。
假设一个一般场景,两台主机所在的子网由一台路由器联通。而且路由器的多个接口都各自维护一个 ARP 表,而非一个路由器只维护一个 ARP 表。
接下来,回顾同一子网内的 MAC 寻址,如果主机 A 发送一个广播问询分组,那么 A 所在子网内的所有设备(接口)都将不会捕获该分组,因为该分组的目的 IP 地址在另一个子网中,本子网内不会有设备成功接收。
那么,主机 A 应该发送怎样的查询分组呢?整个过程按照时间顺序发生的事件如下:
1、主机 A 查询 ARP 表,期望寻找到目标路由器的本子网接口的 MAC 地址。
- 目标路由器指的是,根据目的主机 B 的 IP 地址,分析出 B 所在的子网,能够把报文转发到 B 所在子网的那个路由器。
1.1主机 A 未能找到目标路由器的本子网接口的 MAC 地址,将采用 ARP 协议,问询到该 MAC 地址,由于目标接口与主机 A 在同一个子网内,该过程与同一局域网内的 MAC 寻址相同。
2、主机 A 获取到目标接口的 MAC 地址,先构造 IP 数据报,其中源 IP 是 A 的 IP 地址,目的 IP 地址是 B 的 IP 地址,再构造链路层帧,其中源 MAC 地址是 A 的 MAC 地址,目的 MAC 地址是本子网内与路由器连接的接口的 MAC 地址。主机 A 将把这个链路层帧,以单播的方式,发送给目标接口。
3、目标接口接收到了主机 A 发过来的链路层帧,解析,根据目的 IP 地址,查询转发表,将该 IP 数据报转发到与主机 B 所在子网相连的接口上。到此,该帧已经从主机 A 所在的子网,转移到了主机 B 所在的子网了。
4、路由器接口查询 ARP 表,期望寻找到主机 B 的 MAC 地址。
路由器接口如未能找到主机 B 的 MAC 地址,将采用 ARP 协议,广播问询,单播响应,获取到主机 B 的 MAC 地址。5、路由器接口将对 IP 数据报重新封装成链路层帧,目标 MAC 地址为主机 B 的 MAC 地址,单播发送,直到目的地。