您的位置:首页 > 理论基础 > 计算机网络

网络原理与技术

2020-04-01 18:49 991 查看

1.网络基础

1.1计算机网络概述

计算机网络就是利用通信设备和线路将地理位置不同的、功能独立的多个计算机系统互连起来,以功能完善的网络软件实现网络中资源共享和信息传递的系统,一个计算机网络是由资源子网和通信子网组成,资源子网负责信息处理,通信子网负责信息传递。资源子网包括提供资源的主机HOST和请求资源的终端,它们都是信息传输的源节点和终节点,有事也称为端节点;通信子网主要由网络节点和通信链路组成。

1.2计算机网络组成

终端:PC,服务器,打印机,IP电话…
介质:连接作用,双绞线,光纤,串行链路以及电磁波…
网络设备:交换机、路由器、防火墙、集线器…

1.3计算机网络参考模型

由于各个计算机厂商都采用私有的网络模型,因此给通信带来了诸多麻烦,ISO 于 1984 年颁布了 OSI 参考模型。OSI 参考模型是一个开放式体系结构,它规定将网络分为七层,从下往上依次是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,如下图所示。

1.3.1OSI参考模型内容

OSI/RM:分为7层,分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,从下往上的7层。
第七层:应用层:负责提供用户直接访问,提供与用户的接口。
联网的目的在于支持运行于不同计算机上的进程之间的通信,而这些进程则是为用户完成不同任务而设计的。应用是多方面的,不受网络结构的限制。应用层(Application Layer) 包含大量人们普遍需要的协议。显然,对于需要通信的不同应用来说,应用层的协议都是必需的。例如,PC(Personal Computer,个人计算机)用户利用仿真终端软件通过网络使用该远程主机的资源。这个仿真终端程序使用虚拟终端协议将键盘输入的数据传送到主机的操作系统,并接收显示于屏幕的数据。
又如,当用户想要获得远程计算机上的一个文件副本时,他要向本机的文件传输软件发出请求,这个软件与远程计算机上的文件传输进程通过文件传输协议进行通信,这个协议主要处理文件名、用户许可状态和其他请求细节的通信。远程计算机上的文件传输进程使用其他进程来传输文件内容。
由于每个应用有不同的要求,因此应用层的协议集在 OSI 参考模型中并没有定义,但是, 有些确定的应用层协议,包括虚拟终端、文件传输和电子邮件等都可作为标准化的候选。

第六层:表示层:负责数据的表达
定义传递信息的语法和语义
编码和解码、压缩解压缩、加密解密

表示层(Presentation Layer)用于完成某些特定功能,对这些功能人们常常希望找到普遍的解决方法,而不必由每个用户自己来实现。值得一提的是,表示层以下各层只关心从源端机到目标机可靠地传送比特,而表示层关心的是所传送信息的语法和语义。表示层服务的一个典型例子是用一种大家一致选定的标准方法对数据进行编码。大多数用户程序之间并非交换随机比特,而是交换诸如人名、日期、货币数量和发票之类的信息。这些对象是用字符串、整型数、浮点数的形式,以及由几种简单类型组成的数据结构来表示的。
在网络上,计算机可能采用不同的数据表示法,所以在数据传输时需要进行数据格式转换。例如,在不同的机器上常用不同的代码来表示字符串(ASCII 码和 EBCDIC)、整型数(二进制反码或补码)及机器字的不同字节顺序等。为了让采用不同数据表示法的计算机之间能够相互通信并交换数据,我们在通信过程中使用抽象的数据结构(如抽象语法表示 ASN.1) 来表示所传送的数据,而在机器内部仍然采用各自的标准编码。管理这些抽象数据结构,并在发送方将机器的内部编码转换为适合网上传输的传送语法及在接收方做相反的转换等工作都是由表示层来完成的。另外,表示层还涉及数据压缩和解压、数据加密和解密等工作。

第五层:会话层:建立用户间的会话关系。
会话层(Session Layer)允许不同机器上的用户之间建立会话关系。会话层允许进行类似传输层的普通数据传送,在某些场合还提供了一些有用的增强型服务;允许用户利用一次会话在远端的分时系统上登录,或在两台机器间传递文件。
会话层提供的服务之一是管理对话控制。会话层允许信息同时双向传输,或任意一个时刻只能单向传输。如果属于后者,则类似于物理信道上的半双工模式,会话层将记录此时该轮到哪一方。一种与对话控制有关的服务是令牌管理(Token Management)。有些协议会保证双方不能同时进行同样的操作,这一点很重要。为管理这些活动,会话层提供了令牌,令牌可以在会话双方之间移动,只有持有令牌的一方可以执行某种关键性操作。另一种会话层服务是同步的。如果在平均每小时出现一次大故障的网络上,两台机器间要进行一次两小时的文件传输,会出现什么样的问题呢?每一次传输中途失败后,都不得不重新传送这个文件。当网络再次出现大故障时,可能又会半途而废。为解决这个问题,会话层提供了一种方法, 即在数据中插入同步点。当每次网络出现故障后,仅需重传最后一个同步点以后的数据。

