计算机网络自顶向下--网络层

网络层,将运输层的的数据封装成一个数据报,然后发送出去。

网络层的两种重要功能:转发,和路由选择。

转发:指的是将一个分组从一个路由器的输入链路,移动到该路由的输出链路。

路由选择:分组所采用的路由或路径(使用路由选择算法计算),每台路由器都有一张转发表,路由器通过检测到达的分组的

首部字段,去路由表查询,来决定输出链路接口。

 

 

网络层体系结构不止是因特网,还有如ATM异步传输模型等。

网络服务模型定义了很多网络层的一些端到端的特性。

如:1,确保交付

       2,具有时延上界的确保交付

      3,有序分组交付

      4,确保最小带宽交付

      5,确保最大时延抖动交付(即发送方发送的两个分组间隔,接收方接收到到他们的时间间隔不超过某个值)

      6,安全性服务

等其他各种网络层的访问特性。

不幸的是对于因特网来说,它提供的尽力交付服务,也就是上面的所有特性和他不沾边,

对于ATM的服务器模型CBR(constant bit rat)恒定速率传送,保证速率恒定,无丢包保证,有序,不出现拥塞,等

 

虚电路和数据报网络

虚电路是面向连接的服务(如ATM),也就是当发生数据传输前,提前建立一个连接,

在源到目的主机之间,网络层建立虚电路,并且为每段链路标识出一个vc号,在不同路由转发表,可能同一个链路都有不同的vc号,

无论何时跨越一台路由器的时候就将创建一条新的虚电路,转发表就增加一个表项,反之删除

 

数据报网络中,每当一个端系统要发送分组的时候就在该端系统上加上目的地地址,然后将改分组推向网络,

路由不维护任何链路信息,路由器根据分组的目的地地址,查询转发表,决定适合的输出链路,

以ip4协议为例,目的地址占4个字节 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是由  网络号+主机号组成,其中网络号标记法为如121.20.5.0/24

表示该子网前24位相同,该子网有相同的网络号其子网掩码为255.255.255.0,和原本的ip做与运算得到网络号。

 

ipv4子网拓扑图

 

如果想要获取一个

ICANN组织来分配ip地址快给各isp,如果我们想申请应该ip块,可以向我们的isp申请。

然后我们的路由器就必须转发该ip块对应的子网的分组到具体的某台计算机。

一台主机获取一个IP。

通过Dynamic Host Configuration Protocol DHCP协议,DHCP允许主机获取一个ip地址,子网掩码,第一跳路由器(网关)

可以获取一个临时的IP地址,也可以分配一个固定地址。

 

DHCP实际是一个客户服务器协议,一些在子网中需要上网的主机就他 的客户,正常情况下一个子网有一个DHCP服务器,

如果没有则需要DHCP中继代理(通常是路由器)转发请求,因为DHCP是已经有IP地址的他是可以发送数据到DHCP服务器的和接收服务器的数据,同时响应给响应的主机请求。

通过DHCP服务器获取 需要经历一下过程。

首先 主机不知道谁是DHCP服务器的,所以主机在子网上通过UDP协议在67端口上广播数据,

发送目的主机为255.255.255.255和原地址为0.0.0.0的报文。

DHCP服务器收到该请求后仍然使用IP广播地址为255.255.255.255的,(如果有多个DHCP服务器),

主机会选择一个接受报文(已知DHCP的服务器ip地址),主机同时再发送一个DHCP请求报文,回显响应的配置参数

DHCP服务器进行响应,这个时候交互完成。

NAT网络地址转换

实际在现实中,并不是每个可以上网的设备都有一个公网IP的。都是诸如什么10.开头和192.168.开头的内网iP的

在这个子网以外的  网络中是不认识这个ip地址的,这个就涉及 Network Adress Trsanlation。

在安装了nat的路由器中会维护一个 映射转换表,所有进入从这个路由器出的分组的源地址都是 统一ip,接收也一样。

但是不一样的是端口,在nat映射转换表中对于内网主机的ip+port映射一个 nat中的ip+port。这样就可以传送分组到目标主机了

 

因特网控制报文协议 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的某些字段是怎么办呢

建隧道,即端到端都要安装隧道协议,把ipv6的数据(首部+数据) 放到ipv4的数据部分,

就和其他ipv4数据一样正常传输,到了对端的时候吧它还原成正在的ipv6数据,ip协议是非安全的,在互联网裸奔的。

 

 

路由选择算法

 

主机通常和一台路由器相连接,通常称为他的默认或者第一跳路由器,分组通常被传递到它的第一跳路由器,

然后到目的路由器的传送。

按照某路由器所知道的链路费用划分

全局式路由选择算法,该算法要求知道所有节点之间的连通性和链路费用为输入,

具有全局状态的算法一般也成为链路状态算法(LS);

比较典型的有Dijksua算法,大致是以当前节点为中心向网络中其他的节点广播链路状态(包括费用和特征)分组来完成计算的

该算法通过不断的迭代到其他节点,维护自己路由表中到到目的节点最短路径(路由表中 标示出出链路接口(即下一跳))。

 

 

分算式路由选择算法,每个节点仅需知道如其直接相连节点的链路费用,其中一个算法是距离向量算法(DV) 

当前节点需知道  其邻居的距离向量(节点到其他节点的估计费用 ),和当前节点到邻居节点的费用,

每个节点不是地向它的每个邻居发送它的距离向量的副本 ,当自己收到邻居的副本后,重新计算,当发现更低费用

的时候更新路由表。如RIP(route infomation protpcol)路由信息协议就是DV,RIP用于内部系统的协议。

 

 

按照负载划分

还可以划分为 负载敏感算法和负载迟钝算法(RIP,BGP)

按照是否能及时更新路由划分

可以划分为  静态路由算法(手工配置,更新较慢),动态路由算法(定期更新)

 

层次路由选择

无论是dv算法还是ls算法,如果把网络看做是一个互联的路由器的集合,所有路由器更新计算最低路径的开销就

高的不可实现了,显示中采用的是 划分网络,采用 Autonomous System(自治系统)AS,例如一个isp或者

一个大学网络,他们属于一个AS,在AS内部采用同一个路由选择算法来实现,同时在AS内部有一台或者多台

路由器负责本AS内的分组向外部转发,这些路由器一般称为网关。

如果在AS内部只有一个网关路由器的话,AS内的分组最终都会转发到该网关,

如果AS内部有多个网关路由器,那么怎么决定该分组转发到那个网关呢,

 

BGP会向相连的AS间通过网络号来标识可达信息,在BGP协议中每个自治系统都有一个全局唯一的

自治系统号,除了桩AS(指仅仅承载源地址或者目的地址为该AS的流量)。当一个分组在某个AS内

有多个网关可以到达目的地的时候,BGP可以根据自己的本地配置,或者最短的AS-PATH等来选择一条

转发该分组的网关。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值