赞
踩
把上述三种网络融合成一种网络就能够提供所有的上述服务
别名:Internet/网络/因特网/互联网
互联网是一种远程分组交换网络,所以采用的是分组交换技术。
由自治的计算机互联起来的集合体。
计算机网络由若干结点(node)和连接这些结点的链路(link)组成。
网络中的结点可以是计算机、集线器、交换机或路由器等。
由一些通用的、可编程的硬件互连而成的
从单个网络 ARPANET 向互联网发展的过程。
逐步建成三级结构的互联网。
主干网、地区网和校园网或企业网
逐渐形成了多层次 ISP 结构的互联网。
基于 ISP 的多层结构的互联网的概念示意图
连通性 (connectivity)
使上网用户之间都可以交换信息(数据,以及各种音频视频),好像这些用户的计算机都可以彼此直接连通一样。
互联网具有虚拟的特点,无法准确知道对方是谁,也无法知道对方的位置。
共享 (Sharing)
数据通信、资源共享、分布式处理
由所有连接在因特网上的主机组成(台式电脑,大型服务器,笔记本电脑,平板,智能手机等)。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
在网络核心部分起特殊作用的是路由器。路由器是实现分组交换的关键构件,如果没有路由器,再多的网络也无法构建成互联网。由此可以看出,互联网的核心部分的工作方式其实也就是路由器的工作方式。
路由器的任务是转发收到的分组。当路由器转发分组时,必须查找路由表。因此,互联网中的各路由器必须根据路由选择协议的规定相互交换路由信息,以便使路由表能够及时反映出网络拓扑的变化。
路由器转发分组。
路由器分组转发算法
路由器之间不断地交换路由信息。
路由选择协议
任意把几个计算机网络互连起来(不管采用什么协议),并能够相互通信,这样构成的是一个互连网(internet) ,而不是互联网(Internet)。
可以参考数据通信原理
电话交换机接通电话线的方式称为电路交换;
从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源;
整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。(存储转发)
将较长的报文划分成一个个更小的等长数据段,并加上首部(包头),在终端重新按序组装成报文
将报文分成若干个分组,每个分组独立的传送到相邻节点,分组到达一个路由器后,先暂时存储在缓冲区中,查找转发表,然后从一条合适的链路转发到下一个节点。
存储转发、分段重组和独立选路
优点 | 所采用的手段 |
---|---|
高效 | 在分组传输的过程中动态分配传输带宽,对通信链路是逐段占用 |
灵活 | 为每一个分组独立地选择最合适的转发路由 |
迅速 | 以分组作为传送单位,可以不先建立连接就能向其他主机发送分组 |
可靠 | 保证可靠性的网络协议;分布式多路由的分组交换网,使网络有很好的生存性 |
题:要传送的报文共 x ( bit )。从源点到终点共经过 k 段链路,每段链路的传播时延为 d ( s ),数据率为 b ( bit / s )。在电路交换时电路的建立时间为 s ( s )。在分组交换时,分组长度为 p ( bit ),每个分组所必须添加的首部都很短,对分组的发送时延的影响在题中可以不考虑。此外,各节点的排队等待时间也可忽略不计。问在怎样的条件下,分组交换的时延比电路交换的要小?(提示:画一下草图观察 k 段链路共有几个节点。)
解:
电路交换时总时延T1 =建立时延+起点的发送时延+在链路中的传播时延。
T1 =s + x/b + k*d
分组交换总时延T2 =起点的发送时延+(k-1)个节点的发送时延(最后一个节点无需计算)+在链路中的传播时延
T2 = (x/p) × (p/b) + (k-1) × (p/b) + k*d
若使分组交换的时延比电路交换的少,则有:
s + x/b + k*d > (x/p) × (p/b) + (k-1) × (p/b) + k*d 即 s > (k-1) × (p/b)
作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network)。广域网是互联网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。
作用范围一般是一个城市,可跨越几个街区甚至整个城市
一般用微型计算机或工作站通过高速通信线路相连(速率通常在 10 Mbit/s 以上),但地理上范围较小(1 km 左右)
在个人工作的地方把个人使用的电子设备用无线技术连接起来的网络。也被称为无线个人局域网WPAN(Wireless PAN)
这是指电信公司(国有或私有)出资建造的大型网络。“公用”的意思就是所有愿意按电信公司的规定交纳费用的人都可以使用这种网络。因此公用网也可称为公众网。
这是某个部门为满足本单位的特殊业务工作的需要而建造的网络。这种网络不向本单位以外的人提供服务。
计算机中数据量的单位,也是信息论中使用的信息量的单位。
数据的传送速率,它也称为数据率 (data rate)或比特率 (bit rate)。
速率往往是指额定速率或标称速率,非实际运行速率。
bit/s(b/s或bps),或 kbit/s、Mbit/s、 Gbit/s 等
8 Gbit/s= 8e3 Mbit/s= 8e6 kbit/s= 1e9Byte/s = 8e9 bit/s,每一级 103
数据量:1 GB= 1×210 MB= 1×220 KB= 1×230 Byte = 8×230 Bit,每一级 210
在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量受网络的带宽或网络的额定速率的限制。
带宽1 Gb/s的以太网,代表其额定速率是 1 Gb/s,这个数值也是该以太网的吞吐量的绝对上限值。因此,对于带宽1 Gb/s的以太网,可能实际吞吐量只有 700 Mb/s,甚至更低。
时延(延迟/迟延)是指数据从网络(或链路)的一端传送到另一端所需的时间。
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
主机或路由器发送数据帧所需要的时间。也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
发送时延 = 数据帧长度(bit)/ 发送速率(bit/s)
电磁波在信道中需要传播一定的距离而花费的时间。
电磁波在自由空间的传播速率是光速 3.0 × 1 0 5 k m / s 3.0\times10^5km/s 3.0×105km/s,在铜线电缆中是 2.3 × 1 0 5 k m / s 2.3\times10^5km/s 2.3×105km/s,在光纤是 2.0 × 1 0 5 k m / s 2.0\times10^5km/s 2.0×105km/s。
传播时延 = 信道长度(米)/ 信号在信道上的传播速率(米/秒)
主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间。
分组在路由器输入输出队列中排队等待处理所经历的时延。排队时延的长短往往取决于网络中当时的通信量
时延带宽积 = 传播时延 * 带宽
往返时间表示从发送方发送数据开始,到发送方收到来自接收方的确认,总共经历的时间。
在互联网中,往返时间还包括各中间结点的处理时延、排队时延以及转发数据时的发送时延。
当使用卫星通信时,往返时间 RTT 相对较长,是很重要的一个性能指标。
指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
全网络的信道利用率的加权平均值。
若令 D0 表示网络空闲时的时延,D 表示网络当前的时延,则在适当的假定条件下,可以用下面的简单公式表示 D 和 D0之间的关系。其中:U 是网络的利用率,数值在 0 到 1 之间。
D = D 0 1 − U D= \dfrac{D_{0}}{1-U} D=1−UD0
信道利用率并非越高越好。当某信道的利用率增大时,该信道引起的时延也就迅速增加。
网络的价格(包括设计和实现的费用)总是必须考虑的,因为网络的性能与其价格密切相关。一般说来,网络的速率越高,其价格也越高。
网络的质量取决于网络中所有构件的质量,以及这些构件是怎样组成网络的。网络的质量影响到很多方面,如网络的可靠性、网络管理的简易性,以及网络的一些性能。但网络的性能与网络的质量并不是一回事。例如,有些性能一般的网络,运行一段时间后就出现了故障,变得无法再继续工作,说明其质量不好。高质量的网络往往价格也较高。
网络的硬件和软件的设计既可以按照通用的国际标准,也可以遵循特定的专用网络标准。最好采用国际标准的设计,这样可以得到更好的互操作性,更易于升级换代和维修,也更容易得到技术上的支持。
可靠性与网络的质量和性能都有密切关系。高速网络的可靠性不一定很差。但高速网络要可靠地运行,则往往更加困难,同时所需的费用也会较高。
在构造网络时就应当考虑到今后可能会需要扩展(即规模扩大)和升级(即性能和版本的提高)。网络的性能越高,其扩展费用往往也越高,难度也会相应增加。
网络如果没有良好的管理和维护,就很难达到和保持所设计的性能。
可以参考数据通信原理
在OSI参考模型中,保证端到端的可靠性是在运输层上完成的。
开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),法律上的国际标准
OSI 参考模型把对等层次之间传送的数据单位称为该层的PDU
OSI 中层与层之间交换的数据的单位
SDU 可以与 PDU 不一样,例如,可以是多个 SDU 合成为一个 PDU,也可以是一个 SDU 划分为几个 PDU。
同一系统相邻两层的**实体进行交互**的地方,它是一个抽象的概念,实际上就是一个逻辑接口。
事实上的国际标准,组成Internet的一整套协议
任何可发送或接收信息的硬件或软件进程。
相邻层间进行信息交换时必须遵守的规则
网络协议 (network protocol),简称为协议,是为进行网络中的同层对等实体数据交换而建立的规则、标准或约定的集合。
数据与控制信息的结构或格式。
需要发出何种控制信息,完成何种动作以及做出何种响应。
事件实现顺序的详细说明。
指一个系统中的下层向上层提供的功能。相邻层间进行信息交换时使用的一组操作原语。
各层之间是独立的。
每一层只实现一种相对独立的功能,可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。降低问题的复杂度。
灵活性好。
当任何一层发生变化时(例如由于技术的变化),只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。此外,对某一层提供的服务还可进行修改。当某层提供的服务不再需要时,甚至可以将这层取消;
结构上可分割开。
易于实现和维护。
能促进标准化工作。
信号要传递的内容,是本质。如文字、图像、语音、数据等表现形式。
传达给人的消息,能消除受信者的某些不确定性。
数据的电气或电磁的表现。消息传递的物理形式,是载体,比如是电信号、光信号等。
连续信号/模拟信号 (analogous signal)代表消息的参数的取值是连续的。
频带传输
离散信号/数字信号(digital signal)代表消息的参数的取值是离散的。
基带传输、数字数据传输
运送消息的实体
当时间域内的波形表示数字信号时,表示不同数值的波形。
比特bit
指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。
指明在接口电缆的各条线上出现的电压的范围。
指明某条线上出现的某一电平的电压的意义。
指明对于不同功能的各种可能事件的出现顺序。(完成串行并行之间的转换)
只能有一个方向的通信而没有反方向的交互。
通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。
通信的双方可以同时发送和接收信息。
仅对基带信号的码形进行变换,使它能够与信道特性相适应。变换后的信号仍然是基带信号。 把这种过程称为编码 (coding)。
位周期中心的向上跳变代表 0, 位周期中心的向下跳变代表 1。但也可反过来定义。
在每一位的中心处始终都有跳变。位开始边界有跳变代表 0(0差分),而位开始边界没有跳变代表 1。
使用载波 (carrier)进行调制,把基带信号的频率范围搬移到较高的频段,并转换为模拟信号, 这样就能够更好地在模拟信道中传输(即仅在一段频率范围内能够通过信道)
载波的振幅随基带数字信号而变化。
载波的频率随基带数字信号而变化。
载波的初始相位随基带数字信号而变化。
把数字信号调制成音频信号(是模拟信号,在模拟信道上传输)后再发送和传输,到达时再音频信号解调成原来的数字信号,如利用电话交换网与调制解调器进行数据传输。
利用数字通信信道原封不动地传输由计算机或终端产生的0或1数字脉冲信号的方法称为基带传输。适用于近距离传输。
考点:基带传输、频带传输、宽带传输、数据报传输的对比★
是存储转发方式的一种,可以使各个节点处于并行状态,大大缩短报文的传输时间。一般指IP数据报、ICMP数据报、TCP数据报、UDP数据报等传输。
信号的平均功率和噪声的平均功率之比
信噪比(dB) = $10log_{10}(S/N) $ (dB)
在带宽为W(Hz)的低通信道中,若不考虑噪声影响,则码元传输的最高速率是2W(码元/秒)
香农 (Shannon) 用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率
信道的极限信息传输速率 C 可表达为: $C = W log_{2} (1+S/N) $ (bit/s)
其中: W 为信道的带宽(以 Hz 为单位); S 为信道内所传信号的平均功率; N 为信道内部的高斯噪声功率。
假定要用3KHz带宽的电话信道传送 64 kbit/s的数据(无差错传输),试问这个信道应该具有多高的信噪比?
$C = W log2 (1+S/N) \Rightarrow 64 kbit/s = 3000 log2 (1+S/N) $
N
b
=
N
b
a
u
d
l
o
g
2
M
N_{b}=N_{baud}log_{2}M
Nb=Nbaudlog2M
其中
N
b
N_{b}
Nb = 比特速率,
N
b
a
u
d
N_{baud}
Nbaud = 码元速率(波特率,单位时间内传送的码元符号的个数),M = 进制数(有效离散值)
物理层下的传输媒体不属于物理层,可视为第0层
非导引型传输媒体就是指自由空间。在非导引型传输媒体中,电磁波的传输常称为无线传输。
媒介:无线电波:微波(包括地面微波接力通信和卫星通信)、红外线、激光
ISM频段
要使用某一段无线电频谱进行通信,通常必须得到本国政府有关无线电频谱管理机构的许可证。但是,也有一些无线电频段是可以自由使用的。例如:ISM。
ISM是Industrial,Scientific,and Medical (工业、科学与医药)的缩写,即所谓的“工、科、医频段”。各国的ISM标准有可能略有差别。
通过共享信道,最大限度提高信道利用率。
将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
频分复用的所有用户在同样的时间占用不同的带宽资源(这里的“带宽”是频率带宽而不是数据的发送速率)。
信道复用率高,分路方便;
各路信号之间存在相互干扰(串扰)。
时分复用则是将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。
每一个用户所占用的时隙是周期性地出现(其周期就是TDM帧的长度)的。
TDM 信号也称为等时 (isochronous) 信号。
简单,易于大规模集成,信号间不串话。
所有用户在不同的时间占用同样的频带宽度,可能会造成线路资源的浪费。
使用时分复用系统传送计算机数据时,由于计算机数据的突发性质,用户对分配到的子信道的利用率一般是不高的。
又叫异步时分复用,STDM 帧不是固定分配时隙,而是按需动态地分配时隙。因此可以提高线路的利用率。
结构小,简单可靠;充分利用光纤带宽资源;透明的传输通道;更灵活地进行光纤通信组网。
存在插入损耗和串光问题。
又称码分多址 CDMA (Code Division Multiple Access)。
共有4个站进行码分多址通信。4个站的码片序列为
A:(-1-1-1+1+1-1+1+1)
B:(-1-1+1-1+1+1+1-1)
C:(-1+1-1+1+1+1-1-1)
D:(-1+1-1-1-1-1+1-1)
现收到这样的码片序列S:(-1+1-3+1-1-3+1+1)。
问哪个站发送数据了?发送数据的站发送的是0还是1?
S•A=(+1-1+3+1-1+3+1+1)/8=1, A发送1
S•B=(+1-1-3-1-1-3+1-1)/8=-1, B发送0
S•C=(+1+1+3+1-1-3-1-1)/8=0, C无发送
S•D=(+1+1+3-1+1+3+1-1)/8=1, D发送1
站点1、2、3通过CDMA共享链路。站点1、2、3的码片序列分别是
A:(1,1,1,1)、B:(1,-1,1,-1)和C:(1,1,-1,-1),
若站3从链路上收到的序列S是(2,0,2,0, 0,-2,0,-2, 0,2,0,2),则站点3收到站点1发送的数据是多少?
S•A=(2+0+2+0)/ 4=1,(0-2+0-2)/ 4=-1,(0+2+0+2)/ 4=1,A发送1 0 1
S•B=(2+0+2+0)/ 4=1,(0+2+0+2)/ 4=1,(0-2+0-2)/ 4=-1,B发送1 1 0
S•C=(2+0-2+0)/ 4=0,(0-2+0+2)/ 4=0,(0+2+0-2)/ 4=0,C无发送
最主要的是以下两个方面
为解决早期数字传输系统缺点,美国推出同步光纤网 SONET (Synchronous Optical Network) ,其各级时钟都来自一个非常精确的主时钟。
ITU-T以美国标准SONET为基础,制定出国际标准同步数字系列SDH(Synchronous Digital Hierarchy)
非对称数字用户线 ADSL (Asymmetric Digital Subscriber Line) :用数字技术对现有的模拟电话用户线进行改造,使它能够承载宽带业务。
光纤同轴混合网HFC (Hybrid Fiber Coax) 网:在目前覆盖面很广的有线电视网 CATV 的基础上开发的一种居民宽带接入网
是一种实现宽带居民接入网的方案,代表多种宽带光纤接入方式。FTTx 表示 Fiber To The…(光纤到…),例如:
从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换结点。
在进行数据通信时,两台计算机之间的通信路径往往要经过许多段这样的链路。可见链路只是一条路径的组成部分。
把实现控制数据传输的必要通信协议的硬件和软件(如网络适配器)加到链路上,就构成了数据链路。
将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送帧(frame)。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。
帧同步、透明传输、差错控制、传递信息、控制流量、控制链路(建立、维护、释放)、MAC寻址、区分数据和控制信息。
帧
数据链路层数据部分长度上限。
在一段数据的前后分别添加首部和尾部(用于帧定界),然后就构成了一个帧。
某一个实际存在的事物看起来却好像不存在一样
面向字节的物理链路使用字节填充 (byte stuffing) 或字符填充 (character stuffing)
面向比特的物理链路使用比特填充
在一段时间内,传输错误的比特占所传输比特总数的比率,与信噪比有很大的关系(正相关)。
CRC(Cyclic Redundancy Check)编码,也称为多项式(polynomial code)编码。它是在数据通信中常用的一种差错校验码。由信息字段和校验字段组成。其中信息字段和校验字段长度可以任意选定。
前面讲了理论,这里介绍具体协议的实现。
在通信线路质量较差的年代,在数据链路层使用可靠传输协议曾经是一种好办法。因此,能实现可靠传输的高级数据链路控制HDLC(High-level Data Link Control)就成为当时比较流行的数据链路层协议。但现在HDLC已很少使用了。对于点对点的链路,简单得多的点对点协议PPP(Point-to-Point Protocol)则是目前使用得最广泛的数据链路层协议。
一连串的比特连续传送(帧)。必须建立准确的时钟信号,各信号码元之间的相对位置都是固定的。
逐个字符地传送。需要在每一个字符的开始和结束的地方加上标志,即加上起始码和停止码。
指标 | 同步传输 | 异步传输 |
---|---|---|
传输单位 | 比特 | 字节 |
透明传输方法 | 0比特填充法 | 字符填充法 |
传输效率 | 高 | 低 |
时钟精确度要求 | 高 | 低 |
各信号码元之间的相对位置 | 固定 | 不固定 |
下面两者方法本质上都是为了避免帧定界错误(帧定界符为0x7E/0111 1110 B)。
当 PPP 用在异步传输时(传输单位为字节),就使用一种特殊的字符填充法。
当 PPP 用在同步传输链路时(传输单位为比特),协议规定采用硬件来完成比特填充。
符合 DIX Ethernet V2 标准的局域网
DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为“以太网”。
以太网提供的服务是无连接不可靠的交付,即尽最大努力的交付。当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。
差错的纠正由高层来决定。如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。对发送的帧不进行编号,也不要求接收方发回确认帧。这样做的理由是局域网的信道质量非常好,产生的错误的概率非常小。
逻辑链路控制 LLC (Logical Link Control)子层,LLC 子层与传输媒体无关;
由于现在广泛使用的局域网只有以太网,因此 LLC 帧已经失去了原来的意义
媒体接入控制 MAC (Medium Access Control)子层,与接入到传输媒体有关的内容都放在 MAC 子层。
网络接口板又称为通信适配器 (adapter) 或网络接口卡(Network Interface Card,NIC),或“网卡”。
物理上为星型,逻辑上为总线型
以Ethernet V2标准的MAC帧格式为例,假设网络层使用的是IP协议
分为目的地址和源地址字段
本地网络上的主机通过硬件地址查找其它的网络设备
MAC 层的硬件地址/硬件地址/物理地址/MAC 地址。
IEEE 802 标准规定 MAC 地址字段可采用 6 字节 (48 位) 或 2 字节 (16 位) 这两种中的一种。
所有 48 位都为 1 时,为广播地址。只能作为目的地址使用。
用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。例如,当类型字段的值是0x0800时,就表示上层使用的是IP数据报。若类型字段的值为0x8137,则表示该帧是由NovellIPX发过来的。
数据部分长度在46到1500字节之间(46字节是这样得出的:最小长度64字节减去18字节的首部和尾部就得出数据字段的最小长度)。
1500字节是[MTU](#最大传送单元MTU(Maximum Transfer Unit))默认长度
MAC帧的开始有7个字节的前同步码和帧开始定界符(10101011)
MAC帧的结束不需要帧结束定界符
在以太网上传送数据时是以帧为单位传送的。以太网在传送帧时,各帧之间还必须有一定的间隙,并且物理层采用的是曼彻斯特编码,它的一个重要特点就是在曼彻斯特编码的每一个码元(不管码元是1或0)的正中间一定有一次电压的转换(从高到低或从低到高)。当发送方把一个以太网帧发送完毕后,就不再发送其他码元了(既不发送1,也不发送0)。因此,发送方网络适配器的接口上的电压也就不再变化了。这样,接收方就可以很容易地找到以太网帧的结束位置。在这个位置往前数4字节(FCS字段长度是4字节),就能确定数据字段的结束位置。因此,接收端只要找到帧开始定界符,其后面的连续到达的比特流就都视作属于同一个 MAC 帧,同时也可以计算出帧长度。可见以太网不需要使用帧结束定界符,也不需要使用字节插入等来保证透明传输。
MAC帧中FCS字段采用CRC检验,检验的内容不包括前同步码和帧开始定界符。
中继器(Repeater)又称转发器,主要功能是将信号整形并放大再转发出去,以消除信号经过一长段电缆后,因噪声或其他原因而造成的失真和衰减,使信号的波形和强度达到要求,进而延长网络传输的距离。
集线器(Hub)对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。当集线器一个端口收到数据后,将其从除了输入端口外的所有端口广播出去,即信息分发。
在任意时刻,在每个碰撞域中只能有一个站在发送数据
网桥/桥接器(Bridge)/把多个“局域网”连接起来,组成更大的局域网;根据 MAC 帧的目的地址对收到的帧进行转发和过滤。
参照交换机自学习功能
如图3-33所示,有五个站点分别连接在3个局域网上,并且用网桥B1和B2连接起来,每一个网桥都有两个接口(1和2),初始时,两个网桥中的转发表都是空的,以后有以下各站向其他的站发送了数据帧:A发送给E,C发送给B,D发送给C,B发送给A,请把有关信息填写在表3-4中。
图1表示有7个站(H1~h7,相应的MAC地址为MAC1~MAC7)分别连接在四个局域网上,并且用网桥B1、B2、以及B3连接起来。每个网桥都有两个端口(1和2)。在一开始,三个网桥的转发表都是空的。以后有以下各站向其他站发送了数据帧:…(如表所示)。
交换式集线器 (switching hub)/以太网交换机 (switch)/第二层交换机 (L2 switch)
物理编址、网络拓扑结构、错误校验、帧序列以及流控
总线以太网使用 CSMA/CD 协议,以半双工方式工作。但以太网交换机不使用共享总线,没有碰撞问题,因此不使用CSMA/CD协议,而是以全双工方式工作。但由于它的帧结构未改变,仍然采用以太网的帧结构,所以仍称为以太网。
特点和优点你中有我我中有你,考试时最好都写上。
用户独享带宽,增加了总带宽容量。
使用以太网交换机时,虽然在每个接口到主机的带宽还是 10 Mbit/s,但由于一个用户在通信时是独占,因此对于拥有 N 个接口的交换机的总带宽为 N×10 Mbit/s。
从共享总线以太网转到交换式以太网时,所有接入设备的软件和硬件、适配器等都不需要做任何改动。
以太网交换机一般都具有多种速率的接口,方便了各种不同情况的用户。
虚拟局域网VLAN (Virtual LAN)是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。 每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN。
当 B1 向 VLAN2 工作组内成员发送数据时, 工作站 B2 和 B3 将会收到广播的信息;B1 发送数据时,工作站 A1,A2 和 C1 都不会收到 B1 发出的广播信息。
虚拟局域网其实只是局域网给用户提供的一种服务, 而并不是一种新型局域网。
虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为VLAN标记(tag),用来指明发送该帧的计算机属于哪一个虚拟局域网。插入VLAN标记得出的帧称为802.1Q帧。显然,如果还使用原来的以太网帧格式,那么就无法区分是否划分了虚拟局域网。
速率达到或超过 100 Mbit/s 的以太网称为高速以太网,又称为快速以太网 (Fast Ethernet)。
100 Mbit/s 的以太网
吉比特以太网
一个网段的最大铜缆长度: 100 m
最短有效帧长: 64 字节
争用期: 5.12 μ s 5.12\mu s 5.12μs
采用了“载波延伸”(carrier extension)的办法,使最短帧长仍为64字节(这样可以保持兼容性),同时将争用期增大为512字节。凡发送的 MAC 帧长不足512字节时,就用一些特殊字符填充在帧的后面,使MAC帧的发送长度增大到512字节,这对有效载荷并无影响。接收端在收到以太网的 MAC 帧后,要把所填充的特殊字符删除后才向高层交付。
帧间最小间隔: 0.96 μ s 0.96 \mu s 0.96μs
PPPoE (PPP over Ethernet) 的意思是“在以太网上运行 PPP”,它把 PPP 协议与以太网协议结合起来 —— 将 PPP 帧再封装到以太网中来传输。该协议在以太网进行宽带接入互联网时使用。
CSMA/CD:载波监听多点接入 / 碰撞检测 (Carrier Sense Multiple Access with Collision Detection) 。
“载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
“多点接入”表示许多计算机以多点接入的方式连接在一根总线上。
“碰撞检测”(“冲突检测”)就是计算机边发送数据边检测信道上的信号电压大小。
在使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道)。因此使用CSMA/CD 协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)。
16字总结:发前先听、边发边听、冲突停止、延后重传
最先发送数据帧的站,在发送数据帧后至多经过时间 2 τ 2 \tau 2τ (端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。
以太网的端到端往返时延 2 τ 2 \tau 2τ 称为争用期(碰撞窗口)。
设最远两个站点之间的距离为d(m),电缆中信号传播速度为v(m/s)。
τ = d v \tau=\frac{d}{v} τ=vd
争用期 = 2 τ 2 \tau 2τ
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
10 Mbit/s 以太网取 51.2 μ s \mu s μs 为争用期的长度。
这意味着:
对于 10 Mbit/s 以太网,在争用期内可发送 512 bit,即 64 字节。
以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。如果发生冲突,就一定是在发送的前 64 字节之内。
如果一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。
因此以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。
设最远两个站点之间的距离为d(m),最小帧长为l(bit);最小帧长=争用期 2 τ 2 \tau 2τ x 数据传输速率(bps)。
假定2km长的CSMA/CD网络的数据率为100Mb/s,假设信号在网络上的传输速率为200000km/s,求能够使用此协议的最短帧长
最短帧长=2×2/200000×100×1000000=2000bit=250Byte
让发生碰撞的站在停止发送数据后推迟一段随机的时间才能再发送数据,减少重传时发生冲突的概率。
网络层=网际层=IP层
实现网络互连,完成分组在计算机网络核心部分的传输,即实现分组在多个网络的传输。为主机之间提供逻辑通信。
对比的方面 | 虚电路服务 | 数据报服务 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信应当由用户主机来保证 |
服务质量 | 可靠传输 | 尽最大努力交付 |
连接的建立 | 必须有 | 不需要 |
终点地址 | 仅在连接建立阶段使用; 每个分组使用短的虚电路号 | 每个分组都有终点的完整地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立选择路由进行转发 |
当结点出故障时 | 所有通过出故障的结点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序到达终点 | 到达终点时不一定按发送顺序 |
端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
链路资源利用率 | 低 | 高 |
网络造价 | 高 | 低 |
IP 数据报/数据包(packet)/分组
从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。
不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表还经常动态更新(新增或超时删除)。每一台主机都设有一个ARP高速缓存(ARP cache),里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些都是该主机目前知道的一些地址。
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
主机A发送IP数据报给主机B,途中经过了5个路由器。在IP数据报的发送过程中总共使用了6次ARP。
解析:主机发送IP数据报时用一次ARP,每一个路由器在转发IP数据报时各使用一次。
ICMP不是IP的高层协议(看起来好像是高层协议,因为ICMP报文是装在IP数据报中,作为其中的数据部分),而是IP层的协议。
只报告错误,不能纠错
分类
终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
时间超过:当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定 的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
改变路由(重定向)(Redirect):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。
类型的值 | ICMP报文的类型 | 例子 |
---|---|---|
3 | 终点不可达 | 路由器或主机不能交付数据报 |
4 | 源点抑制 | 路由器或主机由于堵塞而丢弃数据报 |
11 | 时间超过 | 报文经过路由器时TTL减去1,当TTL为0时 |
12 | 参数问题 | 路由器或目的主机收到IP数据报,首部的检验和字段出现误码 |
5 | 改变路由 | 路由器把改变路由报文发送给主机,让主机调整发送给另外的路由器 |
数据字段格式
把收到的需要进行差错报告的IP数据报的首部和数据字段的前8个字节提取出来,作为ICMP报文的数据字段。再加上相应的ICMP差错报告报文的前8个字节。提取收到的数据报的数据字段前8个字节是为了得到运输层的端口号(对于TCP和 UDP)以及运输层报文的发送序号(对于TCP)。这些信息对源点通知高层协议是有用的。
回送请求和回答报文:ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。
时间戳请求和回答报文:ICMP时间戳请求报文是请某台主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个 32 位的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。时间戳请求与回答可用于时钟同步和时间测量。
类型的值 | ICMP报文的类型 | 例子 |
---|---|---|
8或0 | 回送请求或回送回答 | 测试目的站是否可达(PING程序) |
13或14 | 时间戳请求或时间戳回答 | 进行时钟同步和测量时间(traceroute程序) |
IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。
找出以源主机为根节点的多播转发树。
虚拟互连网络/逻辑互连网络,虽然互连起来的各种物理网络的异构性客观存在的,但是我们利用IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。这种使用IP协议的虚拟互连网络可简称为IP网。
使用IP网的好处是:当IP网上的主机进行通信时,就好像在一个单个网络上通信一样,它们看不见互连的各网络的具体异构细节(如具体的编址方案、路由选择协议,等等)。如果在这种覆盖全球的IP网的上层使用TCP协议,那么就是现在的互联网(Internet)。
物理层使用的中间设备叫做**中继器/转发器(repeater)**。
数据链路层使用的中间设备叫做**网桥或交换机**。
网络层使用的中间设备叫做路由器(router)。(可以隔离广播域)
路由器是读取每一个数据包中的地址然后决定如何转发分组的专用智能网络设备,用于连接多个逻辑上分开的,使用相同网络层协议的网络。
当中继系统是转发器或网桥时,一般并不称之为网络互连,因为仍然是一个网络。一般讨论的互连网都是指用路由器进行互连的互连网络。
路由器会修改经过它的分组的MAC源地址和目的地址
在网络层以上使用的中间设备叫做网关(gateway)。
※ 网关(Gateway)/网间连接器/协议转换器。网关在网络层以上实现两个高层协议不同的网络互连,网关连接两个不兼容的系统需要在高层进行协议的转换。
当源结点与目的结点位于同一个物理网络时,IP数据报从源结点到达目的结点不需要经过路由器交换结点进行转发,数据报从一台主机直接传输到另一台主机,这种交付就称为直接交付。
当源结点与目的结点不在同一个物理网络时,IP数据报需要经过路由器转发才到达到目的结点,这种交付就称为间接交付。
指标 | MAC地址 | IP地址 |
---|---|---|
长度 | 48位 | 32位 |
使用层次 | 数据链路层和物理层 | 网络层及以上 |
是否可变 | 否(硬件地址) | 是(逻辑地址) |
位置 | MAC 帧的首部 | IP 数据报的首部 |
经过路由器后地址是否改变 | 是 | 否 |
当IP数据报插入到数据链路层的MAC帧以后,整个的IP数据报就成为MAC帧的数据,因而在数据链路层看不见数据报的IP地址。
如图,画的是三个局域网用两个路由器R1和R2互连起来。现在主机H1要和主机H2通信。这两台主机的IP地址分别是IP1和 IP2,而它们的硬件地址分别为HA1和 HA2(HA表示 Hardware Address)。通信的路径是:H1→经过R转发→再经过R2转发→H2。路由器R1因同时连接到两个局域网上,因此它有两个硬件地址,即HA3和HA4。同理,路由器R2也有两个硬件地址HA5和 HA6 。
在IP层抽象的互联网上只能看到IP数据报。
虽然在IP数据报首部有源站IP地址,但路由器只根据目的站的IP地址进行转发
在局域网的链路层,只能看见MAC帧。
在不同网络上传送时,其MAC帧首部中的源地址和目的地址要发生变化。
IP层抽象的互联网屏蔽了下层这些很复杂的细节。只要在网络层上讨论问题,就能够使用统一的、抽象的IP地址研究主机和主机或路由器之间的通信。
自己总结的
把整个因特网看成为一个单一的、抽象的网络。 IP 地址就是给每个连接在互联网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。是一种逻辑地址。
D类为组播地址,只能作为目标IP地址使用,不能作为源IP使用
主机号字段全0表示该IP地址是“本主机”所连接到的单个网络地址
在三级结构的IP地址中,划分子网是使网络前缀变长。
两级IP地址的不合理之处
划分子网 (subnetting):在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。
从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。
IP 地址 ::= { <网络号>, <子网号>, <主机号> }
划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id
减少了能够连接在网络上的主机总数。
使用子网掩码(subnet mask) 可以找出IP地址中的子网部分。
不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算(AND),就立即得出网络地址来。这样在路由器处理到来的分组时就可采用同样的算法。
(IP 地址) AND (子网掩码) = 网络地址
所有的网络都必须有子网掩码,同时在路由器的路由表中也必须有子网掩码这一栏。如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。
B类地址的子网划分选择(使用固定长度子网)
当子网号位数为0时: 相当于没有划分子网。
当子网号位数为16时:相当于主机所占位数全部用于划分子网,只有子网号,却没有主机号了。(即每个子网中的有效主机数为0)
当子网号位数为15时:相当于主机号剩余一位,即有两种取值(0,1)。当取值为0时,实际为该子网的网络地址,取值为1时实际为该子网的广播地址。这两个取值都不能作为有效的主机号标识,所以也没有意义。
当子网号位数为1时:相当于子网号位一位,即有两种取值(0,1)。这两个取值也就是含子网号全0全1与父网络网络地址和广播地址重名冲突的两种情况(对路由器来说具有二义性,会发生错误)。
【例4-2】已知 IP 地址是 141.14.72.24,子网掩码是 255.255.192.0。试求网络地址。
【例4-3】上例中,若子网掩码改为 255.255.224.0,试求网络地址,讨论所得结果。
不同的子网掩码得出相同的网络地址。 但不同的掩码的效果是不同的。
使网络前缀缩短。
无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。是无分类编址方法
地址掩码(掩码)由一连串1和接着的一连串0组成,而1的个数就是网络前缀的长度。在CIDR记法中,斜线后面的数字就是地址掩码中 1 的个数。
例如,/20 地址块的地址掩码是:11111111 11111111 11110000 00000000(20个连续的1和接着的12个连续的0)。
CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块” 。可以用地址块中的最小地址和网络前缀的位数指明这个地址块。
全 0 和全 1 的主机号地址一般不使用。
128.14.35.7/20= 10000000 00001110 00100011 00000111
最小地址 | 128.14.32.0 | 10000000 00001110 00100000 00000000 |
---|---|---|
最大地址 | 128.14.47.255 | 10000000 00001110 00101111 11111111 |
这个地址块共有212个地址。上面的地址块可记为128.14.32.0/20或10000000 00001110 0010*。在不需要指出地址块的起始地址时,也可把这样的地址块简称为“/20地址块” 。
一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合/构造超网,它使得路由表中的一个项目可以表示很多个原来传统分类地址的路由。
路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。
可以更加有效地分配 IPv4 的地址空间,可根据客户的需要分配适当大小的 CIDR 地址块。
这个 ISP 共有 2^6=64 个 C 类网络。如果不采用 CIDR 技术, 则在与该 ISP 的路由器交换路由信息的每一个路由器的路由表中,就需要有 64 个项目。但采用地址聚合后,只需用路由聚合后的 1 个项目 206.0.64.0/18 就能找到该 ISP。
使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
4-24※ 已知路由器R1的转发表如下表所示。试画出各网络和必要的路由器的连接拓扑,标注出必要的IP地址和接口,对不能确定的情况应当指明。
4-25 一个自治系统有5个局域网,其连接图如图所示。LAN2至LAN5上的主机数分别为:91、150、3和15。该自治系统分配到的IP地址块为30.138.118/23。试给出每一个局域网的地址块(包括前缀)(答案不唯一)。
30.138.118/23=00011110.10001010.01110110.00000000。
LAN3有 150 台主机,1个路由器,全0网络地址和全1广播地址,至少分配256个地址。
LAN2有 91 台主机,1个路由器,全0网络地址和全1广播地址,至少分配128个。
LAN5 有 15 台主机,1个路由器,全0网络地址和全1广播地址,至少分配32个。
LAN4 有 3 台主机,1个路由器,全0网络地址和全1广播地址,至少分配8个。
LAN1 连接 3 台路由器,有 3 个IP地址,全0网络地址和全1广播地址,至少分配8个。
局域网 | 地址块 |
---|---|
LAN1 | 30.138.01110111.11000000=30.138.119.192/29 |
LAN2 | 30.138.01110111.00000000=30.138.119.0/25 |
LAN3 | 30.138.01110110.00000000=30.138.118.0/24 |
LAN4 | 30.138.01110111.11001000=30.138.119.200/29 |
LAN5 | 30.138.01110111.10000000=30.138.119.128/26 |
4-26 一个大公司有一个总部和三个下属部门。公司分配到的网络前缀是192.77.33/24。公司的网络布局如图所示。总部共有五个局域网,其中的LAN1~LAN4都连接到路由器R1上,R1再通过LAN5与路由器R2相连。R2和远地的三个部门的局域网LAN6~LAN8通过广域网相连。每一个局域网旁边标明的数字是局域网上的主机数。试给每一个局域网分配一个合适的网络前缀。
解答:
50个主机的LAN1需要前缀/26(主机号6位,62个主机号),
30个主机的LAN3需要前缀/27(主机号5位,30个主机号),
两个10个主机的LAN2和LAN4各需要一个前缀/28(主机号4位,14个主机号)。
LAN6~LAN8(加上路由器)各需要一个前缀/27(主机号5位,30个主机号),
3个WAN各有两个端点,各需要一个前缀/30(主机号2位,2个主机号)。
LAN5需要前缀/30(主机号2位,2个主机号),但考虑到以太网上可能还要再接几个主机,故留有余地,可分配一个29(主机号3位,6个主机号)。
本题的解答有很多种,下面给出其中的一种答案(先选择需要较大的网络前缀):
LAN1:192.77.33.0/26
LAN3:192.77.33.64/27 192.77.33.0100 0000
LAN6:192.77.33.96/27 192.77.33.0110 0000
LAN7:192.77.33.128/27 192.77.33.1000 0000
LAN8:192.77.33.160/27 192.77.33.1010 0000
LAN2:192.77.33.192/28 192.77.33.1100 0000
LAN4:192.77.33.208/28 192.77.33.1101 0000
LAN5:192.77.33.224/29 192.77.33.1110 0000(考虑到以太网上可能还要再接几个主机,故留有余地。)
WAN1:192.77.33.232/30 192.77.33.1110 1000
WAN2:192.77.33.236/30 192.77.33.1110 1100
WAN3:192.77.33.240/30 192.77.33.1111 0000
4-33 某单位分配到一个地址块136.23.12.64/26。现在需要进一步划分为4个一样大的子网。试问:
(1)每一个子网的网络前缀有多长?28位
(2)每一个子网中有多少个地址?2^4=16个地址
(3)每一个子网的地址是什么?
136.23.12.64=10001000 00010111 00001100 0100000
136.23.12.64/28
136.23.12.80/28
136.23.12.96/28
136.23.12.112/28
(4)每一个子网可分配给主机使用的最小地址和最大地址是什么?
除去主机号为全0的网络地址和全1的广播地址
136.23.12.65/28 136.23.12.78/28
136.23.12.81/28 136.23.12.94/28
136.23.12.97/28 136.23.12.110/28
136.23.12.113/28 136.23.12.126/28
首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。
占 4 位,指 IP 协议的版本。 目前的 IP 协议版本号为 4 (即 IPv4)。
占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节), 因此 IP 的首部长度的最大值是 60 字节。
占 8 位,用来获得更好的服务。 在旧标准中叫做服务类型,但实际上一直未被使用过。1998 年这个字段改名为区分服务。 只有在使用区分服务(DiffServ)时,这个字段才起作用。 在一般的情况下都不使用这个字段。
占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。若IP数据报总长度超过数据链路层数据部分的最大传送单元 MTU(Maximum Transfer Unit)则需要分片。
占16 位。IP 软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
占 3 位,目前只有前两位有意义。 标志字段的最低位是 MF (More Fragment)。 MF = 1 表示后面“还有分片”。MF = 0 表示最后一个分片。 标志字段中间的一位是 DF (Don’t Fragment) 。 只有当 DF = 0 时才允许分片。
占 13 位,指出较长的分组在分片后某片在原分组中的相对位置。 片偏移以 8 个字节为偏移单位。因此每个分片的长度必须是8字节(64位)的整数倍。
一数据报的总长度为 3820 字节,其数据部分的长度为 3800 字节(使用固定首部),需要分片为长度不超过 1420 字节的数据报片。
因IP固定首部长度为 20 字节,因此每个数据报片的数据部分长度不能超过 1400 字节。
于是分为 3 个数据报片,其数据部分的长度分别为 1400、1400 和 1000 字节。
原始数据报首部被复制为各数据报片的首部, 但必须修改有关字段的值。
分片示意图
IP 数据报首部中与分片有关的字段中的数值
总长度 | 标识 | MF | DF | 片偏移 | |
---|---|---|---|---|---|
原始数据报 | 3820 | 12345 | 0 | 0 | 0 |
数据报片1 | 1420 | 12345 | 1 | 0 | 0 |
数据报片2 | 1420 | 12345 | 1 | 0 | 175 |
数据报片3 | 1020 | 12345 | 0 | 0 | 350 |
占 8 位,记为 TTL (Time To Live), 指示数据报在网络中可通过的路由器数的最大值。功能为“跳数限制”。路由器在每次转发数据报之前就把TTL值减1。若 TTL值减小到零,就丢弃这个数据报,不再转发。
可以防止数据报在网络中兜圈子
占8位,指出此数据报携带的数据使用何种协议, 以便目的主机的 IP 层将数据部分上交给对应的协议进行处理
协议名 | ICMP | IGMP | IP | TCP | EGP | IGP | UDP | IPv6 | ESP | OSPF |
---|---|---|---|---|---|---|---|---|---|---|
协议字段值 | 1 | 2 | 4 | 6 | 8 | 9 | 17 | 41 | 50 | 89 |
占16位,只检验数据报的首部, 不检验数据部分。这里不采用 CRC 检验码而采用简单的16 位二进制反码求和算法。
二进制反码求和规则: 0和0相加是0,0和1相加是1,1和1相加是0但要产生一个进位1,加到下一列。若最高位相加后产生进位,则最后得到的结果要加上溢出的进位 1 (可能有多个1)。
上层协议格式
从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为N。
若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行 (3)。
若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行 (4)。
特定主机路由:对特定的目的主机指明一个路由。
若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行 (5)。
若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行 (6)。
报告转发分组出错。
IP多播(multicast)(也称多址广播或组播)技术,是一种允许一台或多台主机(多播源)发送单一数据包到多台主机(一次的,同时的)的TCP/IP网络技术。多播作为一点对多点的通信,是节省网络带宽的有效方法之一。
多播数据报可以由没有加入多组播的主机发出,也可以通过没有组成员接入的网络。
IANA提供的以太网多播地址的范围是:01-00-5E-00-00-00
到 01-00-5E-7F-FF-FF
,
只有 23位
能用作 多播地址
。
互联网号码指派管理局IANA拥有的以太网地址块的高24位为00-00-5E,以太网硬件地址字段中的第1字节的最低位为1时即为多播地址,但只分配了一半(23位)给多播,因此高24位为01-00-5E,并且25位为0。
由于多播IP地址与以太网硬件地址的映射关系不是唯一的(228:223=32:1),因此收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
23bit完全相同的几率已经很小了,这种设计方法只是只是一个折中而已
ip多播地址 224.128.64.32 (E0-80-40-20)
和 另一个 ip多播地址 224.0.64.32 (E0-00-40-20)
转换成以太网的硬件多播地址都是 01-00-5E-00-40-20
仍需要目的主机在3层根据ip地址进行过滤
在路由器中运行,自动找到路由器转发分组最合适的路径
将整个互联网划分为许多较小的自治系统 (Autonomous System,AS),一个自治系统是一个互联网,其最重要的特点是自治系统有权自主地决定在本系统内采用何种路由选择协议。一个自治系统内的所有网络都属于一个行政单位来管辖。一个自治系统的所有路由器在本自治系统内必须是连通的。
自治系统之间的路由选择也叫做域间路由选择 (interdomain routing),在自治系统内部的路由选择叫做域内路由选择 (intradomain routing) 。
在一个自治系统内部使用的路由选择协议
路由信息协议 RIP (Routing Information Protocol) 是一种分布式的、基于距离向量算法的路由选择协议。 要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
实现简单,开销较小。
对每一个相邻路由器发送过来的RIP报文,进行以下步骤:
对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目:把“下一跳”字段中的地址都改为X,并把所有的“距离”字段的值加1。每一个项目都有三个关键数据,即:到目的网络N,距离是d,下一跳路由器是X。
这样做是为了便于进行本路由表的更新。假设从位于地址X的相邻路由器发来的RIP报文的某一个项目是“Net2,3,Y”,意思是“我经过路由器Y到网络Net2的距离是3”,那么本路由器就可推断出:“我经过X到网络Net2的距离应为3+1 = 4”。于是,本路由器就把收到的RIP报文的这一个项目修改为“Net2,4,X",作为下一步和路由表中原有项目进行比较时使用(只有比较后才能知道是否需要更新)。注意:收到的项目中的Y对本路由器是没有用的,因为Y不是本路由器的下一跳路由器地址(是下下一跳)。
对修改后的RIP报文中的每一个项目,进行以下步骤:
若原来的路由表中没有目的网络N,则把该项目添加到路由表中。
表明这是新的目的网络,应当加入到路由表中。例如,本路由表中没有到目的网络Net2的路由,那么在路由表中就要加入新的项目“Net2,4,X”。
否则(即在路由表中有目的网络N,这时就再查看下一跳路由器地址〉
若下一跳路由器地址是X,则把收到的项目替换原路由表中的项目。
要以最新的消息为准。到目的网络的距离有可能增大或减小,但也可能没有改变。例如,不管原来路由表中的项目是“Net2,3,X”还是“Net2,5,X”,都要更新为现在的“Net2,4,X”。
否则(即这个项目是:到目的网络N,但下一跳路由器不是X)
若收到的项目中的距离d小于路由表中的距离,则进行更新;
例如,若路由表中己有项目“Net2,5,P”,就要更新为“Net2,4,X”。因为到网络Net2的距离原来是5,现在减到4,更短了。
否则什么也不做。
若距离更大了,显然不应更新。若距离不变,更新后得不到好处,因此也不更新。
若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达的路由器,即把距离置为16(距离为16表示不可达)。
返回。
上面给出的距离向量算法的基础就是 Bellman-Ford 算法(或Ford-Fulkerson算法)。这种算法的要点是这样的:
设是结点A到B的最短路径上的一个结点。若把路径A→B拆成两段路径A→X和X→B,则每一段路径A→X和X→B也都分别是结点A到X和结点X到B的最短路径。
【例4-5】已知路由器R6有表4-9(a)所示的路由表。现在收到相邻路由器R4发来的路由更新信息,如表4-9(b)所示。试更新路由器R6的路由表。
先把表4-9(b)中的距离都加1,并把下一跳路由器都改为R。得出表4-9©。
把这个表的每一行和表4-9(a)进行比较。
第一行在表4-9(a)中没有,因此要把这一行添加到表4-9(a)中。
第二行的Net2在表4-9(a)中有,且下一跳路由器也是R4。因此要更新(距离增大了)。第三行的Net3在表4-9(a)中有,但下一跳路由器不同。于是就要比较距离。新的路由信息的距离是2,小于原来表中的4,因此要更新。
这样,得出更新后的R的路由表如表4-9(d)所示。
4-37 假定网络中得路由器B的路由表有如下项目。
目的网络 | 距离 | 下—跳路由器 |
---|---|---|
N1 | 7 | A |
N2 | 2 | c |
N6 | 8 | F |
N8 | 4 | E |
N9 | 4 | F |
现在B收到从C发来的路由信息如下表。
目的网络 | 距离 |
---|---|
N2 | 4 |
N3 | 8 |
N6 | 4 |
N8 | 3 |
N9 | 5 |
目的网络 | 距离 | 下—跳路由器 |
---|---|---|
N2 | 5 | C |
N3 | 9 | C |
N6 | 5 | C |
N8 | 4 | C |
N9 | 6 | C |
目的网络 | 距离 | 下一条路由 | 备注 |
---|---|---|---|
N1 | 7 | A | 无新信息,不变 |
N2 | 5 | C | 以新信息为准 |
N3 | 9 | C | 原路由表没有目的网络N1,添加进去 |
N6 | 5 | C | 相比于F,选择C为下一跳更短 |
N8 | 4 | E | 下一跳选择E与C距离相同,不变 |
N9 | 4 | F | 选择C为下一跳距离更长,不变。 |
开放最短路径优先 OSPF (Open Shortest Path First)是为克服 RIP 的缺点在 1989 年开发出来的,是分布式的链路状态协议 。
注意:OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
OSPF最主要的特征就是使用分布式的链路状态协议(link state protocol),而不是像RIP那样的距离向量协议。和RIP协议相比,OSPF 的三个要点和RIP的都不一样:
向本自治系统中所有路由器发送信息。这样,最终整个区域中所有的路由器都得到了这个信息的一个副本。
使用是洪泛法(flooding),路由器通过所有输出端口向所有相邻的路由器发送信息。而每一个相邻路由器又再将此信息发往其所有的相邻路由器(但不再发送给刚刚发来信息的那个路由器)。
而RIP协议仅仅向自己相邻的几个路由器发送信息。
发送的信息为与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
所谓“链路状态”就是说明本路由器都和哪些路由器相邻°,以及该链路的“度量”(metric)。OSPF将这个“度量”用来表示费用、距离、时延、带宽,等等。这些都由网络管理人员来决定,因此较为灵活。有时为了方便就称这个度量为“代价”。
而对于RIP协议,发送的信息是:“到所有网络的距离和下一跳路由器”(路由表)。
只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息。
而RIP不管网络拓扑有无发生变化,路由器之间都要定期交换路由表的信息。
若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。
外部网关协议(Border Gateway Protocol)是不同自治系统的路由器之间交换路由信息的协议。
BGP 较新版本是 2006 年 1 月发表的 BGP-4 (BGP 第 4 个版本)
端到端的
,传输路径中的路由器不能分片,所以从一般意义上说,IPv6不允许分片
(不允许类似IPv4的路由分片)。传统的点对点通信。
一点对多点的通信。
这是 IPv6 增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个。
为了使地址再稍简洁些,IPv6 使用冒号十六进制记法 (colon hexadecimal notation, 简写为 colon hex)
允许把数字前面的 0 省略。例如 把 0000 中的前三个 0 省略,写成 1 个 0
冒号十六进制记法可以允许零压缩 (zero compression),即一连串连续的零可以为一对冒号所取代。在任一地址中只能使用一次零压缩。
FF05:0:0:0:0:0:0:B3 可压缩为:FF05::B3
冒号十六进制记法可结合使用点分十进制记法的后缀。 这种结合在 IPv4 向 IPv6 的转换阶段特别有用。
0:0:0:0:0:0:128.10.2.1 再使用零压缩即可得出: ::128.10.2.1
CIDR 的斜线表示法。
60 位的前缀 12AB00000000CD3 可记为: 12AB:0000:0000:CD30:0000:0000:0000:0000/60 或 12AB::CD30:0:0:0:0/60 (零压缩) 或 12AB:0:0:CD30::/60 (零压缩)
一个用点分十进制记法的128位的地址为:
104.230.140.100.255.255.255.255.0.0.17.128.150.10.255.255
对应的冒号十六进制记法地址为:
68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
地址类型 | 二进制前缀 |
---|---|
未指明地址 | 00…0(128位),可记为::/128。 |
环回地址 | 00…1(128位),可记为::1/128。 |
多播地址 | 11111111(8位),可记为FF00::/8。 |
本地链路单播地址 | 1111111010(10位), 可记为FE80::/10。 |
全球单播地址 | (除上述四种外,所有其他的二进制前缀) |
双协议栈(dual stack)是指在完全过渡到IPv6之前,使一部分主机(或路由器)装有双协议栈:一个IPv4和一个IPv6。因此双协议栈主机(或路由器)既能够和IPv6的系统通信,又能够和IPv4的系统通信。
双协议栈的主机(或路由器)记为IPv6/IPv4,表明它同时具有两种IP地址:一个IPv6地址和一个IPv4地址。
双协议栈主机在和 IPv6主机通信时采用IPv6地址,而和 IPv4主机通信时则采用IPv4地址。双协议栈主机使用域名系统DNS来查询知道目的主机是采用哪一种地址。若DNS返回的是IPv4地址,双协议栈的源主机就使用IPv4地址。但当DNS返回的是IPv6地址,源主机就使用IPv6地址。
图4-49所示的情况是源主机A和目的主机F都使用IPv6,所以A向F发送IPv6数据报,路径是A→B→C→D→E→F。中间B到E这段路径是IPv4网络,路由器B不能向C转发IPv6数据报,因为C只使用IPv4协议。B是IPv6/IPv4路由器,它把IPv6数据报首部转换为IPv4数据报首部后发送给C。C再转发到D。当D转发到IPv4网络的出口路由器E时(E也是IPv6/IPv4路由器),再恢复成原来的IPv6数据报。
注意:IPv6首部中的某些字段无法恢复。例如,原来IPv6首部中的流标号X在最后恢复出的IPv6数据报中只能变为空缺。这种信息的损失是使用首部转换方法所不可避免的。
在IPv6数据报要进入 IPv4网络时,把 IPv6数据报封装成为IPv4数据报。整个的IPv6数据报变成了IPv4 数据报的数据部分。
IPv4数据报从路由器B经过路由器C和D,传送到E,而原来的IPv6数据报就好像在IPv4网络的隧道中传输,什么都没有变化。当IPv4数据报离开IPv4网络中的隧道时,再把数据部分(即原来的IPv6数据报)交给主机的IPv6协议栈。
图中的一条粗线表示在IPv4网络中好像有一个从B到E的“IPv6隧道”,路由器B是隧道的入口而E是出口。
在隧道中传送的数据报的源地址是B而目的地址是E。
要使双协议栈的主机知道IPv4 数据报里面封装的数据是一个IPv6数据报,就必须把IPv4首部的协议字段的值设置为41(41表示数据报的数据部分是IPv6数据报)。
使用ICMP来反馈一些差错信息。它合并了IPv4中地址解析协议ARP和网际组管理协议IGMP的功能。是面向报文的协议。
仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。
全球唯一的 IP 地址,必须向互联网的管理机构申请。
在内部使用的本地地址就有可能和互联网中某个 IP 地址重合,这样就会出现地址的二义性问题。
RFC 1918 指明了一些专用地址 (private address)也叫做可重用地址 (reusable address)。
专用地址只能用作本地地址而不能用作全球地址。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
采用这样的专用 IP 地址的互连网络称为专用互联网或本地互联网,或更简单些,就叫做专用网。
虚拟专用网 VPN (Virtual Private Network):利用公用的互联网作为本机构各专用网之间的通信载体
VPN连接的每一个场所至少要有一个路由器具有合法的全球IP地址
路由器R1和R2。这两个路由器和互联网的接口地址必须是合法的全球IP地址。路由器R1和R2在专用网内部网络的接口地址则是专用网的本地地址。
网络地址转换 NAT (Network Address Translation) :解决在专用网上使用专用地址的主机如何与互联网上的主机通信(并不需要加密)问题。
图中给出了 NAT路由器的工作原理。专用网192.168.0.0内所有主机的IP地址都是本地IP地址192.168.x.x。NAT路由器至少要有一个全球IP地址(此处为172.38.1.5),才能和互联网相连。
可以看出,在内部主机与外部主机通信时,在NAT路由器上发生了两次地址转换:
NAT地址转换表示例
方向 | 字段 | 旧的IP地址 | 新的IP地址 |
---|---|---|---|
出 | 源IP地址 | 192.168.0.3 | 172.38.1.5 |
入 | 目的IP地址 | 172.38.1.5 | 192.168.0.3 |
“多协议”表示在 MPLS 的上层可以采用多种协议,例如:IP,IPX;可以使用多种数据链路层协议,例如:PPP,以太网,ATM 等。
“标记”是指每个分组被打上一个标记,根据该标记对分组进行转发。
每个分组携带一个叫做标记 (label) 的小整数。当分组到达交换机(即标记交换路由器)时, 交换机读取分组的标记, 并用标记值来检索分组转发表。这样就比查找路由表来转发分组要快得多。
网络层为主机之间提供逻辑通信,主机的身份标志是 IP 地址
运输层为应用进程之间提供端到端的逻辑通信,进程的身份标志是端口
向上面的应用层提供逻辑通信服务。(为应用进程之间提供端到端的逻辑通信)
“端”是指用户应用程序的“端口”
端口复用(multiplexing)和分用 (demultiplexing)。
复用:各个应用进程可以通过运输层将数据传送到网络IP层
分用:运输层从网络IP层收到应用进程数据后,必须交付给指定的用户进程
向高层用户屏蔽了下面网络核心的细节 (如网络拓扑、所采用的路由选择协议等), 它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。
协议端口号 (protocol port number),简称端口 (port),也称为进程标识。两个计算机中的进程要互相通信,不仅必须知道对方的 IP 地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。
标志主机中的进程
充当通信的终点。
只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由 TCP 来完成。
应用层的各种协议进程与运输实体进行层间交互的地址
熟知端口,数值一般为 0 ~ 1023。
常用熟知端口号(前6个,除了TFTP)
应用程序 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP | SNMP(trap) | HTTPS |
---|---|---|---|---|---|---|---|---|---|
熟知端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 | 162 | 443 |
登记端口号,数值为 1024 ~ 49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记, 以防止重复。
指标 | UDP | TCP |
---|---|---|
提供的服务 | 无连接 | 面向连接(逻辑连接) 保证可靠和顺序交付 |
交付 | 尽力而为地交付 | 可靠交付 |
TPDU | UDP报文/用户数据报 | 报文段(segment) |
处理上层数据 | 基于报文 | 基于字节流 |
首部、资源开销 | 小 | 大 |
信息交互方式 | 半双工 | 全双工 |
接收到差错的TPDU | 直接丢弃 | 接收方丢弃,发送方重传 |
多播和广播 | 支持 | 不支持 |
运输[协议数据单元](#协议数据单元 PDU (Protocol Data Unit)) TPDU (Transport Protocol Data Unit):两个对等运输实体在通信时传送的数据单位。
无论在哪一层传送的数据单元,都可笼统地用“分组”来表示。
UDP 只在 IP 的数据报服务之上增加了很少一点的功能:复用和分用和差错检测
无连接,发送数据之前不需要建立连接。因此减少了开销和发送数据之前的时延。
尽最大努力交付。即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
面向报文。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界,一次交付一个完整的报文。
应用程序必须选择合适大小的报文。
- 若报文太长,UDP 把它交给 IP 层后,IP 层在传送时可能要进行分片(MTU),降低 IP 层的效率。
- 若报文太短,UDP 把它交给 IP 层后,会使 IP 数据报的首部的相对长度太大,也降低 IP 层的效率。
没有拥塞控制。因此网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。 很适合多媒体通信的要求。
支持一对一、一对多、多对一和多对多的交互通信(半双工)。
首部开销小。只有 8 个字节,比 TCP 的 20 个字节的首部要短。
源端口号在需要对方回信时选用。不需要时可用全0。
目的端口号在终点交付报文时必须使用。
UDP用户数据报的长度,其最小值是8(仅有首部)。
检测UDP用户数据报在传输中是否有错,有错就丢弃。
假定用户数据报的长度是15字节,因此要添加一个全0的字节。
伪首部:仅用于计算检验和。在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。
5-49 下面是以十六进制格式存储的一个 UDP 首部:
CB84 000D 001C 001C
试问:
(1) 源端口号是什么?
12×163 +11×162 +8×16+4=52100
(2) 目的端口号是什么?
13
(3) 这个用户数据报的总长度是什么?
16+12=28Byte
(4) 数据长度是多少?
28-8=20Byte
(5)这个分组是从客户到服务器还是从服务器到客户?
客户到服务器,因为目的端口号是熟知端口
(6) 客户进程是什么?
从 RFC 867 可以得知,这个客户进程是 Daytime。当 Daytime 服务器收到客户发送的 UDP 用户数据报后,就把现在的日期和时间以 ASCII 码字符串的形式返回给客户。
面向连接
每一条 TCP 连接只能有两个端点 (endpoint),只能是点对点的(一对一)。
提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达。
提供全双工通信。TCP运行通信双方的应用进程在任何时候都能发送数据。
面向字节流。
流(stream) :流入或流出进程的字节序列。
面向字节流:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流。TCP 不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系。 但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。
TCP 把连接作为最基本的抽象。每一条 TCP 连接有两个端点。每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定,即:
TCP 连接 ::= { socket1 , socket2 } = {(IP1 : port1 ), (IP2 : port2 )}
套接字 (socket) /插口:是TCP 连接的端点。端口号拼接到 (contatenated with) IP 地址即构成了套接字。
套接字 socket = (IP地址 : 端口号)
TCP发送的报文段是交给IP层传送的。但IP层只能提供尽最大努力服务,也就是说,TCP下面的网络所提供的是不可靠的传输。因此,TCP必须采用适当的措施才能使得两个运输层之间的通信变得可靠。
每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
停止等待协议可以看作是连续ARQ协议发送窗口和接收窗口都为1的特殊情况,且只需要1比特给报文段编号即可
使用确认和重传机制,可以在不可靠的传输网络上实现可靠的通信。
A 发送分组 M1,发完就暂停发送,等待 B 的确认 (ACK)。B 收到了 M1 向 A 发送 ACK。A 在收到了对 M1 的确认后,再发送下一个分组 M2。
优点是简单,缺点是信道利用率太低。
U = T D T D + R T T + T A U=\dfrac{T_{D}}{T_{D}+RTT+T_{A}} U=TD+RTT+TATD
T D T_{D} TD :A发送分组所需要的时间, T D = 分组长度 数据率 T_{D}=\dfrac{分组长度}{数据率} TD=数据率分组长度
T A T_{A} TA :B发送确认分组所需要的时间
RTT:往返时间
这两种情况下,B 都不会发送任何确认信息。
B 接收 M1 时检测出了差错,就丢弃 M1,其他什么也不做 (不通知 A 收到有差错的分组)。
M1 在传输过程中丢失了,这时 B 当然什么都不知道,也什么都不做。
解决方法为超时重传
下面两种情形都会出现延迟重复分组问题
5-18 假定在运输层使用停止等待协议。发送方在发送报文段M0后在设定的时间内未收到确认,于是重传M0,但M0又迟迟不能到达接收方。不久,发送方收到了迟到的对M0的确认,于是发送下一个报文段M1,不久就收到了对M1的确认。接着发送方发送新的报文段M0,但这个新的M0在传送过程中丢失了。正巧,一开始就滞留在网络中的M0现在到达接收方。接收方无法分辨M0是旧的。于是收下M0,并发送确认。显然,接收方后来收到的M0是重复的,协议失败了。试画出类似于图5-9所示的双方交换报文段的过程。
自动重传请求 ARQ (Automatic Repeat reQuest):重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组。
容易实现,即使确认丢失也不必重传。
在没有收到 B 的确认的情况下,A 可以连续把窗口内的数据都发送出去。
发送窗口里面的序号表示允许发送的序号。
根据接收方 B 给出的窗口值,发送方 A 构造出自己的发送窗口。
假定A收到了B发来的确认报文段,其中(接收)窗口是20字节,而确认号是31(这表明B期望收到的下一个序号是31,而序号30为止的数据已经收到了)。根据这两个数据,A就构造出自己的发送窗口(不能超过接收窗口大小)。
TCP 标准强烈不赞成发送窗口前沿向后收缩。因为很可能发送方在收到这个通知以前已经发送了窗口中的许多数据,现在又要收缩窗口,不让发送这些数据,这样就会产生一些错误。
A发送数据
假定A发送了序号为31~41共11 个字节的数据。
P3-P1=A的发送窗口
P2-P1=已发送但尚未收到确认的字节数
P3-P2=允许发送但当前尚未发送的字节数(又称为可用窗口或有效窗口)
B接收数据并发送确认报文
数据未按序到达
假定B收到了序号为32和33的数据,先存下。这些数据没有按序到达,因为序号为31的数据没有收到(也许丢失了,也许滞留在网络中的某处)。请注意,B只能对按序收到的数据中的最高序号给出确认,因此B发送的确认报文段中的确认号仍然是31(即期望收到的序号),而不能是32或33。
部分已发送数据按序到达
假定B收到了序号为31的数据,并把序号为31~33的数据交付主机,然后B删除这些数据。接着把接收窗口向前移动3个序号(图5-17),同时给A发送确认,其中窗口值仍为20,但确认号是34。这表明B已经收到了到序号 33为止的数据。A收到B的确认后,就可以把发送窗口向前滑动3个序号,但指针P2不动。可以看出,现在A的可用窗口增大了,可发送的序号范围是42~53。
A 的发送窗口内的序号都已用完, 但还没有再收到确认,必须停止发送。
A在经过一段时间后(由超时计时器控制)重传这部分数据,重新设置超时计时器,直到收到B的确认为止。如果A收到确认号落在发送窗口内,那么A就可以使发送窗口继续向前滑动,并发送新的数据。
加权平均往返时间/平滑的(smooth)往返时间 RTTS
第一次测量到 RTT 样本时,RTTS 值就取为所测量到的 RTT 样本值。以后每测量到一个新的 RTT 样本,就按下式重新计算一 次 RTTS:
新的RTTS = (1 − α) × (旧的RTTS ) + α × (新的RTT样本)
0 ≤ α ≤ 1。若 α 很接近于零,表示 RTT 值更新较慢。若选择 α 接近于 1,则表示 RTT 值更新较快。
RFC 2988 推荐的 α 值为 1/8,即 0.125。
RTT 的偏差的加权平均值 RTTD
第一次测量时,RTTD 值取为测量到的 RTT 样本值的一半。在以后的测量中,则使用下式计算加权平均的 RTTD:
新的 RTTD = (1 − β) × (旧的RTTD ) + β × |RTTS − 新的 RTT 样本|
β 是个小于 1 的系数,其推荐值是 1/4,即 0.25
超时重传时间 RTO (Retransmission Time-Out) 应略大于上面得出的加权平均往返时间 RTTS 。
选择确认SACK (Selective ACK) :若收到的报文段无差错,只是未按序号,中间还缺少一些序号的数据,则可只传送缺少的数据而不重传已经正确到达接收方的数据
要在 TCP 首部的选项中加上“允许 SACK”的选项
由于首部选项的长度最多只有 40 字节,而指明一个边界就要用掉 4 字节,因此在选项中最多只能指明 4 个字节块的边界信息。
4个字节块共有8个边界,因而需要用32个字节来描述。另外还需要两个字节。一个字节用来指明是 SACK选项,另一个字节是指明这个选项要占用多少字节。如果要报告五个字节块的边界信息,那么至少需要42个字节。
流量控制 (flow control) :让发送方的发送速率不要太快,既要让接收方来得及接收(防止传入数据耗尽接收方资源),也不要使网络发生拥塞。
TCP 为每一个连接设有一个持续计时器 (persistence timer) 。只要 TCP 连接的一方收到对方的零窗口通知,就启动该持续计时器。
死锁:A 一直等待收到 B 发送的非零窗口的通知,而 B 也一直等待 A 发送的数据。
只要出现这两种情况之一,接收方就发出确认报文,并向发送方通知当前的窗口大小。
在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。
防止过多的数据注入到网络中,避免使网络中的路由器或链路过载。
∑对资源需求 > 可用资源
上述这些指标的上升都标志着拥塞的增长。
需抑制发送端发送数据的速率
某些拥塞控制算法向发送端发送控制报文,并告诉发送端,网络已出现麻烦,必须放慢发送速率。
指标 | 流量控制 | 拥塞控制 |
---|---|---|
问题侧重点 | 端到端 | 全局性 |
作用 | 控制点对点通信量 | 防止过多数据注入网络中 |
问题产生原因 | 发送端发送数据的速率过快, 接收端来不及接收。 | 不明确 |
此处的拥塞控制算法并未考虑流量控制,认为接收方和发送方的缓存是无限大的。
举例:
规则:
当 TCP 连接进行初始化时,拥塞窗口cwnd=1。
图中的窗口单位不使用字节而使用报文段。 慢开始门限的初始值设置为 16 个报文段,即 ssthresh = 16。
发送方每收到一个对新报文段的确认 ACK, 就把拥塞窗口值加 1 倍,然后开始下一轮的传输。拥塞窗口 cwnd 随着传输轮次按指数规律增长。
当拥塞窗口 cwnd 增长到慢开始门限值 ssthresh 时(图中的点①,此时拥塞窗口 cwnd = 16),就改为执行拥塞避免算法,拥塞窗口按线性规律增长。
当拥塞窗口 cwnd > 16 时,进入拥塞避免,拥塞窗口每一轮次只加1。
假设当拥塞窗口 cwnd = 24 时,网络出现了超时(图中的点②),发送方判断为网络拥塞。于是调整门限值 ssthresh = cwnd / 2 = 12,同时设置拥塞窗口 cwnd = 1,进入慢开始阶段。
缺点:
定义
优点
让发送方尽早知道发生了个别报文段的丢失,可以使整个网络的吞吐量提高约 20%。
举例
定义
规则
举例
在图的点④,发送方知道现在只是丢失了个别的报文段。于是不启动慢开始,而是执行快恢复算法。 这时,发送方调整门限值 ssthresh = cwnd / 2 = 8, 同时设置拥塞窗口 cwnd = ssthresh = 8(见图中的点⑤),并开始执行拥塞避免算法。
四个算法统一使用
5-39 TCP 的拥塞窗口 cwnd 大小与传输轮次 n 的关系如表所示:
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cwnd | 1 | 2 | 4 | 8 | 16 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
n | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
cwnd | 40 | 41 | 42 | 21 | 22 | 23 | 24 | 25 | 26 | 1 | 2 | 4 | 8 |
(1)试画出如教材中图 5-25 所示的拥塞窗口与传输轮次的关系曲线。
(2)指明 TCP 工作在慢开始阶段的时间间隔。
[1, 6] 和 [23, 26]
(3)指明 TCP 工作在拥塞避免阶段的时间间隔。
[6, 16] 和 [17, 22]
(4)在第 16 轮次和第 22 轮次之后发送方是通过收到三个重复的确认还是通过超时检测到丢失了报文段?
在第 16 轮次之后发送方通过收到三个重复的确认,检测到丢失了报文段,因为题目给出,下一个轮次的拥塞窗口减半了。
在第 22 轮次之后发送方通过超时,检测到丢失了报文段,因为题目给出,下一个轮次的拥塞窗口下降到 1了。
(5)在第 1 轮次,第 18 轮次和第 24 轮次发送时,门限 ssthresh 分别被设置为多大?
在第 1 轮次发送时,门限 ssthresh 被设置为 32,因为从第 6 轮次起就进入了拥塞避免状态,拥塞窗口每个轮次加 1。
在第 18 轮次发送时,门限 ssthresh 被设置为发生拥塞时拥塞窗口 42 的一半,即 21。
在第 24 轮次发送时,门限 ssthresh 被设置为发生拥塞时拥塞窗口 26 的一半,即 13。
(6)在第几轮次发送出第 70 个报文段?
第 1 轮次发送报文段 1。(cwnd = 1)
第 2 轮次发送报文段 2, 3。(cwnd = 2)
第 3 轮次发送报文段 4 ~ 7。(cwnd = 4)
第 4 轮次发送报文段 8 ~ 15。(cwnd = 8)
第 5 轮次发送报文段 16 ~ 31。(cwnd = 16)
第 6 轮次发送报文段 32 ~ 63。(cwnd = 32)
第 7 轮次发送报文段 64 ~ 96。(cwnd = 33)
因此第 70 报文段在第 7 轮次发送出。
(7)假定在第 26 轮次之后收到了三个重复的确认,因而检测出了报文段的丢失,那么拥塞窗口 cwnd 和门限 ssthresh 应设置为多大?
检测出了报文段的丢失时拥塞窗口 cwnd 是 8,因此拥塞窗口 cwnd 的数值应当减半,等于 4,而门限 ssthresh 应设置为检测出报文段丢失时的拥塞窗口 8 的一半,即 4。
接收方窗口rwnd/通知窗口(advertised window)
拥塞窗口cwnd
发送窗口的上限值 = Min [rwnd, cwnd]
rwnd 和 cwnd 中数值较小的一个,控制了发送方发送数据的速率。
各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。固定首部的数值为5。
占 6 位,保留为今后使用,但目前应置为 0。
当 URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
只有当 ACK = 1 时确认号字段才有效。当 ACK = 0 时,确认号无效。
接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。
当 RST = 1 时,表明 TCP 连接中出现 严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
同步 SYN = 1 表示这是一个连接请求或连接接受报文。
用来释放一个连接。FIN = 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
占 2 字节,用来让对方设置发送窗口的大小依据,单位为字节。
占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。
占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
主动队列管理 AQM (Active Queue Management)。
主动:不要等到路由器的队列长度已经达到最大值时才不得不丢弃后面到达的分组。这样就太被动了。应当在队列长度达到某个值得警惕的数值时 (即当网络拥塞有了某些拥塞征兆时),就主动丢弃到达的分组。
随机早期检测 RED (Random Early Detection)
TCP共使用以下四种计时器,即重传计时器、持续计时器、保活计时器和时间等待计时器。这几个计时器的主要特点如下:
重传计时器:当TCP发送报文段时,就创建该特定报文段的重传计时器。可能发生两种情况:若在计时器截止时间到之前收到了对此特定报文段的确认,则撤销此计时器。若在收到了对此特定报文段的确认之前计时器截止期到,则重传此报文段,并将计时器复位。
持续计时器:为了对付零窗口大小通知,TCP需要另一个计时器。假定接收TCP宣布了窗口大小为零。发送TCP就停止传送报文段,直到接收TCP发送确认并宣布一个非零的窗口大小。但这个确认可能会丢失。我们知道在TCP中,对确认是不需要发送确认的。若确认丢失了,接收TCP并不知道,而是会认为它已经完成任务了,并等待着发送TCP接着会发送更多的报文段。但发送TCP由于没有收到确认,就等待对方发送确认来通知窗口的大小,双方的TCP都在永远地等待着对方。
要打开这种死锁,TCP为每一个连接使用一个持续计时器。当发送TcP收到一个窗口大小为零的确认时,就启动持续计时器。当持续计时器期限到时,发送TCP就发送一个特殊的报文段,叫做探测报文段。这个报文段只有一个字节的数据。它有一个序号,但它的序号永远不需要确认;甚至在计算对其他部分的数据的确认时该序号也被忽略。探测报文段提醒接收TCP:确认已丢失,必须重传。
持续计时器的值设置为重传时间的数值。但是,若没有收到从接收端来的响应,则需发送另一个探测报文段,并将持续计时器的值加倍和复位。发送端继续发送探测报文段,将持续计时器设定的值加倍和复位,直到这个值增大到门限值(通常是60秒)为止。在这以后,发送端每隔60秒就发送一个探测报文段,直到窗口重新打开。
保活计时器:保活计时器使用在某些实现中,用来防止在两个TCP之间的连接出现长时期的空闲。假定客户打开了到服务器的连接,传送了一些数据,然后就保持静默了。也许这个客户出故障了。在这种情况下,这个连接将永远地处理打开状态。
要解决这种问题,在大多数的实现中都是使服务器设置保活计时器。每当服务器收到客户的信息,就将计时器复位。超时通常设置为2小时。若服务器过了2小时还没有收到客户的信息,它就发送探测报文段。若发送了10个探测报文段(每一个相隔75秒)还没有响应,就假定客户出了故障,因而就终止该连接。
时间等待计时器:时间等待计时器是在连接终止期间使用的。当TCP关闭一个连接时,它并不认为这个连接马上就真正地关闭了,在时间等待期间中,连接还处于一种中间过渡状态。这就可以使重复的FIN报文段(如果有的话)可以到达目的站因而可将其丢弃,这个计时器的值通常设置为一个报文段的寿命期待值的两倍。
TCP 建立连接的过程叫做握手。 握手需要在客户和服务器之间交换三个 TCP 报文段。称之为三报文握手(三次握手)。
不是两次的原因:
防止已失效的连接请求报文段被服务端接收,从而产生错误。
若客户端向服务端发送的连接请求丢失,客户端等待应答超时后就会再次发送连接请求,此时,上一个连接请求就是『失效的』。由于只有两次握手,服务端收到请求就会进入ESTABLISHED状态,等待发送数据或主动发送数据。但此时的客户端早已进入CLOSED状态,服务端将会一直等待下去,这样浪费服务端连接资源。
不是四次或更多次的原因:
三次通信是满足"在不可靠信道上可靠地传输信息"这一需求理论上的最小值,增加次数浪费资源。
TCP 释放连接的过程叫做挥手。 握手需要在客户和服务器之间交换四个 TCP 报文段。称之为四报文挥手(四次挥手)。数据传输结束后,通信的双方都可释放连接。
假设现在 A 的应用进程先向其 TCP 发出连接释放报文段,并停止再发送数据,主动关闭 TCP 连接。
A 把连接释放报文段首部的 FIN = 1,其序号 seq = u,等待 B 的确认。①
B 发出确认,确认号 ack = u + 1, 而这个报文段自己的序号 seq = v。TCP 服务器进程通知高层应用进程。②
至此,从 A 到 B 这个方向的连接就释放了,TCP 连接处于半关闭(half-close)状态。
B 若发送数据,A 仍要接收。
若 B 已经没有要向 A 发送的数据, 其应用进程就通知 TCP 释放连接。在确认报文段中FIN = 1,ACK = 1,序号 seq = w ,确认号 ack = u + 1。③
A 收到连接释放报文段后,必须发出确认。在确认报文段中 ACK = 1,确认号 ack = w + 1, 序号 seq = u + 1。④
TCP 连接必须经过时间等待计时器(TIME-WAIT timer)设置的时间 2MSL 后才真正释放掉。
时间MSL叫做最长报文段寿命(Maximum Segment Lifetime)
保证A发送的最后一个ACK报文段能够到达 B。
这个ACK报文段有可能丢失,因而使处在LAST-ACK状态的B收不到对已发送的FIN + ACK报文段的确认。B会超时重传这个FIN +ACK报文段,而A就能在2MSL时间内收到这个重传的FIN + ACK报文段。接着A重传一次确认,重新启动2MSL计时器。最后,A 和B都正常进入到CLOSED 状态。
如果A在TIME-WAIT 状态不等待一段时间,而是在发送完ACK报文段后立即释放连接,那么就无法收到B重传的FIN + ACK报文段,因而也不会再发送一次确认报文段。这样,B就无法按照正常步骤进入CLOSED状态。
防止上一节提到的“已失效的连接请求报文段”出现在本连接中。
A在发送完最后一个ACK 报文段后,再经过时间2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。
FIN
时,仅仅表示客户端不再发送数据了但是还能接收数据。FIN
报文时,先回一个 ACK
应答报文,而服务端可能还有数据需要处理和发送,等服务端不再发送数据时,才发送 FIN
报文给客户端来表示同意现在关闭连接。当服务器端收到客户端的FIN
后,服务器端同时也要关闭连接,这样就可以把ACK
和FIN
合并到一起发送,节省了一个包,变成了“三次挥手”。
可以更清晰地看出 TCP 连接各种状态之间的关系。
方框
TCP 可能具有的状态
方框中的大写英文字符串
TCP 标准所使用的 TCP 连接状态名
状态之间的箭头
含义
可能发生的状态变迁
分类
粗实线箭头
表示对客户进程的正常变迁。
粗虚线箭头
表示对服务器进程的正常变迁。
细线箭头
表示异常变迁。
5-41 用 TCP 传送 512 字节的数据。设窗口为 100 字节,而 TCP 报文段每次也是传送 100 字节的数据。再设发送端和接收端的起始序号分别选为 100 和 200,试画出类似于教材中图 5-28 的工作示意图。从连接建立阶段到连接释放都要画上。
要传送的 512 B 的数据必须划分为 6 个报文段传送,前 5 个报文段各 100 B,最后一个报文段传送 12 B。下图是双方交互的示意图。下面进行简单的解释。
【----- 进行三报文握手 -----】
报文段 #1:A 发起主动打开,发送 SYN 报文段,除以 SYN-SENT 状态,并选择初始序号 seq = 100。B 处于 LISTEN 状态。
报文段 #2:B 确认 A 的 SYN 报文段,因此 ack = 101(是 A 的初始序号加 1)。B选择初始序号 seq = 200。B 进入到 SYN-RCVD 状态。
报文段 #3:A 发送 ACk 报文段来确认报文段 #2,ack = 201(是 B 的初始序号加 1)。A 没有在这个报文段中放入数据。因为 SYN 报文段 #1 消耗了一个序号,因此报文段 #3 的序号是 seq = 101。这样,A 和 B 都进入了 ESTABLISHED 状态。
【----- 三报文握手完成 -----】
【----- 开始数据传送 -----】
报文段 #4:A 发送 100 字节的数据。报文段 #3 是确认报文段,没有数据发送,报文段 #3 并不消耗序号,因此报文段 #4 的序号仍然是 seq = 101。A 在发送数据的同时,还确认 B 的报文段 #2,因此 ack = 201。
报文段 #5:B 确认 A 的报文段 #4。由于收到了从序号 101 到 200 共 100 字节的数据,因此在报文段 #5 中,ack = 201(所期望收到的下一个数据字节的序号)。B 发送的 SYN 报文段 #2 消耗了一个序号,因此报文段 #5 的序号是 seq = 201,比报文段 #2 的序号多了一个序号。在这个报文段中,B 给出了接收窗口 rwnd = 100。
从报文段 #6 到报文段 # 13 都不需要更多的解释。到此为止,A 已经发送了 500 字节 的数据。
报文段 #14:A 发送最后 12 字节的数据,报文段 #14 的序号是 seq = 601。
报文段 #15:B 发送对报文段 #14 的确认。B 收到从序号 601 到 602 共 12 字节的数据。因此,报文段 #15 的确认号是 ack = 613(所期望收到的下一个数据字节的序号)。
从报文段 #5 一直到报文段 #15,B 一共发送了 6 个确认,都不消耗序号,因此 B 发送的确认报文段 #15 的序号仍然和报文段 #5 的序号一样,即 seq = 201。
【-----数据传送完毕-----】
【-----进行四报文挥手------】
报文段 #16:A 发送 FIN 报文段。前面所发送的数据报文段 #14 已经用掉了序号 601 到 612,因此报文段 #16 序号是 seq = 613。A 进入 FIN-WAIT-1 状态。报文段 #16 的确认号 ack = 202。
报文段 #17:B发送确认报文段,确认号为 614,进入 CLOSE-WAIT 状态。由于确认报文段不消耗序号,因此报文段 #17 的序号仍然和报文段 #15 的一样,即 seq = 201
报文段 #18:B 没有数据要发送,就发送 FIN 报文段 #18,其序号仍然是 seq = 201。这个 FIN 报文会消耗一个报文。
报文段 #19:A 发送最后的确认报文段。报文段 #16 的序号是 613,已经消耗掉了。因此,现在的序号是 seq = 614。但这个确认报文段并不消耗序号。
【-----四报文挥手结束-----】
利用应用层协议提供网络与用户应用软件之间的接口服务。通过应用进程间的交互来完成特定网络应用。
应用层协议(application layer protocol):精确定义应用进程之间的通信规则。
报文(message)。
报文包含了将要发送的完整的数据信息,其长短不需一致。报文在传输过程中会不断地封装成分组、包、帧来传输,封装的方式就是添加一些控制信息组成的首部/报文头。
域名系统 DNS (Domain Name System)用于实现域名到IP地址的解析。
任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
域名采用了层次树状结构的命名方法。
域名的结构由标号序列组成,各标号之间用点隔开:
… . 三级域名 . 二级域名 . 顶级域名
各标号分别代表不同级别的。
如 .cn 表示中国, .us 表示美国, .uk 表示英国,等等。
如 .com(公司和企业) .net (网络服务机构 .org (非赢利性组织) .edu (美国专用的教育机构) .gov (美国专用的政府部门) .mil (美国专用的军事部门) .int (国际组织)
这种顶级域名只有一个,即 arpa,用于反向域名解析,因此又称为反向域名。
一个域名服务器所负责管辖的(或有权限的)范围
假定abc公司有下属部门x和y,部门x下面又分三个分部门u,v和 w,而 y下面还有其下属部门t。
图(a)表示 abc公司只设一个区abc.com。这时,区 abc.com和域 abc.com指的是同一件事。
图(b)表示 abc公司划分了两个区(大的公司可能要划分多个区):abc.com和 y.abc.com。这两个区都隶属于域abc.com,都各设置了相应的权限域名服务器。不难看出,区是“域”的子集。
以上图(b)中公司abc划分的两个区为例,给出了DNS域名服务器树状结构图。
这种 DNS域名服务器树状结构图可以更准确地反映出 DNS的分布式结构。
图中的每一个域名服务器都能够进行部分域名到P地址的解析。
当某个 DNS服务器不能进行域名到IP地址的转换时,它就设法找互联网上别的域名服务器进行解析。
顶级域名服务器(即 TLD 服务器)负责管理在该顶级域名服务器注册的所有二级域名。
当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找 的域名服务器的 IP 地址)。
负责一个区的域名服务器
当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户, 下一步应当找哪一个权限域名服务器。
每一个互联网服务提供者ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,这种域名服务器有时也称为默认域名服务器。
当一个主机发出 DNS 查询请求时,这个查询请求报文首先发送给本地域名服务器
主机配置的DNS是根域名服务器的IP地址
如果主机所询问的本地域名服务器不知道被查询域名 的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询
文件传送协议 FTP (File Transfer Protocol) 是互联网上使用得最广泛的文件传送协议。基于TCP
TFTP (Trivial File Transfer Protocol) 是一个很小且易于实现的文件传送协议。服务器端熟知端口号69。
TFTP 的工作很像停止等待协议
远程终端协议/终端仿真协议 TELNET 是一个简单的远程终端协议,也是互联网的正式标准。
用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。
TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。
因此TELNET又称为终端仿真协议。
适应计算机和操作系统的差异
万维网 WWW (World Wide Web) 简称web,是一个大规模的、联机式的信息储藏所。是分布式超媒体 (hypermedia) 系统,它是超文本 (hypertext) 系统的扩充。
万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。提供分布式服务。
统一资源定位符 URL (Uniform Resource Locator) :标志万维网上的各种文档,使每一个文档在整个互联网的范围内具有唯一的标识符 URL。
由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。
<协议>://<主机>:<端口>/<路径>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。