【计算机网络 第五版】阅读笔记之四:网络层

来源:互联网 发布:2017淘宝卖什么成本低 编辑:程序博客网 时间:2024/06/16 15:36

第四章 网络层

1.网络层的两种服务:虚电路服务(可靠性由网络保证)和数据报服务(可靠性由用户主机保证)

2.网际协议

(1)地址解析协议ARP和逆地址解析协议(RARP):位于IP协议之下,IP使用这两个协议解析到物理地址

(2)网际控制报文协议(ICMP)和网际组管理协议(IGMP):位于IP协议之上,使用IP协议

Tips:这里补充一下各个层的一些相关协议:应用层协议:HTTP,FTP,SMTP;运输层协议TCP,UDP

3.各个层的中间设备:

(1)物理层使用的中间设备叫转发器(repeater)

(2)数据链路层使用的中间设备叫网桥或者桥接器(bridge)

(3)网络层使用的中间设备叫路由器(router)

(4)网络层以上使用的中间设备叫网关(gateway)

4.IP协议:IP地址=网络号net_id+主机号host_id,用点分十进制(每八位转换成十进制)表示。

4.1 IP分类

(1)A类:1字节网络号+3字节主机号,网络号最高为为0,地址范围:1.0.0.0~126.255.255.255,最大主机数为2^24-2=16777214个。

(2)B类:2字节网络号+2字节主机号,网络号前两位为10,地址范围:128.1.0.0~191.255.255.255,最大主机数为2^16-2=65534个

(3)C类:3字节网络号+1字节主机号,网络号前三位为110,地址范围:192.0.1.0~223.255.255.255,最大主机数为2^8-2=254个

(4)D类:多播地址,1110开始

(5)E类:保留地址,1111开始

一般不使用的特殊地址:(网络号为0代表本网络,主机号全0代表本主机,全1代表所有主机)

网络号 主机号 源地址使用 目的地址使用 代表的意思 0 0 可以 不可 在网络上的本主机 0 host_id 可以 不可 在本网络上的某个主机host_id 全1 全1 不可 可以 只在本网络上进行广播 net_id 全1 不可 可以 对net_id上的所有主机进行广播 127 非全0或全1的任何数 可以 可以 用作本地软件环回测试之用

4.2 IP的特点

(1) 分级结构的好处:分配时只需分配网络号,主机号由用户单位自己分配;路由表根据主机号转发分组,减小了路由表所占空间以及查找路由表的时间

(2) 连接的网络不同IP也不同,同时连多个网络的主机称为多属性主机。一个路由器至少要连接两个不同的网络(内网和外网),因此一个路由器至少应当有两个不同的IP地址

