网络层协议

news2025/3/1 9:50:54

目录

MAC地址

前言

相关命令

IP地址

IPV4与IPV6

IPV6注意事项

IPV4

IPV4的10进制形式转化为2进制

IP地址的组成

子网掩码

网络地址与广播地址

子网掩码的CIDR的表示方法

子网掩码的使用

IP地址的分类(IPV4为例)

公有地址与私有地址

前言:

子网划分

子网划分的原因

子网划分分类

需求案例

超网

需求案例

合并网段的规律

ARP协议

前言

执行过程

ARP协议报文格式

实施ARP欺骗攻击

欺骗网关步骤

网络层IP协议

前言:

数据包的理解:

理解片偏移

生存时间存在的意义

ICMP协议

前言

ICMP报文

type与code

MAC地址

前言

含义:也称物理地址或硬件地址,由网络制造商生产时写在硬件的内部,其写在电脑的网卡里面。

mac地址由48个二进制/12个16进制数字组成(6字节);前3个字节OUI组织唯一标识符(由IEEE的注册管理机构分配给厂商) ;后三个字节网络接口标识符(由厂商自行分配)

注意:

  • mac地址具有全球唯一性,其固化在了网卡的ROM中,由IEEE802标准规定
  • 当mac地址48位全为1时,代表广播地址(FF-FF-FF-FF-FF-FF)
  • 当不知道对方主机的mac地址时,可以通过发送arp广播获取对方的mac地址,获取成功后,会缓存IP地址、mac地址的映射信息,俗称arp缓存
  • 通过arp广播获取的mac地址属于动态缓存,存储时间较段(默认是2分钟)过期了自动删除

相关命令

查询mac地址:ipconfig/all

查询arp缓存:arp -a [主机地址]

删除arp缓存:arp -d [主机地址]

增加静态arp缓存:arp -s 主机地址 MAC地址

IP地址

含义:电子设备(计算机)在互联网中的唯一标识,也称逻辑地址。(网络号+主机号)

IPV4与IPV6

  • IPV4:IPV4地址表示点分十进制格式,32位地址分成4个8位分组,每个8位以10进制显示,中间用点来分割。
  • IPV6:IPV6采用16进制格式,即128位地址采用每16位为一个分组(共8组),每个16位分组写成4个16进制数,中间用冒号来分16进制格式。

IPV6出现的原因:IPV4地址枯竭,同时它也在其他方面对于IPV4有所改进

IPV6注意事项

  • 每组前面连续的0可以省略
  • 可以用"::"表示一组或多组连续的0,但只能出现1次
  • ::1(0:0:0:0:0:0:0:1)是本地环回地址

IPV4

IPV4的10进制形式转化为2进制

使用方法:

eg:255.255.255.132

        因为255=128+64+32+16+8+4+2+1

               132=128+0+0+0+0+4+0+0

推算:11111111.11111111.11111111.10000100 

IP地址的组成

  • 网络部分:用于标识网络的范围(网络id)
  • 主机部分:用于标识网络范围中的一个节点(主机id)

网段:两个IP地址的网络号相同就说明他们处于同一个网段。 

子网掩码

含义:ip地址由网络位和主机位组成,子网掩码主要用于区分网络位与主机位。

