第 1 章 概述
计算机网络在信息时代中的作用
21 世纪的一些重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。
网络现已成为信息社会的命脉和发展知识经济的重要基础。
网络是指“三网”,即电信网络、有线电视网络和计算机网络。
发展最快的并起到核心作用的是计算机网络。
因特网(Internet)的发展
-
进入 20 世纪 90 年代以后,以因特网为代表的计算机网络得到了飞速的发展。
-
已从最初的教育科研网络逐步发展成为商业网络。
-
已成为仅次于全球电话网的世界第二大网络。
因特网的意义
-
因特网是自印刷术以来人类通信方面最大的变革。
-
现在人们的生活、工作、学习和交往都已离不开因特网。
因特网概述
网络的网络
-
起源于美国的因特网现已发展成为世界上最大的国际性计算机互联网
-
网络(network)由若干结点(node)和连接这些结点的链路(link)组成。
-
互联网是“网络的网络”(network of networks)。
-
连接在因特网上的计算机都称为主机(host)。
-
网络与因特网
-
网络把许多计算机连接在一起。
-
因特网则把许多网络连接在一起。
-
因特网发展的三个阶段
-
第一阶段是从单个网络 ARPANET 向互联网发展的过程。
-
1983 年 TCP/IP 协议成为 ARPANET 上的标准协议。
-
人们把 1983 年作为因特网的诞生时间。
-
-
第二阶段的特点是建成了三级结构的因特网。
-
三级计算机网络,分为主干网、地区网和校园网(或企业网)。
-
-
第三阶段的特点是逐渐形成了多层次 ISP 结构的因特网。
-
出现了因特网服务提供者 ISP (Internet Service Provider)。
-
根据提供服务的覆盖面积大小以及所拥有的IP 地址数目的不同,ISP 也分成为不同的层次。
-
因特网的标准化工作
-
制订因特网的正式标准要经过以下的四个阶段
-
因特网草案(Internet Draft) ——在这个阶段还不是 RFC 文档。
-
建议标准(Proposed Standard) ——从这个阶段开始就成为 RFC 文档。
-
草案标准(Draft Standard)
-
因特网标准(Internet Standard)
-
-
各种RFC之间的关系
计算机网络在我国的发展
因特网的组成
因特网的边缘部分
-
由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
-
处在因特网边缘的部分就是连接在因特网上的所有的主机。这些主机又称为端系统(end system)。
-
“主机 A 和主机 B 进行通信”,实际上是指:“运行在主机 A 上的某个程序和运行在主机 B 上的另一个程序进行通信”。
-
即“主机 A 的某个进程和主机 B 上的另一个进程进行通信”。或简称为“计算机之间通信”
-
因特网的核心部分
-
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)
-
网络核心部分是因特网中最复杂的部分。
-
网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据)。
-
在网络核心部分起特殊作用的是路由器(router)。
-
路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
-
在路由器中的输入和输出端口之间没有直接连线。
-
路由器处理分组的过程是:
-
把收到的分组先放入缓存(暂时存储);
-
查找转发表,找出到某个目的地址应从哪个端口转发;
-
把分组送到适当的端口转发出去。
-
-
-
-
路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
-
计算机网络在我国的发展
(1) 中国公用计算机互联网 CHINANET
(2) 中国教育和科研计算机网 CERNET
(3) 中国科学技术网 CSTNET
(4) 中国联通互联网 UNINET
(5) 中国网通公用互联网 CNCNET
(6) 中国国际经济贸易互联网 CIETNET
(7) 中国移动互联网 CMNET
(8) 中国长城互联网 CGWNET(建设中)
(9) 中国卫星集团互联网 CSNET(建设中)
计算机网络的类别
计算机网络的定义
-
最简单的定义:计算机网络是一些互相连接的、自治的计算机的集合。
-
因特网(Internet)是“网络的网络”。
几种不同类别的网络
-
不同作用范围的网络
-
广域网 WAN (Wide Area Network)
-
局域网 LAN (Local Area Network)
-
城域网 MAN (Metropolitan Area Network)
-
个人区域网 PAN (Personal Area Network)
-
-
从网络的使用者进行分类
-
公用网 (public network)
-
专用网 (private network)
-
计算机网络的性能
计算机网络的性能指标
-
速率
-
比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。
-
Bit 来源于 binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个 1 或 0。
-
速率即数据率(data rate)或比特率(bit rate)是计算机网络中最重要的一个性能指标。速率的单位是 b/s,或kb/s, Mb/s, Gb/s 等
-
速率往往是指额定速率或标称速率。
-
-
带宽
-
“带宽”(bandwidth)本来是指信号具有的频带宽度,单位是赫(或千赫、兆赫、吉赫等)。
-
现在“带宽”是数字信道所能传送的“最高数据率”的同义语,单位是“比特每秒”,或 b/s (bit/s)。
-
常用的带宽单位
-
更常用的带宽单位是
-
千比每秒,即 kb/s (103 b/s)
-
兆比每秒,即 Mb/s(106 b/s)
-
吉比每秒,即 Gb/s(109 b/s)
-
太比每秒,即 Tb/s(1012 b/s)
-
请注意:在计算机界,K = 210 = 1024
-
M = 220, G = 230, T = 240。
-
-
数字信号流随时间的变化
-
在时间轴上信号的宽度随带宽的增大而变窄。
-
-
-
吞吐量
-
吞吐量(throughput)表示在单位时间内通过某个网络(或信道、接口)的数据量。
-
吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
-
吞吐量受网络的带宽或网络的额定速率的限制。
-
-
时延(delay 或 latency)
-
传输时延(发送时延 ) 发送数据时,数据块从结点进入到传输媒体所需要的时间。
-
也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
-
传播时延 电磁波在信道中需要传播一定的距离而花费的时间。
-
信号传输速率(即发送速率)和信号在信道上的传播速率是完全不同的概念。
-
处理时延 交换结点为存储转发而进行一些必要的处理所花费的时间。
-
排队时延 结点缓存队列中分组排队所经历的时延。
-
排队时延的长短往往取决于网络中当时的通信量。
-
数据经历的总时延就是发送时延、传播时延、处理时延和排队时延之和:
-
-
时延带宽积
-
链路的时延带宽积又称为以比特为单位的链路长度。
-
-
利用率
-
信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
-
网络利用率则是全网络的信道利用率的加权平均值。
-
信道利用率并非越高越好。
-
-
时延与网络利用率的关系
-
根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。
-
若令 D0 表示网络空闲时的时延,D 表示网络当前的时延,则在适当的假定条件下,可以用下面的简单公式表示 D 和 D0之间的关系:
-
U 是网络的利用率,数值在 0 到 1 之间。
-
-
计算机网络的非性能特征
-
费用
-
质量
-
标准化
-
可靠性
-
可扩展性和可升级性
-
易于管理和维护
计算机网络的体系结构
计算机网络体系结构的形成
-
相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。
-
“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
协议与划分层次
-
划分层次的必要性
-
计算机网络中的数据交换必须遵守事先约定好的规则。
-
这些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。
-
网络协议(network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。
-
-
网络协议的组成要素
-
语法 数据与控制信息的结构或格式 。
-
语义 需要发出何种控制信息,完成何种动作以及做出何种响应。
-
同步 事件实现顺序的详细说明。
-
-
分层的好处
-
各层之间是独立的。
-
灵活性好。
-
结构上可分割开。
-
易于实现和维护。
-
能促进标准化工作。
-
具有五层协议的体系结构
-
TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层。
-
但最下面的网络接口层并没有具体内容。
-
因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
实体、协议、服务和服务访问点
-
实体(entity) 表示任何可发送或接收信息的硬件或软件进程。
-
协议是控制两个对等实体进行通信的规则的集合。
-
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
-
要实现本层协议,还需要使用下层所提供的服务。
-
本层的服务用户只能看见服务而无法看见下面的协议。
-
下面的协议对上面的服务用户是透明的。
-
协议是“水平的”,即协议是控制对等实体之间通信的规则。
-
服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
-
同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP (Service Access Point)。
-
协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的。
-
看一个计算机网络协议是否正确,不能光看在正常情况下是否正确,而且还必须非常仔细地检查这个协议能否应付各种异常情况。
internet 和 Internet 的区别
以小写字母 i 开始的 internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而成的网络。
以大写字母I开始的的 Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用 TCP/IP 协议族作为通信的规则,且其前身是美国的 ARPANET。
万维网 WWW 的问世
因特网已经成为世界上规模最大和增长速率最快的计算机网络,没有人能够准确说出因特网究竟有多大。
因特网的迅猛发展始于 20 世纪 90 年代。由欧洲原子核研究组织 CERN 开发的万维网 WWW (World Wide Web)被广泛使用在因特网上,大大方便了广大非网络专业人员对网络的使用,成为因特网的这种指数级增长的主要驱动力。
客户软件的特点
被用户调用后运行,在打算通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。
不需要特殊的硬件和很复杂的操作系统。
服务器软件的特点
一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。
一般需要强大的硬件和高级的操作系统支持。
因特网的边缘部分与核心部分
两种国际标准
法律上的(de jure)国际标准 OSI 并没有得到市场的认可。
是非国际标准 TCP/IP 现在获得了最广泛的应用。
TCP/IP 常被称为事实上的(de facto) 国际标准。
主机 1 向主机 2 发送数据
主机 1 向主机 2 发送数据
主机 1 向主机 2 发送数据
主机 1 向主机 2 发送数据
主机 1 向主机 2 发送数据
主机 1 向主机 2 发送数据
主机 1 向主机 2 发送数据
主机 1 向主机 2 发送数据
主机 1 向主机 2 发送数据
主机 1 向主机 2 发送数据
主机 1 向主机 2 发送数据
分组交换
在发送端,先把较长的报文划分成较短的、固定长度的数据段。
添加首部构成分组
-
每一个数据段前面添加上首部构成分组
分组交换的传输单元
-
分组交换网以“分组”作为数据传输单元。
-
依次把各分组发送到接收端(假定接收端在左边)
分组首部的重要性
-
每一个分组的首部都含有地址等控制信息。
-
分组交换网中的结点交换机根据收到的分组的首部中的地址信息,把分组转发到下一个结点交换机。
-
用这样的存储转发方式,最后分组就能到达最终目的地。
收到分组后剥去首部
-
接收端收到分组后剥去首部还原成报文
最后还原成原来的报文
分组交换的优点
-
高效 动态分配传输带宽,对通信链路是逐段占用。
-
灵活 以分组为传送单位和查找路由。
-
迅速 不必先建立连接就能向其他主机发送分组。
-
可靠 保证可靠性的网络协议;分布式的路由选择协议使网络有很好的生存性。
分组交换带来的问题
-
分组在各结点存储转发时需要排队,这就会造成一定的时延。
-
分组必须携带的首部(里面有必不可少的控制信息)也造成了一定的开销。
电路交换
两部电话机只需要用一对电线就能够互相连接起来。
更多的电话机互相连通
-
5 部电话机两两相连,需 10 对电线。
-
N 部电话机两两相连,需 N(N – 1)/2 对电线。
-
当电话机的数量很大时,这种连接方法需要的电线对的数量与电话机数的平方成正比。
使用交换机
-
当电话机的数量增多时,就要使用交换机来完成全网的交换任务。
电路交换的特点
-
电路交换必定是面向连接的。
-
电路交换的三个阶段:
-
建立连接
-
通信
-
释放连接
-
-
电路交换传送计算机数据效率低
-
计算机数据具有突发性。
-
这导致通信线路的利用率很低。
-
三种交换的比较
两种通信方式
客户服务器方式(C/S 方式) 即Client/Server方式
-
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
-
客户服务器方式所描述的是进程之间服务和被服务的关系。
-
客户是服务的请求方,服务器是服务的提供方。
对等方式(P2P 方式) 即 Peer-to-Peer方式
-
对等连接(peer-to-peer,简写为 P2P)是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。
-
只要两个主机都运行了对等连接软件(P2P 软件),它们就可以进行平等的、对等连接通信。
-
双方都可以下载对方已经存储在硬盘中的共享文档。
-
对等连接方式的特点
-
对等连接方式从本质上看仍然是使用客户服务器方式,只是对等连接中的每一个主机既是客户又同时是服务器。
-
例如主机 C 请求 D 的服务时,C 是客户,D 是服务器。但如果 C 又同时向 F提供服务,那么 C 又同时起着服务器的作用。
-
TCP/IP 的体系结构
关于开放系统互连参考模型OSI/RM
只要遵循 OSI 标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信。
在市场化方面 OSI 却失败了。
-
OSI 的专家们在完成 OSI 标准时没有商业驱动力;
-
OSI 的协议实现起来过分复杂,且运行效率很低;
-
OSI 标准的制定周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场;
-
OSI 的层次划分并也不太合理,有些功能在多个层次中重复出现。
172.16.22.56
(1010 1100).(0001 0000).(0001 0110).(0011 1000)
255.255.255.0
(1111 1111).(1111 1111).(1111 1111).(0000 0000)
172.16.22 网络号
(1010 1100).(0001 0000).(0001 011
能够容纳的主机数量最多为
0).(0000 0000)
广播地址:所有主机号全为1
1).(1111 1111)
广播地址 = 网络号+所有主机全1
(1010 1100).(0001 0000).(0001 0111).(1111 1111)
广播地址:
172.16.23.255
第 2 章 物理层
物理层的基本概念
物理层的主要任务描述为确定与传输媒体的接口的一些特性
-
机械特性 指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。
-
电气特性 指明在接口电缆的各条线上出现的电压的范围。
-
功能特性 指明某条线上出现的某一电平的电压表示何种意义。
-
过程特性 指明对于不同功能的各种可能事件的出现顺序。
数据通信的基础知识
数据通信系统的模型
有关信道的几个基本概念
-
单向通信(单工通信)——只能有一个方向的通信而没有反方向的交互。
-
双向交替通信(半双工通信)——通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。
-
双向同时通信(全双工通信)——通信的双方可以同时发送和接收信息。
-
几种最基本的调制方法
-
调幅(AM):载波的振幅随基带数字信号而变化。
-
调频(FM):载波的频率随基带数字信号而变化。
-
调相(PM) :载波的初始相位随基带数字信号而变化。
-
概要: 图片
-
信道的极限容量
-
信道能够通过的频率范围
-
1924 年,奈奎斯特(Nyquist)就推导出了著名的奈氏准则。他给出了在假定的理想条件下,为了避免码间串扰,码元的传输速率的上限值
-
-
信噪比
-
香农(Shannon)用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率。 信道的极限信息传输速率 C 可表达为 C = W log2(1+S/N) b/s W 为信道的带宽(以 Hz 为单位); S 为信道内所传信号的平均功率; N 为信道内部的高斯噪声功率。
-
香农公式表明
-
信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
-
只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错的传输。
-
若信道带宽 W 或信噪比 S/N 没有上限(当然实际信道不可能是这样的),则信道的极限信息传输速率 C 也就没有上限。
-
实际信道上能够达到的信息传输速率要比香农的极限传输速率低不少。
-
-
-
信道的极限信息传输速率
物理层下面的传输媒体
导向传输媒体
-
双绞线
-
屏蔽双绞线 STP (Shielded Twisted Pair)
-
无屏蔽双绞线 UTP (Unshielded Twisted Pair)
-
-
同轴电缆
-
50 Ω同轴电缆
-
75 Ω 同轴电缆
-
-
光缆
-
光纤的工作原理
-
光线在纤芯中传输的方式是不断地全反射
-
-
非导向传输媒体
-
无线传输所使用的频段很广。
-
短波通信主要是靠电离层的反射,但短波信道的通信质量较差。
-
微波在空间主要是直线传播。
-
卫星通信
-
地面微波接力通信
-
信道复用技术
频分复用、时分复用和统计时分复用
-
频分复用 FDM(Frequency Division Multiplexing)
-
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
-
示意图
-
-
-
时分复用TDM(Time Division Multiplexing)
-
时分复用则是将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。
-
示意图
-
-
-
统计时分复用 STDM(Statistic TDM)
-
是对时分复用的一种改进,不固定每个用户在时分复用帧中的位置,只要有数据就集中起来组成统计时分复用帧然后发送。
-
示意图
-
-
波分复用
-
波分复用 WDM(Wavelength Division Multiplexing)
-
光的频分复用。由于光的频率很高,因此习惯上用波长而不是频率来表示所使用的光载波。
-
码分复用
-
码分复用 CDM(Code Division Multiplexing)
-
常用的名词是码分多址 CDMA (Code Division Multiple Access)。
-
各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
-
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
-
每一个比特时间划分为 m 个短的间隔,称为码片(chip)。
-
具体内容
-
1.为每个用户分配 m bit 的码片,并且所有的码片正交,对于任意两个码片 S 和 T 有
-
2.为了讨论方便,取 m=8,设码片 s 为 00011011。在拥有该码片的用户发送比特 1 时就发送该码片,发送比特 0 时就发送该码片的反码 11100100。
-
-
在计算时将 00011011 记作 (-1 -1 -1 +1 +1 -1 +1 +1),可以得到(其中 S' 为 S 的反码。) * 3.利用上面的式子我们知道,当接收端使用码片 对接收到的数据进行内积运算时,结果为 0 的是其它用户发送的数据,结果为 1 的是用户发送的比特 1,结果为 -1 的是用户发送的比特 0。 * 码分复用需要发送的数据量为原先的 m 倍。
数字传输系统
脉码调制 PCM 体制
同步光纤网 SONET 和同步数字系列 SDH
宽带接入技术
xDSL技术
-
xDSL 技术就是用数字技术对现有的模拟电话用户线进行改造,使它能够承载宽带业务。把 0~4 kHz 低端频谱留给传统电话使用,而把原来没有被利用的高端频谱留给用户上网使用。
光纤同轴混合网(HFC 网)
-
HFC 网是在目前覆盖面很广的有线电视网 CATV 的基础上开发的一种居民宽带接入网。HFC 网除可传送 CATV 外,还提供电话、数据和其他宽带交互型业务。
FTTx 技术
-
FTTx(光纤到……)也是一种实现宽带居民接入网的方案。这里字母 x 可代表不同意思。
-
光纤到家 FTTH (Fiber To The Home):光纤一直铺设到用户家庭可能是居民接入网最后的解决方法。
-
光纤到大楼 FTTB (Fiber To The Building):光纤进入大楼后就转换为电信号,然后用电缆或双绞线分配到各用户。
-
光纤到路边 FTTC (Fiber To The Curb):从路边到各用户可使用星形结构双绞线作为传输媒体。
-
第 3 章 数据链路层
使用点对点信道的数据链路层
数据链路和帧
-
数据链路层使用的信道主要有以下两种类型:
-
点对点信道。这种信道使用一对一的点对点通信方式。
-
广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发
-
-
数据链路层模型
-
链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
-
数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
-
数据链路层传送的是帧
三个基本问题
-
(1) 封装成帧
-
将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
-
-
(2) 透明传输
-
透明表示一个实际存在的事物看起来好像不存在一样。
-
帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
-
-
(3) 差错控制
-
循环冗余检验 CRC 目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。
-
帧检验序列 FCS 在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
-
冗余码的计算
-
例子: 现在 k = 6, M = 101001。 设 n = 3, 除数 P = 1101, 被除数是 2^nM = 101001000。 模 2 运算的结果是:商 Q = 110101, 余数 R = 001。 把余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是:2^nM + R 即:101001001,共 (k + n) 位。
-
-
概要: CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。 FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。
-
点对点协议 PPP
PPP 协议的特点
-
互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。
PPP 协议的帧格式
-
示意图: F 字段为帧的定界符 A 和 C 字段暂时没有意义 FCS 字段是使用 CRC 的检验序列 信息部分的长度不超过 1500
PPP 协议的工作状态
-
过程: 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。 PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。 这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
使用广播信道的数据链路层
局域网的数据链路层
-
局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。
-
主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。
-
可以按照网络拓扑结构对局域网进行分类:
-
星形网
-
环形网
-
总线网
-
树形网
-
-
数据链路层的两个子层
-
逻辑链路控制 LLC (Logical Link Control)子层
-
媒体接入控制 MAC (Medium Access Control)子层。
-
概要: 与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关,不管采用何种协议的局域网对 LLC 子层来说都是透明的 所以以后一般不考虑 LLC 子层
-
-
适配器
-
网络接口板又称为通信适配器(adapter)或网络接口卡 NIC (Network Interface Card),或“网卡”。
-
适配器的重要功能:
-
进行串行/并行转换。
-
对数据进行缓存。
-
在计算机的操作系统安装设备驱动程序。
-
实现以太网协议。
-
-
-
CSMA/CD 协议
-
CSMA/CD 表示载波监听多点接入 / 碰撞检测。
-
多点接入 :说明这是总线型网络,许多主机以多点的方式连接到总线上。
-
载波监听 :每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。
-
碰撞检测 :在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。
-
-
具体内容
-
记端到端的传播时延为 τ,最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞,称 2τ 为 争用期 。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
-
当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 {0, 1, .., (2k-1)} 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间。
-
概要: 示意图
-
使用广播信道的以太网
使用集线器的星形拓扑
-
传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。 这种以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)
以太网的信道利用率
-
一个帧从开始发送,经可能发生的碰撞后,将再重传数次,到发送成功且信道转为空闲(即再经过时间 τ 使得信道上无信号在传播)时为止,是发送一帧所需的平均时间。
-
发送一帧占用线路的时间是 T0 + τ ,而帧本身的发送时间是 T0。于是我们可计算出理想情况下的极限信道利用率 Smax为:
以太网的 MAC 层
-
MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)。
-
一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。
以太网帧格式:
-
类型 :标记上层使用的协议; 数据 :长度在 46-1500 之间,如果太小则需要填充; FCS :帧检验序列,使用的是 CRC 检验方法;
扩展的以太网
在物理层扩展以太网
-
用多个集线器可连成更大的局域网
-
用集线器组成更大的局域网都在一个碰撞域中
-
优点
-
使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。
-
扩大了局域网覆盖的地理范围。
-
-
缺点
-
碰撞域增大了,但总的吞吐量并未提高。
-
如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
-
-
-
在数据链路层扩展以太网
-
在数据链路层扩展局域网是使用网桥。
-
网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。 网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口 。
-
优点
-
过滤通信量。
-
扩大了物理范围。
-
提高了可靠性。
-
可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网。
-
-
缺点
-
存储转发增加了时延。
-
在MAC 子层并没有流量控制功能。
-
具有不同 MAC 子层的网段桥接在一起时时延更大。
-
网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。
-
-
-
交换机
-
交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。 正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。
-
下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧,主机 B 回应该帧向主机 A 发送数据包时,交换机查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 2 的映射。
-
-
-
虚拟局域网
-
虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息。
-
例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。
-
使用 VLAN 干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q,它在标准以太网帧上加进了 4 字节首部 VLAN 标签,用于表示该帧属于哪一个虚拟局域网。
高速以太网
100BASE-T 以太网
-
速率达到或超过 100 Mb/s 的以太网称为高速以太网
-
可在全双工方式下工作而无冲突发生。因此,不使用 CSMA/CD 协议。
吉比特以太网
-
允许在 1 Gb/s 下全双工和半双工两种方式工作。
-
在半双工方式下使用 CSMA/CD 协议(全双工方式不需要使用 CSMA/CD 协议)。
10 吉比特以太网
-
10 吉比特以太网只工作在全双工方式
-
也不使用 CSMA/CD 协议。
使用高速以太网进行宽带接入
-
以太网接入的重要特点是它可提供双向的宽带通信,并且可根据用户对带宽的需求灵活地进行带宽升级。
-
采用以太网接入可实现端到端的以太网传输,中间不需要再进行帧格式的转换。这就提高了数据的传输效率和降低了传输的成本。
其他类型的高速局域网接口
集线器在转发帧时,不对传输媒体进行检测。
网桥在转发帧之前必须执行 CSMA/CD 算法。
第 4 章 网络层
网络层提供的两种服务
虚电路服务
数据报服务
概要: 虚电路服务与数据报服务的对比
网际协议 IP
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有四个协议:
-
地址解析协议 ARP (Address Resolution Protocol)
-
逆地址解析协议 RARP (Reverse Address Resolution Protocol)
-
网际控制报文协议 ICMP (Internet Control Message Protocol)
-
网际组管理协议 IGMP (Internet Group Management Protocol)
-
概要: 示意图
虚拟互连网络
-
网络互相连接起来要使用一些中间设备
-
物理层中继系统:转发器(repeater)。
-
数据链路层中继系统:网桥或桥接器(bridge)。
-
网络层中继系统:路由器(router)。
-
网桥和路由器的混合物:桥路器(brouter)。
-
网络层以上的中继系统:网关(gateway)。
-
IP 数据报的格式
-
版本 : 有 4(IPv4)和 6(IPv6)两个值;
-
首部长度 : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为固定部分长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
-
区分服务 : 用来获得更好的服务,一般情况下不使用。
-
总长度 : 包括首部长度和数据部分长度。
-
生存时间 :TTL,它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL 为 0 时就丢弃数据报。
-
协议 :指出携带的数据应该上交给哪个协议进行处理,例如 ICMP、TCP、UDP 等。
-
首部检验和 :因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算的工作量。
-
标识 : 在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。
-
片偏移 : 和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节。
-
IP数据报分片
-
-
概要: 示意图
分类的 IP 地址
-
IP 地址的编址方式经历了三个历史阶段:
-
分类
-
由两部分组成,网络号和主机号,其中不同分类具有不同的网络号长度,并且是固定的。 IP 地址 ::= {< 网络号 >, < 主机号 >}
-
示意图
-
-
-
子网划分
-
通过在主机号字段中拿一部分作为子网号,把两级 IP 地址划分为三级 IP 地址。
-
-
IP 地址 ::= {< 网络号 >, < 子网号 >, < 主机号 >}
要使用子网,必须配置子网掩码。一个 B 类地址的默认子网掩码为 255.255.0.0,如果 B 类地址的子网占两个比特,那么子网掩码为 11111111 11111111 11000000 00000000,也就是 255.255.192.0。
注意,外部网络看不到子网的存在。 * 无分类 * 无分类编址 CIDR 消除了传统 A 类、B 类和 C 类地址以及划分子网的概念,使用网络前缀和主机号来对 IP 地址进行编码,网络前缀的长度可以根据需要变化。
IP 地址 ::= {< 网络前缀号 >, < 主机号 >}
CIDR 的记法上采用在 IP 地址后面加上网络前缀长度的方法,例如 128.14.35.7/20 表示前 20 位为网络前缀。
CIDR 的地址掩码可以继续称为子网掩码,子网掩码首 1 长度为网络前缀的长度。
一个 CIDR 地址块中有很多地址,一个 CIDR 表示的网络就可以表示原来的很多个网络,并且在路由表中只需要一个路由就可以代替原来的多个路由,减少了路由表项的数量。把这种通过使用网络前缀来减少路由表项的方式称为路由聚合,也称为 构成超网 。
在路由表中的项目由“网络前缀”和“下一跳地址”组成,在查找时可能会得到不止一个匹配结果,应当采用最长前缀匹配来确定应该匹配哪一个。
IP 地址与硬件地址
-
IP层抽象的互联网屏蔽了下层很复杂的细节 在抽象的网络层上讨论问题,就能够使用 统一的、抽象的 IP 地址 研究主机和主机或主机和路由器之间的通信
-
示意图
-
地址解析协议 ARP 与逆地址解析协议RARP
-
缘由
-
网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变。
-
-
地址解析协议 ARP
-
ARP 实现由 IP 地址得到 MAC 地址
-
每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。
-
-
如果主机 A 知道主机 B 的 IP 地址,但是 ARP 高速缓存中没有该 IP 地址到 MAC 地址的映射,此时主机 A 通过广播的方式发送 ARP 请求分组,主机 B 收到该请求后会发送 ARP 响应分组给主机 A 告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。 * 示意图
-
逆地址解析协议 RARP
-
逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。
-
这种主机往往是无盘工作站。 因此 RARP协议目前已很少使用。
-
-
IP 层转发分组的流程
-
分组转发算法
-
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
-
(2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。
-
(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
-
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
-
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
-
(6) 报告转发分组出错。
-
概要: 示意图
-
划分子网和构造超网
划分子网
使用子网时分组转发
无分类编址 CIDR(构造超网)
网际控制报文协议 ICMP
简介
-
ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会。它封装在 IP 数据报中,但是不属于高层协议。
ICMP 报文的种类
-
ICMP 差错报告报文
-
终点不可达
-
源点抑制(Source quench)
-
时间超过
-
参数问题
-
改变路由(重定向)(Redirect)
-
-
ICMP 询问报文
-
回送请求和回答报文
-
时间戳请求和回答报文
-
-
ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
ICMP 的应用举例
-
-
Ping
-
Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。
-
Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。
-
-
Traceroute
-
Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。
-
Traceroute 发送的 IP 数据报封装的是无法交付的 UDP 用户数据报,并由目的主机发送终点不可达差错报告报文。 * 源主机向目的主机发送一连串的 IP 数据报。第一个数据报 P1 的生存时间 TTL 设置为 1,当 P1 到达路径上的第一个路由器 R1 时,R1 收下它并把 TTL 减 1,此时 TTL 等于 0,R1 就把 P1 丢弃,并向源主机发送一个 ICMP 时间超过差错报告报文; * 源主机接着发送第二个数据报 P2,并把 TTL 设置为 2。P2 先到达 R1,R1 收下后把 TTL 减 1 再转发给 R2,R2 收下后也把 TTL 减 1,由于此时 TTL 等于 0,R2 就丢弃 P2,并向源主机发送一个 ICMP 时间超过差错报文。 * 不断执行这样的步骤,直到最后一个数据报刚刚到达目的主机,主机不转发数据报,也不把 TTL 值减 1。但是因为数据报封装的是无法交付的 UDP,因此目的主机要向源主机发送 ICMP 终点不可达差错报告报文。 * 之后源主机知道了到达目的主机所经过的路由器 IP 地址以及到达每个路由器的往返时间。
因特网的路由选择协议
有关路由选择协议的几个基本概念
-
静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
-
动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
自治系统 AS(Autonomous System)
-
自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
内部网关协议 IGP (Interior Gateway Protocol)
-
即在一个自治系统内部使用的路由选择协议。
-
内部网关协议 RIP
-
RIP 是一种基于距离向量的路由选择协议。距离是指跳数,直接相连的路由器跳数为 1。跳数最多为 15,超过 15 表示不可达。
-
-
RIP 按固定的时间间隔仅和相邻路由器交换自己的路由表,经过若干次交换之后,所有路由器最终会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器地址。 * 距离向量算法: * 对地址为 X 的相邻路由器发来的 RIP 报文,先修改报文中的所有项目,把下一跳字段中的地址改为 X,并把所有的距离字段加 1; * 对修改后的 RIP 报文中的每一个项目,进行以下步骤: * 若原来的路由表中没有目的网络 N,则把该项目添加到路由表中; * 否则:若下一跳路由器地址是 X,则把收到的项目替换原来路由表中的项目;否则:若收到的项目中的距离 d 小于路由表中的距离,则进行更新(例如原始路由表项为 Net2, 5, P,新表项为 Net2, 4, X,则更新);否则什么也不做。 * 若 3 分钟还没有收到相邻路由器的更新路由表,则把该相邻路由器标为不可达,即把距离置为 16。 * RIP 协议实现简单,开销小。但是 RIP 能使用的最大距离为 15,限制了网络的规模。并且当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器。 * 内部网关协议 OSPF * 开放最短路径优先 OSPF,是为了克服 RIP 的缺点而开发出来的。
开放表示 OSPF 不受某一家厂商控制,而是公开发表的;最短路径优先表示使用了 Dijkstra 提出的最短路径算法 SPF。 * OSPF 具有以下特点: * 向本自治系统中的所有路由器发送信息,这种方法是洪泛法。 * 发送的信息就是与相邻路由器的链路状态,链路状态包括与哪些路由器相连以及链路的度量,度量用费用、距离、时延、带宽等来表示。 * 只有当链路状态发生变化时,路由器才会发送信息。 * 所有路由器都具有全网的拓扑结构图,并且是一致的。相比于 RIP,OSPF 的更新过程收敛的很快。
外部网关协议 BGP (External Gateway Protocol)
-
若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。
-
AS 之间的路由选择很困难,主要是由于:
-
互联网规模很大;
-
各个 AS 内部使用不同的路由选择协议,无法准确定义路径的度量;
-
AS 之间的路由选择必须考虑有关的策略,比如有些 AS 不愿意让其它 AS 经过。
-
-
BGP 只能寻找一条比较好的路由,而不是最佳路由。
每个 AS 都必须配置 BGP 发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息。 * 示意图
路由器的构成
-
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。
-
路由器从功能上可以划分为
-
路由选择
-
分组转发
-
-
分组转发结构由三个部分组成
-
交换结构
-
一组输入端口
-
一组输出端口
-
概要: 示意图
-
IP 多播
IP 多播的基本概念
-
多播可明显地减少网络中资源的消耗
在局域网上进行硬件多播
因特网组管理协议 IGMP 和多播路由选择协议
-
IGMP 使多播路由器知道多播组成员信息
-
多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化)。请注意,单播路由选择通常是在网络拓扑发生变化时才需要更新路由。
虚拟专用网 VPN 和网络地址转换 NAT
虚拟专用网 VPN
-
由于 IP 地址的紧缺,一个机构能申请到的 IP 地址数往往远小于本机构所拥有的主机数。并且一个机构并不需要把所有的主机接入到外部的互联网中,机构内的计算机可以使用仅在本机构有效的 IP 地址(专用地址)。
-
有三个专用地址块:
-
10.0.0.0 ~ 10.255.255.255
-
172.16.0.0 ~ 172.31.255.255
-
192.168.0.0 ~ 192.168.255.255
-
-
-
VPN 使用公用的互联网作为本机构各专用网之间的通信载体。专用指机构内的主机只与本机构内的其它主机通信;虚拟指好像是,而实际上并不是,它有经过公用的互联网。
-
下图中,场所 A 和 B 的通信经过互联网,如果场所 A 的主机 X 要和另一个场所 B 的主机 Y 通信,IP 数据报的源地址是 10.1.0.1,目的地址是 10.2.0.3。数据报先发送到与互联网相连的路由器 R1,R1 对内部数据进行加密,然后重新加上数据报的首部,源地址是路由器 R1 的全球地址 125.1.2.3,目的地址是路由器 R2 的全球地址 194.4.5.6。路由器 R2 收到数据报后将数据部分进行解密,恢复原来的数据报,此时目的地址为 10.2.0.3,就交付给 Y。
网络地址转换 NAT
-
专用网内部的主机使用本地 IP 地址又想和互联网上的主机通信时,可以使用 NAT 来将本地 IP 转换为全球 IP。
-
在以前,NAT 将本地 IP 和全球 IP 一一对应,这种方式下拥有 n 个全球 IP 地址的专用网内最多只可以同时有 n 台主机接入互联网。为了更有效地利用全球 IP 地址,现在常用的 NAT 转换表把传输层的端口号也用上了,使得多个专用网内部的主机共用一个全球 IP 地址。使用端口号的 NAT 也叫做网络地址与端口转换 NAPT。
因为网络层是整个互联网的核心,因此应当让网络层尽可能简单。网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务。
因为网络层是整个互联网的核心,因此应当让网络层尽可能简单。网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务。
第 5 章 运输层
运输层协议概述
进程之间的通信
-
运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
-
两个主机进行通信实际上就是两个主机中的应用进程互相通信。
-
应用进程之间的通信又称为端到端的通信。
-
运输层协议和网络层协议的主要区别
运输层的两个主要协议
-
(1) 用户数据报协议 UDP(User Datagram Protocol)
-
UDP 传送的数据单位协议是 UDP 报文或用户数据报。
-
-
(2) 传输控制协议 TCP(Transmission Control Protocol)
-
TCP 传送的数据单位协议是 TCP 报文段(segment)
-
运输层的端口
-
软件端口与硬件端口
-
在协议栈层间的抽象的协议端口是软件端口。
-
路由器或交换机上的端口是硬件端口。
-
-
三类端口
-
熟知端口,数值一般为 0~1023。
-
登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。
-
客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
-
用户数据报协议 UDP
UDP 概述
-
用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信。
UDP 的首部格式
传输控制协议 TCP 概述
TCP 最主要的特点
-
传输控制协议 TCP(Transmission Control Protocol)是面向连接的,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),每一条 TCP 连接只能是点对点的(一对一)。
TCP 的连接
-
TCP 连接的端点叫做套接字(socket)或插口。
-
套接字 socket = (IP地址: 端口号)
-
可靠传输的工作原理
停止等待协议
连续 ARQ 协议
TCP 报文段的首部格式
序号 :用于对字节流进行编号,例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100 字节,那么下一个报文段的序号应为 401。
确认号 :期望收到的下一个报文段的序号。例如 B 正确收到 A 发送来的一个报文段,序号为 501,携带的数据长度为 200 字节,因此 B 期望下一个报文段的序号为 701,B 发送给 A 的确认报文段中确认号就为 701。
数据偏移 :指的是数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。
确认 ACK :当 ACK=1 时确认号字段有效,否则无效。TCP 规定,在连接建立后所有传送的报文段都必须把 ACK 置 1。
同步 SYN :在连接建立时用来同步序号。当 SYN=1,ACK=0 时表示这是一个连接请求报文段。若对方同意建立连接,则响应报文中 SYN=1,ACK=1。
终止 FIN :用来释放一个连接,当 FIN=1 时,表示此报文段的发送方的数据已发送完毕,并要求释放连接。
窗口 :窗口值作为接收方让发送方设置其发送窗口的依据。之所以要有这个限制,是因为接收方的数据缓存空间是有限的。
概要: 示意图
TCP 可靠传输的实现
以字节为单位的滑动窗口
-
窗口是缓存的一部分,用来暂时存放字节流。发送方和接收方各有一个窗口,接收方通过 TCP 报文段中的窗口字段告诉发送方自己的窗口大小,发送方根据这个值和其它信息设置自己的窗口大小。
发送窗口内的字节都允许被发送,接收窗口内的字节都允许被接收。如果发送窗口左部的字节已经发送并且收到了确认,那么就将发送窗口向右滑动一定距离,直到左部第一个字节不是已发送并且已确认的状态;接收窗口的滑动类似,接收窗口左部字节已经发送确认并交付主机,就向右滑动接收窗口。
接收窗口只会对窗口内最后一个按序到达的字节进行确认,例如接收窗口已经收到的字节为 {31, 34, 35},其中 {31} 按序到达,而 {34, 35} 就不是,因此只对字节 31 进行确认。发送方得到一个字节的确认之后,就知道这个字节之前的所有字节都已经被接收。 * 1 * 2 * 3 * 4
超时重传时间的选择
-
超时重传
-
TCP 使用超时重传来实现可靠传输:如果一个已经发送的报文段在超时时间内没有收到确认,那么就重传这个报文段。
-
一个报文段从发送再到接收到确认所经过的时间称为往返时间 RTT,加权平均往返时间 RTTs 计算如下: * 其中,0 ≤ a < 1,RTTs 随着 a 的增加更容易受到 RTT 的影响。
超时时间 RTO 应该略大于 RTTs,TCP 使用的超时时间计算如下:(其中 RTTd 为偏差的加权平均值)
选择确认 SACK
TCP的流量控制
利用滑动窗口实现流量控制
-
TCP 流量控制
-
流量控制是为了控制发送方发送速率,保证接收方来得及接收。
-
接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为 0,则发送方不能发送数据。
-
流量控制举例
必须考虑传输效率
TCP 的拥塞控制
拥塞控制的一般原理
-
如果网络出现拥塞,分组将会丢失,此时发送方会继续重传,从而导致网络拥塞程度更高。因此当出现拥塞时,应当控制发送方的速率。这一点和流量控制很像,但是出发点不同。流量控制是为了让接收方能来得及接收,而拥塞控制是为了降低整个网络的拥塞程度。
-
拥塞控制所起的作用
几种拥塞控制方法
-
TCP 主要通过四个算法来进行拥塞控制:慢开始、拥塞避免、快重传、快恢复。
-
发送方需要维护一个叫做拥塞窗口(cwnd)的状态变量,注意拥塞窗口与发送方窗口的区别:拥塞窗口只是一个状态变量,实际决定发送方能发送多少数据的是发送方窗口。
-
为了便于讨论,做如下假设:
接收方有足够大的接收缓存,因此不会发生流量控制; 虽然 TCP 的窗口基于字节,但是这里设窗口的大小单位为报文段。 * 1. 慢开始与拥塞避免 * 发送的最初执行慢开始,令 cwnd = 1,发送方只能发送 1 个报文段;当收到确认后,将 cwnd 加倍,因此之后发送方能够发送的报文段数量为:2、4、8 ...
注意到慢开始每个轮次都将 cwnd 加倍,这样会让 cwnd 增长速度非常快,从而使得发送方发送的速度增长速度过快,网络拥塞的可能性也就更高。设置一个慢开始门限 ssthresh,当 cwnd >= ssthresh 时,进入拥塞避免,每个轮次只将 cwnd 加 1。
如果出现了超时,则令 ssthresh = cwnd / 2,然后重新执行慢开始。 * 2. 快重传与快恢复 * 在接收方,要求每次接收到报文段都应该对最后一个已收到的有序报文段进行确认。例如已经接收到 M1 和 M2,此时收到 M4,应当发送对 M2 的确认。
在发送方,如果收到三个重复确认,那么可以知道下一个报文段丢失,此时执行快重传,立即重传下一个报文段。例如收到三个 M2,则 M3 丢失,立即重传 M3。
在这种情况下,只是丢失个别报文段,而不是网络拥塞。因此执行快恢复,令 ssthresh = cwnd / 2 ,cwnd = ssthresh,注意到此时直接进入拥塞避免。
慢开始和快恢复的快慢指的是 cwnd 的设定值,而不是 cwnd 的增长速率。慢开始 cwnd 设定为 1,而快恢复 cwnd 设定为 ssthresh。
随机早期检测 RED
TCP 的运输连接管理
TCP 的连接建立
-
假设 A 为客户端,B 为服务器端。
首先 B 处于 LISTEN(监听)状态,等待客户的连接请求。
A 向 B 发送连接请求报文,SYN=1,ACK=0,选择一个初始的序号 x。
B 收到连接请求报文,如果同意建立连接,则向 A 发送连接确认报文,SYN=1,ACK=1,确认号为 x+1,同时也选择一个初始的序号 y。
A 收到 B 的连接确认报文后,还要向 B 发出确认,确认号为 y+1,序号为 x+1。
B 收到 A 的确认后,连接建立。
-
三次握手的原因
-
第三次握手是为了防止失效的连接请求到达服务器,让服务器错误打开连接。
-
客户端发送的连接请求如果在网络中滞留,那么就会隔很长一段时间才能收到服务器端发回的连接确认。客户端等待一个超时重传时间之后,就会重新请求连接。但是这个滞留的连接请求最后还是会到达服务器,如果不进行三次握手,那么服务器就会打开两个连接。如果有第三次握手,客户端会忽略服务器之后发送的对滞留连接请求的连接确认,不进行第三次握手,因此就不会再次打开连接。
TCP 的连接释放
-
以下描述不讨论序号和确认号,因为序号和确认号的规则比较简单。并且不讨论 ACK,因为 ACK 在连接建立之后都为 1。
A 发送连接释放报文,FIN=1。
B 收到之后发出确认,此时 TCP 属于半关闭状态,B 能向 A 发送数据但是 A 不能向 B 发送数据。
当 B 不再需要连接时,发送连接释放报文,FIN=1。
A 收到后发出确认,进入 TIME-WAIT 状态,等待 2 MSL(最大报文存活时间)后释放连接。
B 收到 A 的确认后释放连接。
-
四次挥手的原因
-
客户端发送了 FIN 连接释放报文之后,服务器收到了这个报文,就进入了 CLOSE-WAIT 状态。这个状态是为了让服务器端发送还未传送完毕的数据,传送完毕之后,服务器会发送 FIN 连接释放报文。
-
-
TIME_WAIT
-
客户端接收到服务器端的 FIN 报文后进入此状态,此时并不是直接进入 CLOSED 状态,还需要等待一个时间计时器设置的时间 2MSL。这么做有两个理由:
-
确保最后一个确认报文能够到达。如果 B 没收到 A 发送来的确认报文,那么就会重新发送连接释放请求报文,A 等待一段时间就是为了处理这种情况的发生。
-
等待一段时间是为了让本连接持续时间内所产生的所有报文都从网络中消失,使得下一个新的连接不会出现旧的连接请求报文。
-
-
TCP 的有限状态机
-
粗实线箭头表示对客户进程的正常变迁。 粗虚线箭头表示对服务器进程的正常变迁。 另一种细线箭头表示异常变迁。
第 6 章 应用层
域名系统 DNS
域名系统概述
-
DNS 是一个分布式数据库,提供了主机名和 IP 地址之间相互转换的服务。这里的分布式数据库是指,每个站点只保留它自己的那部分数据。
因特网的域名结构
-
域名具有层次结构,从上到下依次为:根域名、顶级域名、二级域名。
域名服务器
-
一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。
-
每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
-
DNS 可以使用 UDP 或者 TCP 进行传输,使用的端口号都为 53。大多数情况下 DNS 使用 UDP 进行传输,这就要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。在两种情况下会使用 TCP 进行传输:
-
如果返回的响应超过的 512 字节(UDP 最大只支持 512 字节的数据)。
-
区域传送(区域传送是主域名服务器向辅助域名服务器传送变化的那部分数据)。
-
文件传送协议
FTP 概述
-
文件传送协议 FTP (File Transfer Protocol) 是因特网上使用得最广泛的文件传送协议。
-
FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。
-
FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
FTP 的基本工作原理
-
FTP 使用 TCP 进行连接,它需要两个连接来传送一个文件:
-
控制连接:服务器打开端口号 21 等待客户端的连接,客户端主动建立连接后,使用这个连接将客户端的命令传送给服务器,并传回服务器的应答。
-
数据连接:用来传送一个文件数据。
-
-
根据数据连接是否是服务器端主动建立,FTP 有主动和被动两种模式:
-
主动模式:服务器端主动建立数据连接,其中服务器端的端口号为 20,客户端的端口号随机,但是必须大于 1024,因为 0~1023 是熟知端口号。
-
被动模式:客户端主动建立数据连接,其中客户端的端口号由客户端自己指定,服务器端的端口号随机。
-
主动模式要求客户端开放端口号给服务器端,需要去配置客户端的防火墙。被动模式只需要服务器端开放端口号即可,无需客户端配置防火墙。但是被动模式会导致服务器端的安全性减弱,因为开放了过多的端口号。
-
简单文件传送协议 TFTP
-
TFTP 是一个很小且易于实现的文件传送协议。
-
TFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。
-
TFTP 只支持文件传输而不支持交互。
-
TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
-
TFTP 的主要特点是
-
(1) 每次传送的数据 PDU 中有 512 字节的数据,但最后一次可不足 512 字节。
-
(2) 数据 PDU 也称为文件块(block),每个块按序编号,从 1 开始。
-
(3) 支持 ASCII 码或二进制传送。
-
(4) 可对文件进行读或写。
-
(5) 使用很简单的首部。
-
远程终端协议 TELNET
简述
-
TELNET 是一个简单的远程终端协议,也是因特网的正式标准。
-
用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。
-
TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。
万维网 WWW
概述
-
万维网 WWW (World Wide Web)并非某种特殊的计算机网络。
-
万维网是一个大规模的、联机式的信息储藏所。
-
万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
-
这种访问方式称为“链接”。
-
万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。
万维网的工作方式
-
万维网以客户服务器方式工作。
-
浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。
万维网必须解决的问题
-
(1) 怎样标志分布在整个因特网上的万维网文档? 使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。 使每一个文档在整个因特网的范围内具有唯一的标识符 URL。
-
(2) 用何协议实现万维网上各种超链的链接? 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。 HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
-
(3) 怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链? 超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
-
(4) 怎样使用户能够很方便地找到所需的信息? 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。
统一资源定位符 URL
-
统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。
-
URL 的一般形式是:<协议>://<主机>:<端口>/<路径>
超文本传送协议 HTTP
-
HTTP 是面向事务的客户服务器协议。
-
HTTP 1.0 协议是无状态的(stateless)。
-
HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
万维网的文档
-
超文本标记语言 HTML
-
超文本标记语言 HTML 中的 Markup 的意思就是“设置标记”。
-
HTML 定义了许多用于排版的命令(即标签)。
-
HTML 把各种标签嵌入到万维网的页面中。这样就构成了所谓的 HTML 文档。HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件。
-
-
动态万维网文档
-
静态文档是指该文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。
-
动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建。
-
动态文档和静态文档之间的主要差别体现在服务器一端。这主要是文档内容的生成方法不同。而从浏览器的角度看,这两种文档并没有区别。
-
万维网的信息检索系统
-
全文检索搜索
-
全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件到因特网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询。
-
-
分类目录搜索
-
分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。
-
电子邮件
电子邮件概述
-
电子邮件(e-mail)是因特网上使用得最多的和最受用户欢迎的一种应用。
-
电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可随时上网到自己使用的邮件服务器进行读取。
-
电子邮件不仅使用方便,而且还具有传递迅速和费用低廉的优点。
-
一个电子邮件系统由三部分组成:用户代理、邮件服务器以及邮件协议。
电子邮件的最主要的组成构件
简单邮件传送协议 SMTP
-
SMTP 只能发送 ASCII 码,而互联网邮件扩充 MIME 可以发送二进制文件。MIME 并没有改动或者取代 SMTP,而是增加邮件主体的结构,定义了非 ASCII 码的编码规则。
电子邮件的信息格式
-
一个电子邮件分为信封和内容两大部分。
-
RFC 822 只规定了邮件内容中的首部(header)格式,而对邮件的主体(body)部分则让用户自由撰写。
-
邮件内容的首部
-
“To:”后面填入一个或多个收件人的电子邮件地址。用户只需打开地址簿,点击收件人名字,收件人的电子邮件地址就会自动地填入到合适的位置上。
-
“Subject:”是邮件的主题。它反映了邮件的主要内容,便于用户查找邮件。
-
抄送 “Cc:” 表示应给某某人发送一个邮件副本。
-
“From” 和 “Date” 表示发信人的电子邮件地址和发信日期。“Reply-To” 是对方回信所用的地址。
-
-
邮件读取协议 POP3 和 IMAP
-
POP3
-
POP3 的特点是只要用户从服务器上读取了邮件,就把该邮件删除。但最新版本的 POP3 可以不删除邮件。
-
-
IMAP
-
IMAP 协议中客户端和服务器上的邮件保持同步,如果不手动删除邮件,那么服务器上的邮件也不会被删除。IMAP 这种做法可以让用户随时随地去访问服务器上的邮件。
-
基于万维网的电子邮件
-
例子
-
电子邮件从 A 发送到网易邮件服务器是使用 HTTP 协议。
-
两个邮件服务器之间的传送使用 SMTP。
-
邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议。
-
概要: 示意图
-
通用因特网邮件扩充 MIME
-
MIME 概述
-
MIME 并没有改动 SMTP 或取代它。
-
MIME 的意图是继续使用目前的[RFC 822]格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。
-
动态主机配置协议 DHCP
DHCP (Dynamic Host Configuration Protocol) 提供了即插即用的连网方式,用户不再需要手动配置 IP 地址等信息。
DHCP 配置的内容不仅是 IP 地址,还包括子网掩码、网关 IP 地址。
DHCP 工作过程如下:
-
1.客户端发送 Discover 报文,该报文的目的地址为 255.255.255.255:67,源地址为 0.0.0.0:68,被放入 UDP 中,该报文被广播到同一个子网的所有主机上。如果客户端和 DHCP 服务器不在同一个子网,就需要使用中继代理。 2.DHCP 服务器收到 Discover 报文之后,发送 Offer 报文给客户端,该报文包含了客户端所需要的信息。因为客户端可能收到多个 DHCP 服务器提供的信息,因此客户端需要进行选择。 3.如果客户端选择了某个 DHCP 服务器提供的信息,那么就发送 Request 报文给该 DHCP 服务器。 4.DHCP 服务器发送 Ack 报文,表示客户端此时可以使用提供给它的信息。
简单网络管理协议 SNMP
网络管理的基本概念
-
网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能,服务质量等。网络管理常简称为网管。
-
SNMP 的网络管理由三个部分组成
-
SNMP 本身
-
SNMP 定义了管理站和代理之间所交换的分组格式。所交换的分组包含各代理中的对象(变量)名及其状态(值)。
-
-
管理信息结构 SMI (Structure of Management Information)
-
SMI 定义了命名对象和定义对象类型(包括范围和长度)的通用规则,以及把对象和对象的值进行编码的规则。
-
-
管理信息库 MIB(Management Information Base)。
-
MIB 在被管理的实体中创建了命名对象,并规定了其类型。
-
-
管理信息结构 SMI
-
SMI 的功能:
-
(1) 被管对象应怎样命名;
-
(2) 用来存储被管对象的数据类型有哪些种;
-
(3) 在网络上传送的管理数据应如何编码。
-
管理信息库 MIB
-
被管对象必须维持可供管理程序读写的若干控制和状态信息。这些信息总称为管理信息库 MIB 。
SNMP 的协议数据单元和报文
-
SNMP的操作只有两种基本的管理功能,即:
-
“读”操作,用 get 报文来检测各被管对象的状况;
-
“写”操作,用 set 报文来改变各被管对象的状况。
-
-
SNMP 的报文格式