网络层协议

目录

MAC地址

前言

相关命令

IP地址

IPV4与IPV6

IPV6注意事项

IPV4

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

IP地址的组成

子网掩码

网络地址与广播地址

子网掩码的CIDR的表示方法

子网掩码的使用

IP地址的分类(IPV4为例)

公有地址与私有地址

前言:

网络数据的传输方式

子网划分

子网划分的原因

子网划分分类

需求案例

超网

需求案例

合并网段的规律

ARP协议

前言

执行过程

ARP协议报文格式

数据流动

网络层IP协议

前言:

数据包的理解:

理解片偏移

生存时间存在的意义

ICMP协议

前言

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 

网络数据的传输方式

  • 单播:一种向单个目标地址传送数据的方式,也就是单独的一对一的通信方式,发送端会将数据封装成数据包以目标地址(通常是一个单独的IP地址)为目的地进行传输。单播是最常见的网络传输方式,它可以使用TCP、UDP协议
  • 组播:其是指向一个组中发送数据包的方式。在组播中,数据包被发送到特定的IP地址,该IP地址同时也是该组中所有设备的组ID,这样,组内的所有设备都能够接收同一数据包。
  • 广播:其为一种向本地网络中的所有设备发送数据的方式。在广播中发送端并不指定特定的接收方,而是将数据包发送到该网络的所有设备。
  • 任播:其为将一个数据包发送到一个指定的设备集合(通常是距离发送端最近的设备),而不指定任何目的地址。

子网划分

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

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

子网划分的原因

  • 从公网层面来讲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协议。

注意:

  • ARP协议是一个三层协议,但是工作在二层。
  • ARP作用是将一个已知的IP地址解析成MAC地址
  • 在计算机网络中发送信息,我们只需要填写内容和对方的ip地址操作系统会根据目标ip自动查询arp表来获取对方的mac地址补齐IP包,从网卡发出。

执行过程

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

注意:

  • 在计算机中维护着一个IP地址和MAC地址映射的表,这个表叫做ARP表。
  • ARP缓存在电脑关机后就消失了。
  • 计算机a和计算机b通信,若计算机a和b都在同一网段,那么计算机a就通过arp协议获得计算机b的mac地址,若计算机a和b不在同一网段,那么计算机a就通过arp协议获得自己的网关mac发出。

ARP协议报文格式

ARP报文格式

理解:

  • 硬件类型:硬件地址不只有以太网一种,是以太网类型时此值为1
  • 上层协议类型:表示要映射的上层协议类型,IPV4则为0x0800
  • MAC地址长度:就MAC地址的长度,为6
  • IP地址长度:就IP地址长度,为4
  • 操作类型:表示这个报文的类型,arp请求为1,arp响应为2,RARP请求为3,RARP响应为4

数据流动

  • 广播请求:计算机a向计算机b发送arp报文(源mac:计算机amac,目标mac:广播mac;源ip:计算机aip,目标ip:计算机bip;数据:谁是计算机b的ip地址,将mac地址告诉计算机a的IP地址
  • 单播响应:计算机b向计算机a发送arp响应(源mac:计算机bmac,目标mac:计算机amac;源ip:计算机bip,目标ip:计算机aip;数据:ip为计算机bip的计算机mac地址为计算机b的mac地址)

网络层IP协议

前言:

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

数据包的理解:

  • 版本:占4位,网络版本(IPV4/IPV6)用来告诉上层自己协议的版本,以便上层进行对应的操作
  • 首部长度:数据包首部所占用的空间,占4位,二进制最终乘4才是最终长度(决定了首部最长60字节)因为固定首部20字节,所以可以告诉接收端是否启用了可选项
  • 区分服务:占8位,其可以提高网络的服务质量;其中前3bit代表优先级,中4bit代表服务类型,最后1bit未被使用
  • 总长度:占16位(2字节)代表数据包整体的长度,最大长度为2^16=65535字节;通过总长度和首部长度可以算出数据长度
  • 标识:占16位, 数据包的id,当数据包过大进行分片时,同一个数据包所有的片标识都是一样的(有一个计数器专门管理数据包的id,每发出一个数据包,id就加1;一旦数据包超过2^16那么id又会从0开始算起)
  • 标志:占3位,第一位(保留位)第二位(是否允许分片,0代表IP包进行了分片,1代表IP包没进行分片)第三位(1代表不是最后一片,0代表最后一片)
  • 片偏移:占13位(片偏移×8就等于字节偏移——每一片的长度一定是8字节的整数倍),字节偏移就是分片后数据头部的起始位置
  • 生存时间:占8位,每个路由器在转发之前会将TTL减1,一旦发现TTL减去后为0,路由器就会显示错误报告
  • 协议:占8位,表明所封装的数据使用了什么协议(封装所用的协议以数字进行表示)其用来识别上层协议,决定数据走向(走向那个协议)
  • 首部检验和:占16位,将网络包首部进行一个计算,计算出一个值,用来查看首部在传输过程中IP首部是否出现差错,若出错,则该包被丢弃。

理解片偏移

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

注意:分片是对IP包的数据部分进行分片(不包括IP首部)

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

注意:通过分片的标识可以知道那些帧都共同属于之前的网络包,通过片偏移可以知道每个帧都属于之前网络包的那个位置,通过标志位可以判断该分片是否为最后一个分片。

生存时间存在的意义

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

注意:

  • 我们给别人发包时,发给别人的每个IP包文上都会有一个值,这个值叫初始TTL值,若TTL值为0,路由器就会把该包丢弃。
  • TTL作用:防止一个数据包在互联网上无限的循环下去,占用网络资源
  • 由于不同操作系统的默认TTL不一样所以,观察使用ping命令后的TTL,能够推测出对方的操作系统、中间经过了多少个路由器

ICMP协议

前言

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

注意:

  • ICMP协议没有端口号(只有应用层协议才有端口号)
  • ICMP协议主要是通过ping这个工具实现的

ICMP协议作用

  • 网络探测:ping网络检测
  • 路由跟踪:(windows:tracert IP地址)(linux/路由:traceroute IP地址)
  • 错误反馈:只要是发生错误,任何一台设备有义务向别人发送ICMP回馈(通过抓包软件获取)

ICMP报文

注意:

  • 探测报文的头部用来表明是那种探测,或者是那种回馈机制。
  • 探测报文的数据由ICMP协议生成,往往是一个填充报文,仅仅作为一个普通意义的通信,没有具体意义(只是为了让对方收到这样一个数据证明对方收到数据了,然后再回馈我们)

头字段

type字段

前言:type字段主要表示操作类型。

  • 8:ping请求
  • 0:ping应答
  • 3:目标不可达
  • 11:超时(传输期间生存时间为0)
  • 5:重定向

code字段

前言:code字段表示设备类型(其与type字段一起使用)

  • 1:表示与主机相关的操作
  • 3:表示与端口相关的操作
  • 2:表示与协议相关的操作

具体案例

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

注意:通过type与code的相互配合,我们可以精确的完成故障定位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值