1.网络
网络的概念是什么?它是由若干节点和连接节点的链路组成,那么什么是节点?节点是包括计算机在内和集线器、交换机、路由器等等一些设备。网络分为三部分,包括电信网络、有线电视网络和计算机网络,随着技术发展,电信网络和有线电视网络已经融入计算机网络的范畴,这里我们主要了解一下计算机网络。
这里还有好几个概念,像互联网、因特网等,我们大概看一下之间的关系:
网络和网络通过路由器连接起来就构成了互联网,可以说互联网是‘网络的网络’,而因特网则是世界上最大的互联网络。网络把许多计算机连接在一起,而因特网则把许多网络连接在一起。
2.因特网的组成
因特网从其工作方式来看可以划分为两大块:
边缘部分:所谓边缘部分实质就是用户所直接使用的用来进行传输数据、资源共享的。
核心部分:由网络和连接网络的路由器组成,为边缘部分提供服务。
首先是边缘部分,通常我们所说的端(主机)到端(主机)之间的通信,实质为主机上的进程在和另一台主机上的进程进行通信,可以简称为计算机之间通信。
程序之间通信方式通常划分为两种:C/S和P2P方式
C/S方式:客户是服务请求方,服务器是服务提供方。服务请求方和服务提供方都要使用网络核心部分提供的服务。
P2P方式:对等连接方式,是指两个主机在通信时并不区分哪一个是服务请求方和提供方。只要两个主机都运行了对等连接软件(P2P)软件,它们就可以进行平等的、对等连接通信。
再者是因特网的核心部分,在核心部分起特殊作用的是路由器,路由器是实现分组交换的关键构件,其任务是转发收到的分组。
数据交换有三种方式:
电路交换
报文交换
分组交换
电路交换:
两部电话要进行语音通信可以是两部电话机直接相连,构成一条通路,相互之间进行通信,但是这样有n部电话要两两相连,就需要n(n - 1)/2条链路,显然这样是不可能的,为了方便,就把每部电话机都连接到交换机上,在电话交换机内部进行线路的选择,这就是电路交换。
如下图(图片来自网络,如有侵权请联系本人删除):
伴随着电话数量的增多,仅凭中心节点的交换机进行线路选择必定不能支撑,所以就需要使用彼此连接起来的交换机完成全网的交换任务。
但是,即便是使用交换机将各个区域的电话机相连,每两部电话机通信时都会独占端到端的通信资源,他人不可使用:
然后出现了报文交换、分组交换,这两种交换方式都基于存储转发的原理,将上一节点的数据保存后查找转发表,寻找下一节点的地址,转发出去,两者的区别在于报文交换是一整块信息一次性统一接受,早期在电报通信应用,而分组交换将一整块数据分为多个分组,分多次转发出去,多个分组之间的发送相互不会影响,每个分组都会携带一定的信息,保证传输的有效性。
分组的划分以及转发有一定策略,这里暂不详述。
下面一张图对三者进行了比较,也方便理解:
3.网络分类
按照作用范围:
- 广域网(Wide Area Network)
- 城域网(Metropolitan Area Network)
- 局域网( Local Area Network)
- 个人区域网(Person Area Network)
按照使用者:
- 公用网:大众付费使用,由电信公司建造的大型网络
- 专用网:为某部门或单位特殊业务建造的网络,如军队、电力系统
4.网络性能
速率: 连接在计算机网络上的主机在数字信道上传送数据的速率,也称数据率或比特率。单位b/s (bps).
带宽: 带宽有两种含义,一种是指某种信号具有的频带宽度,是指信号的频率范围,另一种是在计算机网络中,表示网络通信线路所能传输的数据能力,也就是单位时间内从网络中某一节点到另一节点所能通过的“最高数据率”。
吞吐量: 单位时间内通过某个网络(信道、接口)的数据量。带宽所表示的额定速率通常也是吞吐量的绝对上限值,但往往实际应用中也达不到上限值。
时延: 数据从网络一端到另一端所需的时间,包括这样几个部分:发送时延、传播时延、处理时延、排队时延、
时延带宽积: 传播时延和带宽相乘,表示链路容纳的比特数目。如同圆柱的体积一样,带宽表示截面积,传播时延表示长度,其中的体积就表示整个链路的容量(比特数目)。
往返时间(RTT): RTT是比较常用的性能指标,通常我们在使用Ping命令的时候就会看到,表示数据从发送开始到接收到来自接收方的确认经历的总时间。
利用率: 包括信道利用率和网络利用率两种,信道利用率表示某个信道有效使用时间的百分比,而网络利用率则是全网络信道利用率的加权平均,利用率并非越高越好,较高的利用率必然带来较高的时延。
5.计算机网络的体系结构
计算机网络的体系结构是计算机网络及其构件所应完成的功能的精确定义,即就是各层及其协议的集合。
计算机网络的体系结构通常有如下几种表示:
各种体系结构之间的分层关系如上图各层之间的对等排列一样,是一些协议或者标准的细化或者整合。
分层结构将计算机网络要实现的功能需求划分给每一层去实现部分功能,但各层之间功能的实现又需要相互之间配合,通常上层需要下层提供的服务。
通常来说,各层完成的功能(各层可以只完成一种功能也可完成多种功能)主要是:
差错控制
流量控制
分段和重装
复用和分用
连接建立和释放
差错控制和流量控制是网络运行所必须的一些策略,是保证网络有序,稳定的运行的基础。分段和重装是在发送或接收数据时,将数据块划分为多个小块或者将多个小块组装成为一个整体的数据块。
复用和分用则是在高层会话中复用底层的连接,然后在接收端再进行分用。比如,HTTP请求是建立在TCP连接之上的,在客户端中,连续多次的请求可能复用的是同一次建立起来的TCP连接,或者复用可以这样认为:多个高层的连接复用低层的连接或线路资源。最后一点连接的建立和释放就很明了了,通信双方在交换数据前先建立一条逻辑连接,数据传送结束后释放连接。
对上面说到的三种不同的体系结构,可以浅显的先认为彼此之间是整合和细化的关系。上面三种体系结构中,七层模型是OSI定义的,只是作为一种标准存在,为其它的体系结构做一个借鉴,TCP/IP的四层模型才是实际中应用的体系结构,而在学习交流时,通常使用五层模型进行讨论。
在分析网络模型时,实质上我们分析的较多的是体系结构中各层的协议。对于上述三种不同的体系架构,我们大致按照分层的思想对每一层进行简单的理解。
应用层:顾名思义,是直接为用户的应用进程提供服务,在这一层的协议有很多,如HTTP、SMTP、FTP等。这些协议往往和正在运行的应用程序相关联,我们也可以自定义应用层协议,因为我们自定义的协议就是用于我们自己的应用程序服务的,像HTTP、SMTP、FTP这些协议只是众所周知的通用协议而已。(在五层协议和TCP/IP的体系结构中没有表示层和会话层,实际上这两层的功能基本已经包含在应用层,所以这里暂不赘述)
运输层:为两个主机中进程之间的通信提供服务。运输层主要包含两个协议TCP(传输控制协议)和UDP(用户数据报协议)。
网络层:联系上面各层实现的功能,在这一层实现就是分段和重装(IP数据报分片和组装)的功能,当网络层接收到运输层到来的数据时会根据数据报的大小以及链路所允许的MTU(最大传输单元)来决定是否进行分片。同时,在网络层还承担着选择路由的责任,数据报到达网络层,需要经过网络层比较计算选择合适的端口(接口、下一跳)转发出去。在该层运行着IP(网际协议)以及多种路由选择协议。
数据链路层:我们认为主机之间的数据传输是在一段一段的链路上传输的,两个相邻节点之间就构成一条链路,两个相邻的节点可以是主机和路由器或者路由器和路由器之间的。它们之间的数据传送认为是点对点的,链路层将网络层的IP数据报组装成帧,在相邻的链路上透明传输。
物理层:首先,需要纠正一个错误的概念,传递信息的物理介质(物理媒体)并不在物理层协议之内,而在物理层协议之下,如双绞线、光缆等。在该层的任务就是传送比特流,就需要考虑电压的高低和比特流的0、 1表示。
6.TCP/IP的体系结构
通常,我们所说的TCP/IP协议是TCP/IP协议族
上述是TCP/IP协议族的一部分协议,从上图可以看出,TCP/IP占据着整个协议族的一大部分。
在网络传输的过程中,我们不应当称某个设备工作在第几层,而是设备包含了几层的功能。如下:
主机A、B在通信的过程中中间的路由器只包含了网络接口层和网际层的功能,并没有运输层和应用层。所以在学习计算机网络的过程中,我们不能针对设备去学习,而是应当紧扣分层的思想,把握各层之间的联系和每层的功能去学习。
初识,不足之处还望指正!