第一章 概述
1.3.1 互联网的边缘部分(两种通信方式)
- 边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用。用来进行通信和组员共享。
- 核心部分:由大量网络和连接这些网络的路由器组成。核心部分为边缘部分提供服务(连通性和交换)。
处在互联网边缘部分的就是连接在互联网上的所有主机,这些主机又称为端系统。
- 端系统之间通信的含义:主机A和主机B的通信——运行在主机A上的某个程序和运行在主机B上的另一个程序进行通信(进程间的通信)。
- 端系统之间通信方式可划分为:客户/服务器(C/S)方式和对等(P2P)方式。
①C/S方式——客户是服务的请求方(主动发出请求报文的一方),服务器是服务端的提供方(被动等待连接的一方),此处的客户和服务器指的都是进程。此外,服务的请求方和提供方都要使用网络核心所提供的服务。客户程序必须知道服务器程序的地址,而服务器程序不必知道客户程序的地址。 客户与服务器建立通信关系之后,通信可以是双向的,即客户和服务器都可以发送和接收数据。 因此如果有判断题或选择题,有“服务器不能给客户发送数据”,则是错误的,并且服务器可以主动给客户发送数据,如一些错误的通知。 ②对等连接P2P,指两个主机在通信时不区分哪一个是服务请求方和提供方,而是每个结点同时称为服务请求方和提供方(本质仍是C/S)。当两个主机都运行了对等连接软件(P2P软件)时,它们就可以平等的、对等连接通信。
面向连接:TCP。 无连接:UDP、IP。
1.3.2 互联网的核心部分
网络中的核心部分要想网络边缘中的大量主机提供连通性,使边缘部分中的任何任何一个主机都能够向其他主机通信。 核心部分中起特殊作用的是路由器。
- 路由器实现了分组交换,其任务是转发收到的分组。注意,数据报和虚电路是分组交换的两种方式,以分组交换为基础。
- 电路交换:N部电话机两两相连需要
N*(N-1)/2 条电话线(全连接)。可以使用交换机组成星型拓扑。 电路交换的特点: ①必定是面向连接的。 ②分为三个阶段:建立连接、通信、释放连接。 ③建立,或占用的通信资源是物理链路。 缺点:计算机数据具有突发性,导致电路交换传送计算机数据时,通信线路的利用率极低(1%~10%)。 - 分组交换:采用了存储转发的技术。
①在发送端,先把较长的报文划分成较短的、长度固定的数据段。 ②在每一个数据段前面添加上首部构成分组。 ③分组交换网以分组作为数据传输单元,依次将各个分组发送到接收端。 ④分组首部的重要性:每一个分组的首部都含有地址(数据链路层首部含有6B的源地址和目的地址,格式为XX-XX-XX-XX-XX-XX,每个- 左右各为两个十六进制数,一个十六进制数需要四位表示,两个需要八位,正好构成一个字节,因此有六个字节。前三个字节是全球分配的,后三个字节是单位/组织分配的;IP数据报中均含有源地址和目的地址,IPv4:32位,IPv6:128位)等控制信息;分组交换网的结点交换机根据收到的分组首部中的地址信息,把分组转发到下一个结点交换机;每个分组在互联网中独立地选择传输路径,以这种存储转发的方式,最终可以到达终点。 ⑤接收端收到分组后,剥去首部,还原成报文。最终,接收端将收到的数据恢复为原来的报文。 - 互联网核心部分中的路由器之间通常采用高速链路相连接,而在网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连接。
- 主机的用途是为用户进行信息处理的,并且可以通过网络与其他主机交换信息。路由器的用途则是用来转发分组,进行分组交换。
- 三种交换的比较:
①若要连续传送大量的数据,且传送时间远大于连接建立的时间,则电路交换的传输速率较快。 ②报文交换和分组交换不需要预分配传输带宽,在传送突发数据时可以提高整个网络的信道利用率。显然,电路交换需要预先分配传输带宽,因此说它预先分配的是物理信道的资源。 ③分组交换比报文交换的时延小,因分组长度往往小于整个报文的长度。 互联网使用的是分组交换。
1.6.1 计算机网络的性能指标
包括:速率、带宽、吞吐率、时延、时延带宽积、往返时间RTT和利用率。
1.速率:
- 比特是计算机中数据量的单位,也是信息论中信息量的单位。
- 速率指的是数据的传送速率,也成为数据率或比特率。即连接到计算机网络上的主机在数字信道上传送数据的速率。单位是bit/s。
2.带宽:
- 两种不同的意义:原指信号具有的频带宽度,单位是赫。
- 在计网中,带宽用来表示网络中某信道传送数据的能力。表示在单位时间内网络中某信道所能通过的最高数据率,单位是bit/s。这里老师上课的时候着重强调了带宽,明天考试可能会出现。
3.吞吐量:
- 表示在单位时间内通过某个网络(或信道、接口)的数据量。
- 受网络的带宽或网络的额定速率限制。
4.时延:指数据(报文/分组/比特)从网络(或链路)的一端传送到另一端所需要的时间。由四部分组成。
- 发送时延:结点将分组的所有bit推向传送链路所需要的时间,
发送时延 = 分组长度(bit)/发送速率(bit/s) 。 - 传播时延:电磁波在信道中传播一定距离所需要花费的时间。
传播时延 = 信道长度/电磁波在信道上的传播速率 。 - 处理时延:数据在交换节点为存储转发而进行的一些必要的处理所花费的时间。
- 排队时延:分组进入路由器后需要现在输入队列中排队等待。
总时延 = 四个相加。 注:对于告诉链路,提高的仅仅是数据发送速率而非比特在联律上的传播速率,提高数据的发送速率及那个低了数据的发送时延。
5.时延带宽积:又称为以比特为单位的链路长度。时延带宽积 = 传播时延 × 带宽 。 带宽指的是单位时间内某信道所能通过的最高数据率。(管道的大小)
6.往返时间RTT:
- 从发方发送数据开始,知道发送方收到来自接收方的确认,总共经历的时间。
- 在卫星通信中,RTT相对较长,是重要的性能指标。
7.利用率:分为信道利用率和网络利用率。
- 信道利用率:指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道利用率为0。
- 网络利用率:全网信道利用率的加权平均值。
- 当某信道的利用率增大时,该信道引起的时延也迅速增加。
信道利用率 = 有效数据通过时间 / (有 + 无)数据通过时间 。
传输速率指主机在数字信道上发送数据的速率,也称数据传输速率;带宽指数字信道所能传送的最高数据传输速率。在一段时间内,链路中有多少比特取决于带宽,比特跑了多远取决于传播速率。
1.7 计算机网络的体系结构(层次划分、网络协议的三个组成要素)
计算机网络系统的基本组成:通信子网和资源子网。
1.7.2 协议与划分层次
网络协议:
- 网络协议的三个组成要素 : 语法、语义、同步。100%确定此处会有考题。
语法:数据与控制信息的结构或格式。 语义:需要发出何种控制信息,完成何种动作以做出相应。 语用:时间实现顺序的详细说明。 - 协议的两种形式:文字描述/程序代码。
划分层次:
- 各层主要完成的任务:
①流量控制。 ②差错控制。 ③分段和重装。 ④复用和分用。 ⑤连接建立与释放。
计算机网络的体系结构是计算机网络各层及其协议的集合。(体系结构:层 + 协议;协议的三要素:语法、语义、同步)体系结构是这个计算机网络及其部件所应完成的任务的精确定义。
协议与服务的区别: 协议是控制两个对等实体之间进行通信的规则的集合。在协议的控制下,两个对等实体之间的通信使得本层能够向上一层提供服务,而要实现本层的服务,还需要使用其下层提供的服务。
- 协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下层的协议,即下面的协议对上面的服务用户是透明的。
- 协议是“水平的”,即协议控制两个对等实体之间通信的规则,而服务是“垂直的”,即服务是由下层通过层间接口向上层提供的。
- 协议三要素:语法、语义、同步。
局域网和广域网的差异不仅在于其覆盖范围的不同,还在于其所使用的协议不同。
1.7.3 具有五层协议的体系结构
OSI参考模型具有七层协议体系结构,自下而上分别是L:物理层、数据链路层(OSI参考模型的数据链路层不具有拥塞控制功能,注意区分流量控制和拥塞控制)、网络层、传输层、会话层、表示层和应用层。服务、接口、协议是OSI参考模型的3个主要概念。 TCP/IP是四层的体系结构,自下而上分别是网络接口层、网际层、运输层和应用层。 五层协议的体系结构:物理层、数据链路层、网络层、运输层和应用层。
- PDU:协议数据单元——OSI参考模型将对等层次之间传送的数据单位称为该层的协议数据单元PDU。
如,当一个计算机从FTP服务器下载文件时,在该FTP服务器上对数据进行封装的五个转换步骤为: 数据 → 数据段(传输层PDU) → 数据报(IP层PDU) → 数据帧(MAC层PDU) → 比特(物理层)。 - 各层协议实际上就是在各个对等层之间传递数据时的各项规定。
1.7.4 实体、协议、服务和服务访问点
- 实体:表示任何可发送或接收信息的硬件或软件进程。
- 协议:控制两个对等实体之间进行通信的规则。
- 在协议的控制下,两个对等实体之间的通信使得本层能够向上一层提供服务。 要实现本层的协议,还需要使用下层提供的服务。
- 协议的三要素(Dejavu):语法、语义、同步。(是同步而不是语用,语用是编译原理中的概念)
- 协议是水平的,服务是垂直的。上层使用服务原语获得下层所提供的服务。(注意此处的原语:要么不执行,要执行就全部执行)
- 服务访问点SAP:同一系统相邻两层之间实体进行交互的地方,是一个逻辑接口。OSI将层与层之间交换数据的地方称为服务数据单元SDU。SDU和PDU可以不一样,如多个SDU可以合成为一个PDU,一个SDU也可以划分为多个PDU。
第二章 物理层
2.1 物理层的基本概念(选择题)
- 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
- 物理层的作用:尽可能地屏蔽掉不同传输媒体和通信手段的差异。
- 用于物理层的协议也常称为物理层规程。
- 物理层的主要任务:确定与传输媒体接口的一些特性。(可能有选择题,给一段描述,让你选这段描述的是物理层的哪个特性)
①机械特性:指明接口所使用的接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。 ②电气特性:在接口也电缆的各条线上出现的电压的范围。 ③功能特性:某一电平电压表示何种意义。 ④过程特性:指明对于不同功能的各种可能事件的出现顺序。 机械、电气、功能、过程。 - 物理层的传输单元是:比特流。
2.2.3 信道的极限容量
前面有些概念怕考填空题,如:
- 填出四个常用的编码方式,分别是:归零制编码、非归零制编码、曼彻斯特编码(带有同步信息)、差分曼彻斯特编码。
- 最基本的二元制调制方法:调幅、调频、调相。
- 信道复用技术:频分复用、时分复用+统计时分复用、波分复用、码分复用。
频时波码。
信道的极限容量:
- 奈奎斯特定理——在假定的理想条件下,为了避免码间串扰,码元的传输速率的上限值为:
Rmax = 2B · log2V (b/s) 其中B代表信道的带宽(以Hz为单位),V是每个信号所能取到的离散电平数(使用当前编码规则下可以产生的不同的物理状态数,如题目中若描述为“采用16种不同的物理状态来表述数据”,则V取16)。 - 香农公式——带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率C为:
C = W·log2(1+S/N) W为信道的带宽(以Hz为单位),S为信道内所传信号的平均功率,N为信道内部高斯噪声功率。S/N可以用信噪比计算出来,信噪比一定会在题目中给出,不然做不了。 信噪比(dB) = 10log10(S/N) (dB) S/N = 10时,信噪比是10dB,而S/N = 1000时,信噪比为30dB。 - 香农公式表明:
①信道的带宽或信道中的信噪比越大,则信息的极限传输速率越高。 ②只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错传输。 ③若信道带宽W或信噪比S/N没有上限,则信道的极限信息传输速率也没有上限。(但是做题时,需要同时计算奈氏准则下的极限传输速率和香农公式下的传输速率,取较小者) ④通过提高信噪比,可以减少随即差错。
2.3.1 导引型传输媒体
双绞线(STP、UTP),同轴电缆、光纤。 1.双绞线:
- 最常用的传输媒体。
- 模拟信号和数字信号都可以使用双绞线。其双绞线的通信距离是100m。
- 分为:屏蔽双绞线(STP)和无屏蔽双绞线(UTP,注意不是UDP)
2.同轴电缆:
- 具有很好的抗干扰特性,广泛用于传输较高速率的数据。
- 50Ω——LAN/数字传输。
- 70Ω——有线电视/模拟传输。
- 传输距离:200m。
3.光纤:
- 光纤是光纤通信的传输媒体。光纤通信系统的传输带宽远远大于目前其他各种传输媒体的带宽。
- 多模光纤的工作原理:光的全反射。
单模光纤:光的单向传播。 - 传输距离:几十到几百公里。
补充:物理层设备
中继器
使用中继器连接起来的几个网段仍属于一个局域网。它不能连接两个速率不同的网段,且中继器两端的网段一定要使用相同的协议。
- 中继器与放大器:都起到了信号整型放大的作用,中继器的对象是数字信号,放大器的对象是模拟信号。
集线器 Hub
实质是多端口的中继器。Hub在网络中只有信号放大和转发的作用,目的是扩大网络的传输范围。Hub的每个端口连接的网络部分是同一个网络的不同网段,同时hub也只能在半双工状态下工作,网络的吞吐率受限。
- 集线器是物理层设备,集线器端口连接的所有设备属于同一个冲突域,即集线器不能划分冲突域。但交换机Switch可以划分冲突域,但不能划分广播域,因仍属于同一个子网。而路由器Router可以划分广播域和冲突域。
- 一个带宽为10Mb/s的集线器上连接八台计算机,则8台计算机同时工作时,每台计算机真正拥有的带宽是1.25Mb/s(平均分)。
第三章 数据链路层
3.3.3 使用集线器的星型拓扑
- 传统以太网最初是使用粗同轴电缆的,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜、更灵活的双绞线(10Base-T)。
- 采用双绞线的以太网采用星型拓扑,在星型的中心则增加了一种可靠性非常高的设备,称为集线器hub。 (即上一章最后补充的物理层设备Hub)
- 10Base-T:10代表数据传输速率为10 M bit/s,Base指传输的是基带信号,T指使用的是双绞线(UTP)。
星型以太网10Base-T
- 使用无屏蔽双绞线(UTP),采用星型拓扑。
- 每个站需要使用两对双绞线,分别用于发送和接收。
- 双绞线的两端使用RJ-45插头。
- 集线器使用了大规模集成电路芯片,因此集线器的可靠性较高。
- 10Base-T的通信距离稍短,每个站到集线器的距离不超过100m。
集线器Hub的一些特点:
- 集线器使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统以太网那样运行。
- 使用集线器的以太网,逻辑上仍然属于总线网,各个工作站使用的还是CSMA/CD协议,并共享逻辑上的总线。
- 集线器就像一个多接口的转发器,工作在物理层。
- 采用专门芯片,进行自适应串音回波抵消。
3.3.5 以太网的MAC层
1.硬件地址 = 物理地址 = MAC地址。 MAC地址是6B-48位的,这种48位的地址是某个接口的标识符。 2.48位的MAC地址: (MAC地址48位,IPv4地址32位,IPv6地址128位)
- 地址字段6个字节中的后三个字节(低位24位)由厂家自行指派,称为扩展唯一标识符,必须保证生产出的适配器没有重复地址。
- 而6字节地址的前三个字节(高24位)是用RA负责向厂家分配的,称为组织唯一标识符。
因此,一个地址块可以产生224个不同的地址,这种48位的地址称为MAC-48。生产适配器时,6B的MAC地址已经被固化在适配器的ROM种,因此MAC地址也成为硬件地址/物理地址。
3.单站地址/组地址/广播地址
- IEEE规定地址字段的第一个字节的最低位(第48位,共48位)为I/G位,I/G表示Individual/Group。
I/G = 0时,地址字段表示单站地址。 I/G = 1时,表示组地址,同来进行多播(组播)。 启用I/G位后,IEEE只分配地址字段前3个字节中的23位。 当I/G分别位0/1时,一个地址块可以产生223个单站地址和223个组地址。所有48位全为1时,代表广播地址,只能作为目的地址使用。 - 规定第一个字节的次低位(第47位,共48位)为G/L位,表示Global/Local。
G/L = 0,是全球管理。 G/L= 1,是本地管理,这时用户可任意分配网络上的地址。
4.适配器检查MAC地址: 适配器从网络上没收到一个MAC帧,就首先用硬件检查MAC帧的MAC地址。如果是发往本站的帧则收下,进行其他处理。否则丢弃。 发往本站的帧:
- 单播帧(1对1);
- 广播帧(1对全体);
- 多播帧(1对多)。
所有适配器至少可以识别单播地址和广播地址,只有目的地址才可以使用广播地址和组播地址。 以混杂模式工作的以太网适配器,只要听到有帧在以太网上传输,就收下。
5.MAC帧的格式 源地址、目的地址占6B,类型为2B(类型字段标志着上一层使用着什么样的协议,相当于IPv4报文中的协议字段),数据46~1500B,FCS是4B,故最短64B,最长1518B。 此外,在帧的前面还需要插入8B的前同步码(7B)和帧开始定界符(1B)。因此为了达到比特同步,在传输媒体上实际传输的帧要比MAC帧多出这8B。
有效的MAC帧:
无效的MAC帧:
- 数据字段的长度与长度字段(于IEEE 802.3MAC帧中出现)的值不一致。
- 帧的长度不是整数个字节。
- 用收到的帧检验序列FCS查出有错。
- 数据字段的长度不再46~1500B之间。
IEEE 802.3 MAC帧格式:
- 第三个字段为长度/类型字段。字段值大于0x0600(十进制的1536)时,表示类型,此时与以太网的V2帧完全一致。
- 小于0x0600时表示长度。当小于0x0600时,数据字段必须装入上面的逻辑链路控制LLC子层的LLC帧。
6.帧间最小间隔:
- 帧间最小间隔位9.6μs,相当于96bit的发送时间。
- 一个站在检测到总线开始空闲后,还需要等待9.6μs,才可以开始发送数据。
- 目的是为了使刚刚收到数据帧的站及时清理接收缓存。
补充:数据链路层的功能
- 数据链路层的功能包括:帧定界、差错控制、流量控制、组帧、在物理层提供的不可靠物理连接上提供可靠的传输(FCS)、控制对物理传输介质的访问由数据链路层的MAC子层完成。
- 数据链路层在物理层的基础上向网络层提供服务,其作用是加强物理层传输原始比特流的能力,将物理层提供的可能出错的物理连接改造成逻辑上无差错的数据链路。
- 数据链路层可为网络层提供如下服务:无确认的无连接服务、有确认的无连接服务、有确认的有连接服务。注意,没有无确认的有连接服务。
- 数据链路层不必考虑物理层如何实现比特传输的细节。
补充:循环冗余校验码的计算
数据链路层仅使用了CRC的检错功能,但其具有纠错功能。 不在复习范围内,看一眼以防万一。。
第四章 网络层
4.1 网络层提供的两种服务(尽最大努力交付)
- 虚电路:分组交换的衍生方式,通信之前先建立虚电路,以保证双方通信所需的一切网络资源。虚电路是逻辑上的连接,分组沿着这条逻辑连接按照存储转发的方式传送,而并不是真正的建立一条物理连接(因此,虚电路的建立不需要预先分配带宽,但是电路交换的电话通信是建立了一条真正的连接)。
- 网络提供数据报服务:无连接的,尽最大努力交付的数据报服务——网络在发送分组时不需要先建立连接,每个分组(IP数据报)独立发送,与其前后的分组无关(不进行编号)。此外,网络层不提供服务质量的保证,其头部的检验字段在收方只对首部进行检验,如果首部出错则丢弃 (而传输层的TCP、UDP首部检验字段同时对首部和数据字段进行检验),即所传送的分组可能出错、丢失、重复、失序,也保证不了分组传送的时限。如果主机(端系统)中的进程之间的通信需要是可靠的,则由主机中的运输层负责可靠交付(包括差错处理和流量控制等,TCP连接还可提供拥塞控制)。
4.2 网际协议IP的配套协议、网络互联使用的中间设备、IP数据报的格式、MTU、分类的IP地址及特殊的IP地址、IP层转发分组的流程(路由器分组转发算法及路由表项)
与IP协议配套使用的三个协议:
- 地址解析协议ARP:作用于局域网内,实现了IP地址到MAC地址的映射。
- 网际控制报文协议ICMP:其应用是Ping和Tracert。ICMP报文作为IP层数据报的数据,加上数据报的首部之后,组成IP数据报直接发出,故ICMP是IP层协议。(在TCP/IP体系中,直接为ICMP提供服务的协议是IP)
①Ping使用了ICMP回送请求和回答报文,工作在应用层,直接使用了网络层的ICMP,而未使用传输层的TCP/UDP。 ②Tracert使用了ICMP时间超过报文,工作在网络层。 - 网际组管理协议IGMP。
4.2.2 分类的IP地址
IP地址是分配给每个连接在互联网上的主机(或路由器,路由器是特殊的主机)分配一个在 全世界范围内唯一的 32位标识符。
分类的IP地址——最基本的编址方法
思想:
- 将IP地址划分为若干个固定类。
- 每一类地址都由两个固定长度的字段组成:{<网络号net-id>, <主机号host-id>}。
- 主机号在其前面所指明的网络范围内必须是唯一的。故,一个IP地址在整个互联网范围内是唯一的。
- A类:1~126;
- B类:128~191;
- C类:192~223;
- D类:224~239:多播地址;
- E类:240~255:保留为今后使用。
常见的三种类别IP地址的使用范围:(注意,本课程认为第一个可用的网络号最后一个字节不可以是0)
网络类别 | 最大可用网络数 | 第一个可用的网络号 | 最后一个可用的网络号 | 每个网络中的最大主机数 |
---|
A | 27-2 | 1 | 126 | 224-2 | B | 214-1 | 128.1 | 191.255 | 216-2 | C | 221-1 | 192.0.1 | 223.255.255 | 28-2 |
- 主机号全为0:表示本网络(网段)自身,如202.98.174.0。
- 主机号全为1:本网络的广播地址,如202.98.174.255。
- 127…x.x.x保留为环回自检。此地址表示热议主机本身,目的地址为环回自检地址的IP数据报永远不可能出现在网络中。
- 32位全为0,即0.0.0.0,表示本网络上的本主机。
- 32位全为1,即255.255.255.255,表示整个TCP/IP网络的广播地址,又称为受限广播地址。实际使用时,由于路由器对广播域的隔离,255.255.255.255 等效为本网络的广播地址。
引入NAT后,将部分IP地址转化为了私有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。
采用点分十进制记法,由于IPv4地址共32位,划分为四块,每块8位,即一个字节。
IP地址的一些特点:
- IP地址是分等级的地址结构。
- 实际上IP地址是标志一个主机(路由器)和一条链路的接口(当一台主机连入两个网络时,该主机必须具有两个相应的IP地址,网络号必定不同,这种主机称为多归属主机。此外,域名是主机的别名,因此多个IP地址可以映射到相同域名)。
一个路由器至少具有两个不同的IP地址。 - 用转发器或网桥(集线器或交换机)连接起来的若干个局域网仍属于同一个网络(同一个冲突域),具有相同的网络号。
- 所有IP地址地位平等。
4.2.3 IP地址与硬件地址
- IP地址与硬件地址( = 物理地址 = MAC地址)是不同的地址。
- 硬件地址是数据链路层和物理层使用的地址,长度为6B,格式为XX-XX-XX-XX-XX-XX,高24位组织分配,低24位厂家分配,必须各不相同,含有I/G和G/L位。
- IP地址是网络层和以上各层使用的地址,是一种逻辑地址 (因其是由软件实现的,应用层的DHCP协议可以实现主机的即插即用,动态分配IP地址<端口号:服务器67, 客户68,TCP>)。
- 路由器只根据目的主机的IP地址进行路由选择。
4.2.4 地址解析协议ARP
通信时同时使用了两个地址:
- IP地址(网络层地址)。
- MAC地址(数据链路层地址)。
ARP协议的作用:从网络层使用的IP地址,解析出数据链路层使用的硬件地址。 由上图可知,ARP仍是网络层协议。
- 不管网络上使用什么协议,在实际网络的链路上传送数据帧时,最终还是要使用硬件地址。
- 每个主机都设有一个ARP高速缓存,里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表,表项有三项:
{<IP地址>, <MAC地址>, <TTL地址映射有效时间>} - 当主机A欲向B发送IP数据报时,就先在其ARP Cache中查看有无B的IP地址。如有,则查出其MAC地址,将此MAC地址写入MAC帧,通过局域网将该MAC帧发往此硬件地址(有可能是A所在局域网的路由器地址,因为ARP的作用域是局域网内,如果A、B不在一个局域网,则需要通过路由器转发,因此A发出的IP数据报的MAC首部的硬件地址应是A所在局域网内路由器的地址)。
- 如没有,ARP 进程 在本局域网内广播发送一个ARP分组请求。收到ARP相应分组后,将得到的IP地址到硬件地址的映射写入ARP Cache(当然可以得到来自路由器的响应,路由器中当然也要设置ARP Cache,也使用ARP协议)。
要点: ARP分组不是IP包,没有IP头。
ARP的几个小特点:
- 问的时候把自己也告诉别人。
- 问到之后存入缓存,并设置TTL。
- 只管局域网内,不管一跳之外。
- 自动完成,用户不感知。
4.2.5 IP数据报的格式
IP数据报由首部和数据两部分组成,首部的前一部分长度固定,为20B(MAC帧的首部为6+6+2 = 14B,尾部FCS = 4B,再加上一个8B的头(开始+定界)),这20B所有IP数据报都具有。首部固定部分后面还有可选字段。
- 版本——4位,为4是IPv4,为6是IPv6。
- 首部长度——4位,单位为4B,可表示的最大数值是15个单位,因24 - 1 = 15,故首部最长为60B。(IP数据报首部至少20B,最多60B,首部长度的单位为4B)
注意,由于首部长度的单位是4B,故可选字段的长度需要是4的整数倍,不足的加以填充。 - 区分服务——8位,一般不用。
- 总长度——16位,指首部和数据长度的总和,单位是字节B,因此数据报的最大长度为65535B。并且,总长度不可以超过最大传送单元MTU,超过了则需要分片(标志位两位 + 片偏移)。
- 标识——16位,是一个计数器,用来产生IP数据报的标识,鲜有使用。
- 标志——3位,目前只有两位有意义,很关键。最低为MF(More Fragment),MF = 0表示最后一个分片,MF = 1表示后面还有分片。中间位DF(Don’t Fragment),DF = 0时才允许分片。
- 片偏移——13位,单位是8B,指出较长的分组在分片后,某片在原分组中的相对位置,这个相对位置指的是不包含首部的数据的长度的相对位置。
- 生存时间——8位,TTL,指示数据报在网络中可通过的路由器数的最大值。
- 协议——8位,指出此数据报携带的数据使用了何种协议,以交给上层。注意区分协议和版本,不要混淆。
- 首部校验和——16位,只检验数据报的首部,不检验数据部分,不采用CRC而采用简单的方式——二进制反码求和。
- 源地址和目的地址——各占4字节(32位,即IPv4地址的长度)
看两个计算分片的例子:
4.2.6 IP层转发的流程,可能会出大题
在路由表中,每一条路由信息由: {<目的网络地址>, <下一跳地址>} 组成,这两个地址都是IP地址。 路由器分组转发算法:基本确定这个算法的描述会出一道大题 交付顺序:直接交付 >特定主机路由 > 到达网络N的路由 > 默认路由。这一套下来还没交付出去,则报错,注意特定主机路由的存在,之前没怎么接触过。
4.4.2 ICMP应用举例
PING:用来测试两个主机之间的连通性。
- PING使用了ICMP回送请求与回送回答报文。
- PING是应用层直接使用网络层的一个典型例子,它没有使用运输层的TCP和UDP。
Tracert:用来跟踪一个分组从源点到终点的路径。
- 利用IP数据报中的TTL字段和ICMP时间超过差错报告报文,实现对从源点到终点的路径的跟踪。
注意,网际控制报文协议ICMP 直接使用IP数据报 ,作为IP数据报的数据部分发送。PING工作在应用层,直接使用网络层的ICMP,而Tracert工作在网络层。ICMP是网络层的协议。
4.3 划分子网和构成超网
4.3.1 划分子网
1.从两级的IP地址划分为三级的IP地址。
- 即
{<网络号>, <子网号>, <主机号>} ,其中,子网号是从主机号中划分出来的。 - 一个网段内划分为多个子网,对外仍然是一个网络。
- 划分子网纯属一个单位内部的事情,对外透明。
- 子网划分后,IPv4地址的利用率提高了,但没有增加IPv4地址的数量。
2.子网掩码 长度:32位; 某位=1:IP地址中对应位为网络号 + 子网号 某位=0:IP地址中对应主机号。 子网掩码是一个网络或一个子网的重要属性。
- 路由器和相邻路由器交换路由信息时,自己所在网络的子网掩码也需要一并告知。
- 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。
- 若一个路由器连接在两个子网上,则需要两个网络地址和两个子网掩码。
3.子网的划分方法:固定长度/变长的CIDR。 加上了使用子网掩码对目的IP地址逐位相与的操作,以得到目的IP的网络号,以在路由表内寻找符合的表项。
4.CIDR:IP地址从三级编址回到了二级——{<网络前缀>, <主机号>}(全0和1的主机号也不用) 使用CIDR在查找路由器时,所查到的匹配结果可能不止一个,采用最长前缀匹配原则。
5.路由表项目数很大时,可采用二叉线索查找路由表。
路由聚合的例子: 最长前缀匹配的例子:
4.5 互联网的路由选择协议
静态路由选择策略——非自适应路由选择; 动态路由选择策略——自适应路由选择。
1.自治系统AS AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议用以确定分组在AS之间的路由。 一个AS对其他AS表现出一个单一的和一致的路由选择策略。
2.两类路由选择协议:
- 内部网关协议IGP:在一个AS内部使用的协议,如RIP和OSPF。
- 外部网关协议EGP:当数据报到达AS边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议EGP。使用的最多的是BGP-4。
4.5.2 路由信息协议RIP
- RIP的中文名字是路由信息协议(Routing Information Protocal),是一种分布式的,基于距离向量的路由选择协议。
- RIP协议要求网络中的每一个路由器都需要维护从它自己到其他每一个目的网络的距离记录。
距离的定义:RIP基于距离向量(BGP基于路由向量)
- 从一个路由器到与它直连的网络的距离定义为1。
- 从一个路由器到非直接直连的网络的距离定义为所经过的路由器数 + 1。
- RIP中的距离也称为跳数,每经过一个路由器,跳数 + 1。
- 这里的距离指的是最短距离。
- RIP允许一条路径最多只能包含15个路由器(即最多允许15跳),最大值为16时认为不可达。(最多只能包含15个路由器可能出选择题)
- RIP不能在两个网络之间同时使用多个路由器,并且它的选择是路由器最少的路径。
RIP特点:
- 仅和相邻的路由器交换信息。
- 交换的信息是自己知道的全部信息,即自己的路由表。
- 按固定时间间隔交换路由信息。
路由表的建立:
- 路由器刚开始工作时,路由表为空,只知道直连的网络距离为1。
- 之后每次都和相邻的路由器交换信息。
- 收敛:AS中所有的结点都能得到正确的路由选择信息的过程。RIP收敛过程较快。
距离向量算法的基础:Bellman-Ford算法。
RIP路由信息的更新已经确定100%会有一道大题,下面看两个例子: RIP报文的格式:
- RIP的报文由首部和路由部分组成。
- 路由部分由若干个路由信息组成,每个路由信息需要20B。
- 路由标记填入AS的号码。
- 在后面指出某个网络的地址、该网络的子网掩码,及下一条路由器地址及到此网络的距离。
- 最多可包含25个路由,故最大长度为4 + 20 × 25 = 504 B。超过后需另一个RIP传送。
RIP协议的特点:
- 好消息传播的快,坏消息传播得慢。
- RIP的信息作为UDP数据报的数据部分,因此RIP是应用层协议。
4.5.3 开放最短路径优先OSPF
OSPF的中文名字为开放最短路径优先(Open Shortest Path First)(RIP——路由信息协议,原理——Bellman-ford算法),使用的是Dijkstra提出的最短路径算法SPF。OSPF采用分布式的链路状态协议(RIP:分布式的基于距离向量的路由选择协议)。 要点:
- 向本自治系统内所有路由器发送信息,使用洪泛法。
- 返送的信息就是与本路由器相邻的所有路由器的两路状态,但这只是路由器知道的部分信息。
- 只有当链路状态发生变化时, 才洪泛。
链路状态数据库:
- 就是全网的拓扑结构图,它在全网范围内是一致的。
- OSPF的链路状态数据库能够较快地更新,使各个路由器都能及时更新其路由表。
- OSPF的更新过程收敛得快是其优点。
OSPF可划分区域,顶层区域称为主干区域,可以连接其他AS。主干区域的标识为0.0.0.0,作用是联通下层区域,主干路由器可以兼做区域边界路由器。
特点:
- OSPF直接使用IP报文,故OSPF是网络层协议,而RIP使用UDP,BGP使用TCP,二者都是应用层协议。
- 报文短。
- 支持负载均衡。
- 链路状态的新旧以序列号标识,序号越大,状态越新。
4.5.4 外部网关协议BGP
BGP的中文名是边界网关协议。(RIP:路由信息协议(Bellman-Ford),OSPF——开放最短路径优先(Dijkstra:=SPF)。) BGP力求寻找一条能够到达目的网络的较好的路由,而非最佳的路由。
- 每个AS的管理员至少要选择一个路由器作为该AS的BGP发言人。
- 两个BGP发言人通常通过一个共享网络连接,BGP发言人就是BGP 边界路由器,但也可以不是。
- 一个BGP发言人与其他AS中的BGP发言人交换路由信息,需要先建立TCP连接,在此连接上交换BGP报文以建立BGP会话。利用该会话交换路由信息。
- 使用TCP连接提供的可靠服务,简化了路由选择协议。TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站或对等站。
BGP所交换的网络可达性信息就是要达到某个网络所要经过的一系列AS。(路径向量)
- BGP刚运行时,BGP的邻站之间交换整个BGP路由表。
- 四种报文:打开、更新、保活、通知。
协议 | RIP | OSPF | BGP |
---|
类型 | 内部 | 内部 | 外部 | 路由算法 | 距离向量 | 链路状态 | 路径向量 | 传递协议 | UDP | IP | BGP | 路径选择 | 距离(跳数)最短 | 代价最低 | 较好,并非最好 | 交换节点 | 和本结点相邻的路由器 | 区域内所有路由器 | 和本结点相邻的路由器 | 交换内容 | 路由表 | 与本结点相邻的路由器的链路状态 | 首次:整个路由表;非首次:有变化的部分 |
4.6.1 IPv6
主要变化:
- IPv6的地址从32位扩大到128位。
- 扩展的地址层次结构。
- 灵活的首部选择。
- 改进的选项:IPv6允许数据报包含有选项的控制信息,其选项放在有效载荷中。
- 允许协议继续扩充。
- 支持即插即用,故不需要DHCP了。
- 支持资源预分配。
- IPv6首部改为8B(64位)对其。其基本首部固定为40B。
每个16位的值用一个四位的十六进制标识,各位之间用冒号分隔。
4.8 虚拟专用网VPN和网络地址转换NAT
4.8.1 虚拟专用网VPN
RFC 1918指出了一些专用地址,在互联网中的所用路由器,对于目的地址是专用地址的数据报,一律不转发。 A类:10.0.0.0 ~ 10.255.255.255 B类:172.16.0.0 ~ 172.31.255.255 C类:192.168.0.0 ~ 192.168.255.255 (考试有可能考填空,填某类专用IP地址的范围) 采用这样的专用IP地址的互联网络称为专用互联网或本地互联网。专用IP地址也成为可重用地址。
- 利用公网的互联网作为本机构各专用网之间的通信载体,这样的专用网称为虚拟专用网。
- “专用网”指这种网络是为本机构的主机用于机构内部通信,而不是用于和网络外非本机构的主机通信。
- “虚拟”表示“好像是”,但实际上并不是,因为现在并没有真正使用通信专线,而VPN只是在效果上和真正的专用网一样。
- 用隧道技术可以实现虚拟专用网。
即,将真正的报文作为外部IP数据报的报文在隧道内传输。 - VPN又分为内联网和外联网,均是基于TCP/IP协议的,部门A和B的内部网络构成的VPN称内联网,一个机构与外部机构共同建立的VPN称外联网。
4.8.2 网络地址转换NAT
装有NAT软件的路由器称为NAT路由器,它至少有一个有效的外部全球IP地址。
- 所有使用本地地址的主机在和外界通信时,都需要在NAT路由器上将其本地地址转换为全球IP地址,才能和互联网连接。
- 网络地址转换过程:
离开专用网时:替换源地址,将内部地址替换为全球地址。 进入专用网时:替换目的地址,将全球地址转换为内部地址。
使用端口号的NAT叫做网络地址与接口号转换NAPT。不适用端口号的NAT叫做传统的NAT。
第五章 运输层
5.1.1 进程之间的通信、运输层的作用
- 运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最底层。
- 只有位于网络边缘部分的主机的协议栈才具有运输层,而核心部分的路由器在转发分组时只用下三层。
- 网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
- 运输层向高层用户屏蔽了下面网络核心的细节。使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。
5.1.3 运输层的端口、常用的熟知端口号
端口用一个**十六位(2B)**的端口号进行标志(最大65535,16位)。
- 端口号仅具有本地意义,即端口号只是为了标志本计算机应用层的各个进程。
- 在互联网中,不同计算机的相同端口号之间没有联系。
常用的熟知端口号:
- FTP数据连接:TCP,20;
- FTP控制连接,TCP,21;
控制连接存在于整个FTP会话过程中,而数据连接在每次文件传输时才建立,传输结束即关闭。 - TELNET:TCP,23,远程桌面。
- SMTP:TCP,25,发送方UA向发送方邮件服务器发送邮件、发送方邮件服务器向接收方邮件服务器发送邮件。
- DNS:53,UDP。
- DHCP:服务器端67,UDP。
DHCP:客户端68,UDP。 - TFTP:69,UDP。
- HTTP:80,TCP。
- POP3:110,TCP。
- RPC:111,UDP。
- IMAP:143,TMP。
- SNMP:161,UDP。
- HTTPS:443,TCP。
套接字Socket = (IP地址 : 端口号),每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定,即: TCP连接 ::= {socket1, socket2} = {(IP1: Port1), (IP2, Port2)}。
- 同一个IP地址可以有需多不同的TCP连接,通过提供不同的端口号形成多个套接字。
- 同一个端口号也可以有多个不同的连接。
5.2 用户数据报协议UDP
5.2.1 UDP概述
UDP只在IP的数据报服务基础上增加了很少的功能:
- 复用和分用;
①复用:指发送方不同的应用进程都可以使用同一个传输层协议来传送数据。 ②分用:指接收方在剥去报文的首部后能够把这些数据正确地交付到目的应用进程。 分用即根据首部中的目的端口,将UDP数据报通过相应的端口上交到应用进程。 - 差错监测功能:首部提供的差错检测字段可以同时对首部和数据部分进行差错检测,计算差错检测字段的校验和时,还需要加上一个伪首部。
- UDP提供的是不可靠的交付:
①无连接的; ②尽最大努力交付; ③面向报文的:UDP对应用层交下来的报文,既不合并也不拆分,而是保留这些报文的边界,一次性交付完整的报文; ④UDP不提供拥塞控制(TCP提供) ⑤UDP支持一对一、一对多、多对一和多对多的交互通信。 ⑥UDP的首部开销很小,只有8字节(8B,64位),比TCP首部的20B少了很多(IPv4也是20B,IPv6首部40B,MAC层首部6+6+2 = 14B,尾部FCS = 8B)
5.2.2 UDP的首部格式
- 伪首部中还提供了源和目的地址的IP地址,以及协议标号17(TCP为6)和UDP长度。伪首部仅用作计算校验和,实际并不发送。
- 首部共8B,包含源与目的端口(2 + 2共4B,端口用16位表示),长度2B(长度也为16位,使UDP数据报首部和数据长度的总和,最少为8(仅包含首部,如TFTP最后一个分片恰好512B时,再发送一个空的UDP数据报作结),最大为65535)和校验和2B。
5.3 传输控制协议TCP概述
TCP的主要特点
- TCP是面向连接的运输层协议。
- 每一条TCP连接只能有两个端点,由两个套接字socket唯一标识。
- TCP提供可靠交付的服务。
- TCP提供全双工通信。
- TCP是面向字节流的。
注意:
- TCP的连接是虚连接。
- TCP对应用进程一次吧多长的报文发送到TCP进程中不关心。
- 根据对方的接收窗口值大小及拥塞窗口的大小确定一个报文段包含多少字节。
- 可分片。
- 也可累积发送。
TCP报文段的首部格式:
- 源端口和目的端口各占2B。
- 序号:占4B,TCP连接上传送的数据流中的每一个字节都编上一个序号,序号的值是本报文段所发送数据报的第一个字节的序号。
- 确认号:占4B,是期望收到对方的下一个报文段的数据的第一个字节的序号。
如,三次握手的建立过程中,甲向乙发送SYN = 1,ACK = 11220的TCP段,期望建立连接,乙如果接收建联,回发ACK = 1启用ack字段,且SYN = 1,ack字段即对下一个期望收到的序列号的确认,应该是11221。而乙的序列号seq是随机生成的,恰巧为11221而已,不必须为11221。
5.4 可靠传输的工作原理
1.停止等待协议 每发送一个分组,停止发送,等待对方确认后,再发送下一个分组。 A为每一个已经发送的分组都设置一个超时计时器,只要在计时器到期前收到了相应的ack确认,就撤销这个超时计时器,继续发送下一个分组。 由于确认丢失导致的重传,接收方丢弃分组并会发确认。 确认迟到:A也会重发分组,稍后收到迟到的确认直接丢弃,而B收到重复的分组也丢弃,B重传确认分组。
- 因此,发送方发送完一个分组之后,需要暂时保存这个分组,以备重发。
- 分组和确认分组都需要编号。
- 超时计时器的重传时间应该比数据在分组传输时的往返时延稍长。
2.流水线传输: TCP采用流水线传输的方式进行传输,即发送发可以连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认,这样可使信道上一直有数据不断地传送,提高了信道的利用率。
5.6.3 选择确认SACK
问题:若收到的报文段无差错,只是未按序号,中间还缺少了一些序号的数据,能否设法只对传送缺少的数据进行重传,而不重传已经正确到达接收方的数据? 答案是肯定的,使用SACK即可。 和前后字节不连续的每一个字节块都有两个边界,左边界和有边界。 左边界:该字节块的第一个字节的序号; 右边界:右边界的值 - 1才是字节块的最后一个序号,即右边界是字节块最后一个字节编号的下一个编号。
若接受方收到了和前面字节流不连续的两个字节块,如果这些字节的序号都在接收窗口之内,则接收方先收下这些数据,但要把这些信息准确地告诉发送方,使发送方不再重复发送已经收到的数据。
- 如果使用选择确认,那么在建立TCP连接时,就要在TCP的首部的选项字段中加上“允许SACK”选项,并且双方必须事先商定好。
- 如果使用了SACK,原首部中ACK和ack字段的用法不变,只是以后在TCP报文段的首部中都增加了SACK选项,以便报告收到的不连续的字节块的边界。
- 首部长度至多为40B,最少为20B,指明一个边界需要甩掉4B,因此在选项中至多可以指明4个字节块(8个边界)的边界信息,还需2B来知名SACK选项和该选项占用的字节数。
第六章 应用层
6.1 域名系统DNS(常见的顶级域名、互联网的域名结构、几种域名服务器)
域名系统DNS是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名转换为便于机器处理的IP地址。
6.1.1 域名系统概述
互联网采用层次树状结构的命名树来作为主机的名字,并使用分布式的域名系统DNS。
- 名字到IP地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的节点上运行,运行该程序的机器称为域名服务器(自底向上有本地域名服务器、授权域名服务器、顶级域名服务器和根域名服务器)。
6.1.2 互联网的域名结构
- 采用层次树状结构的命名方法。
- 任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。注意,域名是对于主机而言的,因此域名与IP地址(多归属主机)、MAC地址(一个网卡对应一个MAC地址)均没有一一对应的关系,主机与域名同样也没有一一对应的关系,因多台主机可以映射到同一域名上(负载均衡)。
- 域名的结构由标号序列组成,各标号之间用点隔开。 各标号代表不同级别的域名。 此外,域名只是一个逻辑概念,并不代表计算机所在的物理地点。
顶级域名:
- 国家:.cn——中国,.us——美国等。
- 通用顶级域名:
.com——公司; .net——网络服务机构; .org——非盈利性组织; .edu——美国专用的教育机构; .gov——美国专用的政府部门; .mil——美国专用的军事部门; .int——国际组织。 - 基础结构域名:这种顶级域名只有一个,即arpa,用于反向域名解析,因此也称为反向域名。
6.1.3 域名服务器
- 一个服务器所负责管辖的范围叫做区(不是区域)。
- 各单位根据具体情况来划分自己管辖范围的区,但是在区中的所有节点都必须是能够连通的。
- 每一个区应该设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
- DNS服务器管辖范围不是以域为单位,而是以区为单位。
区的范围小于等于域,且区内所有结点之间是能够相互连通的。
四种域名服务器:
- 根域名服务器:层次最高,也最重要,所有的根域名服务器都知道所有顶级域名服务器的域名和IP地址。无论哪个本地域名服务器,对互联网上任何域名解析时,只要自己无法解析,就首先求助于根域名服务器。
- 顶级域名服务器负责管理在该顶级域名服务器下注册的所有二级域名。
当DNS查询请求时,就给出相应的回答(可以是最后的结果,也可以是下一步应该找哪一个域名服务器的IP地址)。 - 权限域名服务器:负责一个区的域名服务器。当一个权限域名服务器仍不能给出最后的查询答案时,就会告诉DNS客户下一步去哪个权限域名服务器查找。
- 本地域名服务器:对域名系统DNS至关重要。当主机发出DNS查询请求时,首先将这个请求发送给本地域名服务器。
- 域名的解析过程:采用递归与迭代查询相结合的方式。
- 此外,每个域名服务器都要维护一个高速缓存。用来存放最近使用过的名字以及从何处获取名字的映射信息的记录,这个记录也有一个计时器,以保证时效性。
其他:
- DNS系统采用客户/服务器模型,其协议运行在UDP之上,端口号为53。
- 将域名解析为IPv4地址的资源记录类型为A。
AAAA为IPv6的资源记录类型。
6.2.2 FTP的基本工作原理
FTP特点:
- 文件传送协议FTP只提供文件传送的一些基本的服务,它使用TCP提供可靠的传输服务。
- 主要功能是减少或消除在不同OS下处理文件的不兼容性。
- FTP使用客户/服务器方式,一个FTP服务器可以同时为多个客户进程提供服务。FTP的服务进程由两大部分组成——一个从属进程,负责接收新的请求;以及若干个从属进程,负责处理单个请求。
工作过程:
- FTP服务器打开熟知端口号21(控制端口,存在于FTP服务的整个会话期间),使客户进程能够连接上。
- 等待客户进程发起连接。
- 启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可以创建其他进程。
- 回到等待状态,继续接收其他客户进程的请求。主进程与从属进程并发。
- 当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口21,同时还要告诉服务器进程自己的另一个端口号码(可以稍带在三次握手的第三次确认回发中),用于建立数据连接。
- 接着,服务器进程用自己传送数据的熟知端口20,与客户进程所提供的端口号建立数据连接。
- FTP使用两个不同的端口号,即数据连接20和控制连接21。注意,20和21都在服务器端,而客户端进程的两个端口号是自行提供的,未必需要是20和21。
6.4.2 统一资源定位符URL
URL实际上是互联网上资源的地址,相当于一个文件名在网络范围内的扩展。因此URL是与互联网相连的机器上的任何一个可访问对象的指针。 UML的一般形式如下: <协议>://<主机> : <端口号> / <路径> 其中:
:// 是规定的格式。<主机> 是存放资源的主机在互联网中的域名,也可以是IP地址。- 端口和路径有时可以省略。且在URL中不区分大小写。
- 协议指用什么协议来获取万维网文档,常见的有http,ftp等。
6.4.3 超文本传送协议HTTP
从层次的角度看,HTTP是面向事物的应用层协议,它是万维网能够可靠地交换文件的重要基础。 用户点击URL: 后发生的事件:
- (1)浏览器分析超链指向的页面URL。
- (2)浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址。
- (3)域名系统DNS解析出清华大学服务器的IP地址,并返回给浏览器以供其与该服务器建立连接。
- (4)浏览器与服务器建立TCP连接。
- (5)浏览器发出取文件指令:
GET /chn/yxsz/index.htm ,即用GET取得该主机域名路径下对应的文件。 - (6)服务器发出响应,将indexhtm回发给浏览器。
- (7)发送完毕后,TCP连接释放。
- (8)浏览器陷入“清华大学院系设置”文件index.htm中的所有文本。
HTTP的主要特点:
- HTTP是面向事务的客户-服务器协议。
- HTTP 1.0 协议是无状态的(stateless),即用户第二次访问页面时,就和第一次访问一样,因为服务器不曾记住过用户。
- HTTP协议本身也是无连接的,虽然它使用了面向连接的TCP向上提供服务,即HTTP虽然使用了TCP连接,但是通信双方在交换HTTP报文之前不需要建立HTTP连接(而FTP需要建立数据连接和控制连接)。
- 请求一个万维网文档至少需要(还有HTTP响应报文的传输时间)两个RTT的时间。
持续连接:
- http是面向事务的客户服务器协议,可以使用非持久连接,此时每个网页元素对象(如JPEG图形、Flash等)的传输都需要建立一个独立地TCP连接。
- HTTP/1.1使用了持续连接,万维网服务器在发送响应后仍然在一段时间内需要保持这条连接,使用一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求、响应报文。
持续连接有两种工作方式:
- 非流水线:客户在收到一个相应之后才发出下一个请求。
- 流水线:客户在HTTP响应报文到达之前就可以接着发出新的请求报文。HTTP/1.1默认使用流水线的持久连接。
代理服务器(万维网高速缓存)可以代表浏览器发出HTTP请求。
6.5 电子邮件
6.5.1 电子邮件概述
发送邮件的协议:SMTP(TCP、25); 读取邮件的协议:POP3(TCP、110)、IMAP(TCP、143)。 发送、接收邮件的主要步骤:
- (1)发送人调用PC中的UA撰写和编辑待发邮件。
- (2)发件人的UA将邮件用SMTP客户进程发送给发方邮件服务器。
- (3)发方邮件服务器中的SMTP服务器进程收到邮件后,将邮件存入发送队列等待发送。
- (4)发方邮件服务器中的SMTP客户与收方邮件服务器中的SMTP服务器建立TCP连接,将缓存队列中的邮件依次发出。
- (5)运行在收方的SMTP服务器收到邮件后,存入收件人📫等待读取。
- (6)收件人在打算收信时,就运行PC机上的UA,使用POP3(或IMAP)读取发送给自己的邮件。
电子邮件格式:收件人邮箱名@邮箱所在的主机域名 。
6.5.2 简单邮件传送协议SMTP
客户服务器方式,TCP,端口号25。 三步走:建立TCP连接,发送邮件,释放连接。
6.5.4 邮件读取协议POP3和IMAP
POP3、IMAP均以客户-服务器方式工作,且均使用TCP作为传输层。 POP3端口:110; IMAP端口:143。
- IMAP是一个联机协议,可以随时随地随意主机查看邮件。
- 发信人向发送方邮件服务器发送邮件,以及发送方服务器向接收方服务器发送邮件使用SMTP。而接收方从接收方服务器读取邮件使用POP3或IMAP。
6.5.5 基于万维网的电子邮件
- 电子邮件A发送到网易邮箱服务器使用HTTP协议。
- 两个邮件服务器之间传送仍使用SMTP。
- 邮件从新浪服务器传送到B使用HTTP协议。
6.5.6 通用互联网邮件扩充MIME
SMTP缺点:
- 不能传送可执行文件或其他二进制对象。
- SMTP限于传送7位的ASCII码。
- SMTP服务器会拒绝超过一定长度的邮件。
通过互联网邮件扩充MIME,没有改动或取代SMTP:
6.6 动态主机配置协议DHCP
互联网广泛使用DHCP协议提供的即插即用联网的机制,这种机制允许一台计算机加入新的网络并获取IP地址时不需要手动配置。(IPv6自己实现了即插即用,不再需要DHCP)
DHCP采用客户-服务器方式工作。
- 需要IP地址的主机启动时向DHCP服务器广播发现报文,此时该主机成为了DHCP客户。
- 本地网络上所有主机都收到了这个报文,但只有DHCP服务器应答。
- DHCP服务器现在数据库中查找这台计算机的配置信息,如果找到,直接返回这个配置信息。否则,从服务器的IP地址池中取一个地址分配给这个计算机。DHCP服务器的回答报文称作提供报文。
并非每个网络都配置DHCP服务器,但至少有一个DHCP中继代理,它配置了DHCP服务器的IP地址信息。收到广播的发现报文后,DHCP代理单播给DHCP服务器,收到其提供报文后,再回发给客户。
租用期:DHCP服务器给客户的IP地址是临时的,称租用期。租用期的数值由DHCP服务器决定,客户在发现报文中也可以指明租用期需求。
DHCP服务器被动打开UDP端口67进行监听,DHCP客户从UDP端口68发送发现报文。
|