1.计算机网络—概述
计算机网络
简介
网络:由若干结点(Node)和连接这些结点的链路(Link)组成
互联网:多个网络可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网,所以互联网是网络的网络
因特网:是世界上最大的互联网络
internet:是一个通用名词,泛指由多个计算机连接的网络,这些网络之间的协议可以是任意的
Internet:是一个专有名词,指当前全球最大,开放的,由众多网络相互连接成的特定计算机网络,采用TCP/IP协议族作为基本规则
- 定义
计算机网络并没有一个准确的定义
简单定义:一个互相连接的,自治的计算机的集合
较好定义:计算机网络主要是由一些通用的,可编程的硬件互联而成的,而这些硬件并非专门用来实现某一特定目的的。这些可编程硬件能够用来传送多种不同类型的数据,并能支持广泛和日益增长的应用
ISP(Internet Service Provider):因特网服务提供者
因特网协会ISOC是一个国际性组织,负责对因特网进行全面管理,以及在世界范围内促进其发展和使用
- 组成
因特网由边缘部分和核心部分组成
边缘部分:由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信
核心部分:有大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的
- 功能
数据通信,资源共享,分布式处理,负载均衡等
- 分类
按交换技术分类:电路交换网络 报文交换网络 分组交换网络
按使用者分类:公用网 专用网
按传输技术分类:广播式网络 (公共通信信道) 点对点网络(适用分组存储转发和路由选择机制)
按覆盖范围分类:广域网(WAN) 城域网(MAN)局域网(LAN)个域网(PAN)
按拓扑结构分类:
- 总线型网络
- 星型网络
- 环形网络
- 网状型网络
计算机网络的性能指标
包含有8个指标:速率 带宽 吞吐量 时延 时延带宽积 往返时间 利用率 丢包率
速率
比特是计算机中数据量的单位
速率:连接在计算机网络主机在数字信道传送比特的速率,也称比特率
特别要注意的是,速率中的k和数据量中的K含义是不同的
数据量中的K表示$2^{10}$,而在数据率中表示$10^3$
所以如果100MB的数据,网卡的发送速率为100Mbps,那么需要几秒传输成功呢?
首先需要把100MB换算成bit,那么就是
而100Mbps代表每秒传输
所以需要
有时候可以估算,将1M估算为$10^{6}$
带宽
用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”
单位:b/s(kb/s,Mb/s)
吞吐量
表示在单位时间内通过某个网络的数据量
时延
时延即是指:分组从源主机传送到目的主机的过程中,花费的时间
时延一般有3种
发送时延:主机将分组发送到传播线路的时间,发送时延=分组长度(b)/发送速率(kb/s)
传播时延:分组在传输线路中传送的时间,传播速率=传播距离/传播速度
处理时延:分组被中间的路由器处理的时间,一般不计算
而主要的时延有可能是发送时延,也有可能是传播时延,依据具体情况而定
时延带宽积
时延带宽积=传播时延×带宽
又称为以比特为单位的链路长度
往返时间
RTT(Round-Trip-Time):指源主机发送分组开始,直到源主机又确认到来自目的的主机确认分组为止
利用率
信道利用率:表示某信道有百分之几的时间是被利用的
网络利用率:全网络的信道利用率的加权平均
当某信道的利用率增大的时,信道引起的时延也会增加,所以利用率不是越高越好,如果用$D_0$表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下, $D=\frac{D_0}{1-U}$
当网络的利用达到50%的时候,时延就要加倍
丢包率
丢包率是指分组丢失率,在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率
计算机网络体系结构
OSI体系结构
是法律上的国际标准,
其下三层被称为通信子网,是各种传输介质和通信设备以及相应的网络协议组成,比如集线器中继器在物理层,交换机和网桥在数据链路层,路由器在网络层,负责实现数据通信的基本功能
上三层被称为资源子网,是实现资源共享功能的设备和软件的集合,复杂实现资源共享
TCP/IP体系结构
是事实上的国际标准
原理体系结构
用于教学
TCP/IP体系和OSI体系的区别在于,OSI体现在网络层采用了无连接+面向链接的方式,而TCP/IP协议在传输层采用的是无连接+面向连接方式
分层的必要性
考虑一个问题,电脑之间如何实现通信?
1.肯定是先考虑采用什么物理介质来连接电脑,比如,光纤,双绞线网线
以及采用什么样的物理接口,用什么样的信号来表示bit
这些问题都属于物理层,该层传输的是比特流(bit)
2.一般来说,计算机网络是由多台电脑组成的,直接通过总线联络,假设已经解决了物理层的问题了,那么在总线中传输的时候,主机如何知道数据是否是发给自己的呢?
这就涉及到如何标识网络中各个主机的问题了,主机如何从一连串比特中区分地址和数据。
这些问题属于数据链路层,该层传输的是帧(frame)
3.当解决了物理层和数据链路层之后,我们就可以在一个网络中通信了,然后当今互联网被称为网络的网络,由很多个网络组成,所以在互联网中通信的时候,我们还需要考虑如何标识网络的问题
如何标识各网络以及网络中的各主机(IP地址)?路由器如何转发分组?如何进行路由选择的问题
这些问题属于网络层,该层传输的是数据包(packet)
4.解决了以上3层,就可以实现分组在网络之间传输了
然后这还不够,如果电脑中运行有多个进程,电脑收到了分组后,如何判断分组是那个进程所需要的呢?
如何解决进程之间的网络通信问题?
以及假如路由器在丢包,那么该如何处理?
这些问题都属于运输层,该层传输的是数据段(segment)
5.解决了以上4层,就可以实现进程之间基于网络的通信了
在此基础上,只需要制定各种应用层协议 ,并根据应用进程之间的交互来编写特定的网络应用程序,就可以来完成特定的网络应用
比如有支持万维网应用的HTTP协议
支持电子邮件的SMTP协议
支持文件传输的FTP协议等
这些问题全部属于应用层,该层传输的数据(data)
总的概况
专用术语
实体:指任何发送或接受信息的硬件或软件进程
对等实体:收发双方相同层次中的实体
协议:控制两个对等实体进行逻辑通信的规则的集合·
协议包括三要素 语法 语义 同步
语法:定义所交换信息的格式
语义:定义收发双方所要完成的操作
同步:定义收发双方的时序关系
在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务,很明显,协议是水平的,服务是垂直的
服务访问点:在统一系统中相邻两层的实体交换信息的逻辑接口
服务原语:上层使用下层所提供的服务必须通过与下层交换一些指令,这些命令称为服务原语
协议数据单元PDU:对等层次之间的数据包称为该层的协议数据单元
服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元