第一章:基本概念
1.计算机网络的主要功能?
硬件资源共享。
软件资源共享。
用户间信息交换。
分布式处理:把任务分配给其他网络系统
2.主机间的通信方式?
C/S
p2p
3.电路交换,报文交换和分组交换的区别?
电路交换:整个报文的比特流从源点连续的直达终点,像在一个管道中传输。包括建立连接、传
输数据和断开连接三个阶段。最典型的电路交换网络是传统电话网络。
报文交换:将整个报文转发到相邻节点,全部存储下来,查找转发表,转发到下一个节点。是存 储-转发类型的网络。
分组交换:将报文分组转发到相邻节点,查找转发表,转发到下一个节点。也是存储-转发类型的 网络。
可以理解为电路交换为直接交换,报文交换是先存储再转发,单位是报文;分组交换是先存储再转发,单位是分组
4.计算机网络的主要性能指标?
1、带宽(Bandwidth)
本来表示通信线路允许通过的信号频带范围,但在计算机网络中,带宽表示网络的通信线路所能 传送数据的能力,是数字信道所能传送的“最高数据率”的同义词,单位是比特/秒(b/s)。
2、时延(Delay) 总时延 = 排队时延 + 处理时延 + 发送时延 + 传播时延
(1) 排队时延 分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量。
(2) 处理时延 主机或路由器收到分组时进行处理所需要的时间,例如分析首部、从分组中提取数据、进行差错 检验或查找适当的路由等。 (3) 传输时延(发送时延) 结点将分组所有比特推向链路所需的时间。
(4) 传播时延 电磁波在信道中传播所需要花费的时间,电磁波传播的速度接近光速。
3、时延带宽积
指发送端发送的第一个比特即将到达终点时,发送端已经发送了多少个比特,因此又称以比特为 单位的链路长度,即时延带宽积 = 传播时延 * 信道带宽。
5.计算机网络提供的服务的三种分类?经典就是(TCP/UDP)
1、面向连接服务与无连接服务 在面向连接服务中, 通信前双方必须先建立连接, 分配相应的资源(如缓冲区), 以保证通 信能正常进行, 传输结束后释放连接和所占用的资源。因此这种服务可以分为连接建立、数据传 输和连接释放三个阶段。例如TCP就是一种面向连接服务的协议。 在无连接服务中, 通信前双方不需要先建立连接, 需要发送数据时可直接发送,把每个带有 目的地址的包(报文分组) 传送到线路上, 由系统选定路线进行传输。这是一种不可靠的服务。 这种服务常被描述为“尽最大努力交付" (Best-Effort-Delivery), 它并不保证通信的可靠性。例如 IP、UDP就是一种无连接服务的协议。
2、可靠服务和不可靠服务 可靠服务是指网络具有纠错、检错、应答机制, 能保证数据正确、可靠地传送到目的地。 不可靠服务是指网络只是尽晕正确、可靠地传送, 而不能保证数据正确、可靠地传送到目的 地, 是一种尽力而为的服务。 对于提供不可靠服务的网络, 其网络的正确性、可靠性要由应用或用户来保障。例如, 用户 收到信息后要判断信息的正确性, 如果不正确, 那么用户要把出错信息报告给信息的发送者, 以 便发送者采取纠正措施。通过用户的这些措施, 可以把不可靠的服务变成可靠的服务。
3、有应答服务和无应答服务 有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动 实现, 而不由用户实现。所发送的应答既可以是肯定应答, 也可以是否定应答, 通常在接收到 的 数据有错误时发送否定应答。例如, 文件传输服务就是一种有应答服务。 无应答服务是指接收方收到数据后不自动给出应答。若需要应答, 则由高层实现。例如, 对 于WWW服务, 客户端收到服务器发送的页面文件后不给出应答。
OSI 7层模型
层次结构:“物联网淑慧试用”
原笔记图片缺失:1
传输单位的区分:
物理层 传输单位为:比特
数据链路层传输单位为:帧
网络层传输单位为:数据报(分组)
传输层传输单位为:报文段(TCP)数据报(UDP)
会话层传输单位为:书上没有写
表示层传输单位为:书上没有写
应用层传输单位为:书上没有写
端到端通信和点到点通信的区别?
OSI前三层都是点到点
后4层为端到端
从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点到 点的服务, 而传输层为网络中的主机提供端到端的通信。
直接相连的结点之间的通信称为点到点通信, 它只提供一台机器到另一台机器之间的通信, 不涉及程序或进程的概念。同时,点到点通信并不能保证数据传输的可靠性,也不能说明源主机 与目的主机之间是哪两个进程在通信,这些工作都是由传输层来完成的。
端到端通信建立在点到点通信的基础上,它是由一段段的点到点通信信道构成的,是比点到 点通信更高一级的通信方式,以完成应用程序(进程) 之间的通信。”端” 是指用户程序的端口, 端口号标识了应用层中不同的进程。
第二章:物理层
原笔记图片缺失:2
- 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
- 物理层的作用是要尽可能地屏蔽掉不同传输媒体和通信手段的差异。
- 用于物理层的协议也常称为物理层规程 (procedure)。
解决问题1:使用物理介质传输
有线设备:双绞线,同轴电缆,光纤
无线设备:无线电波(乱射)、微波、红外线、激光(固定方向射)
2.数据交换方式
①电路交换:
电路连接的三个阶段:
1、建立连接。 2、数据传输。 3、释放连接。
优点: 1、传输速度快、高效。 2、实时。
缺点: 1、资源利用率低。 2、新建连接需要占据一定的时间,甚至比通话的时间还长。
②报文交换:
整个报文先传送到相邻结点, 全部存储下来后查找转发表,转发到下一个结点。
③分组交换:
将一个数据报文划分成一个个更小的等长数据段,每个数据段前加上必要的控制信息,构成分组, 通过路由器以存储转发方式,发送到目标主机。
主要的一些缺点: 1、不具有实时性。 2、存在延时。 3、会造成通信阻塞。 4、存在无用的重复数据。 5、会出现丢包的情况。
优点: 1、设计简单。 2、资源利用率很高。
3.奈氏定理和香农定理
奈氏定理:
条件:无噪声,宽带有限
公式:2Wlog2(V),W为宽带,V为不同码元个数,即4个电平,有V=4*4=16、
结论:提高W或V,而W限制于物理介质,V限制于调制方法(数学上的傅里叶级数)
原笔记图片缺失:5
1)在任何信道中,码元传输的速率是有上限的
2) 奈氏准则给出了码元传输速率的限制,但并没有对信息传输速率给出限制。
3) 要提高数据的传输速率, 必须设法使每个码元能携带更多个比特的信息量
香农定理:在带宽受限且有噪声的信道中,为了不产生误差,信息的数据传输速率有上限值。
条件:宽带受限,有噪声
公式:2Wlog2(1+S/N),W为宽带,S传输信号平均功率,N为噪声功率,10log10(S/N)叫信躁比
结论:信躁比越高,传输速率越大;
原笔记图片缺失:6
第三章:数据链路层
原笔记图片缺失:3
1.功能(要解决的问题)
成帧 (Framing) 将比特流划分成“帧”的主要目的是为了检测和纠正物理层在比特传输中可能出现的错误,数据链路层功能需借助“帧”的各个域来实现 差错控制 (Error Control) 处理传输中出现的差错,如位错误、丢失等 流量控制 (Flow Control) 确保发送方的发送速率,不大于接收方的处理速率,避免接收缓冲区溢出
2.成帧
数据链路层以帧为单位传输和处理数据, 将网络层的数据报前面和后面分别添加上首部和尾部, 封装成一个完整的帧。首部和尾部作用之一就是进行帧定界。组帧即定义数据格式。
帧图:
原笔记图片缺失:7
组帧的四种方法: 字符计数法, 字符填充法, 零比特填充法, 违规编码法。
3.2.1 字符计数法
帧首部使用一个计数段来标明帧内字符数
示例图:
原笔记图片缺失:8
3.2.2 字符填充法(开始、结束、转义符)
使用某个特殊的控制字符作为帧定界符, 使用字节填充的方法将数据部分的特殊字符与帧定界符区分开来, 即在数据中出现的标记字符前插入一个转义字符。
字节填充原理图:
原笔记图片缺失:9
SOH开始符
EOT结束符
ESC为转义标识
3.2.3 零比特填充法
当物理链路传送连续的比特流, 可以使用某个特殊的比特组合, 如HDLC协议使用的**"01111110"作为标识,** 即数据部分只要发现有5个连续1, 则立即填入一个0。
原笔记图片缺失:10
3.2.4 违规编码法
在物理层进行比特编码时采用, 如曼彻斯特编码采用高-高电平或低-低电平。
3. 差错控制
FCS: 帧检验序列,帧尾部设置的一个差错检验字段。Frame Check Sequence
CRC: 循环冗余检验, Cyclic Redundancy Check, 也称多项式编码
随机差错: 通过提高信噪比可以减弱影响
突发差错: 引起传输差错的主要原因,由外界电磁干扰引起。
分类:奇偶检验、循环冗余码CRC、 汉明码
4.可靠传输
通常使用确认和超时重传两种机制来完成。
确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收。有 些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认。
超时重传是指发送方 在发送某个数据帧后就开启一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那 么就重新发送该数据帧,直到发送成功为止。 自动重传请求(Auto Repeat reQuest, ARQ) 通过接收方请求发送方重传出错的数据帧来恢复出 错的帧,是通信中用于处理信道所带来差错的方法之一。
传统自动重传请求分为三种,即停止- 等待(Stop-and-Wait) ARQ 、后退N 帧(Go-Back-N) ARQ 和选择性重传(Selective Repeat)ARQ,后 两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以 连续地流动,因此又称其为连续ARQ 协议。注意,在数据链路层中流量控制机制和可靠传输机制 是交织在一起的
分类:1.停止等待协议 Stop-and-Wait 想发就发
2.回退 N 帧协议 Go-back-N(GBN)
TEXT3. 选择重传协议 Selective Repeat(SR)
1.停止等待协议 Stop-and-Wait
定义:发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧, 都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直 等待。每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,因而传输效率很低
(发送窗口大小=1,接受窗口大小=1)
2.回退 N 帧协议 Go-back-N(GBN)
定义:发送窗口W={1,2^n-1},接收窗口为1。发送一组帧,接收是一个一个接收(顺序接收),确定ack一次性确定一组,对最后一个帧进行确认即可
优点:提高信道利用率
缺点:当发送端出现超时行为,由于确认ack只知道最后一个帧的情况,所以要重传一组帧
(发送窗口大小>1,接收窗口大小=1)
3.选择重传协议 Selective Repeat(SR)
定义:发送窗口W={1,2^(n-1)},接收窗口为n。发送一组帧,接收是一个一个接收(顺序接收),确定ack是一个一个确认,对最后一个帧进行确认即可
优点:提高信道利用率,解决GBN的缺点
(发送窗口大小>1,接收窗口大小>1)
5.介质访问控制
采取一定措施, 使得两个节点之间的通信不会发送相互干扰的情况。
介质访问控制分类图:
原笔记图片缺失:11
在随机访问协议中,不采用集中控制方式(信道划分介质访问--时分复用)解决发送信息的次序问 题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率。在总线形网络中,当有两 个或多个用户同时发送信息时,就会产生帧的冲突(碰撞,即前面所说的相互干扰),导致所有 冲突用户的发送均以失败告终。
为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反 复地重传它的帧,直到该帧无碰撞地通过。A/这些规则就是随机访问介质访问控制协议,常用的 协议有ALOHA 协议、CSMA协议、CSMA/CD 协议和CSMA/CA 协议等,它们的核心思想都是: 胜利者通过争用获得信道,从而获得信息的发送权。
1、ALOHA协议
ALOHA协议的思想很简单,**只要用户有数据要发送,就尽管让他们发送。**当然,这样会产生冲突 从而造成帧的破坏。但是,由于广播信道具有反馈性,因此发送方可以在发送数据的过程中进行 冲突检测,将接收到的数据与缓冲区的数据进行比较,就可以知道数据帧是否遭到破坏。同样的 道理,其他用户也是按照此过程工作。如果发送方知道数据帧遭到破坏(即检测到冲突),那么 它可以等待一段随机长的时间后重发该帧。
2、CSMA协议(载波侦听多路访问)(Carrier Sense Multiple Access)
非持续式: 经侦听,如果介质空闲,开始发送 如果介质忙,则等待一个随机分布的时间,然后重复步骤1
优点:等待一个随机时间可以减少再次碰撞冲突的可能性
缺点:如果在这个随机时间内介质上没有数据传送,则会发生浪费
1-持续式: 经侦听,如介质空闲,开始发送 如介质忙,持续侦听,一旦空闲立即发送 如果发生冲突,等待一个随机分布的时间再重复步骤1
优点:持续式的延迟时间要少于非持续式
缺点:如果两个以上的站等待发送,一旦介质空闲就一定会发生冲突
p-持续式: 经侦听,如介质空闲,那么以p的概率发送,以(1–p)的概率延迟一个时间单元发送 如介质忙,持续侦听,一旦空闲重复步骤1 如果发送已推迟一个时间单元,再重复步骤1
3、CSMA/CD协议(Collision Detection:碰撞检测)
载波侦听多路访问/碰撞检测(Carrier Sense Multiple Access with Collision Detection, CSMA/CD)
协议是CSMA 协议的改进方案。”载波帧听”就是发送前先侦听,即每个站在发送数据之前先要检测 一下总线上是否有其他站点正在发送数据,若有则暂时不发送数据,等待信道变为空闲时再发 送。”碰撞检测”就是边发送边侦听,即适配器边发送数据边检测信道上信号电压的变化情况,以 便判断自己在发送数据时其他站点是否也在发送数据。工作流程可简单概括为“先听后发,边听边 发(区别于CSMA 协议),冲突停发,随机重发”。
1)适配器从其父结点获得一个网络层数据报,准备一个以太网帧,并把该帧放到适配器缓冲区 中。
2)如果适配器侦听到信道空闲,那么它开始传输该帧。如果适配器侦听到信道忙,那么它将等待 直至侦听到没有信号能量,然后开始传输该帧。
3)在传输过程中,适配器检测来自其他适配器的信号能量。如果这个适配器传输了整个帧,而没 有检测到来自其他适配器的信号能量,那么这个适配器完成该帧的传输。否则,适配器就须停止 传输它的帧,取而代之传输一个48 比特的拥塞信号。
4)在中止(即传输拥塞信号)后,适配器采用截断二进制指数退避算法等待一段随机时间 后返回到步骤2) 。
4、CSMA/CA协议(Collision Avoidance:碰撞避免)
CSMA/CD 协议已成功应用于使用有线连接的局域网,但在无线局域网环境下,却不能简单地搬 用CSMA/CD 协议,特别是碰撞检测部分。主要有两个原因:
1)接收信号的强度往往会远小于发送信号的强度,且在无线介质上信号强度的动态变化范围很 大,因此若要实现碰撞检测,则硬件上的花费就会过大。
2)在无线通信中,并非所有的站点都能够听见对方,即存在“隐蔽站”问题。
为此, 802.11 标准定义了广泛应用于无线局域网的CSMA/CA 协议,它对CSMA/CD 协议进行了 修改,把碰撞检测改为碰撞避免(Collision Avoidance, CA) 。”碰撞避免”并不是指协议可以完全避 免碰撞,而是指协议的设计要尽量降低碰撞发生的概率。
CSMA/CA 采用二进制指数退避算法。信道从忙态变为空困时,任何一个站要发送数据帧时,不仅 都须等待一个时间间隔,而且还要进入争用窗口,并计算随机退避时间以便再次试图接入信道, 因此降低了发生碰撞的概率。 CSMA/CA 还使用预约信道、ACK 帧、RTS/CTS 帧等三种机制来实现碰撞避免:
1.预约信道。发送方在发送数据的同时向其他站点通知自己传输数据需要的时间长度,以便让其 他站点在这段时间内不发送数 据,从而避免碰撞。
- ACK 帧。所有站点在正确接收到发给自己的数据帧(除广播帧和组播帧)后,都需要向发送方 发回一个ACK 帧,如果接收失败,那么不采取任何行动。发送方在发送完一个数据帧后,在规定 的时间内如果未收到ACK 帧,那么认为发送失败,此时进行该数据帧的重发,直到收到ACK 帧或 达到规定重发次数为止。
- RTS/CTS 帧。可选的碰撞避免机制,主要用于解决无线网中的“隐蔽站”问题。
6.局域网(省略)
7.广域网
PPP协议
点到点协议(Point to Point Protocol,PPP)是为在同等单元之间传输数据包这样的简单链路设 计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过 拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一 种共通的解决方案。PPP具有以下功能:
(1)PPP具有动态分配IP地址的能力,允许在连接时刻协商IP地址;
(2)PPP支持多种网络协议,比如TCP/IP、NetBEUI、NWLINK等;
(3)PPP具有错误检测能力,但不具备纠错能力,所以ppp是不可靠传输协议;
(4)无重传的机制,网络开销小,速度快。
(5)PPP具有身份验证功能。
(6) PPP可以用于多种类型的物理介质上,包括串口线、电话线、移动电话和光纤(例如 SDH),PPP也用于Internet接入。
HDLC协议(*,ppp的前身)
HDLC协议使用统一的帧格式,运用方便;采用零比特插入法,易于硬件实现,且支持任意的位流 传输,实现信息的透明传输;全双工通信,吞吐率高,在未收到应答帧的情况下,可连续发送信 息帧,提高数据链路传输的效率;采用CRC帧校验序列,可防止漏帧,提高信息传输的可靠性。 主要有四个特点:
(1)对于任何一种比特流都可透明传输。
(2)较高的数据链路传输效率。
(3)所有的帧都有帧校验序列(FCS),传输可靠性高。
(4)用统一的帧格式来实现传输。
在这里和PPP协议不同的是,PPP可以用于同步传输也可以用于异步传输,而HDLC只能用在同步网上;PPP是面向字节的,而HDLC是面向比特位的。
8.中继器、集线器、网桥和交换机这四种网络互联设备的区别与联系。
这四种设备都是用于互联、扩展局域网的连接设备,但它们工作的层次和实现的功能不同。
中继器工作在物理层,用来连接两个速率相同且数据链路层协议也相同的网段,其功能是消除数 字信号在基带传输中由于经过一长段电缆而造成的失真和衰减,使信号的波形和强度达到所需的 要求;其原理是信号再生(放大信号)。
集线器(Hub) 也工作在物理层,相当于一个多接口的中继器,它可将多个结点连接成一个共享式 的局域网,但任何时刻都只能有一个结点通过公共信道发送数据。
网桥工作在数据链路层,可以互联不同的物理层、不同的MAC 子层及不同速率的以太网。网桥具 有过滤帧及存储转发帧的功能,可以隔离冲突域,但不能隔离广播域。
交换机工作在数据链路层,相当于一个多端口的网桥,是交换式局域网的核心设备。它允许端口 之间建立多个并发连接,实现多个结点之间的并发传输。因此,交换机的每个端口结点所占用的 带宽不会因为端口结点数目的增加而减少,且整个交换机的总带宽会随着端口结点的增加而增 加。交换机一般工作在全双工方式,有的局域网交换机采用存储转发方式进行转发,也有的交换 机采用直通交换方式(即在收到帧的同时立即按帧的目的MAC 地址决定该帧的转发端口,而不必 先缓存再处理)。
第四章:网络层
原笔记图片缺失:4
概念区分:
1.路由器的主要功能:路由选择,分组转发
- 路由选择。指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化 情况,动态地改变所选择的路由。
- 分组转发。指路由器根据转发表将用户的IP 数据报从合适的端口转发出去。路由表是根据路由 选择算法得出的,而转发表是从路由表得出的。转发表的结构应当使查找过程最优化,路由表则 需要对网络拓扑变化的计算最优化。在讨论路由选择的原理时,往往不去区分转发表和路由表, 而是笼统地使用路由表一词。
2.分布式算法:
静态:手动
动态:通过路由表+算法(距离向量算法(和prim算法很像)和OSPF(和Dijkstra类似))
层次路由:由于网络的庞大,把网络分成很多自洽系统(内部和外部),这些系统路由转发的方法由算法决定
内部网关协议(IGP):RIP(基于距离向量算法),OSPF
外部网关协议(EGP):BGP(基于路径-向量算法)
原笔记图片缺失:12
- 网络地址转换(Network Address Translation): NAT能使内部专用地址的专用网络用户共享少量外部全球地址, 以此来访问因特网上的主机和资源。
- IP地址和MAC地址
IP 地址是网络层使用的地址,它是分层次等级的。MAC地址是数据链路层使用的地址,它是平面 式的。在网络层及网络层之上使用IP 地址, IP 地址放在IP 数据报的首部,而MAC 地址放在MAC 帧的首部。通过数据封装,把IP 数据报分组封装为MAC 帧后,数据链路层看不见数据报分组中的 IP地址。 由于路由器的隔离, IP 网络中无法通过广播方式依靠MAC 地址来完成跨网络的寻址,因此在IP 网络的网络层只使用IP 地址来完成寻址。寻址时,IP每个路由器依据其路由表(依靠静态路由或 动态路由协议生成)选择到目标网络(即主机号全为0 的网络地址)需要转发到的下一跳(路由 器的物理端口号或下一网络地址),而IP 分组通过多次路由转发到达目标网络后,改为在目标 LAN 中通过数据链路层的MAC 地址以广播方式寻址。这样可以提高路由选择的效率。 注意:路由器由于互联多个网络,因此它不仅有多个IP 地址,也有多个硬件地址。
5.ARP地址解析协议
无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需 要一种方法来完成IP 地址到MAC 地址的映射,这就是地址解析协议(Address Resolution Protocol)。
每台主机都设有一个ARP 高速缓存,用来存放本局域网上各主机和路由器的IP地址 到MAC 地址的映射表,称ARP 表。使用ARP 来动态维护此ARP 表。
ARP 工作在网络层,其工作原理如下:主机A 欲向本局域网上的某台主机B 发送IP 数据报时,先 在其ARP 高速缓存中查看有无主机B 的IP 地址。如有,就可查出其对应的硬件地址,再将此硬件 地址写入MAC 帧,然后通过局域网将该MAC 帧发往此硬件地址。如果没有,那么就通过使用目 的MAC 地址为FF-FF-FF-FF-FF-FF 的帧来封装并广播ARP 请求分组,使同一个局域网里的所有主机 收到ARP 请求。主机B 收到该ARP 请求后,向主机A 发出响应ARP 分组,分组中包含主机B 的IP 与MAC 地址的映射关系,主机A 在收到后将此映射写入ARP 缓存,然后按查询到的硬件地址发送 MAC 帧。ARP 由于“看到了"IP 地址,所以它工作在网络层,而NAT路由器由于“看到了“端口,所 以它工作在传输层。
注意: ARP 用于解决同一个局域网上的主机或路由器的IP 地址和硬件地址的映射问题。如果所要 找的主机和源主机不在同一个局域网上,那么就要通过ARP 找到一个位于本局域网上的某个路由 器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的 工作就由下一个网络来做,尽管ARP 请求分组是广播发送的,但ARP 响应分组是普通的单播,即 从一个源地址发送到一个目的地址。
6.DHCP动态主机配置协议
动态主机配置协议(Dynamic Host Configuration Protocol, DHCP) 常用于给主机动态地分配IP 地 址,它提供了即插即用联网的机制,这种机制允许一台计算机加入新的网络和获取IP 地址而不用 手工参与。
DHCP 是应用层协议,它是基于UDP 的。
DHCP 的工作原理如下:使用客户/服务器方式。需要IP 地址的主机在启动时就向DHCP 服务器 广播发送发现报文,这时该主机就成为DHCP 客户。本地网络上所有主机都能收到此广播报文, 但只有DHCP 服务器才回答此广播报文。DHCP 服务器先在其数据库中查找该计算机的配置信 息。若找到,则返回找到的信息。若找不到,则从服务器的IP 地址池中取一个地址分配给该计算 机。DHCP 服务器的回答报文称为提供报文。
DHCP 服务器聚合DHCP 客户端的交换过程如下:
DHCP 客户机广播"DHCP 发现“消息,试图找到网络中的DHCP 服务器,以便从DHCP服务器获 得一个IP 地址。
DHCP 服务器收到"DHCP 发现消息后,向网络中广播"DHCP 提供“消息,其中包括提供DHCP 客户机的IP 地址和相关配置信息。
DHCP 客户机收到"DHCP 提供“消息,如果接收DHCP 服务器所提供的相关参数,那么通过广 播"DHCP 请求“消息向DHCP 服务器请求提供IP 地址。
DHCP 服务器广播"DHCP 确认“消息,将IP 地址分配给DHCP 客户机。DHCP 允许网络上配置 多台DHCP 服务器,当DHCP 客户机发出DHCP 请求时,有可能收到多个应答消息。这时, DHCP 客户机只会挑选其中的一个,通常挑选最先到达的。
DHCP 服务器分配给DHCP 客户的IP 地址是临时的,因此DHCP 客户只能在一段有限的时间内使 用这个分配到的IP 地址。DHCP 称这段时间为租用期。租用期的数值应由DHCP 服务器自己决 定, DHCP 客户也可在自已发送的报文中提出对租用期的要求。
7.ICMP网际控制报文协议
为了提高IP 数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol, ICMP) 来让主机或路由器报告差错和异常情况。ICMP 报文作为IP 层数据报的 数据,加上数据报的首部,组成IP 数据报发送出去。ICMP 是IP 层协议。ICMP 报文的种类有两 种,即ICMP 差错报告报文和ICMP 询问报文。ICMP 差错报告报文用于目标主机或到目标主机路 径上的路由器向源主机报告差错和异常情况。共有以下5种类型:
**终点不可达。**当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
**源点抑制。**当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知 道应当把数据报的发送速率放慢。
**时间超过。**当路由器收到生存时间(TTL) 为零的数据报时,除丢弃该数据报外,还要向源点发送 时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到 的数据报片都丢弃,并向源点发送时间超过报文。
**参数问题。**当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃 该数据报,并向源点发送参数问题报文。
改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发 送给另外的路由器(可通过更好的路由)。
8.因特网组管理协议IGMP:让路由器知道本局域网是否有主机参加或退出了某个组播组。实际上就是要找出以源主机为根节点的组播转发树。使用IP数据报传递报文。
IGMP工作的两个阶段:
1) 主机要加入组播组, 向组播组的组播地址发送一个IGMP报文, 本地组播路由器收到后, 利用组播路由选择协议把这组成员关系发给因特网上其他组播路由器。
2) 本地组播路由器周期性探询本地局域网上的主机, 只要一个主机对某个组响应, 就认为这个组是活跃的, 几次探询没有回应, 则不再把这组成员关系发给其他的组播路由器。
第五章:传输层
原笔记图片缺失:13
1. 传输层的功能
传输层的功能如下:
1)传输层提供应用进程之间的逻辑通信(即端到端的通信)。与网络层的区别是,网络层提供的 是主机之间的逻辑通信。从网络层来说,通信的双方是两台主机, IP 数据报的首部给出了这两台 主机的IP 地址。但“两台主机之间的通信”实际上是两台主机中的应用进程之间的通信,应用进程 之间的通信又称端到端的逻辑通信。
2)复用和分用。复用是指发送方不同的应用进程都可使用同一个传输层协议传送数据;分用是指 接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
3)传输层还要对收到的报文进行差错检测(首部和数据部分)。而网络层只检查IP 数据报的首 部,不检验数据部分是否出错。 4) 提供两种不同的传输协议,即面向连接的TCP 和无连接的UDP 。而网络层无法同时实现两种协 议(即在网络层要么只提供面向连接的服务,如虚电路;要么只提供无连接服务,如数据报,而 不可能在网络层同时存在这两种方式)。
2.UDP协议
RFC 768 定义的UDP 只是做了传输协议能够做的最少工作,它仅在IP 的数据报服务之上增加了两 个最基本的服务:
复用和分用
差错检测。
如果应用程序开发者选择UDP 而非TCP,那么应用程 序几乎直接与IP 打交道。为什么应用开发人员宁愿在UDP 之上构建应用,也不选择TCP? 既然TCP 提供可靠的服务,而UDP 不提供,那么TCP 总是首选吗?答案是否定的,因为有很多应用更适合 用UDP,主要是因为UDP 具有如下优点:
1.UDP 无须建立连接。因此UDP 不会引入建立连接的时延。试想如果DNS 运行在TCP 而非UDP 上,那么DNS 的速度会慢很多。HTTP 使用TCP 而非UDP, 是因为对于基于文本数据的Web网页来 说可靠性是至关重要的。
2.无连接状态。TCP 需要在端系统中维护连接状态。此连接状态包括接收和发送缓存、拥塞控制 参数和序号与确认号的参数。而UDP 不维护连接状态,也不跟踪这些参数。因此,某些专用应用 服务器使用UDP 时,一般都能支持更多的活动客户机
3.分组首部开销小。TCP 有20B 的首部升销,而UDP 仅有8B 的升销。
4.应用层能更好地控制要发送的数据和发送时间。UDP 没有拥塞控制,因此网络中的拥塞不会影 响主机的发送效率。某些实时应用要求以稳定的速度发送,能容忍一些数据的丢失,但不允许有 较大的时延,而UDP 正好满足这些应用的需求。UDP 常用于一次性传输较少数据的网络应用如 DNS 、SNMP 等,因为对千这此应用,若采用TCP, 则将为连接创建、维护和拆除带来不小的开 销。UDP 也常用于多媒体应用(如IP 电话、实时视频会议、流媒体等),显然,可靠数据传输对 这些应用来说并不是最重要的,但TCP的拥塞控制会导致数据出现较大的延迟,这是它们不可容 忍的。
UDP 提供尽最大努力的交付,即不保证可靠交付,但这并不意味着应用对数据的要求是不可靠 的,因此所有维护传输可靠性的工作需要用户在应用层来完成。应用实体可以根据应用的需求来 灵活设计自己的可靠性机制
3.TCP协议
TCP 是在不可靠的IP 层之上实现的可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失 和不重复问题。TCP 是TCP/IP 体系中非常复杂的一个协议,主要特点如下:
- TCP 是面向连接的传输层协议。
- 每条TCP 连接只能有两个端点,每条TCP 连接只能是点对点的(一对一)。
- TCP 提供可靠的交付服务,保证传送的数据无差错、不丢失、不重复且有序。
- TCP 提供全双工通信,允许通信双方的应用进程在任何时候都能发送数据,为此TCP 连接的两 端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。发送缓存用来暂时存放以下数据:(1)发送应用程序传送给发送方TCP 准备发送的数据;(2)TCP 已发送但尚未收到确认的数据。 接收缓存用来暂时存放以下数据:(1)按序到达但尚未被接收应用程序收取的数据;(2)不按序 到达的数据
TCP连接的建立
在TCP 连接建立的过程中,要解决以下三个问题:
- 要使每一方都能够确知对方的存在。
- 要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项、时间戳选项及服务质量 等)。
- 能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。
三次握手,四次挥手(自己看书上)
3.1 为何不采用“三次握手“释放连接,且发送最后一次握手报文后要等待2MSL 的时 间呢?
原因有两个:
- 保证A 发送的最后一个确认报文段能够到达B 。如果A 不等待2MSL, 若A 返回的最后确认报文 段丢失,则B 不能进入正常关闭状态,而A 此时已经关闭,也不可能再重传。
- 防止出现“已失效的连接请求报文段“。A 在发送最后一个确认报文段后,再经过2MSL可保证本 连接持续的时间内所产生的所有报文段从网络中消失。
- 故服务器结束TCP 连接的时间要比客户机早一些,因为客户机最后要等待2MSL 后才可进入CLOSED 状态。
3.2 为什么不采用“两次握手”建立连接呢?
这主要是为了防止两次握手情况下已失效的连接请求报文段突然又传送到服务器而产生错误。
考虑下面这种情况。客户A 向服务器B 发出TCP 连接请求,第一个连接请求报文在网络的某个结点 长时间滞留, A 超时后认为报文丢失,千是再重传一次连接请求, B 收到后建立连接。数据传输 完毕后双方断开连接。而此时,前一个滞留在网络中的连接请求到达服务器B, 而B 认为A 又发来 连接请求,此时若使用“三次握手”,则B 向A 返回确认报文段,由于是一个失效的请求,因此A 不 予理睬,建立连接失败。若采用的是“两次握手”,则这种情况下B 认为传输连接已经建立,并一直 等待A 传输数据,而A 此时并无连接请求,因此不予理睬,这样就造成了B的资源白白浪费
4.拥塞控制的四种算法(自己看书)
所谓拥塞控制,是指防止过多的数据注入网络,保证网络中的路由器或链路小致过载。出现拥塞 时,端点并不了解到拥塞发生的细节,对通信连接的端点来说,拥塞往往表现为通信时延的增 加。当然,拥塞控制和流量控制也有相似的地方,即它们都通过控制发送方发送数据的速率来达 到控制效果。
拥塞控制与流量控制的区别:拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过 程,涉及所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。相反,流量控 制往往是指点对点的通信量的控制,即接收端控制发送端,它所要做的是抑制发送端发送数据的 速率,以便使接收端来得及接收。
第六章:应用层
原笔记图片缺失:14
1.DNS域名解析协议
域名解析是指把域名映射成为IP 地址或把IP 地址映射成域名的过程。前者称为正向解析,后者称 为反向解析。当客户端需要域名解析时,通过本机的DNS 客户端构造一个DNS 请求报文,以UDP 数据报方式发往本地域名服务器。域名解析有两种方式:递归查询和递归与迭代相结合的查询。
2.FTP文件传输协议
文件传输协议(file Transfer Protocol, FTP) 是因特网上使用得最广泛的文件传输协议。FTP提供 交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。它屏蔽了各计算机 系统的细节,因而适合于在异构网络中的任意计算机之间传送文件。FTP 提供以下功能: (1)提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。 (2)以用户权限管理的方式提供用户对远程FTP 服务器上的文件管理能力。 (3)以匿名FTP 的方式提供公用文件共享的能力。 FTP 采用客户/服务器的工作方式,它使用TCP 可靠的传输服务。一个FTP 服务器进程可同时为 多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接收新的请求; 另外有若干从属进程,负责处理单个请求。其工作步骤如下: (1)打开熟知端口21 (控制端口),使客户进程能够连接上。 (2)等待客户进程发连接请求。 (3)启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进 程的请求处理完毕后即终止。 (4)回到等待状态,继续接收其他客户进程的请求
3.SMTP简单邮件传输协议
简单邮件传输协议(Simple Mail Transfer Protocol, SMTP) 是一种提供可靠且有效的电子邮件传输 的协议,它控制两个相互通信的SMTP 进程交换信息。由于SMTP 使用客户/服务器方式,因此 负责发送邮件的SMTP 进程就是SMTP 客户,而负责接收邮件的SMTP 进程就是SMTP 服务器。 SMTP 用的是TCP 连接,端口号为25 。SMTP 通信有以下三个阶段:(1) 连接建立(2) 邮件传送(3) 连接释放。
4.POP3
邮局协议(Post Office Protocol, POP) 是一个非常简单但功能有限的邮件读取协议,现在使用的是 它的第3 个版本POP3 。POP3 采用的是“拉" (Pull) 的通信方式,当用户读取邮件时,用户代理向 邮件服务器发出请求,“拉”取用户邮箱中的邮件。POP 也使用客户/服务器的工作方式,在传输 层使用TCP, 端口号为110 。接收方的用户代理上必须运行POP 客户程序,而接收方的邮件服务器 上则运行POP 服务器程序。POP 有两种工作方式:“下载并保留”和“下载并删除"。在“下载并保 留”方式下,用户从邮件服务器上读取邮件后,邮件依然会保存在邮件服务器上,用户可再次从服 务器上读取该邮件;而使用“下载并删除“方式时,邮件一旦被读取,就被从邮件服务器上删除, 用户不能再次从服务器上读取。 随着万维网的流行,目前出现了很多基于万维网的电子邮件,如Hotmail 、Gmail 等。这种电子 邮件的特点是,用户浏览器与Hotmail 或Gmail 的邮件服务器之间的邮件发送或接收使用的是 HTTP, 而仅在不同邮件服务器之间传送邮件时才使用SMTP
5.HTTP超文本传输协议
HTTP 定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样 把文档传送给浏览器。从层次的角度看, HTTP 是面向事务的(Transaction-oriented) 应用层协 议,它规定了在浏览器和服务器之间的请求和响应的格式与规则,是万维网上能够可靠地交换文 件(包括文本、声音、图像等各种多媒体文件)的重要基础。
用户单击鼠标后所发生的事件按顺序如下(以访问清华大学的网站为例):
- 浏览器分析链接指向页面的URL (http://www.tsinghua.edu.cn /chn/index.htm) 。
- 浏览器向DNS 请求解析www.tsinghuaaedu.CR 的IP 地址。-
- 域名系统统DNS 映射出清毕大学服务器的IP 地址。
- 浏览器与该服务器建立TCP 连接(默认端口号为80) 。
- 浏览器发出HTTP 请求: GET /chn/index.htm 。
- 服务器通过HTTP 响应把文件index.htm 发送给浏览器。
- TCP 连接释放。
- 浏览器解释文件index.htm, 并将Web 页显示给用户。