| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 王道计算机组成原理 网络层整理 超详细版 -> 正文阅读 |
|
[网络协议]王道计算机组成原理 网络层整理 超详细版 |
网络层功能概述 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。 1、路由选择与分组转发 2、异构网络互联 3、拥塞控制 数据交换方式 电路交换 在进行数据传输时,两个结点之间必须先建立一条专用(双方独占)的物理通信路径(由通信双方之间的交换设备和链路逐段连接而成),该路径可能经过许多中间结点。这一路径在整个数据传输期间一直被独占,直到通信结束后才被释放。 电路交换的阶段:建立连接、数据传输、释放连接。 电路交换的关键点是,在数据传输的过程中,用户始终占用端到端的固定传输带宽。 电路交换技术的优点: 1、通信时延小。由于通信线路为通信双方用户专用,数据直达,因此传输数据的时延非常小。当传输的数据量较大时,这一优点非常明显。 2、有序传输。双方通信时按发送顺序传送数据,不存在失序问题。 3、没有冲突。不同的通信双方拥有不同的信道,不会出现争用物理信道的问题。 4、适用范围广。电路交换既适用于传输模拟信号,又适用于传输数字信号。 5、实时性强。通信双方之间的物理通路一旦建立,双方就可以随时通信。 6、控制简单。电路交换的交换设备及控制均较简单。 电路交换的缺点: 1、建立连接时间长。电路交换的平均连接建立时间对计算机通信来说太长。 2、线路独占,使用效率低。电路交换连接建立后,物理通路被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用率低。 3、灵活性差。只要在通信双方建立的通路中的任何一点出了故障,就必须重新拨号建立新的连接,这对十分紧急和重要的通信是很不利的。 4、难以规格化。电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。 报文交换 数据交换的单位是报文,报文携带有目标地址、源地址等信息。 报文交换在交换结点采用的是存储转发的传输方式。 报文交换的优点: 1、无需建立连接。报文交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接时延,用户可以随时发送报文。 2、动态分配线路。当发送方把报文交给交换设备时,交换设备先存储整个报文,然后选择一条合适的空闲线路,将报文发送出去。 3、提高线路可靠性。如果某条传输路径发生故障,那么可重新选择另一条路径传输数据,因此提高了传输的可靠性。 4、提高线路利用率。通信双方不是固定占有一条通信线路,而是在不同的时间一段一段地部分占有这条物理通道,因而大大提高了通信线路的利用率。 5、提供多目标服务。一个报文可以同时发送给多个目的地址,这在电路交换中是很难实现的。 报文交换的缺点: 1、由于数据进入交换结点后要经历存储、转发这一过程,因此会引起转发时延。 2、报文交换对报文的大小没有限制,这就要求网络结点需要有较大的缓存空间。 同报文交换一样,分组交换也采用存储转发方式,但解决了报文交换中大报文传输的问题。 分组交换限制了每次传送的数据块大小的上限,把大的数据块划分为合理的小数据块,在加上一些必要的控制信息(如源地址、目的地址和编号信息等),构成分组。 分组交换的优点: 1、无建立时延。不需要为通信双方预先建立一条专用的通信线路,不存在建立连接时延,用户可以随时发送分组。 2、线路利用率高。通信双方不是固定占有一条通信线路,而是在不同的时间一段一段地部分占有这条物理通道,因而大大提高了通信线路的利用率。 3、简化了存储管理(相对于报文交换)。因为分组的长度固定,相应的缓冲区的大小也固定,在交换结点中存储器的管理通常被简化为对缓冲区的管理,相对比较容易。 4、加速传输。分组时逐个传输的,可以使后一个分组的存储操作与前一个分组的转发操作并行,这种流水线方式减少了报文的传输时间。此外,传输一个分组所需的缓冲区比传输一次报文所需的缓冲区小得多,这样因缓冲区不足而等待发送的概率及时间也必然少得多。 5、减少了出错概率和重发数据量。因为分组较短,其出错概率必然减小,所以每次重发的数据量也就大大减少,这样不仅提高了可靠性,也减少了传输时延。 分组交换的缺点: 1、存在传输时延。尽管分组交换比报文交换的传输时延少,但相对于电路交换仍存在存储转发时延,而且其结点交换机必须具有更强的处理能力。 2、需要传输额外的信息量。每个小数据块都要加上源地址、目的地址和分组编号等信息。从而构成分组,因此使得传送的信息量增大了 5% ~ 10%,一定程度上降低了通信效率,增加了处理的时间,使控制复杂,时延增加。 3、当分组交换采用数据报服务时,可能会出现失序、丢失或重复分组,分组达到目的结点时,要对分组按编号进行排序等工作,因此很麻烦。若采用虚电路服务,虽无失序问题,但有呼叫建立、数据传输和虚电路释放三个过程。 imp. 1、报文交换和分组交换都采用存储转发。 2、传送数据量大,且传送时间远大于呼叫时间,选择电路交换。电路交换传输时延最小。 3、从信道利用率看,报文交换和分组交换优于电路交换,其中分组交换时延更小。 数据报方式 & 虚电路方式 数据报方式为网络层提供无连接服务。 虚电路方式为网络层提供连接服务。 无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。 连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。 数据报 1、发送分组前不需要建立连接。发送方可随时发送分组,网络中的结点可随时接收分组。 2、网络尽最大努力交付,传输不保证可靠性,所以可能丢失,为每个分组独立地选择路由,转发的路径可能不同,因而分组不一定按序到达目的结点。 3、发送的分组中要包括发送端和接收端的完整地址,以便可以独立传输。 4、分组在交换结点存储转发时,需要排队等待处理,这会带来一定的时延。通过交换结点的通信量较大或网络发生拥塞时,这种时延会大大增加,交换结点还可根据情况丢弃部分分组。 5、网络具有冗余路径,当某个交换结点或一条链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强。 6、收发双发不独占某条链路,资源利用率较高。 路由器根据分组的目的地址转发分组:基于路由协议/算法构建转发表;检索转发表;每个分组独立选路。 虚电路 虚电路将数据报方式和电路交换方式结合,以发挥两者优点。 虚电路:一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息。 建立连接(虚电路建立):每个分组携带虚电路号,而非目的地址。源主机发送“呼叫请求”分组并收到“呼叫应答”分组后才算建立连接。 数据传输:全双工通信。 释放连接(虚电路释放):源主机发送“释放请求”分组以拆除虚电路。 路由算法 1、静态路由算法(非自适应路由算法):指由网络管理员手工配置路由信息。 优点:简单、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。 缺点:当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。它不能及时适应网络状态的变化,路由更新慢,对于简单的小型网络,可以采用静态路由。 2、动态路由算法(自适应路由算法):指路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的。 优点:路由更新快。这些路由信息会在一定时间间隙里不断更新,以适应不断变化的网络,随时获得最优的寻路效果。 缺点:算法复杂,增加网络负担。 常用的动态路由算法可分为两类:距离-向量路由算法 OSPF 和 链路状态路由算法 RIP 。 -------------------------------------------------------------分界线--------------------------------------------------------------- 层次路由 1)当网络规模扩大时,路由器的路由表成比例地增大。这不仅会消耗越来越多的路由器缓冲区空间,而且需要用更多CPU时间来扫描路由表,用更多的带宽来交换路由状态信息。因此路由选择必须按照层次的方式来进行。 2)许多单位不想让外界知道自己的路由选择协议,但还想连入因特网。 自治系统(Autonomous System,AS):单一技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量来确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议来确定分组在AS之间的选择。 一个自治系统内的所有网络都由一个行政单位(如一家公司、一所大学、一个政府部门等)管辖,一个自治系统的所有路由器在本自治系统内都必须是连通的。 因特网把路由选择协议划分为两大类: 1)一个自治系统内部所使用的路由选择协议称为 内部网关协议(IGP),也称为域内路由选择,具体的协议有RIP和OSPF等。 2)自治系统之间所使用的路由选择协议称为 外部网关协议(EGP),也称域间路由选择,在不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径。具体的协议有BGP。 -------------------------------------------------------------分界线--------------------------------------------------------------- IP数据报格式 1)版本:指IP的版本,IPv4 / IPv6 2)首部长度:占4位,单位是4B。可以表示的最大十进制数是15。以32位为单位,最大值为60B(15x4B)。最常用的首部长度是20B。 3)区分服务:指示期望获得哪种类型的服务。 4)总长度:占16位,首部 + 数据,单位是 1B。数据报的最大长度位 2^16 - 1 = 65535B。以太网帧的最大传送单元(MTU)位1500B,因此当一个IP数据报封装成帧时,数据报的总长度一定不能超过下面的数据链路层的MTU指。 5)标识:占16位。它时一个计数器,每产生一个数据报就加1,并赋值给标识字段。当一个数据报的长度超过网络的MTU时,必须分片,此时每个数据报片都复制一次标识号,以便能正确重装成原来的数据报。同一数据报的分片使用同一标识。 6)标志:占3位。标志字段的最低位位 MF,MF = 1 表示后面还有分片,MF = 0 表示最后一个分分片。标志字段中间的一位时 DF,只有当 DF = 1 时才允许分片。 7)片偏移:占13位。它指出较长的分组在分片后,某片在原分组中的相对位置。片偏移以8各字节为偏移单位,即每个分片的长度一定是8B(64位)的整数倍。 8)生存时间(TTL):占8位。数据报在网络中可通过的路由器数的最大值,标识分组在网络中的寿命,以确保分组不会永远在网络中循环。经过一个路由器 -1,变成 0 则丢弃。 9)协议:占8位。指出此分组携带的数据使用何种协议,即分组的数据部分应交给哪个传输层协议,如TCP、UDP等。其中值为6表示TCP,值为17表示UDP。 10)首部校验和:占16位。IP数据报的首部校验和只校验分组的首部,而不校验数据部分。 11)源地址字段:占32位,标识发送方的IP地址。 12)目的地址字段:占32位,标识接收方的IP地址。 13)可选字段:0~40B,用来支持排错、测量以及安全等措施。 14)填充:全0,把首部补成4B的整数倍。 IP数据报分片 一个数据链路层数据报能承载的最大数据量称为最大传送单元(MTU)。因为IP数据报被封装在数据链路层数据报中,因此数据链路层的MTU严格地限制着 IP 数据报的长度。 当IP数据报的总长度大于链路MTU时,就需要将IP数据报中的数据分装在两个或多个较小的IP数据报中,这些较小的数据报称为片。 for example IPv4地址 IP地址:全世界唯一的32位/4字节标识符,标识路由器主机的接口。 IP地址:: = {<网络号>,<主机号>} 网络号标志主机(或路由器)所连接到的网络。主机号标志着该主机(或路由器)。 分类的IP地址 在各类IP地址中,有些IIP地址具有特殊用途,不用做主机的IP地址: 私有IP地址 路由器对目的地址是私有IP地址的数据报一律不进行转发。 采用私有IP地址的互联网络称为专用互联网或本地互联网。 常用的三种类别IP地址的使用范围 网络地址转换NAT 网络地址转换(NAT)是指通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址。它使得整个专用网只需要一个全球IP地址就可以与因特网连通,由于专用网本地IP地址是可重用的,所以NAT大大节省了IP地址的消耗。 私有IP地址只用于LAN,不用于WAN连接(因此私有IP地址不能直接用于Internet,必须通过网关利用NAT把私有IP地址转换为Internet中合法的全球IP地址后才能用于Internet),并且允许私有IP地址被LAN重复使用。这有效地解决了IP地址不足的问题。 使用NAT时需要在专用网连接到因特网的路由器上安装NAT软件,NAT路由器至少有一个有效的外部全球地址。使用本地地址的主机和外界通信时,NAT路由器使用NAT转换表将本地地址转换成全球地址,或将全球地址转换成本地地址。NAT转换表中存放着{本地IP地址:端口} 到{全球IP地址:端口}的映射。通过{ip地址:端口}这样的映射方式,可让多个私有IP地址映射到同一个全球IP地址。 子网划分 分类的IP地址的弱点: 1、IP地址空间的利用率有时很低。 2、给每个物理网络分配一个网络号会使路由表变得太大而网络性能变坏。 3、两级IP地址不够灵活。 子网划分:在IP地址中增加一个子网号字段,使两级IP地址变成了三级IP地址。 基本思路 1)子网划分纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。 2)从主机号借用若干比特作为子网号,当然主机号也就相应减少了相同比特。三级IP地址的结构如下:IP地址 = {<网络号>,<子网号>,<主机号>}。 3)凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的目的网络号,先找到连接到本单位网络上的路由器。然后该路由器在收到IP数据报后,按目的网络号和子网号找到目的子网。最后把IP数据报直接交付给目的主机。 imp. 不论是分类的IPv4地址还是CIDR,其子网中的主机号为全0或全1的地址都不能被指派。 子网中主机号全0的地址为子网的网络号,主机号全1的地址为子网的广播地址。 子网掩码 子网掩码是一个与IP地址相对应的、长32bit的二进制串,它由一串1和跟随的一串0组成。 其中,1对应于IP地址中的网络号及子网号,而0对应于主机号。 计算机只需将IP地址和其对应的子网掩码逐位“与”(逻辑AND运算),就可得出相应子网的网络地址。 imp. 使用子网掩码时路由器的分组转发算法: 1)从收到的分组的首部提取目的IP地址,记为D。 2)先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相“与”,看结果是否和相应的网络地址匹配。若匹配,则将分组直接交付,否则间接交付,执行步骤3)。 3)若路由器中有目的地址为D的特定主机路由,则将分组传给路由表中所指明的下一跳路由器;否则,执行步骤4)。 4)对路由表中的每一行(目的网络地址、子网掩码、下一跳地址)中的子网掩码和D逐位相“与”,其结果为N。若N与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行步骤5)。 5)若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行步骤6)。 6)报告转发分组出错。 无分类域间路由选择 CIDR 无分类域间路由选择是在变长子网掩码的基础上提出的一种消除传统 A、B、C类网络划分,并且可以在软件的支持下实现超网构造的一种IP地址的划分方法。 IP地址的无分类两级编址为:IP:: = {<网络前缀>, <主机号>} 斜线记法:IP地址/网络前缀所占比特数 其中,网络前缀所占比特数对应于网络号的部分,等效于子网掩码中连续1的部分。 构成超网 将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。 方法:将网络前缀缩短。 CIDR地址块中的地址数一定是2的整数次幂,实际可指派的地址数通常为 2^N - 2,N 表示主机号的位数,主机号全0代表网络号,主机号全1为广播地址。 最长前缀匹配 使用CIDR时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。 地址解析协议 ARP IP地址与硬件地址 IP地址是网络层使用的地址,它是分层次等级的。硬件地址是数据链路层使用的地址(如MAC地址),它是平面式的。在网络层及网络层之上使用IP地址,IP地址放在IP数据报的首部,而MAC地址放在MAC帧的首部。通过数据封装,把IP数据报分组封装为MAC帧后,数据链路层看不见数据报分组中的IP地址。 在实际网络的链路上传送数据帧时,最终必须使用硬件地址。 APR协议:完成主机或路由器IP地址到MAC地址的映射。 ARP协议工作原理: 检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)。 ARP协议4种典型情况: 1、主机A发给本网络上的主机B:用ARP找到主机B的硬件地址; 2、主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址; 3、路由器发给本网络的主机A:用ARP找到主机A的硬件地址; 3、路由器发给另一网络的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址。 从IP地址到硬件地址的解析是自动进行的,主机的用户并不知道这种地址解析过程。只要主机或路由器和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP就会自动地将这个IP地址解析为数据链路层所需要的硬件地址。 动态主机配置协议 DHCP 动态主机配置协议(Dynamic Host Configuration Protocol)常用于给主机动态地分配IP地址。 DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。 它提供了即插即用地联网机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。 工作原理 需要IP地址的主机在启动时就向DHCP服务器广播发现报文,这时该主机就成为DHCP客户。本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才回答此报文。DHCP服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池中取一个地址分配给高计算机。DHCP服务器的回答报文称为提供报文。 DHCP服务器聚合DHCP客户端的交换过程: 1、DHCP客户机广播”DHCP发现“信息,试图找到网络中的DHCP服务器,以便从DHCP服务器获得一个IP地址。 2、DHCP服务器收到”DHCP发现“消息后,向网络中广播”DHCP提供“消息,其中包括提供DHCP客户机的IP地址和相关配置信息。 3、DHCP客户机收到”DHCP提供“消息,如果接收DHCP服务器所提供的相关参数,那么通过广播”DHCP请求“消息向DHCP服务器请求提供IP地址。 4、DHCP服务器广播“DHCP确认”消息,将IP地址分配给DHCP客户机。 imp. 1、DHCP允许网络上配置多台DHCP服务器,当DHCP客户机发出DHCP请求后,有可能收到多个应答消息,这时DHCP客户机通常挑选最先到达的。 2、DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限时间内使用这个分配到的IP地址。DHCP称这段时间为租用期。租用期的数值应由DHCP服务器自己决定,DHCP客户也可以在自己发送的报文中提出对租用期的要求。 3、采用广播方式进行交互的原因是在DHCP执行初期,客户端不知道服务器端的IP地址,而在执行中间,客户端并未分配IP地址,从而导致两者之间的通信必须采用广播方式。采用UDP而不采用TCP的原因也很明显:TCP需要建立连接,如果连对方的IP地址都不知道,那么更不可能通过双方的套接字建立连接。 网际控制报文协议 ICMP TCP/IP协议栈 为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol,ICMP)来让主机或路由器报告差错和异常情况。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP是IP层协议。 ICMP报文分为 ICMP差错报告报文 和 ICMP 询问报文。 ICMP差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况。共5种类型。 1)终点不可达。当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。 2)源点抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。 3)时间超过。当路由器收到生存时间(TTL)为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。 4)参数问题。当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。 5)改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。 不应发送ICMP差错报告报文的几种情况: 1、对ICMP差错报告报文不再发送ICMP差错报告报文。 2、对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。 3、对具有组播地址的数据报都不发送ICMP差错报告报文。 4、对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。 ICMP询问报文有4种类型:回送请求和回答报文、时间戳请求和回答报文、掩码地址请求和回答报文、路由器询问和通告报文。
IPv6 解决“IP地址耗尽”问题的措施有以下三种: 1、采用无类别编制CIDR,使IP地址的分配更加合理。 2、采用网络地址转换(NAT)方法以节省全球IP地址。 3、采用具有更大地址空间的新版本的IPv6。 ---- 根本上解决。 IPv6数据报格式
IPv6 & IPv4 1、IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。 2、IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。 3、IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。 4、IPv6支持即插即用(即自动配置),不需要DHCP协议。 5、IPv6首部必须是8B的整数倍,IPv4首部是4B的整数倍。 6、IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。 7、ICMPv6:附加报文类型“分组过大”。 8、IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延应用。 9、IPv6取消了协议字段,改成下一个首部字段。 10、IPv6取消了总长度字段,改用有效载荷长度字段。 11、IPv6取消了服务类型字段。 12、增大了安全性。身份验证和保密功能是IPv6的关键特征。 IPv6地址表现形式 一般形式:冒号十六进制记法:把地址种的每4位用一个十六进制数表示,并用冒号分隔每16位。 压缩形式:当16位域的开头有一些0时,可以采用一种缩写表示法,但在域中必须至少有一个数字。 零压缩:一连串连续的0可以被一对冒号取代。 IPv6基本地址类型 1、单播。单播就是传统的点对点通信。 2、多播。多播是一点对多点的通信,分组被交付到一组计算机的每台计算机。 3、任播。IPv6增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付其中的一台计算机,通常是距离最近的一台计算机。 IPv6向IPv4过渡的策略 双栈协议:在一台设备上同时装有IPv4和IPv6协议栈,那么这台设备既能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么在路由器的不同接口上分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络;如果这台设备是一台计算机,那么它将同时拥有IPv4地址和IPv6地址,并且具备同时处理这两个协议地址的功能。 隧道技术:将整个IPv6数据报封装到IPv4数据报的数据部分,使得IPv6数据报可以在IPv4网络的隧道中传输。 路由信息协议RIP与距离向量算法 路由信息协议(Routing Information Protocol,RIP)是内部网关协议(IGP)中最先得到广泛应用的协议。 RIP是一种分布式的基于距离向量的路由选择协议,其最大的优点就是简单。 RIP规定 1)网络中的每个路由器都要维护从它自身到其他每个目的网络的距离记录(因此这是一组距离,称为距离向量)。 2)距离也称为跳数(Hop Count),规定从一个路由器到直接连接网络的距离(跳数)为1。而每经过一个路由器,距离(跳数)加1。 3)RIP认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径。 4)RIP允许一条路径最多只能包含15个路由器(即最多允许15跳)。因此距离等于16时,它表示网络不可达。可见RIP只适用于小型互联网。距离向量路由可能会出现环路的情况。规定路径上的最高跳数的目的是为了防止数据报不断循环在环路上,减少网络拥塞的可能性。 5)RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表(动态维护)。 6)在RIP中不支持子网掩码的RIP广播。所以RIP中每个网络的子网掩码必须相同。但在新的RIP2中,支持变长子网掩码和CIDR。 距离向量算法 每个路由表项目都有三个关键数据:<目的网络N,距离d,下一跳路由器地址X>。对于每个相邻路由器发送过来的RIP报文,执行如下步骤: 1)对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目:把“下一跳”字段中的地址都改为X,并把所有“距离”字段的值都加1。 2)对修改后的RIP报文中的每个项目,执行如下步骤: ? i)当原来的路由表中没有目的网络N时,把该项目添加到路由表中。 ? ii)当原来的路由表中有目的网络N,且下一跳路由器的地址是X时,用收到的项目替换原路由表中的项目。 ? iii)当原来的路由表中有目的网络N,且下一跳路由器的地址不是X时,如果收到的项目中的距离d小于路由表中的距离,那么就用收到的项目替换原路由表中的项目;否则什么也不做。 3)如果180秒(RIP默认超时时间为180秒)还没有收到相邻路由器的更新路由表,那么把此相邻路由器记为不可达路由器,即把距离设置为16(距离为16表示不可达)。 4)返回。 RIP优点:实现简单、开销小、收敛过程较快。 RIP缺点: 1、限制了网络的规模,能使用的最大距离为15。 2、路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大。 3、网络出现故障时,会出现慢收敛现象(即需要较长的时间才能将此信息传送到所有路由器),俗称“坏消息传得慢”,使更新过程的收敛时间长。 imp. RIP 是应用层协议,使用UDP传送数据(端口520)。RIP选择的路径不一定是时间最短的,但一定是具有最少路由器的路径。因为它是根据最少跳数进行路径选择的。 开放最短路径优先 OSPF 协议与链路状态算法 “开放”表明OSPF协议不是受某一厂商控制,而是公开发表的。 OSPF最主要的特征就是使用分布式的链路状态协议。 基本特点 和谁交换? 使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。(广播) 最终整个区域内所有路由器都得到了这个信息的一个副本。 ----- 而RIP仅向自己相邻的几个路由器发送信息。 交换什么? 发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价 —— 费用、距离、时延、带宽等)。 ----- 而RIP发送的信息是本路由器所知道的全部信息,即整个路由表。 多久交换? 只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。收敛过程快,不会出现“坏消息传得慢”的问题。 最终,所有路由器都能建立一个链路状态数据库,即全网拓扑图。 ----- 而RIP中,路由器之间会定期交换路由表的信息。
OSPF支持可变长度的子网划分和CIDR。 链路状态算法 为了确保链路状态数据库与全网状态保持一致,OSPF规定每隔一段时间(30分钟)就刷新一次数据库中的链路状态。由于一个路由器的链路状态只涉及与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。当互联网规模很大时,OSPF要比RIP好得多。 OSPF的基本操作 OSPF的区域 为使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干更小的范围,称为区域。 每个区域都有一个32位的区域标识符。 划分区域的好处是,将利用洪泛法交换链路状态信息的范围局限于每个区域而非整个自治系统,减少了整个网络上的通信量。在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑情况。 处在上层的域称为主干区域,负责连通其他下层的区域,并且还连接其他自治域。 边界网关协议 BGP 边界网关协议(Border Gateway Protocol,BGP)是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。 路由表包含已知路由器的列表、路由器能够达到的地址及到达每个路由器的路径的跳数。 BGP只能力求寻找一条能够到达目的网络且比较好的路由,而并非寻找一条最佳路由。 BGP采用的是路径向量路由选择协议。 BGP是应用层协议,它是基于TCP的。 BGP工作原理 每个自治系统的管理员要选择至少一个路由器(可以有多个)作为该自治系统的“BGP发言人”。一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接(BGP报文是TCP报文的数据部分),然后在此连接上交换BGP报文以建立 BGP会话,再利用BGP会话交换路由信息。当所有 BGP发言人都相互交换网络可达性的信息后,各 BGP发言人就可找出到达各个自治系统的较好路由。 每个 BGP发言人除必须运行BGP外,还必须运行该AS所用的内部网关协议,如 OSPF 或RIP。BGP所交换的网络可达性信息就是要到达某个网络(用网络前缀表示)所要经过的一系列AS。 BGP特点 1、BGP交换路由信息的结点数量级是自治系统的数量级,要比这些自治系统中的网络数少很多。 2、每个自治系统中 BGP发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。 3、 BGP支持 CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。 4、在BGP 刚运行时,BGP的邻站交换整个BGP 路由表,但以后只需在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。 BGP-4共使用4种报文 1、打开(Open)报文。用来与相邻的另一个BGP发言人建立关系。 2、更新(Update)报文。用来发送某一路由的信息,以及列出要撤销的多条路由。 3、保活(Keepalive)报文。用来确认打开报文并周期性地证实邻站关系。 4、通知(Notification)报文。用来发送检测到的差错。 三种路由协议的比较 IP 组播 IP数据报的三种传输方式 单播:单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种 点对点传输方式。 广播:广播是指发送数据包到同一广播域或子网内的所有备份的一种数据传输方式,是一种点对多点传输方式。 组播(多播):当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。 使用组播的缘由: 有的应用程序要把一个分组发送给多个目的地主机。不是让源主机给每个目的地主机都发送一个单独的分组,而是让源主机把单个分组发送给一个组播地址,该组播地址标识一组地址。网络把这个分组的副本投递给该组中的每台主机。 主机可以选择加入或离开一个组,因此一台主机可以同时属于多个组。 主机组播时仅发送一份数据,只有数据在传送路径出现分岔时才将分组复制后继续转发。因此,对于发送方而言,数据只需发送一次就可发送到所有接收者,大大减轻了网络的负载和发送者的负担。 组播需要路由器的支持才能实现,能够运行组播协议的路由器称为组播路由器。 IP组播地址 IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址。 IP组播使用D类地址格式。D类的前四位是1110,因此D类地址范围是 224.0.0.0 ~ 239.255.255.255。 imp. 1、组播数据报也是“尽最大努力交付”,不提供可靠交付,组播一定仅应用于UDP。 2、组播地址只能用于目的地址,而不能用于源地址。 3、对组播数据报不产生ICMP差错报文。 4、并非所有的D类地址都可作为组播地址。 IP组播分为:在局域网上进行硬件组播;在因特网范围内进行组播。 硬件组播 组播MAC地址以十六进制值 01-00-5E 打头,余下的6个十六进制位是根据IP组播组地址的最后23位转换得到的。 TCP/IP 协议使用的以太网索伯地址的范围是: 从 01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF。 由于组播IP地址与以太网硬件地址的映射关系不是唯一的,因此收到组播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据包丢弃。 IGMP 与 组播路由算法 因特网组管理协议(Internet Group Management Protocol,IGMP)。 IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组。 IGMP和ICMP都使用IP数据报传递报文。 IGMP工作的两个阶段 组播路由协议 组播路由选择实际上就是要找出以源主机为根节点的组播转发树,其中每个分组在每条链路上只传送一次。不同的多播组对应于不同的多播转发树:同一个多播组,对不同的源点也会有不同的多播转发树。 常用的三种算法: 1、基于链路状态的路由选择 2、基于距离-向量的路由选择 3、协议无关的组播(稀疏/密集)【可以建立在任何路由器协议之上】 移动IP 移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。 移动结点:具有永久IP地址的移动设备。 归属代理(本地代理):一个移动结点拥有的就“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。 外部代理(外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。 永久地址(归属地址/主地址):移动站点在归属网络中的原始地址。 转交地址(辅地址):移动站点在外部网络使用的临时地址。 移动IP通信过程
网络层设备 路由器 路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是连接异构网络并完成路由转发。 路由选择:根据所选定的路由选择协议构造出路由表,同时经常或定期和相邻路由器交换路由信息而不断地更新和维护路由表。 分组转发:由三部分组成,交换结构、一组输入端口、一组输出端口。 输入端口在从物理层收到地比特流中提取出数据链路层帧,进而从帧中提取出网络层数据报。 输出端口则执行恰好相反地操作。 交换结构:路由器的关键部件,根据转发表(路由表得来)对分组进行转发。 当源主机要向目标主机发送数据报时,路由器先检查源主机与目标主机是否连接在同一个网络上。 1、如果源主机和目标主机在同一个网络上,那么直接交付而无须通过路由器。 2、如果源主机和目标主机不在同一个网络上,那么路由器按照转发表(路由表)指出地路由将数据报转发给下一个路由器,这称为间接交付。 路由表隔离了广播域。 三层设备的区别 路由器可以互联两个不同网络层协议的网段。 网桥可以互联两个物理层和链路层不同的网段。 集线器不能互联两个物理层不同的网段。 路由表与路由转发 路由表根据路由选择算法得出的,主要用途是路由选择。 路由表有4个项目:目的网络IP地址、子网掩码、下一跳IP地址、接口。 转发表从路由表得出的。 转发表有2个项目:一个分组将要发往的目的地址、分组的下一跳(即下一步接收者的目的地址,实际为MAC地址。 路由表总是用软件来实现;转发表可以用软件来实现,甚至也可以用特殊的硬件来实现。 转发和路由选择的区别: 转发 是路由器根据转发表把收到的IP数据报从合适的端口转发出去,它仅涉及一个路由器。 而 路由选择 则涉及很多路由器,路由表是许多路由器协同工作的结果。这些路由器按照复杂的路由算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出整个路由表。 10723_102257.jpg" style=“zoom:30%;” /> 三层设备的区别 路由器可以互联两个不同网络层协议的网段。 网桥可以互联两个物理层和链路层不同的网段。 集线器不能互联两个物理层不同的网段。 路由表与路由转发 路由表根据路由选择算法得出的,主要用途是路由选择。 路由表有4个项目:目的网络IP地址、子网掩码、下一跳IP地址、接口。 转发表从路由表得出的。 转发表有2个项目:一个分组将要发往的目的地址、分组的下一跳(即下一步接收者的目的地址,实际为MAC地址。 路由表总是用软件来实现;转发表可以用软件来实现,甚至也可以用特殊的硬件来实现。 转发和路由选择的区别: 转发 是路由器根据转发表把收到的IP数据报从合适的端口转发出去,它仅涉及一个路由器。 而 路由选择 则涉及很多路由器,路由表是许多路由器协同工作的结果。这些路由器按照复杂的路由算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出整个路由表。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 17:16:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |