计算机网络--知识点总结2(网络层)

一、概述

功能:
主要解决不同局域网之间的数据传输
内容:
网络层IP协议:IP协议、子网划分、简单路由过程
网络层其他协议:ARP协议与RARP协议、ICMP协议
IP路由算法:路由的概述、内部网关路由协议、外部网关路由协议

二、IP协议

1、虚拟互连网络

  • 物理设备通过使用IP协议,屏蔽了物理网络之间的差异
  • 当网络中的主机使用IP协议连接时,则无需关注细节
  • IP协议使复杂的实际网络变为一个虚拟互连的网络
  • IP协议使网络层可以屏蔽底层细节而专注网络层的数据转发
  • IP协议解决了在虚拟网络中数据报传播路径的问题

2、IP协议

  • IP地址长度为32位,分为4个8位
  • IP地址常使用点分十进制来表示
  • 用这种方法最多可以表示2^32=42亿个不同IP地址
  • IP地址在根据所处的网域不同而不同
1)IP数据报头部

在这里插入图片描述

这里每一行都占32位4个字节,必须有的为5行,所以IP地址首部最少为20个字节;
版本:占4位,指IP协议的版本,通信双方的版本必须一致,当前主流版本是4,即IPv4,也有IPv6;
首部位长度: 占4位,最大数值为15(16进制,所以首部最大数值为15X4=60),表示IP首部长度,单位是32位字,即4个字节;
总长度: 占16位,最大数值位65535,表示IP数据报总长度(IP首部+IP数据),但是数据链路层中的MTU(最大传输单位)是1500,65535远远超过1500,所以在实际传输过程中,如果IP数据报长度超过1500,数据链路层会将IP数据报分片传送;
标识: 是协议内部具体使用,无需了解
标志: 占3位,只用2位是有意义的,标志IP报文是否要分段;
片偏移: 如果IP报文超过1500,需要分段传送时,片偏移表示当前传送的是报文的第几个片段;
TTL: 占8位,表示IP数据报文在网络中的寿命,没经过一个设备,TTL减1,当TTL=0时,网络设备必须丢弃该报文;为了防止报文在网络中找不到目的地址而无限传输,占用网络带宽
协议: 占8位,表示IP数据报所携带的具体数据是什么协议(如:TCP、UDP);

协议名ICMPIGMPIPTCPUDPOSPF
字段值12461789

以上为可使用的不同协议,为每个协议赋不同的值来表示
首部校验和: 占16位,校验IP首部是否有出错,如果有错误,直接丢弃;
源IP地址: 占32位,发送端的IP地址;
目的IP地址: 占32位,接收端的IP地址;

2)IP协议的转发流程

计算机A—路由器A–网络1—路由器B–网络2—计算机B 通过逐跳的形式到达

i、路由表简介

类似于MAC地址表(计算机/路由器都拥有路由表)

目的IP地址吓一跳IP地址
IP1IP2
IP3IP4
ii、IP协议的转发流程

实例说明:
计算机A—>路由器E—>计算机D,路由器F—>计算机C,计算机B
这里计算机A向计算机C发送数据报文
第一步:

  • A发出目的地址为C的IP数据报,查询路由表发现下一跳为E
  • A将IP数据报交给数据链路层,通过ARP缓存表获得MAC地址,并告知目的MAC地址是E(通过ARP协议转化)
  • 数据链路层填充源MAC地址A和目的MAC地址E
  • 数据链路层通过物理层将数据发送给E

第二步:

  • E的数据链路层接收到数据帧,把帧数据交给网络层
  • E 查询路由表,发现下一跳为F
  • E 把数据报交给数据链路层,通过ARP缓存表获得MAC地址,并告知目的MAC地址为F
  • E的数据链路层封装数据帧并发送

第三步:

  • F的数据链路层接收到数据帧,把数据帧交给网络层
  • F 查询路由表,发现下一跳为C
  • F把数据报交给数据链路层,通过ARP缓存表获得MAC地址,并告知目的MAC地址为C
  • F的数据链路层封装数据帧发送

