《CCNP ROUTE 300-101学习指南》——1.4节路由和TCP/IP操作

1.4 路由和TCP/IP操作
路由协议是TCP/IP协议栈的一部分,主要工作在第3层。网络通信需要借助大量协议来处理广泛的任务,以实现设备之间的通信。

1.4.1 MSS、分段和PMTUD
IP协议的设计初衷是应用于广泛的传输介质。IPv4数据包的最大长度为65535字节。带有逐跳扩展头部和巨型帧负载选项的IPv6数据包最长可以支持4294967295字节。但多数传输链路都会强制使用一个比较小的最大数据包长度,这个长度称为最大传输单元(Maximum Transmission Unit,MTU)。

当路由器收到比出接口MTU更大的IPv4数据包时,它就必须对数据包进行分片,除非IPv4头部中设置了DF(Don’t Fragment,不分段)位。对数据包进行重组则由目的IPv4地址所在的目的设备负责。分片会造成下列问题:

对数据包进行分片会消耗CPU和内存资源;
目的设备重组数据包,会消耗CPU和内存资源;
如果一个分片被丢弃,整个数据包都要重传;
执行4到7层过滤的防火墙可能无法正确处理IPv4分片。
为了避免分片,TCP最大分段长度(Maximum Segment Size,MSS)定义了接收方设备在一个TCP段中可以接受的最大数据量。TCP段可以通过一个IPv4数据包进行发送,也可以分片后使用多个IPv4数据包发送。发送方和接收方之间不会对MSS进行协商。发送设备需要对TCP分段的尺寸进行限制,使其不大于接收方设备所报告的MSS长度。

为了对避免IPv4数据包进行分片,所选TCP MSS为出接口的最小缓冲区大小和MTU减40字节。40字节包含了20字节的IPv4头部和20字节的TCP头部。例如,默认的以太网MTU是1500字节。那么,通过以太网接口发出的IPv4数据包,其TCP段的TCP MSS就应该是1460,即用以太网 MTU的1500字节减去IPv4头部的20字节,再减去TCP头部的20字节。

TCP MSS有助于避免在TCP连接两端对数据包进行分片,但不能避免因路径中的链路MTU更小而造成的分段。路径MTU发现(Path MTUDiscovery,PMTUD)可以用来确定从数据包的源到目的之间路径上的最小的MTU值。仅TCP协议支持PMTUD。

执行PMTUD的主机会使用由出接口确定的完整MSS,并设置数据包的TCP DF位,使其不会被其他设备执行分片。如果路径上的某台路由器因为其出接口的MTU更低而要对数据包进行分片,那么这台设备就会因为DF置位而丢弃该数据包,并向数据包的始发设备发送一条ICMP目的不可达消息。ICMP目的不可达消息会包含一段代码,指出其“需要分段但DF置位”及造成丢包的出接口MTU。源接收到ICMP消息,将MSS减小到MTU以下,然后重传消息。

如果路由器发送了ICMP目的不可达消息,但这条消息却被其他路由器、防火墙或源设备本身屏蔽掉,PMUTD就会出现问题。PMTUD依赖ICMP消息,所以在设备上过滤ICMP数据包时,应该针对“不可达”或“超时”的数据包制定例外条件。

1.4.2 IPv6分片与PMTUD
IPv6路由器不会对数据包进行分片,除非这台设备是数据包的源。如果一台IPv6路由器收到了比其出接口MTU大的数据包,它会丢弃这个数据包并向源发送一个ICMPv6数据包过大消息,其中会包含这个较小的MTU。

IPv6的PMTUD工作原理与IPv4的PMTUD相似。RFC 1918,Path MTU Discovery for IP version 6,建议IPv6设备应执行PMTUD。

1.4.3 带宽延迟积
TCP在高带宽、长往返延迟的路径上可能会经历瓶颈。这些网络被称为长肥管道(long fat pipe)或长肥网络(long fat network),简称LFN。关键参数是带宽延迟积(Bandwidth Delay Product,BDP),也就是带宽(bps)与往返延迟(单位为秒的RTT)的乘积。BDP是用来“填满管道”所需的比特数(换句话说,也就是在流水线满载时,TCP必须处理的未确认数据总量)。BDP会被用来优化TCP窗口大小,以达到充分利用链路的目的,使得这条链路上随时都可以传输最大的数据量。TCP窗口大小应使用BDP。TCP窗口大小表示在收到确认之前可以发送的数据总量,这个值通常是MSS的几倍。

