第四章 网络层
网络层:主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。
分组是对数据报的切割的片段。
流量控制:接收方控制。
拥塞控制是全局的

数据交换方式:
①电路交换
②报文交换
③分组交换:数据报方式、虚电路方式
①电路交换
(自己复习:链路分为:广播式(介质访问控制:在广播信道中)、点对点式;链路层传输的帧,目前不考虑可靠传输)

②报文交换
报文:源应用发送的信息整体。(应用层)

③分组交换:数据报方式、虚电路方式
分组:把大的数据块切割成小的数据块
分组较短:出错几率降低,所以可靠性更高。
对缓存大小要求降低。

报文交换&分组交换
报文交换式串行;分组时并行转发思想

三种数据交换方式比较:

数据报方式&虚电路方式:

几种传输单元名词辨析:
报文--分割报文段--ip数据报(目的地址、源地址),过大的话分割成分组--
网络层传输单元是分组。
到链路层,加头加尾。头就是 MAC地址 物理地址。尾:帧检验序列。

数据报:无连接
(网桥也有转发表)

虚电路:

数据报&虚电路:

IP数据报格式
TCP/IP协议栈:

IP数据报格式:
数据部分是 传输层的数据单元
任何数据报的固定部分是20字节,可变部分可有可无,大多数情况下都是没有的。

IP数据报格式:首部
首部长度:单位是4B,指明首部的长度是 X x 4B, X≥5
区分服务很少使用
标识、标志、片偏移:之后
协议:数据部分所使用的协议

首部检验和:检验使用的是二进制求和。只检验首部,不检验数据部分,每经过一个路由器都要检验一下,发生变化之后,数据报有没有出错,出错就把数据报丢弃。没错就继续传输。
源地址、目的地址:IPv4是32位。

IP数据报分片
最大传送单元:
MTU就是中间的数据部分最大长度。
过大的话就要分片。

IP数据报首部中的三个标志字段对于分片的作用:
标识:同一数据报的分片使用同一标识。
标志:
片偏移:

IP数据报分片例题:


IPv4地址:
发展:分类的IP地址--子网的划分--构成超网(无分类编制方法)
IP地址:全世界唯一的32位/4字节标识符,标识路由器或主机的接口;;并不是一个IP就标识一个主机,一个主机可以有很多个接口(有线上网,有线接口;无线上网,无线接口)。一个路由器有很多个端口,每个接口都会分配唯一的IP接口。
IP地址::={<网络号>,<主机号>}
网络号:确定主机所在的范围。主机号:该区域内的哪一台主机。或者哪一个接口。
点分十进制:
互联网中的IP地址:
一个个区域都是局域网。因为网桥不能分隔广播域的,所以用网桥连接的网段(链路层设备)是一个局域网(局域网使用广播信道)。
路由器的每一个接口都有一个不同的网络号IP地址,所以说路由器可以分割广播域。
绿色区域:无编号网络,是由一段连线构成的。

分类的IP地址:合理划分IP地址资源

广播经过路由器会被隔离。不会被转发出去
0.0.0.0 : 只能作为源地址
网络号全零:本王范围内的主机。
255.255.255.255:如果发送目的地址是全1,就是发送一个广播信号,向本网络所有主机发送广播数据报。(不能通过路由器)
127.0.0.1
特殊IP地址:

私有IP地址:
内部网络使用的,放在互联网上,路由器不认的。(至于内部网络如何与外部通信,用到的技术是NAT技术)
网段个数:网络号

分类IP地址边界:
A:去掉一个全0,和全1的
B:128.0这个网络号是不可以指派的

网络地址转换NAT技术
NAT路由表
私有IP地址:路由器对目的地址是私有IP地址的数据一律不进行转发。
只需要在专用网和因特网连接的路由器上安装一个NAT软件;
WAN:广域网(外网端);LAN局域网(内网端)
端口号:进程的标识。不同主机统一进程可以相同。
:A主机要和B主机通信,在网络层要封装:
源IP地址 | 目的IP地址
源IP地址:专用网主机的ip地址192.168.0.3
目的IP地址:213.18.2.4
到传输层,加端口号:假设30000
到达NAT路由器,源IP地址替换成WAN中使用的的172.38.1.5和端口号40001;
从外网发进来:

子网划分 & 子网掩码

子网划分
子网划分就是把主机号划分为:子网号、主机号
子网号是相应单位自己定的,对外不表现。
主机号至少要留两位。因为如果留一位,0或1,因为主机号不能是全0或者全1,全1全0都是特殊的ip地址不能被指派的。
子网号能够全0全1看情况:

例子:

子网掩码:
主机部分全为0

