互联网体系结构的理解

一、网络体系结构的概念

计算机网络就是一组通过一定形式连接起来的计算机系统,它需要四个要素的支持,即通信线路和通信设备、有独立功能的计算机、网络软件的支持、能实现数据通 信与资源共享。计算机网络具有两大参考模型,分别为OSI模型和TCP/IP模型,其中OSI模型为理论模型,而TCP/IP模型则已成为互联网事实的工业标准,现在的通信网络一般都是采用TCP/IP协议簇,而应用编程都是采用socket套接字进行编程。

 二、网络分层模型

分层能使复杂的问题简单化,网络分层也是基于此原理。网络分层简化了网络设计,提高网络互联的标准化程度。网络分层是上一层都依赖于下一层,只有最底层才是物理的实际通信,其他对等层是虚拟通信。分层原理与方法如下图所示,网络分层模型涉及以下一些术语。

①  实体:每一层中的活动元素,可以是任何可发送或接收信息的硬件或软件进程,许多情况下,实体就是一个特定的软件模块。

②  对等实体:位于不同机器上同一层中的的实体。

③  服务提供者:n层(下层)是 n+1层(上层)的服务提供者。

④  服务用户:n+1层(上层)是n层(下层)的服务用户。

⑤  服务访问点(SAP):服务提供的地点,也即接口上相邻两层实体交换信息之处。

⑥  服务和协议的关系:服务是垂直的,协议是水平的。n层的服务用户只能看见n层的服务而无法看见n层的协议,在n层协议控制下两个对等实体间的通信使得n层能够向n+1层提供服务,要实现n层协议,需要使用n-1层提供的服务。


                                                    网络分层模型图

互联网两大网络模型(OSI模型和TCP/IP模型)都是基于分层原理实现的。通过网络分层,可以获得好处有:各层之间相互独立,相邻层间交互只通过接口, 使整个问题复杂度下降。结构上可分割开,各层都可以采用最合适的技术来实现。每一层功能简单,易于实现和维护。某一层改动时,只要不改变接口服务的关系, 其他层则不受影响,灵活性好。分层有利于促进网络协议的标准化。

三、互联网架构设计的具体目标

网络架构设计中的核心目标,那就是“effective(有效)”,但是却没有说明有效互联具体要达成什么样的目标。下面列表中设定了网络架构设计的详细目标:

1) 面临故障时的通信生存能力;

2) 支持多种类型的通信服务;
     3) 支持不同类型网络的接入;
     4) 支持资源的分布式管理;
     5) 要考虑成本效益因素;
     6) 主机接入互联网的代价要低;
     7) 支持网络资源的计费统计。

这些具体目标看起来是网络系统需求的一个完整列表。 可重要的是我们需要理解这些目标先后顺序的重要性。 如果顺序发生改变, 将会导致完全不同的网络架构。 例如, 对于军用网络, 意味着在传输数据时可能遭到敌方破坏的复杂情况, 那么通信生存能力就会成为首要目标, 而计费管理能力则是排在最后的目标。 在战争期间, 我们更关心如何尽快地将收集到的信息可靠地传递到目的地,而不考虑通信费用。 所以最初大家并不关心资源的计费管理,而对于商用网络架构的设计, 资源的计费管理应该放在首要位置。同理, 成本效益因素也是我们的目标, 但是排在资源的分布式管理和支持不同类型网络接入之后。 一些流行的商用网络会专门针对特定的传输介质做优化, 比如基于长途电话线实现的存储转发网络可以在很低的成本下通信良好, 但对于其他类型网络的支持可能却很差,因为商用网络架构设计会更多考虑成本效益问题。

四、面临故障时的通信生存能力