1.4.4 TCP饥饿
TCP结合了可靠性、流控制和拥塞避免机制。而UDP则是一款轻量型协议,其目的在于更快更简单地传输数据,因此不包含上述这些特性。

在拥塞期间,当网络中同时有TCP和UDP流量在传时,TCP会尝试减少对带宽的占用,这称为慢启动。但UDP并没有任何流控机制,因此会继续发送流量,而这可能会用尽TCP舍让出的可用带宽。这种现象称为TCP饥饿/UDP独占(TCP starvation/UDP dominance)。

虽然我们未必能够轻易分离出基于TCP和基于UDP的流量,但是当我们将使用这两种传输层协议的应用混合起来使用时,了解上述操作还是很重要的。

1.4.5 延迟
延迟是一个消息从一点到另一点所经历的总时间。网络延迟是数据包从源端经过网络到达最终的目的端的总时间。有几种因素可能会导致延迟,包括传播延迟、序列号、数据协议、路由、交换、队列和缓存。

TCP的流控和可靠性特性会对端到端的延迟造成影响。TCP会要求建立虚拟连接,并针对消息确认、窗口大小、拥塞控制和其他TCP机制建立双向通信,而这些都会对延迟构成影响。

UDP是一种不包含可靠性校验或流控机制的协议。设备只需要发送含有UDP段的数据包,并假设这个数据包会到达目的地。UDP通常用于流媒体这种要求延迟,同时也可以容忍偶发丢包的应用。UDP的延迟非常低,比多数TCP链接延迟要低。

1.4.6 ICMP重定向
ICMP重定向消息的作用是让路由器能够通知数据包的发送方,特定目的存在更优路由。

例如,在图1-23中,两台路由器R1和R2都被连接到与主机PCA相同的以太网段。PCA的IPv4的默认网关是路由器R1的IPv4地址。PCA会将发往PCX的数据包发给其默认网关R1。R1检查其路由表并确定下一跳是R2,与PCA在相同的以太网段上。因此R1会使用与从PCA接收这个数据包相同的接口将其转发出去。R1还会发送一条ICMP重定向消息,告知PCA到达PCX通过R2的路由更优。于是,PCA就可以使用R2作为下一跳路由器,以便更加直接地转发后续数据包了。

ICMPv6(IP第6版的ICMP)重定向消息与ICMPv4重定向消息的功能相同,但前者还包含了一个额外的特性。在图1-23中,PCA和PCB位于不同的IPv6网络中。R1是PCA的IPv6默认网关。PCB与PCA位于相同以太网段,但处于不同的IPv6网络之中。在发送IPv6包给PCB时,PCA会将数据包发送给其默认网关R1。而R1也会采用与IPv4相似的做法,将这个IPv6数据包转发给PCB,但与IPv4的ICMP不同之处在于,它将会向R1发送一条ICMPv6重定向消息,通知其PCA有更优路由。于是,PCA可以直接将后续的IPv6数据包发送给PCB了,虽然PCB位于不同的IPv6网络中。

时间: 2024-08-30 17:15:07

《CCNP ROUTE 300-101学习指南》——1.4节路由和TCP/IP操作的相关文章

《CCNP ROUTE 300-101认证考试指南》——8.3节数据库交换过程

8.3 数据库交换过程 CCNP ROUTE 300-101认证考试指南 区域内的每台路由器在OSPF拓扑变化发生且稳定下来时,都应对于该区域拥有相同的LSDB.内部路由器(在一个区域内的路由器)只有该区域的LSA,但ABR的LSDB中会包含其连接的每个区域的LSA.因此ABR知道每个区域中有哪些LSA. OSPF路由器会泛洪它们自己创建的LSA,也会泛洪它们从邻居学到的LSA,直到区域中的所有路由器都有该区域最新LSA的副本为止.为了管理和控制这一过程,OSPF定义了几种消息.过程和邻居状态,

《CCNP ROUTE 300-101认证考试指南》——8.4节选择最优OSPF路由

8.4 选择最优OSPF路由 CCNP ROUTE 300-101认证考试指南 定义LSA类型.创建区域.完整泛洪LSA,所有这些工作都只有一个目的:让区域中的路由器计算出所有已知子网的最优无环路由.虽然数据库的交换过程看起来可能挺费事的,但读者对SPF计算最优路由的过程无需关注太多,至少对于CCNP ROUTE考试的水平来说没有必要.事实上,选择某个特定子网的最优路由,以及特定路由器计算的过程可总结如下: 关键 分析LSDB,以找到去往子网的所有可能的路由: 对于每条可能的路由,累加该路由中所

