第四章

第四章 网络层

4.1.1 转发和选路
  • 转发:当一个分组到达某路由器的一条输入链路时,该路由器必须将该分组移动到适当的输出链路。
  • 选路: 当分组从发送方流向接收方时网络层必须决定这些分组所采用的路由或路径计算这些路径的算法被称为选路算法
  • 网络层有两种重要的功能——转发和选路。实际上还有第三种重要的网络功能,即连接建立
4.1.2 网络服务模型


  • 网络服务模型(network service model)定义网络的一侧边缘到另一侧边缘之间(即发送端系统与接收端系统之间)分组的端到端运输特性。
  • 能由网络层提供的特定服务包括:

确保交付:该服务确保分组将最终到达其目的地
具有时延上界的确保交付:该服务不仅确保分组的交付,而且在特定的主机到主机时延上界内交付

  • 能够为给定的源和目的之间提供分组的流
    - 有序分组交付:该服务确保分组以他们被发送的顺序到达目的地
    - 确保最小带宽:模仿在发送主机和接收主机之间一条特定比特率的传输链路的行为,只要发送主机以低于特定比特率的速率传输比特,分组就不会丢失,且每个分组会在预定的主机到主机时延内到达。
    - 确保最大时延抖动:该服务确保发送方发送两个相机分组之间的时间量等于在目的地接收到它们之间的时间量。
    - 安全性服务:使用仅仅源和目的主机知晓的秘密会话密钥,源主机中的网络层能够加密向目的主机发送的所有数据报负载
  • 恒定比特率(Constant Bit Rate CBR)ATM网络服务。这是第一个标准化的ATM服务模型
    - 使用CBR服务,ATM信元流以如下方式被承载跨越网络,即一个信元的端到端时延、一个信元端到端时延中的可变性(时延抖动)及丢失或推迟交付的信元的比率都可以确保在规定值以下。当第一次建立CBR连接时,发送主机与ATM网络认可这些值。
  • 可用比特率(Available Bit Rate ABR)ATM网络服务。由于因特网提供了所谓尽力为为服务,所以ABR也许最好被刻画为比尽力而为稍好一点的服务。ABR服务也许会丢失信元。与因特网服务模型不同的是,信元不能被重排序,对于使用ABR服务的连接来说,最小信元传输速率(MCR)是可以得到保证的。如果在给时间内网络有足够的空闲资源,在发送方也可以用比MCR更高的速率成功地发送信元。

4.2虚电路和数据报网络

  • 在迄今为止的所有主要的计算机网络体系结构中,网络层或者提供了主机到主机的无连接服务,或者提供了主机到主机的链接服务,而不同时提供两种。仅在网络层提供连接服务的计算机网络被称为虚电路(Virtual-Circuit,VC)网络
    ;仅在网络层提供无连接服务的计算机网络被称为数据包网络(datagram network)
4.2.1 虚电路网络
  • 虚电路(VC)组成:①源和目的主机之间的路径(即一系列链路和路由器);② VC号,沿着该路径的每段链路一个号码;③沿着该路径的每台路由器中的转发表表项。属于一条虚电路的分组将在它的首部携带一个VC号。因为一条虚电路在每条连路上可能具有不同的VC号,所以每台中间路由器必须用一个新的VC号替代每个传输分组的VC号,该行的vc号从转发表获得。

在虚电路中有三个明显不同的阶段

  • 虚电路的建立
  • 数据传送
  • 虚电路拆除:当发送方(或接收方)通知网络层它想终止该虚电路时,就启动这个阶段,网络层通常将通知网络另一侧的端系统结束呼叫,并更新路径上每台路由器中的转发表以表明该虚电路已不存在了。

在网络层的虚电路建立与运输层的连接建立之间有一个细微但很重要的区别。运输层的连接建立仅涉及两个端系统。在运输层连接建立期间,两个端系统独自决定运输层连接的参数。虽然这两个端系统已经知道该运输层连接,但在网络中的路由器对这些完全不知情。对于一个虚电路网络层,沿两个端系统之间路径上的路由器都要参与虚电路的建立,且每台路由器都完全知道经过它的所有虚电路。

端系统向网络发送指示虚电路启动与终止的报文,以及路由器之间传递的用于建立虚电路的报文被称为信令报文(signaling message),用来交换这些报文的协议常称为信令协议(singnaling protocol)