两级IP就是没有划分子网。三级IP就是已经划分子网。
子网掩码和目的IP地址相与 得到 子网网络地址。
已知主机的IP地址,和子网掩码,求主机所在的网络地址是多少。
子网掩码:网络号+子网号 = 全1,主机号部分 = 全0
以下例子,网络号+主机号= 16+6 = 22全1;
主机IP地址所在的网络:180.80.76.0,剩下的主机号部分全是1

使用子网是分组转发:

无分类编址CIDR(构成超网)
变长的子网掩码
全0本网络,全1是广播地址,所以不能用这个作为主机号
子网掩码1的位数是网络前缀的位数,剩下的主机号位数全为0

CIDR地址块……;地址掩码(子网掩码):地址块部分全是1,主机号部分全是0
根据一个CIDR记法IP地址可以得到最小地址和最大地址
构成超网:将多个子网构成一个交大子网,叫作超网。
路由转发表这便是两列,上一节是三列

最长前缀匹配:
0.0.0.0/0:默认路由,如果在路由表中没有找到匹配地址,交给默认路由,默认路由再去寻找别的路由器有没有。。。
想办法找到相应的网络。
选第二个,网络前缀更长的哪一个。

ARP协议
设备如何获取MAC地址?
在数据封装过程中,根据每一层加上不同的头或者尾。网络层的头部加上ip地址(逻辑),链路层头加上MAC地址(目的)。
发送数据的过程
网络层:IP1是源主机地址,IP3目的主机地址
链路层:加上MAC地址;除了MAC1源MAC地址,还要加上目的MAC地址。对于目的主机的MAC地址是不知道的,需要ARP协议。
对于每一台主机都有一个ARP高速缓存(IP地址与MAC地址的映射,所存的都是局域网内部主机的表项,包括连接的该局域网的路由器的端口的IP地址映射)
在同一个局域网内:
查询1号主机的ARP高速缓存,找到3号主机的IP和MAC映射,然后填入3主机的MAC地址。
还加其他……
如果在1号主机的ARP高速缓存中没有找到,使用ARP协议。
首先广播一个ARP请求,
自己IP地址|待查寻的IP地址|自己MAC地址|FF-FF-FF-FF-FF-FF

因为交换机对广播信号没有屏蔽,所有信号到达局域网内的每一个主机,并且到达路由器丁得一端。
目的主机返回一个单波的ARP响应分组。单波只会从源地址到目的地地址,不会转发给其他端口。相应分组:


不在同一个局域网内的APR协议的使用:
MAC地址有差别
路由器有多个端口,也有多个IP地址和多个MAC地址
如果1号主机
①封装,数据链路层只能封装到MAC1地址。
ARP高速缓存只能缓存本局域网内的IP地址和MAC地址的映射
②源主机用自己的子网掩码和目的地址的IP相与,判断是否在同一个局域网内。
③不在,查询默认网关(本局域网与外界沟通的路由器)的MAC地址
④那么链路层的目的地址的MAC填的是默认网关的MAC地址。
⑤获取默认网关的MAC地址:源主机发送一个广播ARP请求分组;IP填的是默认网关的IP6

此时,默认网关回复一个单波ARP相应分组:

⑥获取到默认网关的MAC地址,然后封装链路层

⑦到达路由器后,因为路由器是三层结构,解封装、封装自上而下。。(目前不考虑NAT情况,所以源IP地址和目的IP地址是不变的)。此时源MAC地址和目的MAC地址改变(此时用的是点对点式通信PPP协议)。(数据的IP是不变的,广播时候是变化的)



MAC9再次使用一个ARP协议

ARP协议的特点:

每获取一次MAC地址就是用一次ARP协议(在缓存中查找不算)

DHCP协议 (IP的动态获取)
主机如何获取IP地址? ①静态配置 ②动态配置
①静态配置:IP地址、子网掩码、默认网关
②动态配置:DHCP服务器

DHCP动态主机配置协议是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。
将此应用层协议放在网络层,是因为该协议为网络层通信提供基础,有DHCP才有IP地址……

ICMP协议

ICMP协议支持主机或路由器:①差错或异常的报告 ②网络探询
通信过程中,对于错误的分组,在网络层丢弃掉。要发送特定的ICMP差错报告报文。
ICMP数据报:
ICMP报文装在IP数据报的数据部分。
ICMP报文中的检验和:区分:IP数据报首部中的检验和只检验首部部分,不检验数据部分。检验该报文是否出错。

ICMP报文的类型:①ICMP差错报文 ②ICMP询问报文
①ICMP差错报文:

ICMP差错报告报文的拼接;(ICMP报告报文是IP数据数据报的数据部分)

不该发送ICMP差错报告报文的情况:

②ICMP询问报文:

ICMP的应用