《CCNP ROUTE 300-101认证考试指南》——8.2节 LSA和OSPF链路状态数据库

8.2 LSA和OSPF链路状态数据库CCNP ROUTE 300-101认证考试指南 8.2 LSA和OSPF链路状态数据库每台连接到特定OSPF区域的路由器都应该学习到完全相同的拓扑数据.每台路由器在自己的LSDB(链路状态数据库)中储存独立的LSA(链路状态通告)数据.之后,路由器对LSDB使用SPF(最短路径优先)算法,确定每个可达子网(前缀/长度)的最优(最低开销)路由. 在路由器使用SPF分析LSDB时,SPF进程与拼图游戏有一些相似--只是路由器并不知道拼图的具体图像.当人们面对这

《CCNP ROUTE 300-101认证考试指南》——2.3节MPLS VPN

2.3 MPLS VPNCCNP ROUTE 300-101认证考试指南MPLS VPN扩展了MPLS的性能,能够在MPLS网络上创建VPN.这种VPN常用于服务提供商或大型企业网络中,可被分为二层MPLS VPN或三层MPLS VPN. 2.3.1 二层MPLS VPNMPLS网络通过建立二层MPLS VPN,让不同站点的客户边界(CE)路由器之间能够建立路由协议的邻接关系,就像它们在二层上有邻接关系一样.因此可以认为二层MPLS VPN是一个逻辑的二层交换机,如图2-1所示. 关键 2.3.

《CCNP ROUTE 300-101认证考试指南》——2.12节定义关键术语

2.12 定义关键术语CCNP ROUTE 300-101认证考试指南定义本章的如下术语,并使用配套CD中的"术语表"检查你的答案. GRE.DMVPN.mGRE.NHRP.IPSec

《CCNP ROUTE 300-101认证考试指南》——8.7节完成记忆测试表

8.7 完成记忆测试表CCNP ROUTE 300-101认证考试指南打印配套CD中完整的附录D或与本章相关的部分.然后凭借记忆完成表格和列表中缺失的内容.最后使用配套CD中的附录E来验证你的作答.

《CCNP ROUTE 300-101认证考试指南》——8.8节定义关键术语

8.8 定义关键术语CCNP ROUTE 300-101认证考试指南定义本章的如下术语,并使用配套CD中的"术语表"检查你的答案. 链路状态标识符(LSID).指定路由器(DR).备份指定路由器(BDR).内部路由器.区域边界路由器(ABR).所有PSF路由器组播.所有DR路由器组播.链路状态通告.数据库描述(DD)包.链路状态请求(LSR)包.链路状态确认(LAS)包.链路状态更新(LSU)包.路由器LSA.网络LSA.汇总LSA.类型1 LSA.类型2 LSA.类型3 LSA.参考

《CCNP ROUTE 300-101认证考试指南》——2.6节多点GRE

2.6 多点GRECCNP ROUTE 300-101认证考试指南DMVPN之所以具有可扩展性,要在一定程度上归因于多点GRE(mGRE),因为使用了mGRE,路由器才能够在一个GRE接口上建立多个GRE隧道. mGRE的一部分特性如下所示: 像传统的GRE一样,mGRE可以传输多种协议(如IP单播.组播和广播):在星型拓扑中,中心路由器可以只有单一的mGRE接口,多个隧道可共同使用这一个接口:mGRE的接口配置可以使用下一跳解析协议(NHRP),来发现隧道远端的IP地址,以动态建立GRE隧道.

《CCNP ROUTE 300-101认证考试指南》——2.9节规划练习

2.9 规划练习CCNP ROUTE 300-101认证考试指南 2.9 规划练习CCNP ROUTE考试希望考生有能力审视设计文档,制定实施计划和验证计划.在这一节中,我们会帮助读者跳出相关技术所涉及的细枝末节,站在设计者的高度重新审视本章中所介绍的知识. 读者需要做的,就是将这些规划练习表补充完整.注意括号中的数字代表了附录F中为这一项列出的几种可行的做法. 2.9.1 设计回顾表表2-2列出很多与本章所讲知识有关的设计目标.如果这些设计目标是列在一个设计文档中的,设计人员就需要用这个文档来