4.2.2 数据报网络
  • 最长前缀匹配规则(longest prefix matching rule):表中寻找最长的匹配项,并向与最长前缀匹配的链路接口转发该分组。
  • 虽然数据报网络中的路由器不维持连接状态信息,但它们无疑在其转发表中维持了,转发状态信息。然而,转发状态信息变化的时间尺度相对1~5分钟左右更新一次转发表。在虚电路网络中,只要通过路由器建立一条新的连接,或通过路由器拆除一条现有的连接,就更新路由器中的转发表。这对一台第一层主干路由器而言,很容易以微妙的时间尺度来进行更新
4.2.3 虚电路和数据报网络的由来

虚电路的概念来源于电话界。它采用了真正的电路。

因特网作为一种数据报网络,是由互连计算机的需求发展而来的。由于端系统设备复杂得多,因此因特网设计者们选择使网络层服务模型尽可能简单


4.3 路由器工作原理

转发功能:实际将分组从一台路由器的入链路传送到适当的出链路。

  • 输入端口:它要执行将一条输入的物理链路端接到路由器的物理层功能。它也要执行需要与位于入链路远端的数据链路层功能交互的数据链路层功能。还要完成查找与转发功能,以便转发到路由器交换结构部分的分组能出现在适当的输出端口。控制分组从输入端口转发到选路处理器。在路由器中,多个端口经常被集中到路由器中的一块线路卡(line card)上。
  • 交换结构:交换结构将路由器的输入端口连接到它的输出端口。交换结构完全包容在路由器中。
  • 输出端口:输出端口存储经过交换结构转发给它的分组,并将这些分组传输到输出链路。因此,输出端口执行与输入端口顺序相反的数据链路层和物理层功能。当一条链路时是双向(承载两个方向的流量)链路时,与链路相连的输出端口通常与输入端口在同一线路卡上成对出现。
  • 选路处理器:选路处理器执行选路协议,维护选路信息与转发表,并执行路由器中的网络管理功能
4.3.1 输入端口
4.3.2 交换结构


  • 交换结构位于一台路由器的核心部位,正是通过交换结构,分组才能实际地从一个输入端口交换到一个输出端口中。交换可以通过许多方式完成。
  • 三种交换技术

  • 经内存交换
  • 经一根总线交换
  • 经一个互联网络交换

4.4网际协议:因特网中的转发和编址

4.4.1 数据报格式

网络层分组被称为数据报

有关IPv4数据报中的关键字段如下

  • 版本号:这4比特规定了数据报的IP协议版本。通过查看版本号,路由器可确定如何解释IP数据报的剩余部分。不同的IP版本使用不同的数据报格式。目前使用的IP版本为IPv4
  • 首部长度:因为一个IPv4数据报可包含一些可选项(包含在IPv4数据报首部中),故需要用这4比特来确定IP数据报中的数据部分实际从哪里开始。大多数IP数据报不包含可选项,所以一般的IP数据报都有20字节的首部。
  • 服务类型:服务类型(TOS)比特用来使不同类型的IP 数据报能相互区别开来。
  • 数据报长度:这是IP数据报的总长度,(首部加上数据),以字节计。因为该字段长为16比特,所以IP数据报的理论最大长度为65535字节。然而数据包很少有超过1500字节的。
  • 标识、标志、片偏移:该三个字节与所谓IP分片有关,(IPv6不允许在路由器上分片)
  • Time-To-Live,TTL)字段用来确保数据报不会永远在网络中循环。每当数据报经过一台路由器时,该字段的值减1.若TTL字段减为0,则该数据报必须丢弃。
  • 协议:该字段仅在一个IP数据报到达其最终目的时才会用到。该字段值指明了IP数据报的数据分部应交给哪个运输层协议。
    -首部检验和:首部检验和用于帮助路由器检测收到的IP数据报中的比特错误。首部检验和是这样计算的:将首部中的每两个字节当作一个数,用反码运算对这些数求和。该和的反码(又被成为互联网检验和)存放在检验和字段中。路由器要对每个收到的IP数据报计算其首部检验和,并根据数据报首部中携带的检验和与计算得到的检验和是否一致,来检查是否出错。路由器一般会丢弃检测出的错误数据报,注意,在每台路由器上都必须重新计算检查和并存放在原处,因为TTL字段以及选项字段可能会改变
  • 源和目的IP地址:当源主机产生一个数据报时,它在源IP字段中插入它的IP地址,在目的IP地址字段中插入其最终目的地的地址。通常源主机经DNS查找决定目的地址。
  • 选项:选项字段允许IP首部被扩展。首部选项意味着很少使用,因此在每个数据报首部不包括选项字段中的信息能够节约开销。然而选项的存在的确是件复杂的事,因为数据报头长度可变,故不能预先确定数据字段从何处开始。而且还由于有些数据报要求处理选项,而有些数据报则不要求,故导致一台路由器处理一个IP数据报所需的时间变化很大。这些考虑对于高性能路由器和主机上的IP处理来说特别重要。由于这样或那样的原因,IP选项已在IPv6报头中不再采用了。
  • 数据(有效载荷):我们来看看最后也是最重要的字段,也是数据报存在的首要理由!在大多数情况下,IP数据报中的数据字段含有要交付给目的地的运输层报文段(TCP或UDP)。然而,数据字段也可承受承载其他类型的数据,如ICMP报文段。