互联网最重要的目标是具有较强的生存能力或者说是自我恢复的能力。 如果两个实体通过互联网进行通信的过程中出现故障使得通信临时中断,它能够重新配置网络恢复通信服务, 然后实体间的通信可以继续, 而不用重新建立更高层的会话。 传输层协议并不总向客户端报告网络临时中断故障, 它总是假定故障可以很快恢复, 反复尝试后确定网络无法恢复时才向客户端报告。互联网架构选择的方案是把状态信息收集起来保存在 网络通信的两端 。这种方式称为“fate-sharing(生死与共)”。 它的意思是通信的一端消失了, 那么另一端也同时将自己保存的状态信息丢掉。传输层的状态信息保存在主机中, 主机连接到整个网络并且使用整个网络上的服务。“fate-sharing” 模式比“复制” 模式有两大优势:

第一,能够不受任何网络中间节点故障的影响;

第二,工程实现更容易。

“fate-sharing” 模式意味着两点:

第一, 中间分组交换节点或网关都不保存当前通信会话的状态信息, 换句话说, 它们是无状态的分组交换。 因此这种网络架构常常被称为数据报网络。

第二, 在这种架构中主机的作用更重要, 因为它不像有些网络本身提供可靠的数据传输服务, 而它利用主机端的传输层算法保证了数据被有序传输、 丢包重传和确认等, 而主机上的应用程序不必关心数据传输上的细节问题。

五、支持多种类型的通信服务

     互联网架构的另一个核心目标是可以支持多种类型的通信服务。 不同类型的通信服务在传输速度、 延迟、 可靠性等方面差别很大。传输服务中最传统的类型是一种双向可靠的数据传输服务。 这种服务又被称为“虚电路” 服务, 适用于远程登陆和文件传输这类应用, 这是在使用 TCP 的互联网架构中首要提供的服务。很早人们就认识到即使是传统的“虚电路”服务也无法满足多样性的需求。 比如其中的远程登陆和文件传输, 前者要求服务延迟不能太大,但对带宽并没有过高要求; 而对于文件传输,更关心的是数据的吞吐量而不是传输延时。 此前, TCP 尝试同时提供这两种服务,结果并不理想。最初 TCP 的设计目标是让它足够通用,但是由于网络环境的多样性,使得使用一个协议来承载不太可能。所以更好的做法是,建立一种服务,能够处理每个通过网络的数据,而不必要求每个字节都可靠地按序交付。

TCP 不适用的服务是实时通信传输,电话会议和电视直播就用到了这一服务。 实时通信传输服务的首要要求是, 在传输数据包时, 有更小和更平滑的延时, 而并不要求很高的可靠性。 也就是说在电话会议中传输过来的语音及时且连续就行, 不需要每个音节都很清晰准确。 大致过程是应用层将模拟语音数字化, 并打包这些二进制数据, 然后按序通过网络发送。 这些数据包必须有序才能保证还原成正确的语音信号。 如果一些数据包未按预期到达,那就不能及时的再现语音了。 在使用 TCP 的情况下做了一系列的研究对传输延时进行控制,最后惊讶地发现, 传输的可靠性才是导致延时的主要原因。 这是因为典型的可靠传输协议发现丢包时会发送一个重传请求, 并会推迟后续数据包的传输, 直到丢包重传成功了才会滑动发送窗口传输后续数据包。这种情况一旦发生会造成数倍的额外延时, 也可能会完全中断。导致最终得到的语音数据是完整的, 但却只能听到断断续续无法识别的声音。 这显然是不合适的, 事实上, 对于丢包的处理可以非常简单。 那就是当遇到丢包时使用一段空语音(没声音)替代,因为在大部分情况下这对听者分辨语音内容没有影响,然后继续传输后续数据。即使产生影响了, 要么可以使用高级纠错, 要么听者让对方重复一遍就行了。

互联网架构中对于多种服务的支持不应该由下层网络来提供, 否则会背离互联网架构设计的目标。 因而, 我们希望由主机和网关来提供算法, 将各种服务从基本的数据报服务(IP数据报) 中抽象出来。 

六、总结与展望