第四层:传输层:用户进程间的通信,负责数据包端到端的传输用户进程间的通信(工作设备:防火墙)
传输层(Transport Layer)的主要功能是实现网络中不同主机上用户进程之间的数据通信。网络层和数据链路层负责将数据送达目的端的主机,而这个数据需要什么用户进程去处理,就需要传输层帮忙了。
例如,用 QQ 发送消息,网络层和数据链路层负责将消息转发到接收人的主机,而接收人应该用 QQ 程序来接收还是用 IE 浏览器来接收,就是在传输层进行标识。传输层要决定对会话层用户(最终的网络用户)提供什么样的服务。
因此,我们经常把1~3 层的协议称为点到点的协议,而把 4~7 层的协议称为端到端的协议。
由于绝大多数主机都支持多进程操作,因此机器上会同时有多个程序访问网络,这就意味着将有多条连接进出于这台主机,因此需要以某种方式区别报文属于哪条连接。识别这些连接的信息可以放在传输层的报文头中。除了将几个报文流多路复用到一条通道上,传输层还必须管理跨网连接的建立和拆除。这就需要某种命名机制,使机器内的进程能够说明它希望交谈的对象。

第三层:网络层:负责数据包的逻辑寻址(工作设备:路由器)
数据包封装结构
源和目的逻辑地址
根据包头的逻辑地址选路
网络层(Network Layer)的主要功能是实现数据从源端到目的端的传输。在网络层, 使用逻辑地址来标识一个点,将上层数据封装成数据包,在包的头部封装了源和目的端的逻辑地址。网络层根据数据包头部的逻辑地址选择最佳的路径,将数据送达目的端。

第二层:数据链路层:负责承上启下的作用。下层对接网卡,上层驱动安装。(工作设备:交换机)
数据帧封装结构
源和目的物理地址
数据校验功能

数据链路层(Data Link Layer)负责将上层数据封装成固定格式的帧,在数据帧内封装发送和接收端的数据链路层地址(在以太网中为 MAC 地址,MAC 地址是用来标识网卡的物理地址;在广域网中点到多点的连接情况下,可以是一个链路的标识),并且为了防止在数据传输过程中产生误码,要在帧尾部加上校验信息。当发现数据错误时,可以重传数据帧。

第一层:物理层:规定了电气的,机械的规范。
如何使用物理信号来表示数据1和0
数据传输是否可同时在两个方向上进行
通信双方如何建立和中止连接
物理接口特性。

物理层(Physical Layer)的主要功能是完成相邻节点之间原始比特流的传输。物理层协议关心的典型问题是使用什么样的物理信号来表示数据 1 和 0,一位持续的时间有多长,数据传输是否可同时在两个方向上进行,最初的连接如何建立及完成通信后连接如何终止,物理接口(插头和插座)有多少针及各针的用处。物理层的设计主要涉及物理层接口的机械、电气、功能和过程特性,以及物理层接口连接的传输介质等问题。另外,物理层的设计还涉及通信工程领域内的一些问题。

1.3.2 TCP/IP 参考模型

另外一个著名的模型是 TCP/IP 模型。TCP/IP 是传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol)的简称。早期的 TCP/IP 模型是一个四层结构,从下往上依次是网络接口层、互联网层、传输层和应用层。在后来的使用过程中,借鉴 OSI 的七层参考模型,将网络接口层划分为物理层和数据链路层,形成了一个新的五层结构。TCP/IP 是一系列协议的集合,所以严格的称呼应该是 TCP/IP 协议簇。
TCP/IP 协议簇的前四层与 OSI 参考模型的前四层相对应,其功能也非常类似,而应用层则与 OSI 参考模型的最高三层相对应,如图 1.3.2所示。


值得注意的是,OSI 参考模型没有考虑任何一组特定的协议,因此 OSI 更具有通用性; 而 TCP/IP 参考模型与 TCP/IP 协议簇吻合得很好,虽然该模型不适用于其他任何协议栈,但如今的网络多以 TCP/IP 协议簇作为基础,这使得在分层设计上没有过多考虑协议的 OSI 分层理念,所以没有广泛地应用于实际工作中。相反,人们更多地应用 TCP/IP 分层模型在实际工作中分析问题、解决问题。TCP/IP 五层模型应用得更广泛,因此本书及以后的内容在讨论问题时一律采用五层模型。下面是该模型对应的一些常见协议,如图 1.3.3所示。

