第一章 基础知识
1.1 计算机网络分类
WAN
- WAN(Wide Area Network,广域网)
LAN
- LAN(Local Area Network,局域网)
MAN
- MAN(Metropolitan Area Network,城域网)
1.2 协议
网络体系结构 | 协议 | 主要用途 |
---|---|---|
TCP/IP | IP,ICMP,TCP,UDP,HTTP,TELNET,SNMP,SMTP… | 互联网,局域网 |
IPX/SPX | IPX,SPX,NPC… | 个人电脑局域网 |
AppleTalk | DDP,RTMP,AEP,ATP,ZIP… | 苹果现有产品的局域网 |
DECnet | DPR,NSP,SCP… | 前DEC小型机 |
OSI | FTAM,MOTIS,VT,CMIS/CMIP,CLNP,CONP… | ------------- |
XNS | IDP,SPP,PEP… | 施乐公司网络 |
1.2.1 协议的必要性
- 协议就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”。这种“约定”使那些由不同厂商的设备,不同的CPU以及不同的操作系统组成的计算机之间,只要遵守相同的协议就能够实现通信。
一个CPU通常在同一时间只能运行一个程序。为了让多个程序同时运行,操作系统采用CPU时间片轮转机制,在多个程序之间进行切换,合理调度。这种方式叫做多任务调度。
分组交换协议
- 分组交换是指将大数据分割成为一个个叫做包(Packet)的较小单位进行传输的方法。
1.2.2 协议的标准化
- ISO制定了一个国际标准OSI,对通信系统进行了标准化。
- TCP/IP并非ISO所制定的某种国际标准。而是由IETF所建议的,致力推进其标准化作业的一种协议。
ISO(International Organization for Standards,国际化标准组织)
OSI(Open Systems Interconnection,开放式通信系统互联参考模型)
IETF(Internet Engineering Task Force,互联网工程任务组)
1.3 协议的分层
- OSI将通信协议中必要的功能分成了7层。
- 每个分层都接收由它下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务。上下层之间进行交互时所遵守的约定叫做“接口”。同一层之间的交互所遵守的约定叫做“协议”。
1.3.1 OSI参考模型
OSI协议与OSI参考模型
- OSI协议是为了让异构的计算机之间能够相互通信的,由ISO和ITUT推进其标准化的一种网络体系结构。
- OSI(参考模型)将通信功能划分为7个分层,称作OSI参考模型。OSI协议以OSI参考模型为基础界定了每个阶层的协议和每个阶层之间接口相关的标准。
1.3.2 OSI参考模型中的各个分层的作用
分层名称 | 功能 | 每层功能概述 | |
---|---|---|---|
7 | 应用层 | 针对特定应用的协议 | 针对每个应用的协议 电子邮件<—>电子邮件协议 远程登录<—>远程登录协议 文件传输<—>文件传输协议 |
6 | 表示层 | 设备固有数据格式和网络 标准数据格式的转换 | 接收不同表现形式的信息,如文字流,图像,声音等 |
5 | 会话层 | 通信管理。负责建立和断开 通信连接(数据流动的逻辑通路)。 管理传输层以下的分层。 | 何时建立连接,何时断开连接以及保持多久连接? |
4 | 传输层 | 管理两个节点之间的数据传输。负责可靠传输(确保数据被可靠地传送到目标地址) | 是否有数据丢失? |
3 | 网络层 | 地址管理与路由选择 | 经过哪个路由传递到目标地址? |
2 | 数据链路层 | 互连设备之间传送和识别数据帧 | 数据帧与比特流之间地转换 |
1 | 物理层 | 以“0”,“1”代表电压的高低,灯光的闪灭。 界定连接器和网线的规格。 | 比特流与电子信号之间的切换 连接器与网线的规格 |
应用层
- 为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输,电子邮件,远程登录等协议。
表示层
- 将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。主要负责数据格式的转换。
会话层
- 建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理。
传输层
- 负责数据的可靠传输,只在通信双方节点上进行处理,而无需在路由器上处理。
网络层
- 将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某一个地址。因此这层主要负责寻址和路由选择。
数据链路层
- 负责物理层面上的互连的,节点之间的通信传输。
物理层
- 负责0,1比特流(0,1序列)与电压的高低,光的闪灭之间的互换。
1.3.3 7层通信
- 在7层OSI模型中,如何模块化通信传输?
- 发送方从第7层到第1层由上至下按照顺序传输数据,而接收端则从第1层到第7层由下至上向每个上一级分层传输数据。
- 每个分层上,在处理由上一层传过来的数据时可以附上当前分层的协议所必须的“首部”信息。然后接收端对接收到的数据进行“首部”与“内容”的分离,再转发给上一分层,并最终将发送端的数据恢复为原状。
1.4 传输方式的分类
1.4.1 面向有连接与面向无连接型
- 通过网络发送数据,可以分为面向有连接与面向无连接两种类型。
面向有连接包括以太网,IP,UDP等协议
面向无连接包括ATM,帧中继,TCP等协议
面向有连接型
- 面向有连接型中,在发送数据之前,需要在收发主机之间连接一条通信线路。
- 面向有连接的方式下,必须在通信传输前后,专门进行建立和断开连接的处理。如果与对端之间无法通信,就可以避免发送无谓的数据。
面向无连接型
- 面向无连接型不要求建立和断开数据。
- 发送端可于任何时候自由发送数据。反之,接收端也永远不知道自己会在何时从哪里收到数据。
- 在面向无连接的情况下,接收端需要时常确认是否收到了数据。
- 在面向无连接的通信中,不需要确认对端是否存在。即使接收端不存在或无法接收数据,发送端也能将数据发送出去。
1.4.2 电路交换与分组交换
- 网络通信方式大致分为两类——电路交换和分组交换。
电路交换
- 在电路交换中,交换机主要负责数据的中转处理。计算机首先被连接到交换机上,而交换机与交换机之间则由众多通信线路再继续连接。因此计算机之间在发送数据时,需要通过交换机与目标主机建立通信电路。我们将连接电路称为建立连接。建立好连接后,用户就可以一直使用这条电路,直到该连接被断开为止。
存在的问题
- 如果某条电路只是用来连接两台计算机的通信线路,就意味着只需在这两台计算机之间实现通信,因此这两台计算机是可以独占线路进行数据传输的。但是,如果一条电路上连接了多台计算机,而这些计算机之间需要相互传递数据,就会出现新的问题。鉴于一台计算机在收发信息时会独占整个电路,其他计算机只能等待这台计算机处理结束以后才有机会使用这条电路收发数据。并且在此过程中,谁也无法预测某一台计算机的数据传输从何时开始又在何时结束。如果并发用户数超过交换机之间的通信线路数,就意味着根本无法实现。
解决方案
- 分组交换
分组交换
- 让连接到通信电路的计算机将所要发送的数据分成多个数据包,按照一定的顺序排列之后分别发送。这就是分组交换。
- 在分组交换中,由分组交换机(路由器)连接通信线路。分组交换的大致处理过程是
- 发送端计算机将数据分组发送给路由器,路由器收到这些分组数据以后,缓存到自己的缓冲区,然后再转发给目标计算机,分组交换也有另一个名称:蓄积交换。
- 路由器接收到数据后会按照顺序缓存到相应的队列当中,再以先进先出的顺序将它们逐一发送出去。
优势
- 数据被细分后,所有的计算机就可以一齐收发数据,这样也就提高了通信线路的利用率。
- 在分组的过程中,已经在每个分组的首部写入了发送端和接收端的地址,所以即使同一条线路同时为多个用户提供服务,也可以明确区分每个分组数据发往那个的目的地,以及它是与那台计算机进行的通信。
两者的不同
- 分组交换中,计算机与路由器之间以及路由器与路由器之间通常只有一条通信线路。因此,这条线路其实是一条共享线路。
- 在电路交换中,计算机之间的传输速度不变。
- 在分组交换中,通信线路的速度可能会有所不同。根据网络拥堵的情况,数据达到目标地址的时间有长有短。另外,路由器的缓存饱和或溢出时,甚至可能会发生分组数据丢失,无法发送到对端的情况。
1.4.3 根据接收端数量分类
- 网络通信中,根据目标地址的个数及其后续的行为对通信进行分类
单播(Unicast)
- 1对1通信。
广播(Broadcast)
- 将消息从1台主机发送给与之相连的所有其他主机。广播通信的典型就是电视播放。同样电视信号有自己的频段,只有在相应的频段的可接收范围内才能收到电视信号。类似,进行广播通信的计算机也有它们自己的广播范围。只有在这个范围内的计算机才能收到相应的广播消息。这个范围叫做广播域。
多播(Multicast)
- 与广播类似,也是将消息发给多个接收主机。不同之处在于多播要限定某一组主机作为接收端。
任播(Anycast)
-
任播是指在特定的多台主机中选出一台作为接收端的一种通信方式。
-
任播通信从目标主机群中选出一台最符合网络条件的主机作为目标主机发送消息。通常,所被选中的那台特定主机将返回一个单播信号,随后发送端主机会只跟这台主机进行通信。
-
任播在实际网络中的应用有DNS根域名解析服务器。
1.5 地址
- 通信传输中,发送端和接收端可以被视为通信主体,它们都能由一个所谓“地址”的信息加以标识出来。
1.5.1 地址的唯一性
- 一个地址必须明确地表示一个主体对象,在同一个通信网络中不允许有两个相同地址的通信主体存在。
1.5.2 地址的层次性
- 当地址总数并不是很多的情况下,有了唯一地址就可以定位相互通信的主体。然而,当地址的总数越来越多时,如何高效地从中找出通信地目标地址将成为一个重要问题。为此地址除了具有唯一性还需要具有层次性。(如在身份证中就用了地址分层这种概念。如:身份证中包含省份,生日,性别等)。
- MAC地址和IP地址在标识一个通信主体时虽然都具有唯一性,但是它们当中只有IP地址具有层次性。
- IP时如何实现分层的?
- IP地址由网络号和主机号两部分组成。即使通信主体的IP地址不同,若主机号不同,网络号相同,说明它们处于同一个网段。
- 网络号相同的主机在组织结构,提供商类型和地域分布上都比较集中,也为IP寻址带来了极大的方便。
- 网络传输中,每个节点会根据分组数据的地址信息,来判断该报文应该由哪个网卡发送出去。为此,各个地址会参考一个发出接口列表。在这一点上MAC寻址和IP寻址是一样的。只不过MAC寻址中所参考的这张表叫做地址转发表,而IP寻址中所参考的叫做路由控制表。MAC地址转发表中所记录的是实际的MAC地址本身,而路由表中记录的IP地址则是集中了之后的网络号。
1.6 网络的构成要素
-
此处仅介绍连接计算机与计算机的硬件设备
设备 作用 网卡 使计算机联网的设备(Network Interface) 中继器(Repeater) 从物理层上延长网络的设备 网桥(Bridge)/2层交换机 从数据链路层上延长网络的设备 路由器(Router)/3层交换机 通过网络层转发分组数据的设备 4-7层交换机 处理传输层以上各层网络传输的设备 网关(Gateway) 转换协议的设备
1.6.1 通信媒介与数据链路
- 计算机之间通过电缆相互连接。
- 电缆可以分为很多种,包括双绞线电缆,光纤电缆,同轴电缆,串行电缆等。
- 媒介本身也可以被划分为电波,微波等不同类型的电磁波
传输速率与吞吐量
- 传输速率(又被称为带宽(Bandwidth))
- 在数据传输的过程中,两个设备之间数据流动的物理速度称为传输速率。单位为bps(Bits Per Second,每秒比特数)
- 传输速率高不是指单位数据流动的速度有多快,而是指单位时间内传输的数据量有多少。
- 高速数据链路就相当于有多个车道,一次允许更多车辆行驶的道路,带宽越大网络传输能力就越强。
- 吞吐量
- 主机之间实际的传输速率被称为吞吐量。单位为bps。
- 吞吐量不仅衡量带宽,同时也衡量主机的CPU处理能力,网络的拥堵程度,报文中数据字段的占有份额(不含报文首部,只计算数据字段本身)等信息。
1.6.1 网卡
- 任何一台计算机连接网络时,必须使用网卡(网络接口卡,NIC),也被称为网络适配器,网卡,LAN卡。
1.6.2 中继器
-
中继器(Repeater)
-
在OSI模型的第一层———物理层面上延长网络的设备。由电缆传过来的电信号或光信号经由中继器的波形调整和放大再传给另一个电缆。
-
一般情况下,中继器的两端连接的是相同的通信媒介,但有的中继器也可以完成不同媒介之间的转接工作。
连接两个不同速度的网络需要的是网桥或路由器这样的设备
-
通过中继器而进行的网络延长,其距离也并非可以无限扩大。
-
有些中继器可以提供多个端口服务。这种中继器被称作为中继集线器或集线器。因此,集线器也可以看作是多口中继器,每个端口都可以成为一个中继器。
中继集线器也可以简称为集线器或Hub。
-
1.6.3 网桥/2层交换机
-
网桥是在OSI模型的第二层上——数据链路层面上连接两个网络的设备。
-
它能够识别数据链路层中的数据帧,并将这些数据帧临时存储与内存,再重新生成信号作为一个全新的帧转发给相连的另一个网段。
-
由于能够存储这些数据帧,网桥能够连接10BASE-T与100BASE-TX等传输速率完全不同的数据链路,并且不限制连接网段的个数。
-
数据链路的数据帧中有一个数据位叫做FCS,用以校验数据是否正确送达目的地。网桥通过检查这个域中的值,将那些损坏的数据丢弃,从而避免发送给其他的网段。此外,网桥还能通过地址(MAC地址,硬件地址,物理地址以及适配器地址)自学机制和过滤功能控制网络流量。
FCS:用CRC(Cyclic Redundancy Check,循环冗余校验码)方式校验数据帧中的位。有时由于噪音导致通信传输当中数据信号越来越弱,而这种CRC正是用来检查数据帧是否因此而受到破坏的。
-
有些网桥能够判断是否将数据报文发给相邻的网段,这种网桥被称为自学式网桥。这类网桥会记住曾经通过自己转发的所有数据帧的MAC地址,并保存到自己的内存表中。因此,可以判断哪个网段中包含持有那类MAC地址的设备。
-
交换集线器(Hub),现在基本也属于网桥的一种,交换集线器中连接电缆的每个端口都能提供类似网桥的功能。
1.6.4 路由器/3层交换机
- 路由器是在OSI模型的第三层——网络层面上连接两个网络,并对分组报文进行转发的设备。
- 网桥是根据物理地址进行处理,而路由器/3层交换机则是根据IP地址进行处理的。由此,TCP/IP中网络层的地址就成为了IP地址。
- 路由器可以连接不同的数据链路。如连接两个以太网,或者连接一个以太网与一个FDDI。
- 路由器还有分担网络负荷的作用,甚至有些路由器具备一定的网络安全功能。
1.6.5 4~7层交换机
- 4~7层交换机负责处理OSI模型中从传输层至应用层的数据。
用途
- 用于负载均衡。
- 带宽控制。
- 广域网加速器。
- 特殊应用访问加速以及防火墙。
1.6.6 网关
- 网关是OSI参考模型中负责将从传输层到应用层的数据进行转换和转发的设备,用于处理传输层以上的数据。
- 网关不仅转发数据还负责对数据进行转换,它通常会使用一个表示层或应用层网关,在两个不能进行直接通信的协议之间进行翻译,最终实现两者之间的通信。
- 在使用www时,为了控制网络流量以及出于安全的考虑,有时会使用代理服务器。这种代理服务器也是网关的一种,称为应用网关。有了代理服务器,客户端与服务器之间无需在网络层上直接通信,而是从传输层到应用层对数据和访问进行各种控制和处理。