计算机网络自顶向下--网络层
网络层,将运输层的的数据封装成一个数据报,然后发送出去。
网络层的两种重要功能:转发,和路由选择。
forwarding是指将每个分组从一个路由器的输入链路发送到该路由的输出链路
每台路由器都有一个转换表用于确定数据包传输路线;该系统中每个路由器都会根据接收到的数据包来确定其传输方向;当数据包到达时会依据预设好的路由策略进行处理;所有节点都会按照统一制定好的规则进行决策;网络中的每个节点都拥有自己的转换表以记录当前的最佳路径信息。
首部字段,去路由表查询,来决定输出链路接口。
网络层体系结构不止是因特网,还有如ATM异步传输模型等。
网络服务模型定义了很多网络层的一些端到端的特性。
如:1,确保交付
2,具有时延上界的确保交付
3,有序分组交付
4,确保最小带宽交付
第5点要求我们保证最大抖动时延交付(即确保前后两个数据包在发送端的间隔,在接收端到达的时间差不超过预设的最大值)。这通常涉及优化发送机制以减少数据包在传输路径上的延迟波动。
6,安全性服务
等其他各种网络层的访问特性。
遗憾的是,在互联网领域中,并没有提供一系列关键特征的尽力交付服务。
该ATM服务器模型CBR(基于常数比特率机制)采用按恒定速率传输的数据流方案。该系统通过严格控制数据流量以确保传输过程中的数据流量保持稳定,并且能够有效防止数据丢失。为了保证系统的可靠性和稳定性,在设计时充分考虑了数据顺序和避免拥塞的因素。
虚电路和数据报网络
虚拟电路是基于连接的服务(如ATM),即在数据传输之前建立一个连接通道。
位于从源主机到目的主机的路径上,在网络层会建立一条虚拟通道的同时,在每条链路中都会分配一个VC编号。值得注意的是,在某些情况下同一跳转表中的同一条链路可能会被分配不同的VC编号。
当从一台路由器穿越到另一台时就会建立一条新的虚拟通道。如果使用转换表,则会新增一个表格项;反之则会移除。
在数据报网络中每个端系统在发送分组时都会设置为该端系统的目的地地址随后会将修改后的分组推送给网络
路由未存储任何关于链路的信息;路由器依据分组的目的地地址利用转发表来选择合适的输出路径。
以IPv4协议为例,在这种情况下(举例说明),每个目的地址由四个字节构成的32位数值表示;因此在实际应用中难以通过转发表来管理超过数十亿个目标IP地址。
一般路由使用前缀匹配原则,并且使用最长前缀匹配原则,
类似于路由A 如果首部目的分组前缀为 0000 1101 则转发到出链路2
如果首部目的分组前缀为 0000 1101 0010 则转发到出链路3
假如现在出现一个分组为 0000 1101 00 则该分组转发到出链路3。
路由器结构图


上面图片的字错了叫随机早期检测。
这个时候就涉及到各种时延的由来了
如 1:处理时延,检查分组首部字段,同时决定分组导向和出的时间,
2:排队时延,在输入队列中排队的时间
3:传输时延,指的推出分组到网络的时间,分组长度/链路输出速率
4:传播时延,物理链路上传播的时间
网际协议(IP)
因特网的网络层主要有三个重要的组件
1,IP协议
2,路由选择协议(路径选择,RIP/BGP,转发表)
3,ICMP协议
报文结构如图

ipv4编址
首先定义主机和物理链路的边界为接口(一个路由器会有几个接口)
每个IP的固定长度是32位,并且每个IP由网络号和主机号两部分构成;其中网络号部分采用如192.168.1.0/24这样的表示方法
表明该子网的前24位与另一方完全一致;同时具有相同的网络号,并使用了标准的掩码值(即...),通过按位运算确定公共网络段。
ipv4子网拓扑图

如果想要获取一个
ICANN组织负责将IP地址管理并分发给各个ISP组织。如果我们要申请应获取一个IP块,则可以通过与我们的ISP合作来注册该IP资源记录集。
然后我们的路由器就需要负责将该IP块所对应的子网内的数据流量定向传输至具体的某台计算机。
一台主机获取一个IP。
基于动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)进行配置后,在线更新网络参数。该协议可使主机获得IP地址、子网掩码以及第一跳路由器(即网关)。
可以获取一个临时的IP地址,也可以分配一个固定地址。
DHCP 实际上是一种客户-服务器协议。其中一些位于子网中的主机成为其客户端。通常情况下,在一个子网中配置有一个 DHCP 服务器。
如果没有,则需要通过一个称为 DHCP 中继代理(通常由路由器执行)的机制来转发请求。这是因为该机制能够发送数据至 DHCP 服务器并接收来自该服务器的数据,并及时回应相关主机发出的数据请求。
通过DHCP服务器获取 需要经历一下过程。
由于主机无法识别该台机器是否为 DHCP 服务器的原因,在子网上通过向所有宿主发送 UDP 报文,并指定目标地址为 67 号端口来广播数据
发送目的主机为255.255.255.255和原地址为0.0.0.0的报文。
当DHCP服务器响应该请求时,它仍会继续采用IP广播地址为...的策略;如果有多个DHCP服务器运行,则每个都会遵循这一行为模式
主机会主动选择接收一个 DHCP 报文(已知 DHCP 服务器的 IP 地址),同时还会发送一个 DHCP 请求报文,并回显响应的配置参数
DHCP服务器进行响应,这个时候交互完成。
NAT网络地址转换
现实中,并非所有能够上网的设备都拥有一个公网IP。常见的是以'10.'或'192.168.'开头的私有地址。
在子网外部的网络中无法识别该IP地址,并且这涉及到NAT
在一个安装了Nat功能的路由器中会配置一个映射转换表,在所有通过该路由器输出端口进入的分组中,其源地址统一映射为同一个IP地址,并且接收的数据也是如此。
而端口处理上存在差异,在nat映射转换表中将内网主机的IP地址和端口映射到一个位于Nat表中的IP地址和端口。从而使得数据包能够被传输至目标主机。
因特网控制报文协议 ICMP(Internet control message protocol)
icmp协议位于ip协议之上;这是因为icmp的报文被嵌入到ip分组中以实现传输过程中的差错报告功能。 icmp主要用于进行错误报告以确保通信网络中数据传输的可靠性。
icmp报文仅有一个类型字段和编码字段。
以下图片来源自网络,没勇气敲。。。

