通知
关于网站更多信息请加whimurmur模板/jpress插件QQ群(1061691290)            网站从因情语写改为晴雨            这个网站的模板也从calmlog_ex改为 whimurmur

计算机网络学习笔记

240人浏览 / 0人评论 / | 作者:whisper  | 分类: 计算机网络  | 标签: 计算机网络  | 

作者:whisper

链接:https://www.proprogrammar.com/article/917

声明:请尊重原作者的劳动,如需转载请注明出处


第一章 计算机网络体系结构

计算机网络概述

计算机网络:就是利用通信设备和线路将地理位置不同的、功能独立的多个计算机系统互连起来,以功能完善的网络软件(即网络通信协议、信息交换方式、网络操作系统等)实现网络中资源共享信息传递的系统。

计算机网络的组成

边缘部分 核心部分

资源子网 通信子网

计算机网络的分类

作用范围

广域网 WAN (Wide Area Network)
局域网 LAN (Local Area Network)
城域网 MAN (Metropolitan Area Network)
个人区域网 PAN (Personal Area Network)

从网络的使用者进行分类

公用网 (public network)
专用网 (private network)

按网络的拓扑结构分类

星形、总线、环形、树形、网形;

标准化四个阶段

1、因特网草案(Internet Draft)
在这个阶段还不是 RFC 文档。

2、建议标准(Proposed Standard)

从这个阶段开始就成为 RFC 文档。

3、草案标准(Draft Standard)

4、因特网标准(Internet Standard)

计算机网络体系结构与参考模型

计算机网络分层结构

计算机网络协议、接口、服务等概念

协议

协议总是指某一层协议,是对同等实体之间的通信制定的有关通信规则约定的集合。
网络协议的三个要素:
(1)语义(Semantics)。
(2)语法(Syntax)。
(3)同步即定时(Timing)。

接口(服务访问点)

同一系统中相邻两层的实体进行交互的地方。

服务(service)

为保证上层对等体之间能相互通信,下层向上层提供的功能。

协议是“水平的”,即协议是控制对等实体之间通信的规则。
服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。

ISO/OSI 参考模型和TCP/IP 模型

ISO/OSI 参考模型

TCP/IP 模型

五层协议的体系结构-事实模型

第二章 物理层

通信基础

信道、信号、带宽、码元、波特、速率、信源与信宿等基本概念

(1)信道:向某一个方向传送信息的媒体。
(2)信号:数据的电磁或电气表现。
(3)带宽:媒介中信号可使用的最高频率和最低频率之差,或者说是频带的宽度,Hz;另一定义是信道中数据的传送速率,bps。
(4)码元:在使用时间域(简称时域)的波形表示数字信号时,代表不同离散数值的基本波形。

(5)波特:单位时间内传输的码元数。
(6)比特率:单位时间内传输的比特数。
(7)信源
(8)信宿

计算机网络的性能计算

速率 带宽 时延

奈奎斯特定理与香农定理

奈奎斯特(Nyquist)无噪声下的码元速率极限值B 与信道带宽H 的关系:
最大数据传输率B=2×H (Baud)波特
奈奎斯特公式--无噪信道传输能力公式:

H 为信道的带宽,即信道传输上、下限频率的差值,单位为Hz;

N 为一个码元所取的离散值个数。

香农公式--带噪信道容量公式:

S 为信号功率,N 为噪声功率,S/N 为信噪比,
通常把信噪比表示成10lg(S/N)分贝(dB)
S/N=100
10lg(100)=20dB

编码与调制

调幅(AM) 调频(FM) 调相(PM)

归零 曼彻斯特 非归零编码

曼彻斯特编码(Manchester)

由低电平跳变到高电平时,就表示数字信号1;每位由高电平跳变到低电平时,就表示数字信号0。

差分曼彻斯特编码

每个时钟周期的中间都有一次电平跳变,这个跳变做同步之用。
每个时钟周期的起始处:跳变则说明该比特是0,不跳变则说明该比特是1

电路交换、报文交换与分组交换

电路交换:建立端到端电路;报文交换:一次转输所有数据,长度不限且可变;分组交换:对数据分组传输,分组的长度有一个上限

数据报与虚电路

虚电路:面向连接的通信方式(TCP)

数据报服务:无连接(UDP)

传输介质

双绞线、同轴电缆、光纤与无线传输介质

双绞线

屏蔽双绞线 STP (Shielded Twisted Pair)
无屏蔽双绞线 UTP (Unshielded Twisted Pair)

同轴电缆

50 欧 同轴电缆
75 欧 同轴电缆

光纤

多模光纤与单模光纤-大容量、长距离和抗干扰

无线传输介质

短波 微波 卫星通信 无线局域网 3G 4G 5G

物理层接口的特性

机械特性 指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。
电气特性 指明在接口电缆的各条线上出现的电压的范围。
功能特性 指明某条线上出现的某一电平的电压表示何种意义。
过程特性 指明对于不同功能的各种可能事件的出现顺序。

物理层设备

中继器 集线器

中继器通常用于以太网扩充

在本质上集线器就是一个多端口中继器,星型连网拓扑

集线器连接的设备处于同一个广播域和冲突域

第三章 数据链路层

数据链路层的功能

链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点
链路管理、帧同步、
流量控制、差错控制、
数据和控制信息分开、
透明传输和寻址

组帧framing

封装成帧就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。
确定帧的界限。首部和尾部作用是帧定界。

解决透明传输问题

字节填充 字符填充 零比特填充

差错控制

检错编码

循环冗余检验

帧检验序列 FCS

在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。

循环冗余检验 CRC 和帧检验序列 FCS 并不等同。
CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。

纠错编码

汉明码

流量控制与可靠传输机制

滑动窗口机制

停止-等待协议

在发送完一个分组后,必须暂时保留已发送的分组的副本。
分组和确认分组都必须进行编号。
超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些。

重传机制和序号机制

这种可靠传输协议常称为自动重传请求ARQ (Automatic Repeat reQuest)。
ARQ 表明重传的请求是自动进行的。接收方不需要请求发送方重传某个出错的分组。

信道利用率

停止等待协议 流水线传输

后退N 帧协议(GBN)累积确认

选择重传协议(SR) 

发送窗口 接收窗口 

n 个比特对序号编码

序号 0--- 2^n -1
退后N 帧 发送窗口大小 (2^n)-1
选择重传 发送窗口大小 2^(n-1)

介质访问控制

信道划分介质访问控制

复用(multiplexing)

频分复用 FDM(Frequency Division Multiplexing)

时分复用TDM(Time Division Multiplexing)

波分复用 WDM(Wavelength Division Multiplexing)

波分复用就是光的频分复用。

码分复用 CDM(Code Division Multiplexing)

码分多址 CDMA(Code Division Multiple Access)。

各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。

每一个比特时间划分为 m 个短的间隔,称为码片(chip)。
码片序列(chip sequence)
每个站被指派一个唯一的 m bit 码片序列。
如发送比特 1 ,则发送自己的 m bit 码片序列。
如发送比特 0 ,则发送该码片序列的二进制反码。
例如,S 站的 8 bit 码片序列是 00011011。
发送比特 1 时,就发送序列 00011011,
发送比特 0 时,就发送序列 11100100。
S 站的码片序列:(–1 –1 –1 +1 +1 –1 +1 +1)