数据帧每一跳的MAC地址都在变化
IP数据报每一跳的IP地址始终不变

3、ARP协议与RARP协议

1)ARP协议

ARP(Address Resolution Protocol)地址解析协议

网络层IP32位地址—> 通过ARP协议转化—> 数据链链路层MAC48位地址

ARP缓存表

IP地址MAC地址
192.168.83.25400-50-56-e0-33-40
  • ARP缓存表是ARP协议和RARP协议运行的关键
  • ARP缓存表缓存了IP地址和MAC地址的映射关系
  • ARP缓存表的记录并不是永久有效的,有一定的期限
  • 命令行中通过arp -a查询ARP缓存表

ARP协议在数据报文中的位置:
数据报文:

目的地址源地址类型帧数据CRC
66246~15004

其中,ARP协议存放在帧数据中:

类型0806ARP请求/应答PAD
22818

其中,ARP请求/应答包括:

硬件类型协议类型标记发送端以太网地址发送端IP地址目的端以太网地址目的端IP地址
2246464

两种情况
1、ARP缓存表中有IP地址和MAC地址的映射关系,则网络层将数据报表交给数据链路层时,通过查询ARP缓存表,获得目的计算机的MAC地址
2、ARP缓存表中没有目的计算机的IP地址和MAC地址的映射关系,目的计算机的IP地址以广播的形式发送给除源计算机的端口,目的计算机收到后将自己的MAC地址发送给发送端口,并将此映射关系添加到ARP缓存表

2)RARP协议
  • RARP(Reverse Address Resolution Protocol)逆地址解析协议
  • 与ARP协议相反
  • 数据链路层MAC48位地址–> RARP协议转换 --> 网络层IP32位地址

RARP协议在报文中的位置与ARP协议相同:
都在帧数据中:

类型8035RARP请求/应答PAD
22818
3)小结
  • ®ARP协议是TCP/IP协议栈里面基础的协议
  • ARP和RARP的操作对程序员是透明的,虽然存在但是就像不存在一样
  • 理解R(ARP)协议有助于理解网络分层的细节,辅助网络层和数据链路层对IP地址和MAC地址的转换

4、IP地址的子网划分

1)分类的IP地址
i、概念

为了更好的规划和分类IP地址
IP地址一共32位:

网络号主机号

A类地址:

网络号(0开头)主机号
8位24位

B类地址:

网络号(10开始)主机号
1616

C类地址:

网络号(110开头)主机号
24位8位

D类地址:1110开头,用于特殊用途
E类地址:1111开头,用于特殊用途

ii、子网的运算
最小网络号最大网络号子网数量最小主机号最大主机号主机数量
A1127(01111111)2^7-20.0.1255.255.2542^24-2
B128.1191.2552^14-10.1255.2542^16-2
C192.0.1223.255.2552^21-112542^8-2

需要排除的网络号和主机号
特殊的主机号:

  • 主机号全0表示当前网络段,不可分配给特定主机
  • 主机号为全1表示广播地址,向当前网络段所有主机发送消息

特殊的网络号:

  • A类地址 网络段全0(00000000) 表示特殊网络
  • A类地址 网络段后7位全1(011111111:127) 表示回环地址
  • B类地址 网络段(10000000.00000000:128.0) 是不可使用的
  • C类地址 网络段(192.0.0) 是不可使用的

其中,回环地址(127.0.0.1),通常称为本地回环地址,不属于一个有类别地址类,代表设备的本地虚拟接口,只要计算机开机,这个地址就是通的,永远不会宕掉;因此在安装网卡之间可以ping通这个本地回环地址,用来检查本地网络协议、基本数据接口是否正常。

运算举例举例:
125.125.3.60 ---->前8位:01111101 属于A类,因为首位为0
163.70.31.23 —>前8位: 10100011 属于B类,因为开头位10
210.36.127.11 -->前8位:11010010 属于C类,因为开头为110