TCP/IP 协议已经在各个领域广泛应用并且衍生出了很多相似的架构。数据报很好地达成了大多数重要的设计目标,但是当我们试图完成后续一些目标的时候, 发现计费统计资源管理很难在基于数据报的环境下实现。 多数数据报是从源端到目的端传送的一系列数据包的一部分, 无法区分应用层次上独立的单元。 然而, 这一系列数据包对网关是透明的, 因为网关独立处理每个数据包。 因此, 必须对每个数据包独立进行计费统计资源管理, 由于丢包重传等对网关透明无法对应用实际传输的数据量进行准确统计。 在网络层利用数据报模型使得网络层丧失了重要的信息源, 也就很难达成计费统计资源管理等这些目标。这说明在下一代网络架构中可能有比数据报更好的抽象封装方式。 不论采用任何特定的服务类型, 它都可以标识从源端发送到目的端的一系列数据包, 可以用“流” 来描述这种抽象封装方式。 这种方式需要记住通过网络的数据流的特征属性, 但这却挑战了网络中间设备不记录通信状态信息的架构原则。 同时如前文所述, 网关的分布式管理控制与互联网协议越来越臃肿复杂的现状, 让我们开始考虑集中管理控制方式, 以及基于“流” 的抽象封装方式,这从根本上挑战了互联网架构。这么理解的话, SDN 和 OpenFlow 似乎在互联网架构变革的路上, 数据面和控制面分离的方法也为基于“流” 的抽象封装方式提供了技术支撑; 部分地颠覆分布式原则的集中管理控制(网络局部) 策略又为记录基于“流” 的通信状态信息带来了方便, 因为基于云计算的数据中心可以高效快速地存储和处理流状态信息, 从而使得网络更加智能。

 

附:

(1)TCP/IP模型   http://zh.wikipedia.org/wiki/TCP/IP或者百度一下 

(2)数据报意义  参考:互联网架构的设计哲学v1.0

(3)OSI模型   http://blog.csdn.net/yaopeng_2005/article/details/7064869

时间: 2024-10-12 23:24:27

互联网体系结构的理解的相关文章

互联网体系结构