CDMA 的重要特点

每个站分配的码片序列不仅必须各不相同,并且还必须互相正交(orthogonal)。
在实用的系统中是使用伪随机码序列。
码片序列的正交关系
令向量 S 表示站 S 的码片向量,令 T 表示其他任何站的码片向量。
两个不同站的码片序列正交,就是向量 S 和T 的规格化内积(inner product)都是 0:

向量 S 为(–1 –1 –1 +1 +1 –1 +1 +1),
向量 T 为(–1 –1 +1 –1 +1 +1 +1 –1)。
把向量 S 和 T 的各分量值代入
S*T=+1+1-1-1+1-1+1-1=0
就可看出这两个码片序列是正交的。
任何一个码片向量和该码片向量自己的规格化内积都是1 。

一个码片向量和该码片反码的向量的规格化内积值是 –1。

S 站的码片序列:(–1 –1 –1 +1 +1 –1 +1 +1)
S*S=1+1+1+1+1+1+1+1=8/8=1
S*S(反)=-1 + -1 + -1 + -1 + -1 + -1 + -1 + -1=-8/8=-1
因此 1 发送S 0 发送 S (反)
假设有四个站,其码片分配如下:
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}
C={-1+1-1+1 +1+1-1-1}
在每个比特时间.其极性是线性相加的.:

S1=C =(-1 +1 -1 +1 +1 +1-1-1)
S2=B+C’ =( 0 -2 +2 -2 0 0 +2 0)
S3=A+B’ = (0 0 +2 +2 0 -2 0-2)
S1*C= +1 1
S2*C= -1 0
S3*C= 0 none

随机访问介质访问控制

ALOHA 协议

载波监听多点接入/碰撞检测CSMA/CD

争用期 最短有效帧长 二进制指数类型退避算法

CSMA/CA 协议

隐蔽站问题(hidden station problem)

暴露站问题(exposed station problem)

DCF 子层在每一个结点使用 CSMA 机制的分布式接入算法,让各个站通过争用信道来获取发送权。因此 DCF 向上提供争用服务。
PCF 子层使用集中控制的接入算法把发送数据权轮流交给各个站从而避免了碰撞的产生

帧间间隔 IFS 

SIFS,即短 (Short) 帧间间隔,长度为 28 s,是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站应当能够在这段时间内从发送方式切换到接收方式。
使用 SIFS 的帧类型有:ACK 帧、CTS 帧、由过长的 MAC 帧分片后的数据帧,以及所有回答 AP 探询的帧和在 PCF 方式中接入点 AP 发送出的任何帧。

DIFS,即分布协调功能帧间间隔,它比 SIFS 的帧间间隔要长得多,长度为 128微秒。在 DCF 方式中,DIFS 用来发送数据帧和管理帧。

CSMA/CA 协议的原理

欲发送数据的站先检测信道。
在 802.11 标准中规定了在物理层的空中接口进行物理层的载波监听。
通过收到的相对信号强度是否超过一定的门限数值就可判定是否有其他的移动站在信道上发送数据。
当源站发送它的第一个 MAC 帧时,若检测到信道空闲,则在等待一段时间 DIFS 后就可发送。
为什么信道空闲还要再等待 ?
这是考虑到可能有其他的站有高优先级的帧要发送。
如有,就要让高优先级帧先发送。
假定没有高优先级帧要发送
源站发送了自己的数据帧。
目的站若正确收到此帧,则经过时间间隔 SIFS 后,向源站发送确认帧 ACK。
若源站在规定时间内没有收到确认帧 ACK(由重传计时器控制这段时间),就必须重传此帧,直到收到确认为止,
或者经过若干次的重传失败后放弃发送。

争用窗口

信道从忙态变为空闲时,任何一个站要发送数据帧时,不仅都必须等待一个 DIFS 的
间隔,而且还要进入争用窗口,并计算随机退避时间以便再次重新试图接入到信道。
在信道从忙态转为空闲时,各站就要执行退避算法。
减少了发生碰撞的概率。
802.11 使用二进制指数退避算法。

二进制指数退避算法

第 i 次退避就在 2^(2 + i) 个时隙中随机地选择一个,即:
第 i 次退避是在时隙 {0, 1, …,-1 2^(2 +i)-1} 中随机地选择一个。
第 1 次退避是在 8 个时隙(而不是 2 个)中随机选择一个。
第 2 次退避是在 16 个时隙(而不是 4 个)中随机选择一个。

退避计时器

站点每经历一个时隙的时间就检测一次信道。这可能发生两种情况。
1、若检测到信道空闲,退避计时器就继续倒计时。
2、若检测到信道忙,就冻结退避计时器的剩余时间,重新等待信道变为空闲并再经
过时间DIFS 后,从剩余时间开始继续倒计时。
如果退避计时器的时间减小到零时,就开始发送整个数据帧。

退避算法的使用情况
仅在下面的情况下才不使用退避算法:
检测到信道是空闲的,并且这个数据帧是要发送的第一个数据帧。
除此以外的所有情况,都必须使用退避算法。
即:
在发送第一个帧之前检测到信道处于忙态。
在每一次的重传后。
在每一次的成功发送后。

CSMA/CA 算法归纳

(1) 若站点最初有数据要发送(而不是发送不成功再进行重传),且检测到信道空闲,在等待时间 DIFS 后,就发送整个数据帧。
(2) 否则,站点执行 CSMA/CA 协议的退避算法。一旦检测到信道忙,就冻结退避计时器。只要信道空闲,退避计时器就进行倒计时。
(3) 当退避计时器时间减少到零时(这时信道只可能是空闲的),站点就发送整个的帧并等待确认。

(4) 发送站若收到确认,就知道已发送的帧被目的站正确收到了。这时如果要发送第二帧,就要从上面的步骤 (2) 开始,执行 CSMA/CA 协议的退避算法,随机选定一段退避时间。若源站在规定时间内没有收到确认帧 ACK(由重传计时器控制这段时间),就必须重传此帧(再次使用 CSMA/CA 协议争用接入信道),直到收到确认为止,或者经过若干次的重传失败后放弃发送。

对信道进行预约

为了更好地解决隐蔽站带来的碰撞问题,802.11 允许要发送数据的站对信道进行预约。

NAV 指出了必须经过多少时间才能完成数据帧的这次传输,才能使信道转入到空闲状态。
使用 RTS 帧和 CTS 帧会使整个网络的通信效率有所下降。但与数据帧相比,开销不算大。
相反,若不使用这种控制帧,则一旦发生碰撞而导致数据帧重发,则浪费的时间就更多。

协议还是设有三种情况供用户选择:

(1) 使用 RTS 帧和 CTS 帧;
(2) 只有当数据帧的长度超过某一数值时才使用 RTS 帧和 CTS 帧(显然,当数据帧本身就很短时,再使用 RTS 帧和 CTS 帧只能增加开销);
(3) 不使用 RTS 帧和 CTS 帧。
虽然协议经过了精心设计,但碰撞仍然会发生。

802.11 局域网的 MAC 帧

802.11 帧共有三种类型:控制帧、数据帧和管理帧。