2)划分子网
网络号主机号
网络号子网号主机号

例如一个C类IP地址
将主机号分为两段,减少IP的浪费
00000000:193.10.10.1~193.10.10.127
10000000:193.10.10.128~193.10.10.255
子网掩码:255.255.255.128
网络号 子网号 主机号
|------25位-------|—7位–|
|------25个1------|–7个0-|

i、什么是子网掩码

用来快速判断某个IP是属于哪个网络号

  • 子网掩码和IP地址一样,都是32位
  • 子网掩码由连续的1和连续的0组成
  • 某一个子网的子网掩码具备网络号位数个连续的1

例如:
A类地址

0……主机号
8位24位

对应的子网掩码为:

1111111100000000 00000000 00000000
8位24位

B类地址

10……主机号
16位16位

对应的子网掩码为:

11111111 1111111100000000 00000000
16位16位

A类地址子网掩码:255.0.0.0
B类地址子网掩码:255.255.0.0
C类地址子网掩码:255.255.255.0

ii、子网号的计算

例如193.10.10.0的IP地址分为:
00000000 :193.10.10.0~193.10.10.127
10000000:193.10.10.128~193.10.10.255
已知一个IP地址和子网掩码计算子网号:
IP:193.10.10.6
子网掩码:255.255.255.128
将IP地址和子网掩码都转换为二进制,进行与运算
得193.10.10.0,即为子网号(网络号)

3)无分类编址CIDR
i、什么是CIDR
  • CIDR中没有A、B、C类网络号、和子网划分得概念
  • CIDR将网络前缀相同得IP地址称为一个 ‘CIDR地址块’
网络前缀主机号

网络前缀是任意位数的

ii、CIDR的斜线记法

193.10.10.129/25
表示:网络前缀有25位,则主机号有7位
即:11000001.00001010.00001010.10000001
CIDR举例:

CIDR前缀长度掩码点分十进制地址数
/13255.248.0.0512k
/14255.252.0.0256k
/15255.254.0.0128k
/16255.255.0.064k
/17255.255.128.032k
/18255.255.192.016k
/19255.255.224.08k

无分类编制CIDR除了网络前缀,剩下的其他均与网络号相同(如子网掩码的计算,IP地址的使用,特殊的网络号,特殊的主机号),相比原来子网划分更加灵活
例如:某公司增加了100名员工,并且拆分成2个部门,应该分配哪个网络号?
给公司总分配/24(超网)的网络号,分别每个部门的网络号为/25(子网)

5、网络地址转换NAT技术

由于IP地址不够用,引入NAT技术

1) IP地址分类
i、内网地址:
  • 内部机构使用(如家庭中的手机、笔记本)
  • 避免与外网地址重复

分类:

  • 10.0.0.0~10.255.255.255 支持千万数量级设备
  • 172.16.0.0~172.31.255.255 支持百万数量级设备
  • 192.168.0.0~192.168.255.255 支持万数量级设备

由于内网地址是内部使用,因此两个不同的内网(如A公司、B公司)可以使用同样的内网地址,不冲突

ii、外网地址
  • 全球范围使用
  • 全球公网唯一
2)网络地址转换NAT技术

内网多个设备使用同一个外网IP请求外网的服务,外部怎么知道具体是哪个设备在请求?
使用NAT技术

  • 网络地址转换NAT(Network Address Translation)
  • NAT技术用于多个主机通过一个公有IP访问互联网的私有用户
  • NAT减缓了IP地址的消耗,但是增加了网络通信的复杂度

例如:
一个路由器网络号为173.21.89.0的家庭中,有一个IP为192.168.2.11的电脑IP为192.168.2.10的手机,当电脑上的某个进程请求访问外网服务时通过192.168.2.22:6666的IP地址和端口号将请求发送给路由器,在路由器内部将IP地址和端口号转换为173.21.59.10:16666,路由器使用这个IP和端口号与外网通信,路由器接到回复后再将IP地址和端口号转换为192.168.2.11:6666转发给电脑上的进程。
NA§T表

