网络基础(五):网络层协议介绍
目录
一、网络层
1、网络层的概念
网络层是OSI参考模型七老仔层协议中的第三层,介于传输层和数据链路层之间,它在数据链路谈穗层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。
2、网络层功能
①定义基于IP协议的逻辑地址(ip确定设备在网络位置)
②连接不同的媒介类型
③在网络中选择最佳路径转发数据
3、IP数据包格式
数据封装的时候在网络层会封装ip地址的头部,形成ip数据包
IP数据包格式:20字节的固定部分(每个ip数据包必须包含的部分)和40字节的可变长部分
版本(4) Version | 首部长度(4) Header Length | 优先级与服务类型(8) Type of Service | 总长度(16) Total Length | |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?标识符(16) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Identification | 标志(3) Flags | 段偏移量(13) Fragment Offset | ||
TTL(8) | 协议号(8) Protocol | 首部校验和(16) Header Checksum | ||
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?源地址Source IP Address(32) | ||||
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?目标地址Destination IP Address(32) | ||||
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 可选项Options | ||||
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 数据Data |
- 版本号(4bit):指IP协议版本为IPV4和IPV6。并且通信双方使用的版本必须一致,目前我们使用的IPv4,表示0100
- 首部长度(4):IP数据包的包头长度(不包括数据)
- 优先级与服务类型(8):该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,用于实现Qos(服务质量)的要求。即区分IP数据包的优先处理级别
- 总长度(16):定义IP数据包的总长度,最长为65535字节,包括包头和数据
- 标识符(16):该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片分配一组标号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包。即确定数据的分片是否来自于同一个文件
- 标志(3):代表数据过小不需要分片,代表该组最后一个数据包
- 段偏移量(13):该数据片离起点的位置坐标
- TTL生命周期(8):可以防止一个数据包在网络中无限循环的转发下去,每经过一个路由器-1, 当TTL的值位0时,该数据包将被丢弃。TTL≥128指win系统,TTL≤64指Linux系统
- 协议号(8):封装的上层那个协议,ICMP:1 IGMP:2 TCP:6 UDP:17
- 首部校验和(16):这个字段只检验数据报的首部,不包括数据部分。这是因为数据报没经过 一次路由器,都要重新计算一下首部校验和(因为一些字段如生存时间、标志、片偏移等可能发生的变化)
- 源地址(32):源IP地址,表示发送端的IP地址
- 目标地址(32):目标IP地址,表示接收端的IP地址
- 可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如:可以输入创建该数据包的时间等。在选项之后,就是上层数据。
- 数据
二、ICMP协议
1、ICMP的作用和功能
- ICMP是一个“错误侦测与回馈机制”
- 通过IP数据包封装的
- 用来发送错误与控制信息
实际上就是通过ping命令检测网络的双向联通性
2、ping命令的使用
2.1ping命令的通用格式
ping [选项/参数] IP地址
其中[选项/参数]指的是增加额外功能
2.2ping命令的常用参数
常用参数格式 | 功能描述 |
---|---|
ping -t ip地址 | 系统会一直不停地ping下去,按ctrl+c停止长ping |
ping -l size ip地址 | 指定数据包的大小 |
ping -w 等待时间(默认2毫秒) ip地址 | 超时等待时间 |
ping -n 指定次数(默认5次) ip地址 | 指定ping几次 |
2.3Type+Code:查看不同功能的ICMP报文
Type类型 | code代码 | 描述 |
---|---|---|
0 | 0 | Echo Reply回复 |
3 | 0 | 网络不可达 |
3 | 1 | 主机不可达 |
3 | 2 | 协议不可达 |
3 | 3 | 端口不可达 |
11 | 0 | 超时 |
8 | 0 | Echo Request请求 |
ping www.jd.com后使用抓包工具wireshark查看Type:8和code:0,表示Echo Request请求
2.4ping出现问题
①先ping 127.0.0.1,查看是否能ping通自己的设备,不能则说明硬件有问题
②查看发送方与接收方的IP地址是否有错误
③查看发送方与接收方是否在同一网络区域,不在同一区域再查看网关是否有问题
④防火墙策略是否有问题(可能接收方禁言icmp协议)
3、Tracert
Tracert (Trace Route)是一个网络诊断工具,用于跟踪数据包从源主机到目标主机的路径。Tracert 命令使用用 IP 生存时间 (TTL) 字段和?ICMP错误消息来确定从一个主机到网络上其他主机的路由这对于网络故障排除和性能优化非常有用
4、冲突域
定义:同一时间内只能有一台设备发送信息的范围
分层:基于OSI的第一层物理层
设备:第二层设备能隔离冲突域,比如Switch。交换机能缩小冲突域的范围,交换接的每一个端口就是一个冲突域
5、广播域
定义:如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域
分层:基于OSI的第二层数据链路层
设备:第三层设备才能隔离广播域,比如Router。路由器能隔离广播域,其每一个端口就是一个广播域
三、ARP协议
1、ARP协议的概念
ARP全称是“Address Resolution Protocol”(地址解析协议),ARP作用于以太网的环境之中,以太网环境之中数据的传输依赖的是MAC地址并不是我们所熟悉的IP地址,每个电脑都有一个IP地址记以及一个MAC地址(全球唯一),二者缺一不可。ARP协议的工作一是将IP地址转换为MAC地址就是ARP协议的工作,二是检测地址是否冲突。
2、ARP协议的工作原理
①当PC1发送数据给PC2时,会先检查自己的ARP缓存表,如果没有接收方的对应IP地址的MAC信息,PC1就会发送一个ARP请求。ARP请求信息包括PC1的IP地址和MAC地址以及PC2的IP地址和MAC(广播MAC:FF-FF-FF-FF-FF-FF)
②交换机接收到广播后,将PC1的IP地址和MAC地址保存到自己的ARP缓存表中,再做泛洪查询处理,除PC1外本地网络上所有的主机接收到ARP请求信息并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求
③PC2确定ARP请求中的IP地址与自己的IP地址匹配,则将发送方PC1的IP地址和MAC地址保存到本地ARP缓存表,再以单播点对点方式向PC1发送ARP应答
④当PC2的ARP应答经过交换机时,交换机再将PC2的IP地址和MAC地址保存到自己的ARP缓存表中。当PC2的ARP应答到达PC1时,PC1将PC2的IP地址和MAC地址保存到自己的ARP缓存表中,再以单播方式与PC2进行通信
⑤之后PC1和PC2的ARP缓存表中都有对方的IP地址和MAC地址就不需要再进行上述过程,直接通信
四、总结
网络层位于传输层与数据链路层中间,具有选择转发数据最佳路径的功能。ICMP协议(检测网络的双向联通性)与ARP协议(将IP地址转换成MAC地址)在网络层协议中至关重要,需要重点掌握。ICMP协议中的ping命令和tracert命令,ARP协议的工作原理,更是重点中的重点
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!