赞
踩
数据交换分为电路交换、报文交换、分组交换,其中我们主要学习分组交换。分组交换网络分VC、数据报网络。网络层向运输层提供 “面向连接”虚电路(Virtual Circuit)服务或“无连接”数据报服务。
仅在网络层提供链接服务的计算机网络
一条虚电路在每条链路上可能有不同VC号
每台中间路由器用新的VC号(转发表获得)替代旧的
链接状态即创建新链接就在转发表中添加,释放链接删除
最长前缀匹配
数据报网络转发表随时可以修改,分组可能无序到达。
地址聚合/路由聚合/路由摘要:
将现有的IP地址合并成较大的、具有更多主机地址的路由域。
DHCP(Dynamic Host Configuration), 动态主机配置协议,即插即用、零配置
客户端通常是新到达的主机,获得IP地址在内的网络配置信息
ISP提供DHCP服务器(一个子网有一个DHCP服务器/服务器代理路由),NAT使能路由器与DHCP建立基于UDP的服务。得到IP地址之后,NAT盒重写IP头部和端口号
移动性有缺陷,每当节点移动到一个新子网就要重获IP,那么当移动结点在子网间移动就不能保持TCP
DHCP协议用于让一台主机在子网中获得它的IP地址. 过程如下:
首先主机向255.255.255.255 IP 广播地址 发送一个DHCP发现报文, 这个发现报文会在整个子网传播。
子网内的DHCP服务器收到DHCP发现报文后会向广播地址发送一个DHCP提供报文, 向需要IP的主机提供IP地址、网络掩码、 默认路由器、本地DNS服务器的IP地址.IP地址租用时期
主机可能会收到不只一个DHCP提供报文, 选择其中一个后向服务器发送DHCP 请求 报文.
被选中的DHCP服务器响应DHCP ACK报文。
P3-4
R6组成
R10路由器的核心_交换结构
网络分组称为“数据报”
服务类型TOS:区分IP数据报(低时延、高吞吐量或者可靠)
注意IPv6不允许在路由器上对分组分片
在端系统中重装,所以IPv4数据报中包含标识、片偏移等
TTL=0,丢弃数据报,然后向源主机发送ICMP报文
协议:运输层协议,值为6表明交给TCP, 值为17表明交给UDP
以首部校验和的位数划分头部,二进制累加求反码即为校验和。
?IP在划分TCP数据报的时候,片偏移212*8B<TCP最大报文长度232B
无检验和,处理时间减少
即插即用,无需DHCP
首部长度是8B的整倍,基本首部40B(扩大两倍)
只能在主机处分片(IPv4还可在路由器)
双协议栈技术就是指在一台设备上同时启用IPv4协议栈和IPv6协议栈
隧道技术的实质是用一种网络层的协议来传输另一种网络层协议,其基本功能是封装和加密
私有IP地址
IP地址 部分
默认路由 0.0.0.0
简单转发、负载均衡、充当防火墙
软件定义网络(Software Defined Network,SDN)是网络虚拟化的一种实现方式。其核心技术OpenFlow通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制。
前面讲过运输层的分组名字是报文段, 数据链路层的分组名字是帧. 网络层的分组名字是什么? 前面讲过路由器和链路层交换机都被称为分组交换机. 路由器与链路层交换机间的根本区别是什么?
网络层的数据包就是数据报。
路由器根据数据包的IP(第3层)地址转发数据包。
链路层交换机根据数据包的MAC(第2层)地址转发数据包。
我们注意到网络层功能可被大体分成数据平面功能和控制平面功能. 数据平面的主要功能是什么? 控制平面的主要功能呢?
数据平面的主要功能是数据包转发,即将数据报从其输入链路转发到其输出链路。 例如,数据平面的输入端口执行物理层功能,在路由器上终止传入的物理链路,执行链路层功能与传入链路另一侧的链路层进行互操作,并在输入端口执行查找功能。
控制平面的主要功能是路由,它是确定数据包从其源到目的地的路径。 控制平面负责执行路由协议,响应向上或向下的附加链路,与远程控制器通信,并执行管理功能。
我们对网络层执行的转发功能和路由选择功能进行区别. 路由选择和转发的主要区别是什么?
路由选择和转发之间的关键区别在于,
转发是路由器将数据包从其输入接口传输到其输出接口的本地操作,转发发生在非常短的时间尺度(通常是几纳秒),因此通常在硬件中实现。
路由选择是指确定数据包从源到目的地的端到端路径的全网络进程。 路由发生在更长的时间尺度上(通常是秒),并且通常在软件中实现。
转发表在路由器中的作用是保存条目,以确定通过交换结构将到达的数据包转发到的传出链路接口。
我们说过网络层的服务模型"定义发送主机和接收主机之间的端到端分组的传送特性"。因特网的网络层的服务模型是什么? 就主机到主机数据报的传递而论, 因特网的服务模型能够保证什么?
互联网网络层的服务模式是best-effort service。 使用这种服务模式,不能保证按照发送的顺序接收数据包,不能保证它们最终交付,也不能保证端到端的延迟,也不能保证最小的带宽保证。
在4.2节中, 我们看到路由器通常由输入端口, 输出端口, 交换结构和路由选择处理器组成。其中哪些是用硬件实现的, 哪些是用软件实现的? 为什么? 转到网络层的数据平面和控制平面的概念, 哪些是用硬件实现的, 哪些是用软件实现的? 为什么?
输入端口、交换结构和输出端口都是在硬件中实现的,因为它们的数据报处理功能对于软件实现来说太快了。 传统路由器内部的路由处理器使用软件执行路由协议,维护路由表和附加链路状态信息,并计算路由器的转发表。
路由选择处理器是用软件实现的,SDN路由器中的路由处理器还依赖于与遥控器通信的软件,以便接收转发表项并将它们安装在路由器的输入端口中。
数据平面通常是在硬件中实现的,因为需要快速处理,例如在纳秒的时间尺度上。
控制平面通常在软件中实现,并在毫秒或第二次尺度上运行,例如,用于执行路由协议,响应向上或向下的附加链路,与远程控制器通信,以及执行管理功能。
讨论为什么在高速路由器的每个输入端口都存储转发表的影子副本。
使用影子副本,转发查找在本地进行,在每个输入端口,而不调用集中式路由处理器。 这种分散的方法避免了在路由器中的单个点上创建查找处理瓶颈。
基于目的地转发意味着什么? 这与通用转发有什么不同?
基于目的地的转发意味着到达路由器的数据报将仅基于数据报的最终目的地被转发到输出接口。如果是根据目的地的IP地址转发的话, 路由转发表中可能需要有40多亿项. 当然可以通过匹配IP地址的最长前缀对所有IP地址进行分组. 但是这样的路由器功能太单一, 不具有普遍性。
通用转发意味着,除了其最终目的地外,当路由器确定数据报的输出接口时,还会考虑与数据报相关的其他因素。
通用转发延续了基于目的转发的"匹配+动作"模式, 但不受限于通过源分组的IP地址匹配目的IP地址进行转发, 而是通过富足首部字段值集合和计数器集合对动作集合进行匹配.
例如:软件定义网络SDN采用的是通用转发,例如,除了目标IP地址外,转发决策还可以基于数据报的TCP/UDP源或目标端口号。
假设一个到达分组匹配了路由器转发表中的两个或更多表项. 采用传统的基于目的地转发, 路由器用什么原则来确定这条规则可以用于确定输出端口, 使得到达的分组能交换到输出端口。
路由器使用最长的前缀匹配来确定数据包将被转发到哪个链路接口,如果数据包的目标地址匹配转发表中的两个或多个条目。 也就是说,数据包将被转发到与数据包目标匹配最长的前缀的链路接口。
在4.2节中讨论了三种交换结构. 列出并简要讨论每一种交换结构. 哪一种(如果有的话)能够跨越交换结构并行发送多个分组?
通过存储器交换;通过总线交换;通过互连网交换
经内存交换. 分组从输入端口处被复制到处理器内存中. 处理器从其首部中提取目的地址, 在转发表中找出适当的输出端口, 并把该分组复制到该输出端口的缓存中.
经总线交换. 分组从输入端口经过总线发送到所有输出端口, 只有与该分组匹配的输出端口会把分组留下来.
经互联网络交换. 交换机由2N条总线组成互联网络, 连接N个输入口和N个输出口. 通过控制网络中的交点使分组到达对应的输出端口. 这种纵横式网络能够并行发送多个分组.
互联网络可以并行转发数据包,只要所有数据包被转发到不同的输出端口。
描述在输入端口会出现分组丢失的原因. 描述在输入端口如何消除分组丢失(不使用无限大缓存区)
分组到达输入端口后需要经过交换结构传送到输出端口。如果数据包到达的速率超过交换处理速率,则数据包需要在输入端口排队。 如果这种速率不匹配持续存在,队列将越来越大,最终溢出输入端口缓冲区,导致丢包。 如果交换结构处理速度至少是输入线速度的n倍,其中n是输入端口数,则可以消除分组损耗。
描述在输出端口会出现分组丢失的原因. 通过提高交换结构速率, 能够防止这种丢失吗?
假设输入和输出线速度相同,如果数据包到达单个输出端口的速率(即交换结构速率)超过线速度,则仍然可能发生丢包。 如果这种速率不匹配持续存在,队列将越来越大,最终溢出输出端口缓冲区,导致丢包。 请注意,提高交换结构速度不能防止这一问题的发生
什么是HOL阻塞? 它出现在输入端口还是输出端口?
HOL阻塞:有时,在输入端口队列中排在第一位的数据包必须等待,因为它希望转发到的输出端口没有可用的缓冲区空间。 当发生这种情况时,第一个数据包后面的所有数据包都被阻塞,即使它们的输出队列有容纳它们的空间。 在输入端口发生HOL阻塞。
在4.2节我们学习了FIFO, 优先权, 循环(RR)和加权公平排队(WFQ)分组调度规则. 这些排队规则中, 哪个规则确保所有分组是以到达的次序离开的?
只有FIFO才能确保所有数据包按照它们到达的顺序离开。
举例说明为什么网络操作员要让一类分组的优先权超过另一类分组的.
例如,承载网络管理信息的数据包应该比常规用户流量优先。 另一个例子是,实时语音转换IP数据包可能需要比电子邮件等非实时流量获得优先级。
FIFO, 优先权, 循环(RR)和加权公平排队(WFQ)
RR和WFQ分组调度之间的基本差异是什么? 存在RR和WFQ将表现得完全相同的场合吗? (提示: 考虑WFQ权重)
对于RR,所有服务类都被平等对待,即没有服务类比任何其他服务类具有优先级。 使用WFQ,服务类被不同的对待,即每个类可以在任何时间间隔内获得不同数量的服务。 当WFQ的所有类具有相同数量的服务权重时,WFQ与RR相同。
假定主机A向主机B发送封装在一个IP数据报中的TCP报文段. 当主机B接受到该数据报时, 主机B中的网络层怎样知道它应当将该报文段(即数据报的有效载荷)交给TCP而不是UDP或某个其他东西呢?
IP数据报中的8位协议字段包含目标主机应该将段传递给哪个传输层协议的信息。值为6表明交给TCP, 值为17表明交给UDP
在IP首部中, 哪个字段能用来确保一个分组的转发不超过N台路由器.
寿命字段(Time-To-Live, TTL), 每当一台路由器处理该数据报时该值减1, 当减到0时丢弃该数据报.
前面讲过因特网检验和被用于运输层报文段以及网络层数据报。现在考虑一个运输层报文段封装在一个IP数据报中.在报文段首部和数据报首部中的检验和要遍及IP数据报中的任何共同字节进行计算吗?
不,IP报头校验和只计算IP数据包的IP报头字段的校验和,这些字段与IP数据报的传输层段部分没有公共字节。
报文段检验和与数据报检验和之间的差别, 数据报检验和只是对IP数据报的首部计算了检验和, 而报文段首部中的检验和是对整个报文段(包括承载的应用层数据部分)都进行计算的.
其次, TCP/UDP和IP不一定属于同一个协议栈, TCP能够运行在别的网络协议上, IP数据报也能携带除了TCP/IP以外的其他数据.
什么时候一个大数据报分割成多个较小的数据报? 较小的数据报在什么地方装配成一个较大的数据报?
与版本有关,IPv6只能在主机处分片(IPv4还可在路由器)
IP数据报片段的重新组装是在数据报的目标主机中完成的。
路由器有IP地址吗? 如果有, 多少个?
路由器有IP地址, 一个或多个,路由器的一个输入或输出端口对应着一个IP地址.
IP地址223.1.3.27的32比特二进制等价形式是什么?
11011111 00000001 00000011 000
考察使用DHCP的主机, 获取它的IP地址, 网络掩码, 默认路由器及其本地DNS服务器的IP地址. 列出这些值。
DHCP(Dynamic Host Configuration), 动态主机配置协议.
DHCP协议用于让一台主机在子网中获得它的IP地址. 过程如下:
首先主机向255.255.255.255 IP 广播地址 发送一个DHCP发现报文, 这个发现报文会在整个子网传播。
子网内的DHCP服务器收到DHCP发现报文后会向广播地址发送一个DHCP提供报文, 向需要IP的主机提供IP地址、网络掩码、 默认路由器、本地DNS服务器的IP地址.IP地址租用时期
主机可能会收到不只一个DHCP提供报文, 选择其中一个后向服务器发送DHCP请求报文.
被选中的DHCP服务器响应DHCP ACK报文。
假设在一个源主机和一个目的主机之间有3台路由器。不考虑分片, 一个从源主机发送给目的主机的IP数据报将通过多少个接口? 为了将数据报从源移动到目的地需要检索多少个转发表?
8个接口;3个转发表。
通过一个路由器需要通过2个接口, 端到端之间一共有3台路由器, 所以数据报一共要通过6个接口,再加上主机
经过3个路由器, 需要检索3个转发表.
假设某应用每20ms生成一个40字节的数据块, 每块封装在一个TCP报文段中, TCP报文段再封装在一个IP数据报中. 每个数据报的开销有多大? 应用数据所占的百分比是多少?
TCP报文段首部是20字节.
数据报报文段首部是20字节.
所以每个数据报的开销为80字节, 应用数据所占的百分比是50%.
假定你买了一个无线路由器并将其与电缆调制解调器相连。同时假定ISP动态地为你连接的设备(即你的无线路由器)分配一个IP地址。还假定你家有5台PC, 均使用802.11(WIFI)以无线方式与该无线路由器相连. 怎样为这5台PC分配IP地址? 该无线路由器使用NAT吗? 为什么?
通常,无线路由器包括DHCP服务器。 DHCP用于向5台PC和路由器接口分配IP地址。 是的,无线路由器也使用NAT,因为它只从ISP获得一个IP地址。
"路由聚合"一词意味着什么? 路由器执行路由聚合为什么是有用的?
路由聚合意味着ISP使用一个前缀来宣传多个网络。 路由聚合是有用的,因为ISP可以使用这种技术向ISP拥有的多个网络向的多个网络的一个前缀地址。
"即插即用"或"零配置"协议意味着什么?
"即插即用"和"零配置"描述的是DHCP协议.
这一协议意味着DHCP协议让每个需要接入因特网的端设备都能方便地获得IP地址. 其中广播地址和子网是DHCP运作不可缺乏的元素.
即插即用或zeroconf协议意味着该协议能够自动配置主机的网络相关方面,以便将主机连接到网络中。
什么是专用网络地址? 具有专用网络地址的数据报会出现在大型公共因特网中吗? 解释理由.
网络中设备的私有网络地址是指仅对该网络中的设备有意义的网络地址。 具有私有网络地址的数据报不应该存在于更大的公共互联网中,因为私有网络地址可能被许多网络设备在自己的私有网络中使用。
比较并对照IPv4和IPv6首部字段. 它们有相同的字段吗?
IPv6有一个固定长度的报头,它不包括IPv4报头可以包含的大多数选项。 即使IPv6报头包含两个128位地址(源和目标IP地址),整个报头的固定长度仅为40字节。 IPv6中的下一个报头和跳限分别类似于服务类型、数据报长度、上层协议和IPv4的生存时间。
有人说当IPv6以隧道形式通过IPv4路由器时, IPv6将IPv4隧道作为链路层协议. 你同意这种说法吗? 为什么?
是的,因为整个IPv6数据报(包括报头字段)封装在IPv4数据报中。
通用转发和基于目的转发有何不同?
转发有两个主要操作:匹配和操作。 在基于目标的转发中,路由器的匹配操作只查找待转发数据报的目标IP地址,路由器的操作涉及将数据包发送到指定的输出端口。 通过广义转发,可以在协议栈中不同层与不同协议相关联的多个报头字段上进行匹配,该操作可以包括将数据包转发到一个或多个输出端口、跨多个传出接口负载平衡数据包、重写报头值(如NAT)、故意阻塞/丢弃数据包(如防火墙)、将数据包发送到特殊服务器进行进一步处理和操作等。
在4.1节遇到的基于目的地转发与在4.4节遇到的OpenFlow流表之间有什么差异?
基于目标的转发的转发表中的每个条目只包含一个IP头字段值和要转发数据包(与IP头字段值相匹配)的传出链路接口。 OpenFlow中流表的每个条目包括一组将匹配传入数据包的头字段值、一组作为数据包更新的计数器与流表条目相匹配,以及当数据包与流表条目匹配时要采取的一组操作。
路由器或交换机的"匹配加动作"意味着什么?在基于目的地转发的分组交换机场合中, 要匹配什么并采取什么动作? 在SDN的场合中, 举出3个能够被匹配的字段和3个能被采取的动作.
“匹配加操作”是指路由器或交换机试图在流表中的一些条目之间找到数据包的一些报头值之间的匹配,然后根据该匹配,路由器决定将数据包转发到哪个接口,甚至在数据包上进行更多的操作。 在基于目标的转发包交换机的情况下,路由器只试图在流表条目与到达包的目标IP地址之间找到匹配,其作用是决定将数据包转发到哪个接口。 在SDN的情况下,可以匹配许多字段,例如IP源地址、TCP源端口和源MAC地址;也可以采取许多操作,例如转发、删除和修改字段值。
在IP数据报中举出能够在OpenFlow1.0通用转发中"匹配"的3个首部字段. 不能在OpenFlow中"匹配"的3个IP数据报首部字段是什么?
在OpenFlow1.0广义转发中,
IP数据报中可以匹配的三个示例头域是IP源地址、TCP源端口和源MAC地址。
无法匹配的三个字段是:TTL字段、数据报长度字段、头校验和(这取决于TTL字段)。
考虑下面的网络。
a、显示路由器A中的转发表,使得目的地为主机H3的所有流量都通过接口3转发。
b、写出路由器A中的转发表,使得从HI发往主机H3的所有流量都通过接口3转发,从H2发往主机H3的所有流量都通过接口4转发。(提示:这是一个技巧性的问题。)
a、
目的地址 输出接口
H3的IP 3
b、
否,因为转发规则仅基于目的地地址。
假设两个分组在完全相同的时刻到达一台路由器的两个不同输入端口
不,您只能在共享总线上一次传输一个数据包。
不,正如本文所讨论的,在共享系统总线上一次只能完成一个内存读/写。
不,在这种情况下,两个数据包必须同时通过相同的输出总线发送,这是不可能的。
内存和总线(n-1)D
纵横式0
所需的最小时隙数为3。 调度如下。
时延1:在顶部输入队列中发送X,在中间输入队列中发送Y。
时延 2:在中间输入队列中发送X,在底部输入队列中发送Y
时延3:在底部输入队列中发送Z。
最大的时隙仍然是3。 实际上,基于非空输入队列从不空闲的假设,我们看到第一个时隙总是由在顶部输入队列中发送X和在中间或底部输入队列中发送Y组成,在第二个时隙中,我们总是可以再发送两个数据报,最后一个数据报可以在第三个时隙中发送。
注意:实际上,如果底部输入队列中的第一个数据报是X,那么最坏的情况将需要4个时隙。
注意是最长前缀匹配,不是最先匹配,可能有匹配多个端口的情况。前缀匹配写地址范围(最长选择结果,不同端口地址范围没有重合)。区别P6P7。
思路:确定前缀是否有重合
无:简单的计算、
有:注意最长规律先写本身不为其他匹配的活前缀的匹配的范围(即匹配地址不为其他匹配地址的 真子集,如P7先写111)
即:写出所有匹配地址,在范围大的地址中扣除其他小范围的地址
有重合:逆写简单
第一个地址的前缀匹配是第5个条目:链接接口3
第二个地址的前缀匹配是第三个条目:链接接口2
第三个地址的前缀匹配是第四个条目:链接接口3
无重合:
有重合:
不,whois服务不能用于确定特定IP地址的地理位置。
www.maxmind.com被用来确定纽约大学理工学院、斯坦福大学和华盛顿大学的Web服务器的位置。
每个片段中数据字段的最大大小=680(因为有20个字节的IP头)。 因此所需片段的数量
每个片段将有识别号422。 除最后一个片段外,每个片段的大小为700字节(包括IP头)。 最后一个数据报的大小为360字节(包括IP头)。 这4个片段的偏移量将为0、85、170、255。 前3个片段中的每个片段将有标志=1;最后一个片段将有标志=0。
MP3文件大小=500万字节。 假设数据是在TCP段中携带的,每个TCP段也有20个字节的头。 然后每个数据报可以携带1500-40=1460字节的MP3文件,所需数据报数:
除了最后一个数据报之外,所有数据报将是1500字节;最后一个数据报将是96040=1000字节。源主机不创建大于1500字节的数据报,并且这些数据报小于链接的MTU。
家庭地址:192.168.1.1,192.168.1.2,192.168.1.3,路由器接口为192.168.1.4
NAT翻译表如下
由于所有IP数据包都是在外部发送的,所以我们可以使用数据包嗅探器来记录NAT后面主机生成的所有IP数据包。 当每个主机生成具有序列号和不同(非常可能,因为它们是从大空间随机选择的)初始标识号(ID)的IP数据包序列时,我们可以将具有连续ID的IP数据包分组到集群中。 集群的数量是NAT后面的主机数量。
更多实用算法,见以下论文。
然而,如果这些识别号码不是顺序分配的,而是随机分配的,那么(A)部分中建议的技术就不会起作用,因为嗅探数据中不会有集群。
不可能设计出这样的技术。 为了在Arnold和Bernard之间建立直接的TCP连接,Arnold或Bob必须启动到另一个的连接。 但是覆盖Arnold和Bob的NAT从WAN侧丢弃SYN包。 因此,无论是Arnold还是Bob都不能启动到另一个TCP连接,如果它们都在NAT后面。
19
Ingress Port入口,IP Src源IP,IP Dst目的IP地址
20
21
22
UDP没有源IP,分别使用不同Port
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。