使用IP地址和子网掩码进行按位&运算得出网络位(1&1=1

使用子网掩码来得出网络部分与主机部分,在本网络的第一个地址就是网络地址,本网络的最后一个地址就是广播地址

网络地址与广播地址

  • 网络地址(网段):其是主机地址全为0的地址,是编码中比较特殊的一部分,它用来表明一个网段,不能分配给主机
  • 广播地址:其是主机地址全为1的地址,其是专门用来向特定网段发送广播的地址,也不能分配给主机;当发出一个目标地址为10.1.1.255(广播地址)的分组封包时,他将被分发给该网段上所有的计算机

子网掩码的CIDR的表示方法

CIDR(classless inter-domain routing):无类别域间路由

例子

  • 192.168.1.100/24,代表子网掩码有24个1,也就是255.255.255.0
  • 123.210.100.200/16,代表子网掩码有16个1,也就是255.255.0.0 

子网掩码的使用

eg:192.168.0.2/30 (说明前面30位二进制数为网络位)

       因此子网掩码为:255.255.255.252

网络地址为:192.168.0.0

广播地址为:192.168.0.3 

注意:

  • 同一网段的计算机,网络id相同
  • 可以通过子网掩码来计算出网络id
  • 子网掩码越长代表网络部分越长,网络范围越小,反之网络范围越大
  • 网络地址代表一个范围,不能给主机使用
  • 广播地址代表本网段的所有地址,也是不能够给主机使用
  • 当一台计算机ping另外一个计算机的IP地址时,会拿自己的子网掩码按位&来计算对方网段,然后对比和自己是否属于同一个网段

IP地址的分类(IPV4为例)

前言:IP地址分为A、B、C、D、E五类

A类:确定前8位为网络位(默认),后24位为主机位并且以0开头(子网掩码:255.0.0.0)

注意:第一个8位组范围:0——127,由于0代表本地网络,127开头的地址一般用于回路检测,最终范围:0——126(ping 127.0.0.1相当于ping自己的主机)

B类:确定前16位为网络位(默认),后16位为主机位,并且以10开头(子网掩码:255.255.0.0)

C类:确定前24位为网络位(默认),后面8位为主机位,并且以110开头(子网掩码:255.255.255.0) 

D类:是多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。一般用于多路广播用户 。(没有子网掩码)

E类:是保留地址。该类IP地址的最前面为“1111”,所以地址的网络号取值于240~255之间。

注意:

  • 只有A、B、C类地址可以分配给主机 
  • 地址的类别与子网掩码无关,主要看的是前8位组的范围来划分

公有地址与私有地址

前言:

  • 在Internet上的路由器中只有到达公网的路由表,没有到达私网的路由表
  • 公网IP由因特网信息中心(inter NIC)统一分配和管理
  • ISP需要向Inter NIC申请公网IP
  • 除去私有IP范围的地址就是公有IP范围的地址

在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下: 

  • A类地址:10.0.0.0~10.255.255.255 
  • B类地址:172.16.0.0~172.31.255.255 
  • C类地址:192.168.0.0~192.168.255.255 

子网划分

前言:为了方便进行网络管理,这时候就需要将一个大的网络分割成多个小网络

含义:借用主机位作为子网位,划分多个子网

子网划分的原因

  • 从公网层面来讲A类地址总共有126个网络,假设一个A类网络给某一个企业或者一个机构使用,由于A类地址在主机部分范围比较广,造成这个企业或机构无法全部用完,造成IP地址的浪费(节省IP地址)
  • 实现网络的层次性
  • 满足不同网络对IP地址的需求

子网划分分类

  • 等长子网划分:将一个网段分成多个子网,每个子网的可用ip地址数量是一样的
  • 变长子网划分:将一个网段分成多个子网,每个子网的可用ip地址数量是不一样的 

理解:

等长子网划分:191.100.0.0/16分为2个相等的191.100.0.0/17和191.100.128.0/17 

变长子网划分:191.100.0.0/16分为191.100.0.0/17和191.100.128.0/18和191.100.192.0/18

总结:变长子网划分相对于等长子网划分,就是他划分的子网可以不等长。 

需求案例

若需要让100台主机在同一网段内,那么就分配一个C类网段,比如192.168.0.0/24

分配100台——能用256-2=254(浪费!)

192.168.0.0/24分为

192.168.0.0/25和192.168.0.128/25两个网段

这样每个网段能用的主机数为128-2=126台

超网

含义:跟子网反过来,他是将多个连续的网段合并成一个更大的网段

需求案例

原有200台计算机使用192.168.0.0/24网段,现在希望增加200台设备到同一个网段(前提有192.168.0.0和192.168.1.0)

因为总共需要400台主机位,我们可以将200台放在192.168.0.0/24网段,200台放在192.168.1.0/24网段,我们可以将这两个网段合成一个超网192.168.0.0/23(子网掩码左移一位)

合并网段的规律

注意:一定要清楚网段的含义

ARP协议

前言

含义:(address resolution protocol)地址解析协议,IP地址与MAC地址相比,只是个抽象的产物,将复杂的MAC地址进行了封装,让你以为实际是使用IP地址直接转发的。所以与DNS一样,还需要将IP地址转换为MAC地址来实现转发。这个协议就是ARP协议。

总结:在计算机网络中发送信息,我们只需要填写内容和对方的ip地址操作系统会根据目标ip自动查询arp表来获取对方的mac地址补齐这封信,从网卡发出。

注意:ARP协议是一个三层协议,但是工作在二层

执行过程

当计算机A想向计算机B发送消息时,操作系统并不会立即发出,其会发送一包arp广播报文出去,询问此IP地址的mac地址是多少此时该网段中的所有设备都收到了这个请求报文除了此ip地址以外的设备都会丢弃这个报文只有此ip的设备会回复自己的mac地址是多少,计算机A收到计算机B的mac地址后会先将计算机B的mac地址缓存到arp表(mac地址与ip地址的映射表)中,以便下次使用其后会将这封信补全从网卡发送出去,交换机根据目标mac地址找到计算机B所在的端口从此端口发送出去,计算机B便收到了数据。 

ARP协议报文格式

ARP报文格式

实施ARP欺骗攻击

  • 环境:kial linux
  • 被攻击主机:win 10

欺骗网关步骤

1.安装好kail与win 10虚拟机

2.在kail里面配置源

vim /etc/apt/sources.list

3.kail内更新刚刚配置好的源

apt-get update

4.kail内安装arpspoof工具(该工具集成在dsniff这个工具里面)

apt-get install dsniff

5.查看win 10的IP地址和网关(ipconfig/all)

6.kail内实施arp攻击

arpspoof -i 本机的网卡名 -t 攻击的目标主机的IP地址 目标主机的网关地址

阅读:不断向目标主机(0:c:29:db:1f:97)应答192.168.13.2(目标主机的网关)的MAC地址为(0:c:29:3d:89:72)
7.在win 10内打开wireshark工具

点击捕获-》选项-》自己使用的网卡-》捕获过滤器输入arp后点击开始进行分析

阅读:来自MAC地址为3d_8972(kail)向db:1f:97(win 10)的arp协议消息,消息内容为192.168.13.2(目标主机的网关)的MAC地址为(0:c:29:3d:89:72)

8.用win 10来进行上网,发现win10上网失败

9.kail开启ip转发功能(向文件内写入1)

echo 1 >> /proc/sys/net/ipv4/ip_forward

10.win10再次联网,发现联网成功

总结:win10把kail当成了网关,若kail开启转发功能则win10就可以上网,kail以这种技术实现了监听功能

网络层IP协议

前言:

  • 网络层传输的数据为数据包(Packet),数据包由首部、数据两部分组成
  • 网络层的数据一般都是由传输层传递下来的数据段
  • 网络层数据的首部至少是20字节、最长60字节,整个数据包大小不超过65535字节

数据包的理解:

  • 版本:占4位,网络版本(IPV4/IPV6)
  • 首部长度:数据包首部所占用的空间,占4位,二进制最终乘4才是最终长度(决定了首部最长60字节)
  • 区分服务:占8位,其可以提高网络的服务质量(优先级)
  • 总长度:占16位(2字节)代表数据包整体的长度,最大长度为2^16=65535字节
  • 标识:占16位, 数据包的id,当数据包过大进行分片时,同一个数据包所有的片标识都是一样的(有一个计数器专门管理数据包的id,每发出一个数据包,id就加1;一旦数据包超过2^16那么id又会从0开始算起)
  • 标志:占3位,第一位(保留位)第二位(是否允许分片)第三位(1代表不是最后一片,0代表最后一片)
  • 片偏移:占13位(片偏移×8就等于字节偏移——每一片的长度一定是8字节的整数倍),字节偏移就是分片后数据头部的起始位置
  • 生存时间:占8位,每个路由器在转发之前会将TTL减1,一旦发现TTL减去后为0,路由器就会显示错误报告
  • 协议:占8位,表明所封装的数据使用了什么协议(封装所用的协议以数字进行表示)
  • 首部检验和:占16位,将网络包首部进行一个计算,计算出一个值

理解片偏移

前言:因为网络层的数据需要传递给数据链路层,数据链路层的数据需要转换成以太网帧,而帧的数据部分不能超过1500字节,而数据包的最大长度为65535字节,已经超过1500字节;此时就需要将数据包进行分片,并且将分片好的数据传递给数据链路层,每片数据都是一个独立的以太网帧,都有自己的网络层首部,总长度都不会超过1500字节

例子:ping ke.qq.com -l 4000

注意:通过分片的标识可以知道那些帧都共同属于之前的网络包,通过片偏移可以知道每个帧都属于之前网络包的那个位置

生存时间存在的意义

我们的路由器都有路由表,用来决定路由器之间的传递规则,很多路由器都会设置默认路由(就是目标地址不确定就会走默认路由器),若发的数据包在所选的路由器都不可达,那么数据包就有可能在默认路由器之间来回穿梭,这样就长时间占用了带宽,设置了TTL就会防止数据包在信道中无穷无尽的传递

注意:观察使用ping命令后的TTL,能够推测出对方的操作系统、中间经过了多少个路由器

ICMP协议

前言

含义:internet控制报文协议,用于在IP主机、路由器之间传递控制消息,控制消息指网络通不通,主机是否可达,路由是否可用等等。

注意:ICMP协议主要是通过ping这个工具实现的

  • 字节=32:ping数据的大小为32字节
  • 时间:ICMP数据包从源到目的,然后从目的再返回源所花费的时间
  • TTL:Time To Live,生存周期

注意:每经过一台三层设备TTL会减一,当TTL减少到0时,三层设备就会丢弃该数据包,TTL存在的意义就是防止一个数据包在网络当中永无止境的传递

ICMP报文

type与code

类型代码说明
80请求
00回显应答(比较正常的应答)
31目标不可达(主机不可达)
110超时(传输期间生存时间为0)
33目标不可达(端口不可达)
32协议不可达
50重定向(网络重定向)
51主机重定向

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/361045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络模型、网络连接

网络模型、网络连接网络模型OSI模型:应用层表示层会话层传输层网络层数据链路层物理层网络连接Socket(套接字)流套接字(sock_stream)数据报套接字(sock_dgram)原始套接字(sock_raw)网络模型 OSI模型: 百度…

Kroger EDI 855 采购订单确认报文详解

本文着重讲述Kroger EDI项目中,供应商发给Kroger的X12 855EDI 规范报文(采购订单确认)解读。 在此前的文章如何读懂X12报文中,我们对X12已经做了详细的介绍,大家可以以此为基础,深入了解855采购订单确认报…

CMake构建工具使用教程

1.简介 CMake是一个开源的、跨平台的C构建工具,通过平台和编译器无关的配置文件来声明构建目标,支持Make、ninja、MSBuild等多种底层构建工具,大多数IDE(例如CLion、Visual Studio、Visual Studio Code等)也都支持CMa…

【ZOJ 1067】Color Me Less 题解(vector+开方)

问题 颜色缩减是从一组离散颜色到较小颜色的映射。这个问题的解决方案需要在标准的24位RGB颜色空间中执行这样的映射。输入由十六个RGB颜色值的目标集合和要映射到目标集合中最接近的颜色的任意RGB颜色集合组成。为了我们的目的,RGB颜色被定义为有序三元组&#xff…

OpenGL ES 绘制一张图片

GLSL 语法与内建函数 GLSL 的修饰符与数据类型 GLSL 中变量的修饰符 const:修饰不可被外界改变的常量attribute:修饰经常更改的变量,只可以在顶点着色器中使用uniform:修饰不经常更改的变量,可用于顶点着色器和片段…

vue中go.js的使用教学(五:数据绑定)

一、一个简单的数据绑定(go.Binding)看注释为绑定 diagram.nodeTemplate $(go.Node, "Auto",$(go.Shape, "RoundedRectangle",{ fill: "white" },new go.Binding("fill", "color")), // shape.fill …

Nginx 部署 Vue 项目以及 Vue 项目刷新出现 404 的问题(完整步骤)(亲测有效)

Nginx 部署 Vue 项目以及 Vue 项目刷新出现 404 的问题(完整步骤)(亲测有效) 1.流程步骤(本教程下载的是1.20.2版本,放在D盘) 1-1. 首先去官方下载 nginx ,然后在当前目录下创建ht…

大幅提升爬取效率的一款实用工具

在做爬虫的时候,我们往往可能这些情况:网站比较复杂,会碰到很多重复请求。有时候爬虫意外中断了,但我们没有保存爬取状态,再次运行就需要重新爬取。还有诸如此类的问题。那怎么解决这些重复爬取的问题呢?大…

什么国产蓝牙耳机颜值高又好用?好用且高颜值蓝牙耳机推荐

随着蓝牙耳机的受欢迎程度加深,其受众群体也越来越多样。什么国产蓝牙耳机颜值高又好用?针对这个问题,我来给大家推荐几款好用且颜值高的蓝牙耳机,可以当个参考。 一、南卡小音舱蓝牙耳机 参考价:239 蓝牙版本&…

Go进阶(3):上下文context

一、背景 在 Go http包的Server中,每一个请求在都有一个对应的 goroutine去处理。请求处理函数通常会启动额外的goroutine用来访问后端服务,比如数据库和RPC服务。一个上游服务通常需要访问多个下游服务,比如终端用户的身份认证信息、验证相关…

【网工最关心的问题,看Chat GPT怎么回答?】

最近打开微信群聊,都是在说ChatGPT相关内容 那ChatGPT是什么? ChatGPT是由美国人工智能实验室OpenAI开发的一个对话AI模型,于2022年11月正式推出。它因其极其出色的文本生成和对话交互能力在世界范围内迅速走红,五天内用户破百万&…

19岁就患老年痴呆!这些前兆别忽视!

在大部分人的印象中,阿尔兹海默症好像是专属于老年人的疾病,而且它的另一个名字就是老年痴呆症。然而,前不久,一位19岁的男生患上了阿尔兹海默症,是迄今为止最年轻的患者。这个男生从17岁开始,就出现了注意…

return和finally执行顺序、运行时异常与一般异常异同、error和exception区别、Java异常处理机制原理与应用

文章目录1.try {}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?2.运行时异常与一般异常有何异同?3.java 程序中的错误有三种类型分别是什么4.error和exception有什么…

GitHub推送报错:You‘re using an RSA key with SHA-1, which is no longer allowed

文章目录1、问题描述2、解决方案:重新生成密钥对3、将生成的公钥添加到GitHub4、向GitHub推送代码测试1、问题描述 在向GitHub推送代码的时候,执行git push命令出现如下问题: 原因是github不再支持RSA算法生成的密钥了,我们需要重…

《爆肝整理》保姆级系列教程python接口自动化(二十)--token登录(详解)

简介 为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。有些登录不是用 cookie 来验证的,是用 token 参数来判断是否登录。token 传参有两种一种是放在请求头里,本质上是跟 cookie 是一样的&…

微机原理学习总结0:前言

近期结束了微机课程的学习,(指刚考完试),正常情况下,后面应该不会再接触这门课程了,故在此记录自己这段时间的收获。 首先,十分推荐b站的一门课程,老师讲的很细致,很适合…

21个有用的python工具

Python是最流行的编程语言之一。 它简单、强大,并且由一个致力于开源项目的社区驱动。Python的大量使用是它如此流行的原因; 您可以免费构建软件、开发Web服务、执行数据分析和可视化以及训练机器学习模型。 Python开发工具 开发工具帮助我们构建快速可靠的Python…

生物素点击试剂1884349-58-9,Alkyne-PEG3-Biotin Diazo,炔基PEG3生物素重氮

Diazo Biotin-PEG3-alkyne,Alkyne-PEG3-Biotin Diazo,重氮生物素-PEG3-炔烃,重氮生物素PEG3炔烃,炔基PEG3生物素重氮产品结构式:产品规格:1.CAS号:1884349-58-92.分子式:C39H53N7O9S…

HANA SDA-远程数据源访问

我们需要把其他系统的数据拿过来,到BW里和财务的数据集成。 HANA SDA就是不复制数据,建立虚拟表(virtual table)来映射到远程数据源。通过这个虚拟表访问其他系统的数据。 对虚拟表的操作现在也可以查询,更新&#xff…

熵权法计算权重

文章目录1. 多属性决策问题2. 熵(entropy)3. 信息熵4. 熵权法5. 熵权法的实现基于信息论的熵值法是根据各指标所含信息有序程度的差异性来确定指标权重的客观赋权方法,仅依赖于数据本身的离散程度。熵用于度量不确定性,指标的离散…