array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 计算机网络(7)--- 五层协议体系结构 - 爱码网

        OSI七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。TCP/IP协议体系结构则不同,但它得到了广泛应用。TCP/IP是一个四层的体系结构,它包含应用层、运输层、网际层和网络接口层(叫网际层是因为该层是为了解决不同网络的互连问题),不过从本质上来讲,TCP/IP只有最上面的三层,因为最下面的网络接口层并没有什么具体内容。因此在学习计算机网络时往往综合OSI和TCP/IP的优点,采用一种五层协议的体系结构

计算机网络(7)--- 五层协议体系结构 

 

现在自上而下地简单介绍一下各层的主要功能。

        (1)、应用层(application layer)  应用层时体系结构中的最高层,直接为用户的应用进程提供给服务。这里的进程就是指正在运行的程序。在应用层中的协议有很多,例如支持万维网应用的HTTP协议、支持电子邮件的SMTP协议,支持文件传送的FTP协议等等。


        (2)、运输层(transport layer)  运输层的任务就是负责向两个主机中的进程之间的通信提供服务。由于一个主机可以同时运行多个进程,因此运输层具有复用和分用的功能。复用就是多个应用层进程可同时使用下面的运输层的服务;分用则是运输层把接收到的信息分别交付给上面的应用层中的相应进程。

        运输层主要使用一下两种协议:

                ①、传输控制协议TCP(Transmission Control Protocol)---面向连接,数据传输单位为报文段(segment),能够提供可靠的交付。

                ②、用户数据协议UDP(User Datagram Protocol)---无连接的,数据传输的单位是用户数据报,不保证可靠的交付,只能提供“尽最大努力交付”(best-effort delivery)


        (3)网络层(network layer)  网络层主要负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。另一个任务就是选择合适的路由,使源主机运输层所传下来的分组能够通过网络中的路由器找到目的主机。

        注意:运输层的“用户数据报UDP”和网络层的“IP数据报”不要弄混淆。另外,无论在那一层传送的数据单元,习惯上都可笼统地用“分组”来表示。

        因特网是个很大的互联网,它由大量的异构(heterogeneous)网络通过路由器相互连接。其主要的网络层协议是无连接的国际协议IP(Internet Protocol)和许多种路由选择协议,因此因特网的网络层也叫做国际层或IP层。


        (4)、数据链路层(data link layer)  简称链路层。数据在两个主机之间的传输是在一段一段的链路上传送的。在两个相邻节点之间(主机和路由器 或 两个路由器之间)传送数据时直接传送的(点对点)。这时就需要使用专门的链路层协议。在两个相邻结点间传输数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻节点的链路上“透明”地传送帧中的数据。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。

透明”是一个重要术语。它表示无论什么样的比特组合的数据都能够通过这个数据链路层,就好像数据链路层对这些数据来说时透明的。

“控制信息”使接收端能够知道一个帧从那个比特开始到那个比特结束。这样,目的主机的数据链路层在接收到一个帧之后,就可以从中提取出数据部分,上交给网络层。


        (5)、物理层(physical layer)  物理层上所传输的数据单位时比特。物理层的人物就是透明的传送比特流。也就是说发的是1,接收方收到的就是1而不是0。因此,物理层需要考虑用多打的电压代表“1”或“0”,以及接收方如何识别发送方所发送的比特。

        注意:传送比特流时是从首部开始传送的,另外传递信息的物理媒体,如双绞线、同轴电联、光缆、无线信道等,并不在物理层协议之内,而是在物理层协议的下面。

计算机网络(7)--- 五层协议体系结构 


        在研究开放系统中的信息交换时,往往使用实体(entity)一词表示任何可发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。

        协议是控制两个对等实体或多个对等实体(实体就是两机之间处于同一层的软件或应用)进行通信的规则的集合。协议的语法方面的规则定义了所交换的信息格式,而协议的语义方面的规则定义了发送者或接收者索要完成的操作,例如,在何种条件下数据必须重传或丢弃。

        在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议还需要使用下面一层所提供的服务。协议和服务在概念上是很不一样的。首先,协议的实现保证了能够向上一层提供服务。使用本层服务的实体只能看见服务而无法看见下面的协议。下面的协议对上面的实体是透明的。

        其次,协议是“水平的”,即协议时控制对等实体之间的通信规则。但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。另外,只有那些能够被高一层实体“看得见”的功能才能被称之为“服务”。上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令在OSI中被称为服务原语

        在相邻两层的实体进行交互的地方,通常称为服务访问点SAP(Server Access Point)。服务访问点SAP是一个抽象的概念,它实际上就是一个逻辑接口。这种层间接口和两个设备之间的硬件接口(并行或串行)并不一样。OSI把层与层之间交换的数据单位称为服务数据单元SDU,它可以与PDU不一样,例如,可以是多个SDU合成为一个PDU,也可以是一个SDU划分为几个PDU。这样,任何相邻两层之间的关系可概括为如下图所示:

计算机网络(7)--- 五层协议体系结构

相关文章: