按交换技术分类
按使用者分类
按传输介质分类
按覆盖范围分类
速率
连接在计算机网络上的主机在数字信息上传送比特的速率,也称为比特率或数据率。
常用数据率单位:
bit/s (b/s, bps)
kb/s = 10^3 b/s(bps)
Mb/s = k*kb/s = 10^3 * 10^3 b/s = 10^6 b/s(bps)
Gb/s = k*Mb/s = 10^3 * 10^6 b/s = 10^9 b/s(bps)
Tb/s = k*Gb/s = 10^3 * 10^9 b/s = 10^12 b/s(bps)
-
比特
常用数据量单位:
8 bit = 1 Byte
KB = 2^10 B
MB = K * KB = 2^10 * 2^10 B = 2^20 B
GB = K * MB = 2^10 *2^20 B = 2^30 B
TB = K * GB = 2^10 *2^30 B = 2^40 B
-
练习:
有一个待发送的数据块,大小为100MB,网卡的发送速率为100Mbps,则网卡发送完该数据块需要多长时间?
100MB / 100Mb/s = MB / Mb/s = 2^20B / 10^6b/s = 2^20*8b / 10^6b/s = 8.388608 s
带宽
- 信号所包含的各种不同频率成分所占据的频率范围;
- 单位:Hz (kHz, MHz, GHz)
- 用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”;
- 单位:b/s (Kb/s, Mb/s, Gb/s, Tb/s)
吞吐量
- 表示在单位时间内通过某个网络(或信道,接口)的数据量
- 吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络
- 吞吐量受网络的带宽或额定速率的限制
时延
- 发送时延:分组长度(b)/ 发送速率(b/s)
- 传播时延:信道长度(m)/ 电磁波传播速率(m/s)
- 处理时延
时延带宽积:= 传播时延 * 带宽
往返时间(RTT: Round-Trip Time)
利用率
丢包率
- 丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率
- 丢包率具体可分为接口丢包率,结点丢包率,链路丢包率,路径丢包率,网络丢包率等
- 分组丢失主要有两种情况:
- 分组在传输过程中出现误码,被结点丢弃;
- 分组到达一台队列已满的分组交换机时被丢弃;在通信量较大时可能造成网络拥堵
- 因此,丢包率反应了网络的 拥堵情况:
- 无拥堵时路径丢包率为0
- 轻度拥堵时路径丢包率为1%~4%
- 严重拥堵时路径丢包率为5%~15%
计算机网络体系结构
OSI体系结构:
- 物理层
- 数据链路层
- 网络层
- 运输层
- 会话层
- 表示层
- 应用层
TCP/IP体系结构:
- 网络接口层
- 网际层
- 运输层
- 应用层
原理体系结构:
面对世界的复杂性(“由不同的维度交织”),找到各自的逻辑层次,逐个层次处理问题,然后整合起来,而不应全部混淆,导致处理问题无法持续下去,这就是“分层”带来的启发。
工程问题就是处理矛盾问题:让现实的世界按我们思想的规划执行,这个过程会受到现实复杂的世界的各种矛盾阻力,工程问题就是解决这些矛盾问题,会定制很多不同类型的协议统一。
-
物理层:
- 解决使用何种信号来传输比特的问题。
- 使用物理层协议(例如传统以太网使用曼彻斯特编码)进行通信
- 数据包:比特流
-
数据链路层:
- 解决分组在一个网络(或一段链路)上传输的问题。
- 使用链路层协议(例如传统以太网CSMA/CD)进行通信。
- 数据包:帧
-
网络层:
-
解决分组在多个网络上传输(路由)的问题。
-
使用网络层协议(例如IP)进行通信。
-
数据包:IP数据包或分组
-
运输层:
- 解决进程之间基于网络的通信问题。
- 使用运输层协议(例如TCP,UDP)进行通信。
- 数据包:TCP报文段或UDP用户数据报
-
应用层:
- 解决通过应用进程的交互来实现特定网络应用的问题。
- 使用应用层协议(例如HTTP,SMTP,FTP)进行通信。
- 数据包:应用报文
计算机网络体系结构中的专用术语
- 实体:任何可发送或接收信息的硬件或软件进程。
- 对等实体:收发双方相同层次中的实体。
- 协议:控制两个对等实体进行逻辑通信的规则的集合。
- 协议的三要素:
- 语法:定义所交换信息的格式
- 语义:定义收发双方所要完成的操作
- 同步:定义收发双方的时序关系
- 服务:在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
- 要实现本层协议,还需要使用下面一层所提供的服务
- 协议是“水平的”,服务是“垂直的”
- 实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是透明的
- 服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型
- 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
- 协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元
- 服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元
物理层的基本概念
- 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流。
- 物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么。
传输媒体
物理层协议的主要任务
-
机械特性
指明接口所用接线器的形状和尺寸,引脚数目和排列,固定和锁定装置
-
电气特性
指明在接口电缆的各条线上出现的电压的范围
-
功能特性
指明某条线上出现的某一电平的电压表示何种意义
-
过程特性
指明对于不同功能的各种可能事件的出现顺序
传输方式
- 串行传输
- 并行传输
- 同步传输
- 异步传输
- 单向通信(单工)
- 双向交替通信(半双工)
- 双向同时通信(全双工)
编码与调制
数据链路层概述
- 链路:就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点
- 数据链路:是指把实现通信协议的硬件和软件驾到链路上,就构成了数据链路
- 数据链路层以帧为单位传输和处理数据
封装成帧
两台主机通过一段链路互连,两台主机都会对所发送或接收的数据包进行五个层次的封装或解封,发送方将待发送的数据:
帧尾+应用层协议数据单元+运输层协议首部+网路层协议首部+帧头
- 通过应用层封装成为应用层协议数据单元,然后交付给运输层;
- 运输层为其添加运输层协议首部,使之成为运输层协议数据单元,然后交付给网络层;
- 网络层为其添加网络层协议首部,使之成为网络层协议数据单元,然后交付给数据链路层;
- 数据链路层给网络层协议数据单元添加一个数据链路层协议首部,简称为帧头,还要给其添加一个帧尾,我们将数据链路层给网络层交付的协议数据单元,添加帧头和帧尾的操作,称为封装成帧。添加帧头和帧尾的目的,都是为了在链路上以帧为单元来传送数据,也就是为了实现数据链路层本身的功能。
差错检测
发送方将封装好的帧通过物理层发送到传输媒体,帧在传输过程中遭遇干扰后可能会出现误码,接收方主机如何判断帧在传输过程中是否出现了误码呢?可以通过检错码来发现:发送方在发送帧之前,基于待发送到数据和检错算法计算出检错码,并将其封装在帧尾,接收方接收到帧后,通过检错码和检错算法,就可以判断出帧在传输过程中是否出现了误码
可靠传输
接收方主机收到有误码的帧后,是不会接收该帧的,将其丢弃。
使用广播信道的数据链路层
- 共享式以太网的媒体接入控制协议CSMA/CD
- 802.11局域网的媒体接入控制协议CSMA/CA
数据链路层的互连设备
- 网桥和交换机的工作原理
- 集线器(物理层互连设备)与交换机的区别
MAC地址
- 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址;
- 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址;
- MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EERPROM中,因此MAC地址也被称为硬件地址;
- MAC地址有时也被称为物理地址。注意:这并不意味着MAC地址属于网络体系结构中的物理层,而是属于网际链路层
- 一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无限局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。
IP地址
- IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息:
- 网络编号:标识因特网上数以百万计的网络;
- 主机编号:标识同一网络上不同主机(或路由器各接口)
- MAC地址不具备区分不同网络的功能
- 如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式)
- 如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用
地址解析协议ARP
虚拟局域网VLAN
虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。
网络层概述
- 网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输。
- 要实现网络层任务,需要解决以下主要问题:
- 网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)
- 网络层寻址
- 路由选择问题
IPv4地址
-
IPv4地址是给因特网(Internet)上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符。
-
IP地址是由因特网名字和数字机构ICANN进行分配
- 我国用户可向亚太网络信息中心APNIC申请IP地址,需要缴费。
- 2011年2月3日,互联网号码分配管理局IANA宣布,IPv4地址已经分配完毕。
- 我国在2014至2015年也逐步停止了向新用户和应用分配IPv4地址。同时全面开展商用部署IPv6。
-
IPv4地址的编址方法:
-
32比特的IPv4地址不方便阅读,记录以及输入等,因此IPv4地址采用点分十进制表示方法以便用户使用。
划分子网点IPv4地址
- 32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号。
- 子网掩码使用连续的比特1来对应网络号和子网号
- 子网掩码使用连续的比特0来对应主机号
- 将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可算得IPv4地址所在子网的网络地址
- 给定一个分类的IP地址和其相应的子网掩码,就可知道子网划分的细节:
- 划分出的子网数量
- 每个子网可分配的IP地址数量
- 每个子网的网络地址和广播地址
- 每个子网可分配的最小和最大地址
- 默认的子网掩码是指在未划分子网的情况下使用的子网掩码
- A类:255.0.0.0
- B类:255.255.0.0
- C类:255.255.255.0
运输层概述
-
计算机网络体系结构中的物理层,数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信。
-
但实际上计算机网络中进行通信的真正实体是位于通信两端主机中的进程。
-
如何为运行在不同主机上的应用进程提供直接的通信服务是运输层的任务,运输层协议又称为端到端协议。
-
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑,所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信通道。
-
根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输协议,即面向连接的TCP和无连接的UDP。
-
为了使运行不同操作系统的计算机的应用进程之间能够进行网络通信,就必须使用统一的方法对TCP/IP体系的应用进程进行标识
-
TCP/IP体系的运输层使用端口号来区分应用层的不同应用进程
- 端口号使用16比特表示,取值范围0~65535;
- 熟知端口号:0~1023,IANA把这些端口号只派给了TCP/IP体系中最重要的一些应用协议,例如:FTP使用21/20,HTTP使用80,DNS使用53;
- 登记端口号:1024~49151,为没有熟知端口号的应用程序使用。使用这类端口号必须要IANA按照规定的手续登记,以防止重复。
- 短暂端口号:49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
- 端口号只具有本地意义,即端口号只是为了标识本计算机应用层中的各进程,在因特网中,不同计算机中的相同端口号是没有联系的。
应用层概述
- 应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分。
- 网络应用程序运行在处于网络边缘的不同的端系统上,通过彼此间的通信来共同完成某项任务。
- 开发一种新的网络应用首先要考虑的问题就是网络应用程序在各种端系统上的组织方式和它们之间的关系,目前流行的主要有以下两种:
- 客户/服务器(Client/Server, C/S)方式
- 对等(Peer-to-Peer, P2P)方式
客户/服务器(Client/Server, C/S)方式
- 客户和服务器是指通信中所涉及的两个应用进程。
- 客户/服务器方式所描述的是进程之间服务和被服务的关系。
- 基于C/S方式的应用服务通常是服务集中性的,即应用服务集中在网络中比客户计算机少得多的服务器计算机上
- 由于一台服务器计算机要为多个客户机提供服务,在C/S应用中,常会出现服务器计算机跟不上众多客户机请求的情况
- 为此,在C/S应用中,常用计算机群集(或服务器场)构建一个强大的虚拟服务器。
对等(Peer-to-Peer, P2P)方式
- 在P2P方式中,没有固定的服务请求者和服务提供者,分布在网络边缘各端系统中的应用进程是对等的,被称为对等方。对等方相互之间直接通信,每个对等方即是服务的请求者,又是服务的提供者。
域名系统DNS(Domain Name System)
-
因特网采用层次树状结构的域名结构;
-
域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名
... .三级域名.二级域名.顶级域名
- 每一级的域名都由英文字母和数字组成,不超过63个字符,不区分大小写字母。
- 级别最低的域名写在最左边,而憋憋最高的顶级域名写在最后边。
- 完整的域名不超过255个字符。
-
域名系统即不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。
-
各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构ICANN进行管理。
-
顶级域名TLD(Top Level Domain)分为以下三类:
- 国家顶级域名nTLD:采用ISO 3166的规定。如cn表示中国,us表示美国,uk表示英国等等。
- 通用顶级域名gTLD:最常见的通用顶级域名由七个,即:com(公司企业),net(网络服务机构),org(非营利性组织),int(国际组织),edu(美国教育机构),gov(美国政府部门),mil(美国军事部门)
- 反向域名arpa:用于反向域名解析,即ip地址反向解析为域名。
-
在国家顶级域名下注册的二级域名均由该国家自行确定。例如,顶级域名为jp的日本,将其教育和企业机构的二级域名定为ac和co,而不用edu和com。
-
我国则将二级域名划分为以下两类:
- 类别域名:共七个 - ac(科研机构),com(工,商,金融等企业),edu(教育机构),gov(政府部门),net(提供网络服务的机构),mil(军事机构)和org(非盈利性组织)
- 行政区域名:共34个,适用于我国的各省/自治区/直辖市。
-
域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。显然不能将所有信息都存储在一台域名服务器中,DNS使用分布在各地的域名服务器来实现域名到IP地址的转换。
-
域名服务器可以划分为以下四种不同的类型:
- 根域名服务器
- 顶级域名服务器
- 权限域名服务器
- 本地域名服务器
-
为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
文件传输协议FTP
- 将某台计算机中的文件通过网络传送到可能相距很远的另一台计算机中,是一项基本的网络应用,即文件传送。
- ***文件传送协议FTP(File Transfer Protocol)***是因特网上使用最广泛的文件传送协议:
- FTP提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。
- FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
电子邮件
- 简单邮件传送协议SMTP(Simple Mail Transfer Protocol)的基本工作原理。
- 电子邮件的信息格式并不是由SMTP定义的,而是在RFC 822中单独定义的。这个RFC文档在2008年更新为RFC5322。一个电子邮件有信封和内容两部分。而内容又由首部和主体两部分构成。
- SMTP不能满足传送多媒体邮件(例如带有图片,音频或视频数据)的需要。并且许多其他非英语国家的文字也无法用SMTP传送。
- 为解决SMTP传送非ASCII码文本的问题,提出了多用途因特网邮件扩展MIME(Multipurpose Internet Mail Extensions)
- 增加了5个新的邮件首部字段,这些字段提供了有关邮件主题的信息。
- 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
- 定义了传动编码,可对任何内容格式进行转换,而不会被邮件系统改变。
万维网www
- 万维网WWW(World Wide Web)并非某种特殊的计算机网络。它是一个大规模的,联机式的信息储藏所,是运行在因特网上的一个分布式应用。
- 万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网。
- 浏览器最重要的部分是渲染引擎,也就是浏览器内核。负责对网页内容进行解析和显示。
- 不同的浏览器内核对网页内容对解析也有所不同,因此同一网页在不同内核对浏览器里的显示效果可能不同;
- 网页编辑者需要在不同内核的浏览器中测试网页显示效果。
- 为了方便地访问在世界范围的文档,万维网使用统一资源定位符URL来指明因特网上任何种类“资源”的位置。
- URL的一般形式由四个部分组成:<协议>://<主机>:<端口>/<路径>
万维网的文档
- HTML:超文本标记语言HTML(Hyper Text Markup Language),使用多种“标签”来描述网页的结构和内容
- CSS:层叠样式表CSS(Cascading Style Sheets),从审美的角度来描述网页的样式
- JavaScript:一种脚本语言,控制网页的行为
超文本传输协议HTTP(Hyper Text Transfer Protocol)
HTTP定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器。
- HTTP/1.0采用非持续连接方式。在该方式下,每次浏览器要请求一个文件都要与服务器建立TCP连接,当收到相应后立即关闭连接。
- 每请求一个文档就要有两倍的RTT的开销。若一个网页上有很多引用对象(例如图片等),那么请求每一个对象都需要花费2RTT的时间。
- 为了减小时延,浏览器通常会建立多个并行的TCP连接同时请求多个对象。但是,这会大量占用万维网服务器的资源,特别是万维网服务器往往要同时服务于大量客户的请求,这会使其负担很重。
- HTTP/1.1采用持续连接方式。在该方式下,万维网服务器在发送相应后仍然保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这并不局限于传送同一个页面上引用的对象,而是只要这些文档都在同一个服务器上就行。
- 为了进一步提高效率,HTTP/1.1的持续连接还可以使用流水线方式工作,即浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文。这样的一个接一个的请求报文到达服务器后,服务器就发回一个接一个的响应报文。这样就省了很多个RTT时间,使TCP连接中的空闲时间减少,提高了下载文档的效率。
使用Cookie在服务器上记录用户信息
- 早期的万维网应用非常简单,仅仅是用户查看存放在不同服务器上的各种静态的文档。因此HTTP被设计为一种无状态的协议。这样可以简化服务器的设计。
- Cookie提供了一种机制使得万维网服务器能够“记住”用户,而无需用户主动提供用户标识信息。也就是说,Cookie是一种对无状态的HTTP进行状态化的技术。
万维网缓存与代理服务器
- 在万维网中可以使用缓存机制以提高万维网的效率。
- 万维网缓存又称为Web缓存(Web Cache),可位于客户机,也可位于中间系统上,位于中间系统上的的Web缓存又被称为代理服务器(Proxy Server)。
- Web缓存把最近一些请求和相应暂存在本地磁盘中。当新请求到达时,若发现这个请求与暂时存放的请求相同时,就返回暂存的响应,而不需要按URL的地址再次去因特网访问该资源。
HTTP的报文格式
HTTP是面向文本的,其报文中的每一个字段都是一些ASCII 码串,并且每个字段的长度都是不确定的。
-
HTTP请求报文格式
请求行:方法 URL 版本 CRLF
首部行:首部字段名: 值 CRLF
-
HTTP响应报文格式
状态行:版本 状态码 短语 CRLF
首部行:首部字段名: 值 CRLF
-
状态行中的状态码共分五大类共33种
- 1XX:表示通知信息,如请求收到了或正在进行处理;
- 2XX:表示成功,如接受或知道了;
- 3XX:表示重定向,即要完成请求还必须采取进一步的行动;
- 4XX:表示客户的差错,如请求中有错误的语法或不能完成;
- 5XX:表示服务器的差错,如服务器失效无法完成请求。