软考-架构师-第四章-计算机网络 第一节 网络架构与协议(读书笔记)

版权声明:本文为博主原创文章,如需转载请在文章中注明“转载”并在文章开头附上本博客链接。 https://blog.csdn.net/soslinken/article/details/81336045

版权声明

主要针对希赛出版的架构师考试教程《系统架构设计师教程(第4版)》,作者“希赛教育软考学院”。完成相关的读书笔记以便后期自查,仅供个人学习使用,不得用于任何商业用途。

第一节 网络架构与协议

计算机网络使得其功能得到了大大的加强,范围得到了很大的扩展。

从严谨的定义角度说,计算机网络是指由通信线路互相连接的许多独立自主工作的计算机构成的资源共享集合体,它是计算机技术和通信技术相结合的产物。它的出现推动了信息化的发展,从局域网到互联网,都对信息应用产生了深远的影响。

说明

网络架构是指计算机网络的各层及其协议的集合。计算机之间要交换数据,就必须遵守一些事先约定好的规则,用于规定信息的格式及如何发送和接收信息的一套规则就称为网络协议。为了减少网络协议设计的复杂性,网络设计者并不是设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而是将庞大而复杂的通信问题转化为若干个小问题,然后为每个小问题设计一个单独的协议。

计算机网络采用分层设计方法,按照信息的传输过程将网络的整体功能分解为一个个的功能层,不同机器上的同等功能层之间采用相同的协议,同一机器上的相邻功能层之间通过接口进行信息传递。

网络互联模型

1977 年,国际标准化组织为适应网络标准化发展的需求,制定了开放系统互联参考模型(Open System Interconnection/Reference Model,OSI/RM),从而形成了网络架构的国际标准。OSI/RM 构造了由下到上的七层模型,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

OSI/RM 各层的功能

(1)物理层。

物理层的主要功能是透明地完成相邻节点之间原始比特流的传输。其中 “透明”的意思是指物理层并不需要关心比特代表的具体含义,而要考虑的是如何发送“0” 和“1”,以及接收端如何识别。物理层在传输介质基础上作为系统和通信介质的接口,为数据链路层提供服务。

(2)数据链路层。

数据链路层负责在两个相邻节点之间的线路上无差错地传送以帧为单位的数据,通过流量控制和差错控制,将原始不可靠的物理层连接变成无差错的数据通道,并解决多用户竞争问题,使之对网络层显现一条可靠的链路。

(3)网络层。

网络层是通信子网的最高层,其主要任务是在数据链路层服务的基础上,实现整个通信子网内的连接,并通过网络连接交换网络服务数据单元(packet)。它主要解决数据传输单元分组在通信子网中的路由选择、拥塞控制和多个网络互联的问题。网络层建立网络连接为传输层提供服务。

(4)传输层。

传输层既是负责数据通信的最高层,又是面向网络通信的低三层(物理层、数据链路层和网络层)和面向信息处理的高三层(会话层、表示层和应用层)之间的中间层,是资源子网和通信子网的桥梁,其主要任务是为两台计算机的通信提供可靠的端到端的数据传输服务。传输层反映并扩展了网络层子系统的服务功能,并通过传输层地址为高层提供传输数据的通信端口,使系统之间高层资源的共享不必考虑数据通信方面的问题。

(5)会话层。

会话层利用传输层提供的端到端数据传输服务,具体实施服务请求者与服务提供者之间的通信、组织和同步它们的会话 活动,并管理它们的数据交换过程。会话层提供服务通常需要经过建立连接、数据传输和释放连接三个阶段。会话层是最薄的一层,常被省略。

(6)表示层。

表示层处理的是用户信息的表示问题。端用户(应用进程)之间传送的数据包含语义和语法两个方面。语义是数据的内容及其含义,它由应用层负责处理;语法是与数据表示形式有关的方面,例如,数据的格式、编码和压缩等。表示层主要用于处理应用实体面向交换的信息的表示方法,包括用户数据的结构和在传输时的比特流(或字节流)的表示。这样,即使每个应用系统有各自的信息表示法,但被交换的信息类型和数值仍能用一种共同的方法来描述。

(7)应用层。

应用层是直接面向用户的一层,是计算机网络与最终用户之间的界面。

