1 网络的和核心部分与边缘部分:
如下图1所示:
位于网络边缘的主机和位于网络核心部分的路由器都是计算机,但是它们的作用是不一样的。
主机是为用户进行信息处理,并且可以和其他主机通过网络进行信息交换。
路由器则是用来转发分组的,即进行分组交换。
图1
何为分组交换呢?
通常我们把客户端A传输给客户端B的整个数据块成为一个
报文。先把较长的报文划分成为一个个更小的等长数据段,在每一个数据段前面,加上一些必要的控制信息组成的首部就构成了一个
分组。具体如图2所示
图2
路由器获得每个分组,然后从首部获取下一跳的信息,把分组交给下一个路由器,经过一系列不同的路由器最终达到边缘用户(这里可以理解为主机)。
那么分组转发有什么缺点呢?
分组转发时可能会出现一个路由器缓存了多个分组,这就造成了分组排序转发的问题。也有可能在转发时分组可能会出现丢失,这个需要一些协议来保证。
2 计算机网络的性能
速率:计算计发出的信号都是数字形式的,比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位,比特就是二进制中的0或者1,计算机网络中的速率也是比特流(bit/s),也有其他单位例如100M其实含义是100Mb/s。这里也需要注意的是1字节=8bit,一般我们常见的是字节Byte
带宽:表示通信链路允许通过信号的频带范围就称为线路的带宽,在计算机网络中,带宽来表示网络的通信线路传送数据的能力,因此网络带宽表示在单位时间内从网络中某一点到另一点所通过的最高数据率。
时延:指的是一个报文或者一个分组甚至是一个比特从网络一端传输到另一端所需的时间。
发送时延:是指主机或者路由器发送数据帧所需要的时间;也就是从数据帧的第一个比特算起,到该帧的最好一个比特结束。
传播时延:传播时延(propagation delay)是电磁波在信道中传播一定的距离需要花费的时间。传播时延的计算公式是
例如,1000km长的光纤线路产生的传播时延大约为5ms。
往返时间RTT:它表示从发送方发送数据开始,到发送方收到来自接收方的确认(接收方收到数据后便立即发送确认),总共经历的时间。
3 计算机网络体系结构的形成
计算机网络是个非常复杂的系统,为了说明这一点举一个最简单的例子:连接在网络上的两台计算机要互相传送文件。
显然,在这两台计算机之间必须有一条传输通道。仅仅有传输通道表示,这两台计算机有传输的条件了。那么如何正确传输呢?
1、 发起通信的计算机必须将数据通信的通路进行激活(activate)。所谓“激活”就是要发出一些信令
2、要告诉网络如何识别接收数据的计算机。
3、发起通信的计算机必须查明对方计算机是否已开机,并且与网络连接正常。
4、发起通信的计算机中的应用程序必须弄清楚,在对方计算机中的文件管理程序是否已做好接收文件和存储文件的准备工作。
5、对出现的各种差错和意外事故,如数据传送错误、重复或丢失,网络中某个结点交换机出故障等,应当有可靠的措施保证对方计算机最终能够收到正确的文件
6、对出现的各种差错和意外事故,如数据传送错误、重复或丢失,网络中某个结点交换机出故障等,应当有可靠的措施保证对方计算机最终能够收到正确的文件。
至于满足以上六点,才可以保证两台计算机能够完成通信。但是我们不能写一个层来完成所有东西吗,就像代码中不能只写一个main函数,那么你的代码就会太臃肿了。这里也是一样的,我们任务进行拆分,将其分解到不同层次,每个层次完成特定功能,最后完成所有任务。
假设:我们再主机1和主机2之间通过一个通信网络传输文件,那么就需要做以下工作。
文件传输层:工作与传送文件有关,发送端的文件传送应用程序应当确信接收端的文件管理程序已做好接收和存储文件的准备,如果有文件格式不同,那么两个主机都要具备文件转换的能力。
然而我们并不想让文件传输模块独立完成全部工作细节,这样会使得文件传送模块特别臃肿。因此我们定义了通信服务层。
同样道理再构造一个网络接入模块。总的如下图3 所示。
图3
这样做有什么好处呢?
各层直接相互独立,减小的耦合性,提高了扩展,灵活性强。
3.1现代网络结构
现代网络结构已经抛弃了OSI的七层架构,而采用TCP/IP协议架构,或者是五层协议架构。
图4
应用层:是体系架构中的最高层,也是我们程序员编写代码的地方。应用层的任务是通过应用进程间的交互来完成特定的网络应用。因此应用层的协议是定义在应用进程间通信和交互的规则。
传输层:运输层的任务就是负责两个主机中进程之间的通信提供通用的数据传输服务。
传输控制协议TCP (Transmission Control Protocol)——提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段(segment)
用户数据报协议 UDP (User Datagram Protocol)——提供无连接的、尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。
网络层:为不同分组交换网上的不同主机(包括路由器和终端)在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包(packet)进行传送。
数据链路层:我们知道两台主机之间的数据传输,总是在一段一段链路上传输的这就需要我们专门的链路层协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)
物理层:在物理层上所传数据的单位是比特。因此物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚应如何连接
总体来说,每个层次负责自己的工作,整体协调灵活性好。
4 实体、协议、服务和服务访问点
实体(entity)这一较为抽象的名词表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
此处要理解的是,协议是“水平的”服务是“垂直的”。
在同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点 SAP (Service Access Point)
总体解析如图5所示。
图5
5 图解两台主机交互
这里的两台主机并不是你的笔记本A 和 笔记本B,而是笔记本AB的两个进程。具体如下图6所示,
主机A 的某个进程 首先要向主机B中某个进程建立连接。同时建立连接的过程,也依赖于主机A与主机B的其他层。从这个角度而言,主机A的运输层,网络层等为主机A的应用层提供服务(这就是服务为什么是垂直的)。当主机A中进程与主机B中进程建立连接以后,就要发送数据,这并就需要规定一定的协议(这就说明了协议是水平的)
版权归原作者 兜兜转转m 所有, 如有侵权,请联系我们删除。