!network
4/22
Keywords
- 分组交换:既可以是面向连接的,也可以是无连接的
- 分组(包)
- 比特(bit)
- “带宽”(bandwidth)
- 时延
- 基带信号 调制 解调
- 信噪比
- 码片
- 封装成帧、透明传输、差错检测
- 每一层都可能会有连接的建立
- 以太网:Ethernet
- 环回地址
- 集线器:物理层,逻辑总线,有碰撞
- 网桥:网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发,有碰撞
- 交换机:数据链路层,多接口网桥——以太网交换机 ,交换式集线器,全双工,无碰撞
- 物理层中继系统:转发器 (repeater)
- 数据链路层中继系统:网桥或桥接器 (bridge)
- 网络层中继系统:路由器 (router)
- 网络层以上的中继系统:网关 (gateway)。
- 当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。 用网关连接两个不兼容的系统,需要在高层进行协议转换。互联网都是指用路由器进行互连的网络。由于历史的原因,许多有关 TCP/IP 的文献将网络层使用的路由器称为网关。
- IP
- ARP RARP ICMP IGMP
- ICMP 的应用举例
- PING 用来测试两个主机之间的连通性。
- PING 使用了 ICMP 回送请求与回送回答报文。
- PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或 UDP。
- CIDR
- netstat -an netstat -r ipconfig
联系
- 物理层:物理信号的传播
- 数据链路层:
- 点对点信道:无差错的接受,不使用序号和确认机制,PPP 协议,面向连接
- 广播信道(局域网,又名以太网):最大努力的交付,差错的纠正由高层来决定,广播方式,无连接
- 网络层:
- 电信网(以太网?局域网?社区到用户?):虚电路服务,建立逻辑连接,差错可以由网络负责,也可以由用户主机负责
- 因特网(国际网络、大网络):数据报服务,无连接,最大努力的交付,差错由用户主机负责
- 两个重要角色:路由器和主机,两个路由器的 IP 地址并不出现在 IP 数据报的首部中
- 运输层:
- 为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。
- 运输层还要对收到的报文进行差错检测。
- 当运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。
- 网络层 IP 协议是不可靠的,有可能丢包,有可能先发的后至,每个包走的路径也不一定相同
- 超时重传:分组和确认分组都进行编号
- 拥塞控制
- 当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道,同样有差错检测
- RIP 自身是基于UDP的应用层协议;路由器可以通过 RIP 协议交互一些信息,从而可能改变(属于网络层的)路由规则。
- 作为对比:OSPF 是网络层协议
- 端口(功能)工作在运输层:端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。
- 应用层:
- DNS 通过 UDP 数据报查询
- FTP 通过 TCP 可靠传输
概述
因特网概述
- 计算机网络向用户提供的最重要的功能
- 连通性——计算机网络使上网用户之间都可以交换信息,好像这些用户的计算机都可以彼此直接连通一样。
- 共享——即资源共享。可以是信息共享、软件共享,也可以是硬件共享。
- **网络 (network)由若干结点 (node)和连接这些结点的链路 (link)**组成。
- 互联网是“网络的网络”(network of networks)。
- 连接在因特网上的计算机都称为主机 (host)。
因特网发展的三个阶段
第一阶段
- 第一阶段是从单个网络 ARPANET 向互联网发展的过程。
- 1983 年 TCP/IP 协议成为 ARPANET 上的标准协议。
- 人们把 1983 年作为因特网的诞生时间。
第二阶段
- 第二阶段的特点是建成了三级结构的因特网。
- 三级计算机网络,分为主干网、地区网和校园网(或企业网)。
第三阶段
-
第三阶段的特点是逐渐形成了多层次 ISP 结构的因特网。
-
出现了因特网服务提供者 ISP (Internet Service Provider)。
-
因特网的迅猛发展始于 20 世纪 90 年代。由欧洲原子核研究组织 CERN 开发的万维网 WWW (World Wide Web) 被广泛使用在因特网上,大大方便了广大非网络专业人员对网络的使用,成为因特网的这种指数级增长的主要驱动力。
因特网的标准化工作
RFC2460???- 制订因特网的正式标准要经过以下的四个阶段:
- 因特网草案 (Internet Draft) ——在这个阶段还不是 RFC(Request For Comments) 文档。
- 建议标准 (Proposed Standard) ——从这个阶段开始就成为 RFC 文档。
- 草案标准 (Draft Standard)
- 因特网标准 (Internet Standard)
因特网的组成
从因特网的工作方式上看,可以划分为以下的两大块:
- 边缘部分 由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
- 核心部分 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
因特网的边缘部分
处在因特网边缘的部分就是连接在因特网上的所有的主机。这些主机又称为端系统 (end system)。
“主机 A 和主机 B 进行通信”,实际上是指:“运行在主机 A 上的某个程序和运行在主机 B 上的另一个程序进行通信”。
即“主机 A 的某个进程和主机 B 上的另一个进程进行通信”。或简称为“计算机之间通信”。
端系统的两种通信方式
客户服务器方式(C/S 方式),即 Client/Server 方式
对等方式(P2P 方式),即 Peer-to-Peer 方式
- 对等连接方式从本质上看仍然是使用客户服务器方式,只是对等连接中的每一个主机既是客户又同时是服务器。
- 例如主机 C 请求 D 的服务时,C 是客户,D 是服务器。但如果 C 又同时向 F 提供服务,那么 C 又同时起着服务器的作用。
因特网的核心部分
- 网络核心部分是因特网中最复杂的部分。
- 网络中的核心部分要向网络边缘中的主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据)。
- 在网络核心部分起特殊作用的是路由器 (router)。
- 路由器是实现**分组交换 (packet switching)**的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
电路交换的主要特点
两部电话机只需要用一对电线就能够互相连接起来。
5 部电话机两两相连,需 10 对电线。
N 部电话机两两相连,需 N(N – 1)/2 对电线。
当电话机的数量很大时,这种连接方法需要的电线对的数量与电话机数的平方成正比。
使用交换机
当电话机的数量增多时,就要使用交换机来完成全网的交换任务。
在这里,“交换”(switching)的含义就是转接——把一条电话线转接到另一条电话线,使它们连通起来。
从通信资源的分配角度来看,“交换”就是按照某种方式动态地分配传输线路的资源。
主要特点
电路交换必定是面向连接的。
电路交换的三个阶段:
- 建立连接
- 通信
- 释放连接
例子
A 和 B 通话经过四个交换机,通话在 A 到 B 的连接上进行
电路交换传送计算机数据效率低
计算机数据具有突发性,这导致通信线路的利用率很低。
分组交换的主要特点
在发送端,先把较长的报文划分成较短的、固定长度的数据段。
添加首部构成分组
每一个数据段前面添加上首部构成分组。
分组交换的传输单元
分组交换网以“分组”作为数据传输单元。
依次把各分组发送到接收端(假定接收端在左边)。
分组首部的重要性
每一个分组的首部都含有地址等控制信息。
分组交换网中的结点交换机根据收到的分组的首部中的地址信息,把分组转发到下一个结点交换机。
用这样的存储转发方式,最后分组就能到达最终目的地。
收到分组后剥去首部
接收端收到分组后剥去首部还原成报文,把收到的数据恢复成为原来的报文。
这里我们假定分组在传输过程中没有出现差错,在转发时也没有被丢弃。
分组交换与核心部分
-
因特网的核心部分是由许多网络和把它们互连起来的路由器组成,而主机处在因特网的边缘部分。
-
在因特网核心部分的路由器之间一般都用高速链路相连接,而在网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连接。
-
主机的用途是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。
-
路由器的用途则是用来转发分组的,即进行分组交换的。
-
192.168.1.1 来自本地局域网
-
100.64.0.1 来自保留地址
-
218.19.217.237 来自广东省广州市白云区 电信
-
183.56.34.37 来自广东省广州市 电信
-
113.96.4.54 来自广东省广州市 电信
-
90.96.135.219 来自法国
-
219.135.96.90 来自广东省广州市 电信
-
14.29.117.234 来自广东省广州市 电信
-
14.215.177.38 来自广东省广州市 电信
-
219.135.202.1 来自广东省广州市越秀区 电信
-
27.159.81.38 来自福建省厦门市 电信
-
222.76.214.60 来自福建省厦门市 电信
-
104.20.0.85 来自美国
路由器
在路由器中的输入和输出端口之间没有直接连线。
路由器处理分组的过程是:
- 把收到的分组先放入缓存(暂时存储);
- 查找转发表,找出到某个目的地址应从哪个端口转发;
- 把分组送到适当的端口转发出去。
分组交换的优点
- 高效 动态分配传输带宽,对通信链路是逐段占用。
- 灵活 为每一个分组独立选择转发路由。
- 迅速 以分组为传送单位,不必先建立连接就能向其他主机发送分组;充分使用链路的带宽。
- 可靠 完善的网络协议;分布式多路由的分组交换网使网络有很好的生存性。
分组交换带来的问题
分组在各路由器存储转发时需要排队,这就会造成一定的时延。
分组必须携带的首部(里面有必不可少的控制信息)也造成了一定的开销。
能否说电路交换就是面向连接,而分组交换就是无连接?
- 不行
- 电路交换是使用面向连接的服务
- 分组交换可以使用面向连接也可以使用无连接
- 电路交换和分组交换强调通信时用户对资源的占用方式
- 面向连接必须经过三个阶段:建立连接→传送数据→释放连接,无连接只有一个阶段:传送数据
计算机网络的产生
是 20 世纪 60 年代美苏冷战时期的产物。
60 年代初,美国国防部领导的远景研究规划局 ARPA (Advanced Research Project Agency) 提出要研制一种生存性 (survivability) 很强的网络
传统的电路交换 (circuit switching) 的电信网有一个缺点:正在通信的电路中有一个交换机或有一条链路被炸毁,则整个通信电路就要中断。
如要改用其他迂回电路,必须重新拨号建立连接。这将要延误一些时间。
新型网络的基本特点
- 网络用于计算机之间的数据传送,而不是为了打电话。
- 网络能够连接不同类型的计算机,不局限于单一类型的计算机。
- 所有的网络结点都同等重要,因而大大提高网络的生存性。
- 计算机在进行通信时,必须有冗余的路由。
- 网络的结构应当尽可能地简单,同时还能够非常可靠地传送数据。
ARPANET
ARPANET 的成功使计算机网络的概念发生根本变化
早期的面向终端的计算机网络是以单个主机为中心的星形网,各终端通过通信线路共享昂贵的中心主机的硬件和软件资源。
分组交换网则是以网络为中心,主机都处在网络的外围。用户通过分组交换网可共享连接在网络上的许多硬件和各种丰富的软件资源。
计算机网络在我国的发展
铁道部在 1980 年开始进行计算机联网实验。
1989 年 11 月我国第一个公用分组交换网 CNPAC 建成运行。
1994 年 4 月 20 日我国用 64 kb/s 专线正式连入因特网。
中国教育和科研计算机网 CERNET (China Education and Research NETwork),简称为中国教育网,是由国家投资建设,教育部负责管理,清华大学等高等学校承担建设和管理运行的全国性学术计算机互联网络。
中国互联网络信息中心 CNNIC (Network Information Center of China) 每年两次公布的我国因特网的发展情况。
计算机网络的分类
计算机网络的不同定义
- 最简单的定义:计算机网络是一些互相连接的、自治的计算机的集合。
- 因特网 (Internet) 是“网络的网络”。
几种不同的类别的网络
- 不同作用范围的网络
- 广域网 WAN (Wide Area Network)
- 局域网 LAN (Local Area Network)
- 城域网 MAN (Metropolitan Area Network)
- 个人区域网 PAN (Personal Area Network)
- 从网络的使用者进行分类
- 公用网 (public network)
- 专用网 (private network)
接入网 AN (Access Network),它又称为本地接入网或居民接入网。
由 ISP 提供的接入网只是起到让用户能够与因特网连接的“桥梁”作用。
计算机网络的性能
计算机网络的性能指标
1. 速率
- 比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。
- Bit 来源于 binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个 1 或 0。
- 速率即数据率 (data rate) 或比特率 (bit rate) 是计算机网络中最重要的一个性能指标。速率的单位是 b/s,或 kb/s, Mb/s, Gb/s 等。
2. 带宽
-
**“带宽”(bandwidth)**本来是指信号具有的频带宽度,单位是赫(或千赫、兆赫、吉赫等)。
-
现在“带宽”是数字信道所能传送的**“最高数据率”的同义语,单位是“比特每秒”**,或 b/s (bit/s)。
-
常用的带宽单位是
- 千比每秒,即 kb/s (10^3 b/s)
- 兆比每秒,即 Mb/s(10^6 b/s)
- 吉比每秒,即 Gb/s(10^9 b/s)
- 太比每秒,即 Tb/s(10^12 b/s)
时延 (delay 或 latency)
发送时延
- 发送数据时,数据块从结点进入到传输媒体所需要的时间。
- 也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
传播时延
- 电磁波在信道中需要传播一定的距离而花费的时间。
- 信号传输速率(即发送速率)和信号在信道上的传播速率是完全不同的概念。
处理时延
- 交换结点为存储转发而进行一些必要的处理所花费的时间。
排队时延
- 结点缓存队列中分组排队所经历的时延。
- 排队时延的长短往往取决于网络中当时的通信量。
**总时延 **
- 数据经历的总时延就是发送时延、传播时延、处理时延和排队时延之和
- 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
注意
- 对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率
- 提高链路带宽减小了数据的发送时延
计算机网络的体系结构
计算机网络体系结构的形成
相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。
“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
两种国际标准
法律上的 (de jure) 国际标准 OSI 并没有得到市场的认可。
是非国际标准 TCP/IP 现在获得了最广泛的应用。
TCP/IP 常被称为事实上的 (de facto) 国际标准。
划分层次的必要性
计算机网络中的数据交换必须遵守事先约定好的规则。
这些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。
网络协议 (network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。
网络协议的组成要素
语法 数据与控制信息的结构或格式 。
语义 需要发出何种控制信息,完成何种动作以及做出何种响应。
同步 事件实现顺序的详细说明。
划分层次的概念举例
主机 1 向主机 2 通过网络发送文件。
可以将要做的工作进行如下的划分:
- 第一类工作与传送文件直接有关。
- 确信对方已做好接收和存储文件的准备。
- 双方协调好一致的文件格式。
- 两个主机将文件传送模块作为最高的一层 。剩下的工作由下面的模块负责。
-
再设计一个通信服务模块
-
再设计一个网络接入模块
分层的好处
- 各层之间是独立的。
- 灵活性好。
- 结构上可分割开。
- 易于实现和维护。
- 能促进标准化工作。
- 层数多少要适当,若层数太少,就会使每一层的协议太复杂。层数太多又会在描述和综合各层功能的系统工程任务时遇到较多的困难。
计算机网络的体系结构
- 计算机网络的体系结构 (architecture)是计算机网络的各层及其协议的集合。
- 体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。
- **实现 (implementation)**是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。
- 体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
具有五层协议的体系结构
-
TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层。
-
但最下面的网络接口层并没有具体内容。
-
因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
-
- 运输层又可以叫传输层
- 网络层又可以叫网际层
- 物理层和数据链路层合称网络接口层
协议很复杂
- 协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的。
- 看一个计算机网络协议是否正确,不能光看在正常情况下是否正确,而且还必须非常仔细地检查这个协议能否应付各种异常情况。
- 协议能否设计成 100% 可靠的?
- 这样无限循环下去,两边的蓝军都始终无法确定自己最后发出的电文对方是否已经收到。
- 没有一种协议能够让蓝军 100% 获胜。
TCP/IP 的体系结构
因特网的 IP 协议是不可靠无连接的,那为什么当初不直接把它设计为可靠的?
意义
为应用层隐藏通讯的细节,只需关心应用程序本身的设计,通讯的细节交给操作系统调用一个 API 即可
应用层是普通的应用程序,其他底层都由操作系统和硬件实现
数据链路层是**逐跳(hop to hop)**的,一个路由到一个路由,相对的物理层是逐个介质传递,逐个网卡,逐个线路
物理层
物理层的基本概念
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流。
物理层的主要任务描述为确定与传输媒体的接口的一些特性,即:
- 机械特性 指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。
- 电气特性 指明在接口电缆的各条线上出现的电压的范围。
- 功能特性 指明某条线上出现的某一电平的电压表示何种意义。
- 过程特性 指明对于不同功能的各种可能事件的出现顺序。
可靠的 TCP,不可靠的 IP,TCP 是淘宝卖家,IP 是快递公司,不关心包裹里面的内容,只是尽可能的交付给买家,可能会丢包,如果丢包了,卖家就重新发货(超时重传),三握四挥,下单,确认收货
数据通信的基础知识
基本概念
- 数据 (data)——运送消息的实体。
- 信号 (signal)——数据的电气的或电磁的表现。
- “模拟的”(analogous)——代表消息的参数的取值是连续的。
- “数字的”(digital)——代表消息的参数的取值是离散的。
- 码元 (code)——在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形。
- 单向通信(单工通信)——只能有一个方向的通信而没有反方向的交互。
- 双向交替通信(半双工通信)——通信的双方都可以发送信息,但不能双方同时发送 (当然也就不能同时接收)。
- 双向同时通信(全双工通信)——通信的双方可以同时发送和接收信息。
基带信号和调制
基带信号(baseband即基本频带信号)——来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。
基带信号往往包含有较多的低频成分,甚至有直流成分,而许多信道并不能传输这种低频分量或直流分量。因此必须对基带信号进行调制 (modulation)。
调制分为两类:
- 基带调制:仅对基带信号的波形进行变换,也称为编码
- **带通调制:**把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。
基本的带通调制方法:
-
**调幅 (AM):**载波的振幅随基带数字信号而变化。
-
**调频 (FM):**载波的频率随基带数字信号而变化。
-
**调相 (PM) :**载波的初始相位随基带数字信号而变化
信道的极限容量***
任何实际的信道都不是理想的,在传输信号时会产生各种失真以及带来多种干扰。
码元传输的速率越高,或信号传输的距离越远,在信道的输出端的波形的失真就越严重。
信道能够通过的频率范围
- 1924 年,奈奎斯特 (Nyquist) 就推导出了著名的奈氏准则。他给出了在假定的理想条件下,为了避免码间串扰,码元的传输速率的上限值。
- 在任何信道中,码元传输的速率是有上限的,否则就会出现码间串扰的问题,使接收端对码元的判决(即识别)成为不可能。
- 如果信道的频带越宽,也就是能够通过的信号高频分量越多,那么就可以用更高的速率传送码元而不出现码间串扰。
信噪比
-
信噪比就是信号的平均功率和噪声的平均功率之比,常记为 S/N
- 分贝(dB)=10log10(S/N)
- S/N=10 时,信噪比为 10 分贝;S/N=1000 时,信噪比为 30 分贝
-
香农公式:信道的极限信息传输速率 C 可表达为
- C = W log2(1+S/N) b/s
- W 为信道的带宽(以 Hz 为单位);
- S 为信道内所传信号的平均功率;
- N 为信道内部的高斯噪声功率。
-
香农公式表明:
- 信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
- 只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错的传输。
- 若信道带宽 W 或信噪比 S/N 没有上限(当然实际信道不可能是这样的),则信道的极限信息传输速率 C 也就没有上限。
- 实际信道上能够达到的信息传输速率要比香农的极限传输速率低不少。
注意
-
对于频带宽度已确定的信道,如果信噪比不能再提高了,并且码元传输速率也达到了上限值,那么还有办法提高信息的传输速率。这就是用编码的方法让每一个码元携带更多比特的信息量。
-
假设基带信号是 101011000110,如果直接传送,则每个码元携带的信息量是 1 比特,将每两个比特编为一组,一共有四种不同的组合:00、01、10、11,用不同的调制方式来表示每一组信号,如四种不同的频率、四种不同的振幅,四种不同的相位
-
正交振幅调制 QAM
- (Quadrature Amplitude Modulation)
- 可供选择的相位有 12 种,而对于每一种相位有 1 或2 种振幅可供选择
- 每一个象限有三种方向,其中一个有 2 种振幅
- 由于 4 bit 编码共有 16 种不同的组合,因此这 16 个点中的每个点可对应于一种 4 bit 的编码。
- 若每一个码元可表示的比特数越多,传输的速率就越高。但是在接收端进行解调时要正确识别每一种状态就越困难。
物理层下面的传输媒体
导向传输媒体
双绞线:把两根互相绝缘的铜导线并排放在一起然后用规则的方法绞合起来。绞合可减少相邻导线的电磁干扰。
**同轴电缆:**由内导体铜质芯线、绝缘层、网状编制的外导体屏蔽层以及保护塑料外层组成
-
局域网发展初期曾使用同轴电缆作为传输媒体。
-
目前同轴电缆主要用在有线电视网的居民小区中。
光纤
非导向传输媒体
无线传输所使用的频段很广。
短波通信主要是靠电离层的反射,但短波信道的通信质量较差。
微波在空间主要是直线传播。
- 地面微波接力通信
- 卫星通信
- 只能进行视距传播。
- 微波信号的波长较短,利用机械尺寸较小的抛物面天线,可以将微波信号能量集中在很小的波束中发送出去,达到用很小的发送功率进行远距离通信的目的。
- 微波信号的频率很高,可以获得较大的通信带宽。
- 大气对微波信号的吸收与散射影响较大。
-
微波一般采用点 -- 点方式通信,特别适用于城市建筑物之间的通信。
-
卫星上可以有多个转发器,其作用是接收、放大与发送信号。卫星地面站可以接收卫星发送的信号,也可以使用上行链路向卫星发射微波信号。
信道复用技术
**复用 (multiplexing)**是通信技术中的基本概念。
频分复用 FDM
Frequency Division Multiplexing
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)
时分复用 TDM
时分复用 (Time Division Multiplexing) 是将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。
每一个用户所占用的时隙是周期性地出现(其周期就是 TDM 帧的长度)。
TDM 信号也称为等时 (isochronous) 信号。
时分复用的所有用户是在不同的时间占用同样的频带宽度。
使用时分复用系统传送计算机数据时,由于计算机数据的突发性质,用户对分配到的子信道的利用率一般是不高的
统计时分复用 STDM
波分复用 WDM
Wavelength Division Multiplexing
波分复用就是光的频分复用。(习惯用波长来表示所使用的光载波)
码分复用 CDM
常用的名词是码分多址 CDMA(Code Division Multiple Access)。
各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
每一个比特时间划分为 m 个短的间隔,称为码片(chip)
宽带接入技术
xDSL 技术
xDSL 技术就是用数字技术对现有的模拟电话用户线进行改造,使它能够承载宽带业务。
虽然标准模拟电话信号的频带被限制在 300~3400 kHz 的范围内,但用户线本身实际可通过的信号频率仍然超过 1 MHz。
xDSL 技术就把 0~4 kHz 低端频谱留给传统电话使用,而把原来没有被利用的高端频谱留给用户上网使用。
DSL 就是数字用户线 (Digital Subscriber Line) 的缩写。而 DSL 的前缀 x 则表示在数字用户线上实现的不同宽带方案。
DMT 技术
DMT 调制技术采用频分复用的方法,把 40 kHz 以上一直到 1.1 MHz 的高端频谱划分为许多的子信道,其中 25 个子信道用于上行信道,而 249 个子信道用于下行信道。
每个子信道占据 4 kHz 带宽(严格讲是 4.3125 kHz),并使用不同的载波(即不同的音调)进行数字调制。这种做法相当于在一对用户线上使用许多小的调制解调器并行地传送数据。
FTTx 技术
FTTx(光纤到……)也是一种实现宽带居民接入网的方案。这里字母 x 可代表不同意思。
光纤到家 FTTH (Fiber To The Home):光纤一直铺设到用户家庭可能是居民接入网最后的解决方法。
光纤到大楼 FTTB (Fiber To The Building):光纤进入大楼后就转换为电信号,然后用电缆或双绞线分配到各用户。
光纤到路边 FTTC (Fiber To The Curb):从路边到各用户可使用星形结构双绞线作为传输媒体。
数据链路层
数据链路层使用的信道主要有以下两种类型:
- 点对点信道。这种信道使用一对一的点对点通信方式。
- 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据。
使用点对点信道的数据链路层
数据链路和帧
**链路 (link)**是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
数据链路 (data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- 现在最常用的方法是使用**适配器(即网卡)**来实现这些协议的硬件和软件。
- 一般的适配器都包括了数据链路层和物理层这两层的功能。
数据链路层传送的是帧
常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。
早期的数据通信协议曾叫作通信规程 (procedure)。因此在数据链路层,规程和协议是同义语。
三个基本问题
封装成帧
封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
首部和尾部的一个重要作用就是进行帧定界。
用控制字符进行帧定界的方法
透明传输(转义)
发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。
接收端的数据链路层在将数据送往网络层之前删除插入的转义字符——字节填充 (byte stuffing) 或字符填充 (character stuffing) 。
如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
用字节填充法解决透明传输的问题
差错控制
在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。
误码率与信噪比有很大的关系。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术
CRC(Cyclic Redundancy Check)
生成多项式:将二进制位串看成是生成多项式对应的系数。
如 110001 是生成多项式 x5+x4+x0 的系数。
CRC 原理:
- 收发双方事先商定一个生成多项式 G(x),假设该多项式对应的系数列表是 P,长度为 n+1(n 为生成多项式最高指数)。
- 根据要传输的数据 (被除数) 以及 P(除数) 计算冗余码 (余数)。
- 将冗余码放在帧的尾部一起传输。
- 接收方将收到的数据除以 P, 若余数为 0 表示数据没有差错。
帧检验序列 FCS
在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
循环冗余检验 CRC 和帧检验序列 FCS 并不等同。
- CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
- FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。
注意
仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept)。
“无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。
也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。
要做到**“可靠传输”**(即发送什么就收到什么)就必须再加上确认和重传机制。
点对点协议 PPP
PPP 协议的特点
现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。
用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。
PPP 协议应满足的需求
简单——这是首要的要求
封装成帧
透明性
多种网络层协议 :PPP 协议必须在同一条物理你链路上同时支持多种网络层协议
多种类型链路:能够在多种链路上运行 ,如串行(一次只发送一个比特),并行(一次并行的发送多个比特)
差错检测
检测连接状态 :能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态
最大传送单元
网络层地址协商:
数据压缩协商:提供一种方法来协商使用数据压缩算法
PPP 协议不需要的功能
纠错
流量控制
序号
多点线路
半双工或单工链路
PPP 协议的组成
1992 年制订了 PPP 协议。经过 1993 年和 1994 年的修订,现在的 PPP 协议已成为因特网的正式标准 [RFC 1661]。
PPP 协议有三个组成部分
- 一个将 IP 数据报封装到串行链路的方法。
- 链路控制协议 LCP (Link Control Protocol)。
- 网络控制协议 NCP (Network Control Protocol)
PPP 协议的帧格式
标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。
地址字段 A 只置为 0xFF。地址字段实际上并不起作用。
控制字段 C 通常置为 0x03。
PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
透明传输问题
当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充。
当 PPP 用在异步传输时,就使用一种特殊的字符填充法(字节填充)。
零比特填充
PPP 协议用在 SONET/SDH 链路时,是使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输。
在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的比特流进行扫描。每当发现 5 个连续 1 时,就把这 5 个连续 1 后的一个 0 删除。
不提供使用序号和确认的可靠传输
PPP 协议之所以不使用序号和确认机制是出于以下的考虑:
- 在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理。
- 在因特网环境下,PPP 的信息字段放入的数据是 IP 数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
- 帧检验序列 FCS 字段可保证无差错接受。
PPP 协议的工作状态
当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
这些分组及其响应选择一些 PPP 参数,网络控制协议 NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
使用广播信道的数据链路层
局域网的数据链路层
局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限。
局域网具有如下的一些主要优点:
- 具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
- 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
- 提高了系统的可靠性、可用性和残存性。
媒体共享技术
静态划分信道
- 频分复用
- 时分复用
- 波分复用
- 码分复用
动态媒体接入控制(多点接入)
- 随机接入
- 受控接入 ,如多点线路探询 (polling),或轮询。
以太网的两个标准
DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。
IEEE 的 802.3 标准。1983 年制定
DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为“以太网”。
严格说来,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网
适配器的作用
网络接口板又称为通信适配器 (adapter) 或网络接口卡 NIC (Network Interface Card),或“网卡”。
适配器的重要功能:
- 进行串行/并行转换。
- 对数据进行缓存。
- 在计算机的操作系统安装设备驱动程序。
- 实现以太网协议。
最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。
以太网的广播方式发送
总线上的每一个工作的计算机都能检测到 B 发送的数据信号。
由于只有计算机 D 的地址与数据帧首部写入的地址一致,因此只有 D 才接收这个数据帧。
其他所有的计算机(A, C 和 E)都检测到不是发送给它们的数据帧,因此就丢弃这个数据帧而不能够收下来。
具有广播特性的总线上实现了一对一的通信。
为了通信的简便以太网采取了两种重要的措施
- 采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。
- 以太网对发送的数据帧不进行编号,也不要求对方发回确认。这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的。
以太网提供的服务
以太网提供的服务是不可靠的交付,即尽最大努力的交付。
当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。
以太网发送的数据都使用曼彻斯特 (Manchester) 编码
CSMA/CD 协议
载波监听 多点接入 CSMA/CD
CSMA/CD 表示 Carrier Sense Multiple Access with Collision Detection。
**“多点接入”**表示许多计算机以多点接入的方式连接在一根总线上。
**“载波监听”**是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
碰撞检测
“碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大**(互相叠加)**。
当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。
电磁波在总线上的有限传播速率的影响
- 当某个站监听到总线是空闲时,也可能总线并非真正是空闲的。
- A 向 B 发出的信息,要经过一定的时间后才能传送到 B。
- B 若在 A 发送的信息到达 B 之前发送自己的帧 (因为这时 B 的载波监听检测不到 A 所发送的信息),则必然要在某个时间和 A 发送的帧发生碰撞。
- 碰撞的结果是两个帧都变得无用。
重要特性
使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。
争用期
最先发送数据帧的站,在发送数据帧后至多经过时间 2t (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。
以太网的端到端往返时延 2t 称为争用期,或碰撞窗口。
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
二进制指数类型退避算法
(truncated binary exponential type)
争用期长度及最短有效帧长
以太网取 51.2 ms 为争用期的长度。
对于 10 Mb/s 以太网,在争用期内可发送 512 比特,即 64 字节。也可以说争用期是 512 比特时间,1 比特时间就是发送 1 比特所需的时间。
强化碰撞
当发送数据的站一旦发现发生了碰撞时:
- 立即停止发送数据;
- 再继续发送若干比特的人为干扰信号 (jamming signal),以便让所有用户都知道现在已经发生了碰撞。
CSMA/CD 协议要点
- 获得数据组成以太网帧,准备发送;
- 若检测到信道空闲(即在 96 比特时间内没有检测到信道上有信号),就发送这个帧,若检测到忙则继续检测;
- 在发送过程中继续检测信道,若一直未检测到碰撞则这个成功发送;若检测到碰撞,则终止数据发送,并发送人为干扰信号;
- 终止发送后执行指数退避算法,等待 r 倍 512 比特时间后返回到步骤 2。
使用集线器的星形拓扑
传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。
这种以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器 (hub)
星形网 10BASE-T
- 10BASE-T 的解释 10: 传输速率为 10Mbps Base:基带信号 T: 非屏蔽双绞线
不用电缆而使用无屏蔽双绞线。每个站需要用两对双绞线,分别用于发送和接收。
集线器使用了大规模集成电路芯片,因此这样的硬件设备的可靠性已大大提高了。
10BASE-T 的通信距离稍短,每个站到集线器的距离不超过 100 m。
这种 10 Mb/s 速率的无屏蔽双绞线星形网的出现,既降低了成本,又提高了可靠性。
10BASE-T 双绞线以太网的出现,是局域网发展史上的一个非常重要的里程碑,它为以太网在局域网中的统治地位奠定了牢固的基础。
集线器的一些特点
集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。
使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线。
集线器很像一个多接口的转发器,工作在物理层。
10 个站连接到以太网上,试说明以下情况每一个站所能得到的带宽:
- 10 个站都连接到 10Mbit/s 以太网集线器 1
- 10 个站都连接到 100Mbit/s 以太网集线器 10
- 10 个站都连接到一个 10Mb/s 以太网交换机 10
以太网的 MAC 层(数据链路层子层)
在局域网中,硬件地址又称为物理地址,或 MAC 地址。
802 标准所说的“地址”严格地讲应当是每一个站的**“名字”或标识符**。
但鉴于大家都早已习惯了将这种 48 位的“名字”称为“地址”,所以本书也采用这种习惯用法,尽管这种说法并不太严格。
48 位的 MAC 地址
又称物理地址
IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节 (即高位 24 位)。
地址字段中的后三个字节 (即低位 24 位) 由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址。
这种 48 位地址称为 MAC-48,它的通用名称是 EUI-48。
“MAC 地址”实际上就是适配器地址或适配器标识符 EUI-48。
适配器检查 MAC 地址
适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址.
- 如果是发往本站的帧则收下,然后再进行其他的处理。
- 否则就将此帧丢弃,不再进行其他的处理。
“发往本站的帧”包括以下三种帧:
- 单播 (unicast) 帧(一对一)
- 广播 (broadcast) 帧(一对全体)
- 多播 (multicast) 帧(一对多)
MAC 帧的格式
常用的以太网 MAC 帧格式有两种标准 :
- DIX Ethernet V2 标准
- IEEE 的 802.3 标准
最常用的 MAC 帧是以太网 V2 的格式。
目的地址字段 6 字节,源地址字段 6 字节
类型字段 2 字节,类型字段用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议
数据字段 46 ~ 1500 字节,数据字段的正式名称是 MAC 客户数据字段,最小长度 64 字节 - 18 字节的首部和尾部 = 数据字段的最小长度 。小于最小长度要补齐(ARP 的数据帧),过长要分片
FCS 字段 4 字节,当传输媒体的误码率为 1´10-8 时,MAC 子层可使未检测到的差错小于 1´10-14。
前同步码,在帧的前面插入的 8 字节中的第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。第二个字段是帧开始定界符,表示后面的信息就是 MAC 帧。 为了达到比特同步,在传输媒体上实际传送的要比 MAC 帧还多 8 个字节
PAD:垫片
无效的 MAC 帧
帧的长度不是整数个字节;
用收到的帧检验序列 FCS 查出有差错;
数据字段的长度不在 46 ~ 1500 字节之间。
有效的 MAC 帧长度为 64 ~ 1518 字节之间。
对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。
环回接口
127.*,都是环回地址,都是可以 ping 通的
本质上是:减少无用功,给自己的数据直接复制一份即可,没必要传播出去。广播或多播,自己本身也是对象之一。
扩展局域网
在物理层扩展局域网(星形拓扑)
主机使用光纤和一对光纤调制解调器连接到集线器
用多个集线器可连成更大的局域网
用集线器组成更大的局域网都在一个碰撞域中
优点
- 使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。
- 扩大了局域网覆盖的地理范围。
缺点
- 碰撞域增大了,但总的吞吐量并未提高。
- 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
在数据链路层扩展局域网
在数据链路层扩展局域网是使用网桥。
网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。
网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口
网桥的内部结构
使用网桥带来的好处
-
过滤通信量。
-
扩大了物理范围。
-
提高了可靠性。
-
可互连不同物理层、不同 MAC 子层和不同速率(如 10 Mb/s 和 100 Mb/s 以太网)的局域网。
-
网桥使各网段成为隔离开的碰撞域
使用网桥带来的缺点
- 存储转发增加了时延。
- 在MAC 子层并没有流量控制功能。
- 具有不同 MAC 子层的网段桥接在一起时时延更大。
- 网桥只适合于用户数不太多 (不超过几百个) 和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。
透明网桥
- 目前使用得最多的网桥是透明网桥 (transparent bridge)。
- “透明”是指局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的。
- 透明网桥是一种即插即用设备,其标准是 IEEE 802.1D。
网桥应当按照以下自学习算法处理收到的帧和建立转发表
- 若从 A 发出的帧从接口 x 进入了某网桥,那么从这个接口出发沿相反方向一定可把一个帧传送到 A。
- 网桥每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表中的一个项目。
- 在建立转发表时是把帧首部中的源地址写在“地址”这一栏的下面。
- 在转发帧时,则是根据收到的帧首部中的目的地址来转发的。这时就把在“地址”栏下面已经记下的源地址当作目的地址,而把记下的进入接口当作转发接口。
网桥在转发表中登记以下三个信息
- 在网桥的转发表中写入的信息除了地址和接口外,还有帧进入该网桥的时间。
- 这是因为以太网的拓扑可能经常会发生变化,站点也可能会更换适配器(这就改变了站点的地址)。另外,以太网上的工作站并非总是接通电源的。
- 把每个帧到达网桥的时间登记下来,就可以在转发表中只保留网络拓扑的最新状态信息。这样就使得网桥中的转发表能反映当前网络的最新拓扑状态。
网桥的自学习和转发帧的步骤归纳
- 网桥收到一帧后先进行自学习。查找转发表中与收到帧的源地址有无相匹配的项目。如没有,就在转发表中增加一个项目(源地址、进入的接口和时间)。如有,则把原有的项目进行更新。
- 转发帧。查找转发表中与收到帧的目的地址有无相匹配的项目。
- 如没有,则通过所有其他接口(但进入网桥的接口除外)按进行转发。
- 如有,则按转发表中给出的接口进行转发。
- 若转发表中给出的接口就是该帧进入网桥的接口,则应丢弃这个帧(因为这时不需要经过网桥进行转发)。
多接口网桥——以太网交换机
1990 年问世的交换式集线器 (switching hub),可明显地提高局域网的性能。
交换式集线器常称为以太网交换机 (switch) 或第二层交换机(表明此交换机工作在数据链路层)。
以太网交换机通常都有十几个接口。因此,以太网交换机实质上就是一个多接口的网桥,可见交换机工作在数据链路层。
以太网交换机的每个接口都直接与主机相连,并且一般都工作在全双工方式。
- 直接相连,不存在碰撞,相当于一台主机一个“集线器”,只是这个“集线器”有转发功能
交换机能同时连通许多对的接口,使每一对相互通信的主机都能像独占通信媒体那样,进行无碰撞地传输数据。
以太网交换机由于使用了专用的交换结构芯片,其交换速率就较高。
- 对于普通 10 Mb/s 的共享式以太网,若共有 N 个用户,则每个用户占有的平均带宽只有总带宽 (10 Mb/s) 的 N 分之一。
- 使用以太网交换机时,虽然在每个接口到主机的带宽还是 10 Mb/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此对于拥有 N 对接口的交换机的总容量为 N´10 Mb/s。这正是交换机的最大优点。
用以太网交换机扩展局域网
利用以太网交换机可以很方便地实现虚拟局域网
-
虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组
- 这些网段具有某些共同的需求。
- 每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。
-
虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
-
当 B1 向 VLAN2 工作组内成员发送数据时,工作站 B2 和 B3 将会收到广播的信息。
-
B1 发送数据时,工作站 A1, A2 和 C1 都不会收到 B1 发出的广播信息。
-
虚拟局域网限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息 (即“广播风暴”) 而引起性能恶
虚拟局域网使用的以太网帧格式
- 虚拟局域网协议允许在以太网的帧格式中插入一个 4 字节的标识符,称为 VLAN 标记 (tag),用来指明发送该帧的工作站属于哪一个虚拟局域网。
高速以太网
速率达到或超过 100 Mb/s 的以太网称为高速以太网。
在双绞线上传送 100 Mb/s 基带信号的星型拓扑以太网,仍使用 IEEE 802.3 的 CSMA/CD 协议。
100BASE-T 的适配器有很强的自适应性,能自动识别 10 Mb/s 和 100 Mb/s 。
可在全双工方式下工作而无冲突发生。因此,CSMA/CD 协议对全双工方式工作的快速以太网是不起作用的。
MAC 帧格式仍然是 802.3 标准规定的。
网络层 @@@
(1) 虚拟互连网络的概念
(2) IP 地址与物理地址的关系
(3) 传统的分类的 IP 地址(包括子网掩码)和无分类域间路由选择 CIDR
(4) 路由选择协议的工作原理
网络层提供的两种服务
在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。
争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?
虚电路服务
电信网让网络负责可靠交付(以太网?局域网?):
面向连接的通信方式
建立虚电路(Virtual Circuit),以保证双方通信所需的一切网络资源。
如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点。
虚电路是逻辑连接
虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。
数据报服务
因特网采用的方式
- 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
- 网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。
- 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
尽最大努力交付的好处
- 由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。
- 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。
- 采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
- 因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。
数据报服务
虚电路服务与数据报服务的对比
对比的方面 | 虚电路服务 | 数据报服务 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信应当由用户主机来保证 |
连接的建立 | 必须有 | 不需要 |
终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立选择路由进行转发 |
当结点出故障时 | 所有通过出故障的结点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序到达终点 | 到达终点时不一定按发送顺序 |
端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
相关网络层协议 | IP 协议 |
网际协议 IP
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有四个协议:
- 地址解析协议 ARP(Address Resolution Protocol)
- 逆地址解析协议 RARP(Reverse Address Resolution Protocol)
- 网际控制报文协议 ICMP(Internet Control Message Protocol)
- 网际组管理协议 IGMP(Internet Group Management Protocol)
虚拟互连网络
互连在一起的网络要进行通信,会遇到许多问题需要解决,如:
- 不同的寻址方案
- 不同的最大分组长度
- 不同的网络接入机制
- 不同的超时控制
- 不同的差错恢复方法
- 不同的状态报告方法
- 不同的路由选择技术
- 不同的用户接入控制
- 不同的服务(面向连接服务和无连接服务)
- 不同的管理与控制方式
网络互连的中间设备
- 中间设备又称为中间系统或中继 (relay) 系统。
- 物理层中继系统:转发器 (repeater)。
- 数据链路层中继系统:网桥或桥接器 (bridge)。
- 网络层中继系统:路由器 (router)。
- 网络层以上的中继系统:网关 (gateway)。
- 当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。
- 用网关连接两个不兼容的系统,需要在高层进行协议转换。
- 互联网都是指用路由器进行互连的网络。
- 由于历史的原因,许多有关 TCP/IP 的文献将网络层使用的路由器称为网关。
互连网络与虚拟互连网络
虚拟互连网络的意义
所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。
使用 IP 协议的虚拟互连网络可简称为 IP 网。
使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。
分组在互联网中的传送
既有无连接的又有面向连接的?
现代 ISO 模型的连接与否是在运输层的事情
从网络层看 IP 数据报的传送
-
如果我们只从网络层考虑问题,那么 IP 数据报就可以想象是在网络层中传送。
IP 地址
IP 地址及其表示方法
我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。
IP 地址现在由因特网名字与号码指派公司 ICANN (Internet Corporation for Assigned Names and Numbers) 进行分配
IP 地址的编址方法
分类的 IP 地址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。
子网的划分。这是对最基本的编址方法的改进,其标准 [RFC 950] 在 1985 年通过。
构成超网。这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用。
分类 IP 地址
每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号
host-id,它标志该主机(或路由器)。
IP 地址中的网络号字段和主机号字段
点分十进制记法
常用的三种类别的 IP 地址
网络类别 | 最大网络数 | 第一个可用的网络号 | 最后一个可用的网络号 | 每个网络中最大的主机数 |
---|---|---|---|---|
A | 126 (27 – 2) | 1 | 126 | 224-2=16,777,214 |
B | 16,383(214 - 1) | 128.1 | 191.255 | 216-2=65,534 |
C | 2,097,151 (221 - 1) | 192.0.1 | 223.255.255 | 28-2=254 |
注意:
- 网络号
全 0,保留(表示本网络);
网络号字段为 127(01111111),保留(为本地软件环回测试用); - 主机号
全 0,保留(为该主机的网络地址);
主机号全 1,保留(为该网络上的所有主机)。
IP 地址的一些重要特点
IP 地址是一种分等级的地址结构。分两个等级的好处是:
- IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。
- 路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。
实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。
- 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机 (multihomed host)。
- 由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。
用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。
所有分配到网络号 net-id 的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。

IP 地址与硬件地址
在 IP 层抽象的互联网上只能看到 IP 数据报,图中的 IP1→IP2 表示从源地址 IP1 到目的地址 IP2 ,两个路由器的 IP 地址并不出现在 IP 数据报的首部中
路由器只根据目的站的 IP 地址的网络号进行路由选择
在具体的物理网络的链路层只能看见 MAC 帧而看不见 IP 数据报
IP 层抽象的互联网屏蔽了下层很复杂的细节,在抽象的网络层上讨论问题,就能够使用统一的、抽象的 IP 地址,研究主机和主机或主机和路由器之间的通信
ARP 和 RARP
地址解析协议 ARP 和逆地址解析协议 RARP
地址解析协议 ARP
通过 ARP 请求分组,根据目标 IP 地址,请求物理地址,达到解析的目的
不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
ARP 高速缓存的作用
- 为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。
- 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。
应当注意的问题
- ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
- 如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
- 从 IP 地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。
- 只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。
使用 ARP 的四种典型情况
- 发送方是主机,要把 IP 数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
- 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
- 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
- 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
能否直接用硬件地址通信
- 由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。
- 连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的
逆地址解析协议 RARP
- 逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。
- 这种主机往往是无盘工作站。 因此 RARP 协议目前已很少使用。
IP 数据报的格式
一个 IP 数据报由首部和数据两部分组成。
首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
在首部的固定部分的后面是一些可选字段,其长度是可变的。
-
版本——占 4 位,指 IP 协议的版本,目前的 IP 协议版本号为 4 (即 IPv4)
-
首部长度——占 4 位,可表示的最大数值是 15 个单位 (一个单位为 4 字节),因此 IP 的首部长度的最大值是 60 字节。
-
总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。
- 此处的 MTU 是 MAC 层的 MTU
- 路径 MTU,MAC 路径上最小的 MTU
-
标识 (identification) 占 16 位,它是一个计数器,每产生一个数据报,计数器就加 1,并赋给标识字段。不表示序号,用于标识分片的数据报。
-
标志 (flag) 占 3 位,目前只有两位有意义。
- 标志字段的最低位是 MF (More Fragment)。
- MF = 1 表示后面“还有分片”。MF = 0 表示最后一个分片。
- 标志字段中间的一位是 DF (Don't Fragment) 。只有当 DF =0 时才允许分片。
- 100,后面还有分片,允许分片,无意义
-
片偏移 (12 位) 指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。
-
一个数据报的总长度为 3820 字节,其数据部分为 3800 字节,需要分片为长度不超过 1420 字节的数据报片。
-
-
生存时间 (8 位) 记为 TTL (Time To Live),数据报在网络中可通过的路由器数的最大值。
-
协议 (8 位) 字段指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给哪个处理过程
-
首部检验和 (16 位) 字段只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。
-
源地址和目的地址都各占 4 字节
IP 数据报首部的可变部分
IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。
选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。
增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。
实际上这些选项很少被使用。
IP 层转发分组的流程
有四个 A 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。
可以想像,若按目的主机号来制作路由表,则所得出的路由表就会过于庞大。
但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含 4 个项目。这样就可使路由表大大简化。
在路由表中,对每一条路由,最主要的是(目的网络地址,下一跳地址)
根据目的网络地址就能确定下一跳路由器,这样做的结果是:
- IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
- 只有到达最后一个路由器时,才试图向目的主机进行直接交付。
默认路由 (default route)
路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。
这种转发方式在一个网络只有很少的对外连接时是很有用的。
默认路由在主机发送 IP 数据报时往往更能显示出它的好处。
如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的。
只要目的网络不是 N1 和 N2,就一律选择默认路由,把数据报先间接交付路由器 R1,让 R1 再转发给下一个路由器。
注意
IP 数据报的首部中没有地方可以用来指明“下一跳路由器的 IP 地址”。
当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件。
网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。
分组转发算法
- 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
- 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行 (3)。
- 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行 (4)。
- 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行 (5)。
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行 (6)。
- 报告转发分组出错。
网际控制报文协议 ICMP
为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP 不是高层协议,而是 IP 层的协议。
ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
ICMP 报文的格式
ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
ICMP 差错报告报文共有 5 种
不应发送 ICMP 差错报告报文的几种情况
- 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
- 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
- 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
- 对具有特殊地址(如 127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
ICMP 询问报文有两种
回送请求和回答报文
时间戳请求和回答报文
下面的几种 ICMP 报文不再使用
- 信息请求与回答报文
- 掩码地址请求和回答报文
- 路由器询问和通告报文
ICMP 的应用举例
PING 用来测试两个主机之间的连通性。
PING 使用了 ICMP 回送请求与回送回答报文。
PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或 UDP。
划分子网和构造超网
划分子网
从两级 IP 地址到三级 IP 地址
在 ARPANET 的早期,IP 地址的设计确实不够合理。
- IP 地址空间的利用率有时很低。
- 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
- 两级的 IP 地址不够灵活。
从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。
这种做法叫作划分子网 (subnetting) 。划分子网已成为因特网的正式标准协议。
划分子网的基本思路
划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。
凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。
然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。
最后就将 IP 数据报直接交付目的主机。
子网掩码
从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。
使用子网掩码 (subnet mask) 可以找出 IP 地址中的子网部分。
IP 地址的各字段和子网掩码
(IP 地址) AND (子网掩码) =网络地址
默认子网掩码
子网掩码是一个重要属性
子网掩码是一个网络或一个子网的重要属性。
路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。
若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。
路由器转发分组的算法(子网下)
在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。
但在划分子网的情况下,从 IP 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。
因此分组转发的算法也必须做相应的改动。
-
从收到的分组的首部提取目的 IP 地址 D。
-
先用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。
否则就是间接交付,执行 (3)。
-
若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;
否则,执行 (4)。
-
对路由表中的每一行的子网掩码和 D 逐位相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;
否则,执行 (5)。
-
若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;
否则,执行 (6)。
-
报告转发分组出错。
无分类编址 CIDR
划分子网在一定程度上缓解了因特网在发展中遇到的困难。然而在 1992 年因特网仍然面临三个必须尽早解决的问题,这就是:
- B 类地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全部分配完毕!
- 因特网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。
- 整个 IPv4 的地址空间最终将全部耗尽。
- 1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码 VLSM (Variable Length Subnet Mask) 可进一步提高 IP 地址资源的利用率。
- 在 VLSM 的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。
CIDR 最主要的特点
CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。
CIDR 使用各种长度的**“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号**。
IP 地址从三级编址(使用子网掩码)又回到了两级编址。
无分类的两级编址
CIDR 还使用**“斜线记法”(slash notation)**,它又称为 CIDR 记法,即在 IP 地址后面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。
CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。
CIDR 地址块
128.14.32.0/20 表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位)。
- 这个地址块的起始地址是 128.14.32.0。
在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。
128.14.32.0/20 地址块的最小地址:128.14.32.0
128.14.32.0/20 地址块的最大地址:128.14.47.255
全 0 和全 1 的主机号地址一般不使用。
已知 CIDR 地址块中的任何一个地址,就可以知道这个地址块的起始地址。如 128.14.98.9/20,请写出这个地址块的最小地址和最大地址
路由聚合 (route aggregation)
一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。
路由聚合也称为构成超网 (supernetting)。
CIDR 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。
对于 /20 地址块,它的掩码是 20 个连续的 1。 斜线记法中的数字就是掩码中 1 的个数。
前缀长度不超过 23 位的 CIDR 地址块包含了多个 C 类地址。
- 这些 C 类地址合起来就构成了超网。
- CIDR 地址块中的地址数一定是 2 的整数次幂。
- 网络前缀越短,其地址块所包含的地址数就越多。
最长前缀匹配
- 使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
- 应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配 (longest-prefix matching)。
- 网络前缀越长,其地址块就越小,因而路由就越具体 (more specific) 。
- 最长前缀匹配又称为最长匹配或最佳匹配。
因特网的路由选择协议
理想的路由算法
- 算法必须是正确的和完整的。
- 算法在计算上应简单。
- 算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。
- 算法应具有稳定性。
- 算法应是公平的。
- 算法应是最佳的。
- 不存在一种绝对的最佳路由算法。
- 所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
- 实际的路由选择算法,应尽可能接近于理想的算法。
- 路由选择是个非常复杂的问题
- 它是网络中的所有结点共同协调工作的结果。
- 路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。
从路由算法的自适应性考虑
静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
分层次的路由选择协议
因特网采用分层次的路由选择协议。
因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。
许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。
自治系统 AS
(Autonomous System)
自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS 之间的路由。
现在对自治系统 AS 的定义是强调下面的事实:尽管一个 AS 使用了多种内部路由选择协议和度量,但重要的是一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。
因特网有两大类路由选择协议
内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。
外部网关协议 EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。
内部网关协议 IGP:具体的协议有多种,如 RIP 和 OSPF 等。
外部网关协议 EGP:目前使用的协议就是 BGP。
RIP
(Routing Information Protocol)
工作原理
- 路由信息协议 RIP 是内部网关协议 IGP 中最先得到广泛使用的协议。
- RIP 是一种分布式的基于距离向量的路由选择协议。
- RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
“距离”的定义
- 从一路由器到直接连接的网络的距离定义为 1。
- 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
- RIP 协议中的“距离”也称为**“跳数”(hop count)**,因为每经过一个路由器,跳数就加 1。
- 这里的“距离”实际上指的是“最短距离”。
- RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
- RIP 允许一条路径最多只能包含 15 个路由器。
- “距离”的最大值为 16 时即相当于不可达。可见 RIP 只适用于小型互联网。
- RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速 (低时延) 但路由器较多的路由。
RIP 协议的三个要点
- 仅和相邻路由器交换信息。
- 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
- 按固定的时间间隔交换路由信息,例如,每隔 30 秒。
路由表的建立
- 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为 1)。
- 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
- 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
- RIP 协议的**收敛 (convergence)**过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。
距离向量算法
收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则把该项目加到路由表中。
否则
若下一跳字段给出的路由器地址是同样的,则把收到的项 目 替换原路由表中的项目。
否则
若收到项目中的距离小于路由表中的距离,则进行更新,
否则,什么也不做。
(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(距离为 16 表示不可达)。
(4) 返回。

路由器之间交换信息
- RIP 协议让互联网中的所有路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)。
- 虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的位置不同,它们的路由表当然也应当是不同的。
RIP 协议的报文格式
- RIP 报文中的路由部分由若干个路由信息组成。每个路由信息需要用 20 个字节。地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。
- 路由标记填入自治系统的号码,这是考虑使 RIP 有可能收到本自治系统以外的路由选择信息。再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。
RIP 协议的优缺点
-
RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
-
RIP 协议最大的优点就是实现简单,开销较小。
-
RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
-
路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
内部网关协议 OSPF
OSPF 协议的基本特点
- Open Shortest Path First
- “开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
- “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法 SPF
- OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
- 是分布式的链路状态协议。
三个要点
- 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
- 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
- “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的**“度量”(metric)**。
- 度量表示费用、距离、时延、带宽等,简称为**“代价”**,由网络管理人员决定
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
链路状态数据库
- 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
- 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。每一个路由器都知道整个网络有多少个路由器,以及哪些是相连的代价多少等。
- OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF 的更新过程收敛得快是其重要优点。
OSPF 直接用 IP 数据报传送
- OSPF 不用 UDP 而是直接用 IP 数据报传送。
- OSPF 构成的数据报很短。这样做可减少路由信息的通信量。
- 数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
OSPF 的其他特点
- OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。
- 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。
- 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
- 支持可变长度的子网划分和无分类编址 CIDR。
- 每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。
OSPF 分组
OSPF 的其他特点
- OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
- 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
- OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。
RIP OSPF 对比
主要特点 | RIP | OSPF |
---|---|---|
如何交换路由表内容 | 仅与相邻路由器交换 | 向所有路由器交换 |
每次交换哪些内容 | 路由器内所有内容 | 仅与该路由器相邻的路由器状态信息 |
最优通路依据 | 跳数 | 费用 |
算法 | 距离矢量 | 链路状态 |
传送方式 | 运输层 UDP | IP 数据报 |
虚拟专用网 VPN 和网络地址转换 NAT
虚拟专用网 VPN
本地地址——仅在机构内部使用的 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
- 这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。
全球地址——全球唯一的 IP 地址,必须向因特网的管理机构申请。
用隧道技术实现虚拟专用网
内联网 intranet 和外联网 extranet(都是基于 TCP/IP 协议)
- 由部门 A 和 B 的内部网络所构成的虚拟专用网 VPN 又称为内联网 (intranet),表示部门 A 和 B 都是在同一个机构的内部。
- 一个机构和某些外部机构共同建立的虚拟专用网 VPN 又称为外联网 (extranet)。
网络地址转换 NAT
网络地址转换 NAT 方法于 1994 年提出。
需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT 路由器,它至少有一个有效的外部全球地址 IPG。
所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接
内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。
NAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。
NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。
根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPX,转发给最终的内部主机 X。
网际协议 IPv6 (IPng)
解决 IP 地址耗尽的根本措施
因特网经过几十年的飞速发展,到 2011 年 2 月,IPv4 的地址已经耗尽,ISP 已经不能再申请到新的 IP 地址块了。
解决 IP 地址耗尽的根本措施就是采用具有更大地址空间的新版本的 IP,即 IPv6。
IETF 早在 1992 年 6 月就提出要制定下一代的 IP, 即 IPng (IP Next Generation) 。
IPng 现正式称为 IPv6。1998 年 12 月发表的 RFC 2460~2463 已成为因特网草案标准协议。
IPv6 的基本首部
IPv6 仍支持无连接的传送,所引进的主要变化如下
更大的地址空间。IPv6 将地址从 IPv4 的 32 位 增大到了 128 位。
扩展的地址层次结构。
灵活的首部格式。
- IPv6 将首部长度变为固定的 40 字节,称为基本首部 (base header)。
- 将不必要的功能取消了,首部的字段数减少到只有 8 个。
- 取消了首部的检验和字段,加快了路由器处理数据报的速度。
- 在基本首部的后面允许有零个或多个扩展首部。
- 所有的扩展首部和数据合起来叫做数据报的有效载荷 (payload) 或净负荷。
改进的选项。
允许协议继续扩充。
支持即插即用(即自动配置)
支持资源的预分配。
从 IPv4 向 IPv6 过渡
向 IPv6 过渡只能采用逐步演进的办法,同时,还必须使新安装的 IPv6 系统能够向后兼容。
IPv6 系统必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。
双协议栈 (dual stack) 是指在完全过渡到 IPv6 之前,使一部分主机(或路由器)装有两个协议栈,一个 IPv4 和一个 IPv6。
运输层
运输层协议概述
进程之间的通信
从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
运输层为相互通信的应用进程提供了逻辑通信
应用进程之间的通信
两个主机进行通信实际上就是两个主机中的应用进程互相通信。
应用进程之间的通信又称为端到端的通信。
运输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。
“运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。
运输层协议和网络层协议的主要区别
运输层的主要功能
运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。
运输层还要对收到的报文进行差错检测。
运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。
两种不同的运输协议
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。
当运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。
当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道。
用户数据报协议 UDP (User Datagram Protocol) UDP 传送的数据单位是 UDP 报文或用户数据报。
- UDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。
传输控制协议 TCP (Transmission Control Protocol) TCP 传送的数据单位是 TCP 报文段 (segment)
- TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。
运输层的端口
运行在计算机中的进程是用进程标识符来标志的。
为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法对 TCP/IP 体系的应用进程进行标志。
解决这个问题的方法就是在运输层使用协议端口号(protocol port number),简称为端口 (port)。
虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点。
端口用一个 16 位端口号进行标志。
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。
三类端口
熟知端口,数值一般为 0~1023。
登记端口号,数值为 1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。
客户端口号或短暂端口号,数值为 49152~65535,留给客户进程选择暂时使用。
用户数据报协议 UDP
UDP 概述
UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。
虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。
UDP 的主要特点
UDP 是无连接的,即发送数据之前不需要建立连接。
UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
UDP 是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。
UDP 支持一对一、一对多、多对一和多对多的交互通信。
UDP 的首部开销小,只有 8 个字节。
面向报文的 UDP
发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
应用层交给 UDP 多长的报文,UDP 就照样发送,即一次发送一个报文。
接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。
应用程序必须选择合适大小的报文。
UDP 的首部格式
用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段有 8 个字节,由 4 个字段组成,每个字段都是两个字节。
一 UDP 用户数据报的首部的十六进制表示是:07 42 00 35 00 21 E3 27
- 源端口:1858 目的端口:53 总长度:33
- 数据部分长度:33-8=25
- 是客户发送给服务器,DNS 服务器程序
在计算检验和时,临时把**“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和**。
UDP 的使用场合
UDP 适用于,简单的请求 - 响应通信,而较少考虑控制和差错的进程。
UDP 适用于多播和广播。
UDP 可用于管理进程,如 SNMP(简单网络管理协议)。
UDP 可用于某些路由选择更新协议,如RIP(路由选择信息协议)。
- RIP 自身是基于 UDP 的应用层协议;路由器可以通过 RIP 协议交互一些信息,从而可能改变(属于网络层的)路由规则。
传输控制协议 TCP
特点
TCP 是面向连接的运输层协议。
每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。
TCP 提供可靠交付的服务。
TCP 提供全双工通信。
面向字节流。
TCP 面向流的概念
TCP 连接是一条虚连接而不是一条真正的物理连接。
TCP 对应用进程一次把多长的报文发送到 TCP 的缓存中是不关心的。
TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。
TCP 可把太长的数据块划分短一些再传送。TCP 也可等待积累有足够多的字节后再构成报文段发送出去。
分组交换的因特网
可靠传输的工作原理:停止等待协议
在发送完一个分组后,必须暂时保留已发送的分组的副本。
分组和确认分组都必须进行编号。
超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些。
确认丢失和确认迟到
必须主动确认丢失和迟到,否则发送方会不断重传
可靠通信的实现
使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信。
这种可靠传输协议常称为自动重传请求 ARQ (Automatic Repeat reQuest)。
ARQ 表明重传的请求是自动进行的。接收方不需要请求发送方重传某个出错的分组 。
停等协议的优点是简单,缺点是信道利用率低。
信道利用率
流水线传输
发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。
由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率。
连续 ARQ 协议(窗口概念)
累积确认
- 接收方一般采用累积确认的方式。即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了。
- 累积确认有的优点是:容易实现,即使确认丢失也不必重传。缺点是:不能向发送方反映出接收方已经正确收到的所有分组的信息。
Go-back-N(回退 N)
- 如果发送方发送了前 5 个分组,而中间的第 3 个分组丢失了。这时接收方只能对前两个分组发出确认。发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次。
- 这就叫做 Go-back-N(回退 N),表示需要再退回来重传已发送过的 N 个分组。
- 可见当通信线路质量不好时,连续 ARQ 协议会带来负面的影响。
TCP 可靠通信的具体实现
- TCP 连接的每一端都必须设有两个窗口——一个发送窗口和一个接收窗口。
- TCP 的可靠传输机制用字节的序号进行控制。TCP 所有的确认都是基于序号而不是基于报文段。
- TCP 两端的四个窗口经常处于动态变化之中。
- TCP 连接的往返时间 RTT 也不是固定不变的。需要使用特定的算法估算较为合理的重传时间。
TCP 报文段的首部格式
- 源端口和目的端口字段——各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
- 序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
- 一报文段的序号字段值是 201,携带的数据有 100 字节,下一个报文段的序号为 301
- 确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
- 设 B 收到 A 发送的报文段,其序号字段值是 200,数据长度是 100 字节,则 B 发给 A 的确认报文段中确认号应为 300
- 数据偏移(即首部长度)——占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。
- 保留字段——占 6 位,保留为今后使用,但目前应置为 0。
- 紧急 URG —— 当 URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
- 确认 ACK —— 只有当 ACK = 1 时确认号字段才有效。当 ACK = 0 时,确认号无效。
- 推送 PSH (PuSH) —— 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。
- 复位 RST (ReSeT) —— 当 RST = 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
- 同步 SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文。
- 终止 FIN (FINis)—— 用来释放一个连接。FIN = 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
- 窗口字段 —— 占 2 字节,用来让对方设置发送窗口的依据,单位为字节。
- 检验和 —— 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。
- 紧急指针字段 —— 占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
- 选项字段 —— 长度可变。TCP 最初只规定了一种选项,即最大报文段长度 MSS。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”
- 填充字段 —— 这是为了使整个首部长度是 4 字节的整数倍。
TCP 可靠传输的实现——滑动窗口
A 收到 B 发来的确认报文段,其中首部的窗口值 20,ACK=1,确认号是 31。
滑动窗口例子
发送缓存
-
发送缓存用来暂时存放:
- 发送应用程序传送给发送方 TCP 准备发送的数据;
- TCP 已发送出但尚未收到确认的数据。
接收缓存
-
接收缓存用来暂时存放:
- 按序到达的、但尚未被接收应用程序读取的数据;
- 不按序到达的数据。
注意
A 的发送窗口并不总是和 B 的接收窗口一样大(因为有一定的时间滞后)。
TCP 标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。
TCP 要求接收方必须有累积确认的功能,这样可以减小传输开销。
超时重传时间的选择
重传机制是 TCP 中最重要和最复杂的问题之一。
TCP 每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。
由于 TCP 的下层是一个互联网环境,IP 数据报所选择的路由变化很大。因而运输层的往返时间的方差也很大。
重传确认判断
TCP 的流量控制
利用滑动窗口实现流量控制
一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。
**流量控制 (flow control)**就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
利用滑动窗口机制可以很方便地在 TCP 连接上实现流量控制。
持续计时器
- TCP 为每一个连接设有一个持续计时器 (persistence timer)。
- 只要 TCP 连接的一方收到对方的零窗口通知,就启动持续计时器。
- 若持续计时器设置的时间到期,就发送一个零窗口探测报文段(仅携带 1 字节的数据),而对方就在确认这个探测报文段时给出了现在的窗口值。
- 若窗口仍然是零,则收到这个报文段的一方就重新设置持续计时器。
- 若窗口不是零,则死锁的僵局就可以打破了。
TCP 的拥塞控制
在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion)。
出现资源拥塞的条件:对资源需求的总和 > 可用资源
若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。
拥塞控制是很难设计的,因为它是一个动态的(而不是静态的)问题。
当前网络正朝着高速化的方向发展,这很容易出现缓存不够大而造成分组的丢失。但分组的丢失是网络发生拥塞的征兆而不是原因。
在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化甚至发生死锁的原因。这点应特别引起重视。
拥塞控制与流量控制的关系
拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。
拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。
流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
几种拥塞控制方法
1. 慢开始和拥塞避免
-
发送方维持一个叫做拥塞窗口 cwnd (congestion window) 的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。如再考虑到接收方的接收能力,则发送窗口还可能小于拥塞窗口。
-
发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。
-
慢开始算法的原理
- 在主机刚刚开始发送报文段时可先设置拥塞窗口 cwnd = 1,即设置为一个最大报文段 MSS 的数值。
- 在每收到一个对新的报文段的确认后,将拥塞窗口加 1,即增加一个 MSS 的数值。
- 用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理。
-
传输伦次
- 使用慢开始算法后,每经过一个传输轮次(transmission round),拥塞窗口 cwnd 就加倍。
- 一个传输轮次所经历的时间其实就是往返时间 RTT。
- “传输轮次”更加强调:把拥塞窗口 cwnd 所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个字节的确认。
- 例如,拥塞窗口 cwnd = 4,这时的往返时间 RTT 就是发送方连续发送 4 个报文段,并收到这 4 个报文段的确认,总共经历的时间。
-
设置慢开始门限状态变量
- 当 cwnd < ssthresh 时,使用慢开始算法。
- 当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
- 当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。
- 拥塞避免算法的思路是让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律缓慢增长。
-
当网络出现拥塞时
-
无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有按时收到确认),就要把慢开始门限 ssthresh 设置为出现拥塞时的发送方窗口值的一半(但不能小于 2)。
-
然后把拥塞窗口 cwnd 重新设置为 1,执行慢开始算法。
-
这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。
-
应用层
应用层协议的特点
每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。
应用层的许多协议都是基于客户服务器方式。客户 (client) 和服务器 (server) 都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方
域名系统 DNS
域名系统概述
许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。
域名到 IP 地址的解析过程:当某个应用进程需要将主机名解析为 IP 地址时,该应用进程调用解析程序,并成为 DNS 的一个客户,把待解析的域名放在DNS 请求报文中,以UDP 用户数据报方式发送给本地域名服务器。
名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
因特网的域名结构
因特网采用了层次树状结构的命名方法。
任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
域名的结构由标号序列组成,各标号之间用点隔开:
域名只是个逻辑概念,并不代表计算机所在的物理地点。
变长的域名和使用有助记忆的字符串,是为了便于人来使用。而 IP 地址是定长的 32 位二进制数字则非常便于机器进行处理。
域名中的“点”和点分十进制 IP 地址中的“点”并无一一对应的关系。点分十进制 IP 地址中一定是包含三个“点”,但每一个域名中“点”的数目则不一定正好是三个。
顶级域名 TLD (Top Level Domain)
国家顶级域名 nTLD:如: .cn 表示中国,.us 表示美国,.uk 表示英国,等等。
通用顶级域名 gTLD:最早的顶级域名是:
- .com (公司和企业)
- .net (网络服务机构)
- .org (非赢利性组织)
- .edu (美国专用的教育机构()
- .gov (美国专用的政府部门)
- .mil (美国专用的军事部门)
- .int (国际组织)
基础结构域名 (infrastructure domain):这种顶级域名只有一个,即 arpa,用于反向域名解析,因此又称为反向域名。
新增加了下列的通用顶级域名 :
- .aero (航空运输企业)
- .biz (公司和企业)
- .cat (加泰隆人的语言和文化团体)
- .coop (合作团体)
- .info (各种情况)
- .jobs (人力资源管理者)
- .mobi (移动产品与服务的用户和提供者)
- .museum (博物馆)
- .name (个人)
- .pro (有证书的专业人员)
- .travel (旅游业)
域名服务器
域名服务器有以下四种类型:
根域名服务器
-
(最高层次的域名服务器)
-
根域名服务器是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。
-
不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。
-
在因特网上共有 13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从 a 一直到 m(前 13 个字母)。
-
根域名服务器共有 13 套装置(不是 13 个机器)相应的域名是
…
- 到 2012 年 5 月全世界已经在 312 个地点安装了根域名服务器机器,分布在世界各地。借由任播技术,部份根域名服务器在全球设有多个镜像点,因此可以抵抗针对其所进行的分布式拒绝服务攻击。
- 另一个目的是为了方便用户,使世界上大部分 DNS 域名服务器都能就近找到一个根域名服务器。
顶级域名服务器
- 顶级域名服务器(即 TLD 服务器): 这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。
- 当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。
权限域名服务器
- 权限域名服务器:负责一个区域内的域名解析,当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。
本地域名服务器
- 本地域名服务器对域名系统非常重要。
- 当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
- 每一个因特网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,
- 这种域名服务器有时也称为默认域名服务器。
单播、组播 (多播)、广播及任播
单播 (unicast):目的地址为单一目标的一种传输方式。
组播 (multicast):也叫多播, 指把信息同时传递给一组目的地址。它使用策略是最高效的,因为消息在每条网络链路上只需传递一次,而且只有在链路分叉的时候,消息才会被复制。
广播 (broadcast):是指目的地址为网络中所有设备。实际上,这里所说的“所有设备”也是限定在一个范围之中。
任播 (anycast):目的地址对应一群接收节点,但在任何给定时间,只有其中之一可以接收到传送端来的资讯。
域名的解析过程
主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
名字的高速缓存(HOST?)
每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。
可大大减轻根域名服务器的负荷,使因特网上的 DNS 查询请求和回答报文的数量大为减少。
为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项(例如,每个项目只存放两天)。
当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性。
文件传送协议 FTP
FTP 概述
文件传送协议 FTP (File Transfer Protocol) 是因特网上使用得最广泛的文件传送协议。
FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。
FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
RFC 959 很早就成为了因特网的正式标准。
文件传送并非很简单的问题
网络环境中的一项基本应用就是将文件从一台计算机中复制到另一台可能相距很远的计算机中。
初看起来,在两个主机之间传送文件是很简单的事情。
其实这往往非常困难。原因是众多的计算机厂商研制出的文件系统多达数百种,且差别很大。
FTP 的基本工作原理
网络环境下复制文件的复杂性:
(1) 计算机存储数据的格式不同。
(2) 文件的目录结构和文件命名的规定不同。
(3) 对于相同的文件存取功能,操作系统使用的命令不同。
(4) 访问控制方法不同。
FTP 特点
- 文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。
- FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
- FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
主进程的工作步骤
- 打开熟知端口(端口号为 21),使客户进程能够连接上。
- 等待客户进程发出连接请求。
- 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
- 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。
两个连接
-
控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
-
实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。
-
数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
两个端口
- 当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
- 接着,服务器进程用自己传送数据的熟知端口(20) 与客户进程所提供的端口号码建立数据传送连接。
- 由于 FTP 使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。
- 使用两个端口的好处
- 使协议更加简单和更容易实现。
- 在传输文件时还可以利用控制连接(例如,客户发送请求终止传输)
网络文件系统 NFS
NFS 允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。
NFS 可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件。
远程添加数据的例子,计算机 A 的 NFS 客户软件,把要添加的数据和在文件后面写数据的请求一起发送到远地的计算机 B 的 NFS 服务器。NFS 服务器更新文件后返回应答信息。
在网络上传送的只是少量的修改数据。
简单文件传送协议 TFTP
TFTP (Trivial File Transfer Protocol) 是一个很小且易于实现的文件传送协议。
TFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。
TFTP 只支持文件传输而不支持交互。
TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
TFTP 的主要特点是
(1) 每次传送的数据 PDU 中有 512 字节的数据,但最后一次可不足 512 字节。
(2) 数据 PDU 也称为文件块 (block),每个块按序编号,从 1 开始。
(3) 支持 ASCII 码或二进制传送。
(4) 可对文件进行读或写。
(5) 使用很简单的首部。
TFTP 的工作很像停止等待协议:
- 发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。
- 发完数据后在规定时间内收不到确认就要重发数据 PDU。
- 发送确认 PDU 的一方若在规定时间内收不到下一个文件块,也要重发确认 PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告失败。
- 在一开始工作时。TFTP 客户进程发送一个读请求 PDU 或写请求 PDU 给 TFTP 服务器进程,其熟知端口号码为 69。
- TFTP 服务器进程要选择一个新的端口和 TFTP 客户进程进行通信。
- 若文件长度恰好为 512 字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据 PDU。
- 若文件长度不是 512 字节的整数倍,则最后传送数据 PDU 的数据字段一定不满 512 字节,这正好可作为文件结束的标志。
远程终端协议 TELNET
TELNET 是一个简单的远程终端协议,也是因特网的正式标准。
用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。
TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。
客户 - 服务器方式
- 现在由于 PC 的功能越来越强,用户已较少使用 TELNET 了。
- TELNET 也使用客户 - 服务器方式。在本地系统运行 TELNET 客户进程,而在远地主机则运行 TELNET 服务器进程。
- 和 FTP 的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。
TELNET 使用网络虚拟终端 NVT 格式
- 客户软件把用户的击键和命令转换成 NVT 格式,并送交服务器。
- 服务器软件把收到的数据和命令,从 NVT 格式转换成远地系统所需的格式。
- 向用户返回数据时,服务器把远地系统的格式转换为 NVT 格式,本地客户再从 NVT 格式转换到本地系统所需的格式。
万维网 WWW
概述
万维网 WWW (World Wide Web) 并非某种特殊的计算机网络。
万维网是一个大规模的、联机式的信息储藏所。
万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
这种访问方式称为“链接”。
万维网提供分布式服务
超媒体与超文本
万维网是分布式超媒体(hypermedia) 系统,它是超文本(hypertext) 系统的扩充。
一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。
超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。
万维网的工作方式
万维网以客户 - 服务器方式工作。
浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。
客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。
万维网必须解决的问题
(1) 怎样标志分布在整个因特网上的万维网文档?
- 使用统一资源定位符 URL (Uniform Resource Locator) 来标志万维网上的各种文档。
- 使每一个文档在整个因特网的范围内具有唯一的标识符 URL。
(2) 用何协议实现万维网上各种超链的链接?
- 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
- HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
(3) 怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?
- 超文本标记语言 HTML (HyperText Markup Language) 使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
(4) 怎样使用户能够很方便地找到所需的信息?
- 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。
统一资源定位符 URL
URL 的格式
- 统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。
- URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。
- 只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。
- URL 相当于一个文件名在网络范围的扩展。因此 URL 是与因特网相连的机器上的任何可访问对象的一个指针。
- 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。
- URL 的一般形式是:
- 冒号和两个斜线是规定的格式
- <主机> 是存放资源的主机在因特网中的域名
- <端口>、<路径>有时可省略
超文本传送协议 HTTP
HTTP 的操作过程
- 为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。
- 从层次的角度看,HTTP 是面向事务的 (transaction-oriented) 应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
工作过程
HTTP 的主要特点
- HTTP 是面向事务的客户服务器协议。
- HTTP 1.0 协议是无状态的 (stateless)。
- HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
用户点击鼠标后所发生的事件
(1) 浏览器分析超链指向页面的 URL。
(2) 浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP 地址。
(3) 域名系统 DNS 解析出清华大学服务器的 IP 地址。
(4) 浏览器与服务器建立 TCP 连接
(5) 浏览器发出取文件命令:
GET /chn/yxsz/index.htm。
(6) 服务器给出响应,把文件 index.htm 发给浏览器。
(7) TCP 连接释放。
(8) 浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。
- HTTP1.0 的缺点:每请求一个文档就需要两倍的 RTT 开销
持续连接 (persistent connection)
HTTP/1.1 协议使用持续连接。
万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。
这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。
目前一些流行的浏览器(例如,IE 6.0)的默认设置就是使用 HTTP/1.1。
持续连接的两种工作方式
- 非流水线方式:客户在收到前一个响应后才能发出下一个请求。这比非持续连接的两倍 RTT 的开销节省了建立 TCP 连接所需的一个 RTT 时间。但服务器在发送完一个对象后,其 TCP 连接就处于空闲状态,浪费了服务器资源。
- 流水线方式:客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。使用流水线方式时,客户访问所有的对象只需花费一个 RTT 时间,使 TCP 连接中的空闲时间减少,提高了下载文档效率。
代理服务器 (proxy server)
代理服务器 (proxy server) 又称为万维网高速缓存 (Web cache),它代表浏览器发出 HTTP 请求。
万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。
当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去因特网访问该资源。
超文本标记语言 HTML
超文本标记语言 HTML 中的 Markup 的意思就是“设置标记”。
HTML 定义了许多用于排版的命令(即标签)。
HTML 把各种标签嵌入到万维网的页面中。这样就构成了所谓的 HTML 文档。HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件。
HTML 文档
仅当 HTML 文档是以.html 或 .htm 为后缀时,浏览器才对此 文档的各种标签进行解释。
如 HTML 文档改换以 .txt 为其后缀,则 HTML 解释程序就不对标签进行解释,而浏览器只能看见原来的文本文件。
当浏览器从服务器读取 HTML 文档后,就按照 HTML 文档中的各种标签,根据浏览器所使用的显示器的尺寸和分辨率大小,重新进行排版并恢复出所读取的页面。
电子邮件
概述
电子邮件 (e-mail) 是因特网上使用得最多的和最受用户欢迎的一种应用。
电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可随时上网到自己使用的邮件服务器进行读取。
电子邮件不仅使用方便,而且还具有传递迅速和费用低廉的优点。
现在电子邮件不仅可传送文字信息,而且还可附上声音和图像。
电子邮件的一些标准
发送邮件的协议:SMTP
读取邮件的协议:POP3 和 IMAP
MIME 在其邮件首部中说明了邮件的数据类型 (如文本、声音、图像、视像等),使用 MIME 可在邮件中同时传送多种类型的数据。
用户代理 UA (User Agent)
用户代理 UA 就是用户与电子邮件系统的接口,是电子邮件客户端软件。
用户代理的功能:撰写、显示、处理和通信。
邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。
邮件服务器按照客户 - 服务器方式工作。邮件服务器需要使用发送和读取两个不同的协议。
应当注意
- 一个邮件服务器既可以作为客户,也可以作为服务器。
- 例如,当邮件服务器 A 向另一个邮件服务器 B 发送邮件时,邮件服务器 A 就作为 SMTP 客户,而 B 是 SMTP 服务器。
- 当邮件服务器 A 从另一个邮件服务器 B 接收邮件时,邮件服务器 A 就作为 SMTP 服务器,而 B 是 SMTP 客户。
发送和接收电子邮件的几个重要步骤
- 发件人调用 PC 中的用户代理撰写和编辑要发送的邮件。
- 发件人的用户代理把邮件用 SMTP 协议发给发送方邮件服务器,
- SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送。
- 发送方邮件服务器的 SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接,然后就把邮件缓存队列中的邮件依次发送出去。
- 运行在接收方邮件服务器中的 SMTP 服务器进 程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。
- 收件人在打算收信时,就运行 PC 机中的用户代理,使用 POP3(或 IMAP)协议读取发送给自己的邮件。
- 请注意,POP3 服务器和 POP3 客户之间的通信是由 POP3 客户发起的
电子邮件的组成
- 电子邮件由信封 (envelope) 和内容 (content) 两部分组成。
- 电子邮件的传输程序根据邮件信封上的信息来传送邮件。用户在从自己的邮箱中读取邮件时才能见到邮件的内容。
- 在邮件的信封上,最重要的就是收件人的地址。
电子邮件地址的格式
-
TCP/IP 体系的电子邮件系统规定电子邮件地址的格式如下:
-
符号“@”读作“at”,表示“在”的意思。
简单邮件传送协议 SMTP
SMTP 所规定的就是在两个相互通信的 SMTP 进程之间应如何交换信息。
由于 SMTP 使用客户服务器方式,因此负责发送邮件的 SMTP 进程就是 SMTP 客户,而负责接收邮件的 SMTP 进程就是 SMTP 服务器。
SMTP 规定了 14 条命令和 21 种应答信息。每条命令用 4 个字母组成,而每一种应答信息一般只有一行信息,由一个 3 位数字的代码开始,后面附上(也可不附上)很简单的文字说明。
SMTP 通信的三个阶段
- 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP 不使用中间的邮件服务器。
- 邮件传送
- 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。
电子邮件的信息格式
- 一个电子邮件分为信封和内容两大部分。
- RFC 822 只规定了邮件内容中的首部 (header) 格式,而对邮件的主体 (body) 部分则让用户自由撰写。
- 用户写好首部后,邮件系统将自动地将信封所需的信息提取出来并写在信封上。所以用户不需要填写电子邮件信封上的信息。
- 邮件内容首部包括一些关键字,后面加上冒号。最重要的关键字是:To 和 Subject。
邮件内容的首部
- “To:”后面填入一个或多个收件人的电子邮件地址。用户只需打开地址簿,点击收件人名字,收件人的电子邮件地址就会自动地填入到合适的位置上。
- “Subject:”是邮件的主题。它反映了邮件的主要内容,便于用户查找邮件。
- 抄送 “Cc:” 表示应给某某人发送一个邮件副本。
- “From” 和 “Date” 表示发信人的电子邮件地址和发信日期。“Reply-To” 是对方回信所用的地址。
邮件读取协议 POP3 和 IMAP
邮局协议 POP 是一个非常简单、但功能有限的邮件读取协议,现在使用的是它的第三个版本 POP3。
POP 也使用客户服务器的工作方式。
在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户所连接的 ISP 的邮件服务器中则运行 POP 服务器程序。
IMAP (Internet Message Access Protocol) 也是按客户服务器方式工作,现在较新的是版本 4,即 IMAP4。
用在自己的 PC 机上就可以操纵 ISP 的邮件服务器的邮箱,就像在本地操纵一样。
因此 IMAP 是一个联机协议。当用户 PC 机上的 IMAP 客户程序打开 IMAP 服务器的邮箱时,用户就可看到邮件的首部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上。
IMAP 的特点
- IMAP 最大的好处就是用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。
- IMAP 还允许收件人只读取邮件中的某一个部分。例如,收到了一个带有视像附件(此文件可能很大)的邮件。为了节省时间,可以先下载邮件的正文部分,待以后有时间再读取或下载这个很长的附件。
- IMAP 的缺点是如果用户没有将邮件复制到自己的 PC 上,则邮件一直是存放在 IMAP 服务器上。因此用户需要经常与 IMAP 服务器建立连接。
必须注意
- 不要将邮件读取协议 POP 或 IMAP 与邮件传送协议 SMTP 弄混。
- 发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用 SMTP 协议。
- 而 POP 协议或 IMAP 协议则是用户从目的邮件服务器上读取邮件所使用的协议。
基于万维网的电子邮件
-
电子邮件从 A 发送到网易邮件服务器是使用 HTTP 协议。
-
两个邮件服务器之间的传送使用 SMTP。
-
邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议。
动态主机配置协议 DHCP
为了将软件协议做成通用的和便于移植,协议软件的编写者把协议软件参数化。这就使得在很多台计算机上使用同一个经过编译的二进制代码成为可能。
一台计算机和另一台计算机的区别,都可通过一些不同的参数来体现。
在软件协议运行之前,必须给每一个参数赋值。
协议配置
在协议软件中给这些参数赋值的动作叫做协议配置。
一个软件协议在使用之前必须是已正确配置的。
具体的配置信息有哪些则取决于协议栈。
需要配置的项目
(1) IP 地址
(2) 子网掩码
(3) 默认路由器的 IP 地址
(4) 域名服务器的 IP 地址
这些信息通常存储在一个配置文件中,计算机在引导过程中可以对这个文件进行存取。
动态主机配置协议 DHCP(Dynamic Host Configuration Protocol)
动态主机配置协议 DHCP 提供了即插即用连网 (plug-and-play networking) 的机制。
这种机制允许一台计算机加入新的网络和获取 IP 地址而不用手工参与。
笔试题
-
4、下面关于DNS说法正确的有( ABCD )。 A. DNS的作用是域名和IP地址的相互映射 B. DNS协议通常运行在UDP协议之上 C. DNS协议端口号为53 D. DNS的默认缓存时间为1小时