学校里没机会上计算机网络的课(因为名额满了就不分给咱学院了),只好自学了…
不过也没啥,大学不就是大家来自学的意思嘛(bushi
网课是网上推荐较多的,bilibili上面湖科大的视频
希望能坚持看完吧…
因特网概述
网络、互联网和因特网
- 网络由若干个结点和这些结点的链路组成
- 多个网络还可以通过路由器互连,这样就构成了一个覆盖范围更大的网络,即互联网,因此,互联网是“网络的网络”。
- 因特网是世界上最大的互联网络。
因特网服务提供者ISP (Internet Service Provider)
(比如我国的中国电信、移动和联通
因特网的标准化工作
因特网所有的RFC(Request For Comments)技术文档都可以从因特网上免费下载(http://www.ietf.org/rfc.html)
因特网的组成
- 边缘部分:由所有连接在因特网上的主机组成,这部分是用户直接使用的,用来进行通信和资源共享
- 核心部分:由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的(提供连通性和交换)。
三种交换方式
电路交换(Circuit Switching)
- 电话交换机接通电话线的方式称为电路交换
- 从通信资源的分配角度来看,交换就是按照某种方式动态地分配传输线路的资源
- 电路交换的三个步骤:建立连接(分配通信资源);通话(一直占用通信资源);释放连接(归还通信资源)
- 当使用电路交换来传送计算机数据时,其线路的传输效率往往很低,因为计算机数据是突发式地出现在传输线路上的。
分组交换(Packet Switching)
将表示消息的数据块称为一个报文,在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段。在每一个数据段前面,加上一些由必要的控制信息组成的首部后,就构成了一个分组,也可简称为包。相应地,首部也可称为包头。
首部包含了分组的目的地址,否则分组传输路径中的各分组交换机(路由器)就不知道如何转发分组了。分组交换机收到一个分组后,先暂时将分组存储下来,再检查其首部,按照首部中的目的地址进行查表转发,找到合适的转发接口,通过该接口将分组转发给下一个分组交换机。主机收到数据后,去除首部,再将其还原。
三方任务:
- 发送方:构造分组、发送分组
- 分组交换机(路由器):缓存分组、转发分组
- 接收方:接收分组、还原报文
报文交换(Message Switching)
报文交换的交换结点也采用分组转发的方式,但报文交换对报文的大小没有限制,这就要求交换结点有较大的缓存空间。报文交换主要用于早期的电报通信网,目前较少使用,通常被较为先进的分组交换所取代。
三种交换方式对比
电路交换:
通信之前建立连接,建立好连接后使用该连接进行数据传送,数据传送结束后释放连接,归还通信资源。一旦建立连接,中间各节点交换机就是直通形式的,比特流可以直达终点。
优点:
- 通信时延小:通信线路为通信双方用户专用,数据直达,因此通信时延小,在连续传输大量数据时,优点明显
- 有序传输:双方只有一条专用线路,数据只在这一线路传输,不存在失序问题
- 没有冲突:不会出现争用物理信道问题
- 适用范围广:可以传输模拟和数字信号
- 实时性强
- 控制简单
缺点:
- 建立连接时间长
- 线路独占,使用效率低
- 灵活性差:只要所连接的物理通路任意一点出现故障,就必须重新拨号建立新的连接
- 难以规格化:不同类型、规格、速率的终端很难进行相互通信,也难以在通信过程中进行差错控制
报文交换:
**随时可以发送报文,不需要事先建立连接。**整个报文先传送到相邻结点交换机,全部存储下来后进行查表转发,转发到下一个结点交换机。报文需要在各结点交换机上进行存储转发。由于不限制报文的大小,因此需要各结点交换机都具有较大的缓存空间。
优点:
- 无需建立连接:不存在建立通路的时延
- 动态分配线路
- 提高线路可靠性:如果某条传输路径发生故障,会重新选择另一条路径传输数据,提高了传输可靠性
- 提高线路利用率
- 提供多目标服务
缺点:
- 引起了转发时延
- 需要较大的存储缓存空间
- 需要传输额外的信息量
分组交换
**随时可以发送分组,不需要事先建立连接。**构成原始报文的分组,依次在各结点交换机上存储转发。各结点交换机在发送分组的同时,还缓存接收到的分组。构成原始报文的分组在各结点交换机上进行存储转发,相比报文交换减少了转发时延,还可以避免过长的报文长时间占用链路,同时也有利于进行差错控制。
优点:
- 无需建立连接
- 线路利用率高
- 简化存储管理:分组长度固定,缓冲区大小固定,管理容易
- 加速传输:由于分组逐个传输,后一个分组的存储和前一个分组的转发可以同时进行
- 减少出错概率和重发数据量:分组比报文小,出错概率必然减小,即便分组出错也只需重传出错的部分,而不是重传整个报文
缺点:
- 引起转发时延
- 需要传输额外的信息量
- 对于数据报服务,存在失序、丢失或重复分组的问题;对于虚电路服务,存在呼叫建立、数据传输和虚电路释放三个过程。
计算机网络的定义和分类
计算机网络的定义
计算机网络的最简单定义:一些互相连接的、自治的计算机的集合
- 互联:计算机之前可以通过有线或无线的方式进行数据通信
- 自治:指独立的计算机,拥有自己的硬件和软件,可以单独运行使用
- 集合:至少需要两台计算机
计算机网络较好的定义:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的日益增长的应用。
- 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件
- 计算机网络并非专们用来传送数据,而是能够支持多种应用。
计算机网络的分类
- 按交换技术分类:电路交换网络、报文交换网络、分组交换网络
- 按使用者分类:公用网(公众网)、专用网
- 按传输介质分类:有限网络、无线网络
- 按覆盖范围分类:广域网WAN、城域网MAN、局域网LAN、个域网PAN
- 按拓扑结构分类:总线型网络、星型网络、环型网络、网状型网络
计算机网络的性能指标
速率
连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率。常用数据率单位如下:
- bit/s (b/s, bps)
- kb/s = 10^3 b/s (bps), KB = 2^10B, B = 8b
- Mb/s = 10^6 b/s (bps), MB = 2^20B, B = 8b
- Gb/s = 10^9 b/s (bps), GB = 2^30B, B = 8b
- Tb/s = 10^12 b/s (bps), TB = 2^40B, B = 8b
带宽
带宽在模拟信号系统中的意义:信号所包含的各种不同频率成分所占据的频率范围,基本单位为Hz
带宽在计算机网络中的意义:表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的最高数据率,基本单位为b/s
带宽的两种表述之间有着密切联系:一条通信线路的频带宽度越宽,其所传输数据的最高数据率越高。
吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。
被经常用于对现实世界中网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
吞吐量受网络的带宽或额定速率的限制。
时延
网络时延由三部分组成:发送时延、传播时延、处理时延
发送时延 = 分组长度(b)/发送速率(b/s),发送速率受网卡的发送速率、信道带宽和接口速率影响,取三者最小值。
传播时延 = 信道长度(m)/电磁波传播速率(m/s),电磁波传播速率受传播介质影响,自由空间为3e8,铜线为2.3e8,光纤为2e8
处理时延一般不方便计算。处理时延忽略不计时,无法判断哪种时延占主导,需要具体情况具体分析。
时延带宽积
传播时延与带宽的乘积
若发送端持续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特。
链路的时延带宽积又称为以比特为单位的链路长度。
往返时间RTT(Round-Trip Time)
从源主机发送分组开始,直到源主机收到来自目的主机的确认分组为止所需要的时间。
在以太网、卫星链路、无线局域网的传播过程中,卫星链路所带来的传播时延比较大(卫星距离远)。
利用率
信道利用率:表示某信道有百分之几的时间是被利用的(有数据通过)。
网络利用率:全网络的信道利用率的加权平均。
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加,因此信道利用率并非越高越好。如果令D0表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用D=D0/(1-U)公式来表示D、D0和利用率U之间的关系:当网络利用率到达50%时,时延加倍;当网络利用率超过50%时,时延急剧增大;当网络利用率接近100%时,时延趋近于无穷。因此,一些拥有较大主干网的ISP通常会控制其信道利用率不超过50%,如果超过就要准备扩容增大带宽。
也不能使信道利用率太低,会浪费通信资源。应使用一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在合理范围内。
丢包率
即分组丢失率,是指在一定时间范围内传输过程中丢失的分组数量与总分组数量的比率。丢包率可具体分为接口丢包率、结点丢包率、链路丢包率、路径丢包率和网络丢包率等。
分组丢失主要有两种情况:
- 分组在传输过程中出现误码,被结点丢弃;
- 分组到达一台队列已满的分组交换机时被丢弃,在通信量较大时可能造成网络拥塞。
因此丢包率反映了网络的拥塞情况:
- 无拥塞时路径丢包率为0
- 轻度拥塞时路径丢包率为1%~4%
- 严重拥塞时路径丢包率为5%~15%
计算机体系结构
常见的计算机体系结构
- 开放系统互连参考模型(OSI):
是一个七层协议的体系结构,从下往上依次为物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。是法律上的国际标准。 - TCP/IP体系结构:
是一个四层协议的体系结构,从下往上依次为网络接口层、网际层、运输层、应用层。是事实上的国际标准。
TCP/IP体系结构相当于将OSI体系结构的物理层和数据链路层合并为网络结构层,并去掉了会话层和表示层。此外,由于TCP/IP在网络层使用的协议是IP协议(网际协议),故网络层常被称为网际层。
用户主机的操作系统和用于网络互连的路由器中通常带有符合TCP/IP体系结构标准的TCP/IP协议族,但路由器一般只包含网络接口层和网际层。TCP/IP体系结构的网络接口层并没有规定具体内容,目的互连全世界不同的接口,因此本质上TCP/IP体系结构只有上面的三层。
- 网际层:核心协议为IP协议
- 运输层:TCP和UDP为两个重要协议
- 应用层:包含大量应用层协议,例如HTTP、SMTP、DNS、RTP
IP协议可以将不同的网络接口互连,并向其上的TCP和UDP协议提供网络互连服务。而TCP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议(HTTP、SMTP)提供可靠传输的服务;UDP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议(DNS、RTP)提供不可靠传输的服务。
IP协议作为TCP/IP体系结构中的核心协议,一方面负责互连不同的网络接口(IP over everything),另一方面为各种网络应用提供服务(Everything over IP)。
- 原理体系结构:
是一个五层协议的体系结构,从下往上依次为物理层、数据链路层、网际层、运输层、应用层。将TCP/IP体系结构的网络接口层又重新划分为了物理层和数据链路层,更有利于对计算机网络原理的学习。
计算机网络体系结构分层的必要性
将实现计算机网络所需要解决的主要问题划归到各个层
- 物理层:使两台计算机通过信号传输比特0或1
采用怎样的传输媒体(介质)
采用怎样的物理接口
使用怎样的信号比特0和1 - 数据链路层:实现分组在一个网络上传输
如何标识网络中各主机(主机编址问题,例如MAC地址)
如何从信号所表示的一连串比特流中区分出地址和数据(分组的封装格式问题)
如何协调各主机争用总线 - 网络层:实现分组在网络间传输
如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)
路由器如何转发分组,如何进行路由选择 - 运输层:实现进程之间基于网络的通信
如何解决进程之间基于网络通信的问题
出现传输错误时如何处理 - 应用层:
通过应用进程间的交互来完成特定的网络应用
计算机网络体系结构分层思想举例
(老师讲得很好,视频讲解很清晰,所以直接贴视频吧
专用术语
实体
- 实体: 任何可发送或接收的硬件或软件进程
- 对等实体:收发双方相同层次中的实体
协议
- 协议:控制两个对等实体进行逻辑通信的规则的集合
逻辑通信实际中并不存在,只是假设出来的一种通信,目的在于方便我们单独研究体系结构某一层时不用考虑其他层 - 协议的三要素:语法、语义、同步
语法:定义所交换信息的格式
例如下图为IP数据报的格式,其中的小格子称为字段或域,数字表示字段的长度,单位为位(也就是比特)。语法就是定义了这些小格子的长度和顺序,即语法定义了所交换信息由哪些字段以及何种顺序构成。
语义:定义收发双方所要完成的操作
同步:定义收发双方的时序关系
例如TCP采用“三报文握手”建立连接的过程,要想进行运输层TCP实体间的逻辑通信,首先必须建立连接,从连接建立过程可以看出TCP客户端与TCP服务器之间的时序关系,以及各自的状态转换。只有双方建立连接后,才能进行TCP数据传输。
服务
- 在协议的控制下,两个对等实体间的逻辑通信使得本层能向上一层提供服务。
例如物理层对等实体在物理层协议的控制下向数据链路层提供服务。 - 要实现本层协议,还需要使用下面一层所提供的服务。
例如数据链路层对等实体享受物理层提供的服务,并在数据链路层协议的控制下进行逻辑通信,给网络层提供服务。 - 协议是**“水平的”,服务是“垂直的”**。
- 实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下层的协议对上层的实体是**“透明”**的。
(例如我们享受使用手机打游戏,但是并不知道这个游戏咋做出来的
- 服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
数据链路层的服务访问点为帧的“类型”字段
网络层的服务访问点为IP数据报首部中的“协议字段”
运输层的服务访问点为“端口号” - 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
- 协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元。
物理层对等实体逻辑通信的数据包称为比特流
数据链路层对等实体逻辑通信的数据包为帧
网络层对等实体逻辑通信的数据包称为分组。如果使用IP协议,也称为IP数据报
运输层对等实体逻辑通信的数据包一般根据协议而定,使用TCP协议则称为TCP报文段;使用UDP协议则称为UDP用户数据报
应用层对等实体逻辑通信数据包一般称为应用报文
上述各层数据包可以统称为协议数据单元PDU - 服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元
- 多个SDU可以合成一个PDU,一个SDU也可划分为几个PDU