赞
踩
主要功能就是:将源端数据包一路送到接收方。
无连接服务的实现:数据报子网
对于无连接服务来说每个数据包都独立地被注入到网络中,并且每个数据包独立路由,不需要建立任何设置(X.25, ATM)
面向连接服务的实现:虚电路子网
面向连接的服务,需要一个虚电路网络,虚电路的目的是避免为每个数据包选择一条新路径,当建立一个连接时,从源机器到目标机器之间的一条路径就被当做这个连接的一部分被确定下来。(IP)
最优化原则:如果一个路由器 J 处在路由器I到路由器K的最优路径上,那么,从路由器J到路由器K的最优路径也在同样的这条路径上。
沉落树( sink tree )、汇集树:从所有的源到一个给定的目的的最优路径形成的一棵树,树根是目的结点。汇集树不必是唯一的
什么时候使用静态/动态路由?
静态路由:管理员手工配置的路由
动态路由:由路由选择协议动态地建立、更新和维护的路由
Dijkstra算法:使用权重计算通信线路中的最短(优,代价最小)路径。
算法步骤:
1. 初始化
2. 找到一个不在集合 N 中的节点w ,但它的D(w)最小,把w加入到集合 N 中;那么,所有不在集合N中的节点,使用 min[D(v), D(w) + l(w,v)] 去替换 D(v):
3.重复第二步,直到所有的节点都包含在集合N中。
例子:
求下图以A为根的沉落树。
解答:
扩散/泛洪法(Flooding)
每个到达分组都被从除了到达端口外的所有其它端口转发出去(不计算路径,有路就走)
重复分组解决办法:
缺点:重复分组太多,浪费带宽
优点:可靠性高、路径最短/优,常用于军事
距离矢量路由选择:每个路由器维护一张表,表中列出了当前已知的到每个目标的最佳距离,以及为了到达那个目标,应该从哪个目标转发的线路(端口)。这些表通过邻居之间相互交换信息而不断更新,最终每个路由器都了解到达每个目的地的最佳链路。
DV的工作原理
当邻居间交换了矢量信息之后:
例子:
一个网络拓扑如下,某个时刻,路由器C接收到三个邻居发过来的矢量如下:
A B C D E F
From router B:(5, 0, 8, 12, 6, 2)
From router D:(16, 12, 6, 0, 9, 10)
From router E:(7,6, 3, 9, 0, 4)
现在,路由器C到 B、 D 和 E 的代价分别是 6、3 和 5,试回答路由器C更新后的路由表
解答:
分析:通过路由器 B、 D 和 E进行转发的话,路由器C的矢量分别是:
Via router B:( 11, 6, 14, 18, 12 , 8)
Via router D: ( 19, 15, 9, 3, 12, 13)
Via router E: ( 12 , 11, 8, 14, 5, 9)
所以,路由器C更新后的路由表如下:
( 11, 6, 0, 3, 5, 8)
( B, B, -, D, E, B)
D-V算法的特点
优点
缺点
RIP的主要特点
RIP的主要缺陷
DV路由可能遇到的问题
问题表现
原因
解决方法:
链路状态路由的主要思想包括如下5个部分:
LS的工作原理:
1. 发现邻居节点
2. 设置链路成本
3. 构造链路状态分组
4. 发布链路状态分组
基本算法:
5. 计算新的路由路径
发布链路状态分组基本算法遇到的问题:
L-S 路由算法的特点
优点:
缺点:
OSPF开放的路径优先(Open shortest path first)
OSPF分组(packet)类型:
OSPF数据包类型 | 描述 |
Type 1-Hello | 与邻居建立和维护毗邻关系。 |
Type 2-数据库描述包(DD) | 描述一个OSPF路由器的链路状态数据库内容。 |
Type 3-链路状态请求(LSR) | 请求相邻路由器发送其链路状态数据库中的具体条目 |
Type 4-链路状态更新(LSU) | 向邻居路由器发送链路状态通告 |
Type 5-链路状态确认(LSA) | 确认收到了邻居路由器的LSU |
OSPF的运行步骤:
OSPF状态:
比较DV 和 LS
距离矢量路由 DV | 链路状态路由 LS |
从邻居看网络 | 整个网络的拓扑 |
在路由器间累加距离 | 计算最短路径 |
频繁、周期更新:慢收敛 | 事件触发更新:快收敛 |
在路由器间传递路由表的拷贝 | 在路由器间传递链路状态更新 |
拥塞:当一个子网或子网的一部分出现太多分组的时候,网络的性能急剧下降,这就是拥塞(Congestion )
导致拥塞的因素(拥塞根源:负载 > 资源)
拥塞控制vs. 流控
拥塞控制(Congestion control)
流控(Flowcontrol)
怎么知道拥塞了? --拥塞量度
怎样解决拥塞问题?
增加资源
降低负载
1. 流量感知路由
在计算路由时考虑链路负载,把热点地区的流量转移出去。最直接的方法是吧链路权重设置成一个链路带宽、传输延迟、平均排队延迟的函数。
缺点:可能导致路由摇摆
2. 准入控制:
准入控制可以与流量感知相结合,允许建立新的虚电路,但是仔细选择线路,绕开问题区域
3. 流量调节
拥堵路由器通告源机发送慢下来(抑制包)
4. 负载丢弃/载荷脱落
5. 随机早期检测RED(防患于未然)
分组到达时间的变化量(标准方差 standard deviation)叫做抖动(jitter)
如何做抖动控制(续)
算法描述:
算法效果:
主机内用户进程产生的分组流往往是一个不稳定的流,漏桶可以让它输出到网络时变成一个稳定流,抹平了突发尖峰,极大地减少了发生拥塞的机会
漏桶的缺点
算法描述:
和漏桶算法相比:
事实上,总存在很多不同的网络
网络可以通过不同的设备联接起来:
隧道(Tunneling)一种通用的特殊的网络互连方式
每个网络都会限制其分组的最大长度,最大长度存在不同,当一个较大的分组想要通过一个最大分组长度较小的网络时,需要采取数据包分段。
MTU(路径最大传输单元)
两种不同的分段策略
收到数据报后路由器的工作步骤:
上面的步骤完成了路由器的基本功能:
IP分组格式:
所以IP数据报报头的最小长度为20个字节
固定部分(前20字节):
(1)版本 占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。关于IPv6,目前还处于草案阶段。
(2)首部长度 占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。
(3)区分服务 占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。
(4)总长度 总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为2^16-1=65535字节。
在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。
(5)标识(identification) 占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
(6)标志(flag) 占3位,但目前只有2位有意义。
● 标志字段中的最低位记为MF(MoreFragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。
● 标志字段中间的一位记为DF(Don’tFragment),意思是“不能分片”。只有当DF=0时才允许分片。
(7)片偏移 占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,除了最后一个分片,每个分片的长度一定是8字节(64位)的整数倍。
(8)生存时间 占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。后来把TTL字段的功能改为“跳数限制”(但名称不变)。路由器在转发数据报之前就把TTL值减1.若TTL值减少到零,就丢弃这个数据报,不再转发。因此,现在TTL的单位不再是秒,而是跳数。TTL的意义是指明数据报在网络中至多可经过多少个路由器。显然,数据报在网络上经过的路由器的最大数值是255.若把TTL的初始值设为1,就表示这个数据报只能在本局域网中传送。
(9)协议 占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
(10)首部检验和 占16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。
(11)源地址 占32位。
(12)目的地址 占32位。
可变部分:
IP首部的可变部分就是一个可选字段。选项字段用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。某些选项项目只需要1个字节,它只包括1个字节的选项代码。但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4字节的整数倍。
增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。新的IP版本IPv6就将IP数据报的首部长度做成固定的。
目前,这些任选项定义如下:
(1)安全和处理限制(用于军事领域)
(2)记录路径(让每个路由器都记下它的IP地址)
(3)时间戳(Time Stamp)(让每个路由器都记下IP数据报经过每一个路由器的IP地址和当地时间)
(4)宽松的源站路由(LooseSource Route)(为数据报指定一系列必须经过的IP地址)
(5)严格的源站路由(StrictSource Route)(与宽松的源站路由类似,但是要求只能经过指定的这些地址,不能经过其他的地址)
这些选项很少被使用,并非所有主机和路由器都支持这些选项。
IP地址:网络号和主机号
IP地址的分类:
网络地址:主机部分全为“0”的 IP 地址
广播地址:主机部分全为“1”的 IP 地址
例子:
分析地址172.16.20.200
分析:
B类地址
子网部分:172.16
主机部分:20.200
网络地址:172.16.0.0
广播地址:172.16.255.255
保留的IP地址:
确定可用主机数量的公式 2n-2
借位规则:
IPv6的主要改进:
IPv6地址空间:2128=3.4×1038=340涧(1涧=10^36)
IPv6地址首选格式:冒分十六进制
IPv6地址分类:
IPv6地址子网规划
IPv6 子网划分是根据路由器的数量及它们所支持的网络来构建寻址分层结构
共存策略
问题:
三种基本技术(RFC1933):
无类别域间路由—CIDR
NAT:net address translate NAT
私有IP地址和公有IP地址之间的转换。
PAT:port address translate(超载)
将多个私有IP地址影射到同一个公有IP地址的不同端口
NAT--一个IP地址耗尽的快速修补方案
NAT 带来的问题
NAT/PAT的评价:
优点
缺点
用来报告意外的事件或测试互联网
ARP (地址解析协议): IP 地址-> MAC 地址
RARP (逆向地址解析协议):MAC 地址 -> IP 地址
ARP的工作原理:
为了让ARP的工作更加高效,下面是几种优化措施:
ARP表:
自动维护ARP表
RARP的工作原理:
IP地址的分配方式:
IP地址的动态分配方式(RARP\Boot\pDHCP)
DHCP:动态主机配置协议
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。