1因特网概述
- 网络,互联网,因特网的区别和关系
- 若干节点和链路之间互连形成网络
- 若干网络通过路由器互连形成互联网
- 因特网是现在最大的互联网
- 因特网与互联网的区别图解
- 因特网发展的三个阶段
- 因特网简介
ISP(Internet Service Provide),因特网服务提供者
因特网已经发展成为基于ISP的多层次结构的互连网络
电路交换 分组交换 报文交换
- 电路交换
从建立连接到释放资源始终占用着通信资源 - 分组交换
从发送端到接收端仅占据存储转发时的一个分段的资源 - 报文交换
- 报文交换是分组交换的前身
- 在交换时,报文被整体发送,而不是拆分成为若干分支进行发送
- 交换节点将报文接收才可以查找转发表,将报文转发到下一个节点
- 因此需要更多的缓存时间
- 三种交换之间的比较
- 进行传输连续的大量数据时,同时数据的传送时间远大于建立连接的时间,电路交换可以具有较高的传输效率,但是由于计算机中的数据传输往往突发式的,因此采用线路的利用率会很低
- 采用报文和分组交换都不需要建立连接,这在计算机的突发式传送中大大提高了利用效率
- 将报文分为更小的分组进行分组传送,比将整个报文进行传送在链路之间的缓存时间更小,具有更好的灵活性
计算机网络的定义和分类
- 定义:
计算机网络主要是由一些通用的,可编程的硬件互联而成,而这些硬件并非为了实现某个特定的目的(列如:传输数据或者视频信号)。这些可编程的硬件可以用来传输多种的数据类型,并且支持广泛和日益增长的数据。
- 可编程的硬件:不限于计算机,而是包含了智能手机,具有网络功能的传感器以及智能家电等硬件设备,这些设备中一定包含中央处理单元(CPU)
- 各类应用:计算机网络并非是只为了传输数据,而是基于数据传送实现各种各样的应用,包含以后可能出现的各类应用。
- 分类
- 交换方式:电路交换,报文交换,分组交换
- 使用者:公用网(因特网),专用网(军队,铁路,电力,银行)
- 传输介质:有线介质,无线介质
- 覆盖范围:广域网(WAN),城域网(MAN),局域网(LAN),个域网(PAN)
- 拓朴结构:总线型,环型,星型,网状型
计算机网络的性能指标
计算机网络的性能从不同的维度进行评估,下面介绍常用的八个评估指标
- 速率:
- 比特(bit ,记为小写的 b ) 属于计算机中数据量的基本单位,一个比特就是二进制数字中的一个1或0
- 数据量的常用单位有:字节(byte , 记为大写的 B ),千字节 (KB) ,兆字节(MB),吉字节(GB)以及太字节(TB)。
数据量的单位 | 换算关系 |
---|---|
比特(b) | 基本单位 |
字节 | 1B = 8 bit |
千字节 | KB = 1024 B |
兆字节 | MB = 1024 KB |
吉字节 | GB = 1024 MB |
太字节 | TB = 1024 GB |
- 速率是指数据的传送速率(每秒传输的比特),也成为数据率(Data Rate),或者比特率(Bit Rate)
- 速率的基本单位是比特/秒(bit/s),可以简记为b / s,有时也记为bps,即为bit per second。速率的常用单位有千比特/秒(kb/s或kps),兆比特/秒(Mb/s或Mbps),吉比特/秒(Gb/s或Gbps)以及太比特每秒(Tb/s或Tbps)。
速率的单位 | 换算关系 |
---|---|
比特/秒(b/s) | 基本单位 |
千比特/秒(kb/s) | kb/s = 1000 b/s |
兆比特/秒(Mb/s) | Mb/s = 1000kb/s |
吉比特/秒(Gb/s) | Gb/s = 1000Mb/s |
太比特/秒(Tb/s) | Tb/s = 1000Gb/s |
- 注意数据量的K,M,G,T的大小和速率的K,M,G,T的大小的不同
- 带宽:
- 在模拟信号系统中的意义:某个信号所包含的不同频率成分所占据的频率范围,单位Hz(kHz,MHz,GHz)
- 带宽在计算机网络中的意义:用来表示网络的通信线路所能传输数据的能力,即在单位时间内从网络的某一点到另外一点所通过的最高数据率。单位b/s(kb/s,Mb/s,Gb/s,Tb/s)
- 数据的传输速率 = min(主机的接口速率,线路带宽,交换机或路由器的接口速率)
- 吞吐量:
- 吞吐量是指在单位时间内通过某个网络或接口的实际数据量。吞吐量常常被用来对于实际网络的测量,用来获知到底有多少数据量通过了网络
- 吞吐量受到网络带宽的限制
- 时延:
- 数据从网络的一段到另一端所耗费的时间,也称为延迟或迟延。数据可由一个或者多个分组,甚至一个比特构成。
- 综上所述,时延由发送时延,排队时延,处理时延,传播时延构成。
- 之所以没有接受时延是由于分组数据的传输和目的主机接收分组信号时同时进行的。
- 我们可以看到光纤的传输速率并没有电磁波在铜线中的传输速率,但是我们往往都是使用光纤作为传输介质,是由于光纤的带宽很大,也就是所能承载的最高数据传输速率很大,更简单的是说就是单位时间内可以传输更多的比特
- 时延带宽积:
- 是传播时延和带宽的乘积
- 我们以带宽作为链路的横截面积,传播时延作为链路的长度,因此时延带宽积也就作为了链路中容纳比特的数量
- 因此,链路的时延带宽积也被称为以比特为单位的链路长度。
- 往返时间(Round - Trip Time,RTT):
- 从发送端发送数据分组开始,到发送端接收到相应的确认分组,总共耗费的时间
- 利用率:
- 链路利用率:链路利用率是指某条链路有百分之几的时间是被利用的(即有数据通过),完全空闲的链路的利用率为 0。
- 网络利用率:网络中的所有链路的链路利用率的加权平均。
- 根据排队论可知,当链路的利用率增大时,该链路引起的时延就会迅速增加。
- 当网络的通信量较小时,产生的时延并不大,但是在网络的通信量不断地增大时,分组在交换节点(路由器或交换机)中的排队延时会随之增大,因此网络引起的时延就会增大。
- 我们以D0代表网络空闲时间的时延,D表示网络当前的时延,那么在理想的假定条件下,可以使用下式表示 D ,D0和网络利用率 U 之间的关系。
D = D 0 1 − U D = \frac{D_0}{1 - U} D=1−UD0
- 关于该公式的解释:我们假设空闲时的时延为 10 ms,当网络的利用率为 10% 时,也就意味着链路中有1 / 10 的空间无法使用,因此可以使用的就是剩下的部分,由于空间越小,时延越大,因此我们可以使用空闲的时延除以剩下的空间占用率,结果也就是 100/9 ms。
- 由上图可知,通道的利用率并非是越大越好,当超过50% 时,时延就会急剧增大,因此一些 ISP 会在超过50% 进行扩容。
- 丢包率:
- 丢包率是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
- 出现丢包两种情况:
- 丢弃误码的分组:分组在传输过程中出现误码,被传输路径的节点交换机或目的主机检测到误码而被丢弃。
- 根据丢弃策略主动丢弃该分组:节点交换机根据策略主动丢弃,尽管该分组没有出现误码
- 丢包率可以反应网络的拥塞程度:
- 无拥塞时路径的丢包率为0.
- 轻度拥塞时路径的丢包率为1%~4%
- 严重拥塞时路径的丢包率为5%~15%
计算机网络体系结构
- 常见的三种计算机网络体系结构:
- OSI参考模型:
- TCP/IP 参考模型:
-
在节点交换机(路由器)中我们只使用网际层和网络接口层,因此我们常常认为路由器的网络体系的最高层为网际层。
-
网络接口层:
在TCP/IP 协议中并没有对于网络接口层作出规定,可以是有线的以太网接口,也可以是无线的Wi-Fi接口,因此在本质上TCP/IP协议在本质上仅仅只有上面的三层。 -
网际层:
网际层的网际协议 IP(Internet Protocol)是TCP/IP网际层的核心协议。 -
运输层:
传输控制协议 TCP(Transmission Control Protocol)和用户数据报协议 UDP(User DataGram Protocal)是运输层的两个重要协议。 -
应用层:
应用层包含了大量协议,如超文本传输协议 HTTP(HyperText Transfer Protocol),简单邮件传送协议 SMTP(Simple Mail Transfer Protocol),域名系统 DNS(Domain Name System),实时运输协议 RTP(Real-time Transport Protocol)。 -
IP 协议可以将不同的网络接口进行互连,并且向运输层的 TCP 协议和 UDP 协议提供网络互连的服务,其中 TCP 协议在享受网络服务的基础上可应用层的某些协议提供可靠的网络运输协议,而 UDP 协议在享受网络服务的基础上可以向应用层的某些协议提供不可靠的网络运输协议。
-
下面是一些流行的因特网引用和应用层的协议和支撑的与运输协议
| 应用 | 用户层协议 | 支撑的运输层协议 |
| — | — | — |
| 电子邮件 | SMTP [RFC 5321] | TCP |
| 远程终端访问 | Telnet [RFC 854] | TCP |
| Web | HTTP [RFC 2616] | TCP |
| 文件传输 | FTP [RFC 959] | TCP |
| 流式多媒体 | HTTP(如YouTube) | TCP |
| 因特网电话 | SIP [RFC 3261]、RTP [RFC 3550]、或专用的(如Skype) | UDP或TCP | -
IP 协议作为TCP/IP 协议中最核心的协议,向下互连不同的·网络接口,向上为各种的网络应用提供服务。TCP 协议和 IP 协议是TCP / IP 协议中最重要的部分,因此我们常常用 TCP/IP 来表示整个协议大家族,常称为 TCP/IP 协议族。
-
- 原理参考模型:
- 由于TCP/IP模型中的网络接口层会为了将不同的接口整合在一起,并没有对其进行细致规定,因此我们为了便于学习,将其在细分为数据链路层和物理层。
计算机网络分层
- 前面我们已经介绍过计算机的分层,现在我们来讲一下计算机分层的原因。
- 计算机网络是一个非常复杂的系统,通过分层可以将其中复杂庞大的问题转换为较小的局部问题。
- 物理层问题:
- 采用什么传输介质
- 采用什么物理接口
- 采用什么信号来表示比特0和比特1
- 数据链路层问题:当我们解决了物理层问题,主机间可以通过信号传送比特 0 和 1 了。
- 我们在使用总线实现不同主机通信时,如何标识网络中的各个主机(主机编码,列如 MAC 地址)
- 目的主机接收到的一连串比特流数据中如何区分出地址和数据(数据封装格式)、
- 当各主机同时使用总线时,会发生碰撞,这也是需要解决的问题(媒体接入控制)
- 上述的主线型网络已经淘汰,现在使用的是以太网交换机,以太网交换机在进行通信时不会产生碰撞,而这样是如何实现的就需要了解以太网交换机的实现(自学习和转发帧)
- 使用有线的交换机很少出现数据误码的现象,而用无线的路由器经常会出现误码现象,这就需要我们检测数据是否误码(差错检测)
- 当检测到有误码时如何处理(可靠传输和不可靠传输)
- 接收方控制发送方注入网络的数据量(流量控制)
- 网络层问题:当我们解决了前两层的问题,主机可在同一个网络之间进行传输
- 标识网络和网络中的各主机(通过网络和主机共同编址,列如 ip 地址)
- 我们可以看到上图中由于主机 H1 主机 H2 和路由器 R1 处于同一个网络 N1 中,因此他们 ip 地址中的网络号是相同的,而主机号就成为了他们在网络 N1 中的唯一标识,同样的在网络 N2 中的主机和路由器同样如此。
- 从上图中我们可以看到,从主机 H1 到主机 H3 有不同的路径,这就有了路由器的转发分组问题(路由器选择协议,路由表和转发表)
- 运输层问题:当我们解决了前三层问题,就可以实现数据包在多个网络之间的传送了
- 进程之间基于网络的通信(进程的标识,列如端口号)
- 出现传输差错如何处理(可靠运输和不可靠运输)
- 应用层问题:至此,我们可以实现进程之间基于网络的通信,在此基础上可制定各种应用协议
- 通过应用进程之间的交互来完成特定的网络应用
- 进行会话的管理和数据表示
- 分层思想举例
- 我们现在假设主机与Web服务器基于网络进行通信(实质上是主机中的浏览器进程与Web服务器中的进程之间进行通信),逐步分析一下其中的分层思想。
- 当我们在浏览器的输入栏输入地址然后回车时,就是我们向服务器发送了一个请求,这时我们的应用层通过HTTP协议来构建一个HTTP请求报文,用来请求web服务器的操作。
- 当HTTP请求报文到运输层后,运输层为其添加一个TCP报文段,用来区分应用的进程,实现可靠的传输。
- 运输层将封装好的TCP报文段向下交付给网络层,网络层为其加上一个 IP 数据报,其作用是用来进行 IP 寻址和路由。
- 网络层将封装好的 IP 数据报向下交给数据链路层,数据链路层为其添加一个首部和一个尾部,成为一个帧,帧首部和帧尾部的作用是用来进行 MAC 寻址和帧校验。
- 链路层将封装好的帧向下交给物理层,物理层并不认识帧的结构,仅仅将其视为比特流,便于将其转换成电信号进行发送,对于以太网来讲,物理层还会在比特流前面加上前导码,目的是为使接收方的时钟同步,同时做好接收的准备。
- 当路由器收到后,物理层将其前导码去掉向上交付,数据链路层将其帧首部和帧尾部去除向上交付,网络层从 IP 数据报首部中的目的 IP 地址查找自己的转发表,以便决定从哪个接口转发该数据报。
- 网络层在向下转发前还要对首部中的某些字段值进行修改(如生存周期 TTL 字段的值进行修改),然后向下交付给数据链路层。数据链路层为其添加一个首部和一个尾部,向下交付给物理层,给其添加前导码后,将其转变成电信号发送出去。
- 服务器端收到后进行逐层解封,最后应用层发送 HTTP 响应报文
计算机网络专业术语
- 为更好地学习计算机网络,我们介绍一下计算机网络体系中的一些专业术语。
- 实体:
- 任何可发送或可接收信息的硬件和软件进程。
- 对等实体是通信双方相同层次的实体。
- 列如在链路层和物理层的网卡和在应用层的浏览器进程和nginx服务器进程都属于对等实体
- 协议:
- 是控制两个对等实体在水平方向上进行逻辑通信(这种通信并不存在,是为了在研究时便于单独研究对等实体之间的通信)的规则的集合。
- 协议三要素:
- 语法:定义所交换的信息格式
- 语义:用来定义通信双方所要完成的操作
- 同步:定义通信双方的时序关系(服务器收到主机发送的GET请求之后,才会给主机相应需要的响应报文)
- 服务:
- 在协议的控制下,两个对等实体在水平方向上的逻辑通信可使本层向上一层提供服务。
- 要实现本层的协议还需要使用下面一层提供的服务,实体看得见下层提供的服务,但是并不知道服务的具体协议,下层的协议对于上层是透明的。
- 在同一系统中,相邻两层的实体进行交换信息的逻辑接口称为服务器访问点SAP,被用来区分不同的服务类型。(帧的类型字段,IP 数据报的协议字段,TCP 报文段和UDP 用户数据报的端口号字段都是SAP)
- 上层要使用下层提供的服务,必须通过和下层交换一些命令,这些命令成为服务原语。
- 对等层次之间传送的数据包称为该层的协议数据单元(Protocol Data Unit,PDU)
- 层与层之间交换的数据包称为服务数据单元(Service Data Unit,SDU)
- 小结: