本章总结了深入理解 TCP/IP 所必备的基础知识,包括计算机与网络发展的历史及其标准化的过程、OSI参考模型、网络概念的本质、网络构建的设备等。
1.1 计算机网络出现的背景
计算机:
- 独立模式/单机模式:每个计算机之间相互独立,每个终端分别持有数据
- 网络互连模式:每个人使用各自独立的计算机,共享数据由服务器集中管理
计算机网络:
- WAN 广域网:跨接相距较远的计算机或 LAN 的网络
- LAN 局域网:一栋楼或大学校园中有限的、狭小的、区域内网络
私有网络 → 互联网
1.2 计算机与网络发展的 7 个阶段
- 批处理:用户事先将程序和数据装入卡带或磁带送到计算机中心运行。批处理时代的计算机主要用于大规模计算或处理。
- 分时系统:多个终端连接同一台计算机,允许多个用户同时使用一台计算机的操作系统,让用户感觉在独占使用一台计算机。分时系统的重要特性包括:多路性、独占性、交互性和及时性。
- 计算机之间的通信:区别于分时系统(一台计算机与多台终端之间的连接(星型))。便于计算机之间传输数据,提高了计算机的可用性。可以使用多台计算机进行分布式处理。
- 计算机网络的产生:让各种各样的计算机相互连接
- 互联网的普及:
- 以互联网技术为中心的时代:IP网取代电话网
- 从“单纯建立连接”到“安全建立连接”:
- 手握金刚钻的 TCP/IP
1.3 协议
协议:是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”。两台计算机之间必须能够支持相同的协议,并遵循相同协议进行处理,才能够实现通信。
- 互联网代表性协议:IP, TCP, HTTP 等,TCP/IP 是这些协议的集合
- LAN(局域网)常用协议:IPX/SPX
分组交换协议:
- 分组交换是将大数据分割成一个个包/分组(packet)进行传输。
- 协议规定了报文首部(每个分组都带有报文首部),一般包含发送端地址、接收端地址和分组序号(接收方将接收到的分组按序号重新装配)等
1.4 协议由谁规定
- 协议的标准化:使得所有遵循标准协议的设备不再因为计算机硬件或操作系统的差异而无法通信,也推动了计算机网络的普及。
- ISO 制定了一个通信的国际标准 OSI,虽然 OSI 所定义的协议并未普及,但作为其设计之初的指导方针的 OSI 参考模型却常被用于网络协议的制定。
- TCP/IP 不是 ISO 指定的国际标准,但是是最为广泛使用的协议,也是互联网通信的业界标准。
1.5 协议分层与 OSI 参考模型
协议的分层:类似于计算机软件中的模块化开发,每一层独立实现不同的责任和义务,组合起来实现网络通信。每个分层都接收由它下一层所提供的特定服务,并且负责为自己的上一层提供特点的服务。
- 分层的优点:模块化开发,每个分层可以独立使用,即使某些层发生变化,也不会波及其它层或整个系统。可以构造一个扩展性和灵活性都较强的系统。通过分层能够细分通信功能,更易于单独实现每个分层的协议,并界定各个分层的具体责任和义务。
分层的缺点:过于模块化,使处理变得更加沉重,每个模块都不得不实现相似的处理逻辑等
接口:上下层之间交互时所遵循的约定叫做“接口”
- 协议:同一层之间的交互所遵循的约定叫做“协议”
OSI 参考模型中定义每一层作用的是协议。
分层名称 | 功能 | 每层功能概览 | |
---|---|---|---|
7 | 应用层 | 针对特定应用的协议。 为应用程序提供服务并规定应用程序中通信相关的细节。 |
针对每个应用的协议,eg. - 电子邮件:电子邮件协议 - 远程登录:远程登录协议 - 文件传输:文件传输协议 |
6 | 表示层 | 设备固有数据格式和网络标准数据格式的转换。 即,将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。 |
接收不同表现形式的信息,如文字流、图像、声音等 格式化编码 |
5 | 会话层 | 通信管理。负责决定建立和断开通信连接(数据流动的逻辑通路)的时机,以及数据的分割等数据传输相关的管理。 管理传输层以下的分层。 |
何时建立连接,何时发送数据,何时断开连接以及保持多久的连接? 采用何种连接方式发送信息? |
4 | 传输层 | 管理两个节点之间的数据传输。负责可靠传输(确保数据被可靠地传送到目标地址)。 进行建立连接和断开连接的处理。 只在通信双方节点上进行处理,而无需在路由器上处理。 |
是否有数据丢失? |
3 | 网络层 | 地址管理(寻址)与路由选择。 将数据传输到目标地址。(端到端)(目标地址可以是多个网络通过路由器连接而成的某一个地址) |
经过哪个路由传递到目标地址? |
2 | 数据链路层 | 物理层面上互联设备之间传送和识别数据帧。 将0、1划分为有意义的数据帧传送给对方(数据真的生成与接收) |
数据帧与比特流之间的转换,分段转发 |
1 | 物理层 | 以“0”、“1”代表电压的高低、灯光的闪灭。 界定连接器和网线的规格。 |
- 比特流与电子信号之间的转换 - 连接器与网线的规格 |
相互直连的设备之间使用 MAC 地址(物理地址/硬件地址)实现传输,目的是为了识别连接到同一个传输介质上的设备。 |
1.6 OSI 参考模型通信处理举例
1.7 传输方式的分类
- 面向有连接型与面向无连接型
- 面向有连接型:在通信传输之前,需要先在收发主机之间连接一条通信线路。通信传输后,断开连接,无法再发送数据。
- 优点:①由于通信传输前后必须在通信双方建立和断开连接,对端之间没有连接就无法通信,可以避免发送无谓的数据。②比无连接型通信靠谱
- 类比:打电话,必须对方拿起电话才能真正通话,通话结束断开连接
- 面向无连接型:无需确认对端是否存在,发送端可以随时发送数据。反之,接收端也不知道自己会在何时从哪里接收到数据。因此,接收端需要时常确认是否收到了数据。
- 优点:减轻处理负担,易于制作一些低成本的产品
- 类比:邮局寄包裹,营业员不需要确认收件人是否能收到包裹
- 面向有连接型:在通信传输之前,需要先在收发主机之间连接一条通信线路。通信传输后,断开连接,无法再发送数据。
- 电路交换和分组交换
- 电路交换
- 主要用于过去的电话网
- 面向连接
- 建立连接:在电路交换中,交换机主要负责数据的中转处理。计算机首先被连接到交换机上,而交换机与交换机之间再有众多通信线路连接。计算机之间发送数据时,需要先通过交换机与目标主机建立通信电路,即建立连接。
- 特性:①建立连接后,通信双方的两台计算机可以一直使用这条电路直到断开连接,并且是独占线路。因此这两台计算机的通信不结束,其它计算机就无法使用这条电路来收发数据。如果并发用户数超过交换机之间的通信线路数,就意味着通信无法实现。②计算机之间传输速度不变
- 分组交换
- 让连接到通信电路的计算机将所要发送的数据分成多个数据包,按照一定的顺序排列之后分别发送。分组的过程中,在每个分组的首部写入发送端和接收端的地址。
- 通信过程:在分组交换中,由分组交换机(路由器)连接通信线路。发送端计算机将数据分组发送给路由器,路由器收到分组数据后缓存到自己的缓冲区,然后再转发给目标计算机(因此分组交换也成为蓄积交换)。路由器收到数据后按顺序缓存到相应的队列,再以先进先出的顺序(或优先级)将数据注意发送出去。
- 特性:在分组交换中,计算机与路由器之间,以及路由器与路由器之间通常只有一条通信线路,是共享线路。
- 缺点:通信线路的速度可能会有所不同。根据网络拥堵的情况,数据到达目标地址的时间不定。另外,路由器的缓存饱和或溢出时,可能发生分组数据丢失、无法到达对端的情况。
- 优点:有了分组交换,数据被细分,所有的计算机可以一齐收发数据,提高了通信线路的利用率。
- 电路交换
- 根据接收端数量分类
- 单播
- 一对一通信
- 例:早先的固定电话
- 广播
- 将消息从一台主机发送给与之相连的所有其他主机
- 例:电视播放
- 广播域:进行广播通信的计算机有它们的广播范围(即广播域),只有在这个范围之内的计算机才能收到相应的广播信息。正如电视信号有自己的频段,在相应频段的可接受范围内才能收到电视信号。
- 多播
- 限定某一组主机作为接收端,将消息发给这个组内的所有接受主机。
- 例:电视会议
- 任播
- 面向特定的一群主机(这点类似多播),选择一台最符合网络条件的主机作为目标主机发送消息。通常,被选中的特定主机会返回一个单播信号,随后发送端主机只跟这台主机进行通信。
- 例:DNS根域名解析服务器
- 单播
1.8 地址
- IP地址
- IP地址由网络号+主机号组成。相同的网络号说明处于同一个网段,通常属于同一个部门或集团组织
- IP寻址:路由控制表
- MAC地址
- MAC地址由设备的制造商针对每块网卡进行指定,是真正负责最终通信的地址
- MAC寻址:MAC地址转发表
1.9 网络的构成要素
- 通信媒介与数据链路
- 网卡
- 中继器(再生信号放大器)
- 对减弱的信号进行放大和发送
- 通过物理层的连接延长网络,但距离不能无限扩大
- 即使在数据链路层出现某些错误,中继器仍然转发数据(不负责判断数据是否有错误)
- 中继器无法改变传输速度,不能在传输速度不同的媒介之间转发(只负责将电信号转换为光信号)
- 连接两个不同速度的网络需要的是网桥或路由器这样的设备
- 网桥 / 2层交换机
- 帧转发:网桥根据数据帧的内容转发数据给相邻的其它网络(临时存储数据帧,在生成新的帧转发)
- 网桥没有连接网段个数的限制
- 网桥基本只用于连接相同类型的网络,但有时也可以连接传输速率不同的网络
- 帧过滤/差错校验:网桥用CRC(循环冗余校验码)方式校验数据帧中的FCS数据位是否正确,丢弃损坏的数据,避免发送给其他网段
- 流量控制:网桥能通过地址自学机制和过滤功能控制网络流量
- 这里的地址指MAC地址、硬件地址、物理地址及适配器地址,是网络上针对网卡NIC分配的具体地址
- 路由器 / 3层交换机
- 路由器是连接网络与网络的设备
- 可以将分组报文发送给另一目标路由器地址(根据IP地址进行处理)
- 基本上可以连接任意两个数据链路
- 路由器还有分担网络负荷的作用,以及一定的网络安全功能
- 路由器会分割数据链路,因此数据链路层的广播消息将无法继续传播
- 4-7层交换机
- 处理TCP等协议的传输层及其上面的应用层的数据
- 带宽控制:eg.在网络比较拥堵的时候,优先处理语音这类对及时性要求较高的通信请求,放缓邮件处理等通信请求
- 例:
- 负载均衡器:向多个服务器分散压力,但这些服务器前端有一个统一的访问地址
- 广域网加速器、特殊应用访问加速、防火墙
- 网关
- 与4-7层交换机一样,都是处理传输层及以上的数据
- 网关不仅负责数据的转发,还要负责协议的转换(翻译,实现两个不能直接通信的协议之间的通信)
- eg.互联网邮件与手机邮件之间的转换服务
- 应用网关:在同一种类型的协议之间转发数据叫做应用网关
- 代理服务器:使用www(万维网)时,为了控制流量以及处于安全的考虑,有时会使用代理服务器。代理服务器属于应用网关,使得客户端与服务器之间无需在网络层上直接通信,而是从传输层到应用层对数据和访问进行各种控制和处理。
- 例:防火墙,通过网关通信,针对不同应用提高安全性
- 代理服务器:使用www(万维网)时,为了控制流量以及处于安全的考虑,有时会使用代理服务器。代理服务器属于应用网关,使得客户端与服务器之间无需在网络层上直接通信,而是从传输层到应用层对数据和访问进行各种控制和处理。
1.10 现代网络实态
网络的构成 | 网络 | 类比 | 功能 | | —- | —- | —- | | 核心网/骨干网 | 高速公路 | 专注于提高业务传输性能和网络的生存性 | | 边缘网络 | 高速公路出入口 | 业务智能化
常用设备:多功能路由器、3层交换机、2层交换机 | | 接入层/汇聚层 | 高速公路出入口连接的国道、省道 | |互联网通信
- 移动通信
- 基站相当于网络的接入层
- 从信息发布者的角度看网络
- 数据中心由大型服务器、存储以及计算机网络构成,有些大规模的数据中心直接连接到主干网,小规模的数据中心多连接到边缘网络
- 数据中心内部的网络中分布着 3 层交换机和高速路由器。为了减少网络延迟,也有人正在研究高性能 2 层交换机的使用。