TCP/IP 结构模型

虽然 OSI/RM 已成为计算机网络架构的标准模型,但因为 OSI/RM 的结构过于复杂,实际系统中采用 OSI/RM 的并不多。目前,使用最广泛的可互操作的网络架构是 TCP/IP(Transmission Control Protocol/ Internet Protocol,传输控制协议/网际协议)结构模型。与 OSI/RM 结构不同,不存在一个正式的 TCP/IP 结构模型,但可根据已开发的协议标准和通信任务将其大致分成四个比较独立的层次,分别是网络接口层、网络互联层、传输层和应用层。

(1)网络接口层。

网络接口层大致对应于 OSI/RM 的数据链路层和物理层,TCP/IP 协议不包含具体的物理层和数据链路层,只定义了网络接口层作为物理层的接口规范。网络接口层处在 TCP/IP 结构模型的最底层,主要负责管理为物理网络准备数据所需的全部服务程序和功能。

(2)网络互联层。

网络互联层也称为网络层、互联网层或网际层,负责将数据报独立地从信源传送到信宿,主要解决路由选择、阻塞控制和网络互联等问题,在功能上类似于 OSI/RM 中的网络层。

(3)传输层。

传输层负责在信源和信宿之间提供端到端的数据传输服务,相当于OSI/RM 中的传输层。

(4)应用层。

应用层直接面向用户应用,为用户方便地提供对各种网络资源的访问服务,包含了OSI/RM 会话层和表示层中的部分功能。

常见的网络协议

1.应用层协议

FTP(File TransportProtocol,文件传输协议)

是网络上两台计算机传送文件的协议,运行在 TCP 之上,是通过 Internet 将文件从一台计算机传输到另一台计算机的一种途径。 FTP 的传输模式包括Bin(二进制)和 ASCII(文本文件)两种,除了文本文件之外,都应该使用二进制模式传输。FTP 在客户机和服务器之间需建立两条 TCP 连接,一条用于传送控制信息(使用 21 号端口),另一条用于传送文件内容(使用 20 号端口)。

TFTP(Trivial FileTransfer Protocol,简单文件传输协议)

是用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。TFTP 建立在 UDP(User Datagram Protocol,用户数据报协议)之上,提供不可靠的数据流传输服务,不提供存取授权与认证机制,使用超时重传方式来保证数据的到达。

HTTP(Hypertext TransferProtocol,超文本传输协议)

是用于从 WWW 服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。HTTP 建立在 TCP 之上,它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等。

SMTP(Simple Mail TransferProtocol,简单邮件传输协议)

建立在 TCP 之上,是一种提供可靠且有效的电子邮件传输的协议。SMTP 是建模在 FTP 文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息,并提供与电子邮件有关的通知。

DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)

建立在 UDP 之上,是基于客户机/服务器模型设计的。所有的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的DHCP 要求;而客户端则会使用从服务器分配下来的 IP 环境数据。 DHCP 通过租约(默认为 8 天)的概念,有效且动态地分配客户端的 TCP/IP 设定。当租约过半时,客户机需要向 DHCP 服务器申请续租;当租约超过 87.5%时,如果仍然没有和当初提供 IP 的 DHCP 服务器联系上,则开始联系其他的 DHCP 服务器。DHCP 分配的 IP 地址可以分为三种方式,分别是固定分配、动态分配和自动分配。

Telnet(远程登录协议)

是登录和仿真程序,建立在 TCP 之上,它的基本功能是允许用户登录进入远程计算机系统。以前,Telnet 是一个将所有用户输入送到远程计算机进行处理的简单的终端程序。目前,它的一些较新的版本是在本地执行更多的处理,可以提供更好的响应,并且减少了通过链路发送到远程计算机的信息数量。

DNS(Domain NameSystem,域名系统)

在 Internet 上域名与 IP 地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相识别 IP 地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS 就是进行域名解析的服务器。DNS 通过对用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,例如,IP 地址。

SNMP(Simple NetworkManagement Protocol,简单网络管理协议)

是为了解决 Internet 上的路由器管理问题而提出的,它可以在 IP、IPX、AppleTalk 和其他传输协议上使用。SNMP 是指一系列网络管理规范的集合,包括协议本身、数据结构的定义和一些相关概念。目前, SNMP 已成为网络管理领域中事实上的工业标准,并被广泛支持和应用,大多数网络管理系统和平台都是基于 SNMP 的。