比较有意思的一个icmp的报文类型和编码为,
当数据包类型被配置为4时(...),编码字段设置为0以标识一种特定的功能状态——阻止数据源发送报文。实际上很少采用这种方法;通常拥塞控制机制由网络层或其他高层组件负责实现。
ipv6与ipv4
ipv6 使用128位来定义一个唯一ip,也就是说,吸取教训了,这个就很大了,
ipv4到ipv6需要逐步过渡,基本现在都是支持双协议。
IPv6 - IPv6端到端主机,在网络中间存在IPv4协议的路由器时,同时还需要使用一些特定字段进行配置。
建设隧道时要注意从一端到另一端都要配置隧道协议,并且要把ipv6的数据分为两部分:头部和正文。将这两部分分别放置到对应的ipv4数据结构中
像其他ipv4数据一样正常传输的数据,在到达对面时会被恢复为正常的ipv6数据。该协议存在安全隐患,在网络环境中运行不稳当。
路由选择算法
主机一般会通过网络接口连接到一台特定的路由器上,在网络术语中这台路由器被称为其默认的第一跳路由器。数据分组一般会被发送到其默认的第一跳路由器上。
然后到目的路由器的传送。
按照某路由器所知道的链路费用划分
全局式路由选择算法 ,该算法基于网络中各节点间的连接情况以及路径成本作为输入参数
具有全局状态的算法一般也成为链路状态算法(LS);
一种经典的方案是Dijkstra算法;从当前节点向网络中的其他节点发送与链路状态相关的数据包(包含费用信息和特征数据)。
此算法持续不断地遍历其他节点,在其路由表中维护并标示出各链路接口(即每个下一跳),以确保到达目标节点的最短路径信息。
数据路径选择机制中包含一组规则和过程,在这种机制下每个节点只需了解与其直接相连的所有网络接口相关的网络成本信息;其中一种典型实现方式为距离向量格式化为 DV
该节点需了解其相邻节点的距离信息(包括估算成本)以及至这些相邻节点的具体成本
每个节点不会直接向其所有邻居传播自己的距离信息副本,在接收到邻居返回的距离信息副本后进行路径重算,在此过程中进一步优化路径选择。
在特定时间更新 routing tables。例如 RIP (route information protocol) 是一种动态矢量类协议(DV),该协议被用于内部网络系统中。
按照负载划分
还可以划分为 负载敏感算法和负载迟钝算法(RIP,BGP)
按照是否能及时更新路由划分
可以划分为 静态路由算法(手工配置,更新较慢),动态路由算法(定期更新)
层次路由选择
无论是DV算法还是LS算法,在将网络视为由许多相互连接的路由器组成的集合体时(或者将网络视为由许多相互连接的路由器组成的集合体),每个路由器都会进行最短路径上的开销计算(或者所有路由器都会进行最短路径上的开销计算)。
高不可实现的目标,在显示时采用的是 网络划分策略,并使用 自治系统 AS 作为基础架构。例如,在实际应用中通常选择 ISP 或类似的机构。
由多个高校共同构成的大学网络都归属于同一个Autonomous System(AS),该网络内部统一采用相同的路由选择协议来实现路由优化与负载均衡管理;通常配置有单台或多台路由器用于管理该区域的路由表
路由器负责本AS内的分组向外部转发,这些路由器一般称为网关。
当AS内部仅有一个网关路由器时,在该区域内所有分组最后都会被转发到该网关
如果AS内部有多个网关路由器,那么怎么决定该分组转发到那个网关呢,

B GP 会 通过 网络 号 将 可 达 信 息 传 递 给 相 连 的 AS , 在 B GP 协 议 中 每 一 个 自 治 系 统 都 能 够 拥 有 一 个 全 全 唯 一 的
自治系统号A_S号码中有一个例外情况:特指承载源地址或目的地址流量的AS实例(即桩AS)。具体而言,在网络中当一数据包在其路径上的某一个AS内部传输时
当存在几个网关能够抵达同一个目的地时,BGP能够基于自身的本地配置设置,或者采用最短路径长度(AS-PATH)等方式,选择其中一条路径作为最优连接选项.
转发该分组的网关。