MAC 首部,共 30 字节。帧主体,也就是帧的数据部分,不超过 2312 字节。这个数值比以太网的最大长度长很多。不过 802.11 帧的长度通常都是小于 1500 字节。

轮询访问介质访问控制:令牌传递协议

控制令牌是另一种传输媒体访问控制方法。
按照所有站点共同理解和遵守的规则,从一个站点到另一个站点传递控制令牌

局域网

以太网与IEEE 802.3

DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为“以太网”。

严格说来,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网
数据链路层的两个子层-802 委员会
逻辑链路控制 LLC (Logical Link Control)子层
媒体接入控制 MAC (Medium Access Control)子层
与接入到传输媒体有关的内容都放在 MAC 子层,
LLC 子层则与传输媒体无关,不管采用何种协议的局域网对 LLC 子层来说都是透明的

MAC 层的硬件地址

48 位的 MAC 地址

IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位)。
地址字段中的后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址。

IEEE 规定地址字段的第一字节的最低位为 I/G 位。I/G 表示 Individual / Group。
当 I/G 位 = 0 时,地址字段表示一个单站地址。
当 I/G 位 = 1 时,表示组地址,用来进行多播(以前曾译为组播)。此时,IEEE 只分配地址字段前三个字节中的 23 位。

IEEE 把地址字段第一字节的最低第 2 位规定为 G/L 位,表示 Global / Local。
当 G/L 位 = 0 时,是全球管理(保证在全球没有相同的地址),厂商向IEEE 购买的OUI 都属于全球管理。
当 G/L 位 = 1 时, 是本地管理,这时用户可任意分配网络上的地址。

常用的以太网MAC 帧格式有两种标准 :

DIX Ethernet V2 标准
IEEE 的 802.3 标准

最常用的 MAC 帧是以太网 V2 的格式。

最小长度 64 字节 - 18 字节的首部和尾部 = 数据字段的最小长度(46)

当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。

无效的 MAC 帧

1、数据字段的长度与长度字段的值不一致;
2、数据字段的长度不在 46 ~ 1500 字节之间。
3、有效的 MAC 帧长度为 64 ~ 1518 字节之间。

高速以太网100BASE-T

速率达到或超过 100 Mb/s 的以太网称为高速以太网。

三种不同的物理层标准

100BASE-TX
使用 2 对 UTP 5 类线或屏蔽双绞线 STP。
100BASE-FX
使用 2 对光纤。
100BASE-T4
使用 4 对 UTP 3 类线或 5 类线。
吉比特以太网

1000BASE-X 基于光纤通道的物理层:
1000BASE-SX SX 表示短波长
1000BASE-LX LX 表示长波长
1000BASE-CX CX 表示铜线
1000BASE-T
使用 4 对 5 类线 UTP

10 吉比特以太网
10 吉比特以太网还保留了 802.3 标准规定的以太网最小和最大帧长,便于升级。
10 吉比特以太网只工作在全双工方式,因此没有争用问题,也不使用 CSMA/CD 协议。

IEEE 802.11

802.11 的物理层实现方法:
直接序列扩频 DSSS
正交频分复用 OFDM
跳频扩频 FHSS (已很少用)
红外线 IR (已很少用)

令牌环网的基本原理

使用一个标记沿着环循环。当一个站要发送帧时,需等待空标记通过,然后将它改为忙标记。

广域网

PPP 协议-字符

现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。

HDLC 协议-比特

HDLC 是通用的数据链路控制协议,在开始建立数据链路时,允许选用特定的操作方式。 所谓操作方式,通俗地讲就是某站点是以主站点方式操作还是以从站方式操作,或者是二者兼备。
链路上用于控制目的的站称为主站,
其它的受主站控制的站称为从站。
主站对数据流进行组织,并且对链路上的差错实施恢复。 由主站发往从站的帧称为命令帧,
从从站返回主站的帧称为响应帧。
连有多个站点的链路通常使用轮询技术,轮询其它站的站称为主站,而在点-点链路中每个站均可为主站。

数据链路层设备

网桥

在数据链路层扩展局域网是使用网桥。

网桥使各网段成为隔离开的碰撞域

网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴

网桥和集线器(或转发器)不同

集线器在转发帧时,不对传输媒体进行检测。
网桥在转发帧之前必须执行 CSMA/CD 算法。
若在发送过程中出现碰撞,就必须停止发送和进行退避。

网桥应当按照以下自学习算法处理收到的帧和建立转发表

1、若从 A 发出的帧从接口 x 进入了某网桥,那么从这个接口出发沿相反方向一定可把一个帧传送到 A。
2、网桥每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表中的一个项目。
在建立转发表时是把帧首部中的源地址写在“地址”这一栏的下面。
在转发帧时,则是根据收到的帧首部中的目的地址来转发的。这时就把在“地址”栏下面已经记下的源地址当作目的地址,而把记下的进入接口当作转发接口。

网桥在转发表中登记以下三个信息
地址和接口,进入该网桥的时间。
这是因为以太网的拓扑可能经常会发生变化,站点也可能会更换适配器(这就改变了站点的地址)。
另外,以太网上的工作站并非总是接通电源的。
把每个帧到达网桥的时间登记下来,就可以在转发表中只保留网络拓扑的最新状态信息。
使得网桥中的转发表能反映当前网络的最新拓扑状态。

网桥的自学习和转发帧的步骤归纳

1、网桥收到一帧后先进行自学习。
2、查找转发表中与收到帧的源地址有无相匹配的项目。

3、如没有,就在转发表中增加一个项目(源地址、进入的接口和时间)。
4、如有,则把原有的项目进行更新。
转发帧。查找转发表中与收到帧的目的地址有无相匹配的项目
1、如没有,则通过所有其他接口(但进入网桥的接口除外)按进行转发。
2、如有,则按转发表中给出的接口进行转发。
3、若转发表中给出的接口就是该帧进入网桥的接口,则应丢弃这个帧(因为这时不需要经过网桥进行转发)。

局域网交换机及其工作原理

交换式集线器常称为以太网交换机(switch)或第二层交换机(表明此交换机工作在数据链路层)

以太网交换机实质上就是一个多接口的网桥,可见交换机工作在数据链路层。

以太网交换机的每个接口都直接与主机相连,并且一般都工作在全双工方式。

交换机能同时连通许多对的接口,使每一对相互通信的主机都能像独占通信媒体那样,进行无碰撞地传输数据。

交换机的最大优点:独占传输媒体的带宽

交换机自学习和转发帧的步骤归纳

交换机收到一帧后先进行自学习。查找交换表中与收到帧的源地址有无相匹配的项目。
如没有,就在交换表中增加一个项目(源地址、进入的接口和有效时间)。
如有,则把原有的项目进行更新(进入的接口或有效时间)。
转发帧。查找表中与收到帧的目的地址有无相匹配的项目。
如没有,则向所有其他接口(进入的接口除外)转发。
如有,则按交换表中给出的接口进行转发。
若交换表中给出的接口就是该帧进入交换机的接口,则应丢弃这个帧(因为这时不需要经过交换机进行转发)。

交换机的性能指标-转发技术

转发技术:目前交换机在传送源和目的端口的数据包时通常采用

直通式交换
存储转发式(主流交换方式)
碎片隔离方式