谈到互联网的体系结构,就不能不说说它的历史,这样才能更深入的理解为什么互联网体系结构是今天这个样子. 从五十年代开始 ,计算机网络就已经开始了有了初步的发展.出现至今, 已有五十多年的历史 , 50年的历史中,不乏有许多各有所长 .甚至堪称典型的网络体系结构 . 网络技术与产品问世 , 并投入应用 . 例如 :首创网络体系结构概念的 I BM 公司的 SNA (系统网络体系结构 , 1974 年)和 SAA (系统应用体系结构 , 1987 年) ; D EC 公司的 DNA (D EC 网络体

一点对互联网的浅薄理解

1.从虚拟现实的视角看,互联网是一个虚拟的数字世界,即online.现实生活中存在的,在网络世界中基本有对应存在,一开始是一部分人用,主要是交流沟通的一种方式,渐渐用的人多了,各种商业活动也进入了这个领域.互联网成为一个各种生活的一种辅助平台,包括:信息的传播(文字.媒体).商务活动.社交消息交流.虚拟社区(文字.图片.音视频各种形式)等各种玩法.互联网逐步从虚拟迈入现实. 2.从数据.信息角度看,互联网是一个巨大的分布式数据库.不同的人与活动产生数据,在各个站点以不同的权限发布提供.所谓大数据

互联网体系结构漫谈

中国科大软件学院 高志鹏 原创文章转载请注明出处 最近读 <互联网架构的设计哲学> 中有几个很有意思的论点, 在互联网架构设计的核心目标——即有效(effective)!! 但是此处的有效具体是指哪些方面呢? 文章中列出了以下七个方面的内容: 1. 面临故障时的通信生存能力 2. 支持多种类型的通信服务 3. 支持不同类型的网络的接入 4. 支持资源的分布式管理 5. 考虑成本效益因素 6. 主机接入互联网的代价要低 7. 支持网络资源的计费统计 也就是说在互联网的设计之初,上述目标是按照重要

JVM体系结构-----深入理解内存结构

一.概述 内存在计算机中占据着至关重要的地位,任何运行时的程序或者数据都需要依靠内存作为存储介质,否则程序将无法正常运行.与C和C++相比,使用Java语言编写的程序并不需要显示的为每一个对象编写对应的内存分配和内存回收等相关的函数,这主要是得益于JVM的自动内存管理机制,使得Java开发人员可以从频繁的体力劳动中解放出来,只关注与自身的业务即可. 尽管JVM的自动内存管理机制大大提高了Java开发人员的编程效率,甚至从某种意义上说降低了内存泄漏和内存溢出的风险,但是Java开发人员过度的依赖于

Hbase体系结构理解

Hbase的基本体系结构的理解 首先hbase是hadoop的一个组件.而hadoop内部有很多的组件,这些组件几乎都依赖于hadoop最核心的两个东西建立起来的,一个是hdfs文件系统,另一个是mapreduce.当然hbase也不例外. hbase其实就是一个非关系型的数据库系统,可以将他和关系型数据库mysql类比一下,可能会便于理解.那么hbase的中的数据其实在物理层面,是存储在hdfs中的,当然其最最物理的模样其实就是hdfs中的block形态. (此图引用于百度百科)

互联网创业密码

互联网创业原创精品 互联网创业密码(互联网创业真人真事深度访谈实录:唱吧.胡莱和百思不得姐.春雨医生.视频达人秀.醋溜科技.爱记账.布丁.恺英.3W 咖啡.塔防三国志和贝瓦) 刘楠 胡皓 著   ISBN 978-7-121-23221-3 2014年6月出版 定价:49.00元 252页 16开 编辑推荐 汤道生 腾讯社交网络事业群总裁腾讯集团高级执行副总裁 庹祖海 文化部文化市场司副司长 王小川 搜狗 CEO 傅盛 猎豹移动 CEO 张志学 北京大学教授北大光华管理学院副院长 EMBA 中心

互联网金融的前世、今生和未来-系列三(今生):一场跨界的战争

互联网金融的前世.今生和未来--系列一:山雨欲来 互联网金融的前世.今生和未来-系列二(前世):金融与技术的首次亲密接触之金融电子化 今生:金融与互联网的深度融合--互联网金融 传统金融业与信息技术行业的首次亲密接触无疑取得了举世瞩目的成就,信息技术的进步极大地提高了金融机构的业务处理能力.然而,银行家们万万没有想到,进入21世纪后,新兴的互联网技术威力如此巨大,互联网公司竟然跨界进军金融业(尤其在中国),而且迅速做大规模,成为金融业的搅局者.微软公司创始人比尔·盖茨先生曾预言:"传统的银行业如

大妈们热衷的广场舞也成了互联网创业风口?

据统计,目前中国广场舞群体总数约在1亿人左右,广场舞似乎已经成为了国民健身运动的首选.虽然广场舞的爱好者绝大部分是大爷和大妈这个年龄层次的群体,但是如今已经渐渐地囊括了年轻人.小朋友甚至是外国人也加入了广场舞的大军,这意味着广场舞行业拥有巨大的商业潜力. 近几年广场舞从兴起到普及,其衍生出来的经济效益一直被创业者追捧.从2011年糖豆广场舞PC端上线,2012年就爱舞蹈网BBS发布,到2014年恰恰广场舞推广APP,再到2015年大福广场舞硬件启动,全民广场舞APP发布,舞动时代微信公众号切入,

PCI Express体系结构导读(1)

之前两篇介绍PCI的文章都没有仔细看下去,感觉介绍的视角不适合我,偏PCI规范本身.要从处理器的角度了解PCIE总线,现在来看这本强哥推荐的<PCIE体系结构导读> 前言 1)深入理解处理器体系结构是理解PCI总线的重要基础,超越PCI自身,去理解系统的局部总线. 2004年开始PCIE取代PCI和AGP,成为局部总线工业标准. PCI 并行共享架构, PCIE串行 刚刚接触PCI不要去读规范文档,规范文档适合查阅,不便于学习. 2)第一篇,PCI总线基础知识 第二篇,PCIE相关概念 第1章