方向旧的地址和端口号新的地址和端口号
192.168.2.11:6666173.21.59.10:16666
173.21.59.10:16666192.168.2.11.6666

虚拟机、家庭路由器都使用了NAT技术

6、ICMP协议

1)ICMP协议详解
  • 网际控制报文协议(Internet Control Message Protocol)
  • ICMP协议可以报告错误信息或者异常情况(用来辅助IP协议更好的传输数据)
i、ICMP协议的封装位置

封装在IP数据报的数据中
在这里插入图片描述

ii、ICMP报文首部
8位类型8位代码16位校验和

类型:ICMP的类型
代码:此类型的ICMP可以判断哪些错误
校验和:类似IP协议的校验和

iii、IP数据报如何表示携带的ICMP报文

IP数据报中有个8位协议,用来表示此IP数据报携带的具体数据是什么协议

协议名ICMPIGMPIPTCPUDPOSPF
字段值12461789

如果携带的数据是ICMP协议,则IP报文中8位协议的位置写1

iv、差错报告报文
ICMP报文种类类型的值报文类型具体代码
差错报告报文3(重点不可达)网络不可达0
同上同上主机不可达1
同上5(重定向)对网络重定向0
同上同上主机不可达1
同上11传输超时-
同上12坏的IP头0
同上同上缺少其他必要参数1

具体代码即ICMP报文中的8位代码
类型值12表示传输的IP数据报有问题

v、询问报文
ICMP报文种类类型的值报文类型具体代码作用
询问报文0或8回送(Echo)请求或应答-确认通信双方之间是否是通的
询问报文13或14时间戳(Timestamp)请求或应答-对时间进行同步时
2)ICMP协议的应用
i、Ping应用

Ping应用使用了ICMP的询问报文,验证网络是否是通的,及网络质量如何。
通常ping www.baidu.com
会收到百度返回的一些信息
字节32:表示pin命令发出的报文长度为32位,由于ICMP报文封装在IP数据报中,所以指的是IP数据报的长度
时间:从请求到对方应答所用的时间
TTL:IP数据报头部的TTL,表示这个数据报在此网络中还剩下的寿命是多少跳
具体ping应用的排查网络问题步骤

  • Ping回环地址127.0.0.1:如果通则计算机正常;如果没有返回则计算机的协议栈出现问题,需要重装系统或者协议栈
  • Ping网关地址:一般路由器地址为192.168.0.1或192.168.1.1,如果通则表示本机到路由器的网络是通的;如果不通则WiFi或者网线不通
  • Ping远端地址:Ping外部地址,比如百度,如果通则家里到ISP的网络是通的;如果不同则家里到ISP的网络不通,需要联系联通或者电信来排查问题
ii、Traceroute应用

用来探测IP数据报在网络中走过的路径
比如:
IP数据报中的TTL,当TTL=0时,还没到达目的地址,此时网络设备必须丢弃该报文,此时发送给源地址一个ICMP终点不可达差错报文

比如:
要知道计算机A到计算机B的路径时,Traceroute怎么应用
计算机A–>中型网络1–>大型网络1–>中型网络2–>小型网络1–>计算机B
计算机A先发出一个TTL=1的IP报文,到达中型网络1时TTL=0,中型网络1将报文丢弃,并向计算机A发送一个ICMP终点不可达差错报文,计算机A再发送一个TTL=2的IP报文,到达大型网络1后TTL=0,丢弃报文,并向计算机A发送一个ICMP终点不可达差错报文,计算机A再发送一个TTL=3的报文,到达中型网络2,TTL=0,丢弃报文,向计算机A发送ICMP终点不可达差错报文,直到到达计算机B,这样从计算机A到B的路径就被记录下来。

traceroute实际应用:
在cmd中输入:tracert 域名
返回所有经过的IP地址

