01-计算机网络概述
01-计算机网络概述
1.2 因特网的概述
1 网络、互联网(互连网)和因特网
网络(Network)由若干节点(Node)和连接这些节点的链路(Link)组成
多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(互连网)
因特网(Internet)是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)
internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互联而成的网络。在这些网络之前的通信协议是任意的
Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET
2 因特网发展的三个阶段
- 从单个网络ARPANET向互联网发展
- 逐步建成三级结构的因特网
- 逐步形成了多层次ISP结构的因特网
因特网服务提供商ISP(Internet Service Provider)
国内的三大ISP:中国电信,中国移动,中国联通
3 因特网的标准化工作
因特网的标准化工作对因特网的发展起到了非常重要的作用
因特网在制定其标准上的一个很大的特点是面向公众
因特网所有的RFC(Request For Comments)技术文档都可从因特网上免费下载
任何人都可以随时用电子邮件发表对某个文档的意见或建议
因特网协会ISOC是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进其发展和使用
因特网体系结构委员会IAB,负责管理因特网有关协议的开发
因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化
因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题
制定因特网的正式标准要经过以下4个阶段:
因特网草案(在这个阶段还不是RFC文档)
建议标准 (从这个阶段开始就成为RFC文档)
草案标准
因特网标准
4 因特网的组成
边缘部分
由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来
核心部分
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)
1.3 三种交换方式
电路交换(circuit Switching)
电话交换机接通电话线的方式称为电路交换
从通信资源的分配角度来看,交换(Swithing)就是按照某种方式动态地分配传输线路的资源
电路交换的三个步骤
- 建立连接(分配通信资源)
- 通话(一直占用通信资源)
- 释放连接(归还通信资源)
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低
优点:
1)通信时延小
2)有序传输
3)没有冲突
4)适用范围广
5)实时性强
6)控制简单
缺点:
1)建立连接时间长
2)线路独占,使用效率低
3)灵活性差
4)难以规格化
分组交换(Packet Switching)
发送方:构造分组,发送分组
路由器:缓存分组,转发分组
接受方:接收分组,还原报文
优点
1)无需建立连接
2)线路利用率高
3)简化了存储管理
4)加速传输
5)减少出错概率和重发数据量
缺点
1)引起了转发时延
2)需要传输额外的信息量
3)对于数据报服务,存在失序、丢失或重复分组的问题;对于虚电路服务,存在呼叫建立、数据传输和虚电路释放三个过程
报文交换(Message Swithing)
优点:
1)无需建立连接
2)动态分配线路
3)提高线路可靠性
4)提高线路利用率
5)提供多目标服务
缺点:
1)引起了转发时延
2)需要较大存储缓存空间
3)需要传输额外的信息量
1.4 计算机网络的定义和分类
计算机网络的定义
计算机网络的精确定义并未统一
计算机网络的最简单的定义是:一些相互连接的、自治的计算机的集合
互连:计算机之间可以通过有线或无线的方式进行数据通信
自治:是指独立的计算机,它有自己的硬件和软件,可以单独运行使用
集合:是指至少需要两台计算机
计算机网络的较好的定义是:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛和日益增长的应用
计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件
计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)
计算机网络的分类
按交换技术分类
电路交换网络
报文交换网络
分组交换网络
按使用者分类
公用网
专用网
按传输介质分类
有线网络
无线网络
按覆盖范围分类
广域网WAN
城域网MAN
局域网LAN
个域网PAN
按拓扑结构分类
总线型网络
星型网络
环形网络
网状型网络
1.5 计算机网络的性能指标
速率
比特
计算机中数据量的单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个1或0
常用数据量单位
8 bit = 1 Byte
KB = 2^10 B=1024 B
MB = KKB=2^20 B
GB = K MB = 2^30 B
TB = K*GB = 2^40 B
速率
连接在计算机网络上的主机在数字信道上传送比特的速率,也成为比特率或数据率
常用数据率单位
bit/s(b/s, bps)
kb/s = 10^3 b/s
Mb/s = kkb/s=10^6 b/s
Gb/s = kMb/s=10^9 b/s
Tb/s = k*Gb/s=10^12 b/s
带宽
带宽在模拟信号系统中的意义
信号所包含的各种不同频率成分所占据的频率范围
带宽在计算机网络中的意义
用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的"最高数据率"
单位: b/s(kb/s,Mb/s,Gb/s,Tb/s)
其实,"带宽"的这两种表述之间有着密切的联系。一条通信线路的"频带宽度"越宽,其所传输数据的"最高数据率"也越高
吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量
吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络
吞吐量受网络的带宽或额定速率的限制
时延
网络时延:包括发送时延、传播时延和处理时延
发送时延= 分组长度(b)/发送速率(b/s)
传播时延=信道长度(m)/电磁波传播速率(m/s)
电磁波传播速率:
自由空间:310^8 m/s
铜线:2.310^8 m/s
光纤:2.0*10^8 m/s
处理时延:一般不便于计算
时延带宽积
时延带宽积 = 传播时延*带宽
若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特
链路的时延带宽积又称为以比特为单位的链路长度
往返时间
在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互
我们有时需要知道双向交互一次所需的时间
因此,往返时间RTT(Round-Trip Time)也是一个重要的性能指标
利用率
利用率
信道利用率:用来表示某信道有百分之几的时间是被利用的(有数据通过)
网络利用率:全网络的信道利用率的加权平均
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加
因此,信道利用率并非越高越好
如果令D0表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公示来表示D、D0和利用率U之间的关系:
D=D0/(1-U)
当网络的利用率达到50%时时延就要加倍;
当网络的利用率超过50%时,时延急剧增大;
当网络的利用率接近100%时,时延趋于无穷大;
因此,一些拥有较大主干网的ISP通常会控制他们的信道利用率不超过50%,如果超过了,就要准备扩容,增大线路的带宽
也不能使信道利用率太低,这会使宝贵的通信资源被白白浪费,应该使用一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在一个合理的范围内。
丢包率
丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率
丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、网络丢包率等
丢包率是网络运维人员非常关系的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为他们通常意识不到网络丢包
分组丢失主要有两种情况:
分组在传输过程中出现误码,被结点丢弃;
分组到达一台队列已满的分组交换机时被丢弃;在通信量较大时就可能造成网络拥塞
因此,丢包率反映了网络拥塞情况
无拥塞时路径丢包率为0
轻度拥塞时路径丢包率为1%~4%
严重拥塞时路径丢包率为5%~15%
1.6 计算机网络体系结构
1 常见的计算机网络体系结构
OSI体系结构(七层):法律上的国际标准
应用层:解决通过应用进程之间的交互来实现特定网络应用的问题
表示层:解决通信双方交换信息的表示问题
会话层:解决进程之间进行会话问题
运输层:解决进程之间基于网络的通信问题
网络层:解决分组在多个网络之间传输(路由)的问题
数据链路层:解决分组在一个网络(或一段链路)上传输的问题
物理层:解决使用何种信号来传输比特0和1的问题
TCP/IP体系结构(四层):事实上的国际标准
应用层:HTTP SMTP DNS RTP
运输层:TCP协议 UDP协议
网际层:IP协议
网络接口层: 不同的网络接口 例如:有线以太网接口,无线WLAN接口
使用IP协议互连不同的网络接口
IP协议可以为各种网络应用提供服务
原理体系结构(五层):适用于教学
应用层
运输层
网际层
数据链路层
物理层
2 计算机网络体系结构分层的必要性
计算机网络是个非常复杂的系统。早在最初的ARPANET设计时就提出了分层的设计理念
分层可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理
下面我们按照由简单到复杂的顺序,来看看实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到相应的层次,层层处理
物理层:
采用怎样的传输媒体(介质)?例如双绞线网线
采用怎样的物理接口?例如以太网网口
使用怎样的信号表示比特0,1 ?例如方波信号
这些都是物理层需要考虑的问题,注意,具体的传输媒介不属于物理层,方波信号当前也没有用来表示0,1信号
数据链路层:
如何表示网络中的各主机(主机编址问题,例如MAC地址)?
如何从信号所表示的一连串比特流中区分出地址和数据?
如何协调各主机争用总线?
网络层:
如何标识各网络以及网络中的各主机(网络和主机共同编址的问题,例如IP地址)
路由器如何转发分组,如何进行路由选择
运输层:
如何解决进程之间基于网络的通信问题
出现传输错误时,如何处理
应用层:
通过应用进程间的交互来完成特定的网络应用
支持万维网应用的HTTP协议
支持电子邮件的SMTP协议
支持文件传送的FTP协议
原理体系结构
应用层:解决通过应用进程的交互来实现特定网络应用的问题
运输层:解决进程之间基于网络的通信问题
网络层:解决分组在多个网络上传输(路由)的问题
数据链路层:解决分组在一个网络(或一段链路)上传输的问题
物理层:解决使用何种信号来传输比特的问题
3 计算机网络体系结构分层思想举例
建议看这个视频 https://www.bilibili.com/video/BV1c4411d7jb/?p=9&vd_source=3c88fb7dae36f53e6a15081fb7cf9ff8
例如:从一台主机发送web请求到一台web服务器
对于主机
应用层 HTTP报文
运输层 HTTP|TCP TCP报文
网络层 HTTP|TCP|IP IP数据报
数据链路层 ETH|HTTP|TCP|IP|ETH 帧
物理层 比特流|前导码
对于路由器
HTTP|TCP 网络层 HTTP|TCP|IP
HTTP|TCP|IP 链路层 链路层 ETH|HTTP|TCP|IP|ETH 帧
比特流 物理层 物理层 比特流|前导码
对于web服务器:逐层解析,将请求结果逐层封装,进行返回
应用层
运输层
网络层
数据链路层
物理层
4 计算机网络体系结构中的专用术语
实体
任何可发送或接收信息的硬件或软件进程
对等实体 收发双方相同层次中的实体
例如物理层中的两个网卡是对等实体
应用层的两个应用也是对等实体
协议
协议 控制两个对等实体进行逻辑通信的规则的集合
应用层 使用应用层协议(例如HTTP,SMTP)进行通信
运输层 使用运输层协议(例如TCP,UDP)进行通信
网络层 使用网络层协议(例如IP)进行通信
数据链路层 使用链路层协议(例如传统以太网CSMA/CD)进行通信
物理层 使用物理层协议(例如传统以太网使用曼彻斯特编码)进行通信
协议的三要素 语法 语义 同步
语法 定义所交换信息的格式
语义 定义收发双方所要完成的操作
同步 定义收发双方的时序关系
服务
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务
要实现本层协议,还需要使用下面一层所提供的服务
协议是水平的,服务是垂直的
实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是透明的
应用层 享受运输层提供的服务,实现应用层协议并进行通信
运输层 享受网络层提供的服务,实现运输层协议并进行通信
网络层 享受链路层提供的服务,实现网络层协议并进行通信
数据链路层 享受物理层提供的服务,实现链路层协议并进行通信
物理层 使用物理层协议进行通信
服务访问点 在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型
数据链路层的访问点为帧的“类型”字段
网络层的服务访问点为IP数据报首部中的“协议字段”
运输层的服务访问点为“端口号”
服务原语 上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语
协议数据单元PDU 对等层次之间传送的数据包称为协议数据单元
服务数据单元SDU 同一系统内,层与层交换的数据包称为服务数据单元
多个SDU可以合成为一个PDU;一个SDU也可划分为几个PDU
习题课
计算分组时延
若n个分组,m段链路,则总时延是多少?
总时延=n个分组的发送时延+一个分组的发送时延(m-1)+1段链路的传播时延m