计算机网络 第五版阅读笔记之四:网络层
Posted ZeeCoder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络 第五版阅读笔记之四:网络层相关的知识,希望对你有一定的参考价值。
第四章 网络层
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网
以上是关于计算机网络 第五版阅读笔记之四:网络层的主要内容,如果未能解决你的问题,请参考以下文章
计算机网络湖科大微课堂笔记 p41-46 网络层概述网络层提供的两种服务IPv4地址概述分类编址&划分子网&无分类编址的IPv4地址
计算机网络—— 网络层(12):网络层概述网络层提供的两种服务
数据通讯与网络 第五版第24章 传输层协议-TCP协议部分要点