三、网络层的路由

1、网络层的路由概述

1)路由算法的本质

路由算法实际上是图论的算法,但是比图论算法复杂
路由算法的特点:

  • 算法是正确的、完整的。及依据算法数据可以正确到达目的地
  • 算法在计算上应该尽可能的简单。因为网络非常庞大,设备很多,简单使更多的设备能够适合这个算法
  • 算法可以适应网络中的变化
  • 算法是稳定的、公平的。稳定的指这个网络中的变化会影响别的网络中的数据通信,公平的指算法对网络中的每个设备都是平等的。
2)自治系统

由于互联网是庞大、复杂的,为了使算法更加简单,对互联网进行划分自治系统AS

  • 一个自治系统AS是处于一个管理机构下的网络设备群。管理机构可以是一个国家、一个公司等
  • AS内部网络自行管理,AS对外提供一个或者多个出(入)口。AS外部不可以随意访问AS内部,如果要访问,通过出入口

通过上述了解,按照自治系统将路由协议划分为内部网关协议和外部网关协议

  • 自治系统内部路由的协议称为:内部网关协议(RIP、OSPF)
  • 自治系统外部路由的协议称为:外部网关协议(BGP)

2、 内部网关路由协议之RIP协议

1)距离矢量(DV)算法
i、 DV算法的简要过程
  • 每一个节点使用两个向量DiSi
    • Di描述的是当前节点到别的节点的距离
    • Si描述的是当前节点到别的节点的下一节点
  • 每一个节点与相邻节点交换向量Di和Si的信息
  • 每一个节点根据交换的信息更新自己的节点信息
    在这里插入图片描述
ii、举例

在这里插入图片描述
以节点A为例了解DV算法如何运行,求Da,Sa
A的距离矢量信息:

A
A0
B11
C12
D10
E21
F17

A收到的距离矢量信息:

BCDF
A91299
B09815
C1106011
D78010
E17111113
F1110100

解:
通过通信可得
AB=6,AC=9,AD=8,AF=7
在这里插入图片描述

综上融合为一张表:

ABCDF
A091299
B1109815
C12110611
D1078010
E2117111113
F171110100

此时Sa列表为空,当A收到B的适量距离表时计算A->B,A->B->C,A->B->D,A->B->E,A->B->F的值,其中B->C,B->D,B->E,B->F均为B的距离矢量表中的值,由A出发的为A自己的距离矢量表中的信息,如果计算过程中得到的A->C,A->D,A->E,A->F的值有小于A表中原来的值的,则更新A的距离矢量表,并将B作为路径中转中的下一节点存在Sa中

2)RIP协议的过程
  • RIP(Routing Information Protocol)协议
  • RIP协议是使用DV算法的一种路由协议
  • RIP协议把网络的跳数(hop)作为DV算法的距离
  • RIP协议每隔30s交换一次路由信息
  • RIP协议认为跳数>15的路由则为不可达路由

RIP协议的具体过程

  1. 路由器初始化路由信息(两个向量Di和Si)
  2. 对相邻路由器X发过来的信息,对信息的内容进行修改(下一跳地址设置为X,所有距离加1)
    • 检索本地路由,将信息中新的路由插入到路由表里面
    • 检索本地路由,对于下一跳为X的,更新为修改后的信息
    • 检索本地路由,对比相同目的的距离,如果新信息的距离更小,则更新本地路由表
  3. 如果3分钟没有收到相邻的路由信息,则把相邻路由设置为不可达(16跳)

RIP协议缺点
故障信息传递慢
如下图:A节点故障,B直达不了,去问C,发现C的路由表中可达,则加1,但是没发现C其实是不可达的,造成故障信息传递不出来。
在这里插入图片描述
总结RIP协议

  • 优点:实现简单,开销很小
  • 缺点:限制了网络的规模(跳数>15的视为不可达)
  • 缺点:坏消息传得慢,更新收敛时间过长