IPv6
32位的IPv4地址空间已分配殆尽,CIDR和NAT治标不治本。
改进首部,首部瘦身,加快路由器效率。实现快速处理/转发数据报功能、支持Qos

IPv6数据报格式:
有效载荷包括两个部分:一个是数据部分、一个是选项部分(扩展首部),相当于把IPv4可变部分挪到了有效载荷中,所以IPv6的基本首部就是固定的40字节。
扩展首部:如果数据报要增加某些功能,就放在扩展首部中。

有效载荷长度:扩展首部/数据部分 大小
下一个首部:基本首部中也有一个下一个首部字段,指向的是扩展首部1,每一个扩展首部中都有下一个扩展首部的字段,那么扩展首部1中的下一个首部指向的是扩展首部2……最后一个指向数据部分,数据部分就是上一层传过来的报文段。
跳数限制:相当于TTL。当在路由器上达到0,就会把数据博爱丢弃,并且返回一个ICMP差错报告报文。
源地址和目的地址都是:128位,在IPv4上是32位。

IPv4和IPv6区别:
如果分组过大,在链路层无法传输,只能在路由器丢弃掉,并使用ICMPv6返回一个差错报告报文。
IPv4使用的协议字段:分组携带的数据使用的是什么协议,也就是分组的数据部分交给传输层的哪个协议。

IPv6地址表示形式:
表示方式没有了点分十进制。
此时用冒号十六进制记法:

IPv6基本地址类型:

任波:给任波组内的一台主机发送数据报(通常是最近的一台)
IPv6向IPv4过度的策略:
隧道技术:IPv6路由器上的数据报包装成IPv4的数据部分,以在IPv4的数据报传输,到了IPv6这里取出数据部分即可。


路由算法及路由协议
路由器转发表:

路由算法分类:①静态路由算法(非自适应) ②动态路由算法(自适应)

分层次的路由选择协议:


RIP协议及距离向量算法(应用层的)
RIP协议:是一种分布式的基于距离向量的路由选择协议,简单。

1、只和相邻的路由器交换信息
2、交换的信息是:自己的路由表
3、每30秒交换一次路由信息,然后路由器根据最新信息更新路由表。若超过180秒没收到邻居通告,则判定路局没了,并更新自己的路由表。

距离向量算法:



OSPF协议及链路状态算法(洪泛法)

链路状态路由算法:

OSPF的区域:

网络层协议:


BGP协议




BGP是应用层协议:一个繁衍人要和其他发言人交换信息,要先建立TCP连接,再交换BGP报文,利用BGP会话交换路由信息。

BGP-4四种报文:

三种路由协议比较:


IP组播
IP数据报的三种传输方式:
组播:到达目的主机之前才开始复制数据


到最后一步,一个数据报才会标称很多个数据报,分发给主机。

如何知道局域网中的主机是不是一个组播组呢?
(接受同一组播的主机叫作同一个组播组主机)
IP组播地址:
在因特网通信过程中,每一台主机都要有全球唯一的IP地址,如果某主机想要接受特定组播分组,如何使得多播数据报传送到该主机中呢?显然,组播数据报的目的主机不能写特定主机的IP地址。这样写的话,只会发给这个主机。组播组其他主机收不到。所以需要一个新的地址,该主机需要产生一个新的地址,来接受组播的数据报。组播组中的其他主机都有这样一个组播地址。
这个主机要产生一个新的地址来接收数据报。其他组播组中的主机都可以由这样一个IP组播地址,接受发送给该组播组的数据报。

因特网范围内的组播、硬件组播
硬件组播:局域网范围内,组播数据报如何交付给相应的主机

最低23位决定了多播地址的范围,
最低23位和MAC地址有一个映射关系:决定是否属于一个多播组的
可能IP地址那5位不同,表示不同的组播组。但是剩下23位一样,导致MAC地址一样。
IGMP协议和组播路由选择协议:
IGMP协议:让连在局域网上的组播路由器知道,其所连接的局域网中是不是有接收组播数据报的主机。
组播路由选择协议:路由的选择



组播路由选择协议目的:找出以源主机位根节点的组播转发树。

算法:


移动IP
和DHCP协议动态IP区分:
动态IP:通过使用DHCP协议在局域网内部的主机可以获得一台IP地址。
移动IP:即使物理地址发生改变,但是网络IP地址不改变。

本地代理可以是路由器或者主机,
主地址:永久地址
3.外部代理拆封数据报并发给A。外部代理路由器如何把数据报给A?在用的是MAC地址。


网络层设备
路由器

到达网络层,首先对路由分组进行判断,如果是路由器之间交换路由信息的分组,就会把它交给上面的路由选择部分。
如果是数据就放入交换结构中,然后选择一个合适的输出端口输出。



路由表和转发表:

网络层总结













浙公网安备 33010602011771号