直通转发技术:(Cut-through) :交换机一旦解读到数据包目的地址,就开始向目的端口发送数据包。
通常,交换机在接收到数据包的前6 个字节时,就已经知道目的地址,从而可以决定向哪个端口转发这个数据包。
优点:转发速率快、减少延时和提高整体吞吐率。
存储转发技术:(Store-and-Forward):
存储转发技术要求交换机在接收到全部数据包后再决定如何转发。这样一来,交换机可以在转发之前检查数据包完整性和正确性。
优点:没有残缺数据包转发,减少了潜在的不必要数据转发。
缺点:转发速率比直接转发技术慢。
碎片隔离式(Fragment Free)
这是介于直通式和存储转发式之间的一种解决方案。
它在转发前先检查数据包的长度是否够64 个字节(512 bit),如果小于64 字节,说明是假包(或称残帧),则丢弃该包;如果大于64 字节,则发送该包。

交换机时延(Latency):是指从交换机接收到数据包到开始向目的端口复制数据包之间的时间间隔。
采用直通转发技术的交换机有固定的延时。取决于交换机解读数据包前6 个字节中目的地址的解读速率。
采用存储转发技术的交换机由于必须要接收完整的数据包才开始转发,所以它的延时与数据包大小有关。

第四章 网络层

网络层的功能

异构网络互联

互连起来的各种物理网络的异构性本来是客观存在的,利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。

路由与转发

特定主机路由 默认路由(default route) 

分组转发算法

