网络(Network)由若干节点(Node)和连接这些节点的链路(Link)组成
多个网络可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络及互连网,因此互连网是网络的网络(Network of networks)
因特网(Internet)是世界上最大的互联网络(用户数以亿计,互连的网络数以百万计)
1.因特网的标准化工作对因特网的发展起到了非常重要的作用。
2.因特网在制定其标准上的一个很大的特点是面向公众
因特网所有的RFC(Request ForComments)技术文档都可从因特网上免费下载;(http://www.ietf.org/rfc.html)
任何人都可以随时用电子邮件发表对某个文档的意见或建议。
3.因特网协会ISOC是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进其发展和使用。
因特网体系结构委员会IAB,负责管理因特网有关协议的开发;
因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化;
因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题
4.制订因特网的正式标准要经过以下4个阶段
(1)因特网草案(在这个阶段还不是RFC文档)
(2)建议标准(从这个阶段开始就成为RFC文档)
(3) 草案标准
(4)因特网标准
边缘部分
由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享
核心部分
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
电话交换机接通电话线的方式称为电路交换:
从通信资源的分配角度来看,交换 (Switching)就是按照某种方式动态地分配传输线路的资源
我们建立这种连接方式会发现两两之间建立连接,我们需要n(n-1)/2条线路,显然太多了
因此衍生出电路交换
电路交换的三个步骤:
1.建立连接(分配通信资源)
2.通话(一直占用通信资源)
3.释放连接(归还通信资源
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低
1.计算机网络的精确定义并未统一
2.计算机网络的最简单的定义是:一些互相连接的、自治的计算机的集合、
互连是指计算机之间可以通过有线或无线的方式进行数据通信
自治 是指独立的计算机,它有自己的硬件和软件,可以单独运行使用;
集合是指至少需要两台计算机;
计算机网络的较好的定义是: 计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的 (例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用
计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件。
计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)。
比特
计算机中数据量的单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个1或0.
常用数据量单位
1 Byte=8bit
KB = 2的10次幂B
MB=2的20次幂B
GB=2的30次幂B
TB=2的40次幂B
连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率
常用数据率单位
bit/s (b/s, bps)
kb/s = 10的3次幂 b/s (bps)
Mb/ss=10的6次幂 b/s (bps)
Gb/s = 10的9次幂 b/s (bps)
Tb/s = 10的12次幂 b/s (bps)
例题
例1:有一个待发送的数据块,大小为100 MB,网卡的发送速率为100 Mbps,则网卡发送完该数据块需要多长时间?
v=100Mb/100mbps=1002的20次幂/10010的6次幂=8.3886.8s
为了简便运算部分题目会将M m相等化 最后等于8s
例子
通过以上例子可以看出在处理时延忽略不计时,发送时延和传播时延并不绝对占据主导
1.若发送端连续发送数据,则在所发送的第一个比特即将到达终点时,发送端就已经发送了时延带宽积个比特;
2.链路的时延带宽积又称为以比特为单位的链路长度
在许多情况下,因特网上的信息不仅仅单方向传输,而是双向交互;
我们有时很需要知道双向交互一次所需的时间;
因此,往返时间RTT(Round-Trip Time)也是一个重要的性能指标
利用率
1.信道利用率 用来表示某信道有百分之几的时间是被利用的 (有数据通过)
2.网络利用率 全网络的信道利用率的加权平均。
根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加:
因此,信道利用率并非越高越好;
如果令Do表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式来表示D、Do和利用率U之间的关系:
D=D0/1-U
当网络的利用率达到50%时,时延就要加倍:
当网络的利用率超过50%时,时延急剧增大;
当网络的利用率接近100%时,时延就趋于无穷大;
因此,一些拥有较大主千网的ISP通常会控制它们的信道利用率不超过50%。如果超过了,就要准备扩容,增大线路的带宽
也不能使信道利用率太低,这会使宝贵的通信资源被白白浪费。应该使用一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在一个合理的范围内。
1.丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率
2.丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络
3.丢包率等丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标因为他们通常意识不到网络丢包。
分组丢失主要有两种情况:
分组在传输过程中出现误码,被结点丢弃;
分组到达一台队列已满的分组交换机时被丢弃;在通信量较大时就可能造成网络拥塞
因此,丢包率反映了网络的拥塞情况:
无拥塞时路径丢包率为0
轻度拥塞时路径丢包率为1%~4%
严重拥寨时路径丢包率为5%~15%
ip协议中文意思时网际协议,所以这里可以叫网际层
网络接口层并没有明确规定,所以接口层可以是有线也可以是无线,因此实际上TVP/IP体系结构只有三层
IP协议可以将不同的网络进行互联,并像其上的TCP协议和UDP协议提供网络互联服务
TCP协议在享受IP协议提供的网络互联服务的基础上,可像应用层的相应协议提供可靠传输的服务
UDP协议在享受IP协议提供的网络互联服务的基础上,可像应用层的相应协议提供不可靠传输的服务
因为TCP协议和IP协议很重要,因此用TCP/IP协议组来表示整个协议大家族
计算机网络是个非常复杂的系统。早在最初的ARPANET设计时就提出了分层的设计理念。
分层可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
下面,我们按照由简单到复杂的顺序,来看看实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到相应的层次,层层处理。
假如主机A想给主机C传输信号,但是表示数据的信号会通过总线传给每一个主机,那么主机c如何知道这个数据是发给自己的呢?
这就引出
1.如何标识网络中的各主机(主机编址问题,例如MAC地址 )
通过地址判断是否接收数据,但是又会引出下个问题2.如何从信号所表示的一连串比特流中区分出地址和数据
3.如何协调各主机争用总线(也就是同时发送数据占用主线)
但是这种总线型网络早已淘汰,现在常用的是用以太网交换机将多台主机互联形成的交换式以太网
那么以太网交换机是如何实现的呢?
我们将问题归到数据链路层
1.如何标识各网络以及网络中的各主机 (网络和主机共同编址的问题,例如IP地址)
如图中N1网络,网络号为192.168.1,所以与其相连的设备ip地址前三个也应该为192.168.1,第四位则各不相同
2.路由器如何转发分组,如何进行路由选择
我们将问题归在网络层
如何解决进程之间基于网络的通信问题?
出现传输错误时,如何处理?
应用层按HTTP协议规定,构建一个HTTP请求报文
应用层将HTTP请求报文交付给运输层处理
运输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段
该首部的作用主要是为了区分应用进程,以及实现可靠传输
运输层将TCP报文段交付给网络层处理
网络层给TCP报文段添加一个IP首部,使之成为IP数据报
该首部的作用主要是为了使IP数据报可以在互连网上传输,也就是被路由器转发
网络层将IP数据包交付给数据链路层处理
数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧
假设网络N1是以太网
该首部(右侧)的作用是书要是为了然后为了让帧能够在以一段链路上或一个网络上传输能够被相应的目的主机接收
该尾部其目的是为了让目的主机检查所接受的帧是否有误码
数据链路层将帧交付给物理层
物理层将帧看作比特流,因为N1是以太网,因此物理层还会给该比特流前添加前导码
目的是为了让接受主机做好接受帧的准备
物理层将加了前导码的比特流变换成相应的信号发送到传输媒体
信号通过传输媒体到达路由器
接下来就是路由器处理,然后通过路由表确定发送主机,传输媒体传入,应用层对HTTP请求报文进行解析,然后给主机发会HTTP响应报文,与之前类似,HTTP响应报文,需要在WEB服务器层层封装,传回路由器->主机
协议
协议的三要素 语法 语义 同步
语法:定义所交换信息的格式
语义:定义收发双方所要完成的操作
就是1.5.3我们分析的
同步:定义双方的时序关系
服务
1.在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务要实现本层协议,还需要使用下面一层所提供的服务。
2.协议是“水平的”,服务是“垂直的”
3.实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是"透明”的。
1.服务访问点在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
(1)数据链路层的服务访问点为帧的“类型”字段。
(2)网络层的服务访问点为IP数据报首部中的“协议字段”
(3)运输层的服务访问点为“端口号”
2.服务原语上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语
1.协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元
2.服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元。
3.多个SDU可以合成为一个PDU;一个SDU也可划分为几个PDU。