计算机网络_期末复习
总结
TCP/IP的体系结构
segment:TCP报文段
第一章概述
计算机网络的定义
资源共享观点的定义:以能够相互共享资源的方式互连起来的自治计算机系统的集合。
网络建立的主要目的是实现计算机资源的共享;
互连的计算机是分布在不同地理位置的多台独立的“自治计算机系统”;
连网计算机在通信过程中必须遵循相同的网络协议。
计算机网络由若干结点和连接这些结点的链路
计算机网络的分类
-
按照网络的作用范围分类
广域网 WAN(Wide Area NetWork)
城域网 MAN(Metroploitan Area NetWork)
局域网 LAN(Local Area NetWork)
个人区域网PAN(Personal Area Network)
-
按照网络的使用者分类
公用网(public network)
专用网(private network)
-
通信介质
有线网
无线网
-
拓扑结构
星型网络,环型网络,树型网络,网状网络
互联网的组成
-
边缘部分(资源子网)
由所有连接在因特网上的主机组成
用户直接使用,用来进行通信和资源共享
-
核心部分(通信子网)
由大量的网络和连接这些网络的路由器组成
为边缘部分提供服务
互联网的边缘部分
端系统(主机):运行应用程序
计算机间的通信:
客户-服务器方式(C/S方式):客户端主机请求,接收服务器的服务
资源主要存放在服务器端,服务器端需要强大的硬件和高级操作系统的支持,客户端一般不需要特殊的硬件和复杂的操作系统
对等方式(P2P):对等连接中的每一个主机既是客户又同时是服务器
互联网核心部分
报文(message):我们把发送的整块数据称为一个报文(message)
基本问题:数据如何通过网络传输?
- 电路交换
- 报文交换
- 分组交换
交换(switching):按照某种方式动态地分配传输线路的资源,就像电话交换机为通话双方接续线路一样,这个过程被称为交换
电路交换
交换设备在通信双方找出一条实际的物理线路的过程
-
特点:数据传输前需要建立一条端到端的通路
-
三个阶段:建立连接-通话-释放连接
-
优缺点:
建立连接的时间长
一旦建立连接就独占线路,线路利用率低(进行数据传输的时候,由于计算机数据具有突发性的特点,一条连接的大部分时间都是空闲的,线路的利用率很低)
无纠错机制
建立连接后,传输延迟小
报文交换
整个报文作为一个整体一起发送
存储转发:交换过程中,交换设备将接受到的报文先存储,待信道空闲时再转发出去,一级一级中转,直到目的地
-
缺点:
报文大小不一,造成缓冲区管理复杂
大报文造成存储转发的延时过长
出错后整个报文全部重发
-
优点
可以多个用户同时在一条线路上传送,可以实现不同速率的通信
分组交换
- 将报文划分成若干个大小相等的分组(Packet)进行存储转发
- 每个分组包含了部分用户信息和一些由必要的控制信息组成的首部(header)
- 控制信息:路由信息(如目的地址,源地址)
中间结点对分组进行存储并传递给下一个结点 ; 路由器主要任务转发分组,即进行分组交换
优点:
高效:动态分配传输带宽,对通信链路是逐段占用
灵活:为每个分组独立地选择最适合地转发路由
迅速:不必先建立连接就能向其他主机发送分组
可靠:完善的网络协议 ; 自适应的路由选择协议使网络有很好的生存性
问题:
分组再各个存储结点需要排队,造成一定的时延
分组必须携带首部(有必不可少的控制信息),在成一定开销
计算机网络性能指标
速率
即数据率或比特率
单位:b/s kb/s Mb/s Gb/s
往往指额定速率或标称速率
带宽(bandwidth)
单位时间内网络的某个信道所能通过的最高数据率
数字信道所能传送的最高数据率
单位:b/s
吞吐量(throughput)
单位时间内通过某个网路(或信道,接口)的实际的数据量.即在发送者和接收者之间传送比特的速率
瞬时:接受时的速率
平均:一段时间内的速率
时延
-
发送时延
发送数据时,数据块从结点进入到传输媒体所需要的时间
也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间
-
传播时延
电磁波在信道中需要传播一定距离而花费的时间
信号传输速率(即发送速率)和信号在信道上的传播速率是完全不同的概念
-
处理时延:结点为存储转发而进行一些必要的处理所花费的时间
-
排队时延:结点缓存队列中分组排队所经历的时延。
排队时延的长短往往取决于网络中当时的通信量
总时延 = 发送时延+传播时延+处理时延+排队时延
对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。
提高链路带宽减小了数据的发送时延。
不同的时延成分所起的作用变化很大,以车队进入收费站为例。
利用率
信道利用率:指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
网络利用率:是全网络的信道利用率的加权平均值
信道利用率并非越高越好
吞吐量和带宽
一条路每秒最多能过100辆车(宽带就相当于100辆/秒)。
而并不是每秒都会有100辆车过,假如第一秒有0辆,第二秒有10辆...,(但是最多不能超过100辆)。
所以有第1秒0辆/秒,第2秒10辆/秒,第3秒30辆/秒,这不能说带宽多少吧,于是就用吞吐量表示具体时间通过的量有多少(也有可能等于带宽的量)。
由此可知带宽是说的是最大值速率,吞吐量说的是某时刻速率。但吞吐量不能超过最大速率
计算机网络基础结构发展的三个阶段
第一阶段:ARPANET向互联网发展;(从单个网络向互联网)
第二阶段:三级结构的因特网(主干网,地区网,校园网)
第三阶段:多层次ISP(Internet Service Provider)结构的因特网
计算机网路体系结构
分层
如何组织网路体系结构?
“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
分层的优点:
- 各层之间相互独立 某一层不需要知道它的下一层时如何实现的,而只需要知道该层通过层间接口提供的服务.由于每一层只实现一种相对独立的功能,因而可将难处理的复杂问题分解成若干较容易处理的小问题
- 灵活性好 任何一层发生变化,只要层间接口关系保持不变,则上下各层不受影响
- 各层都可以采用最适合的技术实现
- 易于实现和维护
- 有利于促进标准化
层次结构方法要解决的问题
- 网络应该具有哪些层次?每一层的功能是什么?(分层与功能)
- 各层之间的关系是怎样的?它们如何进行交互?(服务与接口)
- 通信双方的数据传输要遵循哪些规则?(协议)
计算机网络体系结构
计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合
体系结构 : 就是这个计算机网络及其部件所应完成的功能的精确定义。
实现(implementation) : 是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。
体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
-
实体:任何可发送或接受信息的硬件或软件进程
-
协议:控制两个对等实体进行通信的规则的集合
协议三要素:
- 语义:需要发出何种控制信息,完成何种动作以及做出何种响应,即“讲什么”
- 语法:数据与控制信息的结构或格式,即“怎么讲”
- 同步:事件实现顺序的详细说明。
-
对等层 :在网络体系结构中 ,通信双方实现同样功能的层
-
协议数据单元 :对等层实体进行信息交换的数据单位 .
-
服务访问点:同一系统相邻两层的实体进行交互的地方,称为服务访问点SAP(Service Access Point)
协议与服务的区别
- 关系
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,而要实现本层协议,还需要使用下面一层提供服务。 - 协议和服务的概念的区分
1、协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服务用户是透明的。
2、协议是 “水平的 ”,即协议是控制两个对等实体进行通信的规则。但服务是 “垂直的 ”,即服务是由下层通过层间接口向上层提供的。上层使用所提供的服务必须与下层交换一些命令,这些命令在 OSI 中称为服务原语
网络体系结构的两种标准
- 法律上的国际标准 OSI/RM(开放系统互联参考模型) 并没有得到市场的认可。
- Open Systems Interconnection Reference Model
- 而非国际标准的 TCP/IP 现在获得了最广泛的应用。
TCP/IP 常被称为事实上的国际标准。
OSI/RM模型
七层从下至上:物理层,数据链路层,网络层,运输层,会话层,表示层,应用层
评价
层次数量与内容选择不是很好,会话层很少用到,表示层几乎是空的,数据链路层与网络层有很多的子层插入;
寻址、流控与差错控制在每一层里都重复出现,降低系统效率;
数据安全性、加密与网络管理在参考模型的设计初期被忽略了;
参考模型的设计更多是被通信的思想所支配,不适合于计算机与软件的工作方式;
严格按照层次模型编程的软件效率很低
各层功能
物理层:在物理介质上透明地传输比特流
数据链路层:为穿越物理链路的信息提供可靠的传输手段,为数据块发送提供必要的同步,差错控制和流量控制
网络层:主要任务是如何将分组从源传送到目的地
运输层:提供可靠的、透明的端到端数据传输,并提供端点间的错误校正和流量控制
会话层:为应用程序间的通信提供对话控制机制
表示层:定义了两个应用之间进行交换的数据格式
应用层:提供给用户访问OSI环境的手段
TCP/IP协议
特点
开放的协议标准;
独立于特定的计算机硬件与操作系统;
独立于特定的网络硬件,可以运行在局域网、广域网,更适用于互连网中;
统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有唯一的地址;
标准化的高层协议,可以提供多种可靠的用户服务
分层
应用层
运输层
网际层
网络接口层
TCP/IP 四层协议的表示方法举例
评价
在服务、接口与协议的区别上不很清楚,一个好的软件工程应该将功能与实现方法区分开,参考模型不适合于其它非TCP/IP协议族;
TCP/IP参考模型的网络接口层本身并不是实际的一层;
物理层与数据链路层的划分是必要和合理的,而TCP/IP参考模型却没有做到这点
五层协议
应用层 application layer
运输层 transport layer
网络层 network layer
数据链路层 data link layer
物理层 physical layer
各层功能:
- 应用层:通过应用进程之间的交互完成特定的网络应用
- 运输层:向两台主机中进程之间的通信提供通用的数据传输服务
- 提供可靠的、透明的端到端数据传输,并提供端点间的错误校正和流量控制。
- 网络层:负责为分组交换网上的不同主机提供通信服务
- 数据链路层:为穿越物理链路的信息提供可靠的传输手段,为数据块发送提供必要的同步,差错控制和流量控制
- 物理层 :在物理介质上透明地传输比特流
我估计纯粹理论的东西你都有,谈谈感受吧,这5层就是人为的从逻辑上分出来的五个层面,也就是说同样是传来了一堆同样的数据,站在不同的层面关心和实现不同的事情,如果你站在物理层,你就只需要关心把每个比特流传送到对方就行了;
如果你站在数据链路层,你会想办法把这些比特流组合成块,加上一些手段保证能正确传输;
如果你站在网络层,你就能看到这些数据是由一个个数据包组成的,这些数据包都通过网络地址标示着来自哪里和要发往哪里;
如果你站在传输层,你就能透过庞大的网络直接看到你对放的有服务连接的计算机,是一种端到端的连接了
发送数据的顺序
第二章物理层
物理层基本概念
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
物理层的作用是要尽可能地屏蔽掉不同传输媒体和通信手段的差异。
用于物理层的协议也常称为物理层规程 (procedure)。
物理层接口
主要任务:确定与传输媒体地接口有关的一些特性
机械特性:指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。
电气特性:指明在接口电缆的各条线上出现的电压的范围。
功能特性:指明某条线上出现的某一电平的电压表示何种意义。
过程特性:指明对于不同功能的各种可能事件的出现顺序。
全双工,半双工,单工
单工:只能有一个方向的通信,而没有反方向的交互
半双工:通信双方都可以发送信息,但不能双方同时发送
双工:通信双方可同时发送和接受消息
数据通信的基础知识
数据通信系统模型
一个数据通信系统包括三大部分:源系统(或发送端、发送方)、传输系统(或传输网络)和目的系统(或接收端、接收方)。
源系统包括两部分:源点,发送器
目的系统:接收器,终点
通信的目的:传送信息(message)
常用术语
数据 (data) —— 运送消息的实体。
信号 (signal) —— 数据的电气的或电磁的表现。
模拟信号 (analogous signal) —— 代表消息的参数的取值是连续的。
数字信号 (digital signal) —— 代表消息的参数的取值是离散的。
信道的基本概念
信道 —— 一般用来表示向某一个方向传送信息的媒体。
单向通信(单工通信)——只能有一个方向的通信而没有反方向的交互。
双向交替通信(半双工通信)——通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。
双向同时通信(全双工通信)——通信的双方可以同时发送和接收信息。
奈式准则(无噪声信道)
-
奈式准则:理想低通信道的最高码元传输速率=2W Baud
W:理想低通信道的带宽,单位Hz
每赫带宽的理想低通信道的最高码元传输速率是每秒 2 个码元。
Baud 是波特,是码元传输速率的单位,1 波特为每秒传送 1 个码元。 -
波特和比特
波特是码元传输的速率单位(每秒传多少个码元)。码元传输速率也称为调制速率、波形速率或符号速率。
比特是信息量的单位(bps,b/s) 。 -
波特率和比特率
$$
1 \text { Baud }=\left(\log _{2} M\right) bps
$$
码元(code) —— 在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形。
在使用二进制编码时,只有两种不同的码元,一种代表0状态而另一种代表1状态
M表示离散性信号或电平的个数
一个信号往往可以携带多个二进制位,所以在固定的信息传输速率下,比特率往往大于波特率。换句话说,一个码元中可以传送多个比特(bit)。
个人理解:码元是传输时,纵轴可以表示的离散数值个数,比如8,就代表从底层到高层,有8种高度,转化为比特,因为比特是01二进制,因此对2求对数,这是表示3比特
香农公式(有噪声信道)
香农(Shannon)用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率。
信道的极限信息传输速率 C 可表达为
$$
C=W \log _{2}(1+S / N) \quad \mathrm{b} / \mathrm{s}
$$
W为信道带宽 Hz
S为信道内所传信号的平均功率
N为信道内部的高斯噪声功率
信噪比(dB)=10 $\log _{10}(\mathrm{S} / \mathrm{N})$(dB)
- 香农公式表明:
信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错的传输。
若信道带宽 W 或信噪比 S/N 没有上限(当然实际信道不可能是这样的),则信道的极限信息传输速率 C 也就没有上限。
实际信道上能够达到的信息传输速率要比香农的极限传输速率低不少。
-
调制解调
从以上所讲的不难看出,对于频带宽度己确定的信道,如果信噪比也不能再提高了,并且码元传输速率也达到了上限值,那么还有什么办法提高信息的传输速率呢?这就是用编码的方法让每一个码元携带更多比特的信息量。我们可以用个简单的例子来说明这个问题。
-
;例题
传输媒体
传输媒体分类
传输介质可以分为有线和无线传输介质
- 有线介质 : 电磁波沿着物理通路呈导向性传播
- 无线介质 : 可以传播电磁波,但并不为它们导向
有线介质有:双绞线、同轴电缆、光纤等
无线介质一般指自由空间(大气、真空)
双绞线
-
非屏蔽双绞线 (UTP) Unshielded Twisted Pair
优点:1、容易安装且比其它类型的网络介质便宜;2、尺寸较小,节省空间;
缺点:1、易受电磁信号干扰;2、传输距离短 -
屏蔽双绞线 (STP) Shielded Twisted Pair
优点:屏蔽双绞线能对所有类型的外界干扰更有效地进行阻止
缺点:在安装费用和难度方面,它比非屏蔽双绞线要昂贵和更困难
同轴电缆
- 粗缆
连接距离长,可靠性高但安装难度大,造价高 - 细缆
安装较简单,造价也低,但需切断电缆安装网络连接头BNC,当接头多时容易产生接触不良的现象
光纤
-
优点:
抗电磁干扰能力强
低损耗
高传输速率 -
缺点:
费用高
不易安装和维护
质地脆易断裂,机械性能差 -
分类:
-
多模光纤
不同的光线以不同的反射角传播,可以认为每一束光线有一个不同的模式
存在色散现象,适于中短距离中小容量的通信
-
单模光纤
光纤的直径被减小到一个光波波长大小,光在其中没有反射,而是沿直线传播
传输距离远;衰减小;传输速率高;但价格昂贵;适于大容量远距离通信
-
信道复用技术
由于一条传输线路的能力远远超过传输一个用户信号所需的能力,为了提高线路利用率,经常让多个信号同时共用一条物理线路。
在同一介质上,同时传输多个有限带宽信号的方法,被称为多路复用。
频分复用 FDM(Frequency Division Multiplexing)
“带宽”(bandwidth)本来是指信号具有的频带宽度,单位是赫(或千赫、兆赫、吉赫等)
载频的定义:载波或者载频(载波频率)是一个物理概念,其实就是一个特定频率的无线电波,单位Hz。在无线通信技术上我们使用载波传递信息,将数字信号调制到一个高频载波上然后再在空中发射和接收。
调制的“对象”是载波信号的幅度、频率,相位,或者这三者的混合。
-
实现:
频带被划分为若干个逻辑信道(频带,即带宽,指信号所占据的频带宽度)
每个信号被调制到不同的载波频率
载波频率之间有间隙,保证信号不会重叠 -
特点:所有用户在同样的时间占用不同的带宽资源
时分复用 TDM(Time Division Multiplexing)
-
实现
时分复用则是将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。
每一个用户所占用的时隙是周期性地出现(其周期就是 TDM 帧的长度)。
TDM 信号也称为等时(isochronous)信号。 -
特点
时分复用的所有用户是在不同的时间占用同样的频带宽度。
时分复用可能会造成线路资源的浪费
时分复用和频分多路复用的比较
FDM系统效率较高,充分利用了传输媒介的带宽,实现也相对容易,但FDM系统所需载波量大,所需设备随着输入信号的增多而增多
TDM直接提供数字传输信道,非常适合于数据传输和其他数字信号的传输;抗干扰能力强
第三章 数据链路层
链路层基本概念
数据链路层概述
节点:主机和路由器
链路:沿着通信路径连接相邻节点的通信信道。
数据链路: 除了物理链路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
第2层数据封装单元:帧
数据链路层 负责从一个节点到一个相邻节点的链路上传输数据帧
数据链路控制要解决地问题:如何在有差错的线路上,进行无差错传输
两种链路类型
点对点信道:使用一对一的点对点通信方式
广播信道:使用一对多的广播通信方式
-
点到点
PPP 拨号访问
在以太网交换机与主机间的点到点链路 -
广播
传统以太网
802.11 无线局域网
卫星通信
数据链路层主要功能
- 链路管理
- 成帧
- 流量控制
- 差错控制
- 透明传输
数据链路层三个基本问题
-
封装成帧
封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限
首部和尾部的一个重要作用就是进行帧定界
-
透明传输
设法使数据中可能出现的控制字符"SOH","EOT"再接收端不被解释成为控制字符
使用字节填充的方法,即再控制字符前加转义字符
-
差错检测
图解:
封装成帧
使用点对点信道的数据链路层
透明传输
发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。
字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个
差错检测(CRC)
在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。
误码率与信噪比有很大的关系。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施
仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept)。
“无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。
也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。
要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。
-
纠错码:
每个传输的分组带上足够的冗余信息;
接收端能发现并自动纠正传输差错。 -
检错码:
分组仅包含足以使接收端发现差错的冗余信息;
接收端能发现出错,但不能确定哪一比特是错的,并且自己不能纠正传输差错。 -
循环冗余校验码CRC
添加r个0是为了给添加余数留位置
这样取r个0也可以理解了,就像你除二进制,余数的位数不可能超过除数
模2除法,位数相同就取1否则0,运算时
PPP协议
应用场景:用户要连接到ISP才能接入互联网,PPP协议是用户和ISP通信时使用的数据链路层协议
PPP协议三个组成部分
- 一个将IP数据报封装到串行链路的方法
- 一个用来建立,配置和测试数据链路的链路控制协议LCP(Link Control Protocol)
- 一套网络控制协议NCP(Network Control Protocol)
PPP帧格式
标志字段 F 仍为 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。
地址字段 A 只置为 0xFF。地址字段实际上并不起作用。
控制字段 C 通常置为 0x03。
PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节
透明传输问题
-
字节填充
例题3-09 只需记住前两条
- 将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。
- 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。
- 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
-
零比特填充
每出现5个1添加一个0
使用广播信道的数据链路层
共享信道的方法
- 静态划分信道 如前面提到的频分复用,时分复用
- 动态媒体接入 信道并非在用户通信时固定分配给用户
- 随机接入 所有用户可以随机地发送信息,如果恰巧有两个或更多用户在同一时刻发信息,共享媒体发生碰撞(冲突),使得用户发送都失败
- 受控接入 用户不能随机发送信息,必须接受一定控制
局域网
-
局域网特点:
网络为一个单位所拥有,且地理范围和站点数目均有限。
-
主要优点:
具有广播功能,从一个站点可很方便地访问全网。
局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
提高了系统的可靠性、可用性和生存性
拓扑
-
LAN典型拓扑:(只有这三种,其他没有使用)
总线型: 所有结点都直接连接到共享信道
星型 : 所有结点都连接到中央结点
环型 : 结点通过点到点链路与相邻结点连接 -
以太网拓扑
以太网:采用星形拓扑,中心增加一种可靠性非常高的设备集线器
IEEE802参考模型
-
LAN数据链路层的两个子层:
为了使数据链路层能更好地适应多种局域网标准,802 委员会就将局域网的数据链路层拆成两个子层:
逻辑链路控制 LLC (Logical Link Control)子层
媒体接入控制 MAC (Medium Access Control)子层。
与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关,不管采用何种传输媒体和MAC子层的局域网对 LLC 子层来说都是透明的
- 现状:
- 由于 TCP/IP 体系经常使用的局域网是 DIX Ethernet V2 而不是 802.3 标准中的几种局域网,因此现在 802 委员会制定的逻辑链路控制子层 LLC(即 802.2 标准)的作用已经不大了。
- 很多厂商生产的适配器上就仅装有 MAC 协议而没有 LLC 协议
以太网(Ethernet)
以太网基础
以太网是一种基带总线局域网
-
两种标准:
Ethernet V2
IEEE的802.3标准(设计一开始适应多种局域网标准,但发展到最后基本只剩以太网,以至于以太网成了局域网的代名词)
802.3布线介质标准
IEEE802.3和Ethernet帧格式
两点区别:
- IEEE802.3在12字节的地址后面是2字节的长度,而以太网数据帧的是2字节的类型值——可以通过这个地方区分是IEEE802.3还是以太网数据帧(因为IEEE802.3的长度值和以太网的类型值没有相同的)
- IEEE802.3没有类型字段是因为它有LLC层负责识别网络层协议
- 而以太网帧没有LLC层,直接面对网路层
- 当"长度/类型"字段值小于0x0600(1536)时,数据字段必须装入上面的逻辑链路控制LLC子层的LLC帧
介质访问(媒体接入)控制方法
-
CSMA:载波监听多路访问
发送前监听(先听后说)。每个站点在发送数据之前要监听信道上是否有数据在传送。若有,则此站不能发送,需等待一段时间后重试
-
CSMA/CD(Carrier Sense Multiple Access with Collision Detection ):带冲突检测的载波监听多路访问
工作原理:
发送数据之间监听信道,空闲就发送
忙则等待,直到空闲
发送数据时边发送边监听信道,若一直未检测到碰撞,就顺利把这个帧成功发送完毕
一旦发生冲突,则停止发送
按二级制指数算法退避,冲突数次后放弃发送
发前先侦听,空闲即发送,
边发边检测,冲突时退避
-
二进制指数退避算法
当冲突发生后,时间被分成离散的时槽。时槽长度等于在传输介质上来回传输的时间。802.3标准中规定时槽长度为512比特时间即51.2$\mu s$。第一次冲突产生后,每个站点等待0或1个时槽后尝试重新发送;第二次冲突时从0、1、2、3中随机挑选一个作为等待的时槽数;第三次冲突将从$0-2^{3}-1$中挑选一个等待的时槽数。当冲突次数大于10次后,随机等待的最大时槽数固定为1023。在16次冲突后,站点放弃传输并报告一个错误
-
CSMA/CD协议的以太网不太可能进行全双工通信而只能进行双向交替通信(半双工通信)
-
CSMA/CD和CSMA和区别
CSMA/CD中CD是碰撞检测的意思
边发送边检测是否发生冲突,进而立即停止发送,免得进行无效的发送
冲突窗口
- 注意
- r*争用期时间(这里固定为传输512bit花费的时间)
争用期和最短帧长
- 争用期
- 以太网的端到端往返时间
- 最短帧长是争用期时间发送的长度
1、假定1km长的CSMA/CD 网络的数据率为1G/s。设信号在网络上的传播速度为200 000km/s,求能够使用此协议的最短帧长?
答:对于1km电缆,单程传播时间为1/200000=5为微秒,来回路程传播时间为10微秒,为了能够按照CSMA/CD工作,最小帧的发射时间不能小于10微秒,以Gb/s速率工作,10微秒可以发送的比特数等于10*10-6/1*10-9=10000,因此,最短帧是10000位或1250字节长
MAC地址
MAC地址(硬件地址或物理地址):
IEEE802标准为每个DTE规定了一个48位的全局地址,它是站点的全球唯一的标识符,与其物理位置无关。
MAC地址为6Byte(48位)。
MAC地址的前3个字节(高24位)由IEEE统一分配给厂商,低24位由厂商分配给每一块网卡。
网卡的MAC地址可以认为就是该网卡所在站点的MAC地址。
拓展以太网
- 在物理层扩展以太网
光纤
中继器、集线器 - 在数据链路层扩展以太网
网桥
交换机
集线器:传统10Mbit/s 10个用户 每个1Mbit/s
交换机:每个用户独占 依旧10Mbit/s
局域网网络设备工作原理
中继器和集线器
- 集线器是物理层网络设备,也称多端口中继器
- 对信号进行再生并且把它放大到所有的端口
- 中继器和集线器都是第1层的设备,因此它们不会对网络流量进行过滤,中继器会把一个端口收到的信号转发到所有的端口
- 扩展冲突域的范围
交换机
数据链路层设备
也称多端口网桥
-
功能
网络分段、流量过滤
分割冲突域,不能分割广播域
相互通信的主机都是独占传输媒体,无碰撞地传输数据
三种功能:
地址学习(自学习):
在转发过程中采用自学习(也叫逆向学习)算法收集MAC地址。网桥通过分析帧的源MAC地址得到MAC地址与端口的对应关系,并写入地址/端口对应表;
转发/过滤
避免环路
- 工作原理:和网桥一样
- 网桥工作在混杂(promiscuous)方式,接收所有的帧;
- 网桥接收到一帧后,通过查询地址/端口对应表来确定是丢弃还是转发;
- 网桥刚启动时,地址/端口对应表为空,采用洪泛(flooding)方法转发帧;
- 在转发过程中采用自学习(也叫逆向学习)算法收集MAC地址。网桥通过分析帧的源MAC地址得到MAC地址与端口的对应关系,并写入地址/端口对应表;
- 网桥软件对地址/端口对应表进行不断的更新,并定时检查,删除在一段时间内没有更新的地址/端口项;
- 帧的路由过程
目的LAN与源LAN相同,则丢弃帧;
目的LAN与源LAN不同,则转发帧;
目的LAN未知,则洪泛帧。
交换机自学习
冲突和冲突域
- 在同一个网络上,当两个比特同时在进行传输时,就可能会发生冲突。
- 一个网络上若有过多的网络流量则会导致严重的问题
- 在网络内部,数据分组产生和发生冲突的这样一个区域被称为冲突域
- 所有共享介质环境都是冲突域,一条线路可通过接插电缆、收发器、中继器和集线器与另一条线路进行连接,所有这些第1层互连设备都是冲突域的一部分
- 当冲突发生的时候,卷入到冲突的数据分组会受到逐位的破坏
中继器、集线器和冲突域
中继器会对比特进行再生和重定时,但是中继器不能对通过它们的业务流量进行过滤。中继器会把一个端口收到的信号转发到所有的端口
使用中继器会扩展冲突域的范围,在中继器两端的网络是一个大的冲突域
集线器也称多端口中继器,进入集线器一个端口的任何信号都会再生、重定时而且被发送到其余的所有端口
中继器和集线器都是第1层的设备,因此它们不会对网络流量进行过滤。
冲突域和广播域的区别
- 冲突域:
- 物理层
- 比特同时传输就会发生冲突
- 以太网中,冲突域是由hub组织的。一个hub就是一个冲突域。交换机的每个端口都是一个冲突域。
- 一个站点向另一个站点发出信号。除目的站点外,有多少站点能收到这个信号。这些站点就构成一个冲突域。
- 交换机存储的是MAC地址-端口号
- 广播域:
- 链路层
- 广播域就是说如果站点发出一个广播信号后能接收到这个信号的范围。通常来说一个局域网就是一个广播域。
- 维护路由表
网桥
定义:网桥(bridge)是工作在数据链路层的一种网络互连设备,它在互连的LAN之间实现帧的存储和转发。
为什么使用网桥?
学校和企业的各个部门分别拥有自己独立管理的LAN,为了进行交互,需要使用网桥来实现互连;
一个企业分布在相隔很远的不同建筑物内,在每个建筑物内组建单独的LAN,并使用网桥将这些LAN连接起来,是比较经济的方案;
将一个负载很重的大LAN分隔成使用网桥互连的几个LAN以减轻负担;
LAN上的两台机器其距离超过2500米,必须使用网桥将这个 LAN 分隔以保证网络的正常工作;
网桥可以隔离负载,防止出故障的站点损害全网;
网桥可以有助于安全保密。
以太网分段
- 共享信道LAN的缺点:
多个站点同时发送会造成冲突;
网络中站点越多,冲突现象越严重;
每个站点的平均拥有带宽为W/n; - 解决的方法:
网段分割,在各段之间分离流量
通过创建更小的冲突域,使每个用户可以获取更多的带宽
虚拟局域网
- 利用以太网交换机可以很方便地实现虚拟局域网 VLAN (Virtual LAN)。
- 虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符(VLAN标记),指明发送这个帧的计算机是属于哪一个 VLAN。
- 虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
虚拟局域网限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息(即“广播风暴”)而引起性能恶化。
第四章网络层
网络层提供的两种服务
网络如何处理分组?
两种方式:数据报(datagram)和虚电路(virtual circuit)
无连接的网络服务 数据报
面向连接的网络服务 虚电路
数据报
- 每个分组独立选择路由进行转发
- 分组可以不按序到达接收方,等到全部分组到达接收方后再重新对分组排序
- 每个分组均带有全称网络地址(源、目的),可走不同的路径。
- 网络尽最大努力地将分组交付给目的主机,但网络对源主机没有任何承诺。
网络不保证所传送的分组不丢失
也不保证按源主机发送分组的先后顺序
以及在时限内必须将分组交付给目的主机
数据报提供的服务是不可靠的
虚电路
- 发送任何分组之前,首先建立一条预定的路由
- 呼叫请求分组和呼叫接受分组建立连接(逻辑连接)
- 在逻辑连接期间该路由是固定的,就好象电路交换中的一条电路,故称为虚电路
- 每个分组中除数据外还包含虚电路号而不是目的地址
- 使用同一虚电路的分组只需要做一次路由选择
- 清除请求分组可以终止连接
数据报服务与虚电路的对比
网际协议IP
Internet Protocol
TCP/IP协议分层
IP概要
地位:
- IP协议是TCP/IP协议的核心
- IP以包(数据报)的形式传输数据,实现不可靠的无连接的数据服务
用处:提供不可靠,无连接的数据报传送服务
不可靠(unreliable):它不能保证IP数据报能成功地到达目的地。IP仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区, IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(如TCP)。
无连接(connectionless):IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明, IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A,然后是B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。
IP寻址
我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是惟一的32 bit 的标识符
IP编址
分类的IP地址
每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)
指派范围
IP地址的重要特点
- IP地址是一种分等级的地址结构
第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理
第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。
- 实际上IP地址是标志一个主机和一条链路的接口
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机 (multihomed host)。
由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。
- 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id
- 所有分配到网络号 net-id 的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的
子网划分
子网掩码:说明IP地址中的主机地址如何被划分成子网地址和本地主机地址两部分。掩码是一个32 bit的值,其中值为1的比特留给网络号和子网号,为0的比特留给主机号
将目标IP地址与子网掩码相“与”获得目标网络/子网的地址
子网地址&主机地址范围&广播地址&子网位数
构造超网(无分类编址CIDR)
Classless Inter-Domain Routing
特点:
-
CIDR完全放弃了固定的IP地址类型,使用网络前缀来代替网络类别,这个前缀可以是任何长度
例如:192.125.61.8/20 标识了一个网络地址长度为20位的CIDR地址,使用CIDR的路由器会查看斜杠后面的数字以确定网络号 -
路由聚合
- CIDR把网络前缀都相同的连续的IP地址组成一个CIDR地址块
- 一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。
极大地减少了路由表空间,提高了可扩展性。
-
构造超网
超网就是使用C类地址空间的连续区域来模拟一个单独的、比较大的地址空间。
设计超网的主要目的是为了提供一种更灵活的替换方式来减轻B类地址空间的迅速枯竭而带来的压力。
超网也能够减少路由选择表的规模。
IP地址与硬件地址
- 从层次的角度看,
硬件地址(或物理地址)是数据链路层和物理层使用的地址。
IP 地址是网络层和以上各层使用的地址,是一种逻辑地址(称 IP 地址是逻辑地址是因为 IP 地址是用软件实现的)。 - IP地址四个字节32位,MAC地址6个字节48位
- MAC地址与位置无关,IP地址会随位置变化
- IP地址放在IP数据报首部,而MAC地址在MAC帧首部
- IP地址主要用于网络寻址,MAC地址主要用于识别站点
IP数据报流动
MAC帧流动
IP数据报格式
分为首部和数据部分
版本——占 4 bit,指IP协议的版本,目前的 IP 协议版本号为 4 (即 IPv4)
首部长度——占 4 bit,可表示的最大数值是 15 个单位(一个单位为 4 字节)
因此 IP 的首部长度的最大值是60字节
区分服务——占 8 位,用来获得更好的服务在旧标准中叫做服务类型,但实际上一直未被使用过。1998 年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段
总长度——占 16 bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。
标识(identification) 占 16 bit,它是一个计数器,用来产生数据报的标识
标志(flag) 占 3 bit,MF=1表示后面还有分片,DF=1表示不能分片
片偏移(13 bit)指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位
生存时间(8 bit)记为 TTL (Time To Live)数据报在网络中的寿命
协议(8 bit)字段指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理进程
首部检验和(16 bit)字段只检验数据报的首部不包括数据部分。这里不采用 CRC 检验码而采用简单的计算方法。
源地址和目的地址都各占 4 字节
IP数据报分片
-
为什么要分片
IP层下面的每一种数据链路层协议都规定了数据帧的数据字段的最大长度,称为最大传送单元MTU(Maximum Transfer Unit),当数据报总长度超过MTU时,就需要分片
-
分片注意
- 每个分片的长度一定是8的整数倍
- 片偏移的计算只是用数据字段,不使用首部长度(固定20字节),但考虑最大长度时要注意
-
举例
标识(identification) 占 16 bit,它是一个计数器,用来产生数据报的标识
标志(flag) 占 3 bit,MF=1表示后面还有分片,DF=1表示不能分片
片偏移(13 bit)指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位
TTL
Time to live
- 占8位
- 目的:防止无法交付地数据报无限制地在互联网中存在
- 单位:跳数,路由器每次转发数据报之前将TTL减一
协议
占8位
指出该数据报携带的数据使用何种协议,以便使目的主机的IP层(网络层)知道应将数据部分上交给哪个协议处理
ICMP
ICMP:网际控制报文协议(Internet Control Message Protocol)
用处:
- 为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP (Internet Control Message Protocol)。
- ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP 是互联网的标准协议。但 ICMP 不是高层协议(看起来好像是高层协议,因为 ICMP 报文是装在 IP 数据报中,作为其中的数据部分),而是 IP 层的协议。
ICMP报文有两种,ICMP差错报告报文和ICMP询问报文
4种差错报告
终点不可达
时间超过
参数问题
改变路由(重定向)(Redirect)
ping
ping(Packet InertNet Groper)
目的:测试两台主机的连通性
步骤:
使用ICMP的回送请求报文,如果服务器正常工作,就会响应回送回答报文,从中可以得到分组丢失情况
tracert
目的:跟踪一个分组从源点到终点的路径
步骤:
- 从源主机向目的主机发送一连串IP数据包,数据报封装无法交付的UDP报文
- 第一个数据报TTL设为1,则P1到达第一个路由器时,TTL减为0,丢弃,并向源主机发送ICMP时间超过差错报文
- 下一次比上一次TTL加一,一直到数据报传送到目的主机时TTL=1,这时因为无法交付,回传给源主机ICMP终点不可达差错报文
地址解析协议ARP
ARP:地址解析协议(Address Resolution Protocol)
已经知道了一个机器(主机或路由器)的IP地址,如何找出其相应的硬件地址?
地址解析协议 ARP 就是用来解决这样的问题的。
ARP要点
不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
每一个主机都设有一个 ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
-
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
-
如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
-
如没有, ARP 进程在本局域网上广播发送一个 ARP 请求分组。收到ARP 响应分组后,将得到的 IP 地址到硬件地址的映射写入 ARP 高速缓存。
-
ARP请求分组:包含发送方硬件地址 / 发送方 IP 地址 / 目标方硬件地址(未知时填 0) / 目标方 IP 地址。
-
本地广播 ARP 请求(路由器不转发ARP请求)。
-
ARP 响应分组:包含发送方硬件地址 / 发送方 IP地址 / 目标方硬件地址 / 目标方 IP 地址。
-
ARP 分组封装在物理网络的帧中传输。
注意
ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
从 IP 地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。
只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。
路由器
主要任务:进行分组转发
路由器是工作在第三层(网络层)上的网络设备,它将网段或整个网络连接起来
路由器基于第三层地址对数据包进行转发
路由器具有一定的智能,能够决定在网络上转发数据包的最佳路径
功能
- 路由器能够把多个段分成各自的冲突域和广播域
- 路由器基于第三层的包头信息来转发数据包
- 路由器可根据它们的配置来执行桥接和路由选择的功能
- 其它功能:
流量过滤
路由表维护
数据包格式转换
划分组网的情况下转发
(1)从分组的首部提取目的IP地址D
(2)先用与该路由器直接相连的网络的子网掩码与D进行与运算,看结果是否与相应的网络
地址相匹配。若匹配,则进行直接交付。
否则就是间接交付,马上执行(3)
(3)若路由表中有一条到目的主机D的特定路由,则将分组转发给其指明的下一跳路由器。
否则执行(4)
(4)对路由表中每一行的子网掩码和D进行与运算,若结果与该行的目的网络地址匹配,则将
分组传给该行指明的下一跳路由器。
否则执行(5)
(5)若路由表中有一个默认路由,则将分组传给路由表中指明的默认路由器。
否则执行(6)
(6)报告转发分组出错。
广播域
当一个网络设备想访问另外一个不知道具体位置的网络设备的时候,它就会对所有的网络设备进行广播,所有能接收到这些的广播的设备所组成的区域称为广播域
如果网络中发送的广播过多的话,就会产生广播风暴,会造成网络超时及流量的速度变慢,从而大大降低了网络的工作效率
由于网桥工作在第2层,因此它会转发广播帧,网桥的两端是一个大的广播域
隔离广播域的方法是使用第三层设备,如路由器
动态路由和静态路由
静态路由的信息是手工管理的,网络管理员将其输入到路由器的配置中。当网络拓扑结构发生改变时,网络管理员必须手工更新静态路由信息
动态路由采取了不同的工作方式,网络管理员通过配置命令启动了动态路由之后,路由进程就能自动地使用从网络上收到的信息来更新自己的路由信息
路由选择算法_距离向量路由算法
属于动态路由算法
基本思想
每个路由器维护一张表,表中给出了到每个目的地的已知最佳距离和线路,并通过与相邻路由器交换距离信息来更新表;
以子网中其它路由器为表的索引,表项包括两部分:到达目的结点的最佳输出线路,和到达目的结点所需时间延迟或距离;
每隔一段时间,路由器向所有邻居结点发送它到每个目的结点的距离表,同时它也接收每个邻居结点发来的距离表;
邻居结点X发来的表中,X到路由器i的距离为Xi,本路由器到X的距离为m,则路由器经过X到i的距离为Xi + m。根据不同邻居发来的信息,计算Xi + m,并取最小值,更新本路由器的路由表
自治系统
-
定义
自治系统又称为路由域、自治域,它是若干个可以交换内部路由信息的路由器的集合;多个自治系统可以通过边界路由器互联起来。
-
目的:
互联网太大,如果所有路由器都知道所有网路该怎么到达,代价太大
许多单位不希望外界了解子集单位网络的布局细节和路由选择协议,同时希望能连接到互联网
将互联网划分成许多较小的自治系统
路由选择协议分类
-
内部网关协议ICP(Interior Gateway Protocol)
在一个自治系统内部使用的选择协议,而与其他自治系统使用的选择协议无关
-
外部网关协议(External Gateway Protocol) 当前使用BGP()
若源主机和目的主机处在不同的自治系统,当数据报传到一个自治系统的边界就需要使用一种协议将路由选择信息传递到另一个自治系统,这样的协议就是外部网关协议
RIP和OSPF的主要特点
都是内部网关协议
- 距离向量路由协议 RIP(RoutingInformationProtocol)
- 和相邻的路由器交换信息
- 交换本路由器所有信息,即自己现在的路由表(到所有网路的距离和下一跳路由器)
- 按固定时间间隔交换信息
- 最优通路依据跳数
- 链路状态路由协议 OSPF(OpenShortestPathFirst)开放最短路径优先
- 向本自治系统所有路由器发送信息,使用洪泛法
- 发送信息相邻所有路由器的链路状态 , “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的”度量“。对于RIP协议,发送的信息是:“到所有网络的距离和下一跳路由器”。
- 当链路状态发生变化时,才交换信息
- 最优通路依据代价
- 所有路由器都保存一个全网的拓扑结构图
IPV6
版本——4bit。指明了协议的版本,对IPV6该字段总是6
通信量类——8bit。用来区分不同的IPV6数据报的类别或优先级
流标号(flow label)—— 20 bit。“流”是互联网络上从特定源点到特定终点的一系列数据报, “流”所经过的路径上的路由器都保证指明的服务质量。 所有属于同一个流的数据报都具有同样的流标号
有效载荷长度——16bit。它指明IPV6数据报除基本首部以外的字节数,其最大值为64kb
下一个首部——8bit。相当于IPV4的协议字段或可选字段
跳数限制——8bit。源站在数据报发出时即设定条数限制。每经过路由器的转发就减1,为0时就要将该数据报丢弃。
IPV6地址
-
128位,16个字节
-
冒号16进制记法:
68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
-
零压缩
- 零压缩(zero compression),即一连串连续的零可以为一对冒号所取代。
- FF05:0:0:0:0:0:0:B3 可以写成:FF05::B3
IPV6数据报首部
IPv6 将首部长度变为固定的 40 字节,称为基本首部(base header)。
将不必要的功能取消了,首部的字段数减少到只有 8 个。
取消了首部的检验和字段,加快了路由器处理数据报的速度。
在基本首部的后面允许有零个或多个扩展首部。
所有的扩展首部和数据合起来叫做数据报的有效载荷(payload)或净负荷。
IPV6拓展首部
- IPv6 将原来 IPv4 首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。
- 数据报途中经过的路由器都不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部)。
- 这样就大大提高了路由器的处理效率。
- 逐跳选项
- 路由选择
- 分片
- 鉴别
- 封装安全有效载荷
- 目的站选项
IPV4到IPV6两种过渡策略
- 双协议栈(dual stack)是指在完全过渡到 IPv6 之前,使一部分主机(或路由器)装有两个协议栈,一个 IPv4 和一个 IPv6。
- 隧道技术(tunneling):将IPv6数据报封装成为IPv4 数据报。
第五章 运输层
运输层协议概述
从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
应用进程的通信
两个主机进行通信实际上就是两个主机中的应用进程互相通信。
应用进程之间的通信又称为端到端的通信。
运输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。
“运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。
运输层协议和网络层协议的区别
运输层的主要功能
- 运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。
- 运输层还要对收到的报文进行差错检测。IP数据报中的校验和字段只校验首部不校验数据部分
- 运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。
运输层向上提供可靠的和不可靠的逻辑通信信道
运输层两个协议
TCP/IP的运输层有两个不同的协议:
(1) 用户数据报协议 UDP
(2) 传输控制协议 TCP
两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。
- TCP 传送的协议数据单位是 TCP 报文段(segment)
- UDP 传送的协议数据单位是 UDP 报文或用户数据报。
- UDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。
- TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。
- 运输层的 UDP 用户数据报与网际层的IP数据报有很大区别。IP 数据报要经过互连网中许多路由器的存储转发,但 UDP 用户数据报是在运输层的端到端抽象的逻辑信道中传送的。
- TCP 报文段是在运输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面的运输层是否建立了 TCP 连接。
端口
- 端口就是运输层服务访问点 TSAP。
- 端口的功能:就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。
- 从这个意义上讲,端口是用来标志应用层的进程
- 端口用一个 16 bit 端口号进行标志。
- 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。由此可见,两个计算机中的进程要互相通信,不仅必须知道对方的 IP 地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。
端口复用分用
每个孩子都是通过名字来识别的,当Bill从邮差那里收到一批信件,他就会进行一个分用工作——看每封信是邮寄给谁并且送到收信人手上,Ann会进行一个复用工作——从孩子们那里收集信件并把这些信件交给邮差
端口就是邮差这一角色 应用层的数据就是信 收信人就是进程
传输层的数据包:segment(段)
分用是把运输层segment(段)中的信息发送给正确的socket的服务
复用是把所有socket中的数据集中并加头信息封装,然后发送到网络层的服务(网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。)
书:
复用是指发送方不同的应用进程都可以使用同一个运输层协议
分用:接收方的运输层剥去报文的首部后,能够把这些数据正确的交付目的进程
端口号及其分类
- (1) 服务器端使用的端口号
- 熟知端口,数值一般为 0~1023。
- 登记端口号,数值为 1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。
- (2) 客户端使用的端口号
- 又称为短暂端口号,数值为 49152~65535,留给客户进程选择暂时使用。
- 当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
UDP(UserDatagramProtocol)
用户数据报
- UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。
- 虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。
UDP的主要特点
- UDP 是无连接的,即发送数据之前不需要建立连接。
- UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
- UDP 是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。
- UDP 支持一对一、一对多、多对一和多对多的交互通信。
- UDP 的首部开销小,只有8个字节。
面向报文
UDP首部格式
用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段有 8 个字节,由 4 个字段组成,每个字段都是两个字节。
伪首部:在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和。
端口分用
TCP(TransmissionControlProtocol)
传输控制协议
- TCP是一种面向连接的协议
- TCP的目的:用于在不可靠的互连网络上(不同的拓扑结构、带宽、延迟、分组大小及其它参数)实现可靠的端-端字节流服务
- IP层不保证报文正确传输,TCP进行超时重传控制
- 报文不一定按顺序到达,TCP进行重新装配
TCP特点
- TCP 是面向连接的运输层协议。
- 每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是一对一的。
- TCP连接的端点是套接字
- TCP 提供可靠交付的服务。
- 通过确认和重传机制
- 自动重传请求协议ARQ(Automatic Repeat reQuest)
- TCP 提供全双工通信。
- 面向字节流。
TCP报文段的首部格式
源端口和目的端口字段——各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
序号字段——占4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
数据偏移(即首部长度)——占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。
保留字段——占 6 位,保留为今后使用,但目前应置为 0。
紧急 URG —— 当 URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
确认 ACK(acknowledgment) —— 只有当 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 字节的伪首部。伪首部格式与UDP用户数据报的伪首部格式一致
紧急指针字段 —— 占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
以上前20各字节固定,后面4n字节根据需求增加
选项字段 —— 长度可变。TCP 最初只规定了一种选项,即最大报文段长度 MSS。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”
MSS (Maximum Segment Size)是 TCP 报文段中的数据字段的最大长度。数据字段加上 TCP 首部才等于整个的 TCP 报文段。
停止等待协议及其信道利用率
停止等待:
发送完分组后就停止发送,等待对方确认.在收到确认后再发送下一个分组
信道利用率:
$$
U=\frac{T_D}{T_D+RTT+T_A}
$$
U:信道利用率
$T_D$:发送分组时间
$RTT$:往返时间
$T_A$:发送确认时间
连续ARQ协议
- 发送方维持滑动窗口,它的意义:窗口内部的5个分组都可以连续发出,不需要等待确认
- 发送方每收到一个确认就把发送窗口向前滑动一个分组
- 接收方一般采取累计确认,再收到几个分组后,对按序到达的最后一个分组发送确认
- 累计确认优点是:容易实现,即使确认丢失也不必重传
TCP的连接控制
TCP 是面向连接的协议。
运输连接有三个阶段:
- 连接建立
- 数据传送
- 连接释放
运输连接的管理就是使运输连接的建立和释放都能正常地进行。
客户-服务器方式
- TCP连接的建立采用客户服务器方式。
- 主动发起连接建立的应用进程叫做客户(client),
- 被动等待连接建立的应用进程叫做服务器(server)。
连接建立
TCP 建立连接的过程叫做握手。
握手需要在客户和服务器之间交换三个 TCP 报文段。称之为三报文握手。
采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误。
ACK确认位
ack确认号
- A 的 TCP 向 B 发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = x,表明传送
数据时的第一个数据字节的序号是 x。 - B 的 TCP 收到连接请求报文段后,如同意,则发回确认。B 在确认报文段中应使 SYN = 1,使 ACK = 1,
其确认号ack = x +1,自己选择的序号 seq = y。 - A 收到此报文段后向 B 给出确认,其 ACK = 1,确认号 ack = y + 1。A 的 TCP 通知上层应用进程,连接已经建立。
加一,不知道你说的是SYN标志位占据sequence的一个序号,还是对方确认加一?
如果是前者,那是因为SYN是建立连接的关键字段,而为了确保对方接收到,使用超时重传机制,TCP规定,只为有数据的TCP报文重传,SYN占据一个序号(可以认为只有一个字节数据的报文),所以TCP会重传SYN报文。
TCP连接释放
TCP 连接释放过程比较复杂。
数据传输结束后,通信的双方都可释放连接。
TCP 连接释放过程是四报文握手。
- 数据传输结束后,通信的双方都可释放连接。现在 A 的应用进程先向其 TCP 发出连接释放报文段,并停止再发送数据,主动关闭 TCP 连接。A 把连接释放报文段首部的 FIN = 1,其序号seq = u,等待 B 的确认。
- B 发出确认,确认号 ack = u+1,而这个报文段自己的序号 seq = v。TCP 服务器进程通知高层应用进程。从 A 到 B 这个方向的连接就释放了,TCP 连接处于半关闭状态。B 若发送数据,A 仍要接收。
- 若 B 已经没有要向 A 发送的数据,其应用进程就通知 TCP 释放连接。
- A 收到连接释放报文段后,必须发出确认。 在确认报文段中 ACK = 1,确认号 ack = w + 1,自己的序号 seq = u + 1。
TCP 连接必须经过时间 2MSL(最长报文段寿命) 后才真正释放掉。防止B没接受到最后ACK,重传FIN
流量控制
流量控制:让发送方的发送速率不要太快,要让接收方来得及接收。
TCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。
在 TCP 报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。
发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。
发送端要发送 900 字节长的数据,划分为 9个 100 字节长的报文段,而发送窗口确定为 500 字节。
发送端只要收到了对方的确认,发送窗口就可前移。(需要确认才移动,而不是发送)
发送 TCP 要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。
发送端已发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。
现在发送端还可发送 300 字节。
发送端收到了对方对前 400 字节数据的确认,但对方通知发送端必须把窗口减小到 400 字节。
现在发送端最多还可发送 400 字节的数据。
拥塞控制
拥塞:当加载到网络上的载荷超过其处理能力时,拥塞便会出现。
拥塞的后果:
分组丢失造成超时的原因:
- 传输线路的噪声干扰
- 拥塞的路由器丢弃了分组
目前互联网上发生的大多数超时现象都是由于拥塞造成的,传输错误造成的分组丢失较少。
拥塞控制:防止过多数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
- 拥塞控制是一个全局性的过程。涉及到所有的主机,所有的路由器,以及与降低网络传输性能有关的因素,而流量控制是点对点通信量的控制
- 解决拥塞最切实的办法是降低数据传输速率。
- 拥塞控制大部分是由TCP完成的。TCP试图通过动态地控制滑动窗口的大小来达到控制拥塞地目的。
- 几种拥塞控制方法:慢开始、拥塞避免、快重传和快恢复。
拥塞窗口
发送方维持一个叫做拥塞窗口 cwnd (congestion window)的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。如再考虑到接收方的接收能力,则发送窗口还可能小于拥塞窗口。
发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。
单位:实际上是字节数,但为了叙述方便书本使用报文段个数
慢开始算法
在主机刚刚开始发送报文段时可先设置拥塞窗口 cwnd = 1,即设置为一个最大报文段 MSS 的数值。
在每收到一个对新的报文段的确认后,将拥塞窗口加 1,即增加一个 MSS 的数值。
用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理。
发送方每收到一个对新报文段的确认(重传的不算在内)就使 cwnd 加 1。
每经过一个传输轮次(transmission round),拥塞窗口cwnd加倍
传输轮次所经历的时间就是往返时间:RTT(Round-TripTime),即将拥塞窗口全部发送出去,并收到对已发送的最后一个字节的确定
设置慢开始门限状态变量ssthresh
慢开始门限 ssthresh 的用法如下:
当 cwnd < ssthresh 时,使用慢开始算法。
当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。
拥塞避免算法的思路是让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律缓慢增长。
无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有按时收到确认),就要把慢开始门限 ssthresh 设置为出现拥塞时的发送方窗口值的一半(但不能小于2)。
然后把拥塞窗口 cwnd 重新设置为 1,执行慢开始算法。
这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。
快重传和快恢复
快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认。这样做可以让发送方及早知道有报文段没有到达接收方。
发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段。
不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。
快恢复
(1) 当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,把慢开始门限 ssthresh 减半。但接下去不执行慢开始算法。
(2)由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,即拥塞窗口 cwnd 现在不设置为 1,而是设置为慢开始门限 ssthresh 减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。
拥塞控制VS流量控制
拥塞控制:全局性过程
流量控制:端到端问题
第六章 应用层
应用层概述
地位和作用
- 应用层是计算机网络体系结构中的最高层,也是唯一面向用户的一层。
- 应用层为用户提供常用的应用程序,并实现网络服务的各种功能。
- 常用的电子邮件、上网浏览等网络服务都是应用层的程序
应用层协议
应用层协议的特点
- 每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。
- 应用层的许多协议都是基于客户服务器方式。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。
域名系统DNS(Domain Name System)
早期:hosts
- Hosts文件保存每台主机连接Internet的有关信息,包括主机的IP地址和名字
- 文件是平面结构,没有任何分类等级,要求分配给主机的名字是唯一的
- 主要问题:名字冲突 不易管理
域名系统
域名系统DNS(Domain Name System)就是完成域名地址和IP地址之间相互转换的程序
-
特点
- 许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。
- 因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。
- 名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
-
域名结构
-
因特网采用了层次树状结构的命名方法。
-
任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
-
域名的结构由标号序列组成,各标号之间用点隔开:
-
各标号分别代表不同级别的域名。
-
-
域名只是逻辑概念
- 域名只是个逻辑概念,并不代表计算机所在的物理地点。
- 变长的域名和使用有助记忆的字符串,是为了便于人来使用。而 IP 地址是定长的 32 位二进制数字则非常便于机器进行处理。
- 域名中的“点”和点分十进制 IP 地址中的“点”并无一一对应的关系。点分十进制 IP 地址中一定是包含三个“点”,但每一个域名中“点”的数目则不一定正好是三个。
顶级域名
(1) 国家顶级域名 nTLD:如: .cn 表示中国,.us 表示美国,.uk 表示英国,等等。
(2) 通用顶级域名 gTLD:最早的顶级域名是:
.com (公司和企业)
.net (网络服务机构)
.org (非赢利性组织)
.edu (美国专用的教育机构()
.gov (美国专用的政府部门)
.mil (美国专用的军事部门)
.int (国际组织)
(3) 基础结构域名(infrastructure domain):这种顶级域名只有一个,即 arpa,用于反向域名解析,因此又称为反向域名。
域名空间
域名服务器
- 一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。
- 各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。
- 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
- DNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位。
区的不同划分方法举例
树状DNS域名服务器
分类:
- 根域名服务器
- 顶级域名服务器
- 权限域名服务器
- 本地域名服务器
根域名服务器
- 根域名服务器是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。
- 不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。
- 在因特网上共有13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从a 一直到 m(前13 个字母)。
- 根域名服务器共有 13 套装置(不是 13 个机器)
- 到 2006 年底全世界已经安装了一百多个根域名服务器机器,分布在世界各地。
- 这样做的目的是为了方便用户,使世界上大部分 DNS 域名服务器都能就近找到一个根域名服务器
- 根域名服务器并不直接把域名直接转换成 IP 地址。在使用迭代查询时,根域名服务器把下一步应当找的顶级域名服务器的 IP 地址告诉本地域名服务器
顶级域名服务器
- 这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。
- 当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。
权限域名服务器
- 这就是前面已经讲过的负责一个区的域名服务器。
- 当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。
本地域名服务器
- 本地域名服务器对域名系统非常重要。
- 当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
- 每一个因特网服务提供商 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,
- 这种域名服务器有时也称为默认域名服务器
域名解析
- 主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
- 本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
压力最大的是本地域名服务器
本地域名服务器采用递归查询(比较少用)
压力最大的是根域名服务器
万维网www
- 万维网 WWW (World Wide Web)并非某种特殊的计算机网络。
- 万维网是一个大规模的、联机式的信息储藏所。
- 万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
- 这种访问方式称为“链接”。
万维网提供分布式服务
超媒体与超文本
- 万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。
- 一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。
- 超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。
万维网工作方式
- 万维网以客户-服务器方式工作。
- 浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。
- 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
在一个客户程序主窗口上显示出的万维网文档称为页面(page)。
万维网工作过程
用户点击鼠标后发生的事件
(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 中的所有文本。
万维网必须解决的问题
(1) 怎样标志分布在整个因特网上的万维网文档?
- 使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。
- 使每一个文档在整个因特网的范围内具有唯一的标识符 URL。
(2) 用何协议实现万维网上各种超链的链接?
- 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
- HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
(3) 怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?
- 超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
(4) 怎样使用户能够很方便地找到所需的信息?
- 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。
URL
- 统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。
- URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。
- 只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。
- URL 相当于一个文件名在网络范围的扩展。因此 URL 是与因特网相连的机器上的任何可访问对象的一个指针。
(1) URL的一般格式
- 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。
- URL 的一般形式是:
主机:存放资源的主机在因特网的域名
省略:路径项,则URL指向因特网的某个主页
HTTP
(1)HTTP的操作过程
- 为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。
- 从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
(2)HTTP报文结构
HTTP 有两类报文:
- 请求报文——从客户向服务器发送请求报文。
- 响应报文——从服务器到客户的回答。
- 由于 HTTP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。
请求报文:
报文由三个部分组成,即开始行、首部行和实体主体。
在请求报文中,开始行就是请求行。
“方法”是面向对象技术中使用的专门名词。所谓“方法”就是对所请求的对象进行的操作,因此这些方法实际上也就是一些命令。因此,请求报文的类型是由它所采用的方法决定的。
HTTP请求报文的一些方法:
“URL”是所请求的资源的URL。
“版本”是 HTTP 的版本。
响应报文
响应报文的开始行是状态行。
状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。
状态码
1xx 表示通知信息的,如请求收到了或正在进行处理。
2xx 表示成功,如接受或知道了。
3xx 表示重定向,表示要完成请求还必须采取进一步的行动。
4xx 表示客户的差错,如请求中有错误的语法或不能完成。
5xx 表示服务器的差错,如服务器失效无法完成请求。
HTML
万维网的文档
- 超文本标记语言 HTML 中的 Markup 的意思就是“设置标记”。
- HTML 定义了许多用于排版的命令(即标签)。
- HTML 把各种标签嵌入到万维网的页面中。这样就构成了所谓的 HTML 文档。HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件。
- 仅当 HTML 文档是以.html 或 .htm 为后缀时,浏览器才对此 文档的各种标签进行解释。
- 如 HTML 文档改换以 .txt 为其后缀,则 HTML 解释程序就不对标签进行解释,而浏览器只能看见原来的文本文件。
- 当浏览器从服务器读取 HTML 文档后,就按照 HTML 文档中的各种标签,根据浏览器所使用的显示器的尺寸和分辨率大小,重新进行排版并恢复出所读取的页面。
信息检索系统
- 全文检索搜索和分类目录搜索
- 在万维网中用来进行搜索的程序叫做搜索引擎。
- 全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件到互联网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询。
- 用户在查询时只要输入关键词,就从已经建立的索引数据库上进行查询(并不是实时地在互联网上检索到的信息)。
- 分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。
- 分类目录搜索也叫做分类网站搜索。
- 最著名的全文检索搜索引擎:
Google(谷歌)(www.google.com)
百度 (www.baidu.com) - 最著名的分类目录搜索引擎:
雅虎 (www.yahoo.com)
雅虎中国 (cn.yahoo.com)
新浪 (www.sina.com)
搜狐 (www.sohu.com)
网易 (www.163.com)
电子邮件
- 电子邮件概述:历史和基本概念。
- 电子邮件系统的构成:用户代理、邮件服务器、邮件发送协议和邮件读取协议。
- 电子邮件的格式
RFC 822
MIME - 电子邮件的传输协议
简单邮件传输协议SMTP
邮件接收协议:POP3和IMAP - 电子邮件的工作流程
邮件的收发
电子邮件 Electronic Mail (E-mail)
包含了实现用户之间非实时通信的应用程序和发送、接收、中继(中转)电子邮件的处理程序。
每个用户首先应拥有一个电子邮箱。所谓的电子邮箱就是在一台提供了邮件服务的主机上为每个人提供一个用户名。
电子邮件的地址表示为: 用户名@域名。
gqkong@gzu.edu.cn
地址不区分大小写。
邮件系统构成
电子邮件系统由三个部分组成:
- 用户代理(UA):允许用户阅读、发送/接收电子邮件。
- 邮件服务器(mail server):为用户提供电子邮箱,发送和接收邮件。
- 邮件发送协议(SMTP)和邮件读取协议(POP3)
SMTP
简单邮件传输协议SMTP (Simple Mail Transfer Protocol)的协议标准为RFC821,占用的TCP端口号为25 。
SMTP在目的和源邮件主机(Mail Host)之间进行基于TCP连接的邮件传输。
- SMTP的实现过程为:
- 寻址:向DNS发送请求,得到接收方的IP地址。
- 建立连接:源邮件主机向目的邮件主机TCP端口25请求建链,TCP握手成功,目的邮件主机回送确认(220)。
- 传输邮件:完成邮件的传送。
- 拆除连接:源邮件主机请求断链,目的邮件主机回送确认(221)。
POP3和IMAP
- POP3协议:
由于用户在大多数情况下不能工作在发送和接收电子邮件的主机(mail server)上,所以需要一种从远程邮箱中读取电子邮件的简单协议邮局协议3(Post Office Protocol 3)的支持。
POP3支持用户登录、读取信息、删除信息和退出功能。 - IMAP协议:
交互式邮件访问协议,收信人使用多个用户代理访问同一邮箱,邮件始终保持在邮箱中。
基于万维网的电子邮件
电子邮件从 A 发送到网易邮件服务器是使用 HTTP 协议。
两个邮件服务器之间的传送使用 SMTP。
邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议。