(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
(2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)

(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错。

拥塞控制

分组交换采用尽最大努力交付,
开环控制
闭环控制

路由算法

静态路由 动态路由

静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。

路由算法

距离矢量路由算法-向邻居路由器发送全网信息

距离向量路由算法(Bellman-Ford Routing Algorithm),也叫做最大流量演算法(Ford-Fulkerson Algorithm),其被距离向量协议作为一个算法,如RIP, BGP, ISO IDRP,NOVELL IPX。

链路状态路由算法-向全网路由器发送邻居信息

发现它的邻居节点,并知道其网络地址;
测量到它各邻居节点的延迟或开销,也就是链路状态;
组装一个分组以告之它刚知道的所有信息;
将这个分组发送给其他路由器;
计算到每个其他路由器的最短路径。
完整的拓扑结构和所有的延时都已被测量,并且被测量到各个路由器中。
各个路由器都可以用 Dijkstra 算法来找出最短路径。

层次路由

因特网采用分层次的路由选择协议。

IPv4

IPv4 分组

一个 IP 数据报由首部和数据两部分组成。
首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
首部的后面是一些可选字段,其长度是可变的。

IP 数据报首部的可变部分

IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。
选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。

IPv4 地址与NAT

IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。

IP 地址的编址方法

1、分类的 IP 地址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。
2、子网的划分。这是对最基本的编址方法的改进,其标准[RFC 950]在 1985 年通过。
3、构成超网。这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用。

分类 IP 地址

本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。
全球地址——全球唯一的 IP 地址,必须向互联网的管理机构申请。
问题:在内部使用的本地地址就有可能和互联网中某个 IP 地址重合,这样就会出现地址的二义性问题。
问题:在内部使用的本地地址就有可能和互联网中某个 IP 地址重合,这样就会出现地址的二义性问题。

解决:RFC 1918 指明了一些专用地址 (private address)。专用地址只能用作本地地址而不能用作全球地址。
在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
三个专用 IP 地址块:
(1) 10.0.0.0 到 10.255.255.255
A 类,或记为10.0.0.0/8,它又称为24 位块
(2) 172.16.0.0 到 172.31.255.255
B 类,或记为172.16.0.0/12,它又称为20 位块
(3) 192.168.0.0 到 192.168.255.255
C 类,或记为192.168.0.0/16,它又称为16 位块

网络地址转换 NAT (Network Address Translation)

网络地址转换的过程
可以看出,在内部主机与外部主机通信时,在NAT 路由器上发生了两次地址转换:
离开专用网时:替换源地址,将内部地址替换为全球地址;
进入专用网时:替换目的地址,将全球地址替换为内部地址;

网络地址与端口号转换 NAPT

为了更加有效地利用 NAT 路由器上的全球IP 地址,现在常用的 NAT 转换表把传输层的端口号也利用上。

就可以使多个拥有本地地址的主机,共用一个 NAT 路由器上的全球 IP 地址,因而可以同时和互联网上的不同主机进行通信。
使用端口号的 NAT 叫作网络地址与端口号转换NAPT (Network Address and Port Translation),而不使用端口号的 NAT 就叫作传统的 NAT (traditional NAT)。

子网划分与子网掩码、CIDR

从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。
这种做法叫作划分子网(subnetting) 。

划分子网的基本思路
主机号借若干个位作为子网号 subnet-id,
主机号 host-id 也就相应减少了若干个位
IP 地址::={<网络号>, <子网号>, <主机号>}

子网掩码

从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。
使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。

子网划分方法

有固定长度子网和变长子网两种子网划分方法。
在采用固定长度子网时,所划分的所有子网的子网掩码都是相同的。
虽然根据已成为互联网标准协议的RFC 950 文档,子网号不能为全1 或全0,但随着无分类域间路由选择CIDR 的广泛使用,现在全1 和全0 的子网号也可以使用了
划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数。

无分类编址 CIDR

1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码。
使用变长子网掩码 VLSM (Variable Length Subnet Mask)可进一步提高 IP 地址资源的利用率。
在 VLSM 的基础上又进一步研究出无分类编址方法,
正式名字是无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。

CIDR 最主要的特点

1、CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,可以更加有效地分配 IPv4 的地址空间。
2、CIDR 使用各种长度的“网络前缀”(network - prefix)来代替分类地址中的网络号和子网号。
IP 地址从三级编址(使用子网掩码)又回到了两级编址。
无分类的两级编址的记法是:
IP 地址 ::= {<网络前缀>, <主机号>}

CIDR 还使用“斜线记法”(slash notation),它又称为CIDR 记法,即在 IP 地址面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。
CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。

路由聚集/聚合(route aggregation)

一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。
路由聚合也称为构成超网(supernetting)。
CIDR 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。
对于 /20 地址块,它的掩码是 20 个连续的 1。

斜线记法中的数字就是掩码中1 的个数。

ARP 协议、DHCP 协议与ICMP 协议

地址解析协议 ARP(Address Resolution Protocol)
动态主机配置协议 DHCP
网络控制报文协议 ICMP(Internet Control Message Protocol)

IPv6

IPv6 的主要特点

1.全新的报文结构
2.巨大的地址空间
3.全新的地址分配方式
4.对QOS 更好的支持
5.内置的安全性
6.全新的邻居发现协议
7.可扩展性
8.移动性

IPv6 将首部长度变为固定的 40 字节,称为基本首部(base header)。
将不必要的功能取消了,首部的字段数减少到只有 8 个。
取消了首部的检验和字段,加快了路由器处理数据报的速度。
在基本首部的后面允许有零个或多个扩展首部。
所有的扩展首部和数据合起来叫做数据报的有效载荷(payload)或净负荷。

IPv6 地址

IPv6 数据报的目的地址可以是以下三种基本类型地址之一:

(1) 单播(unicast) 单播就是传统的点对点通信。
(2) 多播(multicast) 多播是一点对多点的通信。
(3) 任播(anycast) 这是 IPv6 增加的一种类型。

任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个。

冒号十六进制记法

特殊地址

基于 IPv4 的地址 前缀为 0000 0000 保留一小部分地址作为与 IPv4 兼容的。
前缀为 0000 0000 的地址
是保留一小部分地址与 IPv4 兼容的,这是因为必须要考虑到在比较长的时期 IPv 4和 IPv6 将会同时存在,而有的结点不支持 IPv6。
因此数据报在这两类结点之间转发时,就必须进行地址的转换。

未指明地址 这是 16 字节的全 0 地址,可缩写为两个冒号“::”。这个地址只能为还没有配置到一个标准的 IP 地址的主机当作源地址使用。

环回地址 即 0:0:0:0:0:0:0:1(记为 ::1)。

路由协议

自治系统

在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS 之间的路由。
现在对自治系统 AS 的定义是强调下面的事实:
尽管一个 AS 使用了多种内部路由选择协议和度量,但重要的是一个 AS 对其他 AS表现出的是一个单一的和一致的路由选择策略。

域内路由与域间路由

内部网关协议 IGP (Interior Gateway Protocol)
即在一个自治系统内部使用的路由选择协议。
目前这类路由选择协议使用得最多,
如 RIP 和 OSPF 协议。
外部网关协议EGP (External Gateway Protocol)
若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。
这样的协议就是外部网关协议 EGP。
在外部网关协议中目前使用最多的是 BGP-4。

RIP 路由协议

RIP 是一种分布式的基于距离向量的路由选择协议
RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。

“距离”的定义
从一路由器到直接连接的网络的距离定义为 1。
从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1 。
RIP 协议中的“距离”也称为“跳数”(hop count),
因为每经过一个路由器,跳数就加 1 。
这里的“距离”实际上指的是“最短距离”,
RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
RIP 允许一条路径最多只能包含 15 个路由器。
“距离”的最大值为16 时即相当于不可达。
RIP 只适用于小型互联网。

RIP 协议的三个要点

1、仅和相邻路由器交换信息。
2、交换的信息是当前本路由器所知道的全部信息,即自己的路由表。

3、按固定的时间间隔交换路由信息,例如,每隔 30 秒。

距离向量算法

收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X ,并把所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则把该项目加到路由表中。
否则
若下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目。
否则
若收到项目中的距离小于路由表中的距离,则进行更新,
否则,什么也不做。
(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16 表示不可达)。
(4) 返回。

RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
RIP 协议最大的优点就是实现简单,开销较小。
RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。

OSPF 路由协议

OSPF 协议的基本特点

“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
“最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF
OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。是分布式的链路状态协议。

三个要点

1、向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
2、发送的信息就是与本路由器相邻的所有路由器的链路状态,这只是路由器所知道的部分信息。
“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
3、只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。

链路状态数据库

1、由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
2、这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。
3、OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF 的更新过程收敛得快是其重要优点。

OSPF 的区域(area)

为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。
每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。
区域也不能太大,在一个区域内的路由器最好不超过 200 个。

OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。
主干区域的标识符规定为0.0.0.0。
主干区域的作用是用来连通其他在下层的区域。

OSPF 直接用 IP 数据报传送

不用 UDP 而是直接用 IP 数据报传送。
OSPF 构成的数据报很短。减少路由的通信量。
数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
所有在 OSPF 路由器之间交换的分组都具有鉴别的功能支持可变长度的子网划分和无分类编址 CIDR。
每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。

OSPF 的五种分组类型

类型1,问候(Hello)分组:用来维持和发现邻站的可达性。
类型2,数据库描述(Database Description)分组:向邻站发送链路数据库的摘要信息。
类型3,链路状态请求(Link State Request)分组:请求发送链路数据库的详细信息。
类型4,链路状态更新(Link State Update)分组:用洪泛法对全网更新链路状态。
类型5,链路状态确认(Link State Acknowledgment)分组:对链路更新分组的确认。

OSPF 的其他特点

OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。

BGP 路由协议

BGP 是不同自治系统的路由器之间交换路由信息的协议。

BGP 发言人(BGP speaker)

每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” 。

一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。

BGP 交换路由信息

一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。

使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。
使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。

BGP-4 共使用四种报文

(1) 打开(OPEN)报文,用来与相邻的另一个BGP 发言人建立关系。
(2) 更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
(3) 保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。
(4) 通知(NOTIFICATION)报文,用来发送检测到的差错
在 RFC 2918 中增加了 ROUTE-REFRESH 报文,用来请求对等端重新通告。

IP 组播

IP 组播的一些特点

(1) 组播使用组地址—— IP 使用 D 类地址支持组播。组播地址只能用于目的地址,而不能用于源地址。
(2) 永久组地址——由因特网号码指派管理局 IANA 负责指派。
(3) 动态的组成员
(4) 使用硬件进行组播

IP 组播地址

因特网号码指派管理局 IANA 拥有的以太网地址块的高 24 位为 00-00-5E。
以太网组播地址块的范围是:从 00-00-5E-00-00-00 到 00-00-5E-FF-FF-FF

D 类 IP 地址可供分配的有 28 位,在这 28 位中的前 5 位不能用来构成以太网硬件地址。

D 类 IP 地址与以太网组播地址的映射关系

移动IP

移动IP 的概念

Mobile IP 是为了满足移动节点在移动中保持其连接性而设计的。
移动IP 技术是指移动用户可跨网络随意移动和漫游,不用修改计算机原来的IP 地址,
同时,继续享有原网络中一切权限。
简单地说,移动IP 就是实现网络全方位的移动或者漫游。

与移动IP 技术相关的重要术语:

1. 移动代理(Mobility Agent)

移动代理分归属代理(Home Agent)外区代理(Foreign Agent)两类,它们是服务器或路由器,能知道移动结点实际连接在何处。

2 归属代理又称为家乡代理,是一个在移动结点归属网(Home network)上的路由器,它至少有一个接口在归属网上,当移动结点离开归属网后,它通过IP 隧道把数据包转发给移动结点,并且负责维护移动结点的当前位置信息。
外区代理位于移动结点当前连接的外区网络上,它向已注册的移动结点提供路由服务。
当使用外区代理转交地址时,外区代理负责解除原始数据包的隧道封装,取出原始数据包,并将其转发到该移动结点。
对于那些由移动结点发出的数据包而言,外区代理可作为已注册的移动结点的缺省路由器使用。

移动IP 地址

移动IP 节点拥有两个IP 地址:
归属地址(Home Address)又称为本地地址,这是用来识别端到端连接的静态地址,也是移动结点与归属网连接时使用的地址。
不管移动结点连至网络何处,其归属地址保持不变。
转交地址就是隧道终点地址,转交地址可能是外区代理转交地址,也可能是驻留本地的转交地址(配置转交地址)。
通常用的是外区代理转交地址。
转交地址是一个临时分配给移动结点的地址。
它由外部获得(如通过DHCP),移动结点将其与自身的一个网络接口相关联。
外区代理转交地址模式可使很多移动节点共享同一个转交地址,所以这种地址模式被优先使用。
在这种地址模式中,外区代理就是隧道的终点,它接收隧道数据包,解除数据包的隧道封装,然后将原始数据包转发到移动结点。

一个配置转交地址仅能被一个移动结点使用。当使用驻留归属的转交地址时,移动结点自身就是隧道的终点,执行解除隧道功能。
转交地址是仅供数据包路由使用的动态地址,也是移动结点与外区网连接时使用的临时地址。每当移动结点接入到一个新的网络,转交地址就发生变化。

位置注册(Registration)

移动节点必须将其位置信息向其归属代理进行注册,以便被找到。
在移动IP 技术中,按照网络连接方式的不同,有两种不同的注册规则。
通过外区代理进行注册,即移动结点向外区代理发送注册请求报文,外区代理接收并处理注册请求报文,然后将报文中继到移动结点的归属代理。
直接向归属代理进行注册,即移动结点向其归属代理发送注册请求报文,归属代理处理后向移动结点发送注册答复报文。

代理发现(Agent Discovery)

为了随时随地与其他结点进行通信,移动结点必须实现代理发现。
移动IP 定义了两种发现移动代理的方法:
被动发现,移动结点等待代理周期性地广播代理通告报文;
主动发现,移动结点广播一条请求代理的报文。所有移动代理都应具备代理通告功能,
并对代理请求作出响应。所有移动结点必须具备代理请求功能。
移动结点发送代理请求报文的条件:
没有收到移动代理的代理通告
无法通过链路层协议或其他方法获得转交地址

隧道技术(Tunneling)

当移动结点在外区网上时,归属代理需要将原始数据报转发给已注册的外区代理。
归属代理使用IP 隧道技术,将原始IP 数据包封装在转发的IP 数据包中,从而使原始IP 数据包原封不动地转发到处于隧道终点的转交地址处。
在转交地址处解除隧道,取出原始数据包,并将原始数据包发送到移动结点。

当转交地址为配置转交地址时,移动结点本身就是隧道的终点,它自身进行解除隧道,取出原始数据包的工作。

移动IP 的通信过程

移动IP 协议的工作原理由以下步骤实现:
(1)移动IP 系统中的归属代理和外区代理不停地向网上发送代理通告(AgentAdvertisement)消息。
(2)接到这些消息的移动结点,知道环境中有归属代理和外区代理的存在,并确定自己是在归属网还是在外区网上。
(3)如果移动结点收到的是归属代理发来的消息,则说明自己仍在归属网上,此时,不启动移动功能。
(4)当移动结点检测到它移到外区网,它从外区网处获取一个临时的IP 地址,即转交地址。
(5)然后移动结点向归属代理注册,表明自己已离开归属网,把所获的关联地址通知归属代理。归属代理可以随时获取移动结点的当前位置信息。
(6)注册完毕后,当通信端要向移动结点发送报文时,他使用移动结点的固定IP 地址。报文将被路由到移动结点的归属网,并被归属代理截获。归属代理将该报文封装,通过隧道将报文发送到移动结点所在的外区网。
移动IP 通信对端是透明的。通信端根本不用关心当前主机是否移动。仅仅用移动主机的固定IP 地址发送报文就可以了。
其次,移动IP 对上层应用也是透明的。移动主机不管移动到哪里,其IP 地址都固定不变,上层应用根本感觉不到主机位置的变化。所有变动等工作都在IP 层完成,
因此,移动IP 是网络层的移动解决方案。

网络层设备

路由器的组成和功能-隔离冲突域与广播域

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组

下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。

路由表与路由转发

“转发”(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。
“路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
在讨论路由选择的原理时,往往不去区分转发表和路由表的区别,

第五章 传输层

传输层提供的服务

从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
网络边缘部分的主机的协议栈才有传输层
网络核心部分中的路由器在转发分组时都只用到下三层的功能

应用进程之间的通信
应用进程之间的通信又称为端到端的通信。
重要功能就是复用和分用。
应用层不同进程的报文通过不同的端口向下交到传输层,再往下就共用网络层提供的服务。
注意:“传输层提供应用进程间的逻辑通信”。
传输层之间的通信好像是沿水平方向传送数据。但事实上这两个传输层之间并没有一条水平方向的物理连接。

传输层的功能

1、传输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。
2、传输层还要对收到的报文进行差错检测。

传输层需要有两种不同的传输协议
面向连接的 TCP
无连接的 UDP。

传输层寻址与端口

端口号简称为端口(port)

协议端口号(protocol port number),或通常简称为端口(port)。

虽然通信的终点是应用进程,但可以把端口想象是通信的终点,因为只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由 TCP来完成。

TCP /UDP 的端口

端口用一个 16 位端口号进行标志。
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。
在因特网中不同计算机的相同端口号是没有联系的

三类端口

熟知端口,数值一般为 0~1023。

登记端口号,数值为1024~49151
客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。动态端口号

无连接服务与面向连接服务

面向连接服务就是在数据交换之前,必须先建立连接,当数据交换结束后,则应该终止这个连接。
在无连接服务的情况下,两个实体之间的通信不需要先建立好一个连接,因此其下层的有关资源不需要事先进行预定保留,这些资源是在数据传输时动态地进行分配的。

两种不同的传输协议

当传输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。
当传输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道。

TCP 与 UDP

两个对等传输实体在通信时传送的数据单位叫作传输协议数据单元 TPDU (Transport Protocol Data Unit)。
TCP 是 TCP 报文段(segment)
UDP 是 UDP 报文或用户数据报。

UDP 协议

UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。
虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。

1、无连接的,即发送数据之前不需要建立连接。
2、尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
3、面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。
4、支持一对一、一对多、多对一和多对多的交互通信。
5、首部开销小,只有 8 个字节。

面向报文的 UDP

发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。
应用层交给 UDP 多长的报文,UDP 就照样发送,即一次发送一个报文。
接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。

UDP 数据报

数据字段和首部字段,首部字段有 8 个字节,由 4 个字段组成,每个字段都是两个字节。

UDP 校验

把“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和。

TCP 协议

1、TCP 是面向连接的传输层协议。
2、每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一)。
3、TCP 提供可靠交付的服务。
4、TCP 提供全双工通信。
5、面向字节流。

应当注意

1、TCP 连接是一条虚连接而不是一条真正的物理连接。
2、TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。
3、TCP 可把太长的数据块划分短一些再传送。

TCP 也可等待积累有足够多的字节后再构成报文段发送出去。

TCP 段

选项字段 —— 长度可变。
最大报文段长度 MSS。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”
MSS (Maximum Segment Size)
是 TCP 报文段中的数据字段的最大长度。

MSS 与接收窗口值没有关系。
若选择较小的 MSS 长度,网络的利用率就降低。

1、当 TCP 报文段只含有 1 字节的数据时,在 IP 层传输的数据报的开销至少有 40字节(包括 TCP 报文段的首部和 IP 数据报的首部)。网络的利用率就不会超过 1/41。
2、若 TCP 报文段非常长,那么在 IP 层传输时就有可能要分解成多个短数据报片。在终点要把收到的各个短数据报片装配成原来的 TCP 报文段。当传输出错时还要进行重传。开销增大。
因此,MSS 应尽可能大些,只要在 IP 层传输时不需要再分片就行。

其他选项

窗口扩大选项 ——占 3 字节,其中有一个字节表示移位值 S 。新的窗口值等于TCP首部中的窗口位数增大到(16 + S),相当于把窗口值向左移动 S 位后获得实际的窗口大小。
时间戳选项——占10 字节,其中最主要的字段时间戳值字段(4 字节)和时间戳回送回答字段(4 字节)。

TCP 连接管理

传输连接就有三个阶段
连接建立、数据传送和连接释放。
连接建立过程中要解决以下三个问题:
要使每一方能够确知对方的存在。
要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。
能够对传输实体资源(如缓存大小,连接表中的项目等)进行分配。
TCP 连接的建立都是采用客户服务器方式。
主动发起连接建立的应用进程叫做客户(client)。
被动等待连接建立的应用进程叫做服务器(server)。

TCP 可靠传输

1、TCP 连接的每一端都必须设有两个窗口——一个发送窗口和一个接收窗口。
2、TCP 的可靠传输机制用字节的序号进行控制。
3、TCP 所有的确认都是基于序号而不是基于报文段。

4、TCP 两端的四个窗口经常处于动态变化之中。
5、TCP 连接的往返时间 RTT 也不是固定不变的。需要使用特定的算法估算较为合理的重传时间。

需要强调三点

A 的发送窗口并不总是和 B 的接收窗口一样大(因为有一定的时间滞后)。
TCP 标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。
TCP 要求接收方必须有累积确认的功能,这样可以减小传输开销。

加权平均往返时间

TCP 流量控制和拥塞控制

如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。
流量控制(flow control)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。

拥塞控制与流量控制的关系

1、拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。
2、拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
3、流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。
4、流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

拥塞控制方法-慢开始和拥塞避免

1、发送方:拥塞窗口 cwnd (congestion window)的状态变量。
2、拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。
3、发送方让自己的发送窗口等于拥塞窗口。如再考虑到接收方的接收能力,则发送窗口还可能小于拥塞窗口。
4、发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,
以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。

慢开始算法的原理

1、在主机刚刚开始发送报文段时可先设置拥塞窗口 cwnd = 1,即设置为一个最大报文段 MSS 的数值。

2、在每收到一个对新的报文段的确认后,将拥塞窗口加 1,即增加一个 MSS 的数值。
3、用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理。
发送方每收到一个对新报文段的确认(重传的不算在内)就使 cwnd 加 1。

传输轮次(transmission round)

使用慢开始算法后,每经过一个传输轮次,拥塞窗口 cwnd 就加倍。
一个传输轮次所经历的时间其实就是往返时间 RTT。
“传输轮次”更加强调:把拥塞窗口 cwnd 所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个字节的确认。

设置慢开始门限状态变量ssthresh

慢开始门限 ssthresh 的用法如下:
当 cwnd < ssthresh 时,使用慢开始算法。
当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。

拥塞避免算法的思路是让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律缓慢增长。

当网络出现拥塞时

1、无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有按时收到确认),就要把慢开始门限 ssthresh 设置为出现拥塞时的发送方窗口值的一半(但不能小于2)。
2、把拥塞窗口 cwnd 重新设置为 1,执行慢开始算法。

当 TCP 连接进行初始化时,将拥塞窗口置为 1。图中的窗口单位不使用字节而使用报文段。慢开始门限的初始值设置为 16 个报文段,即 ssthresh = 16。

乘法减小

1、“乘法减小“是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞),就把慢开始门限值 ssthresh 设置为当前的拥塞窗口值乘以 0.5。
2、当网络频繁出现拥塞时,ssthresh 值就下降得很快,以大大减少注入到网络中的分组数。

