网络层
最后一遍复习的时候再回头整理细节
关注如何将数据包一路发送到接收方,主机之间的逻辑通信。中间可能要经过许多跳hop中间路由器。
网络层是处理端到端通信的最底层。
so网络层需要知道网络拓扑结构(所有路由器和链路的集合),然后
- 选择适合的路径;
- 选择合适的路由器!(避免某些通信线路和路由器负载过重,而有的空闲-->更加雨露均沾嘛);;
and收发双方在不同网络时,也会出现新的问题,网络层也要解决。
可以抽象将网络层分成:①数据层面(转发层面):转发 ②控制层面:路由选择
数据链路层只是把帧的从线路一边传到另外一边,只是小范围的事情。不像网络层稍显宏大。
功能
异构网络互联
把不同的网络相互连接起来,构成更大的网络系统。
网络互联:把多个计算机按一定的方法、通过中继系统连接-->构成更大的网络系统。
- 中继系统:物理层or数据链路层扩大网络;
- 物理层:转发器、集线器
- 数据链路层:网桥or交换机——直接交换、存储转发交换
- 网络层:路由器 router (一台专用计算机)
- 网络层以上:网关
网络层,仍处于同一个网络,用路由器进行网络互联and路由选择。
这种成为实际互联网络。虚拟互联网络(IP网络、互联网):通过IP协议使得这些网络在网络层看上去像是一个统一的网络。
路由与转发 main主要功能
路由器负责:
- 路由选择 :根据路由选择协议构造路由表,持续更新维护路由表。
- 分组转发:处理路由器数据流——转发表查询、转发、相关队列管理、任务调度。
注意:路由器互联多个网络,so有多个IP地址、多个MAC地址。
SDN 软件定义网络
拥塞控制
- 拥塞:通信子网中(网络层、数据链路层、网络层) 出现过量分组-->网络性能下降。可以通过观察吞吐量--网络负载的关系。轻度拥塞、拥塞、死锁。
- 拥塞控制 or 流量控制:
- 流量控制:发送端、接收端之间点对点通信量的控制。抑制发送方发送速率,使接收方来得及接收。
- 拥塞控制:保证通信子网能够传送待传送的数据,全局性,涉及网络中所有主机、路由器等等。
- 拥塞控制两种方法
- 开环控制:事先,静态。系统启动后不再修改
- 闭环控制:反馈环路,动态。事先,而是及时检测调整解决。
路由算法
两个最短路径算法
bellman-Ford算法:距离矢量路由算法的别称。单源最短路径算法
Dijkstra算法:用于链路状态层次路由算法中
静态路由 自适应算法
网络管理员手工配置
小型网络
动态路由 非自适应算法
根据一定算法优化出来,不断更新适应。
-
距离-向量路由算法
距离矢量路由算法 distance vector routing
RIP算法、最初ARPANET使用的路由算法。
迭代计算每个路由器维护一张路由选择表(一个矢量),定期传送给所有与自己直接相邻的结点。
路由选择表:包括①每条路径的目的地(另一结点) ② 路径距离(代价 e.g.RIP算法-->跳数hop)所有结点都要参与距离向量交换,保证路由有效且一致。有新路由or有更加路由时更新路由选择表。
面临无穷计算问题 -
链路状态路由算法
典型链路算法:OSPF算法 开放最短路径优先
每个结点都具有完整的网络拓扑信息,1对all
一个结点①主动测试所有邻接结点状态 在链路状态发生变化时②将链路状态传播给其他所有结点。(这里用到了泛洪算法)
链路状态报文到达时,路由节点更新,然后利用Dijkstra最短路径算法SPF shortest path first 重新计算路由。(从单一源出发到所有结点的最短路径)泛洪算法:路由器通过所有端口 向 所有相邻路由器发送信息,每个相邻的路由器又发送给自己所有相邻路由器(不包括刚刚发给它的那一个)。
运用广泛,用于大型网络and Internet,代替了距离-向量路由算法
-
层次路由
因特网将互联网划分成 许多较小的自制系统(一个自制系统包含多个局域网LAN),每个自制系统有权自主决定系统内使用的路由协议。
so两个自制系统之间的通信需要屏蔽掉协议之间的差异,选择协议就分成了
IGP 内部网关协议——RIP、OSPF
EGP 外部网关协议——BGP边界网关协议
最优层数:对于一个包含N个路由器的网络,最优的层数是ln(N)
,每个路由器所需的路由器表项 = e ln(N) 个-
IGP 内部网关协议
-
EGP 外部网关协议
域间路由选择
-
广播路由??
拥塞控制算法
拥塞产生原因
多个输入对应一个输出
慢处理器,难以完成必要的维护
低带宽线路
处理拥塞
增加资源
流量感知路由:绕开拥塞路段,but可能出现摇摆问题
准入控制:拒绝新的连接的建立,除非能够带来流量而不变得拥塞。
流量调节:拥塞迫在眉睫时,返一个抑制包给源端从而抑制流量。抑制包对经过的每一个路由器都产生作用。
负载脱落:以上都无法解决时,路由器还未处理数据包而数据包已经被淹没,直接将数据包丢弃。
策略
文件传输:wine策略,优先丢弃新数据包。
多媒体服务:milk策略,优先丢弃旧数据包。
服务质量 QoS
流:从一个源到一个目标的数据包流
流的需求特征:可靠性、延迟、抖动、带宽——决定一个流要求的QoS服务质量。
流量整型
漏桶算法
令牌桶算法
md记不住的我不搞了
包调度:数据包调度算法,在同一个流的数据包之间and竞争流之间 分配路由器资源的算法。
不同数据流可预约的3种潜在资源:1. 带宽 2. 缓冲区 3. CPU周期
...不管了不管了什么准入控制
协议
IPv4
IP Internet Protocol,网络之间互联的协议。IP是无连接服务
IPv4 header头部字段
版本号4b:IPv4.version=4、IPv6.version=6
头部长度4b:单位4B-->实际长度 *= 4B(32b);
常用20B的IPv4 header;取值范围( 5 - 15) * 4B
总长度 16b:header+data总长度 <= MTU!!最大(216 - 1)B = 65535B
标识16b:计数器,以便分片后恢复成原数据报。(大于MTU就要分片
标志3b:X``DF``MF
Don‘t Fragment; More Fragment;
DF = 0:允许分片
MF = 1后面还有分片;
MF = 0最后一个分片
片偏移13b:以8B为偏移单位(so除了最后一片,前几个片都是8B倍数
TTL生存时间:确保分组不会一直在网络中循环,表示可经过路由器数量最大值
路由器分组转发前TTL--;TTL为0时丢弃分组。
header checksum 16b:只校验IP header
源IP地址4B;目的IP地址4B
总长度在第2-3B,跳过前8B是TTL
网络层转发分组过程<目的网络,下一跳地址>
得到下一跳路由器的IP地址后,是将这个IP地址转换成MAC地址(通过ARP),把MAC地址放在MAC帧首部,根据MAC地址找到下一跳路由器。**不同网络中MAC帧源地址and目的地址会变,网桥转发帧不改变源地址。)
解决IP地址耗尽:1. 采用CIDP无类别编址 2. NAT节省全球IP地址 3. 采用IPv6更大的地址空间
-
IP数据报分片
分片:在目的地网络层重新组装。
e.g. IP数据报=4000B,IP header = 20B、MTU=1500B,分片?有效载荷偏移值单位8B
so先判断1500B-20B = 1480B -->1480B%8B == 0
√OK!!
data = 4000B-20B = 3980B
片0:20B+1480B = 1500B、偏移=0、剩2500B data
片1:20B+1480B = 1500B、偏移=1480/8=185、剩1020B data
片2:20B+1020B = 1040B、偏移=2*185=370、data 传输完成MTU 最大传送单元:MTU严格限制IP数据报长度。要求IP数据报总长度不能超过下面数据链路层的MTU。e.g.以太网帧最大传送单元1500B;不同协议MTU不同。
-
IPv4地址
32bits
xxx.xxx.xxx.xxx
,<网络号><主机号>
网络号在因特网范围内唯一;
主机号在指明的网络范围内唯一;
so一个IP地址在因特网范围内唯一。
198.16.16.0/21表示网络部分长度为21的一段地址,前21位为网络号。若剩余host部分全1则表示broadcast广播地址。
主机号全0:网络本身
主机号全1:本网络的广播地址
五类
A类:0网络号.主.机.号
B类:10网络.号.主机.号
C类:110网.络.号.主机号
D类:多播地址1110多播地址
E类:1111xxxx...保留 -
NAT 网络地址转换
只发生在NAT路由器中,普通路由器转发IP数据报不改变IP地址。
NAT路由器看到了端口-->工作在传输层
节省IPv4地址的消耗。例一个全球IP可供宿舍4人一起用。
专用网络地址-->公用地址,对外隐藏内部管理的IP地址。
私有IP(可重用地址)只用于LAN,网关利用NAT将私有IP-->公有IP。NAT路由器需要查看and转换传输层端口号。普通路由器只工作在网络层。
-
CIDR 无类别域间路由选择
缓解IPv4地址紧张问题,消除A/B/C类地址的规定,进行子网划分。
前缀长度更加灵活。
e.g. 198.16.16.0/21表示网络部分长度为21的一段地址,前21位为网络号。若剩余host部分全1则表示broadcast广播地址。使用CIDR时,路由表每一项(网络前缀+下一跳)so查表不止一个结果,就进行最长前缀匹配,匹配**具有最长前缀的路由 **
最长前缀匹配(最佳匹配):e.g. 11100000 0xxx through 11100000 1xxx -->Prefix Matching = 11100000/8
IPv6
更长了 16B的地址。
解决IPv4地址短缺/安全问题/允许协议扩充/ 等等等等不想看了
在IPv4里是 2级,IPv6中 是3级
ARP 地址解析协议
完成IP地址-->MAC地址的映射。在网络层工作。
因为一台主机发送数据包时最终都必须用到MAC硬件地址,来确定目的接口。每台主机都有ARP高速缓存,存放本地LAN各主机和路由器的IP地址到MAC地址的映射表:ARP表。
工作原理:A主机想发IP数据报给B主机,查看A的ARP高速缓存中有无B主机IP地址
有,查出对应MAC硬件地址,写入MAC帧,发送;
无,使用目的MAC地址FF-FF-FF-FF-FF-FF封装,广播ARP请求,B收到ARP请求分组后。单播给A主机ARP响应分组,其中包含B主机的IP与MAC地址映射关系。A收到后写入ARP高速缓存中
DHCP 动态主机配置协议
采用C/S 客户端/服务器模型的 基于UDP 的应用层协议
允许服务器动态分配IP地址and配置信息给客户端。(IP地址、子网掩码、默认网关
该计算机在自己的网络上广播一个DHCP DISCOVER包。
当DHCP服务器收到请求,它就为该主机分配一个空闲的IP地址,并通过DHCP OFFER包返回给主机
ICMP 网际控制报文协议
IP层协议(可以理解成网络层协议
两种类型报文:ICMP差错报告报文、ICMP询问报文。
ICMP报文作为数据部分+IP头部发出去。
应用:ping测试两台主机连通性
tracert跟踪分组经过的路由
功能:发生意外时,通过ICMP报告差错、错误异常