一、交换和路由
交换机(Switch):主要用于将一栋大厦或一个校园里的多台设备连接到同一个网络上。
路由器(Router):主要用于将多个网络连接起来。
交换技术和路由技术的最大区别在于他们寻址的方式以及报文的转发方式上
- 交换技术是发生在2层也就是数据链路层上,是直接利用mac地址建立会话;路由技术发生在网络层,需要通过ip地址建立路由表,然后进行数据通信
- 在报文的转发方式上,交换技术是使用先收再转,路由技术是采用边收边转。
(一)了解各种网络设备(转发器、集线器、网桥、路由器等)所工作的层次和基本特性
1.转发器
转发器(Repeater)又被称为中继器或放大器,执行物理层协议,负责第一层(物理层)的数据中继,实现电气信号的“再生”。用于互连两个相同类型的网段,主要功能是延伸网段和改变传输媒体,从而实现信息位的转发。它本身不执行信号的过滤功能。
2.集线器
集线器(HUB)很像一个多接口的转发器。它的作用可以简单的理解为将一些机器连接起来组成一个局域网。它不具有智能处理能力,处理的数据只是电流而已,它采用共享带宽的工作方式,附接端口的所有计算机采用CSMA/CD方式竞争带宽的使用, 任一时刻只能由两台计算机之间进行通信。
3.网桥
网桥(Gate Bridge)负责第二层(数据链路层)的数据中继。互连两个独立的、仅在低两层实现上有差异的子网。(交换机:实质上是一个多接口的网桥。)
4.路由器
路由器(Router)负责第三层(网络层)的数据中继。它能理解数据中的IP地址,如果它接收到一个数据包,就检查其中的IP地址,如果目标地址是本地网络的就不理会,如果是其他网络的,就将数据包转发出本地网络。它的作用在于连接相同或不同类型网络,并且能找到网络中数据传输最合适的路径即路由选择。
提供了路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。
(二)了解数据平面和控制平面的不同要求
路由器:
1.数据平面
- 从接口收到一个IP分组后查找转发表, 转发到下一跳
- 如何转发分组,尽可能快转发
2.控制平面
- 维护转发表
- 如何转发分组,尽可能快转发
(三)了解虚电路和数据报的基本特性和区别,什么是动态虚电路?
1.虚电路(virtual circuit) 方式:面向连接的方式
- 连接建立、数据传输和连接释放三个阶段
- 仅仅在连接建立时进行一次路由选择,以后该连接上的所有分组沿着预先建立的路径传输
- 虚电路: 建立了一条逻辑上的连接
- 仍然采用分组交换(存储转发)方式,收到分组后在往下一个节点方向的端口处排队,等待链路空闲后发送
2.数据报(datagram)方式:无连接方式
- 无需建立连接,在数据传输时决定路由
- 每个分组根据头部包括的目的地址等控制信息来独立决定路由
- 分组经过路径可能会各不相同,可能会丢失、延迟、失序
3.虚电路和数据报区别
数据报 | 虚电路 | |
路由选择 | 每个分组单独选择路由,查找转发表 | 建立虚电路时选择路由,构建虚电路表,以 后所有分组都使用该路由 |
延时 | 分组传输延时 | 虚电路建立,分组传输延时 |
节点失败的影响 | 除了在崩溃时正在由该节点 处理的分组会丢失,其他分组无影响 | 所有经过失效节点的虚电路都要被终止 |
拥塞控制和服务质量QoS (Quality of Service) | 难,分组可能失序到达 | 可进行准入控制,可进行差错和流量控制 |
地址(头部开销) | 每个分组包括源端和目的端的完整地址 | 每个分组含有一个短的虚电路号 |
状态信息 | 子网无需为分组流保存状态信息 | 每个节点要保存一张虚电路表 |
4.动态虚电路
动态建立虚电路
- 节点根据连接建立请求的源和目的地址等信息查找路由表,决定下一跳节点
- 节点决定链路上区分虚电路的虚电路号,上一跳链路和下一跳链路采用不同的虚电路号
- 实践中,一般由下一跳节点选择一个在该链路上唯一的虚电路号
缺点:传输时延长——实时建立虚电路会非常耗时,使得链路建立的时间变长。释放虚电路,也会非常复杂和耗时(当传输大量短数据时,可能建立虚电路连接的时间比数据传输的时间都长)。
优点:按需建立虚电路,可以使得物理链路资源最大化的利用,不会像提前建立虚电路一样占用大量的资源。
(四)逐跳路由和源路由:扩散法和逆向学习法
根据选择路由的方式可以分为逐跳路由和源路由
1.逐跳路由
- 每个节点仅知道路径上的下一跳节点
- 每个节点只需要维护到目的地的下一跳节点信息即可
- 可能短暂出现路由回路
2.源路由
发送者(源)决定途中经过的节点,并将其记录在分组头部
- 通过第三方(如人工配置)获得网络的拓扑,决定路径或通过扩散等动态发现协议发现路径
- 分组头部长度限制了源路由的规模
途中节点根据分组中的源路由信息,决定下一跳节点
源路由也可用于数据报和虚电路网络等
适合流量工程(traffic engineering),可以根据网络的拓扑和流量情况,决定分组流所经过的路径
3.扩散法(Flooding)
根据本地信息选择路由
将收到的分组向除到来链路外的所有其他链路转发
扩散法会将分组沿着各种可能的路径转发到所有节点
可用于:
- 健壮性要求较高的场合,比如战地网络等
- 判断可达性:只要连通则一定可达
- 信息的分发:比如链路状态分组的扩散
- 寻找节点间的最短路由:最早到达目的节点的路径
4.逆向学习法
仅仅根据本地信息选择
每个分组中包含源节点和经过节点的个数(或者花费)
节点接收到分组时可了解到到源节点方向的路径花费,经过一段时间学习到最短路径
节点仅记录较好路径的变化,原有最短路径上的节点或者链路崩溃时无法了解到, 需要重新刷新节点对当前网络的了解
- 频繁刷新:学习最短路径需要一段时间,从而可能使用不确定的路径
- 周期过长:网络变化的反应太慢
二、了解Internet的设计原则:掌握什么是命运共享(无状态)、软状态、端到端
1.Internet的设计原则
- 目标1:连接各种类型的异构网络
- 目标2:路由器和链路故障仍能通信
- 目标3:有效利用网络的资源,支持各种类型的应用
针对目标2:
2.命运共享
命运共享(fate-sharing)策略:只要网络连通,端系统间的通信仍然可继续
3.无状态
无状态的路由设计:路由器不需要为端系统间的分组流维护状态信息
4.软状态
软状态机制:路由表的维护通过定期地刷新(路由信息交换)来完成,超时时状态被移走
5.端到端
端到端的设计原则:
- 逐跳的差错控制和流量控制仍然会由于中间节点的问题需要在端系统实现这些复杂的功能
- 在某跳中实现复杂的功能仅仅优化性能,而不是保证正确性
三、了解IP提供的单播、组播、广播和联播服务的特性
IP 只要求下层物理网络提供基本的数据递交功能以及MTU不低于576字节,提供不可靠无连接方式的数据递交服务
1.单播
单播(unicast):一到一
2.组播
组播/多播(multicast):一到多或者多到多
3.广播
广播(broadcast):一到所有
4.联播
联播/任播(anycast):一到多中任意一个
四、IP分组格式:掌握主要字段的作用,包括TTL/总长度/头部长度/Checksum等,了解IP选项的局限性
1.IP分组格式
IP分组头的长度为20-60字节。值得一提的是,TCP报头长度也为20-60字节。
2.主要字段的作用
- 版本字段:字段值为4表示IPv4,字段值为6表示IPv6。
- 分组头长度字段:该字段长度为4位,定义了以4字节为一个单位的分组头长度,分组头长度为20-60字节,因此该字段最小值为5(20字节),最大值为15(60字节)。
- 服务字段:占8bit,用于指示路由器如何处理分组。
- 总长度字段:该字段长度为16位,定义了以字节为单位的分组总长度,是分组头长度与数据长度之和。因为16位,所以最大长度为2^16-1,65535字节。
- 标识字段: 根据标识字段ID值是否相同来判断不同的段是否属于同一个分组,从而确保不会混淆。
- 标志字段: DF=1表示不能对分组进行分段,DF=0表示可以分段。MF=1表示不是最后一个分段,MF=0表示接受的是最后一个分段。
- 段偏移: 表示分段在整个分组中的相对位置,段偏移是以8字节为单位来计数。
- 前面的分段携带数据长度为8的倍数
- 生存时间字段:
- 生存时间字段又叫TTL,用来设定分组在互联网中的“寿命”,避免分组在网络中无限循环、无休止转发。通常是用转发分组最多的路由器跳数来实现。
- 设计TTL是用来限制一个分组在互联网中的最大生存时间,TTL的初始值由源主机设置,经过一个路由器,它的值减1。当TTL的值变为0时,分组就被丢弃,并发送ICMP报文通知主机。
- 协议字段:指使用IP协议的高层协议类型,如ICMP、IGMP、TCP、UDP等。
- 头检验和字段:
- 长度为16位,用于保证分组头数据完整性,只需要对分组头进行检验和计算而不需要对整个分组进行,因为高层数据会有自己相应的检验字段,检验和的方法和UDP、TCP的检验和类似。
- 地址字段:地址字段包括源地址与目的地址,都是32位。
3.IP选项的局限性
- 地址空间(32比特)有限
- 路由表越来越庞大,路由效率低
- 头部过于复杂:检验和,可变长,IP选项,无法快速处理和转发
- 没有安全性考虑
- 无法提供QoS保障
- 没有移动性支持
- 采用DHCPv4自动配置或者手工配置TCP/IP参数
五、掌握分段和重组:分段ID/分段偏移/长度/More Flag/Don't Fragment Flag
1.分段
每种网络规定数据链路层的帧的数据字段的最大长度称为最大传输单元(MTU)。
不同网络的数据链路层MTU的长度可能不同,因此路由器在接收到分组并准备转发到目的主机时,首先要根据下一个网络的数据链路层MTU,决定该分组在转发之前是否需要分段。当IP分组的长度大于MTU的长度时,就必须对IP分组进行分段。
标识字段: 根据IP源地址和目的地址、标识字段ID值是否相同来判断不同的段是否属于同一个分组,从而确保不会混淆。
标志字段:(Don't Fragment Flag)DF=1表示不能对分组进行分段,DF=0表示可以分段。(More Flag)MF=1表示不是最后一个分段,MF=0表示接受的是最后一个分段。
每个分段包含分段偏移(13bit):
- 分段携带的数据在原始IP分组中携带的数据部分所处位置的偏移量。单位为8个字节
- 前面的分段携带数据长度为8的倍数
- IP头部中的总长度与头部长度可知道分段携带的数据部分长度
2.重组
逐跳重组(透明分段法):可能多次分段和重组,每跳必须是同一个出口
接收方重组:途中可分段,最后在接收方重组
六、IP地址:了解A/B/C和D类地址,掌握子网分配方案,包括变长子网掩码
1.IP地址
2.子网分配方案
3.变长子网掩码
(一)CIDR:掌握如何进行汇集
七、IP转发: 掌握IP转发的基本过程,掌握如何进行最长前缀匹配。了解Trie
八、掌握ARP的基本操作过程,了解什么是gratutious ARP,掌握ARP伪装攻击
九、ICMP:了解ICMP差错报告:那些IP分组会发送差错报告,差错报告包含哪些信息
(一)掌握Ping/traceroute/path MTU Discovery如何实现?
十、掌握DHCP的基本工作过程,主要是DHCPDISCOVER/OFFER/REQUEST/ACK的作用,了解DHCP Relay
十一、掌握NAT和NAPT的工作原理。
十二、掌握IP隧道的基本思想。了解GRE封装方式
标签:分段,IP,网络层,电路,分组,第四章,节点,路由 From: https://www.cnblogs.com/imreW/p/17003807.html