1 简介
1.1 概念 组成 功能 分类
计算机网络概念:
互联的自制的计算机集合
计算机网络的功能:
数据通信(保证了不同主机之间的连通性), 资源共享(硬件资源共享, 软件资源共享, 数据资源共享), 分布式处理, 提高可靠性, 负载均衡
计算机网络组成:
按照组成部分划分为硬件, 软件, 协议三个部分, 按照工作方式划分为边缘部分(比如主机, 端系统), 核心部分(比如路由器, 网络), 按照功能方式划分为通信子网(实现数据共享), 资源子网(实现资源共享).
计算机网络分类:
按照适用范围划分为广域网(跨度广, 使用交换技术), 城域网(城市内网络), 局域网(区域小, 比如校园网就是多个局域网组成, 通常使用广播技术), 个人区域网(比如把自己使用的各种电子设备连接起来), 按照使用者划分为公用网(中国电信等)和专用网(军队, 银行, 公安等), 按照交换技术划分为电路交换, 报文交换, 分组交换, 按照拓扑结构划分为总线型, 星型, 环型和网状型(通常使用于广域网). 按照传输方式划分为广播式网络以及点对点网络.
1.2 标准化工作及相关组织
标准可分为:
- 法定标准: 由权威机构指定的正式的合法的标准(OSI标准)
- 事实标准: 某些主流标准(TCP/IP协议)
主流的因特网标准是以RFC(request for comments)的形式存在的, 一个RFC要上升为因特网标准需要经过下面四个阶段:
- 因特网草案(internet draft): 这个阶段还不是RFC文档
- 建议标准: 开始成为RFC文档
- 草案标准:
- 因特网标准:
1.3 计算机网络的几种性能指标
- 速率(数据率/数据传输率/比特率): 连接在计算机网络的主机在数字信道上传送数据位数的速率, 单位是b/s, kb/s, Mb/s, Gb/s, Tb/s(这里边的b指的是bit而不是byte). 注意这里边的1kb/s = 1000b/s而不是1024b/s.
- 带宽(原本指某个信号具有的频带宽度, 即最高频率与最低频率之差, 单位是Hz, 原用于模拟信号传递)在数字通信领域通常指单位时间内从网络中的某一点到另一点所能通过的"最高数据率", 单位与速率相同, 即b/s, kb/s, Mb/s, Gb/s, Tb/s. 也指设备的最高传输速率.
- 吞吐量: 单位时间内通过某个网络(或信道, 接口)的数据量, 单位同样是b/s, kb/s, Mb/s, Gb/s, Tb/s.
- 时延: 指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间, 也叫延迟或迟延, 单位是s.包括发送时延(从发送分组的第一个比特开始到最后一个比特发送完毕所需要的时间, 发送时延 = 数据长度 / 信道带宽), 传播时延(取决于信号传播速度以及传播长度, 传播时延 = 信道长度 / 电磁波在信道传播速度), 排队时延(等待输出/输入链路可用的时间), 处理时延(检错, 找出口的时间)
- 时延带宽积: 传播时延 * 带宽, 单位是bit, 描述的是链路中数据容量.
- 往返时延(RTT): 从发送方发送数据开始, 到发送方收到接收方的确认, 总共经历的时延.
- 利用率: 分为信道利用率和网络利用率, 信道利用率 = 有数据通过时间占比, 网络利用率为信道利用率加权平均.
2 层次结构
2.1 分层结构, 协议, 接口, 服务
2.1.1 通讯前提
一个终端发给另一个终端数据的准备工作:
- 发起通信的计算机必须将数据通信的通路进行激活.
- 告诉网络如何识别目的主机.
- 发起通信的计算机要查明目的主机是否开机, 并且与网络连接正常
- 发起通信的计算机要弄清楚, 对方计算机中文件管理程序是否已经做好准备工作(是否已经做好准备, 是否有足够空间).
- 确保差错和意外可以解决.
2.1.2 分层原则
- 每层之间相互独立: 每层只实现一种相对独立的功能.
- 每层之间界面要自然清晰, 易于理解, 相互交流尽可能少.
- 结构上可分割开, 每层都采用最合适的技术来实现.
- 要保持下层对上层的独立性, 上层单向使用下层提供的服务.
- 整个分层结构应该能促进标准化工作.
2.1.3 分层结构
- 实体: 第n层的活动元素成为n层实体, 也就是一端的某一层和另一端的相同层处理的数, 互相叫做对方的对等实体.
- 协议: 为进行网络中的对等实体数据交换而建立的规则, 标准或约定成为网络协议. 协议有三大要素: 语法(规定传输数据的格式), 语义(规定所要完成的功能), 同步(规定各种操作的顺序).
- 接口(访问服务点SAP): 上层使用下层服务的入口.
- 服务: 下层为上层提供的功能调用.
2.1.4 SDU, PCI, PDU:
- SDU服务数据单元: 为完成用户所要求的功能而应传送的数据(可以理解为实际需要的数据).
- PCI协议控制信息: 控制协议操作的信息(比如两个终端相同层之间进行数据交换的话得有个协议, 就是在元数据前面加个这玩意).
- PDU协议数据单元: 对等层次之间传送的数据单位(把实际要传输的数据前面再加上协议, 最终就可以互相传了).
2.1.5 总结:
- 网络体系结构是从功能上描述计算机网络结构.
- 计算机网络体系结构简称网络体系结构, 是分层结构.
- 每层遵循某个/些网络协议以完成本层功能.
- 计算机网络体系结构是计算机网络的各层及其协议的集合.
- 第n层在向第n+1层提供服务时(下层向上层), 此服务不仅包含第n层本身的功能, 还包含由下层服务提供的功能.
- 仅仅在相邻层间有接口, 且所提供服务的具体实现细节对上一层完全屏蔽.
- 体系结构是抽象的, 而实现是指能运行的一些软件和硬件.
2.2 OSI参考模型
OSI参考模型是7层结构, 是法定模型. 但是应用失败.
2.2.1 OSI 7层结构
OSI参考模型为7层结构, 自下而上分别是:
- 物理层 在物理媒体上实现比特流的透明传输
- 数据链路层 把网络层传下来的数据报组装成帧
- 网络层 那分组从源端传到目的端, 为分组交换网上的不同主机提供通信服务, 网络层的传输单位是数据报.
- 传输层 负责主机中两个进程的通信, 即端到端的通信, 传输单位是报文段或用户数据报.
- 会话层 向表示层实体/用户进程提供建立连接并在连接上有序地传输数据
- 表示层 用于处理在两个通信系统中交换信息的表示方式(语法和语义)
- 应用层 所有能和用户交互产生网络流量的程序(记事本就不算, QQ, 电子邮箱就是)
其中123为数据通信, 也就是通信子网, 567为数据处理, 也就是资源子网, 第四层为两个子网的接口.
2.2.2 OSI大致流程
首先某一端A如果要发送某个data至端B, 会首先给data加上一些控制信息(也就是PCI), 包括数据检查, 端B的地址信息, data的优先级等, 传输给下层(表示层)data + H7(H7代表第7层的PCI), 其到了表示层之后就形成了7-PDU(表示第7层传来的协议数据单元, PDU概念见上面), 7-PDU在表示层再加上H6, 形成了6-PDU传给下层会话层, 会话层同样给6-PDU加上H5形成了5-PDU, 传给传输层, 传输层给5-PDU加上了H4形成了4-PDU传给了网络层, 网络层给4-PDU加上了H3形成了3-PDU传给了数据链路层, 到数据链路层情况有了变化, 数据链路层不仅给3-PDU后面加上了H2, 在其头部加上了T2形成了2-PDU, 到了物理层就把2-PDU直接传输给对应端(路由器或者是B端), 如果最终到了B端的物理层, 会自上而下, 同样的层会用对应协议还原数据传给上层, 最终在B端的应用层获取到了对应数据.
2.2.3 OSI各层具体功能
- 应用层, 应用层就是所有正在联网的应用程序
- 表示层的作用是: 1.数据格式变换: 两台通信的主机的数据格式可能不相同, 为了保证数据传输的成功, 就会把数据格式进行转换. 2. 加密和解密. 3. 数据的压缩和恢复.
- 会话层, 会话层会建立连接并保证同步. 会话层功能: 1. 建立, 管理, 终止会话. 2. 使用校验点可使会话在通信失效时从校验点/ 同步点继续恢复通信, 实现数据同步(适用于传输大文件). 主要协议有ADSP, ASP.
- 传输层 功能有: 1 可靠传输, 不可靠传输. 可靠传输是指在数据传输阶段, 如果传输较大数据, 会把数据分解成一个一个的报文段, 依次进行传输, 如果一个报文段接收端收到了, 会返回给传输端确认信息, 传输端收到确认信息后才会发送下一个报文段. 这个就是可靠传输. 不可靠传输就是就不会有确认机制. 2 差错控制. 3 流量控制. 指的就是控制发送方的发送速度. 4 复用分用 复用就是指控制多个应用程序进程共用一个网络进程, 分用就是指收到的数据会发送给对应的应用程序. 主要协议: TCP/UDP.
- 网络层 网络层传递单位是数据报, 如果数据报过长就会切割成分组. 功能有:1. 路由选择. 2. 流量控制. 3.差错控制. 4.拥塞控制. 主要协议有IP, IPX, ICMP, IGMP, ARP, RARP, OSPF.
- 数据链路层 主要功能:1. 成帧(定义帧的开始和结束) 2. 差错控制 3. 流量控制 4. 访问接入控制. 主要协议有SDLC, HDLC, PPP, STP等
- 物理层 传输单位是比特. 主要功能: 1.定义接口特性. 2.定义传输模式(单工, 半双工, 同一时间只能有一方在发送数据, 双工). 3. 定义传输速率. 4. 比特同步. 5. 比特编码. 主要协议有: Rj45, 802.3等.
2.3 TCP/IP参考模型和5层参考模型
2.3.1 TCP/IP模型四层结构
TCP/IP模型主要分为四层:
- 网络接口层(对应OSI的物理层和数据链路层)
- 网际层(对应OSI的网络层)
- 传输层(对应OSI的传输层)
- 应用层(对应OSI的应用层, 表示层, 会话层)
2.3.2 TCP/IP模型协议栈
TCP/IP的协议栈:
- Ethernet/ATM/Frame Relay, 属于网络接口层的协议
- IP, 属于网际层的协议
- TCP/UDP, 属于传输层的协议
- HTTP/FTP/DNS, 属于应用层的协议
2.4 OSI与TCP/IP对比
2.4.1 相同点
- 分层
- 基于协议栈的概念
- 可以实现异构网络互联
2.4.2 不同点
- OSI定义三点: 服务, 协议, 接口
- OSI先出现, 参考模型先于协议发明, 不偏向特定协议
- TCP/IP设计之初就考虑到异构网互联问题, 将IP作为重要层次
- OSI协议的网络层通信方式有两种: 无连接和面向连接, 其中面向连接有三个阶段: 第一个阶段是建立连接, 第二是连接成功, 第三是数据传输完毕释放连接, 而无连接没有这么多阶段, 直接进行数据传输, TCP/IP模型的通信方式就是无连接. 而在传输层, OSI是面向连接的, TCP/IP是无连接以及面向连接.
2.5 五层参考模型
五层参考模型与TCP/IP模型不同之处为网络接口层又分为了OSI的数据链路层和物理层.