IP数据报分片

不是所有的链路层协议都能承载相同长度的网络层分组。有的协议能承载大数据报,而有的协议只能承载小分组。例如以太网帧可承载不超过1500字节的数据,而某些广域网链路的帧可承载不超过576字节的数据。一个链路层帧能承载的最大数据量叫做最大传输单元(Maximum Transmission Unit MTU)因为每个IP数据报封装载链路层帧中,再从一台路由器运输到下一台路由器,故链路层协议MTU严格地限制着IP数据报的长度。对IP数据报长度的严格限制并不是主要问题,真正的问题是在发送方与目的地路径上的每段链路可能使用不同的链路层协议,且每种协议可能具有不同的MTU.

4.4.2 IPv4编址
  • 主机与物理机之间的边界叫做接口(interface)
  • 路由器的任务是从链路上接收数据报并将这些数据包从某写其他链路转发出去,所以路由器必须拥有两条或更多条链路与它连接。路由器与它的任意一条链路之间的边界也叫接口,一台路由器有多个接口,每个接口有一条链路,因为每台主机与路由器都能发送和接收IP数据报,所以IP要求每台主机和路由器接口都拥有自己的IP地址。因此,一个IP地址在技术上是与一个接口相关联的,而不是与包括该接口的主机或路由器相关联的。
  • 每个IP地址长度为32比特,因此总共有2的32次方个可能的IP地址。由于2的10次方可近似地表示成10的3次方,故容易看出约有40亿个可能的IP地址。这些地址一般按所谓点分十进制记法的方式书写
  • 主机的接口与路由器的一个接口的网络形成一个子网(subnet)
  • 因特网的地址分配策略被称为无类别域间选路(Classless Interdomain Routing CIDR 读作cider)CIDR将子网寻址的概念一般化了。
  • 形式为a.b.c.d/x的地址的x最高比特构成了IP地址的网络部分,并且经常被称为该地址的前缀(prefix)(或网络前缀)
  • 在采用CIDR之前,IP地址的网络部分被限制长度为8、16或者24比特,因为具有8、16或24比特子网地址的网络分别被称为A、B、C类网络,所以这种编址方案称为分类编址

主机和子网最初是如何得到其IP地址的


  • 1.获取一块地址
  • 2获取主机地址:动态主机配置协议

  • 一个组织一旦获得了一块地址,它就可为该组织内的路由器接口分配独立的IP地址。对于路由器接口地址,系统管理员手工配置路由器中的IP地址,也可以手工配置主机,但是这项任务目前更常使用动态主机配置协议(DHCP Dynamic Host Configuration Protocol)。利用DHCP,主机可以自动获取IP地址,或者被分配一个临时的IP地址
  • 由于DHCP具有能将主机连接进一个网络的自动化网络相关方面的能力,故它有常被称为即插即用协议
  • DHCP 是一个客户机/服务器协议

DHCP协议的4个步骤:

  • DHCP服务器发现:新到达的主机收到任务是发送一个要与其交互的DHCP服务器。这可以通过DHCP发现报文(DHCP discover message)来完成,
  • DHCP服务器提供:DHCP服务器收到一个DHCP发现报文时,用一个DHCP提供报文对客户机做出响应
  • DHCP请求:新到达的客户机从一个或多个服务器中选择一个,并用一个DHCP请求报文对选中的服务器进行响应,回显配置参数。
  • DHCP ACK:服务器用DHCP ACK 报文(DHCP ACK message)对DHCP请求报文进行响应,证实所要求的参数。

3.网络地址交换(NAT)

NAT使能路由器对于外界来说甚至不像一台路由器。NAT;路由器对外界的行为就如同一个具有单一IP地址的单一设备。

