本篇总结了谢希仁老师版的计网,王道考研计网等书籍汇总,标红处为重点,本人转行小白一个,兴许理解不深有待指正,希望和大家共同进步。
经过一段时间的整理发现很多地方还不够深入理解了,准备再研究一下自顶向下这本书,本文有不理解的地方可以去进行专项学习,本文仅仅给了基础框架。
目录
4.4.3、IPv6数据报的目的地址可以是以下三种基本类型地址之一:.
第一章 计算机网络体系结构
导图
1.1、计算机网络概述
1.1.1、互联网概述
计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。简而言之,计算机网络就是一些互联的、自治的计算机系统的集合。
互联网基础结构发展的三个阶段
第一阶段:是从单个网络ARPANET向互连网发展的过程。美国国防部创建ARPANET.
第二阶段:第二阶段的特点是建成了三级结构的互联网。它是一个三级计算机网络,分为主干网、地区网和校园网(或企业网)。
第三阶段:第三阶段的特点是逐渐形成了多层次ISP结构的互联网。
(ISP因特网服务提供商) (IXP互联网交换点)
1.1.2、互联网的组成
1)从工作方式上分为 边缘部分 和 核心部分。
(1)边缘部分﹐由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
(2)核心部分 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
2)从功能组成上分为 通信子网 和 资源子网。
通信子网 由各种传输介质、通信设备和相应的网络协议组成,它使网络具有数据传输、交换、控制和存储的能力,实现联网计算机之间的数据通信。
资源子网 是实现资源共享功能的设备及其软件的集合,向网络用户提供共享其他计算机上的硬件资源、软件资源和数据资源的服务。
1.1.3、计算机网络的分类
1.1.4、计算机网络的功能
1. 数据通信 2.资源共享 3.分布式处理 4.提高可靠性 5.负载均衡
1.1.5、计算机网络的标准化组织及性能指标
计算机网络的标准化组织
国际标准化组织(ISO)。其制定的主要网络标准或规范有OSI参考模型、HDLC等。
国际电气电子工程师协会(IEEE)。世界上最大的专业技术团体,由计算机和工程学专业人士组成。IEEE在通信领域最著名的研究成果是802标准。
计算机网络的性能指标
速率:速率顾名思义指的是数据的传送速率也称为数据率/比特率,数据即是比特也就是二进制的0或1,速率的单位就是 b/s。在这里指的是额定速率。单位转换如下
带宽:带宽有两种含义
① 带宽本来是指某个信号具有的频带宽度。单位是 赫兹
② 在计算机网络中,带宽用来表示网络中某通道传送数据的能力,因此网络带宽表示在单位时间内网络中的某信道所能通过的“最高数据率”如下图。单位是 比特每秒
时延:指数据(一个报文或分组)从网络(或链路)的一端传送到另一端所需要的总时间,它由4部分构成:发送时延、传播时延、处理时延和排队时延。
总时延=发送时延+传播时延+处理时延+排队时延
往返时延RTT:从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认), 总共经历的时延。
时延带宽积:时延带宽积=传播时延 X 带宽
吞吐量:指单位时间内通过某个网络(或信道、接口〉的数据量。吞吐量受网络带宽或网络额定速率的限制。
1.2 、计算机网络体系结构
为什么分层?依据的原则是什么?OSI参考模型和TCP/IP的区别?
①简单来说就是网络间的通信比较复杂,包括协议设计,调试等,也不方便维护和研究等因此需要进行对网络体系进行分层设计,每一层具有自己独特的功能,下层对上层提供相应的服务。
②依据的原则:
1)每层都实现一种相对独立的功能,降低大系统的复杂度。
2)各层之间界面自然清晰,易于理解,相互交流尽可能少。
3)各层功能的精确定义独立于具体的实现方法,可以采用最合适的技术来实现。
4)保持下层对上层的独立性,上层单向使用下层提供的服务。
5)整个分层结构应能促进标准化工作。
③OSI是一种法定标准,由于其设计过于复杂,并且各层中有重复的功能,实际应用中并未使用过,但对于研究意义颇大因此保留其模型,我们常用的是TCP/IP模型。 本质上TCP/IP就是将OSI的表示层,会话层与应用层融合在一个层里了。
实体/对等实体/服务/协议/SDU/PCI/PDU概念
当研究开放系统中的信息交换时,往往使用实体(entity)这一较为抽象的名词表示任何可发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。同层水平的两个实体叫做对等实体,相互之间使用协议进行实体之间通信的规则。协议是水平方向的,而服务是垂直方向的,只能由下层对上层提供服务,如下图所示
服务数据单元(SDU):为完成用户所要求的功能而应传送的数据。第n层的服务数据单元记为n-SDU。
协议控制信息(PCI):控制协议操作的信息。第n层的协议控制信息记为n-PCI.
协议数据单元(PDU):对等层次之间传送的数据单位称为该层的PDU。第n层的协议数据单元记为n-PDU。 n+1层PDU=n层PCI+n层SDU
三者关系为:n-SDU+n-PCI - n-PDU-(n- 1)-SDU,
第二章 物理层
导图
2.1、通信基础
2.1.1、物理层特性及模型
(1)机械特性 指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置,等。平时常见的各种规格的接插件都有严格的标准化的规定。
(2)电气特性 指明在接口电缆的各条线上出现的电压的范围。
(3)功能特性 指明某条线上出现的某一电平的电压的意义。
(4)过程特性 指明对于不同功能的各种可能事件的出现顺序。
数据、信号、码元、信源、信道、信宿基本概念
数据是指传送信息的实体。信号则是数据的电气或电磁表现。
码元是指用一个固定时长的信号波形(数字脉冲)表示一位k进制数字,代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为k进制码元,而该时长称为码元宽度。1码元可以携带若干比特的信息量。
数据通信是指数字计算机或其他数字终端之间的通信。一个数据通信系统主要划分为信源、信道和信宿三部分。信源是产生和发送数据的源头。信宿是接收数据的终点,它们通常都是计算机或其他数字终端装置。
同步传输、异步传输、串行传输、并行传输基本概念
同步传输:在同步传输的模式下,数据的传送是以一个数据区块为单位,因此同步传输又称为区块传输。
异步传输:异步传输将比特分成小组进行传送,
串行传输:将表示一个字符的数按由低位到高位的一条信道顺序依次发送。
并行传输:将表示一个字符的数同时通过多条信道发送。
通信双方信息的交互方式看,可分为三种基本方式:
(1)单向通信―又称为单工通信,即只能有一个方向的通信而没有反方向的交互。无线电广播或有线电广播以及电视广播就属于这种类型。
(2)双向交替通信―又称为半双工通信,即通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。 对讲机
(3)双向同时通信―又称为全双工通信,即通信的双方可以同时发送和接收信息。单向通信只需要一条信道,而双向交替通信或双向同时通信则都需要两条信道(每个方向各一条)。显然,双向同时通信的传输效率最高。 打电话
逮率、波特
速率也称数据率,指的是数据传输速率,表示单位时间内传输的数据量。可以用码元传输速率和信息传输速率表示。
1)码元传输速率。又称波特率,它表示单位时间内数字通信系统所传输的码元个数(也可
称为脉冲个数或信号变化的次数),单位是波特(Baud)。1波特表示数字通信系统每秒传输一个码元。码元可以是多进制的,也可以是二进制的,码元速率与进制数无关。
2)信息传输速率。又称信息速率、比特率等,它表示单位时间内数字通信系统传输的二进
制码元个数(即比特数),单位是比特/秒(bls)。
2.1.2、奈奎斯特定理与香农定理
区别在于是否有噪声,具体如下图不多讲
2.1.3 编码与调制
数据无论是数字的还是模拟的,为了传输的目的都必须转变成信号。把数据变换为模拟信号的过程称为调制,把数据变换为数字信号的过程称为编码。
基带信号与宽带信号
在传输距离较近时,计算机网络采用基带传输方式(近距离衰减小,从而信号内容不易发生变化) 在传输距离较远时,计算机网络采用宽带传输方式(远距离衰减大,即使信号变化大也能最后过滤出来基带信号)
1、数字数据编码为数字信号
数字数据编码用于基带传输中,即在基本不改变数字数据信号频率的情况下,直接传输数字信号。具体用什么样的数字信号表示0及用什么样的数字信号表示1就是所谓的编码。编码的规则有多种,只要能有效地把1和0区分开即可,常用的数据数据编码有以下几种
(1)归零编码
高电平代表1、低电平代表0(或者相反) (正脉冲代表1.负脉冲代表0)
(2)非归零编码
正电平代表1,负电平代表 0.
(3)曼彻斯特编码
位周期中心的向上跳变代表0,位周期中心的向下跳变代表1。但也可反过来定义。以太网使用的是曼彻斯特编码
(4)差分曼彻斯特编码
在每一位的中心处始终都有跳变。位开始边界有跳变代表0,而位开始边界没有跳变代表1。
2、数宇数椐调制为襆拟信号
调幅(AM)
即载波的振幅随基带数字信号而变化。例如,О或1分别对应于无载波或有载波输出。
调频(FM)
即载波的频率随基带数字信号而变化。例如,0或1分别对应于频率f或f。
调相(PM)
即载波的初始相位随基带数字信号而变化。例如,0或1分别对应于相位О度或180度。
3、模拟数据编码为数宇信号
这种编码方式最典型的例子是常用于对音频信号进行编码的脉码调制(PCM)。它主要包括三个步骤,即采样、量化和编码。
4。模拟数据调制为模拟信号
为了实现传输的有效性,可能需要较高的频率。这种调制方式还可以使用频分复用(FDM)技术,充分利用带宽资源。电话机和本地局交换机采用模拟信号传输模拟数据的编码方式,模拟的声音数据是加载到模拟的载波信号中传输的。
2.2、存储转发交换方式
2.2.1、电路交换
在进行数据传输前,两个结点之间必须先建立一条专用(双方独占)的物理通信路径(由通信双方之间的交换设备和链路逐段连接而成),该路径可能经过许多中间结点。这一路径在整个数据传输期间一直被独占,直到通信结束后才被释放。因此,电路交换技术分为三个阶段:连接建立、数据传输和连接释放。
2.2.2、报文交换
数据交换的单位是报文,报文携带有目标地址、源地址等信息。报文交换在交换结点采用的是存储转发的传输方式。
2.2.3、分组交换
同报文交换一样,分组交换也采用存储转发方式,但解决了报文交换中大报文传输的问题。分组交换限制了每次传送的数据块大小的上限,把大的数据块划分为合理的小数据块,再加上一些必要的控制信息(如源地址、目的地址和编号信息等),构成分组(Packet)。网络结点根据控制信息把分组送到下一个结点,下一个结点接收到分组后,暂时保存并排队等待传输,然后根据分组控制信息选择它的下一个结点,直到到达自的结点。
数据报方式
作为通信子网用户的端系统发送一个报文时,在端系统中实现的高层协议先把报文拆成若干带有序号的数据单元,并在网络层加上地址等控制信息后形成数据报分组(即网络层的 PDU)。中间结点存储分组很短一段时间,找到最佳的路由后,尽快转发每个分组。不同的分组可以走不同的路径,也可以按不同的顺序到达目的结点。
数据报方式特点
1)发送分组前不需要建立连接。发送方可随时发送分组,网络中的结点可随时接收分组。
2)网络尽最大努力交付,传输不保证可靠性,所以可能丢失;为每个分组独立地选择路由,转发的路径可能不同,因而分组不一定按序到达目的结点。
3)发送的分组中要包括发送端和接收端的完整地址,以便可以独立传输。
4)分组在交换结点存储转发时,需要排队等候处理,这会带来一定的时延。通过交换结点的通信量较大或网络发生拥塞时,这种时延会大大增加,交换结点还可根据情况丢弃部分分组。
5)网络具有冗余路径,当某个交换结点或一条链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强。
6)存储转发的延时一般较小,提高了网络的吞吐量。
7)收发双方不独占某条链路,资源利用率较高。
虚电路方式
虚电路方式试图将数据报方式与电路交换方式结合起来,充分发挥两种方法的优点,以达到最佳的数据交换效果。在分组发送之前,要求在发送方和接收方建立一条逻辑上相连的虚电路,并且连接一旦建立,就固定了虚电路所对应的物理路径。与电路交换类似,整个通信过程分为三个阶段:虚电路建立、数据传输与虚电路释放。
数据报与虚电路对比
2.3、传输介质
传输介质也称传输媒体,它是数据传输系统中发送设备和接收设备之间的物理通路。传输介质可分为导向传输介质和非导向传输介质。在导向传输介质中,电磁波被导向沿着固体媒介(铜线或光纤)传播,而非导向传输介质可以是空气、真空或海水等。
传输媒体并不是物理层,而是在物理层的下面,可称为第0层在传输媒体中传输的是信号。
2.3.1、导向性传输介质
1.双绞线
双绞线也称为双扭线,是最古老但又是最常用的传输媒体。把两根互相绝缘的铜导线并排放在一起,然后用规则的方法绞合(twist)起来就构成了双绞线。绞合可减少对相邻导线的电磁干扰。使用双绞线最多的地方就是到处都有的电话系统。几乎所有的电话都用双绞线连接到电话交换机。这段从用户电话机到交换机的双绞线称为用户线或用户环路(subscriberloop)。通常将一定数量的这种双绞线捆成电缆,在其外面包上护套。
双绞线价格便宜,是最常用的传输介质之一,在 局域网和传统电话网中普遍使用。模拟传输和数 字传输都可以使用双绞线,其通信距离一般为几 公里到数十公里。距离太远时,对于模拟传输, 要用放大器放大衰减的信号;对于数字传输,要 用中继器将失真的信号整形。
为了提高双绞线抗电磁干扰的能力,可以在双绞线的外面再加上一层用金属丝编织成的屏蔽层。这就是屏蔽双绞线,简称为STP。它的价格当然比无屏蔽双绞线UTP 要贵一些。图2-6是无屏蔽双绞线和屏蔽双绞线的示意图。
2.同轴电缆
同轴电缆由导体铜质芯线、绝缘层、网状编织屏蔽层和塑料外层构成。按特性阻抗数值的不同,通常将同轴电缆分 为两类:50Ω同轴电缆和75Ω同轴电缆。其中,50Ω同轴电缆主要用于传送基带数字信号,又称为基带同轴电缆,它 在局域网中得到广泛应用;75Ω同轴电缆主要用于传送宽带信号,又称为宽带同轴电缆,它主要用于有线电视系统。
3.光纤
光纤通信就是利用光导纤维(简称光纤)传递光脉冲来进行通信。有光脉冲表示1,无光脉冲表示0。而可见光的频 率大约是108MHz,因此光纤通信系统的带宽远远大于目前其他各种传输媒体的带宽。
光纤主要由纤芯(实心的)和包层构成,光波通过纤芯进行传导,包层较纤芯有较低的折射率。当光线从高折射率的 介质射向低折射率的介质时,其折射角将大于入射角。因此,如果入射角足够大,就会出现全反射,即光线碰到包 层时候就会折射回纤芯、这个过程不断重复,光也就沿着光纤传输下去。
多模光纤
图中只画了一条光线。实际上,只要从纤芯中射到纤芯表面的光线的入射角大于某个临界角度,就可产生全反射。因此,可以存在多条不同角度入射的光线在一条光纤中传输。这种光纤就称为多模光纤。
2.3.2、非导向性传输介质
当通信距离很远时,敷设电缆既昂贵又费时。但利用无线电波在自由空间的传播就可较快地实现多种通信。由于这种通信方式不使用上一节所介绍的各种导引型传输媒体,因此就将自由空间称为“非导引型传输媒体"。
无线电波
无线电波具有较强的穿透能力,可以传输很长的距离,所以它被广泛应用于通信领域,如无线手机通信、计算机网络中的无线局域网(WLAN)等。因为无线电波使信号向所有方向散播,因此有效距离范围内的接收设备无须对准某个方向,就可与无线电波发射者进行通信连接,大大简化了通信连接。这也是无线电传输的最重要优点之一。
微波、红外线、激光
目前高带宽的无线通信主要使用三种技术:微波、红外线和激光。它们都需要发送方和接收方之间存在一条视线(Line-of-sight)通路,有很强的方向性,都沿直线传播,有时统称这三者为视线介质。不同的是,红外通信和激光通信把要传输的信号分别转换为各自的信号格式,即红外光信号和激光信号,再直接在空间中传播。
微波通信的频率较高,频段范围也很宽,因而通信信道的容量大。
卫星通信
卫星通信特点是通信距离远,覆盖面积约为三分之一的地球,但其造价高且具有较大的传播时延,对于较偏僻的地方,适合用于广播通信,保密性略差
2.4、物理层设备
2.4.1、中继器
中继器的主要功能是将信号整形并放大再转发出去,以消除信号经过一长段电缆后而产生的失真和衰减,使信号的波形和强度达到所需要的要求,进而扩大网络传输的距离。其原理是信号再生(而非简单地将衰减的信号放大。
注意:放大器和中继器都起放大作用,只不过放大器放大的是模拟信号,原理是将衰减的信号放大,而中继器放大的是数字信号,原理是将衰减的信号整形再生。
2.4.2、集线器
集线器(Hub)实质上是一个多端口的中继器。它在网络中只起信号放大和转发作用,目的是扩大网络的传输范围,而不具备信号的定向传送能力,即信号传输的方向是固定的,是一个标准的共享式设备
2.5、信道复用技术
多路复用技术是在发送端将多路信号进行组合(如广电前端使用的混合器),在一条专用的物理信道上实现传输,接收端再将复合信号分离出来。
2.5.1、频分复用 FDM
频分复用 将用于传输信道的总带宽划分成若干个子频带(或称子信道),每一个子信道传输1路信号。频分复用最简单,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。可见频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。
2.5.2、时分复用 TDM
时分复用 将提供给整个信道传输信息的时间划分成若干时间片(简称时隙),并将这些时隙分配给每一个信号源使用,每一路信号在自己的时隙内独占信道进行数据传输。
2.5.3、波分复用 WDM
波分复用 就是光的频分复用。光纤技术的应用使得数据的传输速率空前提高。现在人们借用传统的载波电话的频分复用的概念,就能做到使用一根光纤来同时传输多个频率很接近的光载波信号。这样就使光纤的传输能力可成倍地提高。由于光载波的频率很高,因此习惯上用波长而不用频率来表示所使用的光载波。
2.5.4、码分复用 CDM
码分复用 是另一种共享信道的方法。实际上,人们更常用的名词是码分多址 CDMA。每一个用户可以在同样的时间使用同样的频带进行通信。由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
第三章 数据链路层
导图
3.1、数据链路层的功能
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到 相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接 改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。 有连接一定有确认!
功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
功能三:组帧。
功能四:流量控制。
功能五:差错控制(帧错/位错)。
接下来将先进行笼统概括再分步进行描述:
3.1.1、为网络层提供服务
1)无确认的无连接服务。源机器发送数据帧时不需先建立链路连接,目的机器收到数据帧时不需发回确认。对丢失的帧,数据链路层不负责重发而交给上层处理。适用于实时通信或误码率较低的通信信道,如以太网。
2)有确认的无连接服务。源机器发送数据帧时不需先建立链路连接,但目的机器收到数据帧时必须发回确认。源机器在所规定的时间内未收到确定信号时,就重传丢失的帧,以提高传输的可靠性。该服务适用于误码率较高的通信信道,如无线通信。
3)有确认的面向连接服务。帧传输过程分为三个阶段:建立数据链路、传输帧、释放数据链路。目的机器对收到的每一帧都要给出确认,源机器收到确认后才能发送下一帧,因而该服务的可靠性最高。该服务适用于通信要求(可靠性、实时性)较高的场合。
注意:有连接就一定要有确认,即不存在无确认的面向连接的服务。
3.1.2、链路管理
数据链路层连接的建立、维持和释放过程称为链路管理,它主要用于面向连接的服务。链路两端的结点要进行通信,必须首先确认对方已处于就绪状态,并交换一些必要的信息以对帧序号初始化,然后才能建立连接,在传输过程中则要能维持连接,而在传输完毕后要释放该连接。在多个站点共享同一物理信道的情况下(如在局域网中)如何在要求通信的站点间分配和管理信道也属于数据链路层管理的范畴。
3.1.3、帧定界、帧同步与透明传输
两台主机之间传输信息时,必须将网络层的分组封装成帧,以帧的格式进行传送。将一段数据的前后分别添加首部和尾部,就构成了帧。因此,帧长等于数据部分的长度加上首部和尾部的长度。首部和尾部中含有很多控制信息,它们的一个重要作用是确定帧的界限,即帧定界。而帧同步指的是接收方应能从接收到的二进制比特流中区分出帧的起始与终止。
如果在数据中恰好出现与帧定界符相同的比特组合(会误认为“传输结束”而丢弃后面的数据),那么就要采取有效的措施解决这个问题,即透明传输。
3.1.4、流量控制
由于收发双方各自的工作速率和缓存空间的差异,可能出现发送方的发送能力大于接收方的接收能力的现象,如若此时不适当限制发送方的发送速率(即链路上的信息流量),前面来不及接收的帧将会被后面不断发送来的帧“淹没",造成帧的丢失而出错。因此,流量控制实际上就是限制发送方的数据流量,使其发送速率不超过接收方的接收能力。
3.1.5、差错控制
由于信道噪声等各种原因,帧在传输过程中可能会出现错误。用以使发送方确定接收方是否正确收到由其发送的数据的方法称为差错控制。通常,这些错误可分为位错和帧错。
位错指帧中某些位出现了差错。通常采用循环冗余校验(CRC)方式发现位错,通过自动重传请求方式来重传出错的帧。
帧错指帧的丢失、重复或失序等错误。在数据链路层引入定时器和编号机制,能保证每一帧最终都能有且仅有一次正确地交付给目的结点。
3.2、组帧
数据链路层之所以要把比特组合成帧为单位传输,是为了在出错时只重发出错的帧,而不必重发全部数据,从而提高效率。为了使接收方能正确地接收并检查所传输的帧,发送方必须依据一定的规则把网络层递交的分组封装成帧(称为组帧)。组帧主要解决帧定界、帧同步、透明传输等问题。通常有以下4种方法实现组帧。﹒组帧时既要加酋部,又要加尾部。
3.2.1、字符计数法
字符计数法是指在帧头部使用一个计数字段来标明帧内字符数。目的结点的数据链路层收到字节计数值时,就知道后面跟随的字节数,从而可以确定帧结束的位置(计数字段提供的字节数包含自身所占用的一个字节)。
缺点:这种方法最大的问题在于如果计数字段出错,即失去了帧边界划分的依据,那么接收方就无法判断所传输帧的结束位和下一帧的开始位,收发双方将失去同步,从而造成灾难性后果。
3.2.2、字符填充的首尾定界符法
字符填充法使用特定字符来定界一帧的开始与结束,控制字符SOH放在帧的最前面,表示帧的首部开始,控制字符EOT表示帧的结束。为了使信息位中出现的特殊字符不被误判为帧的首尾定界符,可在特殊字符前面填充一个转义字符(ESC)来加以区分(注意,转义字符是ASCII码中的控制字符,是一个字符,而非“E”“S”“C”三个字符的组合),以实现数据的透明传输。接收方收到转义字符后,就知道其后面紧跟的是数据信息,而不是控制信息。
透明传输 前面提到的“透明”是一个很重要的术语。它表示:某一个实际存在的事物看起来却好像不存在一样(例如,你看不见在你前面有块100%透明的玻璃的存在)。“在数据链路层透明传送数据”表示无论什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路层。因此,对所传送的数据来说,这些数据就“看不见”数据链路层有什么妨碍数据传输的东西。或者说,数据链路层对这些数据来说是透明的。
3.2.3、零比特填充的首尾标志法
零比特填充法 允许数据帧包含任意个数的比特,也允许每个字符的编码包含任意个数的比特。它使用一个特定的比特模式,即01111110来标志一帧的开始和结束。为了不使信息位中出现的比特流01111110被误判为帧的首尾标志,发送方的数据链路层在信息位中遇到5个连续的“1”时,将自动在其后插入一个“0";而接收方做该过程的逆操作,即每收到5个连续的“1”时,自动删除后面紧跟的“0”,以恢复原信息。
零比特填充法很容易由硬件来实现,性能优于字符填充法。
3.2.4、违规编码法
在物理层进行比特编码时,通常采用违规编码法。例如,曼彻斯特编码方法将数据比特“1”编码成“高-低”电平对,将数据比特“0”编码成“低-高”电平对,而“高-高”电平对和“低-低”电平对在数据比特中是违规的(即没有采用)。可以借用这些违规编码序列来定界帧的起始和终止。局域网IEEE802标准就采用了这种方法。
3.3、差错控制
首先要明确差错的来源,为什么传输过程中会产生差错?怎么检错?如何纠错?
在传输的过程中差错的主要来源是噪声
从全局性来看,由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
解决办法:提高信噪比来减少或避免干扰。
从局部性来看,外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
解决办法:通常利用编码技术来解决。
差错又分为位错和帧错两种
3.3.1、检错编码
奇偶校验码
奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码。它由n-1位信息元和1位校验元组成,如果是奇校验码,那么在附加一个校验元后,码长为n的码字中“1”的个数为奇数;如果是偶校验码,那么在附加一个校验元以后,码长为n的码字中“1”的个数为偶数。它只能检测奇数位的出错情况,但并不知道哪些位错了,也不能发现偶数位的出错情况。
循环冗余码
循环冗余码(Cyclic Redundancy Code,CRC)又称多项式码,任何一个由二进制数位串组成的代码都可以与一个只含有0和1两个系数的多项式建立一一对应关系。
注意:循环冗余码( CRC)是具有纠错功能的,只是数据链路层仅使用了它的检错功能,检测到帧出错则直接丢弃。
FCS帧检验序列的过程
CRC循环冗余码计算
模2除法
3.3.2、纠错编码
海明码
这一块建议看视频方便理解
在数据通信的过程中,解决差错问题的一种方法是在每个要发送的数据块上附加足够的冗余信息,使接收方能够推导出发送方实际送出的应该是什么样的比特串。最常见的纠错编码是海明码,其实现原理是在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错位,而且能指出错位的位置,为自动纠错提供依据。
3.4、流量控制与可靠传输机制
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。流量控制的方法一般有两种:停止-等待协议和滑动窗口协议。
3.4.1、流量控制、可靠传输与滑动窗口机制
1。停止-等待流量拉制基本原理
发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧,都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直等待。每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,因而传输效率很低。
2.滑动窗口流量控制基本原理
在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口﹔同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。发送窗口用来对发送方进行流量控制,而发送窗口的大小W代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。在接收方,只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则-一律将其丢弃。
滑动窗口有以下重要特性:
1)只有接收窗口向前滑动(同时接收方发送了确认帧)时,发送窗口才有可能(只有发送方收到确认帧后才一定)向前滑动。
2)从滑动窗口的概念看,停止-等待协议、后退N帧协议和选择重传协议只在发送窗口大小与接收窗口大小上有所差别:
停止-等待协议:发送窗口大小1,接收窗口大小=1.
后退Ⅳ帧协议:发送窗口大小>1,接收窗口大小=1.
选择重传协议:发送窗口大小>1,接收窗口大小>1.
3)接收窗口的大小为1时,可保证帧的有序接收。
4)数据链路层的滑动窗口协议中,窗口的大小在传输过程中是固定的(注意与第5章传输层的滑动窗口协议的区别)。
可靠传输机制:
数据链路层的可靠传输通常使用确认和超时重传两种机制来完成。确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收。有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认。超时重传是指发送方在发送某个数据帧后就开启一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重新发送该数据帧,直到发送成功为止。
3.4.2、单帧滑动窗口与停止-等待协议
在停止-等待协议中,源站发送单个帧后必须等待确认,在目的站的回答到达源站之前,源站不能发送其他的数据帧。从滑动窗口机制的角度看,停止-等待协议相当于发送窗口和接收窗口大小均为1的滑动窗口协议。
当发送数据时会产生错误,在此协议中会发生三种错误:
第一种是发送过程中帧发生了丢失或帧出错,那么此时的超时计时器发现目的站并未发回确认帧此时超时计时器开始计时,当超过时间原站将重新发送数据帧,因此源站发送前要先进行备份,并且必须进行标号
另一种可能的差错是数据帧正确而确认帧被破坏,此时接收方已收到正确的数据帧,但发送方收不到确认帧,因此发送方会重传已被接收的数据帧,接收方收到同样的数据帧时会丢弃该帧,并重传一个该帧对应的确认帧。
停等协议的信道利用率太低!!!
3.4.3、多帧滑动窗口与后退N帧协议(GBN)
在后退Ⅳ帧式ARQ中,发送方无须在收到上一个帧的ACK后才能开始发送下一帧,而是可以连续发送帧。当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送了N个帧后,若发现该N个帧的前-一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重传该出错帧及随后的N个帧。换句话说,接收方只允许按顺序接收帧。
后退N帧协议一方面因连续发送数据帧而提高了信道的利用率,另一方面在重传时又必须把原来已传送正确的数据帧进行重传(仅因这些数据帧的前面有一个数据帧出了错),这种做法又使传送效率降低。由此可见,若信道的传输质量很差导致误码率较大时,后退Ⅳ帧协议不一定优于停止-等待协议。
3.4.4、多帧滑动窗口与选择重传协议(SR)
为进一步提高信道的利用率,可设法只重传出现差错的数据帧或计时器超时的数据帧,但此时必须加大接收窗口,以便先收下发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺序号的数据帧收到后再一并送交主机。这就是选择重传ARQ协议。
在选择重传协议中,每个发送缓冲区对应一个计时器,当计时器超时时,缓冲区的帧就会重传。另外,该协议使用了比上述其他协议更有效的差错处理策略,即一旦接收方怀疑帧出错,就会发一个否定帧NAK给发送方,要求发送方对NAK中指定的帧进行重传。
选择重传协议可以避免重复传送那些本已正确到达接收端的数据帧,但在接收端要设置具有相当容量的缓冲区来暂存那些未按序正确收到的帧。接收端不能接收窗口下界以下或窗口上界以上的序号的帧,因此所需缓冲区的数目等于窗口的大小,而不是序号数目。
3.5、介质访问控制
介质访问控制所要完成的主要任务是,为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输。用来决定广播信道中信道分配的协议属于数据链路层的一个子层,称为介质访问控制层。
3.5.1、静态划分信道
静态划分信道,之前已经介绍过的频分复用、时分复用、波分复用和码分复用等。用户只要分配到了信道就不会和其他用户发生冲突。但这种划分信道的方法代价较高,不适合于局域网使用。以前已讲过这面不再多赘述,本篇主要内容在动态划分信道
3.5.2、动态划分信道
纯ALOHA协议
纯ALOHA 协议的基本思想是,当网络中的任何一个站点需要发送数据时,可以不进行任何时隙ALOHA协议检测就发送数据。如果在一段时间内未收到确认,那么该站点就认为传输过程中发生了冲突。发送站点需要等待一段时间后再发送数据,直至发送成功。简单来说就是:不监听信道,不按时间槽发送,随机重发。想发就发
时隙ALOHA协议
时隙ALOHA协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道, 若发生冲突,则必须等到下一个时间片开始时刻再发送。简单来说就是:控制想发就发的随意性
CSMA协议
协议思想:发送帧之前,监听信道。
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
根据侦呀方式和侦听到信道忙后的处理方式不同,CSMA协议分为三种。
1-坚持CSMA
非坚持CSMA
p-坚持CSMA
CSMA/CD协议
载波监听多点接入/碰撞检测CSMA/CD
CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。 总线型网络
CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判 断自己在发送数据时其他站是否也在发送数据。 半双工网络
CSMA/CA协议
载波监听多点接入/碰撞避免CSMA/CA
轮询访问介质访问控制:令牌协议
在轮询访问中,用户不能随机地发送信息,而要通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道的分配。当某结点使用信道时,其他结点都不能使用信道。典型的轮询访问介质访问控制协议是令牌传递协议,它主要用在令牌环局域网中。
在令牌传递协议中,一个令牌在各结点间以某个固定次序交换。令牌是由一组特殊的比特组合而成的帧。当环上的一个站希望传送帧时,必须等待令牌。一旦收到令牌,站点便可启动发送帧。帧中包括目的站的地址,以标识哪个站应接收此帧。
3.6、局域网
局域网(Local Area Network,LAN)是指在一个较小的地理范围(如一所学校)内,将各种计算机、外部设备和数据库系统等通过双绞线、同轴电缆等连接介质互相连接起来,组成资源和信息共享的计算机互联网络。
局域网的特性主要由三个要素决定:拓扑结构、传输介质、介质访问控制方式,其中最重要的是介质访问控制方式,它决定着局域网的技术特性。
常见的局域网拓扑结构主要有以下4大类:①星形结构:②环形结构;③总线形结构;④星形和总线形结合的复合型结构。
局域网可以使用双绞线、铜缆和光纤等多种传输介质,其中双绞线为主流传输介质。
局域网的介质访问控制方法主要有 CSMA/CD、令牌总线和令牌环,其中前两种方法主要用于总线形局域网,令牌环主要用于环形局域网。
IEEE 802系列标准是IEEE 802 LAN/MAN 标准委员会制定的局域网、城域网技术标准(1980年2月成立)。其 中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个 专门工作组负责。
3.7、广域网
3.7.1、广域网基本概念
广域网,通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它 能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线 分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网 (Internet)是世界范围内最大的广域网。
广域网中的一个重要问题是路由选择和分组转发。路由选择协议负贵搜索分组从某个结点到目的结点的最佳传输路由,以便构造路由表,然后从路由衷再构造出转发分组的转发表。分组是通过转发表进行转发的。
PPP协议和HDLC协议是目前最常用的两种广域网数据链路层控制协议。
3.7.2、PPP协议
PPP (Point-to-Point Protocol)是使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上。设计的目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共同的解决方案。只支持全双工链路。
IP协议的三个组成部分:
1.一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
2.链路控制协议LCP:建立并维护数据链路连接。
3.网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配 置,为网络层协议建立和配置逻辑连接。
3.7.3、HDLC协议
高级数据链路控制,HDILC)协议是ISO制定的面向比特(记住PPP协议是面向字节的)的数据链路层协议。该协议不依赖于任何一种字符编码集;数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;全双工通信,有较高的数据链路传输效率;所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重发,传输可靠性高;传输控制功能与处理功能分离,具有较大的灵活性。采用全双工通信
1.主站的主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、 流程的控制、差错检测或恢复等。
2.从站的主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路 控制。
3.复合站的主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。
HDLC的帧格式
PPP和DHLC协议对比协议对比
3.8、以太网和高速以太网
3.8.1、以太网
以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今 现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术。
IEEE 802.3标准是一种基带总线形的局域网标准,它描述物理层和数据链路层的MAC子层的实现方法。随着技术的发展,该标准又有了大量的补充与更新,以支持更多的传输介质和更高的传输速率。
以太网逻辑上采用总线形拓扑结构,以太网中的所有计算机共享同一条总线,信息以广播方式发送。为了保证数据通信的方便性和可靠性,以太网简化了通信流程并使用了CSMA/CD方式对总线进行访问控制。
1.以太网的传输介质与网卡
以太网常用的传输介质有4种:粗缆、细缆、双绞线和光纤。各种传输介质的适用情况:
MAC地址:全世界的每块网卡在出厂时都有一个唯一的代码,称为介质访问控制(MAC)地址,这个地址用于控制主机在网络上的数据通信。数据链路层设备(网桥、交换机等)都使用各个网卡的MAC地址。另外,网卡控制着主机对介质的访问,因此网卡也工作在物理层,因为它只关注比特,而不关注任何地址信息和高层协议信息。
2.以太网的MAC帧
每块网卡中的MAC地址也称物理地址;MAC地址长6字节,一般用由连字符(或冒号)分隔的12个十六进制数表示,如02-60-8c-e4-b1-21。高24位为厂商代码,低24位为厂商自行分配的网卡序列号。严格来讲,局域网的“地址”应是每个站的“名字”或标识符。
前导码:使接收端与发送端时钟同步。在帧前面插入的8字节可再分为两个字段:第一个字段共7字节,是前同步码,用来快速实现 MAC帧的比特同步。第二个字段是帧开始定界符,表示后面的信息就是MAC帧。
地址:通常使用6字节(48bit)地址(MAC地址)。
类型:2字节,指出数据域中携带的数据应交给哪个协议实体处理。
数据:46~1500字节,包含高层的协议消息。由于CSMA/CD算法的限制,以太网帧必须满足最小长度要求64字节,数据较少时必须加以填充(0~46字节)。
注意:46和1500是怎么来的?首先,由CSMA/CD算法可知以太网帧的最短帧长为64B,而MAC帧的酋部和尾部的长度为18字节,所以数据字段最短为64-18=46字节。其次,最大的1500字节是规定的,没有为什么。
填充:0~46字节,当帧长太短时填充帧,使之达到64字节的最小长度。
校验码(FCS):4字节。校验范围从目的地址段到数据段的末尾,算法采用32位循环冗余码(CRC),不但需要检验MAC帧的数据部分,还要检验目的地址、源地址和类型字段,但不校验前导码。
3.高速以太网
速率达到或超过100Mbl/s的以太网称为高速以太网。
(1)100BASE-T以太网
100BASE-T以太网是在双绞线上传送100Mb/s 基带信号的星形拓扑结构以太网,它使用CSMA/CD 协议。这种以太网既支持全双工方式,又支持半双工方式,可在全双工方式下工作而无冲突发生。因此,在全双工方式下不使用CSMA/CD协议。
MAC帧格式仍然是802.3标准规定的。保持最短帧长不变,但将一个网段的最大电缆长度减小到100m。帧间时间间隔从原来的9.6us改为现在的0.96us.
(2)吉比特以太网
吉比特以太网又称千兆以太网,允许在1Gbls下用全双工和半双工两种方式工作。使用802.3协议规定的帧格式。在半双工方式下使用CSMACD协议(全双工方式不需要使用CSMA/CD协议)。与10BASE-T和100BASE-T技术向后兼容。
(3)10吉比特以太网
10吉比特以太网与10Mb/s、100Mb/s 和1Gb/s以太网的帧格式完全相同。10吉比特以太网还保留了802.3标准规定的以太网最小和最大帧长,便于升级。10吉比特以太网不再使用铜线而只使用光纤作为传输媒体。10吉比特以太网只工作在全双工方式,因此没有争用问题,也不使用CSMA/CD协议。
3.8.2、IEEE 802.11(无线局域网)
I无线局域网可分为两大类:有固定基础设施无线局域网和无固定基础设施移动自组织网络。所谓“固定基础设施”,是指预先建立的、能覆盖一定地理范围的固定基站。
IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。
802.11的MAC帧头格式
有固定基础设施无线局域网
无固定基础设施无线局域网的自组织网络
3.9、数据链路层设备
3.9.1、网桥
两个或多个以太网通过网桥连接后,就成为一个覆盖范围更大的以太网,而原来的每个以太网就称为一个网段。网桥工作在链路层的MAC子层,可以使以太网各网段成为隔离开的碰撞域。如果把网桥换成工作在物理层的转发器,那么就没有这种过滤通信量的功能。由于各网段相对独立,因此一个网段的故障不会影响到另一个网段的运行。
注意:网桥处理数据的对象是帧,所以它是工作在数据链路层的设备,中继器、放大器处理数据的对象是信号,所以它是工作在物理层的设备。
网桥的优点:
:①能过滤通信量;
②扩大了物理范围;.
③可使用不同的物理层;
④可互联不同类型的局域网;⑤提高了可靠性;
⑥性能得到改善。
网桥的缺点:
①增大了时延;
②MAC子层没有流量控制功能(流量控制需要用到编号机制,编号机制的实现在LLC子层)
;③不同MAC子层的网段桥接在一起时,需要进行帧格式的转换:
④网桥只适合于用户数不多和通信量不大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞,这就是所谓的广播风暴。
1.透明网桥(选择的不是最佳路由)
透明网桥:“透明”指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备自学习。
2.源路由网桥(选择的是最佳路由)
源路由网桥:在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。 方法:源站以广播方式向欲通信的目的站发送一个发现帧。
3。冲突域和广播域
3.9.2、交换机
桥接器的主要限制是在任一时刻通常只能执行一个帧的转发操作,于是出现了局域网交换机,又称以太网交换机。从本质上说,以太网交换机是一个多端口的网桥,它工作在数据链路层。交换机能经济地将网络分成小的冲突域,为每个工作站提供更高的带宽。
以太网交换机对工作站是透明的,因此管理开销低廉,简化了网络结点的增加、移动和网络变化的操作。利用以太网交换机还可以方便地实现虚拟局域网(Virtual LAN,VLAN),VLAN不仅可以隔离冲突域,而且可以隔离广播域。
第四章 网络层
导图
4.1、网络层的功能
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。 网络层传输单位是数据报。
功能一:路由选择与分组转发
功能二:异构网络互联
功能三:拥塞控制
4.1.1、异构网络互联
网络互联,是指将两个以上的计算机网络,通过一定的方法。用一种或多种通信处理设备(即中间设备)相互连接起来,以构成更大的网络系统。中间设备又称中间系统或中继系统。根据所在的层次,中继系统分为以下4种:
1)物理层中继系统:中继器,集线器(Hub)。
2)数据链路层中继系统:网桥或交换机。
3)网络层中继系统:路由器。
4)网络层以上的中继系统:网关。
4.1.2、路由与转发
路由器主要完成两个功能:一是路由选择(确定哪一条路径),二是分组转发(当一个分组到达时所采取的动作)。前者是根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。后者处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等。
1)路由选择。指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。
2)分组转发。指路由器根据转发表将用户的P数据报从合适的端口转发出去。
路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应当使查找过程最优化,路由表则需要对网络拓扑变化的计算最优化。在讨论路由选择的原理时,往往不去区分转发表和路由表,而是笼统地使用路由表一词。
4.1.3、拥塞控制
在通信子网中,因出现过量的分组而引起网络性能下降的现象称为拥塞。
拥塞控制的方法有两种:
1)开环控制。在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产
生拥塞。这是一种静态的预防方法。一旦整个系统启动并运行,中途就不再需要修改。开环控制手段包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度策略等。所有这些手段的共性是,在做决定时不考虑当前网络的状态。
2)闭环控制。事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检测
哪里发生了拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。闭环控制是基于反馈环路的概念,是一种动态的方法。
4.2、路由算法
4.2.1、静态路由与动态路由
静态路由算法(又称非自适应路由算法)。指由网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。它不能及时适应网络状态的变化,对于简单的小型网络,可以采用静态路由。
动态路由算法(又称自适应路由算法)。指路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,而这些路由信息会在一定时间间隙里不断更新,以适应不断变化的网络,随时获得最优的寻路效果。
4.2.2、距离-向量路由算法
4.2.3、链路状态路由算法
4.2.4、层次路由
当网络规模扩大时,路由器的路由表成比例地增大。这不仅会消耗越来越多的路由器缓冲区空间,而且需要用更多CPU时间来扫描路由表,用更多的带宽来交换路由状态信息。因此路由选择必须按照层次的方式进行。
因特网将整个互联网划分为许多较小的自治系统(注意一个自治系统中包含很多局域网),每个自治系统有权自主地决定本系统内应采用何种路由选择协议。如果两个自治系统需要通信,那么就需要一种在两个自治系统之间的协议来屏蔽这些差异。据此,因特网把路由选择协议划分为两大类:
1)一-个自治系统内部所使用的路由选择协议称为内部网关协议(IGP),也称域内路由选择,
具体的协议有RIP和OSPF等。
2)自治系统之间所使用的路由选择协议称为外部网关协议(EGP),也称域间路由选择,用
在不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径。具体的协议有BGP。
使用层次路由时,OSPF将一个自治系统再划分为若干区域(Area),每个路由器都知道在本区域内如何把分组路由到目的地的细节,但不用知道其他区域的内部结构。
采用分层次划分区域的方法虽然会使交换信息的种类增多,但也会使OSPF协议更加复杂。但这样做却能使每个区域内部交换路由信息的通信量大大减小,因而使OSPF 协议能够用于规模很大的自治系统中。
4.3、IPV4/IP协议
4.3.1、IPV4分组
IPv4即现在普遍使用的IP(版本4)。IP定义数据传送的基本单元——IP分组及其确切的数据格式。IP也包括一套规则,指明分组如何处理、错误怎样控制。特别是P还包含非可靠投递的思想,以及与此关联的分组路由选择的思想。
IP分组格式
一个IP分组由首部和数据部分组成。首部前一部分的长度固定,共20B,是所有IP分组必须具有的。在首部固定部分的后面是一些可选字段,其长度可变,用来提供错误检测及安全等机制。
IP首部的部分重要字段含义如下:
1)版本。指IP的版本,目前广泛使用的版本号为.4。
2)首部长度。占4位,可以表示的最大十进制数是15。以32位为单位,最大值为60B( 15×4B)。最常用的首部长度是20B,此时不使用任何选项(即可选字段)。
3)总长度。占16位。指首部和数据之和的长度,单位为字节,因此数据报的最大长度为
26- 1 =65535B。以太网帧的最大传送单元(MTU)为1500B,因此当一个P数据报封装成帧时,数据报的总长度(首部加数据)一定不能超过下面的数据链路层的MTU值。
4)标识。占16位。它是一个计数器,每产生一个数据报就加1,并赋值给标识字段。但它并不是“序号”(因为.IP是无连接服务)。当一个数据报的长度超过网络的MTU时,必须分片,此时每个数据报片都复制次标识号,以便能正确重装成原来的数据报。
5)标志。占3位。标志字段的最低位为MF,MF=1表示后面还有分片,MF=0表示最后一个分片。标志字段中间的一位是DF,只有当DF=0时才允许分片。
6)片偏移。占13位。它指出较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位,即每个分片的长度一定是8B(64位)的整数倍。
7)生存时间(TTL)。占8位。数据报在网络中可通过的路由器数的最大值,标识分组在网,
络中的寿命,以确保分组不会永远在网络中循环。路由器在转发分组前,先把TTL减1。若TTL被减为0,则该分组必须丢弃。
8)协议。占8位。指出此分组携带的数据使用何种协议,即分组的数据部分应交给哪个传
输层协议,如 TCP、UDP等。其中值为6表示TCP,值为17表示UDP。
9)首部校验和。占16位。P数据报的首部校验和只校验分组的首部,而不校验数据部分。
10)源地址字段。占4B,标识发送方的P地址。
11)目的地址字段。占4B,标识接收方的P地址。
IP数据包分片
一个数据链路层数据报能承载的最大数据量称为最大传送单元(MTU)。因为P数据报被封装在数据链路层数据报中,因此数据链路层的MTU严格地限制着P数据报的长度,而且在TP数据报的源与目的地路径上的各段链路可能使用不同的数据链路层协议,有不同的MTU。例如,以太网的MTU为1500B,而许多广域网的MTU不超过576B。当P数据报的总长度大于链路MTU时,就需要将P数据报中的数据分装在两个或多个较小的P数据报中,这些较小的数据报称为片。
片在目的地的网络层被重新组装。目的主机使用IP首部中的标识、标志和片偏移字段来完成对片的重组。创建一个P数据报时,源主机为该数据报加上一个标识号。当一个路由器需要将一个数据报分片时,形成的每个数据报(即片)都具有原始数据报的标识号。当目的主机收到来自同一发送主机的一批数据报时,它可以通过检查数据报的标识号来确定哪些数据报属于同一个原始数据报的片。P首部中的标志位有3比特,但只有后⒉比特有意义,分别是MF位(More
Fragment)和DF位(Don't Fragment)。只有当DF=0时,该P数据报才可以被分片。MF则用来告知目的主机该P数据报是否为原始数据报的最后一个片。当MF=1时,表示相应的原始数据报还有后续的片:当MF=0时,表示该数据报是相应原始数据报的最后一个片。目的主机在对片进行重组时,使用片偏移字段来确定片应放在原始P数据报的哪个位置。
IP分片涉及一定的计算。例如,一个长4000B的P数据报(首部20B,数据部分3980B)到达一个路由器,需要转发到一条MTU为1500B的链路上。这意味着原始数据报中的3980B数据必须被分配到3个独立的片中(每片也是一个P数据报)。假定原始数据报的标识号为777,那么分成的3片如图4.4所示。可以看出,由于偏移值的单位是8B,所以除最后一个片外,其他所有片中的有效数据载荷都是8的倍数。
4.3.2、IPV4地址与NAT
IP协议
连接到因特网上的每台主机(或路由器)都分配一个32比特的全球唯一标识符,即TP地址。传统的IP地址是分类的地址,分为A、B、C、D、E五类。
无论哪类P地址,都由网络号和主机号两部分组成。即P地址::={<网络号>, <主机号>}。其中网络号标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。主机号标志该主机(或路由器)。一-台主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个P地址在整个因特网范围内是唯一的。
网络地址转换NAT
网络地址转换(NAT)是指通过将专用网络地址(如Intranet)转换为公用地址(如Internet),从而对外隐藏内部管理的IP地址。它使得整个专用网只需要一个全球P地址就可以与因特网连通,由于专用网本地IP地址是可重用的,所以NAT大大节省了IP地址的消耗。同时,它隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。
此外,为了网络安全,划出了部分P地址为私有IP地址。私有地址只用于LAN,不用于WAN连接(因此私有IP地址不能直接用于Internet,必须通过网关利用NAT把私有P地址转换为Internet中合法的全球IP地址后才能用于Internet),并且允许私有IP地址被LAN重复使用。这有效地解决了IP地址不足的问题。私有IP地址网段如下:
A类:1个A类网段,即10.0.0.0~10.255.255.255。
B类:16个B类网段,即172.16.0.0~~172.31.255.255.
C类:256个C类网段,即192.168.0.0~~192.168.255.255。
注意:普通路由器在转发P数据报时,不改变其源P地址和目的P地址。而NAT路由器在转发IP数据报时,一定要更换其IP地址(转换源P地址或目的IP地址)。普通路由器仅工作在网络层,而NAT路由器转发数据报时需要查看和转换传输层的端口号.
4.4、IPV6协议
4.4.1、解决“P地址耗尽”问题的措施有以下三种:
①采用无类别编址CIDR,使P地址的分配更加合理:
②采用网络地址转换(NAT)方法以节省全球P地址:
③采用具有更大地址空间的新版本的IPv6。其中前两种方法只是延长了TPv4地址分配完毕的时间,只有第三种方法从根本上解决了IP地址的耗尽问题。
4.4.2、IPv6的主要特点如下:
1)更大的地址空间。IPv6将地址从IPv4的32位增大到了128位。IPv6的字节数(16B)是
IPv4字节数:(4B)的平方。
2)扩展的地址层次结构。
3)灵活的首,部格式。
4)改进的选项。
5)允许协议继续扩充。
6)支持即插即用(即自动配置)。
7)支持资源的预分配。
8)IPv6只有在包的源结点才能分片,是端到端的,传输路径中的路由器不能分片,所以从
一般意义上说,IPv6不允许分片(不允许类似IPv4的路由分片)。
9)IPv6首部长度必须是8B的整数倍,而IPv4首部是4B.的整数倍。;10)增大了安全性。身份验证和保密功能是IPv6的关键特征。·
4.4.3、IPv6数据报的目的地址可以是以下三种基本类型地址之一:.
1)单播。单播就是传统的点对点通信。
2)多播。多播是一点对多点的通信,.分组被交付到一组计算机的每台计算机。
3)任播。这是IPv6增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交
付其中的一台计算机,通常是距离最近的一台计算机。
4.5、划分子网和构建超网
4.5.1、子网划分
两级I地址的缺点:IP地址空间的利用率有时很低;给每个物理网络分配一个网络号会使路由表变得太大而使网络性能变坏;两级的IP地址不够灵活。
子网划分的基本思路如下:
子网划分纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
从主机号借用若干比特作为子网号,当然主机号也就相应减少了相同的比特。三级IP地址的结构如下:IP地址={<网络号>,<子网号>,<主机号>}。
凡是从其他网络发送给本单位某台主机的P数据报,仍然是根据P数据报的目的网络号,先找到连接到本单位网络上的路由器。然后该路由器在收到P数据报后,按目的网络号和子网号找到目的子网。最后把P数据报直接交付给目的主机。
划分子网只是把P地址的主机号这部分进行再划分,而不改变P地址原来的网络号。
4.5.2、子网掩码
为了告诉主机或路由器对一个A类、B类、C类网络进行了子网划分,使用子网掩码来表达对原网络中主机号的借位。
子网掩码是-一个与IP地址相对应的、长32bit的二进制串,它由一串Ⅰ和跟随的一串0组成。其中,1对应于IP地址中的网络号及子网号,而О对应于主机号。计算机只需将P地址和其对应的子网掩码逐位“与”(逻辑AND运算),就可得出相应子网的网络地址。
4.5.3、无分类患间路由选择(CIDR)
CIDR最主要的特点有两个:
(1) CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,因而能更加有效地分配IPv4 的地址空间,并且在新的IPv6使用之前容许互联网的规模继续增长。CIDR把32位的IP地址划分为前后两个部分。前面部分是“网络前缀”(network-prefix)(或简称为“前缀”),用来指明网络,后面部分则用来指明主机。因此CIDR使IP地址从三级编址(使用子网掩码)又回到了两级编址,但这已是无分类的两级编址。其记法是:
IP地址::={<网络前缀>,<主机号>}
CIDR还使用“斜线记法”(slash notation),或称为CIDR记法,即在IP地址后面加上斜线“/”,然后写上网络前缀所占的位数。
(2)CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。例如,已知IP地址128.14.35.7/20是某CIDR地址块中的一个地址,现在把它写成二进制表示,其中的前20位是网络前缀(用粗体和下划线表示出),而前缀后面的12位是主机号
4.6、ARP\DHCP与ICMP
4.6.1、IP地址与硬件地址
地址是网络层使用的地址,它是分层次等级的。硬件地址是数据链路层使用的地址(如MAC地址),它是平面式的。在网络层及网络层之上使用P地址,TP地址放在P数据报的首部,而MAC地址放在MAC帧的首部。通过数据封装,把P数据报分组封装为MAC帧后,数据链路层看不见数据报分组中的地址。
注意:路由器由于互联多个网络,因此它不仅有多个P地址,也有多个硬件地址。
4.6.2、地址解析协议 ARP
无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成IP地址到MAC地址的映射,这就是地址解析协议 ARP。
注意:ARP用于解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做,尽管ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。
4.6.2、动态主机配置协议 DHCP
动态主机配置协议(DHCP)常用于给主机动态地分配地址,它提供了即插即用的联网机制,这种机制允许一台计算机加入新的网络和获取P地址而不用手工参与。DHCP是应用层协议,它是基于UDP的。
4.6.2、网际控制报文协议 ICMP
为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP。ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP 的一个重要应用就是分组网间探测PING,用来测试两台主机之间的连通性。PING使用了ICMP回送请求与回送回答报文。PNG是应用层直接使用网络层ICMP的一个例子。它没有通过运输层的TCP或UDP。
4.7、路由选择协议
4.7.1、自治系统
自治系统(Autonomous System,AS):单一技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量来确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议来确定分组在AS之间的路由。
一个自治系统内的所有网络都由一个行政单位(如一家公司、一所大学、一个政府部门等)管辖,一个自治系统的所有路由器在本自治系统内都必须是连通的。
4.7.2、域内路由与域间路由
自治系统内部的路由选择称为域内路由选择,自治系统之间的路由选择称为域间路由选择。因特网有两大类路由选择协议。
1.内部网关协议(Interior Gateway Protocol,IGP)
内部网关协议即在一个自治系统内部使用的路由选择协议,它与互联网中其他自治系统选用什么路由选择协议无关。目前这类路由选择协议使用得最多,如RIP和OSPF。
2.外部网关协议(External Gateway Protocol,EGP)
若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时(两个自治系统可能使用不同的IGP),就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议(EGP)。目前使用最多的外部网关协议是BGP-4。
4.7.3、路由信息协议(RIP)
RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。
距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路 由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。
4.7.4、开放最短路径优先(OSPF)
开放最短路径优先OSPF协议:“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的;“最短路径优先” 是因为使用了Dijkstra提出的最短路径算法SPF。 OSPF最主要的特征就是使用分布式的链路状态协议。
4.7.5、边界网关协议(BGP)
边界网关协议是不同自治系统的路由器之间交换路由信息的协议,是种外部网关协议。边界网关协议常用于互联网的网关之间。路由表包含已知路由器的列表、路由器能够达到的地址及到达每个路由器的路径的跳数。
4.8、IP组播
4.8.1、IP组播概念
单播:单播用于发送数据包到单个目的地,且每 发送一份单播报文都使用一个单播IP地址 作为目的地址。是一种点对点传输方式。
广播:广播是指发送数据包到同一广播域或子 网内的所有设备的一种数据传输方式, 是一种点对多点传输方式。
组播:当网络中的某些用户需要特定数据时, 组播数据发送者仅发送一次数据,借助 组播路由协议为组播数据包建立组播分 发树,被传递的数据到达距离用户端尽 可能近的节点后才开始复制和分发,是 一种点对多点传输方式
。
4.8.2、IP组播地址
IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求 主机的相同标识)。
组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目标地 址。源地址总是为单播地址。
1.组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。
2.对组播数据报不产生ICMP差错报文。
3.并非所有D类地址都可以作为组播地址。
组播可以分为两种:一种只在本局域网上进行硬件组播:另一种则在因特网的范围内进行组播。在因特网上进行组播的最后阶段。
4.8.3、IGMP与组播路由算法
要使路由器知道组播组成员的信息,需要利用因特网组管理协议。连接到局域网上的组播路由器还必须和因特网上的其他组播路由器协同工作,以便把组播数据报用最小代价传送给所有组成员,这就需要使用组播路由选择协议。
4.9、移动IP
4.9.1、移动IP概念
移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了 基于网络IP的网络权限在漫游过程中不发生任何改变。
移动结点:具有永久IP地址的移动设备。
归属代理:一个移动结点的永久“居所”称为归属网络,在归属网络中代表移动节点执行移 动管理功能的实体叫做归属代理。
永久地址:移动站点在归属网络中的原始地址。
外部代理:在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。
转角地址:可以是外部代理的地址或动态配置的一个地址。
4.9.2、移动IP通信过程
在移动P中,每个移动结点都有一个唯-一的本地地址,当移动结点移动时,它的本地地址是不变的,在本地网络链路让每个本地结点还必须有一个本地代理来为它维护当前的位置信息,这就需要引入转交地址。当移动结点连接到外地网络链路上时,转交地址就用来标识移动结点现在所处的位置,以便进行路由选择。移动结点的本地地址与当前转交地址的联合称为移动绑定或简称绑定。当移动结点得到一个新的转交地址时,通过绑定向本地代理进行注册,以便让本地代理即时了解移动结点的当前位置。
4.10、网络层设备
4.10.1、路由器的组成和功能
路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接不同的网络(连接异构网络)并完成路由转发。在多个逻辑网络(即多个广播域)互联时必须使用路由器。
分组转发部分由三部分组成:交换结构、一组输入端口和一组输出端口。输入端口在从物理层接收到的比特流中提取出数据链路层帧,进而从帧中提取出网络层数据报,输出端口则执行恰好相反的操作。交换结构是路由器的关键部件,它根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。
有三种常用的交换方法:通过存储器进行交换、通过总线进行交换和通过互联网络进行交换。交换结构本身就是一个网络。
4.10.2、路由表与路由转发
路由表根据路由选择算法得出的,主要用途是路由选择,总用软件来实现。
转发表由路由表得来,可以用软件实现,也可以用特殊的硬件来实现。转发表必须包含完成转发 功能所必需的信息,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址 信息的映射。
转发表是从路由表得出的,其表项和路由表项有直接的对应关系。但转发表的格式和路由表的格式不同,其结构应使查找过程最优化(而路由表则需对网络拓扑变化的计算最优化)。转发表中含有一个分组将要发往的目的地址,以及分组的下一跳(即下一步接收者的目的地址,实际为MAC地址)。为了减少转发表的重复项目,可以使用一个默认路由代替所有具有相同“下一跳”的项目,并将默认路由设置得比其他项目的优先级低。
第五章 传输层/运输层
5.1、传输层提供的服
5.1.1、传输层的功能
从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最商层,同时也是用户功能中的最低层。
传输层位于网络层之上,它为运行在不同主机上的进程之间提供了逻辑通信,而网络层提供主机之间的逻辑通信。显然,即使网络层协议不可靠(网络层协议使分组丢失、混乱或重复),传输层同样能为应用程序提供可靠的服务。
传输层的功能如下:
1)传输层提供应用进程之间的逻辑通信(即端到端的通信)。与网络层的区别是,网络层提
供的是主机之间的逻辑通信。
从网络层来说,通信的双方是两台主机,P数据报的首部给出了这两台主机的P地址。但“两台主机之间的通信”实际上是两台主机中的应用进程之间的通信,应用进程之间的通信又称端到端的逻辑通信。这里“逻辑通信”的意思是:传输层之间的通信好像是沿水平方向传送数据,但事实上这两个传输层之间并没有一条水平方向的物理连接。
2)复用和分用。复用是指发送方不同的应用进程都可使用同一个传输层协议传送数据:分
用是指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。注意:网络层也有复用分用的功能,但网络层的复用是指发送方不同协议的数据都可以封装成P数据报发送出去,分用是指接收方的网络层在剥去酋部后把数据交付给相应的协议。
3)传输层还要对收到的报文进行差错检测(首部和数据部分)。而网络层只位耸P效菇撤
的首部,不检验数据部分是否出错。
4)提供两种不同的传输协议,即面向连接的TCP和无连接的UDP。而网络层无法同时实现两种协议(即在网络层要么只提供面向连接的服务,如虚电路;要么只提供无连接服务,如数据报,而不可能在网络层同时存在这两种方式)。
5.1.2、传输层的寻址与端口
1.端口的作用
端口能够让应用层的各种应用进程将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。端口是传输层服务访问点(TSAP),它在传输层的作用类似于P地址在网络层的作用或MAC地址在数据链路层的作用,只不过P地址和MAC地址标识的是主机,而端口标识的是主机中的应用进程。
2.端口号
3.套接字
在网络中通过P地址来标识和区别不同的主机,通过端口号来标识和区分一台主机中的不同应用进程,端口号拼接到P地址即构成套接字Socket。在网络中采用发送方和接收方的套接字来识别端点。套接字,实际上是一个通信端点,即
套接字Socket =(P地址:端口号)
它唯一地标识网络中的一台主机和其上的一个应用〈进程)。
在网络通信中,主机A发给主机B的报文段包含目的端口号和源端口号,源端口号是“返回地址”的一部分,即当需要发回一个报文段给A时,B到A的报文段中的目的端口号便是A到B的报文段中的源端口号(完全的返回地址是A的P地址和源端口号)。
5.1.3、无连接服务与面向连接服务
面向连接服务就是在通信双方进行通信之前,必须先建立连接,在通信过程中,整个连接的情况一直被实时地监控和管理。通信结束后,应该释放这个连接。
无连接服务是指两个实体之间的通信不需要先建立好连接,需要通信时,直接将信息发送到“网络”中,让该信息的传递在网上尽力而为地往目的地传送。
TCP/P协议族在P层之上使用了两个传输协议:一个是面向连接的传输控制协议(TCP),采用TCP时,传输层向上提供的是一条全双工的可靠逻辑信道:另一-个是无连接的用户数据报协议(UDP),采用UDP时,传输层向上提供的是一条不可靠的逻辑信道。
TCP提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或组播服务。由于TCP提供面向连接的可靠传输服务,因此不可避免地增加了许多开销,如确认、流量控制、计时器及连接管理等。这不仅使协议数据单元的头部增大很多,还要占用许多的处理机资源。因此TCP主要适用于可靠性更重要的场合,如文件传输协议(FTP)、超文本传输协议(HTTP)、远程登录(TELNET)等。
UDP是一个无连接的非可靠传输层协议。它在IP之上仅提供两个附加服务:多路复用和对数据的错误检查。IP知道怎样把分组投递给一台主机,但不知道怎样把它们投递给主机上的具体应用。UDP在传送数据之前不需要先建立连接,远程主机的传输层收到UDP报文后,不需要给出任何确认。由于UDP比较简单,因此执行速度比较快、实时性好。使用UDP的应用主要包括小文件传送协议(TFTP)、DNS、SNMP和实时传输协议(RTP)。
5.2、UDP协议
5.2.1、UDP数据报
1)UDP无须建立连接。因此UDP不会引入建立连接的时延。试想如果DNS运行在TCP而
非UDP 上,那么DNS的速度会慢很多。HTTP使用TCP而非 UDP,是因为对于基于文本数据的Web网页来说,可靠性是至关重要的。
2)无连接状态。TCP需要在端系统中维护连接状态。此连接状态包括接收和发送缓存、拥
塞控制参数和序号与确认号的参数。而UDP不维护连接状态,也不跟踪这些参数。因此,某些专用应用服务器使用UDP时,一般都能支持更多的活动客户机。
3)分组首部开销小。TCP有20B的首部开销,而UDP仅有8B的开销。
4)应用层能更好地控制要发送的数据和发送时间。UDP没有拥塞控制,因此网络中的拥塞
不会影响主机的发送效率。某些实时应用要求以稳定的速度发送,能容忍一些数据的丢失,但不允许有较大的时延,而 UDP正好满足这些应用的需求。
5) UDP支持一对一、一对多、多对一和多对多的交互通信。
UDP的首部格式
UDP数据报包含两部分:UDP首部和用户数据。UDP首部有8B,由4个字段组成,每个字段的长度都是2B,如图s.2所示。各字段意义如下:
1) 源端口。源端口号。在需要对方回信时选用,不需要时可用全0。2)目的端口。目的端口号。这在终点交付报文时必须使用到。
3)长度。UDP数据报的长度(包括首部和数据),其最小值是8(仅有首部)。
4〉校验和。检测UDP数据报在传输中是否有错。有错就丢弃。该字段是可选的,当源主机
不想计算校验和时,则直接令该字段为全0。
5.2.2、UDP校验
在计算校验和时,要在 UDP数据报之前增加12B的伪首部,伪首部并不是UDP 的真正首部。只是在计算校验和时,临时添加在UDP数据报的前面,得到一个临时的UDP数据报。校验和就是按照这个临时的UDP数据报来计算的。伪首部既不向下传送又不向.上递交,而只是为了计算校验和。
5.3、TCP协议
5.3.1、TCP协议的特点
TCP是在不可靠的P层之上实现的可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复问题。TCP是TCP/IP体系中非常复杂的一个协议,主要特点如下:
1)TCP是面向连接的传输层协议。
2)每条TCP连接只能有两个端点,每条TCP连接只能是点对点的(一对一)。3)TCP提供可靠的交付服务,保证传送的数据无差错、不丢失、不重复且有序。
4)TCP提供全双工通信,允许通信双方的应用进程在任何时候都能发送数据,为此TCP连
接的两端都设有发送缀存和接收缓存,用来临时存放双向通信的数据。
发送缓存用来暂时存放以下数据:①发送应用程序传送给发送方TCP准备发送的数据;②TCP已发送但尚未收到确认的数据。接收缓存用来暂时存放以下数据:①按序到达但尚未被接收应用程序读取的数据;②不按序到达的数据。
5)TCP是面向字节流的,虽然应用程序和TCP 的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅视为一连串的无结构的字节流。
5.3.2、TCP报文段
TCP传送的数据单元称为报文段。TCP报文段既可以用来运载数据,又可以用来建立连接、释放连接和应答。一个TCP报文段分为首部和数据两部分,整个TCP报文段作为IP数据报的数据部分封装在IP数据报中,如图5.6所示。其首部的前20B是固定的。TCP报文段的首部最短为20B,后面有4N字节是根据需要而增加的选项,通常长度为4B的整数倍。
1)源端口和目的端口。各占2B。端口是运输层与应用层的服务接口,运输层的复用和分用
功能都要通过端口实现。
2)序号。占4B,范围为0~22-1,共23个序号。TCP是面向字节流的(即TCP传送时是
逐个字节传送的),所以TCP连接传送的字节流中的每个字节都按顺序编号。序号字段的值指的是本报文段所发送的数据的第一个字节的序号。
例如,一报文段的序号字段值是301,而携带的数据共有100B,表明本报文段的数据的最后一个字节的序号是400,因此下一个报文段的数据序号应从401开始。
3)确认号。占4B,是期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,
则表明到序号N-1为止的所有数据都已正确收到。
例如,B正确收到了A发送过来的一个报文段,其序号字段是501,而数据长度是200B(序号501~700),这表明B正确收到了A发送的到序号700为止的数据。因此B期望收到A的下一个数据序号是701,于是B在发送给A的确认报文段中把确认号置为701。
4)数据偏移(即首部长度)。占4位,这里不是IP数据报分片的那个数据偏移,而是表示
首部长度(首部中还有长度不确定的选项字段),它指出 TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位是32位(以4B为计算单位)。因此当此字段的值为15时,达到TCP首部的最大长度60B。
5)保留。占6位,保留为今后使用,但目前应置为0。
6)紧急位URG。URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,
应尽快传送(相当于高优先级的数据)。但URG需要和紧急指针配合使用,即数据从第一个字节到紧急指针所指字节就是紧急数据。
7)确认位ACK。仅当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。
TCP规定,在连接建立后所有传送的报文段都必须把ACK 置1。
8)推送位PSH(Push)。接收方TCP收到PSH=1的报文段,就尽快地交付给接收应用进程,
而不再等到整个缓存都填满后再向上交付。
9)复位位RST (Reset)。RST=1时,表明TCP连接中出现严重差错(如主机崩溃或其他原
因),必须释放连接,然后再重新建立运输连接。
10)同步位SYN。同步SYN=1表示这是一个连接请求或连接接受报文。
当SYN=1,ACK=0时,表明这是一个连接请求报文,对方若同意建立连接,则应在响应报文中使用SYN=1,ACK= 1。
11)终止位FIN (Finish)。用来释放一个连接。当FIN = 1时,表明此报文段的发送方的数
据已发送完毕,并要求释放传输连接。
12〉窗口。占2B,范围为0~2l6-1。它指出现在允许对方发送的数据量,接收方的数据缓存
空间是有限的,因此用窗口值作为接收方让发送方设置其发送窗口的依据。
例如,设确认号是701,窗口字段是1000。这表明,从701号算起,发送此报文段的一方还有接收1000字节数据〈字节序号为701~1700)的接收缓存空间。
13)校验和。占2B。校验和字段检验的范围包括首部和数据两部分。在计算校验和时,和
UDP一样,要在TCP报文段的前面加上12B的伪首部(只需将UDP伪首部的第4个字段,即协议字段的17改成6.其他的和UDP一样)。..
14)紧急指针。占2B。紧急指针仅在URG=1时才有意义,它指出在本报文段中紧急数据.共有多少字节(紧急数据在报文段数据的最前面)。
15)选项。长度可变。TCP最初只规定了一种选项,即最大报文段长度(Maximum Segment Size,
MSS)。MSS是TCP报文段中的数据字段的最大长度(注意仅仅是数据字段)。
16)填充。这是为了使整个首部长度是4B的整数倍。.
5.3.3、TCP连接管理
TCP是面向连接的协议,因此每个TCP连接都有三个阶段:连接建立、数据传送和连接释放。TCP连接的管理就是使运输连接的建立和释放都能正常进行。
在TCP连接建立的过程中,要解决以下三个问题:
1)要使每一方能够确知对方的存在。
2)要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项、时间戳选项及服务
质量等)。
3)能够对运输实体资源(如缓存大小、.连接表中的项目等)进行分配。
TCP把连接作为最基本的抽象,每条·TCP连接有两个端点,TCP 连接的端点不是主机,不是主机的P地址,不是应用进程,也不是传输层的协议端口。TCP连接的端口即为套接字(socket)或插口,每条TCP连接唯一地被通信的两个端点(即两个套接字)确定。
TCP连接的建立采用客户/服务器方式。主动发起连接建立的应用进程称为客户(Client),而被动等待连接建立的应用进程称为服务器(Server)。
TCP的建立(三次握手)
连接建立前,服务器进程处于LISTEN(收听)状态,等待客户的连接请求。
第一步:客户机的TCP首先向服务器的TCP 发送连接请求报文段。这个特殊报文段的首部中的同步位SYN置1,同时选择一个初始序号seq=x。TCP规定,SYN报文段不能携带数据,但要消耗掉一个序号。这时,TCP客户进程进入SYN-SENT(同步已发送)状态。
第二步:服务器的TCP收到连接请求报文段后,如同意建立连接,则向客户机发回确认,并为该TCP连接分配缓存和变量。在确认报文段中,把SYN位和ACK位都置1,确认号是ack =x+1,同时也为自己选择一个初始序号seq=y。注意,确认报文段不能携带数据,但也要消耗掉一个序号。这时,TCP服务器进程进入SYN-RcVD(同步收到)状态。
第三步:当客户机收到确认报文段后,还要向服务器给出确认,并为该TCP连接分配缓存和变量。确认报文段的ACK位置1,确认号ack =y+1,序号seq=x+1。该报文段可以携带数据,若不携带数据则不消耗序号。这时,TCP客户进程进入ESTABLISHED(已建立连接)状态。
洪泛攻击:SYN洪泛攻击发生在OSI第四层,这种方式利用TCP协议的特性,就是三次握手。攻击者发送 TCP SYN,SYN是TCP三次握手中的第一个数据包,而当服务器返回ACK后,该攻击者就不对 其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到 再确认的话,还会重复发送ACK给攻击者。这样更加会浪费服务器的资源。攻击者就对服务 器发送非常大量的这种TCP连接,由于每一个都没法完成三次握手,所以在服务器上,这些 TCP连接会因为挂起状态而消耗CPU和内存,最后服务器可能死机,就无法为正常用户提供 服务了。
TCP的连接的释放(四次挥手)
第一步:客户机打算关闭连接时,向其TCP发送连接释放报文段,并停止发送数据,主动关闭TCP连接,该报文段的终止位FTN置1,序号seq=u,它等于前面已传送过的数据的最后一个字节的序号加1,FIN报文段即使不携带数据,也消耗掉一个序号。这时,TCP客户进程进入FN-WAIT-1(终止等待1)状态。TCP是全双工的,即可以想象为一条TCP连接上有两条数据通路,发送FIN的一端不能再发送数据,即关闭了其中一条数据通路,但对方还可以发送数据。
第二步:服务器收到连接释放报文段后即发出确认,确认号ack=u+1,序号seq=v,等于它前面已传送过的数据的最后一个字节的序号加1。然后服务器进入CLOSE-WAIT(关闭等待)状态。此时,从客户机到服务器这个方向的连接就释放了,TCP连接处于半关闭状态。但服务器若发送数据,客户机仍要接收,即从服务器到客户机这个方向的连接并未关闭。
第三步:若服务器己没有要向客户机发送的数据,就通知TCP释放连接,此时其发出FIN=1的连接释放报文段。设该报文段的序号为w在半关闭状态服务器可能又发送了一些数据),还须重复上次已发送的确认号ack = u+1。这时服务器进入LAST-ACK(最后确认)状态。
第四步:客户机收到连接释放报文段后,必须发出确认。把确认报文段中的确认位ACK 置1,确认号ack = w + 1,序号seq= u +1。此时TCP连接还未释放,必须经过时间等待计时器设置的时间2MSL(最长报文段寿命)后,客户机才进入CLOSED(连接关闭)状态。
5.3.4、TCP可靠传输
TCP的任务是在P层不可靠的、尽力而为服务的基础上建立一种可靠数据传输服务。TCP提供的可靠数据传输服务保证接收方进程从缓存区读出的字节流与发送方发出的字节流完全一样。TCP使用了校验、序号、确认和重传等机制来达到这一目的。其中,TCP的校验机制与UDP校验一样,这里不再赘述。
5.3.5、TCP流量控制
流量控制:让发送方慢点,要让接收方来得及接收。 TCP利用滑动窗口机制实现流量控制。
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd (接收方 设置确认报文段的窗口字段来将rwnd通知给发送方) ,发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最 小值
5.3.6、TCP拥塞控制
拥塞控制是指防止过多的数据注入网络,保证网络中的路由器或链路不致过载。出现拥塞时,端点并不了解拥塞发生的细节,对通信连接的端点来说,拥塞往往表现为通信时延的增加。
拥塞控制与流量控制的区别:拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。相反,流量控制往往是指点对点的通信量的控制,是个端到端的问题(接收端控制发送端),它所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收。当然,拥塞控制和流量控制也有相似的地方,即它们都通过控制发送方发送数据的速率来达到控制效果。
发送方在确定发送报文段的速率时,既要根据接收方的接收能力,又要从全局考虑不要使网络发生拥塞。因此,TCP协议要求发送方维护以下两个窗口:
1)接收窗口rwnd,接收方根据目前接收缓存大小所许诺的最新窗口值,反映接收方的容量。由接收方根据其放在TCP报文的首部的窗口字段通知发送方。
2)拥塞窗口cwnd,发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络的当前容量。只要网络未出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入网络的分组数发送窗口的上限值应取接收窗口rwnd和拥塞窗口cwnd中较小的一个,即
发送窗口的上限值= min[rwnd, cwndl
第六章 应用层
6.1、网路应用模型
6.1.1、客户服务器模型
在客户/服务器(ClientlServer,C/S)模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求。其工作流程如下:
1)服务器处于接收请求的状态。
2)客户机发出服务请求,并等待接收结果。
3)服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机。
客户程序必须知道服务器程序的地址,客户机上一般不需要特殊的硬件和复杂的操作系统。而服务器上运行的软件则是专门用来提供某种服务的程序,可同时处理多个远程或本地客户的要求。系统启动后即自动调用并一直不断地运行着,被动地等待并接收来自各地客户的请求。因此,服务器程序不需要知道客户程序的地址。
客户/服务器模型最主要的特征是:客户是服务请求方,服务器是服务提供方。如Web应用程序,其中总是打开的Web服务器服务于运行在客户机上的浏览器的请求。当Web服务器接收到来自客户机对某对象的请求时,它向该客户机发送所请求的对象以做出响应。常见的使用客户/服务器模型的应用包括Web、文件传输协议(FTP)、远程登录和电子邮件等。
6.1.2、P2P模型
不难看出,在CS模型中(见图6.1),服务器性能的好坏决定了整个系统的性能,当大量用户请求服务时,服务器就必然成为系统的瓶颈。P2P模型(见图6.2)的思想是整个网络中的传输内容不再被保存在中心服务器上,每个结点都同时具有下载、上传的功能,其权利和义务都是大体对等的。在P2P模型中,各计算机没有固定的客户和服务器划分。相反,任意一对计算机称为对等方(Peer),直接相互通信。实际上,P2P模型从本质上来看仍然使用客户/服务器方式,每个结点既作为客户访问其他结点的资源,也作为服务器提供资源给其他结点访问。当前比较流行的P2P应用有PPlive、Bittorrent和电驴等。
与CIS模型相比,P2P模型的优点主要体现如下:
1)减轻了服务器的计算压力,消除了对某个服务器的完全依赖,可以将任务分配到各个结
点上,因此大大提高了系统效率和资源利用率(例如,播放流媒体时对服务器的压力过大,而通过PZP模型,可以利用大量的客户机来提供服务)。
2)多个客户机之间可以直接共享文档。
3)可扩展性好,传统服务器有响应和带宽的限制,因此只能接受一定数量的请求。4)网络健壮性强,单个结点的失效不会影响其他部分的结点。
P2P模型也有缺点。在获取服务的同时,还要给其他结点提供服务,因此会占用较多的内存,影响整机速度。例如,经常进行P2P下载还会对硬盘造成较大的损伤。据某互联网调研机构统计,当前P2P程序已占互联网50%~90%的流量,使网络变得非常拥塞,因此各大 ISP(互联网服务提供商,如电信、网通等)通常都对P2P应用持反对态度。
6.2、域名系统(DNS)
域名系统(Domain Name System,DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如www.cskaoyan.com)转换为便于机器处理的P地址。相对于Ⅳ地址,人们更喜欢使用具有特定含义的字符串来标识因特网上的计算机。值得注意的是,DNS 系统采用客户/服务器模型,其协议运行在UDP 之上,使用53号端口。
从概念上可将DNS分为3部分:层次域名空间、域名服务器和解析器。
6.2.1、层次域名空间
因特网采用层次树状结构的命名方法。来用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名(Domain Name)。域(Domain)是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。每个域名都由标号序列组成,而各标号之间用点“.”)隔开。一个典型的例子如图6.3所示,它是王道论坛用于提供wwW服务的计算机(Web服务器)的域名,它由三个标号组成,其中标号com是顶级域名,标号cskaoyan是二级域名,标号www是三级域名。
6.2.2、域名服务器
DNS使用了大量的域名服务器,它们以层次方式组织。没有一台域名服务器具有因特网上所有主机的映射,相反,该映射分布在所有的DNS 上。采用分布式设计的DNS,是一个在因特网上实现分布式数据库的精彩范例。主要有4种类型的域名服务器。
1。根城名服务
2.顶级城名服务器
3,授权域名服务器(权限城名服务器)
4。本地域名服务器
6.2.3、域名解析过程
域名解析是指把域名映射成为P地址或把P地址映射成域名的过程。前者称为正向解析,后者称为反向解析。当客户端需要域名解析时,通过本机的DNS 客户端构造一个DNS请求报文,以 UDP数据报方式发往本地域名服务器。
域名解析有两种方式:递归查询和递归与迭代相结合的查询。一个是本地域名服务器自己进行查询,一个是转给其他服务器
6.3、文件传输协议(FTP)
文件传输协议(File Transfer Protocol,FTP)是因特网上使用得最广泛的文件传输协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。它屏蔽了各计算机系统的细节,因而适合于在异构网络中的任意计算机之间传送文件。
FTP是基于客户/服务器(C/S)的协议。
用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。
依照 FTP 协议提供服务,进行文件传送的计算机就是 FTP 服务器。
连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。
6.4、电子邮件
6.4.1、电子邮件系统的组成结构
自从有了因特网,电子邮件就在因特网上流行起来。电子邮件是一种异步通信方式,通信时不需要双方同时在场。电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可以随时上网到自己使用的邮件服务器进行读取。
一个电子邮件系统应具有图6.8所示的三个最主要的组成构件,即用户代理〈User Agent)、邮件服务器和电子邮件使用的协议,如SMTP、POP3(或IMAP)等。
6.4.2、电子邮件格式与MIME
电子邮件格式
一个电子邮件分为信封和内容两大部分,邮件内容又分为首部和主体两部分。RFC 822规定了邮件的首部格式,而邮件的主体部分则让用户自由撰写。用户写好首部后,邮件系统自动地将信封所需的信息提取出来并写在信封上,用户不需要亲自填写信封上的信息。
多用途网际邮件扩充(MIME)
由于SMTP 只能传送一定长度的ASCII码,许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送,且无法传送可执行文件及其他二进制对象,因此提出了多用途网络邮件扩充。MIME并未改动SMTP或取代它。MIME的意图是继续使用目前的格式,但增加了邮件主体的结构,并定义了传送非ASCII 码的编码规则。也就是说,MIME邮件可在现有的电子邮件程序和协议下传送。
6.4.3、SMTP和POP3
简单邮件传输协议〈Simple Mail Transfer Protocol,SMTP)是一种提供可靠且有效的电子邮件传输的协议,它控制两个相互通信的SMTP进程交换信息。由于SMTP使用客户/服务器方式,因此负贵发送邮件的SMTP进程就是SMTP客户,而负责接收邮件的SMTP进程就是SMTP服务器。SMTP用的是TCP连接,端口号为25。SMTP通信有以下三个阶段。
STMP缺点:
1.SMTP不能传送可执行文件或者其他二进制对象。
2.SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字。
3.SMTP服务器会拒绝超过一定长度的邮件。
邮局协议POP3
邮局协议(Post Office Protocol,POP)是一个非常简单但功能有限的邮件读取协议,现在使用的是它的第3个版本POP3。POP3采用的是“拉”(Pull〉的通信方式,当用户读取邮件时,用户代理向邮件服务器发出请求,“拉”取用户邮箱中的邮件。
6.5、万维网(WWW)
6.5.1、WWW的概念与组成结构
万维网(World Wide Web,www)是一个分布式、联机式的信息存储空间,在这个空间中:-一-样有用的事物称为一样“资源”,并由一个全域“统一资源定位符”(URL)标识。这些资源通过超文本传输协议(HTTP)传送给使用者,而后者通过单击链接来获取资源。
万维网使用链接的方法能非常方便地从因特网上的一个站点访问另一-个站点(即“链接到另一个站点”),从而主动地按需获取丰富的信息。超文本标记语言(HyperText Markup Language,HTML)使得万维网页面的设计者可以很方便地用一个超链接从本页面的某处链接到因特网上的任何一个万维网页面,并能够在自己的计算机屏幕上显示这些页面。
万维网的内核部分是由三个标准构成的:
1)统一资源定位符(URL)。负责标识万维网上的各种文档,并使每个文档在整个万维网的
范围内具有唯一的标识符URL。
2)超文本传输协议(HTTP)。一-个应用层协议,它使用TCP连接进行可靠的传输,HTTP
是万维网客户程序和服务器程序之间交互所必须严格遵守的协议。
3)超文本标记语言(HTML)。一种文档结构的标记语言,它使用一些约定的标记对页面上
的各种信息(包括文字、声音、图像、视频等)、格式进行描述。
URL是对可以从因特网上得到的资源的位置和访问方法的一种简洁表示。URL 相当于一个文件名在网络范围的扩展。URL的一般形式是:
<协议>://<主机>:<端口>/<路径>。
<协议>指用什么协议来获取万维网文档,堂贝的协议有 http,ftp等。
6.5.2、超文本传输协议HTTP
http概念
HTTP定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向事务的(Transaction-oriented)应用层协议,它规定了在浏览器和服务器之间的请求和响应的格式与规则,是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
http操作过程
http的特点
http报文结构
HTTP是面向文本的(Text-Oriented),因此报文中的每个字段都是一些ASCI码串,并且每个字段的长度都是不确定的。有两类HTTP报文:
请求报文:从客户向服务器发送的诮求报文,如图6.14(a)所示。响应报文:从服务器到客户的回答