加法增大

“加法增大”是指执行拥塞避免算法后,在收到对所有报文段的确认后(即经过一个往返时间),就把拥塞窗口 cwnd 增加一个 MSS 大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。

快重传和快恢复

快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认。这样做可以让发送方及早知道有报文段没有到达接收方。
发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段。
不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。

快恢复算法

(1) 当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,把慢开始门限ssthresh 减半。但接下去不执行慢开始算法。
(2)由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,即拥塞窗口 cwnd 现在不设置为 1,而是设置为慢开始门限 ssthresh 减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。
从连续收到三个重复的确认转入拥塞避免

发送窗口的上限值

发送方的发送窗口的上限值应当取为接收方窗口 rwnd 和拥塞窗口 cwnd 这两个变量中较小的一个,即应按以下公式确定:
发送窗口的上限值 = Min [rwnd, cwnd]
当 rwnd < cwnd 时,是接收方的接收能力限制发送窗口的最大值。
当 cwnd < rwnd 时,则是网络的拥塞限制发送窗口的最大值。

第六章 应用层

网络应用模型

客户服务器方式(C/S 方式)即Client/Server 方式  对等方式(P2P 方式)即 Peer-to-Peer 方式。

客户/服务器模型

客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
客户服务器方式所描述的是进程之间服务和被服务的关系。
客户是服务的请求方,服务器是服务的提供方。