(3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,因为他们的网络号相同

(4) 所有分配到网络号的网络都是平等

4.3 IP地址和物理地址

(1)IP地址时放在IP数据报的首部,MAC地址放在MAC帧的首部;

(2)在网络层和网络层以上使用IP地址,在数据链路层及以下使用MAC硬件地址;

(3)MAC帧里面看不到IP地址,被封装起来了。

4.4 ARP和RARP协议

(1) ARP工作流程:A以广播方式发送ARP请求(需要得到B的硬件地址),B收到请求之后以单播方式给A发送ARP响应,此时B把A的IP地址和MAC地址存在高速ARP缓存内以便下一次发送,A收到B的响应之后,也在自己的ARP缓存中写入B的IP地址和MAC地址映射。

(2) 高速ARP缓存:映射地址都有一定的生存周期,超过就直接丢弃。

(3) ARP是解决同一局域网上的主机和路由器的IP地址和路由器地址的映射问题。如果所找的主机不在局域网内,那么就需要通过ARP找到位于局域网内的一个路由器的硬件地址,然后把分组数据传给路由器,路由器再把分组传给下一个网络。

4.5 IP数据报的格式

IP数据报的组成:首部(20字节)+数据部分

这里写图片描述

(1) 版本号:IP协议的版本

(2) 首部长度:常用首部长度为20个字节

(3) 区分服务:一般不使用这个字段

(4) 数据报总长度:首部和数据之和,占16位,表示最大长度为65535字节,由于MTU限制,一般不超过1500字节。另外数据报的总长度不是指未分片前的数据报总长度,而是指分片后的每一片的首部+数据的长度

(5) 标识:标识字段由计数器产生,每产生一个数据报就加1,数据报分片后标识段也被复制到各个分片中,以便重装成原来的数据报。

(6) 标志:三位,最低位记为MF,MF=1代表还有分片,反之则没有;中间一位记为DF,DF=1代表不允许分片,反之则允许分片

(7) 片偏移:分片后的该片在原分组中的相对位置。单位为8个字节,分片的长度都是8自己的倍数;

(9) 生存时间(TTL):数据报在网络中的寿命。防止无法交付的数据报无限制地在网络中兜圈子。每经过一个路由器,TTL就减去数据报在该路由器中消耗的时间,TTL为0就丢弃该报。

(10) 协议:指携带的数据时何种协议。常用协议字段:1-ICMP,2-IGMP,6-TCP,8-EGP,17-UDP,41-IPv6等等

(11) 首部检验和:反码算术运算,即发送端首部检验和为全0,所有首部和相加取反得到接收端检验和,接收端判断首部和的反码是否为0,为0则保留,不为0则抛弃。(下图很好的说明了过程)

这里写图片描述

(12)源地址和目的地址:每个占32位,IP地址。

4.5 转发分组:对一条路由信息(目的网络地址,下一跳转地址)

(1) 从数据报中提取目的主机的IP地址D,得出目的网络地址N

(2) 如果N是与此路由器直接相连的某个网络地址,则直接交付,否则为间接交付,执行(3)

(3) 若路由表中有目的地址D的特定主机路由,则把数据报传送给路由表的下一跳路由器;否则,执行(4)

(4) 若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器,否则,执行(5)

(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由,否则,执行(6)

(6) 报告转发分组出错。

5.划分子网

5.1 IP地址={<网络号>,<子网号>,<主机号>},借用主机号的若干位作为子网号subnet_id,从两级IP结构变成了三级IP结构。

Tips:划分子网纯属一个单位内部的事,对外仍表现为一个网络。

5.2 子网掩码:从IP地址得到子网的网络地址

这里写图片描述

5.3 使用子网的分组转发(IP地址 AND 子网掩码 = 网络地址)

(1) 从数据报中提取目的主机的IP地址D

(2) 先判断能不能直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相与,看结果是否和相应的网络地址匹配,若匹配则直接交付;否则为间接交付,执行(3)

(3) 若路由表中有目的地址D的特定主机路由,则把数据报传送给路由表的下一跳路由器;否则,执行(4)

(4) 对路由表中的每一行(目的地址,子网掩码,下一跳地址),用其中的子网掩码和D逐位相与,得到网络地址N,若与该行的目的网络地址匹配,则传给下一跳地址,否则,执行(5)

(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由,否则,执行(6)

(6) 报告转发分组出错。

6.无分类编址CIDR

(1) IP结构:IP地址 = {<网络前缀>,<主机号>},采用斜线记法,128.13.35.7/20,表示前20位为网络前缀

(2) 网络前缀相同的连续IP地址组成一个CIDR地址块

(3) 地址掩码:也可继续称为子网掩码。

(4) 查找路由表的时候,可能会得到不止一个匹配结果。应当从匹配结果中选择最长前缀匹配的路由

例如:目的地址206.0.71.130和206.0.68.0/22以及206.0.71.126/25都可以匹配

这时就需要选择**最长前缀匹配**206.0.71.126/25作为下一跳地址。

(5) 对所有可能的前缀进行循环查找效率不高,可以采用二叉线索来快速查找最长前缀匹配

7.网际控制报文协议ICMP(不是高层协议,它属于IP层的协议)

(1) 作用:为了更有效的转发IP数据报和提高交付成功的机会

(2) 当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息

(3) 报文类型:差错报告报文和询问报文

其中,差错报告报文:

  • 终点不可达:不能交付数据报时向源点发送

  • 源点抑制:当路由器或主机由于拥塞而丢弃数据,发送该报文通知源点将数据报发送速率放慢

  • 时间超过:TTL将为0,丢弃数据的同时发送该报文

  • 参数问题:首部字段不正确,丢弃数据,发送该报文

  • 改变路由:让主机知道下次应将数据报发送给另外的更好的路由器

询问报文:

  • 回送请求和应答:主机向目的主机发送回送请求报文,目的主机向源主机发送应答报文,用来测试目的主机站是否可达以及了解其状态

  • 时间戳请求和应答:用于时钟同步和测量时间。

(4) 应用:分组网间探测ping,用来测试两个主机之间的连通性,采用ICMP回送请求和应答报文,PING是应用层直接使用网络层ICMP的一个例子,没有通过网络层TCP和UDP

8.路由选择协议

8.1 路由选择协议分类

(1) 内部网管协议IGP:在一个自治系统(AS)内部使用的路由选择协议,如RIP和OSPE协议

(2) 外部网关协议EGP:在一个自治系统的边界,用来将路由选择信息传递给下一个自治系统的协议。如BGP-4

8.2 内部网关协议RIP:不断更新路由表,使得从每一个路由到每一个目的路由都时最短的。

(1) 一种分布式的基于距离向量的路由选择协议。

(2) 协议里的“距离”也称谓“跳数”,每经过一个路由加+1

(3) 协议特点:

  • 仅和相邻路由器交换信息

  • 交换的信息是当前本路由器所知道的全部信息(信息包括我到本AS中各个网络的最短距离,以及到每个网络经过的下一跳路由器)。

  • 按固定的时间间隔交换路由信息。

(4) 距离向量算法(目的网络+距离+下一跳路由器)

地址为X的相邻路由发来RIP报文,修改报文所有项(距离d+1,下一跳全改为X),对每一项目进行如下处理:

  • 若源路由中没有目的网络N,则把该项目添加到路由表中

  • 若存在目的网络N,查看下一跳路由器,若为X,直接替换路由表

  • 若存在目的网络N,下一跳路由器不为X,则比较距离,若小则更新,反之则丢弃

8.3 内部网关协议OSPF

(1) 使用分布式的链路状态协议,开放最短路径优先(Open Shortest Path First),使用Dijkstra的最短路径算法SPF

(2) 三个要点(和RIP不同)

  • 采用洪泛法,路由器通过所有输出端口向所有相邻的路由发送信息

  • 发送的信息时与本路由器相邻的所有路由器的链路状态

  • 只有当链路状态发生变化时,路由器才会再次采用洪泛法发送信息 (与RIP不同)

(3) 特点:

  • 建立了一个链路状态数据库,全网的拓扑结构图

  • 能较快的更新数据库,更新过程收敛很快

  • 为了使OSPF用于大规模的网络,它将一个自治系统划分为多个区域,这样利用洪泛法交换链路状态信息的范围就局限于每一个区域,减少了网络上的通信量

  • OSPF不用UDP而是直接用IP数据报发送

  • OSPF对于不同类型的业务可计算出不同的路由

  • 多路径间的负载平衡:在代价相同的多条路径上分配通信量

  • OSPF支持可变长度的子网划分和无分类的编址CIDR

(4) OSPF分组IP数据报

这里写图片描述

OSPF五种分组类型:问候(hello)分组,数据库描述(Database Description)分组,链路状态请求分组(Link state Request),链路状态更新(Link state Update)分组,链路状态确认(Link State Acknowledgment)分组。

8.4 外部网关协议BGP:力求寻找一条能到达目的网络且比较好的路由,而并非寻找一个最佳路由

(1) 采用路径向量路由选择协议

(2) 每一个AS都需要一个BGP发言人,这些发言人之间交换路由信息,构建AS连通图,它是树形结构,不存在回路

这里写图片描述

构建的AS连通图如下:

这里写图片描述

8.5 路由器的构成:分成路由选择部分和分组转发部分

(1) 分组路由选择:根据前面的路由选择协议构造路由表,并经常定期的更新和维护路由表来选择分组路由

(2) 分组转发部分:分为交换结构,一组输入端口和一组输出端口

  • 交换结构:根据转发表,对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。三种交换方式:通过存储器,通过总线,通过互连网络

  • 输入端口:从线路接受分组->物理层处理->数据链路层处理->网络层处理分组排队->交换结构

  • 输出端口:交换结构->网络层处理分组排队->数据链路层处理->物理层处理->向线路发送分组

9.IP多播:采用D类IP

(1) 多播地址只能作为目的地址,不能作为源地址

(2) 网际组管理协议IGMP

10.虚拟专用网和网络地址转换NAT

(1) 在因特网中的所有目的路由器,对目的地址时专用地址的数据报一律不进行转发。如:

  • 10.0.0.0到10.255.255.255

  • 172.16.0.0到172.31.255.255

  • 192.168.0.0到192.168.255.255

(2)利用隧道技术加密内部数据实现虚拟专用VPN网

4 0