1)物理层和数据链路层
在物理层和数据链路层,TCP/IP 并没有定义任何特定的协议。它支持所有标准的、专用的协议,网络可以是局域网(如广泛使用的以太网)、城域网或广域网。所以,TCP/IP 实际上只有三个层次。
2)网络层
在网络层,TCP/IP 定义了 IP(Internet Protocol,网际协议),而 IP 又由四个支撑协议组成:ARP(地址解析协议)、RARP(逆地址解析协议)、ICMP(网际控制报文协议)和 IGMP
(网际组管理协议)。
3)传输层
传统上,TCP/IP 有两个传输层协议:TCP(传输控制协议)和 UDP(用户数据报协议)。TCP 协议传输更加稳定可靠,UDP 协议传输效率更高。
4)应用层
在应用层,TCP/IP 定义了许多协议,如 HTTP(超文本传输协议)、FTP(文件传输协议)、
SMTP(简单邮件传输协议)、DNS(域名系统)等。

1.4.1 数据传输过程

1.4.1.1数据封装过程

在计算机网络中层次的划分要比上述的例子更细致,每一层实现的功能也更为复杂。为了能够更明确地说明此过程,我们将以两台主机的通信为实例进行分析讲解,如图 1.4.1所示。


1)应用层传输过程
在应用层,数据被“翻译”为网络世界使用的语言——二进制编码数据。大家可以试想一下,人们需要通过计算机传输数据的形式千变万化、各式各样,有字母、数字、汉字、图片、声音等。这些信息对于单一通过弱电流传输的计算机来说太过于“复杂”,因此这些人类方便识别的信息被应用层通过各种特殊的编码过程转换成二进制数据。这就是上面所描述的“翻译”过程,也是应用层在网络数据传输过程中最为核心的贡献。
2)传输层传输过程
在传输层,上层数据被分割成小的数据段,并为每个分段后的数据封装 TCP 报文头部。应用层将人们需要传输的信息转换成计算机能够识别的二进制数据后,这些数据往往都是海量的。例如,一张高清晰的图片转换成二进制数据可能会有几百万位甚至几千万位,如此庞大的数据一次性传输的话,一旦网络出现问题而导致数据出错就要重新传输,数据量过大会加大出错的概率,最终可能会导致网络资源耗尽。因此,将数据先分割成小段再逐段传输, 一旦出现数据传输错误只需重传这一小段数据即可。
**在 TCP 头部有一个关键的字段信息——端口号,它用于标识上层的协议或应用程序,确保上层应用数据的正常通信。**计算机是可以多进程并发运行的,如图 1.4.1 中的例子,左边的计算机在通过 QQ 发送信息的同时也可以通过 IE 浏览器浏览右边主机的 Web 页面,对于右边的主机就必须弄清楚左边主机发送的数据要对哪个应用程序实施通信。但是对于传输层而言, 它是不可能看懂应用层传输具体数据的内容的,因此只能借助一种标识来确定接收到的数据对应的应用程序,这种标识就是端口号。
3)网络层传输过程
**在网络层,上层数据被封装上新的报文头部——IP 头部。值得注意的是,这里所说的上层数据包括 TCP 头部,也就是说,这里的上层是指传输层。对于网络层而言,它是“看不懂”TCP 报文头部中内容的,在它看来,无论是应用层的应用数据,还是 TCP 头部信息都属于上层数据。
在 IP 头部中有一个关键的字段信息——IP 地址,它是由一组 32 位的二进制数组成的, 用于标识网络的逻辑地址。回想刚才寄信的例子,我们在信封上填写对方的详细地址和本地的详细地址,以保证收件人能够顺利收到信件。在网络层的传输过程与其很类似,在 IP 头部中包含目标 IP 地址和源 IP 地址,在网络传输过程中的一些中间设备,如路由器,会根据目标 IP 地址来逻辑寻址,找到正确的路径将数据转发到目的端。如果中间的路由设备发现目标的 IP 地址根本是不可能到达的,它将会把该消息传回发送端主机,因此在网络层需要同时封装目标 IP 和源 IP。
4)数据链路层传输过程
数据链路层,上层数据被封装一个 MAC 头部,其内部有一个关键的字段信息——MAC 地址,它由一组 48 位的二进制数组成。在目前阶段,我们先把它理解为固化在硬件设备中的物理地址,具有全球唯一性。**例如,之前讲解的网卡就有属于自己的唯一的 MAC 地址。和
IP 头部类似,在 MAC 头部也同时封装着目标 MAC 地址和源 MAC 地址。其实,二层封装还涉及尾部的封装,考虑大家目前的学习层次,不再详述,后续会讲解相关内容。
5)物理层传输过程
无论在之前哪一层封装的报文头部还是上层数据信息都是由二进制数组成的,在物理层, 将这些二进制数字组成的比特流转换成电信号在网络中传输。

1.4.1.2 数据解封装过程

数据被封装完毕通过网络传输到接收方后,将进入数据的解封装过程,这将是封装过程的一个逆过程,如图 1.4.2 所示。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
南柯一梦,笑谈浮生 发布了9 篇原创文章 · 获赞 5 · 访问量 216 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: