吃透计算机网络(四)

这篇具有很好参考价值的文章主要介绍了吃透计算机网络(四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网络层能够被分为两个相互作用的部分:数据平面和控制平面

数据平面:即网络中每台路由器的功能,该数据平面决定到达路由器输入链路之一的数据报如何转发到路由器的输出链路之一。

控制平台:即网络范围的逻辑,该控制平面能控制数据报沿着源主机到目的主机到端到端路径中路由器之间的路由方式。

数据平面的主要作用是从其输入链路向其输出链路转发数据报,控制平面的主要作用是协调这些本地的路由转发动作,使得数据报沿着源和目的之间的路由路劲最终进行端到端传送。

网络层的主要功能有两个:转发和路由选择

转发:当一个分组到达路由器的一条输出链路时,该路由器必须将该分组移动到适当的输出链路。转发是在数据平面唯一实现的功能。转发是将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作,转发的时间尺度很短,通常用硬件来实现。

路由选择:当分组从发送方向接收方时,网络层必须决定这些分组采用的路由或者路径。计算这些路径的算法被称为路由选择算法。路由选择在网络层的控制平面实现。路由选择是确定分组从源到目的地所采取的端到端路径的网络范围处理过程。路由选择发生的时间尺度长的多,因此通常用软件来实现。

每台路由器中都有转发表。传统上路由选择算法决定插入该路由器转发表的内容。在一台路由器的路由选择算法与在其他路由器中的路由选择算法进行通信,来计算出它的转发表的值。也可以使用远程控制器计算和分发转发表以供每台路由器所使用。因为计算转发表并与路由器交互的控制器是用软件实现的,故也叫SDN(软件定义网络)。

路由器原理

路由器包含4个组件:输入端口、交换结构、输出端口、路由选择处理器。输入端口、输出端口和交换结构总是用硬件来实现的。

输入端口:在路由器中执行终结入物理链路的物理层功能。与位于入链路远端的数据链路层进行交互执行数据链路层功能。在输入端口执行查找功能,通过查询转发表决定路由器的输出端口,到达的分组通过路由器的交换结构转发到输出端口。

交换结构:交换结构将路由器的输入端口连接到输出端口。这种交换结构完全包含在路由器之中,即它是路由器中的网络。

交换的三种实现方式:
经内存交换:由CPU来完成,单次只能执行一次内存读/写,即使目的端口不同。
经总线交换:输入端口经总线向所有输出端口传送,并携带标签,只有与标签相匹配的输出端口可以保存。交换宽带受总线速率的	限制。
经互联网络交换:能够并行转发多个分组

输出端口:输出端口存储从交换结构接受的分组,并执行必要的链路层个物理层功能在链路上传输分组。当一条链路是双向的时,输出端口通常与输入端口成对出现在同一线路卡上。

路由选择处理器:路由选择处理器执行控制平面功能。在传统路由器中,它执行路由选择协议,维护路由选择表与关联链路状态信息,并计算转发表。在SDN路由器中,路由选择处理器负责与远程控制器通信,接受远程网络控制器的转发表,并在输入端口中安装。

分组调度策略

在输入端口和输出端口都可能出现排队。随着队列的增长,路由器的缓存空间最终将会耗尽,并且当无内存可用于存储到达的分组时将会出现丢包。

分组调度
先进先出(FIFO):按照分组到达输出链路队列的相同次序来传输分组。如果没有足够的缓存空间来容纳到达的分组,队列的分组丢弃策略确定该分组是否被丢弃或者从队列中删除其他分组以便为到达的分组腾出空间。

优先权排列:到达输出链路的分组被分类放入输出队列的优先权类。同一优先权类的分组之间通常以FIFO完成。

循环和加权公平排队:在循环排队规则下,分组像使用优先权排队那样被分类。然而,在类之间不存在严格的服务优先权,循环调度器在这些类之间轮流提供服务。循环和加权公平排队(WFQ)也以循环的方式为各个类提供服务。WFQ与循环排队的不同之处在于每个类在任何时间间隔内可能收到不同数量的服务。

路由算法

转发表(在基于目的地转发场景中)和流表(在通用转发场景中)是链接网络层的数据平面和控制平面的首要元素。转发表和流表的计算、维护和安装有控制平面来完成。有两种方式可以完成此任务:

控制模式

每路由器控制:在每台路由器中都运行路由选择算法,每台路由器都包含转发和路由选择功能。OSPF和BGP协议都是基于这种每路由的方式进行控制。

逻辑集中式控制:逻辑集中式控制器计算并分发转发表以供每台路由器使用。该控制器与每台路由器的控制代理CA进行交互,以配置和管理该路由器的转发表。CA功能很少,任务是与控制器通信并且按照控制器命令行事。CA之间不能相互交互,也不能主动参与计算转发表。SDN采用此种模式

路由选择算法:

集中式路由选择算法:用完整的、全局性的网络只是计算出从源到目的地址之间的最低开销路径。也就是算法以所有节点之间的连通性以及链路开销作为输入。具有全局状态信息的算法称为链路状态算法(LS算法),因为该算法必须知道网络中每条链路的开销。

分散式路由选择算法:路由器以迭代、分布的方式计算出最低开销路径,没有节点拥有关于所有网络链路开销的完整信息。每个节点仅有与其直接相邻节点链路的开销即可开始工作,通过迭代计算和信息交换,一个节点逐渐计算到达目的节点的最低开销路径。如距离向量算法(DV算法)

需要注意的是路由选择算法都属于每路由控制模式,只是计算路由的时间和方式不同。而逻辑集中式控制为SDN,由单独控制器计算并分发,路由器中并没有路由选择算法。

因特网中自治系统内部的路由选择:OSPF(开放最短路径优先)

因特网是ISP的网络,其中每个ISP都有自己的路由网络。自治系统AS通常由一处处在相同管理控制下单路由器组成。通常一个ISP路由器以及互联他们的链路构成一个AS,一个ISP内也可划分多个AS。AS内部使用OSPF,OSPF是一种链路状态协定,它采用洪泛链路状态信息和最低开销路径算法。每个路由器都会有关于整个自治系统的完整拓扑图,并在本地运行最短路径算法。

使用OSPF,路由器相自治系统内部所有其他所有路由器广播路由选择信息,而不仅仅是相邻路由器。每当一条链路发生变化时,路由器就会广播链路信息。即使链路未发生变化,也会周期性的广播链路状态。

ISP之间的路由选择:BGP(边界网关协定)
BGP将ISP粘合起来。BGP是一种分布式和异步的协议,与DV算法一脉相承。在BGP中,分组并不是路由到某个特定的目的地址,相反是路由到CIDR前缀(某个子网)。

SDN控制平面

SDN中将转发设备称为分组交换机,因为能够根据网络层源/目的地址、链路层源/目的地址和运输层、网络层、链路层的首部字段做出转发决定。
SDN有4个关键特征:
基于流的转发
数据平面和控制平面分离
网络控制功能
可编程的网络

网际协议(IP)

IP协议目前使用的有IPV4和IPV6

IPV4:

IPV4数据报格式:
版本号:4bit 规定了数据报的IP协议版本
首部长度:4bit一些IPV4数据报可包含一些可变数量的选项,这些选择在数据报首部中,首部长度用来确定IP数据报中载荷实际开始的地方。大多数情况下IP数据报不包含选项,所以首部长度为20字节
服务类型:区别不同类型的IP数据报,如实时与非实时.
数据报长度:16bit 所以IP数据报理论最大长度为65535,但是因为链路层限制,数据报很少超过1500字节。
标识、标志、片偏移:与IP分片有关系。并不是所有的链路层协议都承载相同长度的网络层分组。如以太网最大承载1500字节(最少46字节),而某些广域网链路承载不超过576字节。一个链路层能承载的最大数据量叫最大传输单元MTU,MTU严格限制IP数据报的长度。当某链路的MTU比IP的数据报小时,就需要将IP数据报分成多个较小的IP数据报。片在到达目的地运输层以前需要重装,为了网络内核保持简单的原则,数据报的重新组装在端系统进行,而不是网络路由器中。当生成一个数据报时,发送主机贴上标识号,发送主机通常将发送的每个数据报标识号+1。当路由器对数据报分片时,分片后的每个数据报具有初始的源地址、目的地址、标识号,重新组装时,根据标识号可以从确定哪些数据报原先时一块的。最后一片分片数据报的标志为0,其他的为1,当收到标志为0时,表示已经接受到最后一片。为了让目的主机确定是否丢失了一个片,且能按照正确的顺序重新组装片,使用偏移字段来指定该片放在初始IP报的那个位置。
寿命(TTL):TTL字段来确保数据报不会永远在网络中循环。每当一台路由器处理数据报时,TTL字段减1.当TTL为0时,数据包必须丢弃。
协议:该字段指示了IP数据报的数据部分应该交给那个特定的运输层协议,只有在到达最终目的地时才会使用。协议号是将运输层和网络层绑定在一起的粘合剂,而端口号是将运输层与应用层绑定在一起的粘合剂。
首部检验和:首部检验和用于帮助路由器检测收到的IP数据报中的比特错误
源和目的IP地址:当某源生成一个IP数据报时,在源IP字段中写入源的IP地址,在目的IP地址字段插入最终目的地址。
选项:选项字段允许IP首部被扩展,很少使用。
数据(有效载荷):大多数情况下,IP数据报中的数据字段包含交付给目的的运输层报文段(TCP/UDP)。然而也可承载其他类型的数据,如ICMP报文。

IPV4编址

每个IP地址长度为32bit,总共有2的32次方大约40亿个地址。这些地址采用点分十进制记法书写,即地址中的每个字节用它的十进制形式书写,各字节间以句点断开。IP地址是唯一的,在每个主机或者路由器上都具有全球唯一的IP地址(NAT后面的接口除外)。这些地址不能随意的自由选择,一个接口的IP地址的一部分需要由其连接的子网来决定。

当一台主机发送出一个目的地址为255.255.255.255的数据报时,该报文回交付给同一个网络中的所有主机。路由器也会有选择的向相邻的子网转发该报文。

动态主机配置协议DHCP
DHCP允许主机自动获取一个IP地址。可也配置DHCP以使得每次主机连接网络时得到相同的IP地址或者分配一个临时的IP地址。除了主机IP地址分配外,DHCP还允许一台主机得知其他信息,如他的子网掩码、第一跳路由器地址(默认网关)、以及本地DNS服务器地址。

DHCP分为4各步骤:
DHCP服务器发现:新的主机首先要找到与其交互的DHCP服 务器,DHCP发现报文可以完成此任务。在UDP分组中向端口67发送该发现报文,UDP被封装在IP数据报中,广播地址255.255.255.255,源地址0.0.0.0。所有子网的节点都会收到此发现报文。
DHCP服务器提供:DHCP服务器收到发现报文时,发送DHCP提供报文向客户做出响应。因为不知道是谁发送的发现报文,提供报文也是广播的,源地址为此DHCP服务器地址。提供报文包含发现报文的事务ID、向客户推荐的IP地址、网络掩码、IP地址租用期(IP的有效时间)。因为子网中可能有几个DHCP服务器,所以一个客户可能回收到多个提供报文,可以择优选择。
DHCP请求:新到达的客户从一个或者多个DHCP提供报文中选出一个,并向选中的服务器提供DHCP请求报文进行响应,回显配置参数。
DHCK ACK:服务器用DHCP ACK对DHCP请求报文进行响应,证实所要求的参数。

网络地址转换 NAT

IPV6

与IPV4相比,IPV6将地址长度从32bit增加到128bit,同时首部长度为40字节,增加了流标签。
吃透计算机网络(四)

版本:表示IP版本号
流量类型:区别不同类型的IP数据报,如实时与非实时.
流标签:20bit用于标识一条数据报的流,针对不同的流给予不同优先权
有效载荷长度:16bit 给出IPV6数据报中跟在定长首部后数据的长度
下一个首部:数据报中的数据交付给那个协议(TCP/UDP)
跳限制:转发数据报的每台路由器对该字段内容-1,如果跳限制为0,则丢弃
源和目的IP地址:各128bit
数据:数据报的有效载荷

IPV6和IPV4的区别:
分片/重新组装不存在。IPV6不允许在中间路由器上进行分片和重新组装,只能在源和目的地执行。当路由器收到太大的数据报会丢掉,并向发送方返回“分组太大”ICMP报文。发送方使用较小的长度重新发送报文。分片、重组比较耗时,因此IPV6大大提高了IP转发速度。
首部检验和。IPV6不在计算首部检验和,节省时间
选项:取消选项字段,被首部字段中的“下一个首部”所包含。即下一个首部可能是TCP、UDP,也可能是选项字段。删除选项i字段使的首部为定长的40字节

通用转发和SDN

通用转发对协议栈的多个首部字段进行匹配,这些首部字段是不同层次的不同协议相关联的,而基于目的地的转发仅仅匹配IP。动作包括转发到输出端口、重写首部值、负载均衡、丢弃等等。这些转发设备不是第三层的路由器或者第二层的交换机,更准确的描述应该是分组交换机。

ICMP:因特网控制报文协议

ICMP被主机和路由器用来彼此沟通网络层的信息,最典型的应用是差错报告。ICMP通常被认为是IP的一部分,但从体系上讲它位于IP之上,因为ICMP报文是承载IP分组之中。即ICMP报文用TCP/UDP一样,是作为IP的有效载荷。众多周知的ping程序即依靠ICMP,主机发送一个类型为8编码为0的报文到目的地,目的主机发送类型为0编码为0的回显回答。

当网络拥塞时,路由器向主机发送ICMP源抑制报文,以强制该主机减少发送速率。但TCP有自己的拥塞控制,不需要ICMP源抑制报文。

网络管理和SNMP

网络管理组件:
管理服务器是一个应用程序,通常有人的参与,并运行在网络运营中心的集中式网络管理工作站。管理服务器是执行网络管理活动的地方,在这里将网络管理的信息收集处理、分析和显示。
被管设备:主机、交换机、路由器等等。被管设备的关联信息被收集在管理信息库(MIB)中,被管设备还有网络代理管理,它是运行在被管设备中的进行,该进程与管理服务器通信,在管理服务器的命令和控制下在被管设备中采取本地行动。
网络管理协议,运行在管理服务器和被管设备之间,允许管理服务器查询被管设备状态,并经过网络代理采取行动。简单网络管理协议SNMP就是一个此协议,是一个应用层协议,用于在在管理服务器和被管设备的代理之间传输网络管理和控制报文。文章来源地址https://www.toymoban.com/news/detail-455885.html

到了这里,关于吃透计算机网络(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机网络八股】计算机网络(一)

    计算机网络体系可以大致分为一下三种,OSI七层模型、TCP/IP四层模型和五层模型。 OSI七层模型:大而全,但是比较复杂、而且是先有了理论模型,没有实际应用。 TCP/IP四层模型:是由实际应用发展总结出来的,从实质上讲,TCP/IP只有最上面三层,最下面一层没有什么具体内

    2024年02月11日
    浏览(43)
  • 计算机网络——计算机网络体系结构

    1.1 概念 一般认为,计算机网络是一个将分散的,具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享的信息传递的系统,简而言之,计算机网络就是一些 互联的,自治的计算机系统的集合 1.2 组成 (1)从组成部分:由 硬件,软件,

    2024年02月15日
    浏览(48)
  • 第一章 计算机网络概述【计算机网络】

    2023-3-26 17:07:26 以下内容源自《【计算机网络】》 仅供学习交流使用 计算机网络 计算机网络(第8版) 谢希仁 编著 1.2.1 网络的网络 计算机网络〈简称为网络)由若干结点(node) R和连接这些结点的链路(link)组成。 1.2.2互联网基础结构发展的三个阶段 请读者注意以下两个意思相

    2024年02月13日
    浏览(46)
  • 【计算机网络原理】第一章:计算机网络概述

    1、计算机网络的诞生 从技术范畴来看,计算机网络是计算机技术与通信技术相互融合的产物。 2、计算机网络的定义 计算机网络是互连的、自治的计算机的集合 1)自治: 互连的计算机系统彼此独立,不存在主从或者控制与被控制的关系。 2)互连: 利用通信链路连接相互独立

    2024年04月08日
    浏览(48)
  • 计算机网络-笔记-第一章-计算机网络概述

    一、第一章——计算机网络概述 二、第二章——物理层 三、第三章——数据链路层 四、第四章——网络层 五、第五章——运输层 六、第六章——应用层 目录 一、第一章——计算机网络概述 1、因特网概述 (1)网络、互联网、因特网 (2)因特网发展的三个阶段 (3)因特

    2024年02月11日
    浏览(49)
  • 【计算机网络】—— 详解码元,传输速率的计算|网络奇缘系列|计算机网络

    🌈个人主页:  Aileen_0v0 🔥系列专栏:  一见倾心,再见倾城  ---  计算机网络~ 💫个人格言: \\\"没有罗马,那就自己创造罗马~\\\" 目录 码元  速率和波特 思考1   思考2  思考3 带宽(Bandwidth)  📝总结 码元 是指用一个 固定时长的信号波形 _(数字脉冲),代表不同离散数值的基本波

    2024年02月04日
    浏览(55)
  • 【计算机网络】第一章、计算机网络体系结构

    1.计算机网络的组成 从不同的角度来看 内容 从组成上看 硬件、软件、协议 从工作方式上岸 边缘部分、核心部分 从功能上看 通信子网、资源子网 2.计算机网络的分类 角度 内容 分布范围 广域网、城域网、局域网、个域网 传输技术 广播式网络、点对点网络 拓扑结构 总线型

    2024年02月07日
    浏览(52)
  • 【计算机网络】计算机网络中的基本概念

    网络互连就是将多台计算机连接在一起,完成数据共享。数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。根据网络互连的规模不同,可以划分为局域网和广域网。 局域网,即 Local Area Network,简称LAN。Local 即标识了局域网是本地,局部组

    2024年02月06日
    浏览(48)
  • 初识计算机网络 | 计算机网络的发展 | 协议初识

    1.计算机网络的发展 “矛盾是普遍存在的,矛盾是事物联系的实质内容和 事物发展的根本动力 !” 计算机在诞生之初,在军事上用来计算导弹的弹道轨迹!在发展的过程中( 商业的推动,国家政策推动 ),计算机的应用场景被发现!被应用于各种各样的场景当中! 现在,

    2024年01月25日
    浏览(47)
  • 【计算机网络】——前言计算机网络发展的历程概述

     ========================================================================= 主页点击直达: 个人主页 我的小仓库: 代码仓库 C语言偷着笑: C语言专栏 数据结构挨打小记: 初阶数据结构专栏 Linux被操作记: Linux专栏 LeetCode刷题掉发记: LeetCode刷题 算法: 算法专栏  C++头疼记: C++专栏 计算

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包