如果来自广域网到达NAT路由器的所有数据报都有相同的目的IP地址,那么该路由器是怎么样知道它应将一个给定数据报转发给哪个内部主机的呢?技巧就是使用NAT路由器上的一张NAT转换表(NAT translation table)并且在表项中包含了端口号和IP地址。

4.UPnP
NAT穿越正越来越多地由通用即插即用(UPnP)提供,UPnP是一种允许主机发现并配置临近NAT的协议。UPnP要求主机和NAT是UPnP兼容的。使用UPnP,在一台主机上运行的应用程序能够为某些请求的公共端口号请求一个NAT映射

UPnP允许外部主机使用TCP或UDP向NAT的主机发起通信会话

4.4.3 ICMP:互联网控制报文协议

ICMP最典型的用途是差错报告

4.4.4 IPv6

由于新的子网和IP节点以惊人的增长率连到因特网上(并被分配唯一的IP地址),32比特的IP空间即将用尽

IPv6中引入的最重要的变化表现在其数据报格式中:

  • 扩大的地址容量: IPv6将IP地址长度从32比特增加到128比特,这就确保全世界不会用尽IP地址。
  • 简单高效的40字节首部:40字节定长首部允许更快地处理IP数据报。一种新的选项编码允许进行更灵活的选项处理。
  • 流标签与优先级:IPv6有一个难以捉摸的定义。 IPv6首部中还有一个8比特的流量类型字段,该字段就像IPv4的TOS字段,可用于给出一个流中某些数据报的优先级,以便指明某些应用的数据包比其他应用的数据报有更高的优先权。
  • 版本号
  • 流量类型
  • 流标签
  • 有效载荷长度:该16比特值作为一个无符号整数,给出了IPv6数据报中跟在定长的40字节数据报首部后面的 字节数量。
  • 下一个首部:该字节标识该数据报中的内容需要交付给哪个协议。该字段使用与IPv4首部中协议字段相同的值。
  • 跳限制:转发数据报的每台路由器将对该字段内容减1.如果跳限制计数到达0,则该数据报将被丢弃。
  • 源和目的地址:IPv6 128比特地址的各样格式在RFC 4291 中进行了描述
  • 数据:这是IPv6数据报的有效载荷部分。当数据报到达目的地时,该有效载荷就从IP数据报中移出,并交给下一个首部字段中指定的协议处理。

以上说明了IPv6数据报中包括的各字段的用途。IPv4数据报中出现的几个字段在IPv6数据报中已不复存在:

  • 分片/重新组装:IPv6不允许在中间路由器上进行分片与重新组装。这种操作只能在源与目的地上执行。如果一台路由器收到的IPv6数据报因太大而不能转发到出链路上,则该路由器只需丢掉该数据报,并向发送方发回一个“分组太大”的ICMP差错报文即可
  • 首部检验和:因为因特网诸层中的运输承诺和数据链路层协议执行了检验操作,所以IP设计者可能觉得在网络层中具有该项功能实属多余,可以去除
  • 选项:选项字段不再是标准IP首部的一部分了,但它并没有消失,而是可能出现在IPv6首部中由下一个首部指出的位置上。

2.从IPv4向IPv6迁移

最直接的引入IPv6使能节点的方法可能是双栈。即IPv6节点也具有完整的IPv4实现。

另一种双栈方法,叫做建隧道。建隧道的基本思想如下:假定两个IPv6节点要使用IPv6数据报进行交互,但它们是经由中间IPv4路由器而互连的,我们将两台IPv6路由器之间中间IPv4路由器的集合称为一个隧道借助于隧道,在该隧道发送端的IPv6节点可将整个IPv6数据报放到一个IPv4数据报的数据(有效载荷)字段中。

4.4.5 IP安全性概述

由IPsec会话提供的服务包括

  • 密码技术协约:允许两台通信的主机对加密算法和密钥取得一致的机制。
  • IP数据报有效载荷的加密:当发送主机从运输层接收到一个报文段时,IPsec加密该有效载荷。该有效载荷仅能由接收主机中的IPsec解密。
  • 数据完整性:IPsec允许接收主机验证数据报的首部字段和被加密的有效载荷,以确保在数据报从源到目的地传输时没有被修改过。
  • 初始鉴别:当一台主机从某信任的源接收到一个IPsec数据报时,使该主机确信该数据报中的源IP地址时数据报的实际源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值