当前位置: 首页 > news >正文

网络基础(五):网络层协议介绍

目录

一、网络层

1、网络层的概念

2、网络层功能

3、IP数据包格式

二、ICMP协议

1、ICMP的作用和功能

2、ping命令的使用

2.1ping命令的通用格式

2.2ping命令的常用参数

2.3Type+Code:查看不同功能的ICMP报文

2.4ping出现问题

3、Tracert

4、冲突域

5、广播域

三、ARP协议

1、ARP协议的概念

2、ARP协议的工作原理

四、总结


一、网络层

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代码描述
00Echo Reply回复
30网络不可达
31主机不可达
32协议不可达
33端口不可达
110超时
80Echo 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协议的工作原理,更是重点中的重点

相关文章:

  • Crow:黑魔法 调用Rule绑定的handler_
  • 数据分享 I 全国市级商品房屋销售数据,shp/excel格式,2005-2020年数据
  • 【玩转TableAgent数据智能分析】利用TableAgent进行教育数据分析
  • 关于Pytorch和Numpy中的稀疏矩阵sparse的知识点
  • 模板方法模式(行为型)
  • 力扣每日一题:2132. 用邮票贴满网格图(2023-12-14)
  • ElementPlus中的分页逻辑与实现
  • 【算法】【动规】乘积为正数的最长子数组长度
  • 【期末复习向】n元gram的应用
  • CentOS 防火墙管理及使用的redis基本常用命令
  • EasyExcel-最简单的读写excel工具类
  • 【Vue】日常错误总结(持续更新)
  • acwing算法提高之动态规划--状态机模型
  • Python接口自动化 —— Json 数据处理实战(详解)
  • 2019年第八届数学建模国际赛小美赛C题预测通过拥堵路段所需的时间解题全过程文档及程序
  • 【刷算法】从上往下打印二叉树
  • Android Volley源码解析
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • in typeof instanceof ===这些运算符有什么作用
  • laravel5.5 视图共享数据
  • Objective-C 中关联引用的概念
  • Python学习笔记 字符串拼接
  • tweak 支持第三方库
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 读懂package.json -- 依赖管理
  • 分享一份非常强势的Android面试题
  • 你真的知道 == 和 equals 的区别吗?
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 手写一个CommonJS打包工具(一)
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 系统认识JavaScript正则表达式
  • 小程序开发之路(一)
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #include<初见C语言之指针(5)>
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #Lua:Lua调用C++生成的DLL库
  • (12)Hive调优——count distinct去重优化
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (七)Java对象在Hibernate持久化层的状态
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • ******之网络***——物理***
  • .NET 反射的使用
  • .net与java建立WebService再互相调用
  • .net中调用windows performance记录性能信息
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @RestControllerAdvice异常统一处理类失效原因
  • @我的前任是个极品 微博分析