这是我自己看王道系列视频总结的,我是在专注笔记里写好然后粘过来的(给大家安利专注笔记,是我用过无数笔记软件后留下的😂),需要原笔记文件的可以给我评论哈
第一章概要 总结:https://blog.csdn.net/Tangli_yzy/article/details/113779591
第二章物理层 总结:https://blog.csdn.net/Tangli_yzy/article/details/113779634
第三章数据链路层 总结:https://blog.csdn.net/Tangli_yzy/article/details/113815971
第四章网络层 总结:https://blog.csdn.net/Tangli_yzy/article/details/113876306
第五章传输层 总结:https://blog.csdn.net/Tangli_yzy/article/details/113883954
第六章应用层 总结:https://blog.csdn.net/Tangli_yzy/article/details/113913986
第四章 网络层
- 网络层导图
- 功能
- 路由选择和分组转发(最佳路径)
- 异构网络互联
- 拥塞控制(对于整个网络而言的拥塞,而非流量控制中提到的发送端和接收端之间的控制。对应的解决方法有开环控制(静态)和闭环控制(动态))
- 转发
- 硬件结构--路由器 转发表
- 各种协议--IP,ARP,DHCP,ICMP
- IPv4分组
- 网络层编址
- 基本编址形式
- 子网划分和子网掩码
- CIDR
- 网络地址转换NAT
- IPv6
- 移动IP
- 路由选择
- 路由选择算法
- 静态路由
- 动态路由
- 距离向量路由算法
- 链路状态路由算法
- 路由选择协议(层次路由)
- 自治系统内IGP --RIP,OSPF
- 自治系统间EGP--BGP
- IP组播
- 路由选择算法
- 功能
网络层的主要任务是把分组从源端传到目的端。传输单位是数据报。
数据交换方式
网络的核心:路由器,通过路由器可以将大量主机连接起来。
网络层是路由器的最高层次
电路交换
常用于电话网络,要先建立连接,然后通信,结束时还有再释放连接。特点:建立连接之后,独占资源。
优点是通信时延小,可以实现有序传输,没有冲突,且实时性强。
缺点:建立连接时间较长,线路独占通信效率低,灵活性差,且没有差错控制能力。
报文交换
报文:源应用发送的信息整体。
利用交换设备的存储转发特性,实现对报文的数据交换。
无需建立连接,存储转发、动态分配线路,线路的可靠性较高,线路利用率较高,可提供多目标服务。
但也存在存储转发时延,报文大小是不确定的、因此对于网络节点要求要有较大的缓存空间。
分组交换
通过把大的数据报分割成小的数据块(分组)进行存储转发,来解决报文交换存在的部分问题。(分组大小可等大也可不等大。)
与报文交换拥有共同的特性:无需建立连接,存储转发、动态分配线路,线路的可靠性较高,线路利用率较高。此外相比于报文交换,存储管理更加方便(单个传输的分组大小相对比较小,对交换设备的缓存大小要求较小)
但也存在缺点:仍然存在存储转发的时延,需要传输额外的信息量(编号等信息),若乱序到达目的主机,还有对分组进行排序重组。
数据报方式和虚电路方式
数据报方式为网络层提供无连接服务,而虚电路方式啧提供连接服务(可以理解为分组交换方式和电路交换的方式的结合,以发挥两者的优点)。
当然此处两种方式都是分组交换的衍生,因此这两种方式所传输的都是分组。无连接服务即事先不提供确定的传输路径,各个分组独立的确定各自的传输路径,因此每个分组的传输路径有可能不同。而对于连接服务,则要先为所有分组确定一个传输路径(建立连接),然后沿着连接传输系列分组,系列分组的传输路径是相同的,传输结束之后再拆除连接。(类似打电话)
存储转发需要设备交换机存储有转发表(路由表),转发表一般至少有两列,一列是目的网络地址,另一列则是链路接口。
可靠性和差错处理并非重点,了解即可。
IP数据报格式
版本:IPv4/IPv6
首部长度:单位是4B(首饰),由于存在固定部分,长度为20B,因此首部长度最小为5(即0101)。占4位,所以最大值为15。若可选字段的长度不是4B的整数倍,则利用填充部分进行填充。
区分服务:用的不多,期望获得哪种类型的服务。
总长度:首部长度+数据部分长度,单位1B(1总)。共16位。上限是216-1=65535,但是永远都不会达到这个值,因为如果长度过大,会进行分片,以满足数据链路层MTU的要求。
生存时间:TTL(time to live),可以理解为ip数据报的保质期,以路由器跳数为单位,每经过一个路由器就-1,变成0时丢弃。是为了防止无法交付的数据报在网络中无限制的兜圈子。
协议:要和版本字段区分,指的是数据部分的协议。(TCP对应6 面向连接,UDP对应17 无连接的遗弃)
首部检验和 16位:只检验首部,不检验数据部分,是为了避免数据发生变化之后是否出错。每经过一个路由器都要计算一次首部检验和。
源地址和目的地址:32位。
可选:0-40B,用来支持一些其他额外的功能。
填充:全0,将首部填充为4B的整数倍。
最大传送单元MTU:链路层的数据帧可封装数据的上限。在以太网中,MTU为1500B。若数据报的长度超过MTU,则需要对其进行分片。
IP分组构成链路层数据帧的数据部分,最大长度为MTU,如下所示。
标识:在发生分片的情况下,相同数据报的不同分片具有相同的标识符。
标志(3位,最高位不用):只有两位有意义,中间位(DF,don`t fragment):DF=1,禁止分片,DF=0,允许分片。最低位(MF,More Fragment)MF=1,后面还有分片,MF=0,后面没有分片(自己是最后一片)。当然必须在DF=0的情况下,MF的值才有意义。
片偏移:和标识符一起,指出该片在原分组中的相对位置,以8B为单位(8片)。因此可以推出,除了最后一个分片之外,所有分片的长度都是8B的整数倍。
IP地址
IP地址经历了分类IP地址、子网划分、构成超网(无分类)三个阶段。
IP地址是32位/4B标识符,标识路由器主机的接口。
同一局域网的网络号相同,主机号全0可以标识局域网
网桥不能分割广播域,使用网桥连接起来的仍然是一个局域网
路由器可以区分广播域,路由器的每一个接口都有一个IP地址
- 分类IP地址
- {<网络号>,<主机号>} ,前面的0、10、110、1110等为网络的类别位。
- 最大主机数-2(主机号全0/1)
- 特殊IP地址:
网络号 | 主机号 | 作为IP分组源地址 | 作为IP分组目的地址 | 具体格式 | 用途 |
全0 | 全0 | 可以 | 不可以 | 0.0.0.0 | 本网范围内表示主机,路由表中表示默认路由(整个Internet网络) |
全0 | 特定值 | 可以 | 不可以 | 0.0.0.1 | 表示本网内某个特定主机 |
全1 | 全1 | 不可以 | 可以 | 255.255.255.255 | 本网广播地址,路由器不转发 |
特定值 | 全0 | 不可以 | 不可以 | 222.1.1.0 | 网络地址,表示一个网络 |
特定值 | 全1 | 不可以 | 可以 | 222.1.1.255 | 直接广播地址,对特定网络上的所有主机进行广播 |
127 | 任何数(非全0/1) | 可以 | 可以 | 127.0.0.1 | 环回地址,用于本地软件环回测试 |
- 私有IP地址:
- 在互联网中是不认的,只适用于内部网络当中(路由器对目的地址是私有IP地址的数据报一律不进行转发)
- 内网与外网的通信:NAT技术
- 在专用网连接到因特网的路由器上安装NAT软件-->NAT路由器,至少有一个有效的外部全球IP地址(是内网中主机的代表)
- NAT转换表
- 某主机发送数据报<源地址,目的地址,端口号>到NAT路由器处,NAT路由器会根据NAT转换表替换源地址和端口号(网络地址转换过程)
- 分类IP地址的弱点:
- IP地址空间的利用率有时很低
- 两级IP地址不够灵活
- 子网划分
-
- 通过在主机号字段中拿出一部分作为子网号,把两级IP地址划分为三级IP地址。
- 此时IP地址的形式为: { <网络号>,<子网号>,<主机号> }
- 主机号不能全0(本网络)或全1(广播分组)
- 主机号至少留下两位(一位的话只能全0全1了),子网号能否全0全1要看情况
- 划分之后,也必须对应的设置子网掩码,B类网络默认的子网掩码是255.255.0.0,C类则是255.255.255.0。而分为三级之后,则类似的主机号部分对应的为0,其余部分(网络号和子网号对应为1)。如B类地址的子网占用两个比特,那么子网掩码就是11111111 11111111 11000000 00000000也即255.255.192.0。当需要转发时,则将子网掩码与ip地址进行逐位相与,即可得到子网网络地址。
- 同一个IP地址和不同的子网掩码相与可能会得到相同的网络地址,但子网号位和主机位不同
- 例题:
- 使用子网时分组的转发:
- 路由表:<目的网络地址,目的网络子网掩码,下一跳地址>
- 路由器转发分组的算法:
- 提取目的IP地址
- 是否直接交付?判断方法:将目的地址和路由器直接相连的子网的子网掩码逐位相与,看相与的结果是否和对应子网地址相同,若相同则说明应该转发给这个子网
- 是:发给对应子网
- 否:(间接交付,需要经过更多路由器转发)
- 有无特定主机路由?(路由表中的一行)
- 有-->按照这一行往下走
- 无-->检测路由表中有无路径-->逐位相与,将目的地址和路由器中每一行的子网掩码相与,如果有符合的,就按那一行往下走
- 无相同-->发给默认路由0.0.0.0 默认路由会发给另外一台路由器(转来转去)
- TTL耗尽后仍未找到-->丢弃,报告转发分组出错
- 无相同-->发给默认路由0.0.0.0 默认路由会发给另外一台路由器(转来转去)
- 有无特定主机路由?(路由表中的一行)
- 无分类CIDR (构成超网)
-
- 消除了传统的ABC类、划分子网的概念。ip格式则为<网络前缀>,<主机号>。其中前缀部分长度是可变的。其记法则为:128.14.35.7/20表示去前20位为网络前缀。CIDR则把网络前缀相同的ip地址组成一个“CIDR地址块”,可以类比于前面的一个网段。
- CIDR融合了子网地址和子网掩码,方便了子网的划分。
- CIDR记法:IP地址后加“/网络前缀的位数”
- 对应的CIDR也有对应的子网掩码,子网掩码首1长度则为网络前缀的长度。
- 由多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合,将相同接口的网络合体成一个网络地址,方法是将网络前缀缩短(所有网络地址取交集)
- 划分子网:由少变多
- 构成超网:由多变少
- 使用CIDR时,查找路由表可能得到多个匹配结果,应该选择最长网络前缀的路由。前缀越长,地址块越小,路由越具体。(最长前缀匹配)
地址解析协议ARP
发送数据的过程:
默认网关IP地址(下一跳)跳到下一个主机或路由器,注意交换机是没有MAC地址的,因此不能跳到交换机处。
应用层的文件,经过传输层时分为多个报文段,网络层封装上IP地址(源地址和目的地址)、链路层封装MAC地址和FCS(源MAC地址和目的MAC地址,FCS:帧检验序列,是用来实现差错检验),最后放在物理层上形成比特流进行传输。
在实际网络的链路上进行传送数据帧时,最终必须使用MAC地址。
每台主机上都有一个ARP高速缓存,里面有本局域网上的各个主机和路由器的IP地址到MAC地址的映射表。当需要将IP地址转换为MAC地址时,则可以利用ARP高速缓存进行转换,将对应表项写入MAC帧中。
boundary-start ---ARP协议---
当主机内的高速缓存没有目的IP地址到对应MAC地址的映射时,可以利用ARP协议实现。A主机通过广播的方式发送ARP请求分组(广播请求),主机B收到请求之后会发送ARP响应分组给A主机告知其MAC地址(单播响应),这样A主机就可以将B主机的IP地址到MAC地址的映射写入其ARP高速缓存(10-20min更新一次)中,之后就可以将IP地址转换为MAC地址。
而如果是寻找不同网络的另一台主机,则利用ARP找到本网络上一个路由器/网关的MAC地址即可。
另外,ARP协议是自动进行的(处于链路层和网络层之间),主机是不能感知到的。ARP协议解决的是下一条走哪的问题
boundary-end ------
主机A发送IP数据报给主机B,经过了5个路由器,则此过程总共使用了6次ARP协议。
DHCP协议
- 主机如何获得IP地址?
- 静态配置(IP地址+子网掩码+默认网关)
- 动态配置:由DHCP服务器动态分配
- 动态主机配置协议DHCP是应用层协议,使用客户/服务器(C/S)方式。客户端和服务端通过广播方式进行交互,DHCP协议是基于UDP。提供即插即用的联网机制,允许地址重用,支持移动用户加入网络和在用地址续租。主机获取IP地址过程如下:(其中每一步都是用广播进行的)
- 主机广播DHCP发现报文,试图找到网络中的服务器,服务器获得一个IP地址。
- DHCP服务器广播DHCP提供报文 “有!”服务器拟分配给主机一个IP地址及相关配置,先到先得。
- 主机广播DHCP请求报文 “我用你给我的IP地址I啦?”主机向服务器请求提供IP地址。 (这里也使用广播而非单播,也是为了同时告知其他DHCP服务器,本主机已经获得了IP地址,不需要再为我分配IP地址了。)
- DHCP服务器广播DHCP确认报文,正式将IP地址分配给主机。
- 动态主机配置协议DHCP是应用层协议,使用客户/服务器(C/S)方式。客户端和服务端通过广播方式进行交互,DHCP协议是基于UDP。提供即插即用的联网机制,允许地址重用,支持移动用户加入网络和在用地址续租。主机获取IP地址过程如下:(其中每一步都是用广播进行的)
ICMP协议
ICMP的位置如下,可以看出ICMP和IGMP协议是在网络层和传输层之间的协议,故其可以起到桥梁的作用,更加有效的转发IP数据报并提高交付成功的可能。
- 网际控制报文协议ICMP
- ICMP协议支持主机或路由器差错报告和网络探寻
- 发送特定的ICMP报文
- ICMP差错报文是IP数据报的数据部分
- 终点不可达
- 时间超过
- 参数问题
- 改变路由(重定向)
- 不应发送ICMP差错报文的情况
- 对ICMP差错报告报文不再发送
- 对第一个分片的数据报片的所有后续数据报片都不发送
- 对组播地址的数据报都不发送
- 对具有特殊地址(如127.0.0.0 0.0.0.0)的数据报不发送
- ICMP询问报文
- 回送请求和回答报文
- 时间戳请求和回答报文
- ICMP的应用
- PING:测试两台主机之间的连通性,使用了ICMP回送请求和回答请求,向目的主机发送ICMP Echo请求报文,目的主机收到之后会发送Echo 回答报文。
- Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文
- Traceroute 发送的 IP 数据报封装的是无法交付的 UDP 用户数据报,并由目的主机发送终点不可达差错报告报文。
- 源主机向目的主机发送一连串的IP 数据报,第一个数据报P1生存时间TTL=1,第二个数据报P2的TTL=2,以此类推。则P1到达路径上第一个路由器R1时,TTL-=1,此时TTL=0,则R1就丢弃P1,并向源主机发送一个ICMP时间超过差错报告报文;类似的,源主机继续发送P2,R1收到后TTL-=1,此时TTL=1,R1将P2转发给R2,TTL-=1,此时TTL=0,故R2丢弃P2,并向源主机再次发送一个ICMP 时间超过差错报告报文。-------------以此类推,知道最后一个数据报刚好到达目的主机,由于所发送数据报封装的是无法交付的UDP,因此目的主机要向源主机发送ICMP重点不可达差错报告报文。之后源主机就知道了到达目的主机所需要经过的路由器的IP以及到达各个路由器的距离了。
- ICMP差错报文是IP数据报的数据部分
- ICMP协议支持主机或路由器差错报告和网络探寻
IGMP协议
IGMP协议(网际组管理协议)是在路由器内部使用的协议,一个组播路由器可以通过IGMP协议得知局域网中是否存在能够接收组播数据报的主机(是否有主机参加或退出了)
组播路由选择协议(IP组播)
组播路由选择协议目的是找出以源主机为根节点的组播转发树,构造树可以避免在路由器间兜圈子。
- 组播路由选择协议常使用的3种算法
- 基于链路状态的路由选择
- 基于距离-向量的路由选择
- 协议无关的组播(稀疏/密集)
IPv6
- 为什么有IPv6?
- 32位的IPv4地址空间已经分配殆尽,CIDR,NAT治标不治本;IPv6将从根本上解决
- 改进首部格式
- 快速处理、转发数据报
- 支持QoS(一直解决网络延迟和阻塞问题的技术)
基本首部部分长度固定40B,有效载荷部分把扩展首部和数据部分结合在了一起,最大64KB.
- 基本首部
- 版本:协议版本为6
- 优先级:数据报的类别和优先级
- 流标签:属于同一个流的数据报都有同样的流标签
- 有效载荷长度
- 下一个首部:标识下一个扩展首部或数据部分(传输层协议传来的报文段)
- 跳数限制(相当于TTL)
- 与IPv4的区别
- IPv6地址是128位(16B)相比于IPv4地址32位(16B),获得了更大的地址空间,从根本上解决地址耗尽问题。
- IPv6没有校验和字段,减少了每跳的处理时间
- IPv6将可选字段移出首部,变成了扩展首部,路由器通常不对扩展首部校验,提高了路由器的处理效率
- IPv6即插即用(自动配置),不需要DHCP协议
- IPv6首部长度必须是8B的整数倍,IPv4首部长度必须是4B的整数倍
- IPv6只能在主机处分片,路由器处只能把过大的报文丢弃再返回差错报告报文,而IPv4可以在主机和路由器处分片
- ICMPv6:附加报文类型“分组过大”
- IPv6取消了协议字段,改为下一个首部字段
- IPv6取消了总长度字段,改为有效载荷长度字段(因为基本首部的长度是固定的40B)
- IPv6取消了服务类型字段
- 地址表示形式:(128位)
- 冒泡十六进制记法:4BF5:0000:0000:0000:BA5F:039A:000A:2176
- 压缩形式:每组中前导0可以隐去:4BF5:0:0:0:BA5F:39A:A:2176。
- 零压缩:一连串的0可以用一对冒号取代:FF05:0:0:0:0:0:0:B3 -->> FF05::B3 (双冒号只能出现一次)
- IPv6基本地址类型有三种:
- 单播(一对一通信,可做源地址和目的地址)
- 多播(一对多通信,只可做目的地址)
- 任播(一对多中的一个通信,可以理解为一组中的任一个,一般是最近的一个,可做目的地址)
- IPv4向IPv6过渡的策略:
- 双栈协议(同时启用两种协议栈:一台主机上可同时配置IPv6和IPv4地址,一台路由器上不同接口配置IPv4和IPv6地址,并连接IPv4和IPv6网络)
- 隧道技术(将其他协议的数据帧重新封装,IPv6可以伪装成IPv4然后通过隧道发送)
IP数据报的三种传输方式
- 单播 : 点对点 (建立一对一的连接)
- 在发送者和每一个接收者之间需要单独的数据信道
- 广播 : 点对多点 (对所有设备都发送数据)
- 组播(多播):点对多点(只发给有相同需要特定数据的主机进行发送,并且当到达用户端尽可能近的节点之后才开始复制和分发)
- 提高了数据传送效率,减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个/不同的物理网络(需要组播路由器(运行组播协议的路由器)的支持)
- IP组播地址:能让源设备将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)
- 组播地址范围:224.0.0.0-239.255.255(D类地址)可以用作组播地址。一个D类地址表示一个组播组。组播地址只能用作目的地址,源地址仍是单播地址。当然并不是所有D类地址都可以作为组播地址。
- 组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。
- 对组播数据报不产生ICMP差错报文
- 硬件组播:在局域网范围内,怎么把组播数据报给主机
- 广播数据报的MAC地址全F,所有主机都要发送
- 组播IP地址也需要组播MAC地址在本地网络中实际传送帧。组播MAC地址以16进制01-00-5E打头,剩下的根据IP组播数据报的最后23位转换而来
- 因为IP地址中有5位不使用,因此不同的IP地址可能转换得到相同的MAC地址,所以收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃
路由算法
路由表:
静态路由算法
也叫非自适应路由算法,管理员手工配置路由算法。在拓扑变化不大的网络中运行效果较好,因此在安全性较高的军事网络和较小的商业网络比较适用。但是路由更新比较慢,不适用大型网络。
动态路由算法
路由器之间彼此交换信息,按照路由算法优化出路由表项。更新快,适用于大型网络,对于网络拓扑变化能做出及时调整。但算法复杂,会增大网络的负担。相对而言更加常用。
- 动态路由算法可细分为两类:
- 全局性 链路状态路由算法 OSPF
- 所有的路由器都可以掌握完整的网络拓扑和链路的费用信息。
- 分散性 距离向量路由算法 RIP
- 路由器只掌握物理相连的邻居以及链路费用。
- 全局性 链路状态路由算法 OSPF
分层次的路由选择协议
-
- 原因:
- 因特网规模大
- 有的单位不想让外界知道自己的路由选择协议,但还是想加入因特网
- 自治系统AS:单一的技术管理下的一组路由器,所以路由器必须联通
- 路由选择协议
- 内部网关协议IGP --一个AS内使用的--RIP,OSPF
- 外部网关协议EGP--AS之间使用的--BGP(网关可以理解为路由器)
- 原因:
TCP/IP协议栈:
RIP协议
- RIP:一种分布式的基于距离向量路由选择协议,是因特网的协议标准,最大优点是简单。只适用于小互联网
- 路由器只掌握物理相连的邻居以及链路费用。
- 要求路由器维护从它自己到其他每一个目的网络的唯一最佳距离记录
- 距离:跳数,直接相连的路由器跳数为1,经过一个路由器跳数+1。跳数最大为15,超过15(距离为16,超过16都用16表示)则不可达。也说明RIP只适用于规模比较小的网络。
- 交换信息
- 和谁交换:RIP协议仅和相邻路由器交换信息(RIP报文)
- 交换什么:路由器交换的信息是自己的路由表(路由表内每一项有:目的网络、距离、下一跳路由器。)
- 多久交换:每隔30s交换一次路由信息,若超过3min未收到邻居路由器信息,则判定邻居没了,更新自己的路由器。
若干次更新之后,所有的路由器最终会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器地址,即“收敛”。
- 距离向量算法(计算最短距离)
- 对于地址为X的相邻路由器发来的RIP报文,先修改报文中的所有项目,把下一跳字段中的地址改为X,并把所有的距离字段加1;
- 对于修改之后的RIP报文中的每一项:
- 若原来的里有表中没有目的网络N,则把该项目加入到此路由表中;
- 若原来的里有表中有目的网络N
- 若下一跳路由器地址是X,则把收到的项目替换原来路由表中的项目;(还是同一个ip发来的路由信息,则应该使用新的路由信息)
- 若下一跳路由地址不是X,若收到的项目中的距离d小于路由表中的距离,则进行更新(如原始路由表项为net2,5,p,新表项为net2,4,x,则更新);否则,什么也不做。
- 若3分钟还没有收到相邻路由器的更新路由表,则把相邻路由器标为不可达,即距离设为16。
- RIP协议实现简单,开销小,但是网络规模较小。并且RIP协议好消息传得快、坏消息传得慢。当网络出现故障时,需要经过较长时间才能将此信息传送到所有路由器,“慢收敛”。
RIP报文格式:
UDP是传输层的协议,RIP是应用层的协议,RIP封装好的报文塞到UDP数据报当中使用UDP来传输数据
一个RIP报文最多包括25条路由信息,超过的要再发一条
OSPF协议
- OSPF协议:开放最短路径优先协议。开放表示 OSPF 不受某一家厂商控制,而是公开发表的;最短路径优先表示使用了 Dijkstra 提出的
最短路径算法 SPF。可以克服RIP的一些缺点。使用分布式的链路状态协议- 和谁交换:使用洪泛法向本AS内所有路由器发送信息(即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有相邻的路由器。表面看起来是只给相邻发送,实际上所有路由器都接受到了。有点类似广播)
- 交换什么:发送的信息是本路由器相邻的所有路由器的链路状态 (本路由器和那些路由器相邻,以及该链路的度量/代价metric----费用、距离、时延、带宽等等)
- 多久交换:只有当链路状态发生变化时,路由器才通过洪泛发送此信息。
- 最后,所有的路由器都具有了全网的拓扑结构(链路状态数据库),并且是一致的。
- OSPF的区域:
- OSPF分组:
- OSPF直接用IP数据报传送
- OSPF是网络层协议(说法不一)
- 由于一个路由器的链路状态只涉及与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系,因此互联网规模较大时,OSPF协议比距离向量协议RIP好很多,并且不存在坏消息传的慢的问题,收敛速度块。
BGP协议
-
- BGP(Border Gateway Protocol,边界网关协议)每个AS都需要配置BGP发言人,通过两个相邻的BGP发言人之间建立TCP连接来交换路由信息。
- 和谁交换:与其他AS的邻站BGP发言人交换信息;
- 交换什么:交换网络可达性的信息,即要到达某个网络所需要经过的一系列AS(可以理解为一组完整的路径,也可以描述为完整的路径向量);
- 当BGP发言人互相交换了网络可达性信息之后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各个AS的较好路由。(网络规模过大,所以一般难以找到最佳路由,找到较好路由即可)
- 多久交换:发生变化时更新有变化的部分。
- 首次交换时,会交换整个路由表,之后则只交换有变化的部分.
- BGP报文格式:
- BGP支持CIDR(网络前缀),因此BGP的路由表就应当包括目的网络前缀、下一跳路由器,和到达该目的网络所要经过的各个自治系统序列
三种路由协议比较
RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。 RU
OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP协议。OI
BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP。BT
移动IP
物理地址发生了变化,但是网络IP地址仍然固定,以实现跨越不同网段的漫游功能。
当设备A进入外部网络时:
-
- 在外部代理登记获得一个转交地址(临时地址,与此外部网络一致),离开时注销。
- 外地代理向本地代理登记转交地址。
当有其他的设备B向此设备A发送数据时:
-
- 本地代理截获数据报(当然是当此设备A不在归属网络中,而是在外部网络中时才会截获)
- 本地代理再封装数据报,新的数据报目的地址是转交地址,发给外部代理(隧道,也就是一个封装的过程)
- 外部代理拆封数据报并发送给设备A。
而当A要给其他设备B发送数据时:
-
- A用自己的主地址(原来在归属网络中的地址)作为数据报源地址,用B的IP地址作为数据报的目的地址。
网络层设备
- 路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。转发(内部) 路由选择(外部)
- 输入端口:查找和转发功能在路由器的交换功能中是最重要的
- 输出端口:若路由器处理分组的速度小于分组进入队列的速率,这会使后面进入队列的分组由于没有存储空间而被丢弃。(路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因)
- 3层设备的区别
- 路由器:可互联两个不同网络层协议的网段。
- 网桥:可以互联两个物理层和链路层不同的网段。
- 集线器(傻瓜层设备):不能互联两个物理层不同的网段。
- 路由表:根据路由选择算法得出的,总用软件实现
- 转发表:根据路由表而来,使用软件/硬件