3、Dijkstra(迪杰斯特拉)算法

  • Dijkstra算法是著名图论算法
  • Dijkstra算法解决有权图从一个节点到其他节点的最短路径问题
  • 以起点为中心,向外层层扩散

最短路径问题–Dijkstra算法过程

  1. 初始化两个集合(S,U)(S为只有初始顶点点A的集合,U为其他顶点集合)
  2. 判断U是否为空,如果U不为空,对U集合顶点进行距离的排序,并取出距离A最近的一个顶点D
    • 将顶点D纳入S集合
    • 更新通过顶点D到达U集合所有点的距离(如果距离更小则更新U,否则不更新)
    • 重复2步骤
  3. 直到U集合为空,算法完成

4、内部网关路由协议之OSPF协议

1)链路状态(LS)协议

链路状态协议特点

  • 向所有的路由器发送消息。一传十,十传百
    • 第一个路由器给临近的所有路由器发送消息,然后下个路由器再给与自己邻近的所有路由器发送消息,这样就给所有路由器发送消息了)。
  • 消息描述该路由器与相邻路由器的链路状态
    • (包括与相邻路由器的距离、时延、带宽等消息),可以有由网络管理人员决定的,链路状态被称为网络连接的代价。
  • 只有链路状态发生变化时,才发送更新的消息
2)OSPF协议的过程
i、概念
  • OSPF(Open Shortest Path First:开放最短路径优先)
  • OSPF协议的核心是Dijkstra算法
  • OSPF协议是链路状态的协议的实现
    • 向所有的路由器发送消息,所以每个路由器都可以获得网络中的所有消息,即网络的完整拓扑,也称为链路状态数据库,并且链路状态数据库是全网一致的,因此每个路由器都可以单独运行Dijkstra算法
    • 消息描述该路由器与相邻路由器的链路状态,链路状态指距离、时延、带宽等,相比RIP协议只交换距离信息,OSPF协议更加客观、更加先进
    • 只有链路状态发生变化时,才发送更新信息,减少了数据的交换,更快收敛,使整个网络更加通畅
ii、五种消息类型
  1. 问候消息(Hello):很短,用于维护该路由器与相邻路由器的可达性(每个路由器给隔壁路由器发送问候消息,以此确认隔壁路由器是可达的)
  2. 链路状态数据库描述信息:向隔壁路由器发送自己的链路状态数据库的简短描述消息
  3. 链路状态请求信息:向隔壁路由器请求隔壁路由器的链路状态数据库信息
  4. 链路状态更新信息:更新消息会广播在整个网络中,然后所有路由器更新消息
  5. 链路状态确认消息:对链路更新的确认
iii、OSPF协议完整过程
  1. 路由器接入网络
  2. 路由器向邻居发出问候信息
  3. 与邻居交流链路状态数据库
  4. 向整个网络广播和更新未知路由
3)RIP协议与OSPF协议的对比
RIP协议OSPF协议
从邻居看网络整个网络的拓扑
在路由器之间累加距离Dijkstra算法计算最短路径
频繁、周期更新、收敛很慢状态变化更新,收敛很快
路由间拷贝路由信息路由间传递链路状态,自行计算路径

5、外部网关路由协议BGP协议

1)概念
  • BGP(Border Gateway Protocol:边际网关协议)
  • BGP协议是运行在AS之间的一种协议
  • BGP协议能够找到一条到达目的地比较好的路由

BGP发言人 (speaker)

  • BGP并不关心内部网络拓扑
  • BGP Speaker可以人为配置策略,根据实际情况操控信息交流(可以设置信息交流权限,信息内容等)
  • AS之间通过BGP发言人交流信息(BGP发言人位于AS边界)
2)为什么使用BGP协议
  • 互联网的规模很大。所以需要的链路状态很多,算法就会很慢,网络通信就会很慢
  • AS内部使用不同的路由协议,RIP、OSPF
  • AS之间需要考虑除网络以外的一些因素(政治、安全……)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值