学习笔记之计算机网络(王道考研) 第四章 网络层

  • 网络层的功能:
  1. 异构网络互联
  2. 路由与转发。路由表的两大功能:路由选择分组转发
  3. 拥塞控制
  • 判断网络是否进入拥塞状态的方法是观察网络的吞吐量与网络的负载的关系:如果随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量,那么网络就可能进入了“轻度拥塞状态”;如果网络的吞吐量随着网络负载的增大反而下降,网络就可能进入拥塞状态;如果网络的负载继续增大,而网络的吞吐量下降到0,网络就可能进入了死锁状态
  • 拥塞控制的方法:
  1. 开环控制。在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。它是一种静态的预防方法,在做决定时不考虑当前网络的状态
  2. 闭环控制。采用监测网络系统,基于反馈环路,它是一种动态的方法
  • 静态路由算法(非自适应路由算法):由网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。
  • 动态路由算法(自适应路由算法):指路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,而这些路由信息是在一定时间间隙里不断更新,以适应不断变化的网络,以随时获得最优的寻路效果
  • 常用动态路由算法可分为两类:距离-向量路由算法(典例为RIP算法)链路状态路由算法(典例为OSPF算法)
  • 距离向量路由算法:所有的节点都定期地将它们的整个路由选择表传送给所有与之直接相邻的节点。路由选择表中包含:1.每条路径的目的地(另一节点) 2.路径的代价(也称距离)。
  • 距离向量算法中,所有节点都监听其他相邻节点传送来的路由选择更新信息,并在下列情况下更新它们的路由选择表:
  1. 被通告一条新的路由,该路由在本节点的路由表中不存在,此时本地系统加入这条新的路由
  2. 发送来的路由信息中有一条到达某个目的地的路由,该路由比当前使用的路由有较短的距离(较小的代价)。此种情况下,就用新路由替换路由表中达到目的地的那个现有路由
  • RIP算法采用“跳数”作为距离的度量。跳数指从源IP到目的IP所经过的路由个数,经过一个路由器跳数加1
  • 链路状态路由算法:要求每个参与该算法的节点都有完全的网络拓扑信息。首先,主动测试所有邻接节点的状态;然后,定期地将链路状态传播给所有其他的节点。使用Dijsktra最短路径算法计算路由
  • 链路状态路由算法三点特征:
  1. 向本自治系统中所有路由器发送消息,使用的方式为洪泛法,即路由器通过所有端口向所有相邻的路由器发送信息,而每一个相邻路由器又将此信息发往其所有相邻路由器(但不再发给刚刚发来消息的那个路由器
  2. 发送的信息是与该路由器相邻的所有路由器的链路状态,所谓“链路状态”,就是指本路由器都和哪些路由器相邻以及该链路的“度量”。对于OSPF算法,链路状态的“度量”主要用来表示费用、距离、时延、带宽等
  3. 只有当链路状态发生变化时,路由器才向所有路由器发送此消息
  • 距离-向量路由算法与链路状态路由算法的比较:在距离-向量路由算法中,每个节点仅与它的直接邻居交谈,它为它的邻居提供了从自己到网络中所有其他节点的最低费用估计。在链路状态路由算法中,每个节点通过洪泛法的方式与其他所有节点交谈,但它仅告诉它们与它直接相连的链路的费用
  • 距离-向量路由算法可能遇到路由环路等问题。
  • 因特网将整个互联网划分为许多较小的自治系统一个自治系统里面包含很多局域网,每个自治系统有权自主地决定本系统内应采用何种路由选择协议
  • 一个自治系统内部所使用的路由选择协议称为内部网关协议(IGP),也称为域内路由选择,具体的协议有RIPOSPF
  • 自治系统之间所使用的路由选择协议称为外部网关协议(EGP),也称为域间路由选择,具体的协议有BGP
  • 当使用层次路由时,OSPF将一个自治系统再划分为若干个区域,每个路由器都知道在本区域内如何把分组路由到目的地的细节,但不用知道其他区域的内部结构
  • IP数据报格式:

  • IP首部部分重要字段含义如下:
  1. 首部长度。占4位,以4字节为单位,最大值为60字节(15(1111) x 4),最常用的首部长度为20(首部字段值为5)
  2. 总长度。占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为2^16 - 1 = 65535字节。以太网帧的最大传送单元MTU为1500字节,因此当一个IP数据报封装成帧时,数据报的总长度(首部 + 数据部分)一定不能超过下面链路层的MTU;若超过,则需分片
  3. 标识。占16位,它是一个计数器,每产生一个数据报就加11,并赋值给标识字段。但它并不是序号(因为IP是无连接服务,无序号机制)。当一个数据报长度超过数据链路层的MTU时,必须分片,此时每个数据报片都复制一次标识号以便能正确重装成原来的数据报
  4. 标志。占3位。标志字段的最低位为MF(More Fragment),MF = 1表示后面还有分片,MF = 0表示最后一个分片;标志位中间的一位为DF(Don't Fragment),只有当DF=0时才允许分片
  5. 片偏移。占13位,以8字节为偏移单位。意为较长的分组在分片后,某片在原分组中的相对位置
  6. 首部检验和。占16位,只检验分组的首部,而不检验数据部分
  7. 生存时间TTL。占8位,即数据报在网络中可通过的路由器数的最大值,表示分组在网络中的寿命,以确保分组不会永远在网络中循环。路由器在转发分组之前,先把TTL减1。若TTL被减为0,则该分组必须丢弃
  8. 协议。指出此分组携带的数据是使用何种协议,即分组的数据部分应交给哪个传输层协议。其中6表示TCP,17表示UDP
  • 一个链路层数据报所能承载的最大数据量称为最大传送单元(MTU)。不同的链路层协议,有不同的MTU
  • 在不同的网络中传送时,MAC帧中的源地址和目的地址要发生变化。但是网桥在转发帧时,不改变帧的源地址
  • 分类的IP地址:

  • 主机号全为0,表示本网络本身
  • 主机号全为1,表示本网络的广播地址
  • 网络号为127为环回测试地址。127.0.0.0网络保留作为环路自检地址,此地址表示任意主机本身,目的地址为环回地址的IP数据报永远不会出现在任何网络上
  • 32位全为0,即0.0.0.0,表示本网络上的本主机
  • 32位全为1,即255.255.255.255,表示整个TCP/IP网络的广播地址,又称受限广播地址。实际使用时,由于路由器对广播域的隔离,255.255.255.255等效为本网络的广播地址
  • 128.0192.0.0这两个网络号不可指派
  • 私有IP地址只用于LAN,不用于WAN连接;私有IP地址被LAN重复使用
  • A类私有地址:1个A类网段,即10.0.0.0 ~ 10.255.255.255
  • B类私有地址:16个B类网段,即172.16.0.0 ~ 172.31.255.255
  • C类私有地址:256个网段,192.168.0.0 ~ 192.168.255.255
  • NAT转换表中存放着{本地IP地址:端口}到{全球IP地址:端口}的映射
  • 普通路由器在转发IP数据报时,不改变其源IP地址和目的地址。而NAT路由器在转发IP数据报时,一定要更换其IP地址(转换源IP地址目的IP地址)。
  • 普通路由器仅工作在网络层,而NAT路由器转发数据报时需要查看和转换传输层的端口号
  • 子网划分:从主机号借用若干个比特作为子网号,原网络号不变。三级IP地址 = {<网络号>,<子网号>,<主机号>}
  • 无论是IPV4还是CIDR(无分类域间路由选择),都不能指派主机号为全0或全1的IP地址给主机
  • IP地址的子网掩码其实就是告诉你这个IP地址的前多少位是网络号+子网号
  • CIDR:IP = {<网络前缀>,<主机号>},消除了传统A,B,C类网络划分
  • CIDR斜线记法:IP地址/网络前缀所占比特数
  • CIDR地址块仍可以再划分子网
  • 将网络前缀都相同的连续的IP地址组成“CIDR”地址块。一个CIDR地址块可以表示很多地址,这种地址的聚合称为路由聚合,或称为构成超网
  • 最长前缀匹配(最佳匹配):在查找路由表时,应当从匹配结果中选择具有最长网络前缀的路由,因为网络前缀越长,其地址块就越小,因而路由就越具体
  • 通常用二叉线索存储CIDR路由表
  • IP数据报再被路由器转发时其数据链路层封装所使用的MAC地址是不断改变的
  • ARP协议:地址解析协议。完成IP地址到MAC地址的映射
  • 每个主机都设有一个ARP高速缓存,存放本局域网上各主机和路由器的IP地址到MAC地址的映射表,称ARP表
  • ARP工作在网络层,工作原理......
  • ARP请求分组是广播发送,但是ARP响应分组是单播传送
  • DHCP协议:动态主机配置协议。DHCP协议是应用层协议,它是基于UDP的。
  • DHCP协议工作原理:它使用客户/服务器方式。需要IP地址的主机在启动时向DHCP服务器广播发送发现报文,这时该主机称为DHCP客户。本网络上的所有主机都能收到此广播报文,但只有DHCP服务器才回答此广播报文DHCP服务器先在其数据库中查找该计算机的配置信息,若找到,则返回找到的信息。若找不到,则从服务器的IP地址池中取一个地址分配给该计算机。DHCP服务器的回答报文叫提供报文
  • DHCP具体工作过程:DHCP发现---》DHCP提供----》DHCP请求----》DHCP确认
  • DHCP协议的客户端和服务端需要通过广播方式来进行交互,原因是DHCP协议执行期间,客户端和服务端都没有标明自己身份的IP地址,因此不可能通过单播形式进行交互。在传输层采用UDP同理分析
  • ICMP:网际控制报文协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。
  • ICMP协议是IP层协议。ICMP报文种类有两种,即ICMP差错报告报文ICMP询问报文
  • ICMP差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况。共有以下五种类型:
  1. 终点不可达。当路由器或主机不能交付数据报时(全部收到但是无法上交,可能端口有错)发送该类型报文
  2. 源点抑制。当路由器或主机由于网络拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢
  3. 时间超过。当路由器收到生存时间TTL为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文
  4. 参数问题。当路由器或目的主机收到的数据报的首部中有的字段的值不正确时(根据FCS判断),就丢弃该数据报,并向源点发送参数问题报文
  5. 改变路由(重定向)。路由器把改变路由报文发送给源主机,让主机知道下次应将数据报发送给另外的路由器(更好的路由)
  • 不应发送ICMP差错报告报文的几种情况:
  1. 对ICMP差错报告报文不再发送ICMP差错报告报文
  2. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
  3. 对具有组播地址的数据报都不发送ICMP差错报告报文
  4. 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
  • ICMP询问报文四种类型:
  1. 回送请求和回答报文。
  2. 时间戳请求和回答报文。
  3. 掩码地址请求和回答报文。
  4. 路由器询问和通告报文。
  • PING:工作在应用层,直接使用网络层的ICMP协议,而没有使用传输层的TCP或UDP协议。使用了ICMP回送请求和回答报文
  • traceroute/tracert:工作在网络层,使用了ICMP时间超过报文
  • 解决IP地址耗尽的问题的措施:
  1. 采用无类别编址CIDR
  2. 采用网络地址转换NAT方法
  3. 采用更大地址空间的新版本的IP协议IPV6(从根本解决)
  • IPV6地址占16字节,128位;IPV6只有在包的源节点才能分片,是端到端的,传输中的路由器不能分片;IPV6的首部长度是8B的整数倍身份验证和保密功能是IPV6的关键特征
  • IPV6数据报的目的地址可以是以下三种基本类型地址之一:
  1. 单播。
  2. 多播。
  3. 任播。IPV6增加的一种类型,任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常距离最近的一个
  • IPV6地址表示形式:每4位用一个十六进制数表示 ,并且用冒号分隔每个16位;当16位域的开头有一些0时可以采用一种缩写表示法,但在域中必须至少有一个数字
  • IPV6地址使用三个等级:第一级(顶级)指明全球都知道的公共拓扑。第二级(场点级)指明单个场点。第三极指明单个的网络接口
  • IPV4向IPV6过渡可以采用双协议栈和隧道技术两种策略。
  • 双协议栈:在完全过渡到IPV6之前,使一部分主机或路由器装有两个协议栈,一个IPV4一个IPV6,通过双协议栈进行转换
  • 隧道技术:将整个IPV6数据报封装到IPV4数据报的数据部分,使得IPV6数据报可以再IPV4网络的隧道中传输
  • RIP协议规定:
  1. 从一路由器到直接连接的网络距离(跳数)为1。而每经过一个路由器,则距离(跳数)加1
  2. RIP允许一条路径最多只能包含15个路由器,因此距离等于16时,它表示网络不可达
  3. RIP默认在任意两个使用RIP协议的路由器之间每30秒广播一次RIP路由更新信息
  • 当网络出现故障时,会出现慢收敛现象(即需要较长时间才能将此信息传送到所有路由器),俗称“坏消息传得慢”
  • RIP协议是应用层协议,它使用UDP传送数据(端口520)。
  • OSPF是网络层协议,它不使用UDP或TCP而是直接IP数据报传送(其IP数据报首部的协议字段为89)
  • OSPF协议:如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径,这叫做多路径间的负载平衡
  • OSPF五种分组类型:
  1. 问候分组。用来发现和维持邻站的可达性
  2. 数据库描述分组。向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
  3. 链路状态请求分组。向对方请求发送某些链路状态项目的详细信息
  4. 链路状态更新分组。用洪泛法对全网更新链路状态
  5. 链路状态确认分组。对链路更新分许的确认
  • BGP:边界网关协议。力求寻找一条能够达到目的网络且比较好的路由(不能兜圈子)。BGP采用的是路径向量路由选择协议。BGP协议是应用层协议,基于TCP
  • BGP所交换的网络可达性信息就是要达到某个网络(用网络前缀表示)所要经过的一系列AS
  • BGP协议交换路由信息的节点数量级是自治系统的数量级。BGP支持CIDR,BGP的路由表应当包括目的网络前缀、下一跳路由器以及到达该目的网络所要经过的各个自治系统序列
  • BGP-4共使用4种报文:
  1. 打开报文。用来与相邻的另一个BGP发言人建立关系
  2. 更新报文。用来发送某一路由的信息,以及列出要撤销的多条路由
  3. 保活报文。用来确认打开报文和周期性地证实邻站关系
  4. 通知报文。用来发送检测到的差错
  • 组播机制:让源计算机一次发送的单个分组可以抵达用一个组地址标识的若干台目标主机,并被它们正确接收。类似QQ群
  • 组播一定是仅应用于UDP(因为TCP只能是一对一)
  • 一个主机可以同时属于多个组(一个QQ可以加入多个QQ群)
  • IPV4中的D类地址即为组播地址
  • 主机使用IGMP协议(因特网组管理协议)加入组播组。主机组播时仅发送一份数据,只有数据在传送路径出现分叉时才将分组复制后继续转发。能够运行组播协议的路由器称为组播路由器
  • 组播地址只能用作目的地址,而不能用于源地址;并非所有的D类地址都可作为组播地址
  • IANA的以太网组播地址(MAC地址)范围是01-00-5E-00-00-00到01-00-5E-FF-FF-FF。即在48位MAC地址中,只有后23位可用作组播。和组播组IP地址的后23位对应
  • IGMP协议是让连接在本地局域网上的组播路由器知道本局域网上是否有主机参加或退出了某个组播组
  • 组播路由选择就是要找出以源主机为根节点的组播转发树,其中每个分组在每一条链路上只传送一次
  • 实现组播,主要有三种路由算法:
  1. 基于链路状态的路由选择
  2. 基于距离-向量的路由选择
  3. 可以建立在任何路由器协议之上,因此称作协议无关的组播(PIM)
  • 移动IP:支持移动性的因特网体系结构与协议被共同称为移动IP
  • 基于IPV4的移动IP定义三种功能实体:移动节点归属代理(也叫本地代理)外埠代理(也叫外部代理)。归属代理和外埠代理统称为移动代理
  • 移动IP为移动主机设置了两个IP地址,即主地址和辅地址(转交地址)。可以类比于邮局送信模型,本地代理和外部代理分别为两个地方的邮局,而移动节点为你的家的位置(假设你在这两个地方都有家)
  • 如果一个存储转发设备实现了某个层次的功能,那么它就可以互联两个在该层次上使用不同协议的网段(网络)。虽然中继器实现了物理层,但不能互联两个物理层不同的网段,这是因为中继器不是存储转发设备,它属于直通式设备

猜你喜欢

转载自blog.csdn.net/smart_ferry/article/details/84974248