前言
本文是博主首次学习网络知识后进行的总结,文章内容包括了解网络发展背景,对网络的概念有基本认识、了解网络协议的意义,理解OSI七层模型和TCP/IP五层结构模型,了解网络传输的基本流程、理解封装和分用。后续将会继续更新网络相关的内容。
一、计算机网络发展
计算机网络是计算机技术和通信技术相结合的产物,是信息化社会的主要技术设施。1946年,世界上第一台计算机ENIAC在美国诞生。随着微电子技术的不断发展,也使计算机网络经历了从简单到复杂、从低级到高级、从地区到全球的发展过程,计算机网络从为解决远程计算信息数据的搜集和处理而形成的联机系统开始,发展到以资源共享为目的而相互连接起来的计算机群,最终形成目前遍布全球各个角落的国际互联网,也就是因特网,一共经历了四个发展阶段。
第一阶段:面向终端的计算机网络
第一阶段的计算机网络特点是其系统基本由主机和系统构成,所有的数据处理和通信处理都由主机完成,从而导致了主机通信的开销较大,通信线路的利用率低下,对主机的系统依赖性较高。
第二阶段:多台计算机互连的计算机网络
这一阶段的标志性成果是提出了分组交换技术以及形成了TCP/IP协议的雏形。该阶段具有的特点是以分组交换网为中心、建立了计算机与计算机的互连与通信、实现了计算机资源的共享。但是也仍有不足的地方,比如没有形成统一的互连标准,使网络在规模与应用等方面受到了限制。
第三阶段:面向标准化的计算机网络
国际标准化组织ISO于1984年正式颁布了一个称为开放系统互连基本参考模型的国际标准,它是公认的计算机网络系统结构的基础,在这个阶段也形成了以TCP/IP为核心的因特网。
第四阶段:面向全球互连的计算机网络
这一阶段,在全球范围内极大地推动了计算机网络及其应用的发展,使计算机网络进入到一个新的发展阶段,各个国家建立了自己的信息高速公路,这些信息高速公路的互连就构成了全球互连的因特网。
二、初识“协议”
1. 协议的概念
所谓协议,简而言之就是一种约定。网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合,而对等实体通常是指计算机网络体系结构中处于相同层次的信息单元。
一般系统网络协议包括五个部分:通信环境,传输服务,词汇表,信息的编码格式,时序、规则和过程。1969年美国国防部建立最早的网络——阿帕计算机网络时,发布了一组计算机通信协议的军用标准,它包括了五个协议,习惯上以其中的TCP和IP两个协议作为这组协议的通称。
网络协议是由三个要素组成:
- 语义:语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。
- 语法:语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。
- 时序:时序是对事件发生顺序的详细说明。(也可称为“同步”)。
人们形象地把这三个要素描述为:语义表示要做什么,语法表示要怎么做,时序表示做的顺序。
2. 协议分层
网络协议是网络上所有设备之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。
一台设备上的第 n 层与另一台设备上的第 n 层进行通信的规则就是第 n 层协议。在网络的各层中存在着许多协议,接收方和发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息。网络协议使网络上各种设备能够相互交换信息。常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。在局域网中用得的比较多的是IPX/SPX.。用户如果访问Internet,则必须在网络协议中添加TCP/IP协议。
例如打电话的例子:
打电话的时候,两个人并不是之间进行沟通的,而是A所说的话由A的电话所记录,经过一系列的编码转码后,通过通信网络将信息从A的电话传递到B的电话中,再进行相应的编码转码,将信息转换成语音,B才能听到A所说的话。
人与人之间通信我们可以将其称为语言层;而电话和电话之间通信使用的是电话系统相关的一些接口,我们可以将其称之为通信设备层。在这个例子中,我们的协议只有两层, 但是实际的网络通信会更加复杂, 需要分更多的层次。
三、OSI七层模型
OSI七层模型概念:
OSI七层模型,是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。
- OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。
- 该模型把网络从逻辑上分为了7层,每一层都有相关、相对应的物理设备,比如路由器,交换机等。
- OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输。
- OSI 七层模型最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
自顶向下的七层模型:
分层名称 |
功能 | 每层功能概述 | |
7 | 应用层 | 针对特定应用的协议 |
6 | 表示层 | 设备固有数据格式和网络标准数据格式的转换 |
5 | 会话层 | 通信管理。负责建立和断开通信连接(数据流动的逻辑通路)。管理传输层以下的分层 | |
4 | 传输层 | 管理两个节点之间的数据传输、负责可靠性传输(确保数据被可靠地传送到目标地址) |
3 | 网络层 | 地址管理与路由选择 | |
2 | 数据链路层 | 互联设备之间传送和识别数据帧 |
1 | 物理层 | 以 “0”、“1” 代表电压的高低以及灯光的闪灭、界定连接器和网线的规格 |
为什么现在的网络最后采用了TCP/IP参考模型而没用OSI参考模型?
首先,OSI模型出现的比TCP/IP出现的时间晚,在OSI开始使用前,TCP/IP已经被广泛的应用了。如果要换成OSI模型也不太现实。其次是OSI没有实践,该协议实现起来很复杂,很多公司不愿意用OSI。与之相比的TCP/IP协议更加简单,实现起来也相对容易,更符合市场的要求。综合各种因素,最终OSI模型没有被广泛的应用。
四、TCP/IP五层(四层)模型
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
TCP/IP五层协议将应用层、表示层、会话层并作应用层,从TCP/IP五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议就理解了整个互联网通信的原理。
- 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。网络编程主要就是针对应用层。
- 传输层:负责两台主机之间的数据传输.。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
- 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
- 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,、无线LAN等标准。交换机(Switch)工作在数据链路层。
- 物理层:负责光/电信号的传递方式。 比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的WIFI无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。
【注意】
物理层我们考虑的比较少,因此很多时候也可以称为 TCP/IP四层模型。
TCP/IP五层模型与OSI七层模型之间的关系:
我们可以发现,两种模型的下面四层几乎是没有区别的。
一般而言:
- 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容;
- 对于一台路由器,它实现了从网络层到物理层;
- 对于一台交换机,它实现了从数据链路层到物理层;
- 对于集线器,它只实现了物理层。
但是并不绝对,很多交换机也实现了网络层的转发;很多路由器也实现了部分传输层的内容(比如端口转发)。
五、网络传输基本流程
1. 网络传输流程图
同一个网段内的两台主机进行文件传输:
跨网段的主机的文件传输:
数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。
2.数据包封装和分用
- 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)。
- 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。
- 首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。
- 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理。
数据封装:
消息要在网络中传输,必须对它进行编码,以特定的格式进行封装,同时需要适当地封装以足够的控制和地址信息,以使它能够从发送方移动到接收方。
协议数据单元(Protocol Data Unit, PDU):
应用层数据在传输过程中沿着协议栈传递,每一层协议都会向其中添加信息。这就是封装的过程。
数据片段在各层网络结构中采用的形式就称为协议数据单元(PDU)。封装过程中,下一层对从上一层收到的PDU进行封装。在处理的每一个阶段PDU都有不同的名字来反应它的功能。
PDU按照TCP/IP协议的命名规范:
- 数据(Data):应用层PDU的常用术语
- 分段(Segment):传输层PDU
- 帧(Frame):网络层PDU
- 比特(Bits):在介质上物理传输数据所使用的PDU。
封装:
封装是指在传输之前为数据添加额外的协议头信息的过程。在绝大多数数据通信过程中,源数据在传输前都会封装以数层协议。在网络上发送消息时,主机上的协议栈从上至下进行操作。
以网络服务器为例,HTTP应用层协议发送HTML格式网页数据到传输层,应用层数据被分成TCP分段。各TCP分段被打上标签,称为头(header),表明接收方哪一个进程应当接收此消息。同时也包含使得接收方能够按照原有的格式来重组数据的信息。传输层将网页HTML数据封装成分段并发送至网络层,执行IP层协议。整个TCP分段封装成IP报文,也就是再添上IP头标签。IP头包括源和目的IP地址,以及发送报文到目的地址所必须的信息。
之后,IP报文发送到接入层,封装以帧头和帧尾。每个帧头都包含源和目的物理地址。物理地址唯一指定了本地网络上的设备。帧尾包含差错校正信息。最后,由服务器网卡将比特编码传输给介质。
解封装:
接收主机以相反的方式进行操作称为解封装。解封装是接收设备移除一层或多层协议头的过程。数据在协议栈中向上移动直到终端应用层伴随着解封装。
下图为数据封装的过程:
下图为数据分用的过程:
六、网络中的地址管理
1. IP地址
IP协议中有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP地址”。由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。
IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道他的地址,这样邮递员才能把信送到。计算机发送信息就好比是邮递员,它必须知道唯一的“家庭地址”才能不至于把信送错人家。只不过我们的地址是用文字来表示的,计算机的地址用二进制数字表示。
IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人计算机”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器,就相当于电信局的“程控式交换机”。
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。
2. MAC地址
MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的 。
MAC地址的长度为48位(6个字节),通常表示为12个16进制数,如:00-16-EA-AE-3C-40 就是一个MAC地址,其中前3个字节,16进制数00-16-EA代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3个字节,16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号。只要不更改自己的MAC地址,MAC地址在世界是唯一的。形象地说,MAC地址就如同身份证上的身份证号码,具有唯一性。