计算机网络01
第一章 计算机网络与因特网
21-01-05前言:为了考试开始计算机网络的复习,刚好系统的梳理一遍计算机网络的重点。目前先根据老师的考点进行总结,过了期末周再全面地进行梳理。参考博客阮一峰老师yyds
一.协议的概念
协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对收到信息或发生的事件所采取的“动作”。
它的三要素是:
- 语法 即数据与控制信息的结构或格式
- 语义 需要发出何种控制信息,完成何种动作以及做出何种响应
- 时序 即事件实现顺序的详细说明
二.因特网的构成
从因特网的工作方式上来看,可以划分为:
- 边缘部分
由所有连接在因特网的主机组成,这部分用户可以直接使用,主要是供用户主机之间进行通信和资源共享 (传送数据、音频等) - 核心部分
由大量网络与连接网络的路由器组成。作用是供边缘系统提供服务(提供连通性和交换)
1.边缘部分
将与因特网相连的计算机与其他设备称为端系统,也叫做主机。
在端系统之间的通信方式有两种:
-
客户端/服务器(c/s方式)
所描述的是进程之间服务和被服务的关系,客户是服务的请求方,服务器是服务的提供方,客户发送请求,接收服务器响应。 -
P2P
两个主机在通信时并不区分哪一个是服务请求方还是服务提供方,通信在对等实体之间直接进行(如QQ)
2.核心部分
网络核心部分是互联网中最复杂的部分,因为网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一台主机都能向其他主机通信。
核心部分最重要的是路由器,路由器是实现分组交换的关键构建,其任务是转发收到的分组。
三.数据交换的方式
分为电路交换、分组交换与报文交换,其中计算机采用的方式是分组交换。本次详细介绍电路交换与分组交换 因为要考这两个(老实人)
电路交换
电路交换技术是应用于传统的电话通讯网,在互联网中被丢弃。该网络必须在发送方和接收方之间建立一条链接(电路),并且一旦连接建立了后,两个用户会一直占用端到端的通信资源,导致线路利用率很低。
电路交换的三个阶段:
- 1.建立连接(呼叫/电路建立)
- 2.通信
- 3.释放连接(拆除电路)
电路交换适合于数据量很大的实时性传输,核心路由器之间可以使用电路交换
分组交换
分组交换技术是采用存储转发技术,按需分配传输线路资源。
通常端系统笔记交换报文,报文可以执行一种控制功能,也可以包含数据。为了从源端系统向目的端系统发送一个报文,源将报分分成一个个较小的等长数据段,并在美个数据段前面加上必要的控制信息组成的首部(包含源地址和目的地址),称之为分组。
分组交换网中路由器收到一个分组,先暂时存储,根据收到的分组的首部中的地址信息找到合适的接口转发出去,再把分组交给下一个路由器。交换过程中每一个分组单独地选择路径,这些路径可以同时被多个计算机来使用,不占线,不需要建立连接。
优点 | |
---|---|
高效 | 动态分配传输带宽,对通信链路是逐段占用 |
灵活 | 以分组为传送单位和查找路由,为每一个分组独立地选择最合适的转发路由 |
迅速 | 不必先建立连接就能向其他主机发送分组 |
可靠 | 保证可靠性的网络协议;分布式的路由选择协议使网络有很好的生存性 |
缺点 | |
时延 | 分组在各结点存储转发时需要排队,这会造成一定的时延或丢失,不适合实时服务,需要协议处理可靠数据传输和拥塞控制。 |
开销 | 分组交换需要报文的拆分与重组,必须携带首部 |
四.网络性能指标
速率
速率即数据率(data rate),或称数据传输速率、比特率(bit rate),是网络中最重要的性能指标
单位时间(秒),传输信息(比特)量 (b/s(或bps)、kb/s、Mb/s、Gb/s)
当提到网络的速率时,速率往往是指额定速率或标称速率,而并非网络实际上运行的速率。
带宽
原本指信号具有的频带宽度, 即最高频率与最低频率之差,单位是赫兹(Hz)。网络的“带宽”通常是数字信道(链路)所能传送的“最高数据率”,单位:b/s (bps)
吞吐量
吞吐量表示在单位时间内通过某个网络的实际数据量。
时延
- 处理时延
主机或路由器在收到分组时需要花费一定时间进行处理,例如分析分组的首部,从分组中提取数据部分、进行差错检验或查找合适的输出链路等。 - 排队时延
指分组等待在链路传输中输入输出列队里的排队等待转发的时间。排队时延的长短取决于网络当时的通信量,当网络的通信量很大时会发生队列溢出,使分组丢失。 - 传输时延(发送时延)
指将分组的所有比特推(传)向链路所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
计算公式:传输时延= L / R【R = 链路的传输速率 (bps), L = 分组长度 (比特)】 - 传播时延
一个比特从链路的起点到下一节点(路由器)传播所需要的时间。其速度以链路的传播速率传播。
传播时延发生在机器外部的传输信道媒体上,而与信道的发送速率无关。信号传送的距离越远,传播时延就越大。
时延带宽积
链路的时延带宽积又称为以比特为单位的链路长度。
计算公式: 时延带宽积=传播时延*带宽 = dprop * R (bits)
丢包率
由于队列缓存容量有限,因此分组到达已满队列将被丢弃 (即丢包)。丢弃分组可能由前序结点或源重发(也可能不重发)
计算公式:丢包率=丢包数/已发分组总数
五.网络体系结构
网络体系结构是从功能上描述计算机网络结构,是分层结构,每层遵循某个/些网络协议完成本层功能。计算机网络体系结构是计算机网络的各层及其协议的集合,是一个计算机网络的功能层次及其关系的定义,是抽象的。
TCP/IP模型、OSI/RM模型、五层原理模型之间的关系:
- 层与协议:每一层都是为了完成一种功能,为了完成这些功能,需要遵循一些规则,这些规则就是协议,每一层都定义了一些协议。
- 对等层:在网络体系结构中,将数据(即数据单元加上控制信息)直接传递给对方的任何两个同样的层次。(如OSI运输层与TCP/IP运输层)
- 服务访问点SAP:在同一系统中相邻两层的实体进行交互(即交换信息)的地方,实际上就是一个逻辑接口
由于OSI体系结构太复杂,在实际应用中TCP/IP的四层体系结构得到广泛应用,且在1225日的春招计划中也介绍过了TCP/IP四层结构,作为折中此次介绍五层协议体系结构。
应用层
应用层的作用就是规定应用程序的数据格式。
它是网络应用程序以及他们的应用层协议存留的地方。应用层包括了许多协议(HTTP、SMTP、FTP等),应用层协议分布在多个端系统上,而一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组,并把这种信息分组称为报文。
这一层是计算机网络中的最高层,也是我们作为一般用户经常直接接触的一层。
传输层
由于一个主机可同时运行多个进程,因此传输层有复用和分用的功能。复用就是多个应用进程可同时使用运输层的服务,分用是运输层把收到的信息分别交付给上面的应用层的相应进程。
而所谓端口,则代表每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口,因此不同的程序就能取到自己所需要的数据。
端口一般是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口。实际应用中应用程序会随机选用一个端口,并与服务器的相应端口联系。
传输层的功能,就是建立"端口到端口"的通信,进行“进程-进程”的数据传输。
在这一层主要使用两种运输协议,即 TCP-面向连接的
和 UDP-无连接的
,将在第三章进行详细讲解。
网络层
"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流。
网络层的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做 "网络地址" ,简称"网址"。它负责源主机到目的主机的数据分组路由与转发。
网络层协议通常包括: Internet协议(IP协议)、Internet控制信息协议(ICMP)、地址解析协议(ARP)、反向地址解析协议(RARP)。
规定网络地址的协议叫IP协议,所定义的地址叫IP地址,由32个二进制位组成,从0.0.0.0一直到255.255.255.255。IP地址分为两个部分,前面一部分代表网络,后一部分代表主机。处于同一个子网的IP地址,其网络部分与子网掩码必定是相同的。
同一个子网络,就采用广播方式发送,否则就采用”路由”方式发送。IP协议作用主要是为分配IP地址和判断那些IP在同一个网络。
后面我们将单独介绍可变长度掩码的ip子网划分方法。
数据链路层
网络层必须依靠链路层的服务,在链路层中,将网络层传下来的IP数据报组转成帧,在连个相邻节点透明的传送帧中的数据。每帧中包含必要的控制信息(如同步信息、地址信息、差错控制等)。其作用是 规定了相邻节点(主机和路由器之间或两个路由器之间)数据传输
- 以太网协议:
规定一组电信号组成帧,帧由 标头(Head)和 数据(Data)组成。"标头"包含数据包的一些说明项,如发送者与接受者的地址(MAC地址)、数据类型等等;"数据"则是数据包的具体内容。 - MAC地址:
每块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示。前6个十六进制数是厂商编号,后6个是该厂商的网卡流水号。 - 广播:
通过ARP协议可以知道本网络内的所有机器的MAC地址,以太网通过广播的方式把数据发送到本网络内的所有机器上,让其根据MAC地址自己判断是否接受数据。
而不在同一个子网络,便把数据包传送到两个子网络连接处的网关(gateway),让网关去处理。
物理层
物理层的主要任务就是规定各种传输介质和接口与传输信号相关的一些特性(网络的一些电气特性),将帧的一个个比特从一个节点移动到下一个节点(负责传送0和1的电信号)。
在这一层,数据还没有组织,仅作为原始的比特流提交给上层——数据链路层。这一层的协议仍然是链路相关的,并且进一步地与该链路(双绞铜线、光纤)的实际传输媒体相关。