网络基础(五):网络层协议介绍
目录
一、网络层
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代码 | 描述 |
---|---|---|
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协议的工作原理,更是重点中的重点
相关文章:
网络基础(五):网络层协议介绍
目录 一、网络层 1、网络层的概念 2、网络层功能 3、IP数据包格式 二、ICMP协议 1、ICMP的作用和功能 2、ping命令的使用 2.1ping命令的通用格式 2.2ping命令的常用参数 2.3TypeCode:查看不同功能的ICMP报文 2.4ping出现问题 3、Tracert 4、冲突域 5、…...
浅显易懂 @JsonIgnore 的作用
1.JsonIgnore作用 在json序列化/反序列化时将java bean中使用了该注解的属性忽略掉 2.这个注解可以用在类/属性上 例如:在返回user对象时,在pwd属性上使用这个注解,返回user对象时会直接去掉pwd这个字段,不管这个属性有没…...
【计算机设计大赛作品】诗意千年—唐朝诗人群像的数字展现_附源码—信息可视化赛道获奖项目深入剖析【可视化项目案例-20】
🎉🎊🎉 你的技术旅程将在这里启航! 记得看本专栏里顶置的可视化宝典导航贴哦! 🚀🚀 本专栏为可视化专栏,包含现有的所有可视化技术。订阅专栏用户在文章底部可下载对应案例完整源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不论你…...
「Swift」Xcode多Target创建
前言:我们日常开发中会使用多个环境,如Dev、UAT,每个环境对应的业务功能都不同,但每个环境之间都只存在较小的差异,所以此时可以使用创建多个Target来实现,每个Target对应这个一个App,可以实现一…...
Python文件命名规则:批量重命名与规则匹配的文件
我从一个旧的 iOS 项目中获得了一个文件夹,其中包含许多类似于 image.png image2x.png another-image.png another-image2x.png然而,由于该项目现在只需要 2x.png 图像,我已经删除了所有的文件没有 2x 的名称。 但是我现在想知道如何轻松…...
『npm』一条命令快速配置npm淘宝国内镜像
📣读完这篇文章里你能收获到 一条命令快速切换至淘宝镜像恢复官方镜像 文章目录 一、设置淘宝镜像源二、恢复官方镜像源三、查看当前使用的镜像 一、设置淘宝镜像源 npm config set registry https://registry.npm.taobao.org服务器建议全局设置 sudo npm config…...
Java EE 多线程之线程安全的集合类
文章目录 1. 多线程环境使用 ArrayList1. 1 Collections.synchronizedList(new ArrayList)1.2 CopyOnWriteArrayList 2. 多线程环境使用队列2.1 ArrayBlockingQueue2.2 LinkedBlockingQueue2.3 PriorityBlockingQueue2.4 TransferQueue 3. 多线程环境使用哈希表3.1 Hashtable3.…...
明明随机数
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N<100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学…...
优思学院|如何建立公司运营指标体系?如何推行六西格玛改进运营指标?
关键绩效指标 (KPI) 是测量您团队或组织朝重要商业目标进展表现如何的量化指标,组织会在多个层面使用 KPI,这视乎您想要追踪何指标而定,您可以设定全组织的、特定团队的、或甚至是个人 KPI。 良好的KPI能让公司管理者掌握组织的营运是否进度…...
vue2 echarts不同角色多个类型数据的柱状图
前端代码: 先按照echarts插件。在页面里引用 import * as echarts from "echarts";设置div <div style"width:100%;height:250px;margin-top: 4px;" id"addressChart"></div>方法: addressEcharts() {const option {g…...
Mysql表的数据类型
数据类型 https://www.sjkjc.com/mysql/varchar/ MySQL 中的数据类型包括以下几个大类: 字符串类型 数字类型 日期和时间类型 二进制类型 地理位置数据类型 JSON 数据类型 MySQL 字符串数据类型 VARCHAR:纯文本字符串,字符串长度是可变的…...
c语言单向链表
看如下代码,这是一个完整的可运行的c源文件,要注意的点: c语言程序运行不一定需要头文件NULL其实是 (void*)0,把指针赋值成(void*)0,就是防止程序员不想该指针被引用的时候被引用,引用地址为0的值程序会引起系统中断&…...
『番外篇三』Swift “乱弹”之带索引遍历异步序列(AsyncSequence)
概览 在 Swift 开发中,我们往往在遍历集合元素的同时希望获得元素对应的索引。在本课中,我们将向小伙伴们展示除 enumerated() 方法之外的几种实现思路。在玩转普通集合之后,我们将用“魔法棒”进一步搞定异步序列带索引遍历的实现。 在本篇博主中,您将学到以下内容: 概…...
学习JVM
java虚拟机 流程:helloworld.java----(javac编译)----helloworld.class-------(java运行)——JVM——机器码JVM功能 *解释和运行 *内存管理 *即时编译(跨平台-慢一点)jit (反复用到的代码 解释保存再内存里面)…...
Oracle MongoDB
听课的时候第一次碰到,可以了解一下吧,就直接开了墨者学院的靶场 #oracle数据库 Oracle数据库注入全方位利用 - 先知社区 这篇写的真的很好 1.判断注入点 当时找了半天没找到 看样子是找到了,测试一下看看 id1 and 11 时没有报错 2.判断字段…...
Linux-RedHat系统-安装 中间件 Tuxedo
安装步聚 一、中间件安装包: tuxedo121300_64_Linux_01_x86 Tuxedo下载地址: Oracle Tuxedo Downloads 二、新建用户: (创建Oracle用户时,需要root权限操作) 创建用户: # useradd oracle …...
PHP中的依赖注入是怎样的?
依赖注入(Dependency Injection,DI)是一种设计模式,它用于解耦组件之间的依赖关系,提高代码的可维护性、可测试性和灵活性。在 PHP 中,依赖注入通常通过构造函数注入、方法注入或属性注入来实现。 以下是依…...
Python求小于m的最大10个素数
为了找到小于m的最大10个素数,我们首先需要确定m的值。然后,我们可以使用一个简单的算法来检查每一个小于m的数字是否是素数。 下面是一个Python代码示例,可以找到小于m的最大10个素数: def is_prime(n): if n < 1: …...
系统的安全性设计
要设计一个安全的系统,除了要了解一些前面讲到的常用的保护手段和技术措施外,还要对系统中可能出现的安全问题或存在的安全隐患有充分的认识,这样才能对系统的安全作有针对性的设计和强化,即“知己知彼,百战百胜”。 下…...
美容店预约小程序搭建指南
随着互联网的发展,越来越多的传统行业开始尝试将业务与互联网相结合,以提供更加便捷、高效的服务。美容行业也不例外。本文将通过使用第三方制作平台,如乔拓云网,指导您如何搭建一个美观实用的美容店预约小程序,帮助您…...
AI:ElasticSearch
ElasticSearch是一款开源的分布式搜索引擎和数据分析引擎,主要用于处理海量数据并提供近实时的搜索和分析功能。它具有全文检索、结构化检索和数据分析等特点,能够满足各种复杂的搜索需求。ElasticSearch使用Java编写,可以运行在多个服务器上…...
如何用 Python 代码打包成一个可执行的 exe 文件?
将Python代码打包成可执行的EXE文件通常需要使用第三方工具,其中PyInstaller是一个流行的选择。PyInstaller可以将Python脚本打包成独立的可执行文件,无需用户安装Python解释器。 打包Python代码成EXE文件的步骤 步骤1:安装PyInstaller 首…...
【Hive】——CLI客户端(bin/beeline,bin/hive)
1 HiveServer、HiveServer2 2 bin/hive 、bin/beeline 区别 3 bin/hive 客户端 hive-site.xml 配置远程 MateStore 地址 XML <?xml version"1.0" encoding"UTF-8" standalone"no"?> <?xml-stylesheet type"text/xsl" hre…...
简约大气视频制作模板PR剪辑素材PR项目工程文件
Premiere Pro模板,简约大气视频剪辑素材PR项目工程文件(包含手机竖屏分辨率),包含24个媒体占位符和9个文本占位符。可以编辑和自定义文本占位符和媒体占位符。用来展示照片视频制作。包含视频教程。 来自PR模板网:http…...
Guarded Suspension(担保挂起)设计模式
当线程访问某个对象时,发现条件不满足,暂时挂起等待条件满足时再次访问。Guarded Suspension模式是一个非常基础的模式,主要关注(临界值)不满足时将操作的线程正确挂起,以防止出现数据不一致或者操作超过临…...
禾匠榜店商城系统 RCE漏洞复现
0x01 产品简介 禾匠榜店商城系统是浙江禾匠信息科技有限公司的一套基于PHP和MySQL的商城系统。 0x02 漏洞概述 禾匠榜店商城系统的api/testOrderSubmit模块下的preview方法存在命令执行漏洞,攻击者可以向服务器写入木马文件,直接获取服务器权限 0x03 漏洞概述 FOFA:bod…...
Python移动未标注的图片数据集
Python移动未标注的图片数据集 前言前提条件相关介绍实验环境Python移动未标注的图片数据集情况一:有图,无标注文件代码实现输出结果 情况二:有图,有标注文件,但标注信息为空代码实现输出结果 情况一与情况二同时都考虑…...
判断css文字发生了截断,增加悬浮提示
示例: 固定显示宽度,溢出显示...,利用了css的属性,想要实现成下面这样: 针对溢出的文字,hover显示全部。 提示很好加,使用tooltip组件就行了,难点是如何判断是否发生了文字溢出。…...
day33-37-SpringBootV12(整合Spring,SpringMVC,Mybatis,日志,api测试等框架)
ssm spring --> applicationContext.xml配置文件 springmvc --> springmvc.xml配置文件 mybatis —> mybatis-config.xml配置文件 —> springboot优化了之前的框架配置,思想是约定大于配置 一、引言 1.1 初始化配置 为了使用SSM框架去开发,准备SSM…...
如何处理好面试中的“压力测试”?
作为一名求职者,在面试时有时遇到的是压力测试,有时则遇到的是一些无良企业单位,究竟如何把握忍耐的限度,才合格当一个能经受压力的员工,才能避免对无良单位的一味隐忍! 压力面试是指有意制造紧张,以了解求…...
wordpress卢松松2019/关键词提取工具
安转插件:案例格式化HTML代码,需要安装插件,具体安装步骤如下: 1、打开菜单->首选项->插件控制,输入 install package 2、等待程序进入插件管理功能,再输入插件名称:TAG 3、点击安装插件。…...
关于单位网站建设的报告/百度做网站
http://www.jianshu.com/p/d296a8c34936?hmsrtoutiao.io&utm_mediumtoutiao.io&utm_sourcetoutiao.io Redux由Flux演变而来,提供几个简单的API来实现状态管理,所谓状态指的是应用数据,所以,Redux本质上是用来管理数据的…...
淘宝联盟推广做网站违法/新网站百度seo如何做
Minimal Viable Plasma上期的内容我们分享了Qtum MVP的操作流程,有读者提出疑问该如何理解这些代码,今天就为大家分享MVP的技术详解。Plasma MVP以一种非常简单的方式提供Plasma系统的基本安全特性。在Plasma MVP中,用户一旦发现任何不法行为…...
网站设计工资待遇/长沙网站建设
1.0 2.0 3.0 uncomplex未压缩版本很多空格 换行 利于阅读 complex压缩版本 下载jqurey库 http://code.jqurey.com/引入下载的jqurey库编写代码 jq入口函数有三种写法 jq冲突问题...
好用的免费建站网站/企业网络营销顾问
前言 俗话说“生于忧患,死于安乐”,其实大部分中年危机,就是在安乐中产生的。 有的人或许会反驳,“照你这么说,我还必须奋斗了,不奋斗就要死,难道选择安逸的生活就不对吗?我就没有…...
网站seo站外优化/网页设计可以自学吗
大家都知道网站对一个企业的网络营销和推广来说非常重要,现在越来越多的企业选择自助建站,最大优点的节约费用,没有建站经验也能做出一个功能强大,甚至比专业网站建设公司更专业的网站,自助建站分为自助建站系统和在线…...