网络互联
直连网络
直连网络的局限性:
直连网络本质上是一种广播网络,可扩展性很差
在有环路的拓扑中,数据包会在网络中一直被广播下去(广播风暴)
提升网络的可扩展性:
(1),网络分割:将直连网络分割成不同的段
(2),广播->单播:每个节点只将数据往目的地方向传送
消除广播风暴:
(1),为网络中每对源目的节点分配唯一确定的一条路径
(2),这些路径构成构成了一棵树(生成树,Spanning Tree)
(3),生成树协议:选一个根节点,其它每个节点计算确定到根节点的最短路径,保证是最小生成树(Minimum Spanning Tree)
交换网络
设计目标:数据只朝向目的节点方向传送(转发, Forward),转发规则是网络自己学习生成的,不需要外界参与
两个主要部分:数据帧转发,学习节点位置
网络互连
Q1: 是否可以将交换网络扩充到全球范围?
A1:不可以,存在可扩展性问题(FDB表的膨胀问题,STP收敛速度问题),网络接入方式多样性,
网络层设计思路:向上提供最基本的端到端传输服务(无连接的、尽最大努力交付(best-effort delivery)的数据报服务),发送数据报时不需要先建立连接,不提供服务质量的承诺
IPV4
无类别域间路由(Classless Inter-Domain Routing, CIDR):网络掩码(network mask)
IP报文转发规则:
IP地址到MAC地址的映射:IP层抽象屏蔽了下层MAC协议的细节,在链路层只能看见 MAC 帧而看不见 IP 数据报,数据传输时,需要IP地址到MAC地址的映射。
(-)地址解析协议 (Address Resolution Protocol):ARP:知道目标主机的IP地址,查询其MAC地址,注意:ARP协议只作用于局域网,两主机IP不在同一网段时,数据报文应先转发到路由器。
互联网控制消息协议(Internet Control Message Protocol, ICMP):
NAT (Network Address Translation):
IP分片(Fragmentation):每个网络拥有各自的最大传输单元长度(MTU),当IP数据报文大于网络MTU时,路由器负责数据包分片,所有分片数据包到达目的主机后,目的主机负责还原原始IP报文
IP分片的缺点:不能充分利用网络资源,端到端性能很差
IPV6
Q1:Why IPV6?
A1:1,近乎无限的地址空间。2,更简洁的报文头部。3,内置的安全性。4,更好的QoS支持。5,更好的移动性。IPv6地址长度为128位
IPv4地址到IPv6地址的映射:
IPv6扩展报头优点:
IPv6地址解析:
IPv4向IPv6过渡:1,双协议栈技术 (Dual-Stack)2,隧道技术(Tunnel)(把IPv6报文封装在IPv4报文中,IPv6网络之间穿越IPv4网络进行通信).3,互通技术NAT-PT(在两种网络的相连处进行两种地址间的翻译,修改协议报头,使IPv4网络与IPv6网 络能够互通)
数据包队列
数据包队列是网络中间设备中最关键的部分之一(其大小、管理策略等很大程度上影响了网络性能)
Q1:why?为什么需要数据包队列?
A1:瓶颈链路,突发流量 (Burst)
数据包队列的长度:经验法则
队列过小 (under-buffered): TCP-Incast问题:Incast: 多个向一个发送,导致交换机出端口队列占满
队列过大 (over-buffered): BufferBloat问题:BufferBloat是指数据包在缓冲区中存留时间过长引起的延迟过大问题
(·)解决办法:减小队列大小,改进传输控制策略,改进队列管理策略(在队列满之前就主动(概率性的)丢包,以延迟作为队列管理的信号)
(·)RED (Random Early Detection):队列满之前就主动(概率性的)丢包
(·)Tail Drop (尾部丢弃)当队列满时,将新到达的数据包丢弃
(·)CoDel (Controlling Delay):以延迟作为队列管理的信号,当包停留时间超过target值时,将该数据包丢弃,并根据controllaw设置下次丢包时间
数据包队列对传输性能的影响:
(1):队列大小(队列很大时,可以减少丢包,但会引起BufferBloat问题)
(2):队列管理(TailDrop、RED、CoDel有不同的丢包行为)丢包次数:TailDrop<RED<CoDel,延迟:TailDrop>RED>CoDel
(3):队列调度(FIFO:实现简单,通常会有更高吞吐率)