因特网):Internet 译名(internet)
互联网由数量极大的各种计算机网络互连起来
互联网基本特点:连通性、共享
互联网 +:互联网 + 各个传统行业
internet(互连网):泛指网络(
第一章 概述
1.1 计算机网络在信息时代中的作用
常见网络类型:电信网络、计算机网络(核心)、有线电视网络
互联网(即
互连网之间的通信协议可任意选择,不一定是 TCP/IP)
Internet(互联网):全球最大的互连网(互联网采用 TCP/IP 协议族作为通信规则,前身是美国 ARPANET)
1.2 互联网概述
计算机网络:由多个结点和连接结点的链路组成(结点:计算机、集线器、交换机或路由器等)
互连网:网络之间通过路由器互连起来构成的网络
主机:与网络相连的计算机(网络把许多计算机连接在一起,互连网则把许多网络通过路由器连接在一起)
- 互联网基础结构的发展阶段
- 单个网络(ARPANET) —→ 互连网发展的过程
- 建成了三级结构的互联网(主干网、地区网、校园网/企业网)
- 形成了全球范围的多层次 ISP 结构的互联网(ISP:互联网服务提供商,即中国电信、中国联通、中国移动;现在互联网是多层次 ISP 结构)
多层次 ISP 结构种类:主干ISP、地区ISP、本地ISP
上网:接入到互联网(主机必须有 IP 地址才能上网)
ISP 从互联网管理机构申请IP 地址(同时要有通信线路及路由器等联网设备)
用户向 ISP 交纳费用获得所需 IP 地址使用权,就可以通过该 ISP 接入互联网
互联网由全球无数的 ISP 所共同拥有
万维网(WWW):基于互联网开发的一种信息共享服务(如浏览网址,邮件)
互联网标准化工作:所有互联网标准都以 RFC 文档的形式发表在互联网上(但很多 RFC 文档只有少部分是互联网标准)
1.3 互联网的组成
按工作方式分为:边缘部分和核心部分
- 边缘部分:由连接到互联网的主机组成(作用:进行信息处理)
- 主机(端系统):个人电脑、摄像头、手机等
- 计算机之间通信:边缘部分利用核心部分提供的服务进行通信。即计算机 A 上某个进程和计算机 B 上某个进程之间的通信
- 通信方式主要有两类:客户—服务器方式、对等方式(P2P)
- 核心部分:由大量网络和连接网络的路由器组成(作用:按存储转发方式进行分组交换,为边缘部分提供通信服务)
-
分组交换
概念:将报文分为多个数据段,每个数据段加上一个首部(头)构成一个分组(包)
主要组件:路由器(用来转发分组)
技术:存储转发技术(路由器收到分组后,先暂时存储,检查首部,查找转发表,然后按照首部中的目的地址,找到合适的接口转发给下一个路由器,这样一步步交付给最终的目的主机)
- 一个报文:发送的整块数据
- 首部:包含目的地址、源地址等控制信息
- 分组:在互联网中传送的数据单元
-
-
交换方式
电路交换:建立连接(占用通信资源)、通话(一直占用通信资源)、释放连接(归还通信资源)
- 缺点:通话的全部时间内始终占用端到端的通信资源
- 应用:电话(互联网数据因为其突发性,使用电路交换的话效率很低)
报文交换:整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下个结点
分组交换:单个分组传送
到相邻结点,存储下来后查找转发表,转发到下个结点
1.4 计算机在我国的发展
1.5 计算机网络的类别
-
类别(计算机网络支持传送数据和很多其他应用)
广域网WAN(互联网的核心部分)
城域网MAN(采用以太网技术,常并入局域网进行讨论)
局域网LAN(校园网)
个人区域网PAN(热点)
接入网AN:用来把用户接入到互联网的网络(不属于核心部分和边缘部分,位于端系统到互联网中首个路由器之间的一种网络,例如宽带接入网)
1.6 计算机网络的性能
-
速率
-
速率:数据传送速率
-
单位 bit/s (bps)
-
网络速率:额定速率/标称速率
-
-
带宽
-
某个信号具有的频带宽度(一个赫兹范围):某信道允许通过的信号频带范围(频域称谓)
-
带宽:网络中某通道传送数据的能力
-
网络带宽:单位时间内网络中的某信道所能通过的最高数据率,单位 bit/s(时域称谓)
-
-
吞吐量
- 吞吐量:单位时间内通过某个网络实际的数据量(经常用于对现实世界中网络的一种测量)
- 吞吐量受网络带宽或额定速率的限制
-
时延
-
时延:数据从网络一端传送到另一端的所需时间
-
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
高速链路(高带宽链路)相比其他提高了数据的发送速率,减小发送时延
光纤传输速率高(向光纤信道发送数据的速率高)
-
发送时延:发送时延 = 数据帧长度 / 发送速率
-
传播时延:传播时延=信道长度 / 电磁波在信道上的传输速率
-
处理时延:主机或路由器收到分组时要花费时间处理数据
-
排队时延:分组经过网络传输时要经过许多路由器,要在路由器中排队等待转发
-
-
时延带宽积
- 时延带宽积 = 传播时延 * 带宽(同时刻正在链路上传送的数据。只有链路中充满了比特时,链路才能得到充分利用)
-
往返时间
- 往返时间 RTT:有效数据率 = 数据长度 / ( 发送时间 + RTT )
- 往返时间包括:各中间结点的处理时延、排队时延、转发数据时的发送时延
- 使用卫星通信时,往返时间会较长(很重要的指标)
-
利用率
- **信道利用率:信道有百分之多少的时间是被利用的(**有数据通过)
- 网络利用率:全网络信道利用率的加权平均值
信道利用率并非越大越好,根据排队论,利用率增大时,信道引起的时延也会迅速增加
D0:网络空闲时的时延,网络当前时延 D 和利用率 U 的关系:D = D0 / (1 - U)
当利用率 U = 0.5 时,时延要加倍。利用率 → 1 时,时延 → ∞
计算机网络非性能特征:**费用、质量、标准化、可靠性、可扩展性和可升级性、易于管理和维护
1.7 计算机网络体系结构
- 两个计算机之间通信需要的工作:(相互通信的计算机系统必须高度协调工作才可完成通信)
- 发起通信的计算机必须激活数据通信的通路(探路)
- 告诉网络如何识别接收数据的计算机(识别)
- 发起通信的计算机必须查明对方计算机是否已开机,并且与网络连接正常(正常)
- 发起通信的计算机中的应用程序必须清楚,对方计算机中的文件管理程序是否已做好接收文件和存储文件的准备工作(准备)
- 若计算机的文件格式不兼容,至少其中一台计算机可以完成格式转换(格式)
- 若出现差错或意外事故,应有可靠的措施保证对方计算机最后收到正确文件(意外)
-
法律上国际标准的体系结构:OSI 七层协议
-
应用最广泛国际标准的体系结构: TCP/IP(互联网采用的 TCP/IP)
网络协议(协议):为进行网络中的数据交换而建立的规则、标准或约定(网络协议规定了网络中交换数据的格式和有关同步的问题)
-
协议组成
语法:数据与控制信息的结构/格式
语义:需发出何种控制信息,完成何种动作以及做出何种响应
同步:时间实现顺序的详细说明
-
网络协议分层的好处:
- 各层之间互相独立(只知道对方接口)
- 灵活性好(各层之间互不影响)
- 结构上可分割开
- 易于实现和维护
- 能促进标准化工作
-
各层需完成的工作包括以下一种或多种
- 差错控制(使通信更加可靠)
- 流量控制(发送端的发送速率必须使接收端来得及接受,不能太快)
- 分段和重装(发送端将数据分块,接收端还原)
- 复用和分用(发送端几个高层会话复用一条低层的连接,在接收端再进行分用)
- 连接建立和释放(交换数据前先建立一条逻辑连接,数据传送结束后再释放)
-
应用层
任务:通过应用进程间的交互来完成特定网络应用
协议:应用进程间通信和交互的规则(进程:主机中正在运行的程序)
协议包括:DNS、HTTP 协议、SMTP 协议等
应用层交互的数据单元:报文
-
运输层
任务:向两台主机进程之间的通信提供通用的数据传输服务(应用层利用该服务传输应用层报文)
功能:复用和分用(一台主机有多个进程,复用:多个应用层进程可同时使用下面运输层的功能)
协议:TCP(传输控制协议)、UDP(用户数据报协议)
- TCP:提供面向连接、可靠的数据传输服务(数据传输单位:报文段)
- UDP:提供无连接、尽最大努力的数据传输服务但不保证数据传输可靠性(数据传输单位:用户数据报)
-
网络层
任务:为分组交换网上的不同主机提供通信服务(选择合适的路由)
功能:发送数据时,网络层把运输层产生的报文段/用户数据报封装成分组/包进行传送
协议:TCP/IP 体系中,网络层使用 IP 协议(所以分组也叫 IP 数据报,与用户数据报不同,互联网使用无连接的网际协议 IP)
无论哪层的数据单元,都可用“分组”来表示
-
数据链路层
任务:将网络层交下来的 IP 数据报组装成帧,在两个相邻结点的链路上传送帧
每帧包括:数据和必要的控制信息(同步信息、地址信息、差错控制)
-
物理层
-
传输单位:比特
-
-
5层、4层、3层为数据加上了各自的控制信息,都位于首部
2层的控制信息有两部分加到了首部和尾部
协议数据单元:对等层次间的数据单位
在路由器中,分组上升到第3层,过程中每一层都根据控制信息进行必要的操作并将该控制信息剥去。在第三层根据首部中的目的地址查找路由器中的转发表,找出转发分组的接口,然后依次加上新的控制信息下降到第1层,将数据发送出去
理解:网际层的控制信息用于整个网络,而链路层的控制信息仅用于两个节点之间。路由器只到第3层
实体:可发送/可接收信息的硬件或软件进程
协议:控制两个对等实体间进行通信规则的集合
- 在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,需要下一层提供的服务
- 服务原语:上层使用下层提供的服务必须通过与下层交换一些命令
- 服务访问点:同一系统中相邻两层实体交互的地方(一个逻辑接口)
- 协议必须把所有不利条件都事先估计到,确保能应对所有异常情况
技术的发展不严格遵循分层概念,现在某些应用程序可以直接使用 IP 层甚至网络接口层
第二章 物理层
2.1 物理层的基本概念
物理层关注的是:如何在连接各种计算机的传输媒体上传输数据流
物理层任务:尽量屏蔽掉不同传输媒体和通信手段间的差异,使链路层感受不到此差异
- 物理层主要任务:确定与传输媒体接口有关的一些特性
- 机械特性:接口所用接线器的形状、尺寸等
- 电气特性:接口电缆的各条线上电压的范围
- 功能特性:电线上某电平的电压意义
- 过程特性:不同功能的各种可能事件的出现顺序
数据在计算机内部是并行传输,在通信线路上是串行传输,所以物理层还要完成传输方式的转换
物理层协议很多(因为物理连接的方式很多,传输媒体的种类也很多)
2.2 数据通信的基础知识
- 数据通信系统划分:源系统(发送端)、传输系统(传输网络)、目的系统(接收端)
- 源系统:包括源点和发送器(典型发送器:调制器)
- 目的系统:包括接收器和终点(典型接收器:解调器)
通信:传送消息
数据:运送消息的实体
信号:数据电气/电磁的表现
信号种类:模拟信号、数字信号
信道 ≠ 电路(信道:向某方向传送信息的媒体;一条通信电路包含:一条发送信道和接受信道)
- 通信方式(信息交互)基本方式
- 单向通信(单工通信):需要一条信道(如有线电播)
- 双向交替通信(半双工通信):需要两条信道
- 双向同时通信(全双工通信)1:需要两条信道
基带信号:信源的信号(因基带信号中包含较多低频成分,而许多信道不能传输低频分量和直流分量,所以需要对基带信号调制)
-
调制种类
基带调制(编码):将数字信号转换为另一种数字信号
带通调制:将基带信号的频率范围转换为另一频段,并化为模拟信号
-
常用编码方式
不归零制:正电平代表1,负电平代表0
归零制:正脉冲代表1,负脉冲代表0
曼彻斯特编码:位周期中心的向上跳变代表0,向下跳变代表1
差分曼彻斯特编码:位开始的边界有跳变代表0,没有代表1
曼彻斯特码的频率 > 不归零制,但有自同步能力,可从信号波形自身中提取信号时钟频率
-
基本带通调制方法
数字通信优点:信号在信道上传输时必失真(只要识别出原有信号,就没有影响)
失真与传输速率,距离,噪声成正比
-
信道能通过的频率范围
信道中码元传输的速率有上限,超过上限会出现严重的码间串扰问题,接收端无法识别编码
信道频带与能通过的高频分量,最大速率成正比
-
信噪比
概念:信号和噪声的平均功率之比(S/N)
单位:分贝(dB),信噪比(dB) = 10 * log10 (S/N) (dB)
S/N = 10 时,信噪比 = 10dB;S/N = 1000 时,信噪比 = 30dB
-
香农公式
信道的极限传输速率: C = W log(2+S/N)
-
W:带宽(Hz)
-
S:信号的平均功率
-
N:高斯噪声功率
极限传输速率与带宽,信噪比成正比
信息传输速率 < 信道的极限速率,就可以无差错传输
提高传输速率方法:通过编码让每个码元携带更多比特的信息
-
2.3 物理层下面的传输媒体
传输媒体种类:导引型、非导引型
-
导引型
-
传播介质:固体
-
传输媒体:架空明线,双绞线,同轴电缆,光纤
光纤的传输带宽 >> 其他传输媒体的带宽
-
-
非导引型传输媒体
- 传输介质:自由空间(即无线传输)
无线信道传输:运动中通信的唯一手段
- 短波通信:质量较差,速率较低
- 无限电微波通信:可传输电话、图像、数据
- 紫外线及更高波段:目前不能用于通信
- 卫星通信:距离远,但传播时延高,保密性差 </aside>
2.4 信道复用技术
信道复用:多个发送端使用同一条信道来传输信息
-
发送端:使用复用器将不同信息合起来传输
-
接收端:使用分用器将信息分开
-
复用种类
- 频分复用FDM:每个用户分配一个频带,通信中始终占用该频带(用户在同样时间占用不同频带)
- 时分复用TDM:将时间划分为等长的帧,每个用户在每个帧中占用其中一个固定序号的间隙(用户在不同时间占用同一频带,但信道利用率较低)
- 统计时分复用STDM(异步时分复用):改进的时分复用。STDM不是固定分配时隙,而是按需动态地分配时隙
- 波分复用WDM:光的频分复用。一根光纤上可以复用几十路甚至更多光载波信号。光信号传输一定距离后会衰减,需使用光纤放大器继续传输
- 码分复用CDM:不同用户使用不同码型,在同样时间使用同一频带通信
- 如:某个用户,00011011 表示比特1,11100100 表示比特0(其他用户的码片序列必须与此用户的序列相互正交)
- 码分复用:一种扩频通信(无线局域网)
2.5 数字传输系统
在传输质量和经济上,数字通信 > 模拟通信
长途干线主要传输媒体:光纤
SONET/SDH 标准:当前主要数字传输的国际标准(SONET—同步光纤网;SDH—同步数字序列)
2.6 宽带接入技术
用户连接到互联网,要先连接到某个 ISP,以便获得上网所需的 IP 地址
宽带接入网:一种用来把用户接入到互联网的网络
宽带接入种类:有线宽带接入、无线宽带接入
非对称数字用户线 ADSL 技术:用数字技术对现有的模拟电话用户线进行改造,使其能够承载宽带数字业务
标准模拟电话信号的频带:300~3400Hz(传统电话 < 4000Hz < 上网)
非对称:用户一般都是下载,ADSL 下行带宽(从 ISP 到用户)>> 上行带宽
-
ADSL优点:可利用现有的电话线
-
ADSL缺点:传输距离有限,不能保证固定数据率(ADSL 速率依赖于用户线的质量、长度、线径)
ADSL在用户线(铜线)两端各安装一个ADSL解调器(基于频分复用的 DMT 调制技术),将 4kHz 以上的频带划分为许多子信道(上行:25个子信道,下行:249个子信道)
类似 ADSL 还有许多其他 xDSL 技术,速度更快,但在国内应用较少
光纤同轴混合网(HFC网):基于有线电视网开发的一种宽带接入网
为提高传输的可靠性和质量,HFC 网将原有线电视网的同轴电缆主干部分更换为光纤
光纤从头端连接到光纤结点,在光纤结点处光信号 → 电信号(连接一个光纤结点的典型用户数:500)
光纤节点与头端的典型距离:25km,到用户的距离 < 3km
用户通过电缆调制解调器来使用 HFC 网(要解决共享信道中的冲突问题,所以它比 ADSL 解调器复杂)
使用 HFC 网数据率大小不确定 —— 取决于这段电缆上正在传送数据用户数(若很多人在用,每个人的速率会很慢)
光纤到户(FTTH):把光纤铺设到用户家庭(光纤进入用户家后把光信号 → 电信号,这样上网速率最快)
如今信号(包括ADSL 和 HFC)长距离传输使用:光缆
多用户通过光配线网共享一根光纤干线(光配线网:使用波分复用,上下行使用不同波长)
除光纤到户 FTTH 外,还有光纤到大楼 FTTB,光纤到楼层 FTTF 等,一般运行商所说的光纤到户并非真正的 FTTH
第三章 数据链路层
3.1 使用点对点信道的数据链路层
-
数据链路
组成:物理线路、通信协议
概念:将实现协议的软件和硬件加到链路上
-
网络适配器:包括硬件和软件来实现这些协议
-
一般适配器:包括数据链路层和物理层两层的功能
-
-
帧
数据链路层(点对点信道)的协议数据单元:帧
网络层的协议数据单元:IP数据报(分组)
-
数据链路层(点对点信道)通信时的主要步骤
- 结点A的数据链路层把网络层交下来的IP数据报加上首部和尾部封装成帧并发送给结点B
- 结点B对接收到的帧进行差错检验(无差错:从帧中提取出IP数据报上交给网络层;有差错:丢弃此帧)
- 数据链路层的基本问题
-
封装成帧
数据链路层的帧:IP 数据报加上首部和尾部(IP 数据报成为帧的数据部分)
MTU(最大传送单元):链路层协议规定了帧中数据部分的长度上限
首部和尾部包括:帧定界符(确定帧的界限)和其他控制信息
帧定界符包括:开始符(SOH)和结束符(EOT)(皆是一串8位二进制数字)
帧定界符作用:确定帧的界限(出现差错时可根据帧定界符识别是否为一个完整的帧)
-
透明传输
- 透明传输因控制字符产生
- 透明传输:无论传送什么数据,都按原样无差错地通过数据链路层
- 字节填充:因存在帧定界符,若传输数据中出现了和SOH、EOT等控制字符一样的文本,就在文本前面插入一个转义字符(ESC),接受端收到数据后在发送给网络层之前删除这个插入的转义字符。若转义字符也出现在数据中,就在它前面再插入一个转义字符
-
差错检测
-
比特差错:传输时产生差错(0变1 / 1变0)
-
误码率BER:传输错误占总传输的比率(减小误码率:提升信噪比)
差错检验方法:循环冗余检验CRC
-
循环冗余检验原理:
在要传输数据后加上 n 位冗余码(成为帧检验序列FCS)
冗余码:(数据×2ⁿ)÷P=R(余数)。若余数=0 说明正确,否则就错,丢弃此帧
循环冗余检验使用硬件完成,速度快
循环冗余检验是不可靠传输——只能识别比特差错,无法识别帧丢失、帧重复、帧失序
-
通信质量较差的无线传输链路,数据链路层协议使用帧编号、确认和重传机制(接收方收到正确帧后向发送方发送确认,若发送方没有收到即出错,需重传直到收到对方确认)
-
通信质量较好的有线传输链路,只进行CRC检验,不使用确认和重传机制(由上层协议来改正差错,不需要数据链路层向上提供可靠传输) </aside>
-
-
3.2 点对点协议PPP
目前点对点链路中应用最广泛的数据链路层协议:点对点协议 PPP
PPP协议:用户和 ISP 通信时使用的数据链路层协议
- PPP 协议应满足需求
- 简单(首要需求,互联网体系结构中最复杂部分在 TCP 协议中,网际协议 IP 和数据链路层协议都不是可靠传输)
- 封装成帧(PPP 协议规定使用特殊字符作为帧定界符)
- 透明传输
- 支持多种网络层协议(PPP 协议能够在同条物理链路上同时支持多种网络层协议)
- 支持多种类型链路(即串行/并行、同步/异步):如 PPPoE —— 以太网上运行的PPP,使用PPPoE协议,它将 PPP 帧封装到一个以太网帧中
- 差错检测(收到错帧就丢弃)
- MTU(MTU 是数据部分最大长度)
- 网络层地址协商(PPP 协议提供一种机制使通信的两个网络层实体能通过协商知道彼此的网络层地址)
- 数据压缩协商(PPP 协议提供一种方法来协商使用数据压缩算法)
TCP/IP 协议族中,可靠传输由 TCP 协议负责。PPP 不负责纠错(PPP 只支持点对点的链路通信和全双工链路)
-
PPP 协议组成
- 一个将 IP 数据报封装到串行链路的方法
- 一个用来建立、配置和测试数据链路连接的链路控制协议LCP
- 一套网络控制协议 NCP(其中每个协议支持不同的网络层协议)
-
PPP 各字段含义
PPP 的首部4个字段、尾部2个字段
-
首一和尾二都是**标志字段 F,**规定为 0x7E,标志着一个帧的开始或结束
两个连续帧之间只需一个 F,若连续出现两个标志字段,表示这是一个空帧,应丢弃
-
首二和首三目前没有实际含义
-
首四是 2 字节协议字段,表明信息部分的数据类型(可能是IP数据报/其他类型的数据)
-
尾一是帧检验序列 FCS
-
-
字节填充:PPP 使用异步传输时使用字节填充(转义符: 0x7D)
-
零比特填充:PPP 协议在 SONET/SDH 链路上使用同步传输,采用零比特填充来实现透明传输
零比特填充方法:信息字段中出现 5 个连续 1,立即填入一个 0,这样信息字段中就不会出现 6 个连续 1(PPP 帧定界符中有 6 个连续 1)
-
PPP 链路从建立到释放的全过程
用户拨号接入 ISP 后,就建立了从用户到 ISP 的物理连接。这时用户向 ISP 发送一系列的链路控制协议 LCP 分组,以便建立 LCP 连接。然后网络控制协议 NCP 给新接入的用户电脑分配一个临时的 IP 地址。等用户通信完毕后,NCP 释放网络层连接,收回分配的 IP 地址,然后 LCP 释放数据链路层连接,最后释放物理层连接
-
PPP 链路的状态变化
链路静止 → 链路建立 → 鉴别 → 网络层协议 → 链路打开 → 链路终止 → 链路静止
-
链路静止
-
链路建立:当个人电脑建立了到路由器的物理层连接后,PPP 进入链路建立状态,目的是建立链路层的 LCP 连接
通过发送 LCP 的配置请求帧(PPP 帧,协议字段为 LCP,信息字段是特定的配置请求)来协商配置选项,链路的另一端可以回复配置确认帧、配置否认帧或配置拒绝帧
-
鉴别:若鉴别身份失败就转到链路终止状态,若成功就进入网络层协议状态
-
网络层协议:这时 PPP 链路两端的网络控制协议 NCP 根据网络层的不同协议互相交换网络层特定的网络控制分组。PPP 链路的两端可以运行不同的网络层协议
-
链路打开:此时链路的两个 PPP 端点可以彼此发送分组
数据传输结束后链路的一端发送终止请求 LCP 帧终止链路连接,收到终止确认后转到链路终止状态
-
链路终止
-
链路静止
PPP 协议不是纯粹的数据链路层协议,还包含物理层和网络层的内容
-
3.3 使用广播信道的数据链路层
广播信道可以进行一对多的通信(例如:局域网)
局域网可以按照拓扑结构进行分类
- 局域网的最主要特点:网络为一个单位所拥有,且地理范围和站点数目有限
- 局域网的优点
- 具有广播功能(可以从某一站点访问全网,局域网主机可以共享连接在局域网上的各种硬件和软件资源)
- 便于系统的扩张和逐渐演变
- 提高了系统的可靠性、可用性、生存性
- 局域网中的主流传输媒体:双绞线
- 实现共享信道有两种方法
- 静态划分信道:(如频分复用、时分复用、码分复用),但不适合局域网
- 动态媒体接入控制(多点接入):信道并非在用户通信时固定分配给用户
- 随机接入:用户可以随机发送消息。但两个用户同时发送,在共享媒体上就会产生碰撞,发送失败。这时就需要解决碰撞的网络协议( CSMA/CD 协议)
- 受控接入:用户不能随机发送信息,必须服从一定的控制
以太网是局域网的一种,绝大多数局域网都是以太网
以太网主要应用:随机接入
由于历史原因以太网层被拆分为两个子层:逻辑链路控制 LLC 和媒体接入控制 MAC(现在 LLC 已经消失,主要是 MAC 协议)
适配器(网卡)作用:用于计算机与外界局域网的连接
-
适配器重要功能:进行数据串行/并行传输的转换
- 适配器与局域网通信通过电缆/双绞线传输(串行)
- 适配器与计算机通信通过 I/O 总线传输(并行)
适配器实现的功能包含了数据链路层和物理层两层的功能
适配器收到正确帧后,中断并通知计算机,再把数据交付给协议栈中的网络层
计算机发送 IP 数据报时,协议栈把分组交给适配器,适配器将其组装成帧后发送到局域网
(封装成帧、透明传输、差错检错等功能都是由适配器完成的)
硬件地址存储在:适配器中
软件地址(IP)存储在:计算机中
工作站/站点(局域网上的计算机)
-
为通信简便,以太网采取的措施
- 无连接:较灵活,不建立连接就可发送数据(适配器对发送的数据帧不编号,不要求对方确认,尽最大努力交付(不可靠交付),有差错帧是否重传由高层决定)
- 同一时间只能有一台计算机发送数据,若发生冲突,使用 CSMA/CD 协议来协调
- 以太网发送数据使用:曼彻斯特编码
- 无连接:较灵活,不建立连接就可发送数据(适配器对发送的数据帧不编号,不要求对方确认,尽最大努力交付(不可靠交付),有差错帧是否重传由高层决定)
-
CSMA/CD 协议要点
- 多点接入:总线型网络,许多计算机以多点接入的方式连接在一根总线上(协议实质:载波监听和碰撞检测)
- 载波监听:使用电子技术检测信道上有无其他计算机也在发送(不管是发送前还是发送中,每个站都要不停地检测信道)
- 碰撞检测:边发送边监听(若几个站同时发送数据,总线上信号电压变化会增大——发生碰撞,立即停止发送)
-
半双工通信(双向交替通信):使用 CSMA/CD 协议时,不能同时发送和接收
-
碰撞
发生碰撞原因:传播时延(A 发送了数据但没传到 B 处,B 就不知道有人发送了数据)
当 A 和 B 同时发送数据产生碰撞后,他们发送数据都失败,都要推迟一段时间重新发送
发送的不确定性:不知道是否会发生碰撞
A 发送数据后最多 2θ 时间就知道是否碰撞,这 2θ 时间称为**争用期(**若经过争用期还没碰撞,表明发送成功)
若发生碰撞,以太网使用截断二指数退避算法来确定碰撞后重传的时机
以太网规定了争用期的时长,所以以太网的地理范围不能太大,不然传播时延会超过争用期限制
无效帧:信道上长度 < 64 字节的帧【以太网规定最短帧长为 64 字节(一个争用期可以发送的字节数),若争用期发生碰撞就会停止发送】
碰撞后除了立即停止发送数据外还要继续发送一个人为干扰信号,通知所有用户发生了碰撞
以太网还规定了帧间最小间隔 96 比特时间,这是为了使刚收到数据帧的栈清理缓存,准备接收下一帧
-
CSMA/CD 协议要点归纳
-
准备发送:适配器从网络层获得一个分组,加上首部和尾部组成以太网帧,放入适配器缓存中(在发送前先检测信道)
-
检测信道:若检测到信道忙,则不停检测直到信道空闲。若检测到空闲,并在 96 比特时间内保持空闲(保证帧间最小间隔),就发送此帧
发送过程中仍不停检测(适配器要边发送边监听)这时有两种情况
-
发送成功:争用期内未检测到碰撞。发送成功后回到 1
-
发送失败:争用期内检测到碰撞,立即停止发送,并按规定发送人为干扰信号。适配器接着执行指数退避算法,等待足够时间后回到 2
重传 16 次仍不成功,即停止重传并向上报错
-
以太网发送完一帧后要把已发送帧保留下来。若争用期检测到碰撞,推迟一段时间后还要重传
-
如今以太网采用星形拓扑,在星形中心使用可靠性极高的集线器。每站用两对双绞线(用于发送和接收)
- 集线器特点
-
表面上使用集线器的局域网:物理上是一个星形网,逻辑上仍是一个总线网(各站共享逻辑上的总线,还是使用 CSMA/CD 协议)
-
一个集线器有很多接口(像一个多接口的转发器)
-
集线器在物理层工作,每个接口仅负责转发比特,不进行碰撞检测
-
发生碰撞会浪费信道资源,故以太网的信道利用率 < 100%
提高信道利用率:减少端到端的传播时延(以太网连线长度不能太长,以太网帧长不能太短)
MAC 地址:局域网中的硬件地址
IEEE:局域网规定的一种 6 字节全球地址,局域网上每台计算机中固化在适配器中的地址(若更换新适配器,硬件地址也会改变)
计算机硬件地址:适配器上的标识符 EUI-48
路由器通过适配器连接到局域网时,适配器上硬件地址标志路由器的一个接口。若路由器同时连到多个网络,就需要多个适配器有多个硬件地址
- 局域网中适配器收到帧的种类(适配器至少能够识别前两种帧)
- 单播帧(一对一):收到帧的 MAC 地址 = 本站地址
- 多播帧(一对多)
- 广播帧(一对全体)
最常用的 MAC 帧格式:以太网V2标准(还有 IEEE 802.3 标准)
-
MAC 帧首部:源地址字段、目的地址字段、用来标识上层使用什么协议的类型字段
-
尾部:一个帧检验序列FCS
MAC 帧没有帧定界符和帧长度字段(用的是曼彻斯特码),曼彻斯特码码元中间有一个电压跳变。发送方发完一个帧后就不发送码元了,接收方发现没有跳变就知道帧已结束
MAC 帧向下传送到物理层时要在帧前插入 8 字节,包括一个前同步码和一个帧开始定界符(前同步码用来通知接收端调整时钟频率以与发送端的时钟同步)
MAC 帧最小长度:64 字节,其中数据字段最小长度:46 字节(若不够就要进行填充。IP数据报首部有一个”总长度“字段,网络层根据它来识别填充字段的长度并丢弃掉)
混杂方式:以太网适配器的一种特殊工作方式(混杂方式的适配器只要”听到“有帧在传输就悄悄接收下来)
应用:可监视和分析以太网上的流量(黑客用混杂方式非法获取信息)
3.4 扩展的以太网
有时会对以太网的范围进行扩展(此扩展的以太网在网络层看来仍是一个网络)
-
在物理层扩展以太网
由于 CSMA/CD 协议限制,以太网主机之间距离不能太远
可使用光纤来扩展主机和集线器之间的距离(光纤时延小带宽宽,所以主机和集线器距离可扩展到几千米)
可将多个以太网通过主干集线器连接起来形成一个更大的以太网
-
多个以太网通过连接进行扩展后的
优点:可实现不同以太网间的通信,且扩大了地理范围
缺点:碰撞域会增大,发送数据产生碰撞的概率增加
-
-
在数据链路层扩展以太网
扩展以太网更多在数据链路层扩展
以太网通过以太网交换机(第二层交换机)在数据链路层进行扩展
-
以太网交换机特点
- 实际上是一个多接口网桥,每个接口直接与一台主机/另一个交换机相连,工作方式一般为全双工
- 并行性,可同时连接多对接口,使多对主机同时通信。相互通信的主机独占传输媒体,无碰撞传输数据
- 一种即插即用设备,内部的帧交换表(地址表)通过自学算法自动建立起来
-
以太网交换机最大优点
并行性,多对主机同时通信不会平分总带宽,每对主机独占其传输媒体带宽,所以每对主机带宽还是原带宽
共享式以太网:传统10Mbit/s (如 10 个用户,每个用户平均带宽为 1Mbit/s)
以太网交换机连接(10 个用户的带宽都是 10Mbit/s,相当于总带宽 100Mbit/s)
-
-
以太网交换机拥有自学习功能,实现自学习的关键点
- 若有主机发送数据,就把该主机MAC地址与对应接口存入交换表
- 若交换表中找不到数据接收方的对应接口,就对所有接口进行广播
对接口连接的主机和主机的网络适配器可能改变,所以交换表中每个项目都有有效时间,时间一过就会删除
-
从总线以太网 → 星形以太网
总线以太网使用: CSMA/CD 协议(半双工方式)
以太网交换机不使用共享总线,没有碰撞问题,因此不使用 CSMA/CD 协议,而是全双工方式工作
虚拟局域网 VLAN的实现:使用以太网交换机实现
虚拟局域网 VLAN:由一些局域网网段构成的与物理位置无关的逻辑组(这些网段具有某些共同的需求)
每个 VLAN 的帧都有一个明确的标识符,指明发送此帧的计算机属于哪个 VLAN
- 虚拟局域网是局域网给用户提供的一种服务,非新型局域网
每一个 VLAN 的计算机可以处于不同的局域网中
3.5 高速以太网
如今以太网速率从 10Mbits/s 发展到了 1Gbit/s (吉比特以太网)
- 100BASE-T 以太网
- 100BASE-T (快速以太网):双绞线上传送 100Mbit/s 基带信号的星形拓扑以太网(CSMA/CD 协议)
- 100BASE-T 可使用以太网交换机(工作时是全双工状态),不用 CSMA/CD 协议
- MAC 帧格式:IEEE802.3 标准规定的帧格式
- 吉比特以太网
- 吉比特以太网特点
- 允许在 1Gbit/s 下以全双工和半双工两种方式工作
- 使用 IEEE 802.3 协议规定的帧格式
- 在半双工方式下使用 CSMA/CD 协议,在全双工方式不使用
- 与 10BASE-T 和 100BASE-T 向后兼容
- 吉比特以太网半双工时(采用**“载波延伸”**方法),延长争用期与发送的 MAC 帧最小长度到 512 字节(发送短帧时需进行大量填充造成了额外开销)
- 还增加了**“分组突发”**功能,当很多短帧要发送时,首个短帧采用载波延伸的方法进行填充,后面的则一个接一个地发送而不需填充
- 吉比特以太网特点
- 10吉比特以太网和更快的以太网
-
10GE 的帧格式与 10Mbit/s, 100Mbit/s 和 1Gbit/s 的帧格式完全相同,最小帧长和最大帧长也相同
-
10GE 只以全双工方式工作,不使用 CSMA/CD 协议,这使其传输距离极大提高
-
以太网技术发展很快,10GE 后又制定了 40GE 和 100GE 标准,他们都以全双工方式工作。传输距离可达几十千米
-
如今以太网工作范围已扩大到城域网和广域网,其优点
-
技术成熟
-
互操作性好
-
价格便宜(广域网中使用以太网时价格 < 同步光纤网SONET)
-
端到端的以太网连接使帧的格式全是以太网格式,不需进行帧格式转换
-
-
以太网优点
-
可扩展(从 10Mbit/s 到 10 Gbit/s)
-
灵活(多种媒体、全/半双工,共享/交换)
-
易于安装
-
稳健性好
-
-
- 使用以太网进行宽带接入
第四章 网络层
4.1 网络层提供的两种服务
面向连接:打电话的传统电信网,先建立连接预留网络资源(建立一条虚电路),再传送信息(提供可靠传输的服务)
无连接:互联网发送分组时不建立连接
网络层向上只提供简单灵活、无连接、尽最大努力交付的数据报服务(这样使造价降低,运行灵活)
4.2 网际协议IP
IP 数据报首部包括:固定长度(前面,共 20 字节)、可选字段(后面,长度可变)
-
IP 数据报首部固定部分的各字段
-
版本(占 4 位):通信双方 IP 协议版本必须一致
-
首部长度(占 4 位):最大值 15,首部最大长度 15*4=60 字节
首部长度必须是 4 字节整数倍。因此可选字段后还有一个填充字段
-
标志(占 3 位):最低位为 1 表示后面还有分片,为 0 表示这是最后一个分片
中间位为 1 表示不能分片,为 0 表示可分片。首位没有含义
-
区分服务(占 8 位):一般不用,使用区分服务 DiffServ 时此字段才有意义
根据字段数值提供不同等级的服务质量
-
总长度(占 16 位):最大值 65535,首部和数据部分的长度和,单位:字节。
IP 数据报长度受 MAC 帧最大长度限制,因此不能太大
若长度过长需进行分片。分片后总长度:该分片的首部长度和数据长度之和
-
标识(占 16 位):同数据报的不同分片标识相同
因此接收方能根据标识将不同分片重装为原数据报
-
片偏移(占 13 位):较长的分组分片后,某片在原分组的相对位置
单位:8 字节,故每个分片的长度是 8 字节的整数倍
-
生存时间(占 8 位):数据报在网络中的寿命。单位:跳数
数据报在互联网中至多可经过多少个路由器
-
协议(占 8 位):数据报携带的数据使用的哪种协议
-
首部检验和(占 16 位):此字段只检验首部,不包括数据部分
数据报每经过一个路由器,路由器就要重新计算首部检验和
-
源地址(占 32 位)
-
目的地址(占 32 位)
-
IP 数据报首部长度可变,具有多种功能,但很少使用。IPv6 已把此部分做成固定长度
IP 地址:给互联网上每台主机/路由器的每个接口分配一个全世界唯一的 32 位标识符
-
IP 地址编址方法的经历阶段
-
分类的 IP 地址
-
子网的划分
-
构成超网
-
此 IP 是 IP 协议的第 4 个版本,即 IPv4。最新的为 IPv6
-
与 IP 协议配套的协议
-
地址解析协议(ARP)
-
网际控制报文协议(ICMP)
-
网际组管理协议(IGMP)
-
虚拟互连网络:不同网络的区别很大,没有一种单一的网络能够适应所有用户的需求。因此需要通过一些中间设备将网络连接起来
-
中间设备种类
-
转发器(物理层使用)
-
网桥/桥接器(数据链路层使用)
-
路由器(网络层使用)
-
网关(网络层以上使用)
物理层使用转发器/数据链路层使用网桥时,仅扩大网络;从网络层看,这仍是一个网络,非网络互连
-
网络互连:在网络层通过路由器实现
虚拟互连网络(IP 网):使用 IP 协议的网络互连后,不同网络在物理层面的网络层如同一个统一的网络
如今互联网使用 IP/TCP 协议
- 分类 IP 地址:IP 地址划分为多个固定类,每类地址由两个固定长度的字段组成
- 网络号:主机所连接到的网络(唯一)
- 主机号:该主机/路由器(唯一)
IP 地址:{<网络号>,<主机号>} —— 所在网络和主机接口
-
分类 IP 地址种类
- A 、B 、C 类(单播地址,最常用)
- D 类(多播,一对多通信)
- E 类(保留为以后用)
分类原因:不同网络间的差异性,有的网络主机多,有的少
如今广泛使用无分类 IP 地址进行路由选择(分类的地址已成为历史)
IP 地址( 4 字节共 32 位字符),采用点分十进制法:电脑上显示的每个字节转化为 10 进制后的结果
-
IP 地址特点
- 由网络号和主机号组成,是一种分等级的地址结构
- IP 地址管理机构在分配 IP 地址时只分配网络号,主机号由得到网络号的单位内部自行分配
- 路由器根据目的主机所连接的网络号来转发分组(不考虑主机号)——使路由表中的项目数、路由表的存储空间和查找时间减小
- 一台主机/路由器和一条链路的接口。若一台主机同时连接两个网络,它就有两个 IP 地址
- 每个路由器至少连接两个网络,所以一个路由器至少有两个不同的 IP 地址
- 互联网中,一个网络:指具有相同网络号的主机集合。所以用转发器/网桥连接起来的若干局域网仍是一个网络
- IP 地址中,所有分配到网络号的网络皆平等(不管它范围的大小)
- 由网络号和主机号组成,是一种分等级的地址结构
-
硬件地址(物理地址、MAC地址):数据链路层和物理层使用的地址
(如 MAC帧传送时使用的源地址和目的地址,放在 MAC 帧的首部)
-
IP 地址:网络层即以上层使用的地址(逻辑地址)**,**放在 IP 数据报的首部
三个局域网通过两个路由器连接在一起,主机 H1 要与主机 H2 通信
三个局域网通过两个路由器连接在一起,主机 H1 要与主机 H2 通信
- 注意
-
在 IP 层抽象的互联网上只能看到 IP 数据报。虽然信息要经过路由器 R1 和 R2 的转发,但 IP 报首部中的源地址和目的地址始终是 IP1 和 IP2
-
虽然 IP 数据报首部有源地址,路由器只根据目的站 IP 地址的网络号进行选择
-
在局域网的链路层,只能看见 MAC 帧,IP 数据报被封装在 MAC帧 里面
MAC 帧在不同网络上传送时,MAC 帧首部中的源地址和目的地址发生变化
-
IP 层抽象的互联网屏蔽了下层复杂细节
只要在网络层上,就可使用统一、抽象的 IP 地址来研究主机和主机间的通信
-
路由器同时连在两个局域网上,所以有两个硬件地址
网络层用 IP 地址,但实际网络链路上传送数据帧用硬件地址。数据传到不同网络时,MAC 帧中的硬件地址还会发生改变
-
地址解析协议(ARP):从网络层的 IP 地址解析出数据链路层的硬件地址
每台主机都有一个 ARP 高速缓存**(本局域网上的各主机和路由器的** IP 地址到硬件地址的映射表)
主机的硬件地址可能发生改变,因此该映射表会时常更新(映射表中的每个项目都有生存时间,超过生存时间项目会被删掉)
-
当主机 A 向本局域网上的主机 B 发送 IP 数据报时的两种情况
- A 的 ARP 高速缓存映射表中有 B 的 IP 地址 —— 把对应的硬件地址写入 MAC 帧,再通过局域网把该 MAC 帧发给此硬件地址
- A 的 ARP 高速缓存映射表中无 B 的 IP 地址。找出 B 的硬件地址:
- A 自动运行 ARP 进程,ARP 进程在本局域网上广播发送一个 ARP 请求分组(指明自己 IP 地址、硬件地址,和 B 的 IP 地址)
- 本局域网上所有主机运行的 ARP 进程都受到 ARP 请求分组
- B 的 IP 地址与 ARP 请求分组中要查询的 IP 地址一致,收下分组,并向 A 发送响应分组,在其中写入自己的硬件地址。其他主机则不作响应
- A 收到 B 的响应分组后,把 B 的 IP 地址到硬件地址的映射写入 ARP 高速缓存中
ARP 解决:同局域网上主机/路由器的 IP 地址到硬件地址的映射问题(无法解析其它局域网上主机的硬件地址)
-
使用 ARP 的四种典型情况
-
发送方是主机,将 IP 报发到同网络上的另一台主机
如 H1 → H2,H1 发送 ARP 请求分组(在网 1 上广播)找到 H2 的硬件地址
-
发送方是主机,将IP 报发到另一个网络上的某台主机
如 H1 → H3,H1 发送 ARP 请求分组(在网 1 上广播)找到网 1 上路由器 R1 的硬件地址。剩下由 R1 完成
-
发送方是路由器,将IP 报转发到与它连接在同网络上的主机
如 R1 → H2,R1 发送 ARP 请求分组(在网 2 上广播)找到主机 H3 的硬件地址
-
发送方是路由器,将IP 报转发到另一个网络上的一台主机
如 R1 → H3,R1 发送 ARP 请求分组(在网 2 上广播)找到本网络上另一个路由器的硬件地址
-
总结:当发送方与接收方不在同网络时,要通过同时位于两个/更多个网络上的路由器来中转(ARP 协议用于每个局域网内部的地址解析)
IP层转发分组的流程
路由器的路由表中存储目的网络地址和对应下一跳地址(不直接存储主机地址)
路由表中没有指明完整的网络路径(要想到达某个网络,需先到某个路由器。一跳一跳直到最后到达目的网络)
- 分组转发算法
- 从数据报首部提取出目的主机 IP 地址 D,得出目的网络地址 N
- 若 N 与此路由器直接相连,就直接交付(直接把数据报交付目的主机);否则就间接交付,执行 3
- 若路由表中有目的地址 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器。否则执行 4
- 若路由表中有到达网络 N 的路由,则把数据报传送给路由表所指明的下一跳路由器,否则执行 5
- 若路由表有一个默认路由,则把数据报传送给路由表所指明的默认路由器,否则执行 6
- 报告转发分组出错
4.3 划分子网和构造超网
-
划分子网
之前是两级 IP 地址,缺点多。后在 IP 地址中增加了一个子网号字段,将 IP 地址分为了三级
划分子网是把 IP 地址主机号再划分,未改变网络号
-
子网掩码
划分子网后,IP 数据报首部无法体现是否进行了划分。需使用子网掩码
如今互联网规定所有网络都必须使用子网掩码(路由器路由表中也必须有子网掩码一栏)
路由器和相邻路由器交换信息时,必须把自己所在子网的子网掩码告诉对方
使用子网划分后,路由表中必须包含:目的网络地址、子网掩码和下一跳地址
- 使用子网时分组后的转发算法
-
从数据报首部提取出目的主机的 IP 地址 D
-
判断是否为直接交付。对路由器直接相连的网络逐个检查:用各网络的子网掩码逐个与 D 按位相与,看结果是否和相应的网络地址匹配
若匹配,就直接交付;否则为间接交付,执行 3
-
若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器。否则执行 4
-
对路由表中的每行,用其中的子网掩码和 D 逐位相与,若结果与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器,否则执行 5
-
若路由表有一个默认路由,则把数据报传送给路由表所指明的默认路由器,否则执行 6
-
报告转发分组出错
-
无分类编址(无分类域间路由选择 CIDR、构造超网)
- CIDR 主要特点
-
消除传统 A,B,C 类地址和划分子网的概念,它把 32 位的 IP 地址分为前后两部分
“前缀”:指明网络,后面:指明主机(因此它使用两级编址 —— 无分类)
-
把前缀相同的连续 IP 地址组成一个 CIDR 地址块,只要知道该地址块中任一个地址,就可知道地址块起始地址、最大地址、地址块地址数
-
32 位地址掩码,前缀长度:地址掩码中 1 的个数(前缀越短,地址块包含的地址数越多)
-
更有效地分配地址空间
-
CIDR 中,路由表的每个项目由网络前缀和下一跳地址组成,查找时可能得到不止一个匹配结果。这是从匹配结果中选择具有最长网络前缀的路由(因为它对应的地址块最小)
-
使用二叉线索从查找路由表
无分类编址的路由表通常存放在一个二叉线索树中
给定一个 IP 地址,查找它是否在该项目表中,只需在二叉线索树中一层层对应向下寻找,若中间无法在二叉树中找到对应分支,表明此地址不在此二叉线索中
5 个 IP 地址的路由表(树的每层对应 IP 地址中的一位,树最多有 32 层)
4.4 网际控制报文协议ICMP
网际控制报文协议 ICMP 用途:更有效地转发 IP 数据报和提高交付成功的机会
ICMP 报文装在 IP 数据报中(作为其中的数据部分)
ICMP 报文首部共 8 个字节
检验和字段:检验整个 ICMP 报文
ICMP报文的种类: ICMP 差错报告报文、ICMP 询问报文
-
常用的 ICMP 差错报告报文
-
终点不可达:路由器/主机不能交付数据报时就向源点发送此报文
-
时间超过:路由器收到生存时间为 0 的报文时,丢弃此数据并向源点发送此报文
终点在约定时间内未收到一个数据报的全部分片时,丢弃已收到的所有分片并向源点发送此报文
-
参数问题:路由器/目的主机收到的数据报首部中某字段值不正确时,丢弃此数据报并发送此报文
-
改变路由(重定向):路由器把此报文发送给主机,告诉主机下次将数据报发给另外的路由器
-
-
常用的 ICMP 询问报文
- 回送请求报文和回答报文**:**主机/路由器向一个特定目的主机发出的询问(收到此报文的主机必须给源主机发送 ICMP 回送回答报文)
- 时间戳请求报文和回答报文:请某台主机/路由器回答当前日期和时间(通过它可进行时钟同步和时间测量)
-
ICMP 差错报告报文的数据字段是固定格式
ICMP 报文的数据部分:差错报告的 IP 数据报首部和数据字段前 8 个字节(为了得到运输层的端口号和运输层报文的发送序号)
-
ICMP的应用
-
PING
重要应用:分组网间探测 PING(测试两台主机之间的连通性)
PING 使用 ICMP 回送请求和回送回答报文(连发 4 条回送请求报文)
PING 是应用层直接使用 ICMP 的例子,未经过运输层
ping www.baidu.com; //测试与百度之间的连通性
ping 192.168.10.101; //测试与 IP 为 192.168.10.101 之间的连通性
使用方法:在 Windows Dos 窗口中键入 ping hostname 即可测试本机与主机 hostname 的连通性(hostname 是某主机的 IP 地址/域名)
-
tracert
tracert 用途:用来跟踪一个分组从源点到终点的路径
tracert 概念:源主机向目的主机发送一连串的 IP 数据报(数据报中封装的是无法交付的 UDP 用户数据报)
这些数据报中,首个数据报的生存时间 TTL 设为 1,后面依次增长。当第 i 个数据报到达路径上的第 i 个路由器,其 TTL 也减到 0,此时该路由器就会发送 ICMP 时间超过差错报告报文给源主机。由此就可获得到达目的主机所经过的所有路由器 IP 地址,以及到达每个路由器的往返时间
使用方法:在 Windows 的 Dos 窗口中键入 tracert hostname 即可测试本机到主机 hostname 所经过的路由器
-
4.5 互联网的路由选择协议
-
路由选择协议核心:采用何种算法来获得路由表中的各项目
-
路由选择算法种类:静态路由选择策略、动态路由选择策略
动态的可较好地使用网络状态的变化,但实现起来较复杂,适用于大网络(互联网主要采用动态的、分层次的路由选择协议)
-
分层次的路由选择协议
互联网被划分为许多小的自治系统(AS),一个 AS 是在单一技术管理下的一组路由器,一个 AS 对另一个 AS 表现出的是一个单一的和一致的路由选择策略
目前互联网中,一个大的 ISP 就是一个 AS。也可进一步划分
-
路由选择协议种类
- 内部网关协议 IGP:如 RIP 和 OSPF 协议,是在 AS 内部使用的路由选择协议(每个 AS 自己决定内部使用哪种 IGP)
- 外部网关协议 EGP:如 BGP-4 协议,用在两个不同的 AS 之间的路由选择协议(每个 AS 中位于与其他 AS 交界处的路由器可使用 IGP 和 EGP)
-
内部网关协议RIP
- 分布式基于距离向量的路由选择协议(最大优点:简单)
RIP 协议要求每个路由器都要维护自己到其他每个目的网络的距离记录。距离单位:跳数(RIP 选择一条具有最少路由器的路径)
RIP 允许一条路径最多有 15 个路由器,因此 RIP 只适用于小型互联网
RIP 和 OSPF 同为分布式路由选择协议(特点:每个路由器不断地和其他路由器交换路由信息)
- RIP 特点
- 仅和相邻路由器交换信息
- 交换的信息:当前本路由器知道的所有信息(即自己的路由表)
- 按固定时间间隔交换路由信息(如 30s)
路由器开始是空路由表,通过不断和与它相连的路由器交换并更新信息,所有路由表就会知道到达本自治系统中任何网络的最短距离和下一跳路由器的地址
路由表中最主要的信息:到某个网络的最短距离和下一跳地址
-
内部网关协议OSPF
- 分布式的链路状态协议(适用于大型互联网)
OSPF 只在链路状态发生变化时,才向本自治系统中所有路由器用洪泛法发送与本路由器相邻所有路由器的链路状态信息
链路状态指明本路由器和哪些路由器相邻,以及该链路的度量(费用、距离、时延、带宽等),所有路由器最终都能建立一个全网的拓扑结构图
-
外部网关协议BGP
- BGP-4 的简写。BGP 是不同 AS 的路由器之间交换路由信息的协议(一种路径向量路由选择协议)
BGP 主寻一条能到达目的网络**(可达)且比较好的路由(不兜圈子)**,而非寻找最佳路由
路由器的构成
4.6 IPv6
IPv4 的地址已经耗尽
IPv6目前未推出标准协议
IPv6 将协议数据单元 PDU 称为分组(非 IP 数据报)
- IPv6 的主要变化
- 更大的地址空间(地址位数增大到 128 位)
- 扩展的地址层次结构(地址空间很大,可以划分更多层)
- 灵活的首部格式(IPv6 和 IPv4 首部不兼容)
- 改进的选项(IPv6 首部长度是固定的,把选项放在了有效载荷中)
- 允许协议继续扩充
- 支持自动配置(即不需要 DHCP 协议)
- 支持资源的预分配
- 首部改为 8 字节对齐(即首部长度应为 8 字节的整数倍)
IPv6 数据报分为基本首部和有效载荷(有效载荷中允许有 0 个/多个扩展首部。注意扩展首部不属于首部)
-
IPv6 的首部包括
-
版本
-
下一个首部
-
通信量类
-
跳数限制(等同于 TTL)
-
流标号
-
源地址
-
有效载荷长度
-
目的地址
-
-
IPv6 数据报的目的地址
- 单播(点对点通信)
- 多播(一点对多点通信)
- 任播(任播的终点是一组计算机,但数据报只交付其中一个,且最近的一个)
IPv6 地址: 128 位,采用冒号十六进制计法:每 16 位用 16 进制表示并用冒号隔开,共分 8 段,每段是一个 ≤ 4 位的 16进制数
-
IPv4 向 IPv6 过渡的策略
-
双协议栈
使一部分主机/路由器装有双协议栈:一个 IPv4 和一个 IPv6(当它与 IPv6 主机通信时使用 IPv6 地址,与 IPv4 主机通信时使用 IPv4 地址)
双协议栈使用域名系统 DNS 来查询目的主机使用哪种地址
-
隧道技术
当源主机和目的主机都采用 IPv6 时,中间经过的网络可能是 IPv4 网络
在 IPv6 数据报要进入 IPv4 网络时,把 IPv6 数据报作为数据部分封装到 IPv4 数据报中,等离开 IPv4 网络后在把数据部分取出来
-
ICMPv6 是应用于 IPv6 的 ICMP 协议版本,比 ICMPv4 复杂,地址解析协议 ARP 和网际组管理协议 IGMP 的功能都合并到了 ICMPv6 中
ICMPv6 是面向报文的协议,利用报文来报告差错、获取信息
4.7 IP多播
- 一对多通信中,多播比单播节省更多资源
- 局域网具有硬件多播功能(不需要复制分组就能使所有多播组成员收到分组)
- IP 多播所传送的分组需要使用多播 IP 地址(传统 IP 地址中 D 类地址就是多播地址,每个 D 类地址可以标识一个多播组)
- 多台主机可加入到一个多播组中共享一个多播地址。不同网络的主机可加入到同个多播组中。每台主机可随时加入/离开一个多播组
多播路由器:能够运行多播协议的路由器
多播地址只用于目的地址,不能用于源地址
- IP 多播种类
- 在本局域网上硬件多播
- 在互联网范围内多播
多播 IP 地址与以太网硬件地址之间有映射关系,但不一一对应。收到多播数据报的主机需要在 IP 层进行过滤
-
IGMP(网际组管理协议):让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出某个多播组(IGMP 工作在单个本地局域网内部)
主机随时可能加入/退出某个多播组。并发送多播数据报的主机可位于多播组内,也可不位于多播组内。所以 IP 多播很复杂
- IGMP 协议的工作内容
- 某台主机加入某个多播组时,该主机向多播组的多播地址发送一个 IGMP 报文,声明自己成为该组成员。本地多播路由器收到 IGMP 报文后转发给其他多播路由器
- 组成员关系是动态的。本地多播路由器要周期性地探询本地局域网上的主机是否还是组的成员
- IGMP 协议的工作内容
-
多播路由选择协议
-
多播路由选择协议有多种,尚未标准化
-
多播路由选择协议转发多播数据报的方法
-
洪泛与剪除
-
隧道技术
-
基于核心的发现技术
-
-
目前多播路由选择协议
- DVMRP(距离向量多播路由选择协议)
- CBT(基于核心的转发树)
- MOSPF(开放最短通路优先的多播扩展)
- PIM-SM(协议无关多播-稀疏方式)
- PIM-DM(协议无关多播-密集方式)
-
4.8 虚拟专用网VPN和网络地址转换NAT
本地地址(可重用地址):本地地址仅在本机构内部有效,不是全球唯一地址(IP 地址紧缺,所以有了本地地址)
本地地址只用于一个机构的内部通信,不能和互联网行的主机通信。互联网中所有路由器对目的地址是专用地址的数据报一律不转发
- IPv4 标准的专用地址,他们只能作为本地地址用于机构内部的通信
- 10.0.0.0-10.255.255.255
- 172.16.0.0-172.31.255.255
- 192.168.0.0-192.168.255.255
专用互联网(本地互联网):采用专用地址的网络
虚拟专用网 VPN:某个机构分布范围很广,需用公共互联网作为本机构各专用网之间的通信载体
- VPN 依然只用于机构内的通信,但要经过公用互联网,通过互联网传送的数据都要加密(这里使用了隧道技术)
- VPN 中每个不同场所必须至少有一个合法的全球 IP 地址
- VPN 代理:依托 VPN 技术进行
网络地址转换 NAT :用于实现专用网中主机到互联网上主机的通信
NAT 路由器:在专用网连接到互联网的路由器上安装 NAT 软件(NAT 路由器至少有一个全球地址)
- 使用本地地址的主机和外界通信时要在 NAT 路由器上将本地地址转换为全球地址
- NAT 路由器中有一个地址转换表(存储本地地址与转换后的全球地址的对应关系)
- 通过 NAT 路由器的通信必须由专用网内的主机发起,因此专用网内的主机不能作为服务器
- 如今 NAT 转换表开始利用端口号。这样 NAT 路由器只需有一个全球地址,通过给具有不同本地地址的主机分配不同的端口号就可以实现内部多个主机与外界互联网的通信 </aside>
4.9 多协议标记交换MPLS
第五章 运输层
5.1 运输层协议概述
网络层:为主机之间提供通信
运输层:为应用进程提供端到端的逻辑通信
通信的真正端点是:主机中的进程(即应用进程之间通信是端到端的通信)
运输层的复用和分用:发送方不同进程通过不同端口号使用同个运输层协议,接收方运输层把收到的报文根据端口号分给不同进程
-
运输层主要协议(皆可复用和分用,检错)
-
传输控制协议 TCP
特点:面向连接的、点对点通信、提供可靠传输、全双工通信、面向字节流
TCP 传送数据前要建立连接,传送完成后要释放连接
且不提供广播/多播服务(因为 TCP 功能较多,首部很长,占用处理器资源)
-
用户数据报协议 UDP
特点:无连接、尽最大努力交付、面向报文、无拥塞控制
支持一对一、一对多、多对一、多对多(首部开销小)
**UDP:**接收方主机收到 UDP 后不需发出确认
-
-
运输层端口
16 位(即两字节)端口号来标志一个端口
端口号用来标志本计算机应用层中的不同进程。不同计算机间的端口无关联
此端口是软件端口,作为交互地址使用,不同于路由器上硬件端口
运输层端口号分类:服务器端使用的端口号和客户端使用的端口号
服务器端端口号 0~49151,0~1023 是**熟知端口号(**系统端口号),其它是登记端口号
客户端端口号 49152~65535。这些是给某个客户进程暂时使用的,通信结束后端口号恢复未分配状态
5.2 用户数据报协议UDP
UDP 的特点:无连接、尽最大努力交付、面向报文、无拥塞控制、支持一对一、一对多、多对一、多对多,首部开销小
UDP的首部格式:首部共 8 个字节,四个字段(源端口、目的端口、长度、检验和)
若接收方发现报文中目的端口号不对,则丢弃报文,并使用 ICMP 发送“端口不可达”差错报文给发送方(ICMP 的应用 tracert 就使用了 UDP 报文)
UDP 通信之间是无连接的,所以虽用到端口号,但不用套接字(TCP 必须在套接字之间建立连接)
UDP 检验和用来检验整个 UDP 报文的差错
UDP 的差错检验方法:各个 4 字节段的反码求和,和作为检验和序列放入检验和字段。检验时对数据报各个 4 字节段反码求和,若每位都是 1 则无错
此差错检验方法的检错能力不强,但处理起来快
5.3 传输控制协议TCP概述
- TCP 的特点:面向连接的、点对点通信、提供可靠传输、全双工通信、面向字节流
-
面向连接:使用 TCP 前要先建立连接,通信完后要释放连接
-
点对点通信
-
可靠传输:无差错、不丢失、无重复、按序到达
-
全双工通信:TCP 两端都设有发送缓存和接收缓存
发送时,应用程序把数据放到 TCP 的发送缓存后,TCP 在合适时候把数据发送出去。接收时,TCP 把收到的数据放入接收缓存,应用进程合适时读取缓存中的数据
-
面向字节流:流(流入到进程/从进程流出的字节序列)TCP 把应用进程交下来的数据看成一串无结构的字节流
-
TCP 的报文长度根据接收窗口和网络拥塞程度决定。若应用进程一次往发送缓存中放了很长的数据,那 TCP 可能会把它划分为多个短的数据块发送,若应用进程一次只发来一个字节,TCP 也可以等积累足够多的字节后再把它们构成报文段发出去
套接字:IP 地址加上端口号(套接字即 TCP 连接的端点)
套接字不是应用进程和端口
套接字格式: IP地址:端口号(如 192.168.100.2:80)
每条 TCP 连接唯一地被它地两个端点的套接字所确定
5.4 可靠传输的工作原理
停止等待协议用途:在不可靠的传输网络上实现可靠通信
停止等待协议原理:每发送完一个分组就停止发送,等待对方的确认,收到确认后再发送下一个分组。分组需要进行编号
出现差错:若发送方发送的数据在传输过程丢失,或到达了接收方但报文内容出差错,接收方都不会发送任何信息。这时发送方超时没有收到确认,就会进行重传
超时重传(自动重传请求 ARQ):超过一定时间没收到确认就要重传刚发送过的分组(实现方式是:每发送完一个分组就设置一个超时计时器,重传时间比平均往返时间长一些)
-
此时需注意
- 送方在发送完一个分组后,必须暂时保留已发送的分组的副本,以在超时重传时使用,只有收到相应的确认后才能清除保留的副本(对照发送缓存和发送窗口的后沿来理解)
- 分组和确认分组都需要进行编号,以明确是哪个分组收到了确认,哪个没有收到(对照 TCP 报文首部中的序号和确认号来理解)
- 超时计时器的重传时间要比平均往返时间长一些,具体重传时间设为多少是一个很复杂的问题
-
若接收方发给发送方的确认丢失/迟到了,发送方超时未收到确认,即进行重传
确认丢失:接收方收到重传的报文后,会丢弃此重复的报文,并向发送方发送确认。发送方收到了重复的确认会直接丢弃
确认迟到:若对方收到重复分组,就丢弃该分组,同时发送确认。接收方收到重复的确认后不做任何操作
提高信道利用率:停止等待协议的信道利用率很低,为提高效率,采用了流水线传输方式(运用连续 ARQ 协议和滑动窗口协议)
流水线传输:发送方可连续发送多个分组,不必每发完一个分组都要停下来等待对方的确认
- 连续 ARQ 协议用来提高利用率的规定
- 发送方维持一个发送窗口,凡位于发送窗口内的分组都可连续发送出去,而不需等待对方确认。发送方每收到一个确认,就根据确认号将发送窗口向前滑动一定距离
- 接收方采用累积确认:不必对收到的分组逐个发送确认,而只需对按序到达的最后一个分组发送确认,表明这个分组以前的所有分组都正确收到
- TCP 协议的精髓:滑动窗口协议
5.5 TCP报文段的首部格式
TCP 传输的数据单元:报文段(分首部和数据两部分)
TCP 报文段首部的前 20 个字节固定,后有 4N 个字节(按需增加的选项)
- 首部各字段的作用
-
序号:在一个 TCP 连接中传送的字节流中的每个字节都要按顺序编号。首部中序号字段存储本报文段发送的数据(不包含首部)首个字节的序号
序号字段只有 32 位,序号值 ≤ 2³²(理解:数据部分的每个字节都会占用一个序号)
-
确认号:期望收到对方下个报文端的首个数据字节的序号(若确认号为 N,表明到 N-1 为止的数据都已正确收到)
-
数据偏移:数据部分距报文起始点的偏移 = 首部长度(首部长度在 20~60 字节之间)
-
保留:保留为今后使用
-
6个控制位
- 紧急 URG:当 URG=1,此报文段需尽快传送,优先级高
- 确认 ACK:当 ACK=1,确认号字段有效。连接建立后所有报文段都必须令 ACK=1
- 推送 PSH:当 PSH=1,接收方收到报文后尽快交付应用进程,非等缓存满后再交付
- 复位 RST:当 RST=1,表明 TCP 连接中出现严重差错,需释放连接再重新建立连接
- 同步 SYN:当 SYN=1,表明这是 1 个连接报文(若 ACK=0:连接请求报文;ACK=1:连接接受报文)
- 终止 FIN:当 FIN=1,表明发送方已发送完数据,并要求释放连接
-
窗口:发送本报文段一方的接收窗口。首部窗口字段指出从本报文段确认号算起,当前允许对方发送的数据量(以字节为单位)
-
检验和:检验整个数据报
-
紧急指针,URG=1 时有意义,指出本报文段中的紧急数据的字节数。即使在窗口为 0 时也可发送紧急数据
-
选项:长度可变,≤ 40 字节(选项种类:最大报文段长度 MSS、窗口扩大选项、时间戳选项、选择确认选项等)
-
最大报文段长度 MSS
概念:每个 TCP 报文段中数据字段的最大长度(
TCP 报文段最大长度)MSS 不是一个标准固定值,而是可以由连接双方各自确定的值,且两个传送方向可以有不同的 MSS 值。MSS 值可能达到几千字节
连接建立时,双方都把自己支持的 MSS 写入这个选项字段中,以后就按照这个值传送数据
若未填写此选项,MSS 默认值:536 字节
-
窗口扩大选项
TCP 中窗口字段长度:16 位,因此最大窗口大小是 64K 字节(对于卫星网络,传播时延和带宽都很大,为了获得高吞吐率就需要更大的窗口)
-
时间戳选项
包括:时间戳值字段和时间戳回送回答字段
用途:计算往返时间 RTT
发送方把发送报文时的时间放入时间戳字段,接收方在确认该报文时把时间戳字段值复制到它的时间戳回送回答字段中。这样发送方收到确认报文后就可以计算出 RTT
时间戳选项还可用来防止序号绕回,TCP 序号字段只有 32 位,序号值 ≤ 2³²,所以可能出现具有相同序号的报文段,时间戳可用来区分这样的报文段
-
-
5.6 TCP可靠传输的实现
滑动窗口(单位:字节,每个字节都有序号)
TCP 使用滑动窗口机制。发送窗口里的序号表示允许发送的序号
- 发送窗口后沿后:已发送且已收到确认
- 发送窗口前沿前:不允许发送(发送窗口前沿会不断向前移动、不动或后移)
发送窗口后沿可能不动(没有收到新的确认),可能前移(收到新的确认),不可能后移
接收方把接收窗口的值放到窗口字段中发给发送方(发送窗口大小 ≤ 接收方传来报文首部中的窗口字段值)
接收方发回的确认号 = 自己按序收到数据的最高序号 + 1
发送方会根据接收方发来的确认号和窗口字段来构造自己的发送窗口,确认号决定了发送窗口的后沿,窗口字段值和拥塞窗口共同决定发送窗口的大小
发送窗口中的数据可以直接连续发送出去,所以发送窗口越大,获得的传输效率越高
-
使用滑动窗口进行可靠传输的例子
A:发送方,B:接收方
例子的开始时,A 根据 B 发来的窗口值(20)和确认号(31)构建了自己的发送窗口,如上图所示。此时发送窗口内的数据都是允许发送但尚未发送的数据
现在 A 发送了 11 个字节的数据(序号 31-41),如下图所示。此时发送窗口内的数据包含已发送但未收到确认(P1~P2)的数据和允许发送但尚未发送的数据(P2~P3)两部分
这时发送窗口的状态需要三个指针来描述:P1 指向发送窗口的后沿,P2 指向允许发送但尚未发送的第一个字节,P3 指向发送窗口的前沿外即将进入发送窗口的字节。P2~P3 之间的部分又称可用窗口
然后 B 收到了序号为 32,33 的数据,但是没有收到序号为 31 的数据,因为 B 只对按序收到的数据中的最高序号进行确认,所以此时 B 发送给 A 的确认报文段中确认号仍为 31
接下来 B 收到了序号为 31 的数据,并把 31~33 的数据交付给应用进程,然后删除了这些数据。B 的接收窗口也向前移动了 3 个序号,同时给 A 发送确认号为 34 的确认报文
A 收到确认号为 33 的报文后,也将发送窗口向前滑动了 3 个序号,此时发送窗口大小没变,但是可用窗口变大了
接下来 A 继续把可用窗口中的数据发送完后,P2 指针向前移动和 P3 重合,此时 A 的可用窗口已减小到 0,要暂时停止发送,等待收到确认
如果 A 超时未收到确认报文,就重传这部分数据,直到收到 B 的确认报文为止
-
发送缓存
发送方维持一个发送缓存,其中存放
- 准备发送的数据
- 已经发送但尚未收到确认的数据
发送窗口是发送缓存的一部分。已被确认的的数据会被从发送缓存中删除,因此发送缓存和发送窗口的后沿是重合的
应用进程向发送缓存写入数据时不能太快,否则填满发送缓冲后就没有存放数据的空间了
实际发送/接收缓存和窗口中的字节数是非常大的
-
接收缓存
接收方维持一个接收缓存,用来存放:
- 按序到达的、尚未被接收应用程序读取的数据
- 未按序到达的数据
接收窗口是接收缓存的一部分。如果应用程序来不及读取收到的数据,接收缓存就会被填满,使接收窗口减小到 0,反之接收窗口会增大,但最大不能超过接收缓存的大小
TCP 没有明确规定如何处理未按序到达的数据,但通常是先临时存放在接收窗口中,等字节流中缺少的字节到达后,再交付给上层的应用进程
-
累积确认
TCP 要求接收方必须有累积确认的功能,这样可以减小传输开销
接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息捎带上
但是注意接收方不能过分推迟发送确认,以避免发送方产生不必要的重传。如果收到一连串具有最大长度的报文段,则必须每隔一个报文段就发送一个确认
TCP 的通信是全双工通信。通信中每一方都在发送和接收报文段,因此每一方都有自己的发送窗口和接收窗口
5.6.2 超时重传时间的选择
重传时间的选择是 TCP 最复杂的问题之一
因为 TCP 的报文可能只在一个高速局域网中传送,也可能要经过多个低速率的网络,所以重传时间不能设为固定值
TCP 采用了一种自适应算法,它依据往返时间 RTT 来设置超时重传时间
TCP 保留了一个 历史 RTT 的加权平均结果 RTTs
RTTs 的计算方式:新的 RTTs = (1-a)旧的 RTTs + a新的RTT。a 建议取 0.125
超时重传时间 RTO 比 RTTs 略大:RTO = RTTs + 4*RTTd
RTTd 是 RTT 的偏差的加权平均值:新的 RTTd = (1-b)旧的 RTTd + b|RTTs - 新的RTT|。b 建议取 0.25
具体实现
要解决当报文重传的特殊情况
实现方式:报文段每重传一次,就把 RTO 增加一倍,当不重传了,就继续使用上述公式计算 RTO
5.6.3 选择确认SACK
当报文未按序到达(到达的字节不连续,一段一段的),发送方需要重传收到的确认号之后的所有报文,而有些确认号之后的不连续的报文实际上已经到了,全部重传会浪费资源。选择确认用来解决这种情况
首部的选项中可以有选择确认 SACK 字段。SACK 使用两个字节块分别指明一个连续字段的开始位置和长度。最多可以指出 4 个连续字节块的边界情况
SACK 应用不多
5.7 TCP的流量控制
流量控制是为了让发送方的发送速率不要太快,要让接收方来得及接收。
5.7.1 利用滑动窗口实现流量控制
流量控制是通过滑动窗口实现的。接收方会把接收窗口的大小放到给发送方的报文的窗口字段中。
发送方的发送窗口不能超过接收方给出的窗口字段的数值。
死锁
当接收方的接收窗口减小到 0,发送方停止发送数据后。过了一段时间 B 的接收窗口恢复了一些,但是它发给发送方的报文丢失了,然后 A 就会一直等待 B 发送的非零窗口的通知,而 B 也一直等待 A 发送的数据,这时就进入了死锁状态。
死锁的解决:TCP 每一个连接都设有一个持续计时器。只要 TCP 连接的一方收到对方的零窗口通知,就启动持续计时器。若持续计时器的时间到期,就发送一个零窗口探测报文段,对方则在返回这个探测报文段的确认报文时给出窗口值。
5.7.2 TCP的传输效率
应用进程把数据传送到 TCP 的发送缓存后,剩下的发送任务就交给 TCP 来完成了。
Nagle 算法
TCP 的实现中广泛使用了 Nagle 算法:
- 发送方先把到达发送缓存的第一个数据字节发送出去,收到确认后,再把发送缓存中剩下的数据组装成报文段发送。
- 收到前一个报文段的确认后再发送下一个报文段。
- 当缓存中的数据达到发送窗口的一半大小或报文段最大长度后,就立即发送一个报文段。
Nagle 算法用来避免发送方发送很小的报文段。
5.8 TCP的拥塞控制
拥塞:当前对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能变坏
概括而言拥塞的条件就是:对资源的需求 > 可用资源
网络拥塞的成因往往十分复杂,并拥塞常常趋于恶化。比如因为网络拥塞有报文未能按时到达,那么发送方就会超时重传使更多的分组进入网络,加剧网络拥塞
拥塞控制就是防止过多的数据注入到网络中,使网络中的路由器或链路不致过载
流量控制是端到端的问题,是接收端抑制发送端发送数据的速率。拥塞控制是全局性的问题,涉及到所有的主机、路由器及相关因素
TCP 连接的端点只要迟迟收不到对方的确认信息,就猜想网络中某处可能出现了拥塞
上图中横坐标代表单位时间内输入到网络中的分组数,纵坐标代表单位时间内从网络输出的分组数
拥塞控制很复杂。网络拥塞的指标有:被丢弃的分组数,平均队列长度、超时重传的分组数、平均分组时延等
TCP 的拥塞控制采取了慢开始、拥塞避免、快重传、快恢复四种算法。
这种方法是基于窗口的拥塞控制。发送方维持一个拥塞窗口,并让自己的发送窗口等于拥塞窗口(实际上发送窗口取拥塞窗口和接收窗口中的较小者)。
控制拥塞窗口的原则是:只要网络中没有出现拥塞,就把拥塞窗口增大一些;但只要网络出现拥塞或可能出现了拥塞,就把拥塞窗口减小一些。
判断网络拥塞的依据是出现超时。当出现拥塞就使拥塞窗口减小,反之增大。
慢开始
初始拥塞窗口很小,然后由小到大逐渐增大发送窗口。
初始拥塞窗口一般不超过 2-4 个 SMSS(发送方最大报文段)长度。每收到一个新的确认后,就增加一次拥塞窗口。
使用慢开始算法,每经过一个传输轮次,拥塞窗口 cwnd 就会加倍。
拥塞避免
拥塞避免算法是让拥塞窗口缓慢地增大,不像慢开始那样加倍增长。
当 cwnd 大于一个界限值时,就使用拥塞避免算法,小于时就使用慢开始算法。
当出现超时,拥塞窗口就恢复初始值重新进行慢开始,且界限值减半。
快重传
快重传要求当接收方收到报文段后立即发送确认。
当接收方收到的报文段出现丢失,它后面不论收到什么报文段,发回的确认号都是对失序之前的那个报文段的确认。
当发送方连续收到 3 个对同一报文段的重复确认(表明下一个报文段未收到),就立即重传下一个报文段,这样就可以避免超时。
这是为了避免出现超时,使发送方误判为网络拥塞。
快恢复
对于一般的超时,界限值减半,拥塞窗口直接置为初始值;对于快重传情况下,界限值减半,拥塞窗口设置为和界限值一样,以实现快恢复。
发送方的发送窗口实际设置为接收方窗口 rwnd 和拥塞窗口 cwnd 中较小的一个。
在网络层,路由器可以通过采用主动队列管理 AQM 来减少网络拥塞的发生。
主动队列管理就是路由器采取的一种分组丢弃策略。
路由器的队列中的分组是先进先出,在队列满了之后到达的分组就直接丢弃。
主动队列管理就是在队列长度还未满时就丢弃后面的分组。但是具体丢弃策略尚未标准化。
5.9 TCP的运输连接管理
TCP 连接有三个阶段:连接建立、数据传送、连接释放。
主动发起 TCP 连接的应用进程是客户,另一方是服务器。
TCP 的连接开始前客户和服务器都会创建一个传输控制块 TCB,其中存储如 TCP 连接表、指向发送/接收缓存的指针、指向重传队列的指针等。连接释放后删除。
TCP 的连接采用三次握手机制:服务器要确认客户的连接请求,客户要对服务器的确认进行确认。
连接请求报文和连接接受报文段都不能携带数据,但是都消耗一个序号。
第三个 ACK 报文段可以携带数据也可以不携带,若不携带则不消耗序号(即下一个报文序号和此报文序号相同)。
SYN-SENT 表示同步已发送状态,SYN-RCVD 表示同步收到状态,ESTABLISHED 表示已连接状态。
TCP 有如下规定:
- SYN = 1 的报文段都不能携带数据,但要消耗掉一个序号。所以三次握手中前两个报文都不能携带数据。
- ACK = 1 的报文段如果不携带数据则不消耗序号。
三报文握手中的第二个报文,也就是服务器发给客户的 SYN 报文也可以拆分成两个报文段,一个确认报文段(ACK = 1, ack = x+1)和一个同步报文段(SYN = 1, seq = y),那样就是四报文握手了。
采用三报文握手是为了解决客户发送的连接请求报文中途滞留发生重传的情况。当发生重传情况,客户可能连续发送了两个连接请求,而服务器也会回复两个连接接受,此时发送端通过最后一个确认报文保证只建立一个连接。
如果不采用三报文握手,那么只要服务器发出确认,新的连接就建立了。
TCP的连接释放:采用四次挥手机制。任何一方都可以在数据传送结束后发出连接释放的通知,等待对方确认后进入半关闭状态。当另一方也没有数据发送后,则发送连接释放通知,对方确认后完全关闭 TCP 连接。
上图中客户发起了连接释放报文(FIN=1),此时不再传送数据。但是服务器可能还要传送数据,因此在发送一个 ACK 报文后,如果有数据传送还要继续发送完。
当服务器发送完数据,就发送连接释放报文,接着客户端对此确认,服务器收到确认后彻底关闭连接。
TCP 规定:FIN 报文即使不携带数据,也要消耗一个序号。
四次挥手的详细流程
- A 向 B 发送连接释放报文(FIN 报文)后进入 FIN-WAIT-1(终止等待1)状态。
- B 收到连接释放报文后立即发出确认,然后 B 就进入了 CLOSE-WAIT(关闭等待)状态。TCP 服务器进程这时要通知高层应用进程,从 A 到 B 方向的连接已经释放了,TCP 连接实际上已经是半关闭状态。
- A 收到 B 的确认后,就进入 FIN-WAIT-2(终止等待2)状态,等待 B 发出的连接释放报文段。
- B 在发送确认报文后,如果没有数据要发送,应用进程就通知 TCP 释放连接,这时 B 会发送连接释放报文(FIN 报文)。如果 B 还要发送数据,就等发送完数据后再发送连接释放报文。这之后 B 进入 LAST-ACK(最后确认)状态
- A 收到 B 的连接释放报文后,要再发送一个确认报文段(ACK 报文),然后进入 TIME-WAIT(时间等待)状态。A 会在这一状态保持 2MSL 的时间(这里有一个时间等待计时器),之后进入 CLOSED 状态。
- B 收到 A 的确认报文后也会进入 CLOSED 状态。B 会比 A 更早地结束连接。
MSL 含义是最长报文段寿命,RFC 标注建议是 2 分钟,实际一般小于等于 2 分钟,因此 TIME-WAIT 的时长一般小于等于 4 分钟。
TIME-WAIT 状态的意义
- 保证 A 发送的最后一个 ACK 报文段能够到达 B。这个 ACK 报文段可能丢失,当 B 没有收到 A 的 ACK 报文,会超时重传它之前发送的连接释放报文,这样 A 就能在 2MSL 时间内收到 B 重传的 FIN 报文,然后 A 重传 ACK 报文,并重新启动 2MSL 计时器。
- 如果没有 TIME-WAIT 状态,而是发完 ACK 报文后就立即释放连接,就无法收到 B 重传的 FIN 报文段,这样 B 就无法正常进入 CLOSED 状态。
- 防止已失效的报文遗留到下一个连接中,经过 2MSL 在关闭连接可以使本连接产生的所有报文都从网络中消失。
保活计时器
保活计时器:TCP 还会设置一个保活计时器。如果客户发生故障,服务器不再收到客户发来地数据,可以通过保活计时器来避免服务器白白等待。
保活计时器的工作方式:服务器每收到一次客户的数据,就重新设置保活计时器,通常是 2 小时。如果 2h 每收到客户数据,服务器就发送一个探测报文段,之后每隔 75s 发送一次。如果连续发送 10 个探测报文后客户仍没有响应,服务器就认为客户端出了故障,关闭当前的 TCP 连接。
TIME_WAIT
客户端在发送最后一个确认报文后不能直接进入 CLOSED 状态,要等待 2MSL 的时间(一般小于2分钟)。这是为了保证它发送的确认报文能够到达服务器。如果未能及时到达,服务器会超时重传连接释放报文,客户就会重新发送确认,并重新计时。另外也是保证本次连接产生的所有报文都从网络中消失。
下面的状态机中虚线表示的是服务器进程的状态变迁,实线表示的是客户进程的状态变迁。
第六章 应用层
应用层的协议多是基于客户-服务器方式(客户和服务器都是应用进程)
应用层协议规定了应用进程通信时遵循的协议
6.1 域名系统DNS
域名系统 DNS:互联网的命名系统(用来把便于识别的名字转换为 IP 地址)
-
DNS(联机分布数据库系统):采用客户-服务器方式
-
DNS 使大多数名字在本地解析,少量解析在互联网上通信
域名到 IP 地址的解析是由互联网上的许多域名服务器共同完成的
- 域名到 IP 地址的解析过程
-
当某一应用进程需要解析域名,就调用解析程序,成为 DNS 的一个客户,把待解析的域名放到 DNS 请求报文中,以 UDP 用户数据报方式发给本地域名服务器
本地域名服务器查找域名后把对应的 IP 地址发给该应用进程。应用进程获得 IP 地址后即可进行通信
-
若本地域名服务器不能回答该请求,就向其他域名服务器请求,此时它就成为了客户
-
互联网的域名结构:树状结构,任一台连接在互联网上的主机或路由器都有唯一域名 三级域名:www.google.com
- 域名组成
- 由标号序列组成,最右边是顶级域名,往左依次降低
- 包括**英文字母(不区分大小写)、数字和 ‘-’(**完整域名 < 255 个字符)
各级域名由其上一级域名管理机构管理,顶级域名由 ICANN 管理
-
顶级域名 TLD 包括
- 国家顶级域名:cn 为中国,us 为美国,uk 为英国
- 通用顶级域名:com(公司企业), net(网络服务机构), org(非营利性组织), int(国际组织), edu(美国教育机构), gov(美国政府部门), mil(美国军事部门)
上面是最初的 7 个顶级域名,后还增加许多其他的。现已有中文的顶级域名
基础结构域名:arpa(用于反向域名解析)
-
我国二级域名分类
- 类别域名:com(企业), ac(科研机构), edu, gov, mil, net, org 等
- 行政区域名:适用于各省(如 bj 为北京)
-
域名服务器种类
- 根域名服务器:包含所有顶级域名服务器的域名和IP地址
- 最重要的服务器(若本地域名服务器无法解析域名,首先求助根域名服务器)**,使用了任播技术,**数量很多但分布不均衡
- 顶级域名服务器:管理在该服务器注册的二级域名
- 权限域名服务器:负责一个区的应服务器
- 本地域名服务器:主机查询域名时首先询问本地域名服务器(计算机属性中的 DNS 服务器)
- 根域名服务器:包含所有顶级域名服务器的域名和IP地址
-
主机 → 本地域名服务器的查询是:递归查询
-
本地域名服务器 → 根域名服务器的查询是迭代查询
(根域名服务器无法完成解析时,把下一步应查询的域名服务器告诉本地域名服务器)
为提高查询效率,域名服务器中采用高速缓存(存放最近查询过的域名信息)
6.2 文件传送协议
- FTP(文件传送协议):使用 TCP 的可靠运输服务(客户-服务器模式)
- TFTP(简单文件传送协议):使用 UDP 不可靠数据报协议
两者都属文件共享协议中一大类:复制整个文件
特点:要存取一个文件,必先获得一个本地文件副本。要修改文件,只能对文件副本进行修改,然后将修改的文件副本传回原节点
FTP 主要功能:减少或消除在不同操作系统下处理文件的不兼容性
FTP 的服务器进程:**一个 FTP 服务器进程可以同时为多个客户进程提供服务
-
FTP 的服务器进程包括:一个主进程和若干个从属进程
- 主进程:负责接受新请求。当主进程收到客户进程发来的连接请求后,将其交给从属进程进行处理。然后回到等待状态继续接受其他客户的请求
- 从属进程:负责处理单个请求
主进程和从属进程是并发执行的
-
文件传输功能的实现
-
文件传输时,FTP 的客户和服务器之间会建立两个并行的 TCP 连接(控制连接和数据连接—传输文件。因此 FTP 使用两个端口号)
两个连接对应服务器端的两个从属进程:控制进程和数据传送进程
-
FTP 客户发送的传送请求通过控制连接发送给控制进程。然后控制进程创建数据传送进程和数据连接
-
TFTP(简单文件传送协议):使用 UDP 协议
TFTP 主要优点:可用于 UDP 环境,代码简便
TFTP 采用了类似停止等待协议的重传机制(发送后等待确认,没有确认就重传)
6.3 远程终端协议TELNET
TELNET(远程终端协议):采用客户服务器模型(将客户端操作 → 服务器端,再将服务器端输出返回到客户端屏幕
TELNET 采用 TCP 协议
TELNET 的服务器进程类似 FTP(由主进程等待新请求,并产生从属进程来处理每个连接)
6.4 万维网www
万维网 WWW 是一个大规模的、联机式的信息储藏所。简称 Web
超文本:包含指向其他文档链接的文本,一个超文本由多个信息源链接组成
-
超文本:文本信息
-
超媒体:图形、声音、视频等(万维网是一个分布式的超媒体系统)
Web 客户程序 → 互联网服务器程序发出请求,服务器程序 → 客户程序送回客户所要的万维网文档
页面:在客户程序主窗口显示出的万维网窗口
- Web 需处理的问题及解决方式
- 如何标志分布在整个互联网上的文档:采用 URL(统一资源定位符)
- 用什么协议来实现万维网上的链接:采用 HTTP(超文本传送协议 )
- 怎么实现创作不同风格的万维网文档:使用 HTML(超文本标记语言)
- 怎样使用户很方便地找到所需信息:通过搜索引擎实现
万维网使用 **URL(统一资源定位符)**来标志万维网上各种文档(每个文档在互联网内有唯一的 URL)
URL 相当于指向互联网上任何可访问对象的一个指针
- URL 的一般形式:<协议>://<主机>:<端口>/<路径>
- 协议:一般为 http,其次为 ftp
- 主机:该主机的域名
- 端口:通常省略掉,HTTP 默认端口号是 80
- 路径:有时可省略
- 输入 URL 时协议和 www 都可省略,浏览器会自动补上
- HTTP 的默认端口号是 80,通常省略掉
- **当路径省略掉,则 URL 指向互联网上的某个主页(**比如 北京航空航天大学)
- 主页种类
- 一个 WWW 服务器最高级别页面
- 某个组织的定制页面(此页面可以链接到本组织的其他站点)
- 个人设计 WWW 页面
https://www.buaa.edu.cn/jgsz1/yxsz.htm(**cn/ 后为路径,.htm 表明这是一个 html 文档)
-
HTTP
-
面向事务的应用层协议。**事务:**一系列不可分割的信息交换(这些信息交换是一个整体)
-
万维网客户与服务器程序之间交互使用的协议(万维网的客户:浏览器)
-
无连接、无状态的,使用可靠传输的 **TCP 协议(**无连接:通信双方在交换 http 报文前不需先建立 http 连接;无状态:HTTP 服务器不记得曾经访问过的客户)
-
HTTP连接与释放——每个万维网网点都有一个服务器进程(不断监听 TCP 端口 80)
- 浏览器向它发来 TCP 连接建立请求并建立连接
- 浏览器发出浏览某个页面请求
- 服务器返回请求页面响应
- TCP 连接释放
先建立 TCP 连接(连接端口为 80)。客户把 HTTP 请求报文作为 TCP 连接三次握手中的第三个报文的数据。然后服务器直接返回文档作为响应
HTTP/1.1 协议使用持续连接(万维网服务器在发送响应一段时间后仍保持这条连接,当客户继续访问时不需重新建立 TCP 连接)
- HTTP/1.1 协议持续连接的工作方式
- 非流水线方式:客户收到前一个响应后才能发下一个请求
- 流水线方式:客户收到上一个响应前就可以接着发新的请求
-
-
代理服务器
又称**万维网高速缓存:**把最近请求和响应暂存在本地磁盘中。当新请求与暂存的请求相同,就返回暂存的响应
代理服务器可以在客户端或服务端和中间系统上工作
例如某校园网使用了代理服务器,当校园网中某主机的浏览器请求服务时,先和代理服务器建立 TCP 连接并发出 HTTP 请求报文
- 若代理服务器有所请求对象就返回此对象
- 若没有,代理服务器就代表用户与源点服务器建立连接并发送 HTTP 请求报文
HTTP 报文每个字段都是 ASCII 码串
HTTP 报文种类:请求报文和响应报文
-
HTTP 报文组成
-
开始行:区分是请求报文还是响应报文
-
请求行:包括方法(表明请求报文类型),请求的 URL,HTTP 的版本
-
状态行:响应报文的第一行(包括:HTTP 的版本,状态码,解释状态码的短语)
-
-
首部行(表明浏览器、服务器或报文主体信息)
-
实体主体(请求报文一般不使用,响应报文可能会使用)
注:请求行最后有 1 个 CRLF,其他所有首部之间都有 1 个CRLF,首部与实体主体之间有 2 个 CRLF
-
-
HTTP 请求报文的例子
- GET /dir/index.htm HTTP/1.1
- Host:www.buaa.edu.cn
- Connection:close
- User-Agent:Mozilla/5.0
- Accept-Launguage:cn
// 请求行,使用了相对 URL
// 第一个首部行,给出了主机域名
// 告诉服务器发送完请求的文档后就可以释放连接
// 表明用户代理使用了火狐浏览器
// 表明用户希望优先收到中文版本的文档
// 请求报文最后还有一个空行
-
HTTP 请求报文的方法
OPTION 请求一些选项的信息 GET 请求读取由 URL 所标志的信息 HEAD 请求读取由 URL 所标志的信息的首部 POST 给服务器添加信息(例如,注释) PUT 在指明的 URL 下存储一个文档 DELETE 删除指明的 URL 所标志的资源 TRACE 用来进行环回测试的请求报文 CONNECT 用于代理服务器 -
HTTP 响应报文的状态码类型
- 1xx(表示通知信息)请求收到了、正在处理等
- 2xx(表示成功)
- 3xx(表示重定向)HTTP/1.1 301 Moved Permanently。后跟一个首部行表明新 URL :Location:http://www.buaa.edu.cn/dd/index.html
- 4xx(表示客户的差错)Http/1.1 404 Not Found
- 5xx(表示服务器的差错)
-
Cookie
HTTP 本无状态,要保存信息,需采用 Cookie 技术。万维网站点可使用 Cookie 来跟踪用户(如某网站的账号与密码)
- Cookie 工作原理
- 用户浏览某网站,该网站服务器即为用户产生一个唯一识别码,并存储在数据库中
- 再给用户的响应报文中添加一个 Set-cookie 字段,值为识别码首部行,用户收到此响应报文后把它存储在自己的 Cookie 文件中
- 这样服务器就能够知道用户什么时候访问了哪些页面。用户之后再次访问时,服务器可以识别出用户,这样就不需要用户再次输入姓名,密码等
- Cookie 工作原理
-
HTML文档
-
HTML(超文本标记语言): 用来显示各种万维网页面
-
后缀:.html 或 .htm
-
HTML 文档:可以使用任何文本编辑器创建的 ASCII 码文件
-
HTML 链接:蓝字且加下划线的,终点是其他页面(**本地链接:**链接指向本计算机中的文件)
XML(可扩展标记语言),XML 用于传输数据,HTML 用于显示数据
**XHTML(可扩展超文本标记语言):**XML 应用被重新定义的 HTML,将逐步取代 HTML
**CSS(层叠样式表):**样式表语言,为 HTML 文档定义布局(如浏览器上显示的字体、颜色、边距等)
-
静态文档:文档创作完后就存放在万维网服务器中,用户浏览过程中,内容不会变
-
**动态文档:**文档内容在浏览器访问万维网服务器时由应用程序动态创建。每次访问内容都不一样(如天气预报、股市行情)
动态文档和静态文档的差别:主要在服务器一端
通用网关接口 CGI:一种标准,定义动态文档如何创建(服务器端使用 CGI 程序来创建动态文档)
脚本:被另一个程序而非处理器来解释或执行的程序(JavaScript 就是脚本语言)
-
活动文档:可以使浏览器屏幕连续更新
当浏览器请求一个活动文档,服务器直接返回一段活动文档程序的副本,使该程序副本在浏览器端运行。活动文档程序可以与用户直接交互和连续地改变屏幕的显示
-
搜索引擎:万维网中进行搜索的工具
搜索引擎种类:全文搜索引擎(百度、谷歌等)、分类目录搜索引擎(搜狐、新浪等门户网站)
-
全文检索搜索引擎的工作原理
通过搜索软件(如爬虫程序)到各网站搜集信息,像蜘蛛爬行一样从一个网站连接到另一个网站,然后建立一个在线索引数据库。当用户查询时,就从此索引数据库中进行查询
Google 核心技术:PageRank(网页排名)——将搜索结构根据重要性排名(关键字频率、是否知名网站等都会影响重要性)
6.5 电子邮件
-
POP3:采用客户-服务器模式,非常简单、但功能有限
-
POP3 特点:只要用户从 POP3 服务器读取了邮件,服务器就把该邮件删除
电子邮件系统主要构件:用户代理、邮件服务器、邮件协议(即邮件发送协议和邮件读取协议)
用户代理:电脑上的邮件客户端
用户代理把邮件发送到邮件服务器,邮件服务器之间的传送使用 SMTP 协议
用户代理从邮件服务器读取邮件时使用 POP3 / IMAP 协议
- 发送邮件过程
- 用户代理使用 SMTP 协议把邮件发给“发送方邮件服务器”
- “发送方邮件服务器”与“接收方邮件服务器”建立 TCP 连接并把邮件发送过去(邮件不会在某中间服务器落地)
- 收件人收信时,使用 POP3 协议从“接收方邮件服务器”读取邮件
邮箱地址格式:用户名@邮件服务器域名
SMTP(简单邮件传送协议)
采用客户-服务器模式
发件人邮件会存在发送方邮件服务器的邮件缓存中,发送方邮件服务器(此时是 SMTP 客户)定期扫描邮件缓存,若有邮件就与接收方邮件服务器建立连接并发送过去
SMTP 熟知端口:25
SMTP 发送的是明文,不利于保密;发送邮件不需鉴别,方便垃圾文件的泛滥。新出扩展的 SMTP 即 ESMTP 对这些进行了改进
常用邮件读取协议:POP3 / IMAP
IMAP4:采用客户-服务器模式,但复杂(一个联机协议,用户在 PC 上就可操纵邮件服务器的邮箱)
- 用户打开邮件时,邮件才传到用户的计算机上。用户未主动删除邮件前,IMAP 服务器邮箱中的邮件就一直保存
- IMAP 缺点:若用户没有将邮件复制到自己计算机上,每次查阅邮件都必须上网
网易邮箱中服务器设置
基于万维网的电子邮件(即用户使用浏览器收发电子邮件):浏览器和邮件服务器之间传送使用 HTTP 协议;邮件服务器之间传送仍使用 SMTP 协议
万维网电子邮件不需在计算机中安装用户代理软件
- SMTP 只传送 ASCII 码,不传送非英语文字和可执行文件
通用互联网邮件扩充 MIME 对 SMTP 进行扩充(定义传送非 ASCII 码的编码规则)
网络中传送仍是 ASCII 码,MIME 采用一些编码方式使 ASCII 码表示其他字符
MIME 指定了几百上千种可传送的文件类型,这些类型涵盖了常用的各种文件类型
6.6 动态主机配置协议DHCP
IP 地址中包含网络号,而计算机首次使用前不知道它会连到哪个网络,所以无法在出厂前设置好 IP 地址
当计算机连接新网络后,就要使用动态主机配置协议 DHCP 来配置 IP 地址(DHCP 可以实现即插即用联网,不需人工配置 IP 地址)DHCP 采用客户-服务器模式
-
配置 IP 地址方法
需配置 IP 地址的主机启动时向 DHCP 服务器广播发送发现报文。DHCP 收到后会给该计算机发送一个提供报文来提供分配的 IP 地址
响应 DHCP 客户的 DHCP 服务器可能有多个,客户机会从中选择一个给其发送请求报文
每个网络至少有一个 DHCP 中继代理(一般是一个路由器),用来做主机与 DHCP 服务器之间的中转
DHCP 服务器分配的地址有一个租用期限制。可能是几小时也可能是几年。当接近租用期了 DHCP 会请求更新租用期
DHCP 客户的熟知端口是 68,DHCP 服务器的熟知端口是 67
当手机连接到新 wifi 时,就要通过 DHCP 来获取新的 IP 地址
6.7 简单网络管理协议SNMP
**网络管理:**对硬件、软件、人力的使用、综合和协调
一个网络管理系统:有一个管理者和许多被管设备(主机、路由器、集线器等)
每个被管设备都要运行一个网络管理代理程序(代理程序在管理程序的命令和控制下,在被管设备上采取本地行动)
网络管理采用的协议:SNMP 协议
SNMP 协议中,管理程序运行 SNMP 客户程序,代理程序运行 SNMP 服务器程序。被管对象上 SNMP 服务器程序不停监听 SNMP 客户程序的请求和命令,一旦发现就执行对应动作
网络管理基本原理:要管理某个对象,就必然要给此对象添加一些软件或硬件,但这种添加的影响应该尽量小一些(SNMP 最重要的思想是尽量简单)
- 简单网络管理协议 SNMP 包含
- SNMP 本身:定义了管理站和代理间交换的分组格式,分组中包含各代理中的变量名和状态值。SNMP 负责读取和改变这些值
- 管理信息结构 SMI:定义了一套通用规则,包括如何定义命名对象、如何定义对象类型、如何对对象编码的规则
- 管理信息库 MIB:在被管实体中创建命名对象
- SMI(管理信息结构)功能
- 被管对象怎样命名
- 用来存储被管对象的数据类型有哪些
- 在网络上传送的管理数据如何编码
SMI 规定所有被管对象名字必须在一颗对象命名树上(类似于 URl 命名方式)
SMI 把被管对象的数据类型分的类:简单类型( Interger32)和结构化类型( sequence 类似结构体、 sequence of 类似数组)
SMI 采用抽象语法记法来定义数据类型(抽象语法只描述数据的结构形式,不考虑具体编码格式和数据结构在内存中如何存放)
数据编码方法:基本编码规则 BER(指明了数据类型和值。它把所有数据元素都组织为一个 T-L-V 三字段序列,T 定义数据类型,L 定义 V 字段的长度,V 定义数据的值)
管理信息库MIB:**管理信息即被管对象的集合。被管对象必须维持供管理程序读写的若干控制和状态信息,这些被管对象就构成了一个虚拟的信息存储器
只有 MIB 中的对象才是 SNMP 可以管理的
-
SNMP 操作的基本管理功能
- 读操作(Get 报文来检测被管对象的状况)
- 写操作(Set 报文来改变被管对象的状况)
-
SNMP 实现管理功能的方式
- 使用探询操作:定期向被管设备发送探询信息(了解其状况)
- 被管对象的代理检测到严重异常事件主动向管理者发送报告
SNMP 使用无连接的 UDP
6.8 应用进程跨越网络的通信
系统调用接口(应用编程接口 API):应用进程的控制权和操作系统的控制权进行转换的接口
API:应用程序和操作系统之间的接口
应用程序调用 API 将控制器传递给操作系统(和一般函数调用相似)
现在 TCP/IP 协议软件驻留在操作系统中
套接字接口:供应用程序使用 TCP/IP 服务的 API(如 Windows 系统就采用了)
套接字:应用进程(应用层)和运输层协议(位于操作系统内核的 TCP/IP 服务)之间的接口(API 接口)
-
套接字描述符(**套接字接口中首个参数)
应用进程需要使用网络时,请求系统为其创建一个套接字,并将此套接字描述符返回给应用进程。然后应用进程所有网络操作都要使用此套接字描述符
- 请求操作系统把网络通信所需的系统资源(存储器时间、CPU 时间、网络带宽等)分配给它,操作系统使用一个套接字描述符来表示这些资源的总和
通信完毕后,系统要回收该套接字描述符相关的所有资源
-
套接字的数据结构
机器中有一个套接字描述符表,其中存储了多个套接字描述符,每个进程对应一个套接字描述符,每个描述符有一个指针指向存放套接字的地址
套接字的数据结构中要填写很多参数,如协议族(PF_INET 表示 TCP/IP 协议族)、服务(SOCK_STREAM 表示 TCP 服务)、本地和远地 IP 地址、本地和远地端口等
-
常用的系统调用
并发方式工作:一个服务器能够同时处理多个连接
-
实现方法
一个主服务器进程 + 多个从属服务器进程
-
主服务器进程 M 不停接受新的连接请求
-
M 本有一个套接字,但每收到一个新请求就创建一个新套接字,
并把新套接字的标识符返回给客户
-
然后创建一个新从属服务器进程使用刚才创建的新套接字来和客户建立连接
-
主服务器进程 M 则使用原来的套接字继续接受下一个连接请求
-
-
连接建立阶段
刚创建的套接字端口号和 IP 地址都是空的
- 服务器端的应用进程要调用 bind 来指明套接字的本地端口号和本地 iP 地址(客户端可以调用 bind 也可不调用而由操作系统自动分配一个动态端口号)
- 服务器调用 bind 后,再调用 listen 把套接字设置为被动模式,来随时接受用户的服务请求(UDP 服务器采用无连接方式,所以不使用 listen)
- 服务器(主服务器进程)调用 accept,来完成给发出请求的远地客户分配从属服务器进程与新套接字
- 客户端创建套接字后,客户进程调用 connect 向服务器发出连接请求(connect 调用中,客户需指明远地服务器的 IP 地址和端口号)
- 客户和服务器都调用 send 来传送数据,调用 recv 来接收数据
- 调用 send 需三个变量:数据要发往的套接字描述符、要发送的数据地址、数据长度
- 调用 recv 需三个变量:要使用的套接字描述符、缓存地址缓存空间长度
- 连接释放阶段(调用 close 来释放连接和撤销套接字)
-
6.9 P2P应用
P2P 应用采用 P2P 体系结构(无固定服务器,绝大多数交互使用对等方式)
- 目前 P2P 工作方式下文件共享占据互联网流量中最大份额( >万维网所占比例)
- 第一代 P2P 文件共享网站采用的方式:所有用户机上文件地址存放在一台服务器上,某用户要下载资源时首先向该服务器询问资源地址,再从存储资源的计算机下载资源
- BT(具有全分布式结构的P2P文件共享程序):很流行的 P2P 应用,采用“最稀有的优先”**技术,尽快把最稀有文件块收集到
- BT中参与某个文件分发的所有对等方构成一个“洪流”,每个洪流都有一个“追踪器”,当有对等方加入洪流时,要向追踪器登记
- 若有当前以最高数据率向某个对等方传送文件块的相邻对等方,该对等方就要优先把所请求的文件块传送给这些相邻对等方。这样使对等方彼此都能以较高的速率交换文件块
- 当对等方数量很大时,采用 P2P 下载文件速度 >> 传统的客户-服务器模型
P2P 中广泛使用的索引和查找技术:分布式散列表 DHT
- 一个分布式数据库(包括**:关键字是资源名,值是存放对象节点的 IP 地址**,给出资源名就能查到 IP 地址。但数据库是分布式的,资源名保存的地址需要用到基于 DHT 技术的算法)
Chord 算法:一种基于 DHT 的算法,采用散列函数将资源名映射成一个均匀分布的数字(标识符),再将其放到 Chord 环上。
保存资源名的主机也通过散列函数映射为一个标识符放到 Chord 环上作为环上的结点(结点数目 << 资源名数目),然后每个资源名就保存到 Chord 环上离他最近的结点所对应主机中
第七章 网络安全
7.1 网络安全问题概述
-
计算机网络安全性威胁种类
- 主动攻击(中断、篡改、伪造)
- 被动攻击(截获)
-
数据加密模型(密码学)
- 密码编码学(设计密码体制)
- 密码分析学(破解密码)
-
安全的计算机网络标准
保密性、端点鉴别、信息的完整性、运行的安全性
无条件安全的密码几乎不存在,大部分密码都是计算上安全的(在一定时间内不可破解)
7.2 两类密码体制
-
对称密钥密码体制
加密密钥与解密密钥相同。此加密的保密性仅取决于对密钥的保密,算法公开
数据加密标准 DES :一种对称密钥密码体制(初版 DES 已不安全,目前采用三重 DES(3DES)。三重 DES 广泛用于网络、金融、信用卡等系统
-
公钥密码体制
加密密钥公开(公钥),解密密钥是保密的(私钥),加密和解密算法也公开
私钥是某个用户私有的,对其他人都保密
- 公钥密码体制相对于对称密钥体制的优点:
- 不需要考虑密钥分配问题(对称密钥需要安全地分配密钥)
- 提供数字签名功能
RSA 体制(RSA 公钥加密算法):最著名的公钥密码体制,采用数论中的大数分解问题
任何加密方法的安全性取决于密钥长度和攻破密文所需的计算量,而非体制
- 公钥密码体制相对于对称密钥体制的优点:
7.3 数字签名
- 数字签名需要提供的功能
- 报文鉴别:接收者能够核实发送者对报文的签名,从而验证发送者的身份
- 报文的完整性:接收者确信收到的数据和发送者发送的数据完全一样
- 不可否认:发送者事后不能否认自己对报文的签名
**数字签名实现方法(基于公钥密码体制):**发送者使用自己的私钥对一段报文进行加密,接收者使用该发送者的公钥来解密报文
7.4 鉴别
鉴别:验证通信对方是自己要通信的对象
报文鉴别:鉴别报文的完整性,采用密码散列函数
- 散列函数特点
- 输入长度可以很长,输出长度则较短并长度固定。散列函数的输出叫做散列值
- 不同散列值肯定对应不同的输入,但不同的输入可能得到相同散列值
密码学中散列函数最重要的特点:要找到两个不同的报文具有相同的散列值,在计算上是不可行的(即根据散列值来求报文的逆向变换是不可能的)
报文摘要 MD5:进行报文鉴别的一种简单方法,但目前安全散列算法 SHA-2/3 被广泛使用
散列函数使用方法:对报文计算出散列值,将散列值附加在报文后面,将附加散列值的整个报文加密进行发送。接收方解密后重新对报文计算散列值,若与收到的散列值相同就没问题
报文鉴别对每个收到的报文都要鉴别发送者
实体鉴别只需在整个连接的过程中鉴别一次
重放攻击
- 场景:A 向 B 发送带有自己身份和口令的报文,并使用对称密钥加密。B 收到报文后用对称密钥解密,鉴别 A 的身份
- 但 C 可能截获 A 发出的报文并转发给 B,这样 B 就会误认为 C 是 A,之后向 C 发送了许多本该发给 A 的报文
不重数法:采用一个不重复使用的大随机数来解决重放攻击
A 向 B 发送不重数(即不同会话使用不同的数),C 截获后再向 B 发送,B 发现收到的是重复的,就不会被骗
7.5 密钥分配
密钥分配(密钥分发):密钥管理中最大的问题,密钥必须通过最安全的通路进行分配
-
对称密钥的分配
目前常用的密钥分配方式是设立密钥分配中心 KDC
-
公钥的分配
公钥不可随意分配【比如 C 截获 A 发给 B 的报文(报文用 A 的私钥加密并附有 A 的公钥)再转发给 B,B 无法验证这个公钥是 A 的还是 C 的】
所以要将公钥与对应的实体进行绑定,由认证中心 CA 来完成此操作
每个实体都有 CA 发来的证书,里面有公钥机器拥有者的标识信息,此证书被 CA 进行了数字签名
任何用户都可以从可信的地方获得认证中心 CA 的公钥
7.6 互联网使用的安全协议
网络层安全协议(例如 VPN)
网络层使用 IPsec 协议族,IPsec 没有规定用户必须使用哪种加密和鉴别算法,但它提供了一套加密算法
-
IP 安全数据报格式的协议
- AH(鉴别首部协议)提供源点鉴别和数据完整性,但不能保密
- ESP(封装安全有效载荷协议)提供源点鉴别、数据完整性和保密。比 AH 复杂很多
IP 安全数据报(IPsec 数据报):使用 AH 或 ESP 协议的 IP 数据报
IPv6 中,AH 和 ESP 都是扩展首部的一部分。AH 协议在 ESP 协议内部
-
IPsec 数据报的工作方式
- 运输方式:在整个运输层报文段的前后分别添加若干控制信息,再加上 IP 首部,构成 IPsec 数据报
- 隧道方式(使用最多):在原始的 IP 数据报的前后分别添加控制信息,再加上新的 IP 首部,构成 IPsec 数据报
无论哪种方式,IPsec 数据报的首部都不加密(这样路由器才能识别首部中的信息),只有数据部分是经过加密的
运输层的安全协议:安全套接字层 SSL 和运输层安全 TLS
SSL 最新版本:SSL 3.0,常用浏览器和 Web 服务器都支持 SSL,SSL 也是 TLS 的基础
SSL 作用于端系统应用层的 HTTP 和运输层之间,在 TCP 之上建立起一个安全通道,为通过 TCP 传输的应用层提供安全保障
TLS 是在 SSL3.0 的基础上设计的
未使用 SSL 时,应用层的数据通过 TCP 套接字与运输层交互,使用 SSL 后,中间又多了一个 SSL 子层
网址中 https 表示使用了 SSL 协议,TCP 的 https 端口号是 443,http 端口号是 80
-
SSL 提供的安全服务种类
- SSL 服务器鉴别(允许用户证实服务器的身份)
- SSL 客户鉴别(允许服务器证实客户的身份)
- 加密的 SSL 会话(对客户和服务器之间发送的所有报文加密,并检测报文是否被篡改)
-
SSL 的工作过程
例浏览网站,用户点击链接建立 TCP 连接后,先进行浏览器和服务器间的握手协议
- 简要流程如下:
- 协商加密算法
- 服务器鉴别
- 会话密钥计算
- 安全数据传输
- 简要流程如下:
PGP(应用层安全协议):**一个完整的电子邮件安全软件包(包括加密、鉴别、电子签名、压缩等技术),PGP 没有使用新概念,只是综合了现有的加密算法
7.7 系统安全:防火墙与入侵检测
系统防御的两层防线:防火墙和入侵检测系统 IDS
防火墙:一种特殊编程的路由器,安装在一个网点和网络的其余部分之间,目的是实施访问控制策略(可信的网络:防火墙内的网络)
- 防火墙技术种类
- 分组过滤路由器:根据过滤规则(基于分组的网络层或运输层的首部信息设定)对进出内部网络的分组执行转发或丢弃(例如将所有目的端口号是 23 的进入内部网路的分组都丢弃)
- 应用网关(代理服务器):一种网络应用需要一个应用网关,例如万维网缓存。进出网络的应用程序报文先通过应用网关,再在应用层打开报文检查是否合法
入侵检测系统 IDS: 在入侵开始后及时检测到入侵以便尽快阻止
- 入侵检测系统种类
- 基于特征的 IDS:根据已知攻击的标志性特征检测入侵
- 基于异常的 IDS:根据网络流量的统计特性来检测入侵
7.8 未来的发展方向
- 椭圆曲线密码(ECC)与 AES:下一代金融系统的加密系统
- 移动安全(移动通信所需要的)
- 量子密码
第八章 互联网上的音频/视频服务
8.1 概述
在互联网上传送多媒体数据,特点一般是:边传输,边播放
多媒体信息的特点:信息量往往很大;对传输时延和时延抖动有较高要求
-
多媒体信息构成的分组在发送时是等时的,但到达接收端时就成非等时的了
接收端会在缓存中的分组达到一定数量后,再以恒定速率按顺序将这些分组进行还原播放,这产生了播放时延,但可以在很大程度上消除时延抖动
传送时延敏感的数据时,宁可丢失少量分组,也不接收太晚到达的分组(比如视频会议)
- 互联网上音频/视频的服务
- 流式存储音频/视频(流媒体):边下载边播放
- **流式实况音频/视频:**边录制边发送、边下载边播放
- **交互式音频/视频:**互联网电话、会议等 </aside>
8.2 流式存储音频/视频
-
具有元文件的万维网服务器:流媒体可以边下载边播放,但不能存储在硬盘上成为用户的文件
-
**媒体服务器(**流式服务器):可以更好地支持流式音频和视频的传送
TCP 能保证流式音频/视频文件的播放质量,但滞后时间较长。对于实时流式音频/视频文件的传送应该使用 UDP
-
RTSP(实时流式协议):为了给流式传送过程增加更多功能而设计的协议(RTSP 本身不传送数据,它仅使媒体播放器能够控制多媒体流的传送) </aside>
8.3 交互式音频/视频
IP电话:通过 IP 网络进行的交互式多媒体实时通信(包括视频通话、即时传信IM QQ等)
- IP 电话的通信质量的决定因素
- 通话双方端到端的时延和时延抖动
- 话音分组的丢失率
- IP电话应用协议
-
实时运输协议RTP
RTP 采用无连接的 UDP 协议
RTP 为实时应用提供端到端的运输,但不保证任何服务质量
RTP 是 UDP 之上的一个运输层子层的协议。它将应用交给它的多媒体数据块封装成 RTP 分组,然后装入运输层的 UDP 数据报
-
实时运输控制协议RTCP
RTCP 是与 RTP 配合使用的协议。RTCP 也采用 UDP 服务,但并不对音频/视频分组进行封装
其主要功能:服务质量的监视与反馈、媒体间的同步、多播组中成员的标志
-
H.323
**信令:**通信双方为建立呼叫连接和各种控制而传送的专门信息
IP 电话有两套信令标准:H.323 协议和会话发起协议 SIP
H.323 不是单独协议而是一组协议,涵盖了很多功能,很复杂
H.323 标准的构件:H.323 终端、网关、网闸、多点控制单元MCU
-
会话发起协议SIP
SIP 比 H.323 简单,它只涉及 IP 电话所需的信令和有关服务质量的问题
SIP 使用文本方式的客户服务器协议
SIP 系统只有两种构件:用户代理(包括用户代理客户和用户代理服务器)和网络服务器(包括代理服务器和重定向服务器)
SIP 特点:地址很灵活(可以是电话号码、电子邮件、IP 地址)
-
8.4 改进"尽最大努力交付"的服务
- 综合服务 IntServ:对单个应用对话提供服务质量保证
- IntServ定义的服务:有保证的服务、受控负载的服务
- IntServ 组成:资源预留协议 RSVP、接纳控制、分类器、调度器
区分服务 DiffServ(DS):**在路由器中增加区分服务的功能,在 IP 数据报中有一个区分服务字段,利用 DS 字段的不同数值提供不同等级的服务质量
DiffServ 将所有的复杂性放在 DS 域的边界结点中,而使 DS 域内的路由器工作尽可能简单
使互联网提供服务质量
服务质量 QoS:服务效能的总效果,决定了用户对服务的满意程度
服务质量性能指标:可用性、差错率、响应时间、吞吐量、分组丢失率(服务提供者可以向用户保证某一等级的服务质量)
-
要使互联网具有好的服务质量,可以采取的措施
-
分类(区分服务)
-
管制
-
调制
-
呼叫接纳
-
加权公平排队
-
调度和管制机制
第九章 无线网络和移动网络
9.1 无线局域网WLAN
-
无线局域网(WLAN)组成
- 有固定基础设施的无线局域网:使用基站覆盖一定范围的固定地址(采用 802.11 系列协议)
- 无固定基础设施的无线局域网:移动自组网络(如蓝牙)
-
Wi-Fi:采用 802.11 系列协议的无线局域网
-
802.11 系列协议:无线以太网标准
-
802.11
-
标准:星形拓扑
-
中心:接入点 AP(在 MAC 层使用 CSMA/CA 协议和停止等待协议)
-
最小构件:基本服务集 BSS(一个 BSS 包括一个基站和若干个移动站,而AP 是 BSS 的基站)
所有站在本 BSS 内都可直接通信,与其他站通信则要通过 AP
-
-
服务集标识符 SSID:每个 AP 分配的名字,即该 AP 无线局域网的名字( wifi 路由器就是接入点 AP)
-
一个基本服务区 BSA:一个 BSS 所覆盖的地理范围(直径 ≤ 100m)
-
一个 BSS 可以是孤立的,也可以通过 AP 连到分配系统(DS)
-
AP 与 AP 之间是有线连接
-
当一个移动站(A)从一个服务集漫游到其他服务集的范围,就要选择一个接入点 AP 与之建立关联,建立关联后加入该 BSS
移动站关联 AP 后,要通过该 AP 向该子网发送 DHCP 发现报文以获取 IP 地址。移动站就作为该 AP 子网的成员加入到了网络中
移动站(手机、平板电脑等)通常选择信号最强的 AP 来连接,但一个 AP 提供的信道是有限的,若已耗尽,就只能连接其他 AP
-
移动站与 AP 间通信采用的协议:802.11 协议
-
现在手机和电脑都内置无线局域网适配器(能够实现 802.11 的物理层和 MAC 层的功能)
-
现在无线局域网加密方案: WPA 或 WPA2(加入该无线局域网需输入密码)
-
-
移动自组网络:无固定基础设施的无线局域网(如蓝牙)
无基站,由一些处于平等状态的移动站相互通信组成的临时网络(不和外界其他网络相连接)
- 无线传感器网络 WSN:近年发展很快的一种移动自组网络。由大量传感器结点通过无线通信技术构成(应用领域:物联网 IoT)
wifi 4 标准:IEEE 802.11n
wifi 5 标准:IEEE 802.11ac
wifi 6 标准:**IEEE 802.11ax(**HEW),支持1GHz ~ 6GHz 所有 ISM 频段,向下兼容 a/b/g/n/ac。包含多种带宽,最高带宽:**160MHz,**数据速率:单条流(最高1201Mbit/s)
-
区分 CSMA/CA 协议和 CSMA/CD 协议
- CSMA/CA:载波监听多点接入/碰撞避免
- CSMA/CD:载波监听多点接入/碰撞检测
802.11 在 MAC 层使用 CSMA/CA 协议和停止等待协议(因为无线信道通信质量远不如有线信道,要使用停止等待来保证可靠传输)
无线局域网中不能使用 CSMA/CD 协议(因为无线局域网中不是所有的站点都能听见对方,因此无法实现碰撞检测。使用 CSMA/CA 协议是为了减小碰撞发生概率)
802.11 的 MAC 层协议通过协调功能来确定基本服务集 BSS 中的各移动站在什么时间发送和接收数据
-
其包括的子层
- 分布协调功能 DCF:不采用中心控制,在每个结点使用 CSMA 机制的分布式接入算法,让各个移动站通过争用信道来获取发送权
- 点协调功能 PCF:是选项,用接入点 AP 集中控制整个 BSS 内各移动站的活动,使用类探询方法将发送数据权轮流交给各个站以免碰撞发生(对时间敏感的业务应该采用 PCF)
802.11 无线局域网中的 MAC 帧首部有一个持续期字段(指出在本帧结束后还要占用信道多少时间)
802.11 标准允许要发送数据的站对信道进行预约(即在发送数据帧之前先发送 RTS 帧请求发送),收到响应允许发送的 CTS 帧后,就可发送数据帧
-
802.11 采用的机制种类
-
帧间间隔时间:所有站在完成发送后,必须再等待一段帧间间隔时间才能发送下一帧。不同优先级的帧具有不同的帧间间隔 IFS(可降低碰撞概率)
-
**虚拟载波监听:**源站把要占用信道的时间通知给其他站,其他站就停止发送(其他站实际上没有监听,因此叫做虚拟载波监听)(可降低碰撞概率)
-
**随机退避算法:**当某个站发现信道变为空闲时,要等待一个 DIFS 的间隔,再执行退避算法,维护一个退避计时器,计时器归零后就立即发送(可降低碰撞概率)
-
预约机制:要发送数据的站对信道进行预约(即在发送数据帧之前先发送 RTS 帧请求发送)
收到响应允许发送的 CTS 帧后就可发送数据帧。预约帧中会指明预约时间,期间其他站不再发送数据(用户可选择性使用预约机制)
-
802.11 的 MAC 帧类型:控制帧、数据帧、管理帧
MAC 帧:首部 30 字节,尾部 4 字节的帧检验序列
802.11 数据帧有4个地址字段。地址4用于自组网络
前三个地址的内容取决于帧控制字段中的“去往 AP”和“来自 AP”
9.2 无线个人区域网WPAN
无线个人区域网 WPAN :把个人设备用无线技术连起来的自组网络
WPAN 的频段:2.4GHz
无线个人区域网包括:蓝牙系统、ZigBee、超高速 WPAN
9.3 无线城域网WMAN
**WMAN(无线城域网):**可提供最后一英里的宽带无线接入,代替有线宽带接入
无线城域网的标准:802.16 系列协议(可覆盖一个城市的部分区域)
9.4 蜂窝移动通信网
移动通信种类:蜂窝移动通信、卫星移动通信
-
蜂窝本属通信领域,后蜂窝采用许多 IP 技术,可支持手机、电脑上网
小区制的移动通信,把整个网络划分成许多小区(即蜂窝),每个小区设置一个基站。移动站的通信都必须通过基站完成
2G(第二代蜂窝移动通信):带宽为 200kHz,代表是GPRS、GSM 系统(2G 基本只提供电话和短信服务)
3G(第三代蜂窝移动通信):带宽为 5MHz,使用 IP 的体系结构和混合的交换体制(电路交换和分组交换)(3G 后以传输业务为主)
4G(第四代蜂窝移动通信):使用上网卡,类似 U 盘,插到电脑 USB 接口上,然后电脑就可以通过 3G/4G 蜂窝移动网络接入互联网
使用蜂窝是与同蜂窝小区的其他用户共享带宽的(但每个用户分配到的带宽不确定)
小区组成像蜂窝一样,每个基站的发射功能要能够覆盖本小区,又不会太大以至干扰邻近小区。采用蜂窝结构可以最大化频分复用,每个基站使用不同的频率
-
3G 通信网络的构件
无线网络控制器 RNC 控制一组基站,基站通过 RNC 连接到移动交换中心 MSC,MSC 控制所有 RNC 的话音业务,MSC 可以通过网关移动交换中心连接到公用电话网
RNC 还连接到 GPRS 核心网络,当移动站要上网,通过 GPRS 来进行
RNC:在无线接入网边缘,进行无线和有线的通信转换(有线通信中,RNC 把电路交换的话音通信传送到 MSC,把分组交换的数据传送到 GPRS)
-
移动IP
概念:当计算机移动到外地,移动 IP 技术允许该计算机仍保留原来的 IP 地址
协议:移动站到外地代理的协议、外地代理到归属代理的登记协议、归属代理数据报封装协议、外地代理拆封协议
新概念:永久地址、归属地址、归属网络、被访网络归属代理、外地代理、转交地址、同址转交地址
与 DHCP 的区别:当用户电脑换个位置,离开原来网络,通过 DHCP 协议可自动获取所需 IP 地址。而移动 IP 用于在移动中上网
-
实现
-
一个移动站必须有一个原始地址,即归属地址(永久地址)
-
**归属网络:**移动站原始连接到网络
移动 IP 通过使用代理让地址的改变对互联网的其他部分是透明的。归属代理通常就是连接在归属网络上的路由器
外地网络(被访网络):移动站 A 移动到另一个地点,所接入的网络(被访网络中使用的代理叫外地代理,通常连接在被访网络的路由器上)
-
-
外地代理负责的事情
-
为移动站 A 创建一个临时的地址:**转交地址(**转交地址网络号与外地网络一致)
-
及时把移动站 A 的转交地址通知 A 的归属代理
**注:**转交地址供移动站、外地代理、归属代理使用,各种应用程序都不使用转交地址
转交地址不具有唯一性,外地代理向移动站 A 发送数据时不使用地址解析协议 ARP,而用移动站 A 的 MAC 地址
-
移动站本身也可作为外地代理
-
一个通信者 B 要与移动站 A 进行通信的步骤
-
B 发送给 A 的数据报目的地址是 A 的永久地址,它被 A 的归属代理所截获
-
归属代理把 B 发来的数据报再封装(使用隧道技术),新数据报的目的地址是 A 现在的转交地址,它被发送给被访网络中的外地代理
-
外地代理把收到的数据报拆封,取出 B 发送的原始数据发送给 A。A 收到 B 的数据报就知道了 B 的 IP 地址
-
若 A 要回复 B,就使用自己的永久地址作为源地址,用 B 的 IP 地址为目的地址发送数据报。这时不需要通过 A 的归属代理
-
-
移动 IP 使用的协议
- 移动站到外地代理的登记协议:移动站接入到被访网络时,要向外地代理登记,获得临时的转交地址。离开该被访网络时要注销
- 外地代理到归属代理的登记协议:外地代理向归属代理登记移动站的转交地址
- 归属代理数据报封装协议:将收到的发给移动站的数据报进行封装,以转交地址为新的目的地址
- **外地代理拆封协议:**收到数据报后拆封并发给移动站
移动 IP 路由选择:间接路由选择和直接路由选择(上述为间接的。直接的需使用通信者代理和锚外地代理)
- 移动交换中心维护的数据库
- HLR(归属位置寄存器):类似归属代理的功能
- VLR(来访用户位置寄存器):类似外地代理的功能
- **无线网络对高层协议的影响:**移动站在不同无线网络间漫游时,网络连接会中断。TCP 报文段会频繁丢失,TCP 拥塞控制会受到影响,缩小拥塞窗口,而实际网络并不拥塞
- 无线网络对高层协议的影响处理方法
- 本地恢复
- 让 TCP 发送方知道什么地方使用了无线链路
- 让含有移动用户的端到端 TCP 连接拆成两个互相串接的 TCP 连接(从移动用户到无线接入点一个 TCP 连接,剩下的有线网络另一个 TCP 连接)
9.5 两种不同的无线上网
蜂窝移动网络的收费:按流量计费
wifi 是通过宽带上网的,宽带入网的收费:根据用户使用的带宽和使用时间收费