P2P 模型

对等连接(peer-to-peer,简写为 P2P)是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。
对等连接方式从本质上看仍然是使用客户服务器方式,只是对等连接中的每一个主机既是客户又同时是服务器。

DNS 系统

域名到IP 地址的解析系统
域名 主机的名字
因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。
名字到 IP 地址的解析是由若干个域名服务器程序完成的。
域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。

层次域名空间

因特网采用了层次树状结构的命名方法。
任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
域名的结构由标号序列组成,各标号之间用点隔开:
… . 三级域名 . 二级域名 . 顶级域名
各标号分别代表不同级别的域名。
域名只是个逻辑概念,并不代表计算机所在的物理地点。
变长的域名和使用有助记忆的字符串,是为了便于人来使用。
IP 地址是定长的 32 位二进制数字则非常便于机器进行处理。

域名中的“点”和点分十进制 IP 地址中的“点”并无一一对应的关系。
点分十进制 IP 地址中一定是包含三个“点”,
每一个域名中“点”的数目则不一定正好是三个。

域名服务器

一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。
各单位根据具体情况来划分自己管辖范围的区。
但在一个区中的所有节点必须是能够连通的。

域名服务器有以下四种类型

1、根域名服务器
2、顶级域名服务器
3、权限域名服务器
4、本地域名服务器

根域名服务器——最高层次的域名服务器——
根域名服务器是最重要的域名服务器。
所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。
不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。

顶级域名服务器

负责管理在该顶级域名服务器注册的所有二级域名。
当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。

权限域名服务器

负责一个区的域名服务器。
当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS客户,下一步应当找哪一个权限域名服务器。

本地域名服务器

本地域名服务器对域名系统非常重要。
当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
实际操作中 权限域名服务=本地域名服务器
每一个因特网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,
这种域名服务器有时也称为默认域名服务器。
提高域名服务器的可靠性
DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。
当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。
主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。
保证了数据的一致性。

域名解析过程

主机向本地域名服务器的查询一般都是采用递归查询。
如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
本地域名服务器向根域名服务器的查询通常是采用迭代查询。
当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。
然后让本地域名服务器进行后续的查询。

FTP

文件传送协议 FTP (File Transfer Protocol) 是因特网上使用得最广泛的文件传送协议。
FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。
FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。

FTP 协议的工作原理