2.传输层协议

传输层主要有两个传输协议,分别是 TCP 和 UDP(User Datagram Protocol,用户数据报协议),这些协议负责提供流量控制、错误校验和排序服务。

TCP

是整个 TCP/IP 协议族中最重要的协议之一,它在 IP 协议提供的不可靠数据服务的基础上,采用了重发技术,为应用程序提供了一个可靠的、面向连接的、全双工的数据传输服务。TCP 协议一般用于传输数据量比较少,且对可靠性要求高的场合。

UDP

是一种不可靠的、无连接的协议,可以保证应用程序进程间的通信,与 TCP 相比,UDP 是一种无连接的协议,它的错误检测功能要弱得多。可以这样说,TCP 有助于提供可靠性,而 UDP 则有助于提高传输速率。UDP 协议一般用于传输数据量大,对可靠性要求不是很高,但要求速度快的场合。

3.网络层协议

网络层中的协议主要有 IP、ICMP(Internet Control Message Protocol,网际控制报文协议)、IGMP(Internet Group Management Protocol,网际组管理协议)、ARP(Address Resolution Protocol,地址解析协议)和 RARP(Reverse Address Resolution Protocol,反向地址解析协议)等,这些协议处理信息的路由和主机地址解析。

IP

IP 所提供的服务通常被认为是无连接的和不可靠的,它将差错检测和流量控制之类的服务授权给了其他的各层协议,这正是 TCP/IP 能够高效率工作的一个重要保证。网络层的功能主要由 IP 来提供,除了提供端到端的分组分发功能外,IP 还提供很多扩充功能。例如,为了克服数据链路层对帧大小的限制,网络层提供了数据分块和重组功能,这使得很大的 IP 数据包能以较小的分组在网络上传输。

ARP

ARP 用于动态地完成 IP 地址向物理地址的转换。物理地址通常是指计算机的网卡地址,也称为MAC(Media Access Control,媒体访问控制)地址,每块网卡都有唯一的地址;RARP 用于动态完成物理地址向 IP 地址的转换。

ICMP

ICMP 是一个专门用于发送差错报文的协议,由于 IP 协议是一种尽力传送的通信协议,即传送的数据可能丢失、重复、延迟或乱序传递,所以需要一种尽量避免差错并能在发生差错时报告的机制,这就是 ICMP 的功能。

IGMP

IGMP 允许 Internet 中的计算机参加多播,是计算机用作向相邻多目路由器报告多目组成员的协议。多目路由器是支持组播的路由器,它向本地网络发送 IGMP 查询,计算机通过发送 IGMP 报告来应答查询。多目路由器负责将组播包转发到网络中所有组播成员。

IPv6

互联网络能发展到当前的规模,IPv4 协议的建立功不可没。但同时它的缺点也已经充分显现出来,如地址空间耗尽、路由表急剧膨胀、缺乏对 QoS 的支持、本身并不提供任何安全机制、移动性差等问题。尽管采用了许多新的机制来缓解这些问题,如 DHCP 技术、 NAT 技术、CIDR 技术等,但都不可避免地要引入其他新的问题,问题没有得到根本解决。于是 IETF 从 90 年代起就开始积极探讨下一代 IP 网络,经过几年努力,在广泛听取业界和专家意见的基础上,终于在 1995 年 12 月推出了下一代网络的 RFC 文档——IPv6 协议,该协议最早叫做下一代 IP(IP Next Generation,IPng)。现在它的全称是“互联网协议第 6 版”,即下一代的网际协议。

1.IPv6 地址表示

一个 32 位的 IPv4 地址以 8 个位为一段分成 4 段,每段之间用点“.”分开。而 IPv6地址的 128 位是以 16 位为一段,共分为 8 段,每段的 16 位转换为一个 4 位的 16 进制数字,每段之间用冒号“:”分开。

如 RFC 2373 所定义,有 3 种格式表示 IPv6 地址。首选格式是最长的表示方法,由所有的 32 个 16 进制字符组成。如,下面这个 128 位的 IPv6 地址用 2 进制表示为:

00100000000000010000110110101000110100000000000100000000000000010000000000000000000000000000000000000000000000001100111011001101

先把这 128 位按照 16 位一段分开:

0010000000000001 0000110110101000 1101000000000001 0000000000000001 0000000000000000 0000000000000000 0000000000000000 1100111011001101

把每 16 位一段转换为 4 个字符表示的 16 进制,然后以冒号隔开,可以得到如下表示形式:

2001:0da8:d001:0001:0000:0000:0000:0001

上面这个地址就是首选格式,是一个适合于计算机“思维”的表示法。

2.IP v6 压缩地址表示

在 IPv6 中,常见到使用包含一长串 0 的地址,为了方便书写,对于每一段中的前导0可以进行省略。如前面的首选格式地址经过一次压缩,可以得到:

2001:da8:d001:1:0:0:0:1

对于连续 2 段以上都为 0 的字段,可以使用“::”(两个冒号)来表示,这样再次压缩,变成:

2001:da8:d001:1::1

这就是 IPv6 地址的压缩表示法。(注意:每个 IPv6 地址只允许有一个“::”)

3.内嵌 IPv4 地址的 IPv6 地址

还有一种表示法就是在 IPv6 地址中使用内嵌的 IPv4 地址。这种表示法的地址的第一部分使用十六进制表示,而 IPv4 部分采用十进制。这是过渡机制所用的 IPv6 地址特有的表示法。如:fe80::200:5efe:58.20.27.60,这个 IPv6 地址的后半部分就是一个 IPv4 地址。

4.IPv6 地址类型 

IPv4 有单播、广播和组播地址类型,在 IPv6 里面,广播已经不再使用了,这对网络管理员来说,应该是个好消息,因为在传统的 IP 网络中,出现的很多问题都是由于广播引起的。IPv6 仍有 3 种地址类型,分别是单播、多播(也称作组播)、泛播(也称作任意播)。

(1)单播 IPv6 地址

单播地址唯一标识一个 IPv6 节点的接口。发送往单播地址的数据包最终传递给这个地址所标识的接口。为适应负载均衡,IPv6 协议允许多个接口使用相同的 IPv6 地址,只要它们对于主机上的 IPv6 协议表现为一个接口。

(2)多播 IPv6 地址

多播地址标识一组 IPv6 节点的接口。发送往多播地址的数据包会被该多播组所有的成员处理。

(3)泛播 IPv6 地址

泛播地址指派给多个节点的接口。发送往泛播地址的数据包只会传递给其中的一个接口,一般是相隔最近的一个接口。 

5.IPv6 的优势 

与 IPv4 相比,IPv6 具有以下几点优势:

(1)IPv6 具有更大的地址空间。IPv4 中规定 IP 地址长度为 32 位,而 IPv6 中 IP 地址的长度为128 位。

(2)IPv6 使用更小的路由表。IPv6 的地址分配一开始就遵循路由汇聚的原则,使路由器能在路由表中用一条记录表示一个子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。

(3)IPv6 增加了增强的组播支持和对流支持,使网络上的多媒体应用有了长足发展的机会,为服务质量(Quality of Service,QoS)控制提供了良好的网络平台。

(4)IPv6 加入了对自动配置的支持。这是对 DHCP 协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。

(5)IPv6 具有更高的安全性。在使用 IPv6 网络时,用户可以对网络层的数据进行加密,并对 IP 报文进行校验,极大地增强了网络的安全性。

6.IPv4 到 IPv6 的过渡技术 

(1)双协议栈技术

双栈技术通过节点对 IPv4 和 IPv6 双协议栈的支持,从而支持两种业务的共存。

(2)隧道技术

隧道技术通过在 IPv4 网络中部署隧道,实现在 IPv4 网络上对 IPv6 业务的承载,保证业务的共存和过渡。具体的隧道技术包括:6to4 隧道;6over4 隧道;ISATAP 隧道。

(3)NAT-PT 技术

NAT - PT 使用网关设备连接 IPv6 和 IPv4 网络。当 IPv4 和 IPv6节点互相访问时,NAT - PT 网关实现两种协议的转换翻译和地址的映射。

猜你喜欢

转载自blog.csdn.net/soslinken/article/details/81336045