计算机网络笔记
计算机网络-概述
网络的网络
网络把主机连接起来,而互联网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。
互连网 (internet) ≠ 互联网 (Internet)
互联网基础结构发展的三个阶段
- 1969 - 1990 从单个网络 ARPANET 向互联网发展
- 1985 - 1993 建成了三级结构的互联网
- 1993 - 现在 全球范围的多层次 ISP 结构的互联网
ISP
互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联网设备,个人或机构向 ISP 缴纳一定的费用就可以接入互联网。
多层次 ISP 结构
目前的互联网是一种多层次 ISP 结构,ISP 根据覆盖面积的大小和所拥有的 IP 地址数目分为主干 ISP 、地区 ISP 和本地 ISP。互联网交换点 IXP 允许两个 ISP 直接相连而不用经过第三个 ISP。
互联网的组成
从互联网的工作方式上看,可以划分为两大块:
边缘部分:由所有连接在互联网上的 主机 组成,有用户直接使用,用来进行通信(传送数据、音频或视频)和资源共享。
核心部分:由大量 网络 和连接这些网络的 路由器 组成,为边缘部分提供服务(提供连通性和交换)。
主机(端系统)之间的通讯方式
客户 / 服务 (C / S) :客户是服务的请求方,服务器是服务的提供方。
- 客户 / 服务器方式所描述的是进程之间服务和被服务的关系。
- 客户与服务器的通信关系建立后,通信可以是
双向的
,客户和服务器都可以发送和接收数据。
对等连接(P2P):两台主机在通信时 不区分 服务请求方和服务提供方。
- 对等连接方式从本质上看仍然是使用客户服务器方式,只是对等连接中的每一个主机 既是客户又是服务器。
典型交换技术
电路交换用于电话通信系统,两个用户要通信之前需要建立一条专用的物理链路,并且在 整个通信过程中始终占用该链路。由于通信的过程中不可能一直在使用传输线路,因此电路交换对于 线路的利用率很低,往往不到10%。
每个分组都有首部和尾部,包含了源地址和目的地址等控制信息,在同一个传输线路上同时传输多个分组互相不会影响,因此在同一条传输线路上允许同时传输多个分组,也就是说分组交换不需要占用传输线路。
互联网采用分组交换技术。分组是在互联网中传送的 数据单元。
发送端 依次 把各分组发送到接收端。
分组在互联网中的转发
- 根据 首部 中包含的目的地址、源地址等重要控制信息进行转发。
- 每一个分组在互联网中 独立选择 传输路径。
- 位于网络核心部分的 路由器负责转发分组,即进行分组交换。
- 路由器要创建和动态维护 转发表。
优点 | 所采用的手段 |
---|---|
高效 | 在分组传输的过程中 动态分配 传输带宽,对通信链路是 逐段 占用。 |
灵活 | 为每一个分组 独立 地选择最合适的转发路由。 |
迅速 | 以分组作为传送单位,可以 不先建立连接 就能向其他主机发送分组。 |
可靠 | 保证可靠性的网络协议;分布式多路由的分组交换网,是网络有很好地生存性。 |
存储转发
在一个邮局通信系统中,邮局收到一份邮件之后,先存储下来,然后把相同目的地的邮件一起转发到下一个目的地,这个过程就是存储转发过程,分组交换也使用了存储转发过程。
报文交换是基于存储转发原理的。但是报文交换的时延较长,从几分钟到几小时不等,现在已经很少有人使用了。
三种交换方式的比较
- 若要连续传送 大量 的数据,且其传送时间 远大于 连接建立时间,则 电路交换 的传输速率较快。
- 报文交换 和 分组交换 不需要预先分配传输带宽,在传送 突发数据 时可提高整个网络的信道利用率。
- 由于一个分组的长度往往 远小于 整个报文的长度,因此 分组交换 比报文交换的时延小,同时也具有更好的灵活性。
计算机网络的性能指标
性能指标:从不同方面度量计算机网络的性能。
1、速率
最重要的一个性能指标。
指的是 数据的传送速率,也称为 数据率(data rate)或 比特率(bit rate)。
单位:bit/s,或 kbit/s、Mbit/s、GBit/s 等。
例如 4 × 1010 bit/s 的数据率就记为 40 Gbit/s。
速率往往是指 额定速率 或 标称速率,而非实际运行速率。
$$
千=K=2^{10}=1024,兆=M=2^{20}=1024K,吉=G=2^{30}=1024M,1字节(Byte)=8比特(bit)
$$
2、带宽
- 频域:
- 某个型号具有的频带宽度
- 单位:赫(或千赫、兆赫、吉赫等)。
- 某信道允许通过的信号频带范围称为该信道的带宽(或通频带)。
- 时域:
- 网络中某通道传送数据的能力,表示在单位时间内网络中的某信道所能通过的“最高数据率”、
- 单位:数据率的单位 bit/s。
二者的本质相同,一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。
3、吞吐量
- 单位时间内通过某个网络(或信道、接口)的实际数据量。
- 受网络带宽或网络的额定时速率的限制。
- 额定速率是绝对上限值。
- 可能会远小于额定速率,甚至下降到零!
- 有时可用每秒传送的字节数或帧数来表示。、
4、时延(重要!!)
- 指数据(一个报文或分组,甚至比特)从网络(或链路)的 一端传送到另一端所需的时间。
- 有时也称为延迟或迟延。
- 组成:发送时延、传播时延、处理时延、排队时延
发送时延
也称为传输时延。
是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的 第一个比特 算起,到该帧的 最后一个比特 发送完毕所需的时间。
$$
发送时延=\frac{数据帧长度(bit)}{发送速率(bits/s)}
$$
传播时延
是 电磁波 在信道中传播一定的举例需要花费的时间。
$$
传播时延=\frac{信道长度(米)}{信号在信道上的传播速率(米/秒)}
$$电磁波传播速率:
- 自由空间的传播速率是光速 = 3.0 × 105 km/s
- 在铜线电缆中的传播速率约 = 2.3 × 105 km/s
- 在光纤中的传播速度约 = 2.0 × 105 km/s
注意: 发送时延与传播时延有本质上的不同。
- 发送时延 发生在机器内部的发送器中,与传输信道的长度(或信号传送的距离)没有任何关系。
- 传播时延 则发生在机器外部的传输信道媒体上,而与信号的发送速率无关。信号发送的距离越远,传播时延就越大。
处理时延
- 主机或路由器在收到分组时,为 处理 分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间。
排队时延
- 分组在路由器输入输出队列中 排队等待 处理和转发所经历的时延。
- 排队时延的长短往往取决于网络中当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。
$$
总时延=发送时延+传播时延+处理时延+排队时延
$$
- 一般来说,小时延的网络要 优于 大时延的网络。
- 在某些情况下,一个低速率、小时延的网络很可能要 优于 一个高速率大大时延的网络。
- 时延带宽积
- 链路的时延带宽积又称为以比特为单位的 链路长度。
- 管道中的比特数表示从发送端发出 但尚未 到达接收端的比特数。
$$
时延带宽积=传播时延×带宽
$$
往返时间 RTT (Round-Trip Time)
表示从发送方发送完数据,到发送方 接收到来自接收方的确认 总共经历的时间。
在互联网中,往返时间还包括各中间结点的处理时延、排队时延以及转发数据时的发送时延。
当使用卫星通信时,往返时间 RTT 相对较长,此时,RTT 是很重要的一个性能指标。
- 利用率
- 信道利用率:某信道有百分之几的时间是被利用的(即有数据通过)。
- 网络利用率:全网络的信道利用率的加权平均值。
- 根据排队论,当某信道的利用率增大时,时延会迅速增加。
$$
D=\frac{D_0}{1-U}
$$
其中:D0:网络空闲时的时延。;D:网络在当前的时延;U:网络当前的利用率,数值在 0 到 1 之间。
计算机网络体系结构
- 网络协议(network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。
- 三个组成要素:
- 语法:数据与控制信息的结构或格式。
- 语义:需要发出何种控制信息,完成何种动作以及做出何种响应。
- 同步:事件实现顺序的详细说明。
- 五层协议
- 应用层:为特定应用程序提供数据传输服务,例如 HTTP、DNS等协议。数据单位为报文。
- 传输层:为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠地数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性,UDP 主要提供及时性服务。
- 网络层:为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。
- 数据链路层:网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务、数据链路层把网络层传下来的分组封装成帧。
- 物理层:考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。
- OSI
- OSI 参考模型把对等层次之间传送的数据单位称为该层的 协议数据单元 PDU (Protocol Data Unit)。
- 任何两个同样的层次吧 PDU (即数据单元加上控制信息)通过水平虚线直接传递给对方。这就是所谓的 ”对等层“ 之间的通信。
- 其中表示层和会话层用途如下:
- 表示层:数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。
- 会话层:建立及管理会话。
- 五层协议没有表示层和会话层,而是将这些功能留给应用程序开发者处理。
- TCP/IP
- 它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。
- TCP/IP 体系结构不严格遵循 OSI 分层概念,应用层可能会直接使用 IP 层或者网络接口层。
- 数据在各层之间的传递过程
- 在向下的过程中,需要添加下层协议所需要的首部或者尾部,而在向上的过程中不断拆开首部和尾部。
- 路由器只有下面三层协议,因为路由器位于网络核心中,不需要为进程或者应用程序提供服务,因此也就不需要传输层和应用层。