文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。
FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
FTP 使用客户服务器方式
一个 FTP 服务器进程可同时为多个客户进程提供服务。
FTP 的服务器进程由两大部分组成:
1、一个主进程,负责接受新的请求;
2、若干个从属进程,负责处理单个请求。

主进程的工作步骤如下

打开熟知端口(端口号为 21),使客户进程能够连接上。
等待客户进程发出连接请求。
启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
回到等待状态,继续接受其他客户进程发来的请求。
主进程与从属进程的处理是并发地进行。

控制连接与数据连接

控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。
数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。

两个不同的端口号

21-当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
20-服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。
数据连接与控制连接不会发生混乱。

电子邮件

电子邮件(e-mail)是因特网上使用得最多的和最受用户欢迎的一种应用。
电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可随时上网到自己使用的邮件服务器进行读取。
传送文字信息,声音和图像,附件。
电子邮件的一些标准
发送邮件的协议:SMTP
读取邮件的协议:POP3
MIME 在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等),使用 MIME 可在邮件中同时传送多种类型的数据。

电子邮件系统的组成结构

用户代理 UA (User Agent)

用户代理 UA 就是用户与电子邮件系统的接口,是电子邮件客户端软件。
用户代理的功能:撰写、显示、处理和通信。
foxmail
The bat
邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。
邮件服务器按照客户服务器方式工作。
邮件服务器需要使用发送和读取两个不同的协议。
一个邮件服务器既可以作为客户,也可以作为服务器。
当邮件服务器 A 向另一个邮件服务器 B 发送邮件时,
邮件服务器 A 就作为 SMTP 客户,
邮件服务器 B 是 SMTP 服务器。
当邮件服务器 A 从另一个邮件服务器 B 接收邮件时,
邮件服务器 A 就作为 SMTP 服务器,

邮件服务器 B 是 SMTP 客户。
TCP/IP 体系规定电子邮件地址的格式如下:
收件人邮箱名@邮箱所在主机的域名
符号“@”读作“at”,表示“在”的意思。

SMTP 协议与POP3 协议

SMTP 所规定的就是在两个相互通信的 SMTP 进程之间应如何交换信息。
由于 SMTP 使用客户服务器方式,因此负责发送邮件的 SMTP 进程就是 SMTP 客户,而负责接收邮件的 SMTP 进程就是 SMTP 服务器。
SMTP 规定了 14 条命令和 21 种应答信息。每条命令用 4 个字母组成,而每一种应答信息一般只有一行信息,由一个 3 位数字的代码开始,后面附上(也可不附上)很简单的文字说明。

SMTP 通信的三个阶段

1. 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP 不使用中间的邮件服务器。
2. 邮件传送
3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。
邮局协议 POP 是一个非常简单、但功能有限的邮件读取协议,现在使用的是它的第三个版本 POP3。
POP 也使用客户服务器的工作方式。
在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户所连接的 ISP 的邮件服务器中则运行 POP 服务器程序。
不要将邮件读取协议 POP 与邮件传送协议 SMTP 弄混。

发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用 SMTP 协议。
而 POP 协议则是用户从目的邮件服务器上读取邮件所使用的协议。

电子邮件格式与MIME

RFC 822 只规定了邮件内容中的首部(header)格式,而对邮件的主体(body)部分则让用户自由撰写。
邮件内容首部包括一些关键字,后面加上冒号。
最重要的关键字是:To 和 Subject。
SMTP 有以下缺点:
SMTP 不能传送可执行文件或其他的二进制对象。
SMTP 限于传送 7 位的 ASCII 码。许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。

MIME 概述

MIME 并没有改动 SMTP 或取代它。
MIME 的意图是继续使用目前的[RFC 822]格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。

MIME 主要包括三个部分

5 个新的邮件首部字段,它们可包含在[RFC 822]首部中。这些字段提供了有关邮件主体的信息。

定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

5 个新的邮件首部

MIME-Version: 标志 MIME 的版本。现在的版本号是 1.0。若无此行,则为英文文本。
Content-Description: 这是可读字符串,说明此邮件是什么。和邮件的主题差不多。
Content-Id: 邮件的唯一标识符。
Content-Transfer-Encoding: 在传送时邮件的主体是如何编码的。
Content-Type: 说明邮件的性质。

内容传送编码

最简单的编码就是 7 位 ASCII 码,而每行不能超过 1000 个字符。MIME 对这种由ASCII 码构成的邮件主体不进行任何转换。
另一种编码称为 quoted-printable,这种编码方法适用于当所传送的数据中只有少量的非 ASCII 码。
对于任意的二进制文件,可用 base64 编码。
内容类型
MIME 着标准规定 Content-Type 说明必须含有两个标识符,即内容类型(type)和子类型(subtype),中间用“/”分开。
MIME 标准定义了 7 个基本内容类型和 15 种子类型。

WWW

WWW 的概念与组成结构

万维网 WWW (World Wide Web) 是一个大规模的、联机式的信息储藏所。
万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。

万维网的工作方式

万维网以客户服务器方式工作。
浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。
客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。

万维网必须解决的问题

(1) 怎样标志分布在整个因特网上的万维网文档?
使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。
使每一个文档在整个因特网的范围内具有唯一的标识符 URL。

(2) 用何协议实现万维网上各种超链的链接?
在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。

(3) 怎样使各种万维网文档都能在互联网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?
超文本标记语言 HTML (HyperText Markup Language) 使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到互联网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
(4) 怎样使用户能够很方便地找到所需的信息?
为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。

HTTP 协议

从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,
是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

持续连接

HTTP/1.1 协议使用持续连接。
万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。
这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。
目前一些流行的浏览器的默认设置就是使用 HTTP/1.1。

持续连接的两种工作方式

非流水线方式:客户在收到前一个响应后才能发出下一个请求。这比非持续连接的两倍 RTT 的开销节省了建立 TCP 连接所需的一个 RTT 时间。
但服务器在发送完一个对象后,其 TCP 连接就处于空闲状态,浪费了服务器资源。
流水线方式:客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。
使用流水线方式时,客户访问所有的对象只需花费一个 RTT 时间,使 TCP 连接中的空闲时间减少,提高了下载文档效率。

HTTP 的报文结构

HTTP 有两类报文:
请求报文——从客户向服务器发送请求报文。
响应报文——从服务器到客户的回答。

报文由三个部分组成,即开始行、首部行和实体主体。
在请求报文中,开始行就是请求行。

HTTP 请求报文的一些方法

状态码都是三位数字

1xx 表示通知信息的,如请求收到了或正在进行处理。
2xx 表示成功,如接受或知道了。
3xx 表示重定向,表示要完成请求还必须采取进一步的行动。
4xx 表示客户的差错,如请求中有错误的语法或不能完成。
5xx 表示服务器的差错,如服务器失效无法完成请求。

Cookie

万维网站点使用 Cookie 来跟踪用户。
Cookie 表示在 HTTP 服务器和客户之间传递的状态信息。
使用 Cookie 的网站服务器为用户产生一个唯一的识别码。利用此识别码,网站就能够跟踪该用户在该网站的活动。


亲爱的读者:有时间可以点赞评论一下

点赞(0) 打赏

全部评论

还没有评论!
广告位-帮帮忙点下广告