计算机网络考研复习
¶第一章 - 网络体系结构
-
计算机网络的概念
- 是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
- 直观理解为“网”:点(终端、路由等)和线(物理线路、无线网络等)
- 计算机网络的3种不同定义
- 上图不需要记,只需要知道三者的侧重点即可
- 广义观点只侧重资源共享;资源共享观点则侧重独立、互联、共享;透明观点只侧重整体性/透明性,意指网络作为一个网状系统不被人感知。
-
计算机网络的功能:数据通信(最基本最主要的功能)、资源共享、分布式处理、可靠性、负载均衡。
- 后两者可视为分布式处理的作用
- 选择题能选对就行
-
计算机网路的组成:软件、硬件、协议(负责协调软硬件工作)。
- 看看就行
-
计算机网络的分类(了解就行)
- 按作用范围划分:广域网(WAN,几十公里~几千公里)、城域网(MAN,街区/城区)、局域网(LAN,公司)、个人区域网(PAN,家庭)。
- 传播技术划分:广播式网络(广播技术,如:局域网)、点对点网络(交换技术,如:广域网)。
- 拓扑结构划分:总线形、星形、环形、网状形
- 其它的划分方法有(不重要):
- 按使用者分类: 公用网和专用网
- 按交换技术分类: 电路交换(电话)、报文交换(存储转发)、分组交换(切分报文,分组转发)
- 按传输介质分类: 有线(双绞线、同轴电缆)和无线(蓝牙、微波、无线电)
-
计算机网络标准化及其相关组织: 新大纲已删除
-
计算机网络性能指标(要会计算!!!) :
- 速率(bit/s): 单位时间内通过的比特位数
- 带宽(bit/s): 单位时间内最高可通过的比特位数
- 注意是发射速率,要与传播速率区分开来,比如某设备间1s才允许传输1bit的数据,但其传播速率可能接近光速
- 吞吐量: 单位时间内通过某个网络的数据量
- 时延重点:
发送时延 + 传播时延 + 排队时延 + 处理时延
- 发送时延, 又叫传输时延,与传播时延一字之差,注意区分,发送一串数据到链路上的时间。
- 传播时延, 是一个比特从链路一端到达另一端所用的时间。
- 排队时延, 数据进入路由器后,需要在路由器的输入队列中等待处理,然后还要在输出队列中等待转发。
- 处理时延, 是检查数据完整性、找到数据出口所用的时间
- 时延带宽积:
传播时延 × 带宽
,即某段链路最多有多少个比特 - 往返时延RTT: 从开始发送, 到发送方收到接收方的确认信息所用时间
- 利用率:
-
网络分层:
- 分层原则(不重要)
- 基本概念:
- 实体:可以接收和发送信息的硬件或者软件进程。
- 不同机器上的同一层叫对等层,同一层的实体叫对等实体。
- 下次实现的功能为上层服务(从下往上1到n层)
- SDU服务数据单元: 就是有效数据,本来要传输的那部分数据.
- PCI协议控制信息: 就是规定了协议需要怎么操作的信息.
- PDU协议数据单元: SDU + PCI, 对等层次之间传送的数据单位.
- 分层含义(理解):第一层(最底下)为第二层提供服务,第二层为第三层提供服务(第二层的功能实现依赖第一层),第三层为第四层提供服务(第三层的功能实现直接依赖第二层,间接依赖第一层)…以此类推。
-
协议、接口、服务的概念(重点!!!):
- 协议:对等实体间的通信规则,结构上看是水平的。
- 不对等实体间没有协议
- 接口(也叫服务访问点):同一计算机内相邻两层之间的通信规则,结构上看是垂直的。
- 不能跨层定义接口
- 服务:
- TCP:面向连接 & 可靠
- UDP:无连接 & 不可靠
- PPP:面向连接 & 不可靠
- 无连接 & 可靠:在UDP基础上实现
- 协议:对等实体间的通信规则,结构上看是水平的。
-
OSI参考模型(重点!!!):
- 除物理层外,都逐层需要添加控制信息
- 端到端和点到点
- 物理层
- 传输单位:比特流
- 协议:EIA-232C、EIA/TIA RS-449、CCITT的X2.1等(大于五个字母…)
- 数据链路层
- 传输单位:帧
- 需要完成:组帧、差错控制、流量控制、传输管理(后三个都理解为对帧的控制)
- 协议:SDLC、HDLC、PPP、STP、帧中继
- 网络层:
- 传输单位:数据报
- IP数据报在下层数据链路层被拆分组装成帧
- 比链路层后三个多了拥塞控制,因为网络层需要考虑网络波动问题
- 协议:IP、IPX、ICMP、ARP、RARP、OSPF
- 传输层:
- 传输单位:报文段(TCP)或者用户数据报(UDP)
- 资源子网与通信子网的桥梁
- 协议:TCP、UDP
- 会话层:
- 负责建立、管理、撤销会话
- 使用校验点可实现断线续传
- 表示层:
- 负责数据压缩、加密、解密、数据格式变换。
- 应用层:
- 为特定网络应用提供访问OSI环境的手段
- 协议:FTP、SMTP、HTTP
-
TCP/IP参考模型(重点!!!):
-
TCP/IP和OSI的区别(重点!!!):
- 网络层是点到点,所以必需要无连接;而传输层是端到端,需要面向连接。
- TCP/IP注重传输层,而OSI注重网络层
-
考研通用模型(重点!!!):
-
报文流与字节流的区别(面向连接且可靠):报文流会区分边界,字节流不会。例如发送
1024B × 2
的报文数据,报文流会接收2个1024B的报文,字节流会把接收的2048B作为整体。 -
网桥、交换机(多接口网桥)都是链路层设备;路由器是网络层设备;中继器,集线器(多口中继器)是物理层设备。
-
因特网是广域网、以太网(采用CSMA/CD)是局域网。
习题:
¶第二章 - 物理层
-
物理层的特性
-
编码和信道
- 编码:模拟信号➡数字信号;调制:数字信号➡模拟信号
- 信道:是信号的传输媒介,其有方向。所以一台物理线路往往包含两条信道(发送和接收)。
信源、信道、信宿
➡头、中介、尾
- 数字信道上的传输(基带传输)、模拟信道上的传输(宽带传输,例子当然是宽带-光信号…)
-
信道的三种通信方式:
- 单工通信,只有一个方向的通信而没有反方向的交互。需要一条信道。
- 半双工/双向交替通信,通信双方都能收发信息,但不能同时发送和接收。需要两条信道,信道是有方向的,所以是两条。
- 全双工/双向同时通信,通信双方可以同时发送和接收信息。需要两条信道。
-
奈氏准则(奈奎斯特定理)(重点!!!):理想低通(无噪声、带宽有限)环境下,极限码元传输速率为2W波特,则极限传输速率为
- 注意区分带宽V和采样频率!!!采样频率不需要乘上2.
-
香农公式(重点!!!):
- 注意分贝表示的信噪比:
S/N = 100,10 * log(10,S/N) = 20dB = 20分贝
- 注意分贝表示的信噪比:
-
数据编码方式(重点!!!):
- 归零编码(RZ):
- 图中描述的是单极性归零码
- 双极性归零码
- 非归零编码(NRZ)
- 对于计算机网络,宁愿利用这根传输线传输数据信号,也不愿意用来传输时钟信号,因此,不归零编码存在时钟同步问题
- 反向非归零编码(NRZI)
- 信号翻转代表0,不变代表1
- 例如USB2.0采用NRZI编码
- 曼彻斯特编码
- 下沿表示1,上沿表示0
- 以太网使用
- 拆分曼彻斯特编码
- 前半个码元和上一个码元的后半部分不同就是1,相同就是0
- 局域网、抗干扰
- 4B/5B编码
- 发射5位(32种状态)数据,其中16种状态(4位映射到5位)是有效数据,其它16种状态是控制信号
- 归零编码(RZ):
-
数据调制方式(重点!!!)
- 混合调制方式:
- 习题
4 * 4 = 16
种状态,表示需要4个比特位,所以速率 = 1200 * 4 = 4800bit/s
- PCM调制(却是编码、对音频信号编码)模拟信号编码为数字信号时,为了使信号不失真,
f采样频率 ≥ 2f信号频率
- 混合调制方式:
-
电路交换、报文交换、分组交换(重要,但简单且没什么细节,暂时不重要)
- 分组交换又分为:
- 数据报服务方式
- 虚电路服务方式
- 分组交换又分为:
-
传输介质(不重要)
- 双绞线:绞合可以抗干扰
- 距离过大时需要放大器放大衰减的信号,以及中继器整形失真的信号。
- 同轴电缆:抗干扰、传输距离远,速率更高,也更贵
- 光纤
- 无线电波、微波、红外和激光、卫星
- 双绞线:绞合可以抗干扰
-
物理层接口的特性:
-
中继器与集线器重要:
- 中继器
- 放大信号、延长网络长度
- 不能连接速率不同的局域网
- 5-4-3规则:互相串联的中继器个数不能超过4个,形成的5段通信介质中只有三段可以连接计算机,其它2段只能用作扩展通信范围。
- 集线器(Hub)
- 多口中继器;放大信号、延长网络长度
- 广播式、半双工
- 不能分割广播域和冲突域
- 中继器
习题
解:
- 发送延时
- 源点发送延时:((L/p)*(h+p))/ b;
- 中继节点发送延时:(h+p)/b * (k-1);注意在分组转发当中每个中继只延迟了一个分组的时间。
- 传播延时
- d * k
- 连接建立时间
- s
- 处理延时
- m *(k-1)
总时间相加即可
- 传播时延 20*2 μs,处理时延 35 μs,发送时延 1000*2 μs,总 2075 μs。
- 发送时延(源点 1000 μs、中继 500 μs),传播时延 20*2 μs,处理时延 35 μs,总时延 1575 μs。
- 没有波特率,无法用奈氏准则!!!
¶第三章 - 数据链路层
-
数据链路层为网络层提供:
- 无确认的无连接服务:不建立链路、收到不确认、丢失不重发
- 有确认的无连接服务:不建立连接、受到确认、丢失重发
- 有确认的面向连接服务:建立链接、收到确认才能继续发下一帧
-
帧定界、帧同步和透明传输(不重要):
- 帧定界:组帧时添加头尾部控制信息,也能确认帧的边界。
- 帧同步:接收方应能够确认二进制比特流中帧的始末。
- 透明传输:数据中可能出现刚好等于控制信息的二进制比特串,需要处理。
-
组帧:(重点!!!):
- 字符计数法:头部信息中包含了帧的长度信息(错一个后面帧全错)
- 注意是字符(每个字符8位二进制位)
- 字符填充的首尾定界符法:使用特定字符来界定(数据中的特殊字符前插入转义字符DEL标记)
- 零比特填充的首位标记法:用01111110标记始末(发送:数据中遇到5个1在后面添0;接收数据中遇到5个1在后面减0)
- 违规编码法:
- 只适用于冗余编码,因为只有冗余编码有剩余位置表示违规编码(界定符)
- 例如曼彻斯特编码,高-低是1,低-高是0;违规编码1为高-高,0为低-低。
- 例如:局域网IEEE 802标准
- 习题
- 答案
- 字符计数法:头部信息中包含了帧的长度信息(错一个后面帧全错)
-
差错控制(重点!!!):
- 差错由噪声干扰形成,内部噪声可以通过提高信噪比解决,外部噪声就必须要有差错控制
- 奇偶校验码:奇校验码(在比特串末添加一位0或1使得1的个数是奇数)、偶校验码(在比特串末添加一位0或1使得1的个数是偶数)
- 循环冗余码(CRC):
- 循环冗余码由纠错功能,但数据链路层仅实现了检错功能,检测到帧出错就丢弃。因此还不算“可靠传输”而是“确认传输”
- 海明码:
- 纠错能力1位、检错能力2位
- 校验码的长度r:
2^r ≥ m+r+1
- 例:发送数据D = 1100
m=4
,算出r=3
-
- 对于x4来说,4、5、6、7的值分别是x4、0、1、1,采用偶校验则x4应当是0;
- 同理x2是0,x1是1。
- 检错
-
流量控制(重点!!!):
- ARQ:自动重传请求。停止-等待ARQ、后退N帧ARQ、选择重传ARQ。
- 停止-等待协议:每次传输一帧,只有收到确认信号之后才能发送下一帧
- 相当于窗口大小为1的滑动窗口协议
- 发送一个帧后发送方不能马上丢弃(出错时方便重传),所以需要一个帧缓冲区存放尚未确认帧的副本。
- 滑动窗口控制协议:
-滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。- 发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。
- 不同的滑动窗口协议窗口大小一般不同。
- 发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。
- 在发送端,每收到一个确认帧,发送窗口就向前滑动一个帧的位置,当发送窗口内没有可以发送的帧(即窗口内的帧全部是已发送但未收到确认的帧),发送方就会停止发送,直到收到接受方发送的确认帧使窗口移动,窗口内有可以发送的帧,之后才开始继续发送。
- 在接受端,当收到数据帧后,将窗口向前移一个位置,并发回确认帧,若收到的数据帧落在接受窗口之外则一律丢弃。
- 后退N帧协议(GBN)
具体实现步骤见上面的滑动窗口协议- 发送方发送
0
,然后接收方收到0
后发送一个确认帧,并且接收方的接收窗口向后一位,最后发送方收到确认帧后也向后一位。 - 设想一种特殊情况,即接收窗口收到了
1、2、3
并发送了确认帧,但1、2
号确认帧延迟了,这时发送方收到了3
的确认帧,这时不需要等待1、2
确认帧,直接将发送窗口移到数据3
之后即可。这种情况叫做累计确认。 - 如果超时,会发送所有尚未被确认且已发送的帧,如接着上面这种情况,确认
3
之后窗口从数据4
开始,这时发送窗口发送了4,5,6,7,0,1
数据,且收到了6
号帧,窗口开始位移动到7,此时发送超时时间,就要重传未确认的已发送的7,0,1
- 发送方发送
- 选择重传协议(SR)
- 与GBN不同的是,GBN的接收端按序确认,虽然可以连续接收然后才确认,但假如前面的帧出错,后面的帧都要丢弃;
而SR则只重传出错的帧,但这就需要一个额外的缓冲区暂存未按序接收的数据帧。
- 与GBN不同的是,GBN的接收端按序确认,虽然可以连续接收然后才确认,但假如前面的帧出错,后面的帧都要丢弃;
- 窗口大小:
- 无论GBN还是SR,其
发送窗口大小 + 接收窗口大小 = 2^n
- GBN:
接收窗口1,发送窗口(2^n)-1
- SR:
接收窗口 = 发送窗口 = 2^(n-1)
- 无论GBN还是SR,其
-
信道划分介质访问控制(重点!!!):
- 介质访问控制(MAC)子层:用于决定广播信道中信道分配
- 信道划分介质访问控制:频分复用(FDM)、时分复用(TDM)、波分复用(WDM)、码分复用(CDM,采用不同编码方式区分各路原始信号)
- 码分多址(Code Division Multiple Access. CDMA)
- 每比特时间被分成农个更短的时间槽,称为码片(Chip)
- 每个站点被指定一个唯一的和位代码或码片序列。
- 发送1时,站点发送码片序列;发送0时,站点 发送码片序列的反码。
- 为从信道中 分离出各路信号,要求各个站点的码片序列相互正交。
- 例子
- 站点 A、B 同时发送给 C
- 码片由计算机分配(题目中给出)
- 若 A 站点的芯片序列为 (-1 -1 -1 +1 +1 -1 +1 +1),发送这个比特串就表示发送1,发送其反码就是0
- 且 B 站点的芯片序列为 (-1 -1 +1 -1 +1 +1 +1 -1),发送这个比特串就表示发送1,发送其反码就是0
- 验证正交:A ∙ B = sum(Ai * Bi) = (1 + 1 - 1 -1 + 1 - 1 + 1 - 1) = 0,只有只有正交的码片才能同时发送。
- 当 A 在链路中发送数据时,发送 1 (-1 -1 -1 +1 +1 -1 +1 +1) ,B 发送 0 (+1 +1 -1 +1 -1 -1 -1 +1)反码;
- 则,在链路中的信号叠加为 (0 0 -2 2 0 -2 0 2);
- 当 C 收到这个叠加的序列后,想获得 A 的数据,则将收到的序列与A的序列点积,得 1。(因为是计算机给出码片,所以A和B的码片,C都知道)
- 同理,想获得 B 的数据时,点积B的序列获得 -1 ,代表0。
- 统计时分复用(STDM):
- 是TDM的一种改进,它采用STDM帧,STDM帧并不固定分配时隙,而按需动态地分配时隙,当终端有数据要传送时,才会分配到时间片,因此可以提高线路的利用率。
- 码分多址(Code Division Multiple Access. CDMA)
-
随机访问介质访问控制(超重点!!!):
- ALOHA协议: 想发就发,不检测线路,发生冲突(一段时间没收到确认就认为冲突)就重发。冲突后等待一段时间才重发。
- 时隙ALOHA协议:时间片同步,规定只有每个时隙开始时才能发送一个帧
- 一个时隙发送完一个帧,防止像纯ALOHA协议一样上个帧还在线路传输过程中就发送从而碰撞。
- 时隙ALOHA协议:时间片同步,规定只有每个时隙开始时才能发送一个帧
- CSMA协议(Carrier Sense Multiple Access、载波侦听多路访问):
- 1-坚持CSMA:
- 先检测线路(信道)
- 空闲则发送帧
- 忙则持续侦听,同时一直侦听线路直到空闲
- 发生冲突则随机等待一段时间再发送
- A发出帧还未到达目的地,B会检测到空闲而发帧,从而冲突。
- 忙时A、B等待,空闲时A、B同时侦听到空闲,同时发送帧,从而冲突。
- 非坚持CSMA:
- 先检测线路
- 空闲则发送帧
- 忙则放弃侦听,等待一段随机时间后再侦听线路
- 发生冲突则随机等待一段时间再发送
- p-坚持CSMA:
- 先检测线路
- 空闲则以概率p发送数据,以1-p概率推迟到下一个时延
- 忙则持续侦听,直到空闲
- 发生冲突会坚持把帧发完,然后随机等待一段时间再发送
- 1-坚持CSMA:
- CSMA/CD协议(CSMA with Collision Detection、载波侦听多路访问/碰撞检测):
- 适合总线型或半双工网络环境
- 思想:
- 载波帧听:发送数据前先侦听是否空闲
- 碰撞检测:边发送数据边检测侦听(信道电压变化),发生冲突时帧的发送立即停止
- 最小帧长
最小帧长 = 总线传播时延 * 数据传输率 * 2
- A发送数据到B,最迟2倍传输时延即可检测出有没有碰撞。那么为了确保发送站在发送数据的同时能够检测到碰撞,则发送时延应该至少要2倍传输时延,然后推出上述公式。
- 二进制指数退避算法解决碰撞
- CSMA/CA协议CSMA with Collision Avoidance、载波侦听多路访问/碰撞避免):
- 王道的思维导图有问题!!!以书上为准
- 用于无线网络,IEEE 802.11
- 并非完全避免碰撞,而是尽可能减少
- 因为不采用碰撞检测(依然有信道忙检测),所以发送碰撞时帧会继续发送!
- 发送一帧,收到确认再发送下一帧。
- 工作原理:
- 发送数据前检测信道空闲。
- 空闲则发送RTS(Request to send,请求发送)帧,RTS包括源地址、目的地址、下一帧的发送持续时间等信息;忙则等待。
- 接收端收到RTS后,发送CTS(Clear to send)帧,告诉发送方准备好接收。
- 发送端收到CTS,开始发送数据帧(同时预约信道,发送方告诉所有其它站点自己要发多久,避免冲突)
- 与CD协议不同!!!CD协议只有冲突时才使用退避算法,CA协议除了发送第一个数据帧以外都需要等待一个时隙然后使用退避算法
- 接收端收到数据帧后,进行CRC检验,正确则发送ACK帧
- 发送方收到ACK帧后发送下一帧,超时未收到则重发到上限次数(发送推迟时间:二进制指数退避算法)
- CD与CA协议的区别:
- ALOHA协议: 想发就发,不检测线路,发生冲突(一段时间没收到确认就认为冲突)就重发。冲突后等待一段时间才重发。
-
轮询访问介质访问控制:
- 轮询访问MAC协议
- 令牌访问协议
-
局域网工作在OSI下两层,广域网工作在OSI下三层
-
局域网相关(重点!!!)
- 三种特殊局域网(实际生活中)
- 以太网(逻辑总线形、物理星形或拓展星形)
- 令牌环网(逻辑环形、物理星形)
- FDDI(光纤分布数字接口,IEEE802.5,逻辑环形、物理双环)
- IEEE 802协议
- LLC子层和MAC子层(都是链路层子层)
- 区分:看功能是向上层(网络层)提供服务还是使用下层(物理层)的功能。
- 以太网(IEEE 802.3)
- 局域网的一种
- 逻辑总线形、物理星形
- 无连接,不可靠(尽最大努力交付、纠错由上层完成)
- 传输介质
- 10Base-T以太网(超重点!!!)
- MAC地址:48位,前24位代表厂家;后24位厂家自己指定,常为6个16进制数,如
02-60-8c-e4-b1-21
- 以太网的MAC帧(超重点!!!)
- 地址(6字节、48bit)、类型(2字节,指定数据交由哪个协议实体)、数据(46~1500;46:CSMA/CD的最短帧长为64B,首尾部占18B;1500:规定如此,没有为什么)、填充(0~46B,防止帧太短,达不到最短帧长)、校验码FCS(4B,CRC校验,校验除自身的整个MAC帧,不校验物理层加的前导码)
- MAC帧的发送有时隙,所以不需要帧结束定界符(有帧开始定界符,物理层加上),但不是没有尾部,数据链路层既要加首部也要加尾部。
- 其与IEEE 802.3的区别在于:
- 802.3的第三个字段是长度/类型。
- 高速以太网:
- 100BASE-T以太网:
- 100Mb/s、使用CSMA/CD协议(半双工)、支持全双工和半双工、802.3 MAC帧
- 吉比特以太网
- 1Gb/s、使用CSMA/CD协议(半双工)、支持全双工和半双工、802.3 MAC帧
- 10吉比特以太网
- 10Gb/s、光纤、只支持全双工(因此不使用CSMA/CD)、802.3 MAC帧
- 100BASE-T以太网:
- 无线局域网(IEEE 802.11、WIFI)
- 有固定基础设施的无线局域网:
- 最小构件是基本服务集BSS
- 一个基本服务集包含一个基站和若干移动站
- 所有站在本BSS内可以直接通信,BBS外通过本BBS基站转发
- 无固定基础设施的无线局域网
- 移动站地位平等,自组织起的临时网络;中间节点都是转发结点,都有路由功能
- 具有自己特定的路由选择协议,不与因特网相连
-
- 去头发中尾补(目的,源,AP)
- 有固定基础设施的无线局域网:
- (已删!!!)
令牌环网(IEEE 802.5)- 令牌环网的每一站都与环接口干线耦合器(TCU)相连,帧由TCL转发。
- 空闲时转发令牌,需要发送数据时(有令牌)将令牌变为数据帧发送出去。
- 发送完数据后,发送站重新产生一个令牌。
- (新增!!!)VLAN基本概念与基本原理:(待补)
- 三种特殊局域网(实际生活中)
-
广域网
- PPP拨号协议:
- 串行直连(点对电)线路、面向字节、以SLIP协议为基础
- 只支持全双工、不可靠(帧无编号、确认)
- 支持同步、异步线路
- 组成:
- 链路控制协议(LCP): 一种扩展链路控制协议,用于建立、配置、测试和管理数据链路。
- 网络控制协议(NCP)。PPP协议允许同时采用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
- —个将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是其信息部分,这个信息部分的长度受最大传送单元(MTU)的限制。
- PPP帧格式(重点!!!)
- 标志字段:规定7E,前后各一个字节;地址字段:一个字节,规定为0xFF;控制字段一个字节,规定为0x03;协议字段:2B,说明信息部分运载的是什么分组(0x0021表示IP数据报);校验字段:2B,校验地址、控制、协议、信息字段(没有头尾部标志字段)
- 点对点传输,不需要介质访问控制(相当于专用线路),所以不采用CSMA/CD协议,信息字段自然也没有最小帧长限制
- 信息字段歧义字符处理:
- (已删!!!)
HDLC协议(重点!!!)- 面向比特、全双工、可靠传输(帧有编号和确认)
- 主站、从站、复合站
- 响应方式:
- 正常响应方式。这是一种非平衡结构操作方式,即主站向从站传输数据,从站响应传输,但从站只有在收到主站的许可后,才可进行响应。
- 非平衡(响应):一主一从
- 异步平衡方式。这是一种平衡结构操作方式。在这种方式中,每个复合站都可以进行对另一站的数据传输。
- 平衡:两端结点平等
- 异步响应方式。这是一种非平衡结构操作方式。在这种方式中,从站即使未受到主站的允许,也可进行传输。
- 正常响应方式。这是一种非平衡结构操作方式,即主站向从站传输数据,从站响应传输,但从站只有在收到主站的许可后,才可进行响应。
- HDLC帧:
- 帧的字段不一定要记, 但帧格式的这三种类型一定要背下
- PPP拨号协议:
-
广域网、局域网、因特网、以太网、互联网(重点!!!):
互联网 = 广域网 + 局域网
- 局域网可以连接不同类型的网络,广域网不能
- 因特网:全球最大的互联网
- 以太网是局域网的一种
-
网桥和交换机(重点!!!)
- 两个或多个以太网通过网桥连接后,就成了覆盖范围更大的以太网,原来的以太网就叫做网段
- 网桥工作在MAC子层,可以隔离冲突域(A网段的冲突不会影响B网段)
- 支持不同协议(在网桥进行协议转换);具有缓冲功能。
- 工作原理:
- 计算机A发送数据到B:采用广播方式(总线形),B会收到,网桥B1也会收到;但B1发现目的地址和源地址网段相同,因此丢弃信息,只有B能收到。
- 计算机A发送数据到E:广播信息到网桥B1,B1根据网桥表转发数据到下一个网段,然后数据帧到达B2,B2根据网桥表发送给下一个网段,然后到达E。
- 计算机A发送数据到B,同时B发送数据到A或者E,发生冲突。
- 计算机A发送数据给B,同时C发送数据给D,因为所属不同网段所以不会发生冲突。
- 网桥的路径选择算法:
- 透明网桥(转发路径由网桥确定,只负责下一站),通过自学习实现局部最佳。
- 思想:站A发出的帧从网桥的某个端口到达某个网桥,那么沿反方向,帧从该端口发出一定能到A。
- 源路由网桥(由发送数据的源站负责选择路径,网桥只根据帧控制信息对帧进行接收和转发)
- 源站以广播方式发送一个发现帧到目的站,根据经过的结点生成最佳路径
- 透明网桥(转发路径由网桥确定,只负责下一站),通过自学习实现局部最佳。
- 交换机(多口网桥):
- 全双工、无碰撞(不同端口之间被分为不同网段,同一端口通过集线器连接的不同计算机会发送碰撞)
- 两种交换模式
- 其它特点和网桥类似。
-
冲突域和广播域
习题
接收时延当然是包括在发送时延 + 传播时延当中的
,但确认帧的发送相当于又一次的发送时延
所以发送时延是第一次,发送数据帧用时800ms,第二次.发送确认数据帧用时800ms
.
传播时延是来去共400ms.
所以总效率40%
这里不是停等协议,而是滑动窗口协议,故总时间不能简单的传播延时250 + 总发送时延X(所有窗口发送的时延)
,因为当第一个确认帧到达时,后面的数据还没发送,不能算入发送时延.
应当考虑的是在第一个窗口发送时到第一个窗口确认帧到达时这段时间里发送了多少数据.
所以时间T是发送时延 + 传播时延 = 1000*8b / 128kb/s + 250ms
约为0.5625 s
设发送的数据量为L,则发送数据用时t为 L/128k s
所以t / T
应当≥0.8,得B.
- 半双工的交换机,意味着一个端口进,另一个端口出,满速10Mb/s需要占用两个端口。
¶第四章 - 网络层
-
网络层的功能:
- 向上层提供异构网络互联
- 异构:不同协议的网络
- 路由选择与路由转发
- 拥塞控制
- 流量控制与拥塞控制的区别:流量控制是抑制发送端的速率,以便接收端来得急接收;而拥塞控制是子网能够承受并发送流量的问题,是一个全局性的问题
- 拥塞控制方法:
- 开环控制(静态):设计网络时就考虑好产生拥塞的因素,力求网络在工作中不产生拥塞
- 闭环控制(动态):事先不考虑拥塞因素,采用动态检测网络系统的方式
- 向上层提供异构网络互联
-
路由算法:(超重点!!!)
- 自治系统AS:同一技术管理下的一组路由器,他们使用相同的路由选择协议,一般是一家公司、一所大学、一个政府部门等。
- 静态路由算法(非自适应路由算法):网络管理员手工配置路由信息
- 动态路由算法(自适应路由算法、同一自治系统AS内):通过相互连接的路由器之间彼此交换信息来优化路由表
- 距离-向量路由算法(代表:RIP协议):
- RIP协议不支持不同子网掩码的转发
- “好消息”传得快、”坏消息“传得慢(网络故障需要数分钟才能传到所有路由器)
- 原理:所有结点定期把他们的整个路由表发给所有与之相邻的结点
- 工作流程
- 修改R4发来的路由表项(距离+1,下一跳均改为R4);即数据从R6发出去到目的地要经过R4,所以距离加一,修改后的R4(要合并到R6的路由表)目的地均为R4。
- 遍历修改后的R4路由表:
- R6中没有表项,直接加上去
- R6中有表项,且R6中表项的下一跳是:
- 下一跳是R4,立即用收到的R4修改版替换(路径更新,这里不一定距离减少,更新是因为老路径和新路径同样是R6到R4,说明原路径失效)
- 下一跳不是R4,若R4修改版距离更近就更新,否则不作处理
- 180s还没收到某路由器X发来的路由表,就标记为X不可达。
- 链路状态路由算法(代表:OSPF协议):
- 开放最短路径优先算法OSPF协议,链路状态路由算法中使用Dijkstra的最短路径算法SPF。
- 分布式的链路状态协议
- 收敛速度快(路由状态的更新快)
- 工作原理:
- 向网络中的所有路由发送信息,这里使用泛洪法,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。
- 最终整个区域内的所有路由器都得到了这个信息的副本
- 发送的信息是本路由相邻的所有路由的链路状态,包括:本路由的相邻路由统计、到相邻路由的代价(费用、距离、时延或者带宽)
- 只有当链路状态发生变化时,才泛洪发送路由信息。
- 最后所有路由器都能建立起一个链路状态数据库,即全网拓朴图
- 向网络中的所有路由发送信息,这里使用泛洪法,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。
- 距离-向量路由算法(代表:RIP协议):
- 外部网关协议(代表:BGP、不同自治系统AS间):
- BGP采用的是路径向量路由选择协议、基于TCP
- BGP原理与RIP类似(采用路径向量路由选择协议),只不过交换的信息是:到达某个网络所要经过的一系列AS
- 如自治系统AS2的BGP 发言人通知主干网AS1的BGP 发言人:“要到达网络N1、N2、N3 和 N4 可经过 AS2。“
- 主干网还可发出通知:“要到达网络N5、N6 和N7 可沿路径(AS1, AS3)。”
- BGP支持CIDR
- BGP协议的四种报文
- 三种协议比较
- RIP(应用层)、OSPF(网络层)、BGP协议(应用层)
-
(新增!!!)SDN基本概念:(待补)
-
IPv4(能记就记,首部长度、总长度、片偏移一定要记住):
- 分组格式:
- 版本:指IP的版本,目前广泛使用的版本号为4
- 首部长度:本身占4位。以4B为单位,即若该字段四位全1即
1111
,表示长度为15x4B = 60B
,也即最大值为60B ( 15x4B),且规定最小值为20B(5×4)。最常用的首部长度是最小值20B。 - 区分服务(期望获得哪种类型的服务)
- 总长度(本身16位。指首部和数据之和的长度,单位为1字节,因此数据报的最大长度为2^16-1 = 65535B,数据量过大会被分组)
- 标识(占16位。它是一个计数器,每产生一个数据报就加1,并赋值给标识字段。当一个数据报的长度超过网络的MTU时,必须分片,此时每个数据报片都复制一次标识号,以便能正确重装成原来的数据报。)
- 标志(3位。标志字段的最低位为MF(More Fragmaent), MF = 1表示后面还有分片,MF = 0表示最后一个分片。标志字段中间的一位是DF,只有当DF = 0时才允许分片。)
- 片偏移(占13位。以 8B 为偏移单位,它指出较长的分组在分片后,某片在原分组中的相对位置。)
- 生存时间TTL(占8位。IP分组的保质期。经过一个路由-1,变成0则丢弃)
- 协议(占8位。数据部分的协议。其中值为6表示TCP,值为17表示UDP。)
- 首部校验和(只检验首部)
- 源IP地址和目的IP地址(32位)
- IP数据报的分片
- 同一数据报的分片使用相同标识
- 分片例题
- 分组格式:
-
IPv4地址与NAT(超重点!!!):
- 分类的IP地址按照哈夫曼编码
- 特殊IP地址:
- 网络号全0必为0.X.X.X(0.0.0.0表示本网络上的本主机。)
- 主机号全为1表示本网络的广播地址,又称直接广播地址,如202.98.174.255。
- 只能“收”不能“发”
- 主机号全为0表示本网络本身,如202.98.174.0表示202.98.174.X这个网络
- 除0.0.0.0外,不能“收”也不能“发”
- 127.X.X.X保留为环回自检( LoopbackTest) 地址,此地址表示任意主机本身,目的地址为环回地址的IP数据报永远不会出现在任何网络上(发出去的数据会被自己接收)。
- 32位全为1,即255.255.255.255表示整个TCP/IP网络的广播地址,又称受限广播地址。
- 实际使用时,由于路由器对广播域的隔离,255.255.255.255等效为本网络的广播地址。
- 私有IP地址:
- 私有地址也是可分配地址!
- 只用于LAN,不用于WAN连接
- 路由器对目的地址是私有地址的数据报一律不转发。
- 因此私有IP地址不能直接用于Internet,必须通过网关利用NAT把私有IP地址转换为Internet中合法的全球IP地址后才能用于Internet
- 各类网可用网络数
- A类:0.X.X.X(本网络的某个特定主机,只能作为“发”不能作“收”;其中0.0.0.0表示本网所有主机),127.X.X.X(环回自检地址,发出去的会被自己收到,可“发”可“收”)
- B类:128.0.X.X(保留地址、但其实已经被分配出去一部分了,教材还没改)
- C类:192.0.0.X(保留地址、目前还没分配出去)
- 可用主机数:-2(全0/1)
-
NAT(Network Address Translation):
- 普通路由器在转发IP数据报时,不改变其源IP地址和目的IP地址。而NAT路由器在转发IP数据报时,一定要更换其IP地址(转换源IP地址或目的IP地址)。
- 普通路由器仅工作在网络层,而NAT路由器转发数据报时需要查看和转换传输层的端口号。
-
子网划分(重点!!!):
- 子网划分
- 从主机号借用若干比特作为子网号,当然主机号也就相应减少了相同的比特。
- 三级IP地址的结构如下:IP地址={〈网络号〉,〈子网号〉,〈主机号>}。
- 凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的目的网络号, 先找到连接到本单位网络上的路由器。然后该路由器在收到IP数据报后,按目的网络号 和子网号找到目的子网。最后把IP数据报直接交付给目的主机。
- 子网掩码:
- 子网掩码用来表达借位,一定是一串1接一串0
- A、B、C类地址的默认子网掩码分别为255.0.0.0、255.255.0.0、255.255.255.0。
- 习题1
- 习题2
IP地址 & 子网掩码 = 180.80.X.0
,其中X为252 & 77 = 11111100 & 01001101 = 01001100 = 76
,即所在子网180.80.76.0
- 子网掩码前面的1表示网络号和子网号,后面的0表示主机号(不可能01交替).
- 广播地址是主机号全1,所以子网内广播地址是
180.80.Y.255
,其中Y为(010011 | 01) -> (010011 | 11)
即79
- 故答案为
180.80.79.255
- 子网划分
-
CIDR(无分类编址)(重点!!!):
- 思想是:如果一个单位需要2000块地址,就给他分配一个2048地址的块(8个连续的C类地址)
- IP地址的无分类两级编址为:IP::={<网络前缀>,<主机号>}。
- 对于128.14.32.5/20这个地址,它的掩码是20个连续的1和后续12个连续的0,通过逐位相“与“的方法可以得到该地址的网络前缀
- CIDR的主机号可以全0或者全1
- 路由转发时多个子网匹配的问题
- 例题
132.0.0.0/8
, 前8位1匹配132.19.237.5
成功132.0.0.0/11
, 前8位1匹配132.19.237.5
成功,19所在字节: 0001xxxx & 11100000
也匹配成功132.19.232.0/22
, 前22位1匹配为237所在字节: 11101101 & 11111100 = 11101100 = 236
, 不匹配0.0.0.0/0
是默认路由, 全都不匹配时才起作用
- 例题
-
超网(看看就行):
- R2路由的两个端口连接的网络,其地址前缀有16位相同,到第17位不同,所以合体网络地址应是
206.1.0.0/16
- 习题
- R2路由的两个端口连接的网络,其地址前缀有16位相同,到第17位不同,所以合体网络地址应是
-
ARP协议(地址解析协议)(重点!!!):
- )图看看就好,不用记
- IP协议帧携带的是IP地址,但最终需要使用MAC地址(硬件地址)
- 因此每台主机都有ARP缓存,用来存放{IP : MAC}的映射表
- 工作原理:
- IP协议帧在数据链路层被加上MAC地址信息
- 发出去后有四种情况:
- 收发方都是主机,且在同一网段:直接在ARP缓存里找到“收”方主机的硬件地址
- 收发方都是主机,且在不同网段:也就是要通过路由器转发,这时需要在ARP缓存里找到本网络任何一个路由器的硬件地址
- 发送方是路由器,和目的主机在同一网段:直接在路由器的ARP缓存里找到目的主机的硬件地址
- 发送方是路由器,和目的主机在不同网段:也就是要通过另一个路由器转发,这时需要在ARP缓存里找到本网络另外一个路由器的硬件地址,把工作交给下一个路由器
-
DHCP协议(动态主机配置协议、用来动态分配IP)(图是重点):
- 下面的看看,了解就行
- 第一步客户端使用广播方式是因为客户端不知道服务器的IP地址
- 第二步服务器也使用广播是因为服务器还没给客户端配置IP,客户端还没有IP地址
- 第三步确认采用广播而不是单播(通过第一次确认已经知道服务器IP地址)是因为这样可以同时告知其它DHCP服务器,已经得到了IP,原预分配IP可以收回。
- 第四步还是用广播则是因为IP分配还没得到确认(只是预分配)
- 在没有IP的情况下因为处于同一网段,所以可以使用MAC地址找到对方。
-
ICMP协议(网际控制报文协议)(重点!!!):
- 为了提高IP数据报交付成功的机会,提供ICMP协议使主机和路由器能够报告差错和异常信息
- ICMP询问报文和ICMP差错报文:
- ICMP的五种差错报文:
- 终点不可达报文:目的地址无法送达
- 源点抑制报文:发送过快,造成拥塞
- 时间超过报文:路由器或主机收到超时的数据报后发送,告诉源点超时了,重发
- 参数问题报文:路由器或主机收到首部字段有问题的的数据报后发送,告诉源点出错了,重发
- 改变路由(重定向)报文:路由器发给源点,告诉源点有更好的路径
- 不应该发送差错报文的情况:
- 对于差错报文不发送差错报文
- 对第一个分片的数据报片的所有后续数据报片不发送
- 对有组播地址的数据报不发送
- 对有特殊地址(127.0.0.0或0.0.0.0)的数据报不发送
- ICMP询问报文(有1和2印象就行):
- ICMP的应用(了解就行):
- ICMP的五种差错报文:
-
IPv6:地址增大到了128位
- 表示法(重点!!!):
- 每4位用一个十六进制数 表示,并用冒号分隔每 16 位,如
4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
。 - 缩写成更紧凑的形式
- 当16位域的开头有一些0时,可以采用一种缩写表示法,但在域中必须至少有一个数字。例如,可以把地址
4BF5:0000:0000:0000:BA5F:039A:000A:2176
缩写为4BF5:0:0:0:BA5F:39A:A:2176
。 - 当有相继的0值域时,还可以进一步缩写。这些域可以用双冒号缩写(::)。如
4BF5::BA5F:39A:A:2176
。但双冒号只能替换一次
- 当16位域的开头有一些0时,可以采用一种缩写表示法,但在域中必须至少有一个数字。例如,可以把地址
- 每4位用一个十六进制数 表示,并用冒号分隔每 16 位,如
- IPv6数据报的目的地址可以是以下三种基本类型地址之一:
- 单播。单播就是传统的点对点通信。
- 多播。多播是一点对多点的通信,分组被交付到一组计算机的每台计算机。
- 任播。这是IPv6增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付其中的一台计算机,通常是距离最近的一台计算机。
-
- 某台主机要想多播(可广播,可组播),就将多播地址放入IPv6地址中的目的地址即可。
- 与IPv4对比(重点!!!):
- IPv4到IPv6:
- 双协议栈:一台设备上同时装有IPv4和IPv6协议栈,使之同时支持IPv6和IPv4
- 隧道技术:将IPv6数据报封装到IPv4数据报的数据部分,使之能在IPv4网络中传输
- 表示法(重点!!!):
-
IP组播(重点!!!):让计算机一次发送的单个分组可以抵达用一个组地址标识的若干设备,组播仅用于UDP
- 目的地址是一个D类地址,组播地址也只能用作目的地址,源地址总是一个单播地址。
- 需要路由器支持
- IGMP与组播路由算法
- IGMP协议(因特网组管理协议),是TCP/IP的一部分
- 组播路由算法
-
移动IP
- 三个功能实体
- 移动结点:具有永久IP地址的移动设备
- 归属代理(本地代理):在一个网络环境中,一个移动结点的永久“居所”叫做归属网络。而归属代理就负责在归属网络中代表移动结点执行移动管理功能,其根据移动用户的转交地址,采用隧道技术转发移动节点的数据包
- 外部代理:在外部网络中帮助移动结点完成移动管理功能的实体
- 移动IP通信流程
- 移动结点在本地网时,按传统的TCP/IP方式进行通信(在本地网中有固有的地址)。
- 移动结点漫游到一个外地网络时,仍然使用固定的IP地址进行通信。
- 为了能够收到通信对端发给它的IP分组,移动结点需要向本地代理注册当前的位置地址,这个位置地址就是转交地址
- 本地代理接收来自转交地址的注册后,会构建一条通向转交地址的隧道,将截获的发给移动结点的IP分组通过隧道送到转交地址处。
- 在转交地址处解除隧道封装,恢复原始的IP分组,最后送到移动结点,这样移动结点在外网就能够收到这些发送给它的IP分组。
- 移动结点在外网通过外网的路由器或外部代理向通信对端发送IP数据包。
- 移动结点来到另一个外网时,只需向本地代理更新注册的转交地址,就可继续通信。
- 移动结点回到本地网时,移动结点向本地代理注销转交地址,这时移动结点又将使用传统的TCP/IP方式进行通信。
- 主机A与主机B进行通信:
- 若A和B在同一个归属网络内,直接通信即可
- 若A和B在不同归属网络内,A在外部网络的外部代理注册一个转交地址,然后将转交地址注册到本地代理
- 当A给B发送数据报时,本地代理会截断数据报进行再封装(隧道技术),就是再原来的数据报外面再添加一个首部,新添加首部的目的地址是转交地址,然后发送给外部代理,外部代理再将数据报发送给主机A
- 三个功能实体
-
路由器补充:
- 可连接异构网络
- 路由表的结构
-
路由器、交换机(网桥)、集线器(中继器)(重点!!!):
- 集线器(Hub):速率必须相等。
- 两个网段在“XX”层进行互联:“XX“层及”XX“层以下协议必须相等,”XX“层以上协议可以不同
- 交换机(Switch):不同物理层协议,不同MAC子层协议(相同LLC子层)及不同速率以太网
- 路由器(Router):物理层、数据链路层和网络层协议都不同,网络层以上协议必须相同
- 集线器(Hub):速率必须相等。
习题
- R3检测到X(201.1.2.0/25)不可达,说明R3与X原本是直连的
- 得到R1路由表
X 2
,R2路由表X 2
,R3路由表X 16
(注意!!!”坏消息“是慢收敛!!!也就是说不是一下变成16的,情况很复杂,可能R2给R3的信息也到了,让R3误以为可以通过R2到。总之看成慢慢加到16的就行) - 不管如何,R2收到R1(X,2)和R3(X,>2,因为R3开始只发了R2,所以距离至少+1)
- 选择后得到R2(X,3),更新。
¶第五章 - 传输层
-
传输层功能(看看就行):
- 复用和分用:
- 传输层需要进行差错检测(首部和数据部分)
- 提供面向连接的TCP和无连接的UDP协议
-
传输层的寻址与端口:(了解):
- 端口:标识进程,传输层使用的是软件端口
- 软件端口:协议栈层间抽象的协议端口,相当于信息交互时的一种地址
- 硬件端口:硬件设备接口
- 端口号(65535 = 2^16):
- 服务端端口号:
- 熟知端口号(0~1023):指派给TCP/IP最重要的一些应用进程
- 登记端口号(1024~49151):指派给一些熟知的应用,需要在IANA登记防止重复
- 客户端端口号:(49152~65535):临时端口,进程结束后端口会回收等待分配给其它应用进程
- 服务端端口号:
- 套接字(Socket):如
127.0.0.1:8080
- 端口:标识进程,传输层使用的是软件端口
-
TCP/IP协议族:TCP(面向连接、可靠)、UDP(无连接、不可靠)
-
IP数据报和UDP数据报的区别:
- IP数据报在网络层要经过路由的存储转发
- UDP数据报逻辑上是在传输层的端到端逻辑信道上传输,实际上被封装成IP数据报在网络层上传输,UDP数据报信息对于路由来说不可见
-
TCP和网络层虚电路的区别:
- TCP在传输层抽象逻辑信道上传输,对路由不可见
- 虚电路经过的中间节点都需要保存虚电路状态信息
- 网络层若采用虚电路,则无法提供无连接服务
- 传输层使用TCP,但也可以使用网络层提供的无连接服务
-
UDP协议(重点!!!):UDP协议基于IP协议,在IP服务之上增加了“复用和分用”以及“差错检测(尽最大努力交付)”
- 特点
- UDP常为数据量小的传输协议提供服务(如DNS、SNMP)
- 尽最大努力交付但不保证可靠传输、可靠传输的实现在上层
- UDP是面向报文的
- UDP首部格式
- 源端口:16位(因为端口号最多16位,即65535)
- 目的端口:16位(同上)
- UDP长度:16位(单位1B,最小值是8,即8B,仅有首部)
- UDP校验和:16位(不想校验时就全0)
- 如果接收方UDP发现端口号找不到(不在运行),就丢弃报文,由ICMP回馈“不可达”差错报文
- UDP校验:
- UDP的校验和检查首部和数据部分
- UDP校验和校验出错误时,可以丢弃,也可以交付,但要发送错误报告
- 在计算校验和时,要在UDP数据报之前增加12B的伪首部,伪首部并不是UDP的真正首部。只是在计算校验和时,临时添加在UDP数据报的前面,得到一个临时的UDP数据报。校验和就是按照这个临时的UDP数据报计算的。
- 校验方法(不可能大题,算到猴年马月去)
- 特点
-
TCP协议(超重点!!!):
- 特点:
- TCP协议是在不可靠的IP层上实现了可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复问题。
- TCP面向字节流(TCP传送时逐个字节传送,但注意!!!TCP报文并不是只有1B的数据部分,而是一整个TCP数据报被逐个字节发送出去,例如一段100B的TCP报文段,被逐个字节地通过滑动窗口协议发送给目的地址)
- TCP报文段首部格式:
- 源端口、目的端口:各16位(2B)
- 序号(seq):4B,范围0 ~ (2^32)-1
- 例如:一段报文的第一个字节序号字段值是301,报文段共携带100B数据,则本报文段下一个字节序号301,最后一个字节序号400,下一个报文段的序号应该是401开始
- 确认号(ack小写):4B,期望收到对方下一个报文段的第一个数据字节的序号,若确认号N,则表示N-1和之前的数据都已经正确收到
- 例如:B正确收到了A发来的一个报文段,序号字段501,数据长度200B,这表明B正确收到了包含501~700序号的数据的TCP报文(这个报文被逐字节发送接收),于是B在发给A的确认报文中将确认号置为701.
- 数据偏移(首部长度):4位,单位是4B,不是IP数据报那个数据偏移,而是首部长度(因为首部有变长的选项字段)。最大长度15*4=60B
- 保留:6位,保留为今后使用,目前置0
- 紧急位URG:为1时是紧急数据,因尽快传送(不用排队/不入缓存)
- 确认位ACK:ACK=1时上面的确认号才能用,表明这是个确认报文
- 连接建立后所有报文段都是ACK=1
- 推送位PUSH:PUSH=1时应该尽快交付(≠传送,是已经接收并放到缓存里了),不用等缓存满了才交付
-
- 注意紧急位URG是在发送方中不用排队,不入缓存,紧急交付;而推送位PSH则是在接收方缓存中尽快交付,不等缓存满即交付
-
- 复位位RST:RST=1时,表示TCP连接出现严重差错,必须释放连接,重新建立连接
- 同步位SYN:SYN=1表示这是个连接请求或连接接收报文。
- SYN=1,ACK=0表示这是个连接请求报文,对方正确收到就应回复SYN=1,ACK=1
- 终止位FIN:FIN=1时用来释放连接
- 窗口字段:2B,对方的窗口数量,表示允许对方发送的数据量
- 校验和:2B,包括首部和数据部分
- 紧急指针字段:2B,单位1B,表示紧急数据共有多少字节(紧急数据在数据部分的最前面)
- 选项:长度可变,TCP只规定了一种选项(最大报文段长度)
- 填充字段,使首部长度是4B的整数倍
- 特点:
-
TCP的连接(超重点!!!):
- 连接的建立(三次握手🤝):
- 客户端向服务器发送一个请求连接报文(SYN=1,ACK=0,seq=X)
- 客户端为自己选择一个初始号X
- 服务器收到请求连接报文后,如同意,就回确认报文(SYN=1,ACK=1,ack=X+1,seq=Y),并为TCP连接准备资源(服务器)
- 服务器端为自己选择一个初始号Y
- 客户端收到确认报文后还要给服务器一个确认(ACK=1,ack=Y+1,seq=X+1),并为TCP连接准备资源(客户端)
- 客户端向服务器发送一个请求连接报文(SYN=1,ACK=0,seq=X)
- 连接的释放(四次挥手👋):
- 客户端向服务器发送一个连接释放报文(FIN=1,seq=U)
- U是上次客户端发给服务器的数据的最后字节的序号+1
- TCP客户端进入FIN-WAIT-1状态,等待服务器发送FIN=1(客户端:“我说完了”)
- 服务器收到连接释放报文后发送确认(ACK=1,ack=U+1,seq=V)
- V是上次服务器端发给客户端的数据的最后字节的序号+1
- 服务器进入CLOSE-WAIT状态,发送最后一些数据(服务器:“好的,我还有一点要讲”)
- 服务期通知客户端释放连接(FIN=1,ACK=1,ack=U+1,seq=W)
- 为什么seq不是V+1?因为2到3之间可能服务器又发了些数据
- 服务器进入LASt-ACK状态,等待客户端确认(服务器:“我也讲完了”)
- 客户端收到连接释放报文后,发出确认(ACK=1,ack=W+1,seq=U+1)
- 客户端进入CLOSED关闭状态(客户端:“好的🆗”)
- 客户端向服务器发送一个连接释放报文(FIN=1,seq=U)
- SYN泛洪攻击,不停发送连接请求报文(SYN=1),等服务器同意后发送确认报文,故意不回确认,这样这个TCP连接就被挂起,如果收到大量的TCP请求就会崩溃
- 连接的建立(三次握手🤝):
-
TCP可靠传输的实现:序号、确认号、重传
-
TCP流量控制(了解):滑动窗口协议
-
TCP拥塞控制(重点!!!):
- 最大报文段长度MSS
- 慢开始算法:先让拥塞窗口cwnd=1,每收到一个新的报文确认就增大拥塞窗口
- 如:A发B,发送方cwnd=1,A收到B关于第一个报文段(非字节)的确认cwnd=2,A收到B关于第二个报文段(非字节)的确认cwnd=4,上限16.
- 拥塞避免算法:让拥塞窗口缓慢增大
- 如:每经过一个往返时延RTT就让拥塞窗口cwnd+1
- 慢开始和拥塞避免算法结合:
- 传输轮次: A发送一个报文段
m1
给B,直到收到来自B的m1
的确认的时间段即第一个轮次; 然后A发送两个报文段m2、m3
给B,直到收到来自B的m3
的确认的时间段即第二个轮次;
- 传输轮次: A发送一个报文段
- 快重传和快恢复算法:
- 快重传:A发送0到5,B收到
0、1、3、4、5
,B收到3时会发送ack=2提醒A2号没到,同理4、5,则3次ack确认后A即使还没到超时时间也会立即发2. - 快恢复:发生快重传时cwnd=N;一旦发生快重传,就将慢开始的阈值降低到发生快重传时的一半即N/2;且重新开始慢开始
- 快重传:A发送0到5,B收到
- 不管哪种方法,发送窗口的大小由拥塞窗口和接收窗口的最小值决定
-
TCP协议首部20B,IP协议首部20B.
¶第六章 - 应用层
-
网络应用模型(了解):
- 客户端/服务器模型
- P2P模型
-
域名系统(DNS)(了解):将便于记忆的网址(www.google.com)转变为方便计算机处理的IP地址
- 协议运行在UDP,使用53端口
- 域名服务器层次
- 根域名服务器
- 最高层次服务器,所有根域名服务器都知道所有顶级域名服务器的IP
- 最重要的域名服务器,本地域名服务器在无法解析一个域名时,首先求助于根域名服务器
- 用来管辖顶级域(如:com),一般不直接转化为IP,而是告知应该去哪个顶级域名服务器查询
- 顶级域名服务器
- 负责管理在该顶级域名服务器注册的所有二级域名
- 收到DNS查询请求时, 就给出相应的回答
- 权限域名服务器
- 二级及以下的域名服务器
- 每台主机(网站服务器的主机)都必须在授权域名服务器处登记。
- 实际上,许多域名服务器都同时充当本地域名服务器和授权域名服务器。
- 授权域名服务器总能将其管辖的主机名转换为该主机的IP地址。
- 本地域名服务器
- 每个因特网服务提供者(ISP),或一所大学,甚至一所大学中的各个系,甚至计算机内都可以拥有一个本地域名服务器。
- 当一台主机发出DNS查询请求时,这个 查询请求报文就发送给该主机的本地域名服务器。
- 根域名服务器
- 域名的层次
-
域名解析过程
- 域名解析是指把域名映射成为IP地址或把IP地址映射成域名的过程。前者称为正向解析, 后者称为反向解析。
- 当客户端需要域名解析时,通过本机的DNS客户端构造一个DNS请求报文, 以UDP数据报方式发往本地域名服务器。
- 查询方式:
- 递归查询:本机去本地域名服务器查询,本地服务器查不到,将任务转交给根域名服务器,再根域名➡顶级域名➡权限域名一级一级直到查到再返回
- 迭代查询:本地域名查不到,由本地域名服务器分别依次去根域名服务器、顶级域名服务器、权限域名服务器查询(根域名告知去哪个顶级域名服务器查询,以此类推,直到查到)。
-
文件传输协议FTP(重要)
- 特点:
- FTP采用客户/服务器的工作方式,它使用TCP可靠的传输服务
- 一个FTP服务器进程可同时为多个客户进程提供服务
- 可匿名方式提供公共文件共享
- 工作原理:
- 使用两个并行的TCP连接(都是服务器上打开的端口):
- 控制连接(端口21):
- 服务器监听21端口,等待客户端连接请求;
- 控制信息都以7为ASCⅡ格式发送;
- 控制连接整个会话期间都打开
- 数据连接(端口20):
- 控制进程收到请求后,就创建数据连接子进程负责该客户端进程的传输
- 传送完毕后关闭数据连接子进程
- 控制连接(端口21):
- 打开21端口(控制),使客户进程能够连接上
- 等待客户进程发连接请求
- FTP启动从属进程来处理客户端进程发来的请求.主进程和从进程并发执行,从属进程处理完客户进程的请求立即终止
- 回到等待状态,继续接收其它客户基础发来的请求
- 使用两个并行的TCP连接(都是服务器上打开的端口):
- 特点:
-
电子邮件📧(了解)
- 组成部分:
- 用户代理(UA):用户与电子邮件系统的接口
- 邮件📧服务器:负责发送接收邮件和跟踪邮件状态
- 协议:SMTP(发送协议,负责用户代理UA发给邮件服务器或邮件服务器之间的发送)、POP3(接收协议,负责UA从邮件服务器读取邮件📧)
- 电子邮件📧的收发过程:
- 【发】发信人攥写邮件📧。用户代理UA通过STMP发送邮件📧到发送方的邮件服务器
- 【存】发送方邮件服务器将邮件📧放入缓存队列
- 【连】发送方服务器发现缓存队列的邮件后,向接收方的SMTP服务器发起TCP连接。
- 【发】(邮件服务器的)TCP连接建立后,STMP客户进程开始向远程STMP服务器进程发送邮件📧,发完后关闭TCP连接。
- 【存】接收方STMP服务器收到邮件,放入用户邮箱(暂存)
- 【取】收信人使用UA调用POP3(或IMAP)将邮件从接收方邮件服务器中的用户邮箱取回
- 邮件格式
- ”To“和”From“是必需的
- 多用途网际邮件扩充(MIME):
- STMP只支持ASCⅡ码,对非英文用户极不友好,也无法传输二进制文件(图片、压缩包等附件)
- 组成部分:
-
SMTP 和 POP3 和 IMAP(看看就行):
- STMP:
- 连接建立、邮件传送、连接释放
- 依赖TCP
- POP3:
- UA运行POP客户端程序、邮件服务器运行POP服务器程序
- 依赖TCP
- 两种工作方式:
- 下载并保留
- 下载并删除
- IMAP(因特网报文存取协议):
- 只有存取,即邮件接收协议,比POP复杂
- 为用户提供:创建文件夹、不同文件夹间移动邮件、远程文件夹查看邮件、查看邮件报文的部分内容功能
- 需要维护会话用户状态信息
- STMP:
-
基于万维网的电子邮件📧(看看就行):
- 直接使用网页发送
- 从发送方到邮件📧服务器和从邮件📧服务器到接收方使用的是HTPP协议
-
万维网和HTTP协议(了解):
- 万维网一般使用超文本传输协议(HTTP)将资源(一般是HTML)发给使用者
-
HTTP协议(超重点!!!):
- 特点:
- 无状态(第二次访问页面时和第一次访问,其服务器响应相同)
- 无状态特性意味着对于不同客户端的同一页面请求,可以返回相同的响应,使服务器支持大量并发HTTP请求
- 使用cookie和数据库来跟踪用户活动
- 使用TCP作为传输层协议,可靠
- 持久连接和非持久连接
- 工作原理:
- 每个站点背后都有一个服务器进程,不断地监听TCP端口80(默认)
- 服务器监听到连接请求就与客户端建立连接
- TCP连接建立后,浏览器向服务器发送获取某个Web页面的HTTP请求
- 服务器收到HTTP请求后,将构建Web页的必需信息(渲染文件路径、内容文件路径等),通过HTTP响应返回给浏览器
- 浏览器解释执行,显示Web页,TCP连接释放
- 两种报文:HTTP请求报文、HTTP响应报文
- 用户单击鼠标后所发生的事件按顺序如下(以访问清华大学的网站为例)(看看就行):
- 浏览器分析链接指向页面的URL(http://www.tsinghua.edu.cn/chn/index.htm)
- 浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址。
- 域名系统DNS解析出清华大学服务器的IP地址。
- 浏览器与该服务器建立TCP连接(默认端口号为80)。
- 浏览器发出HTTP请求:
GET /chn/index.htm
- 服务器通过HTTP响应把文件index.htm发送给浏览器。
- 释放TCP连接。
- 浏览器解释文件index.htm,并将Web页显示给用户。
- 持久连接和非持久连接
- 非持久连接(静态加载):每个网页元素对象(如JPEG图形、Flash等)的传输都需要单独建立一个TCP连接
- 持久连接(动态加载):是指万维网服务器在发送响应后仍然保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的HTTP请求与响应报文
- 持久连接又分为非流水线和流水线两种方式。
- 非流水线方式:客户在收到前一个响应后才能发出下一个请求。
- 流水线方式:
- HTTP/1.1的默认方式是使用流水线的持久连接。
- 如果所有的请求和响应都是连续发送的,那么所有引用的对象共计经历1个RTT延迟,而不是像非流水线方式那样,每个引用都必须有1个RTT延迟。
- 一个对象引用就立即发出一个请求;因而客户可以逐个地连续发出对各个引用对象的请求。
- 状态码:
- 特点:
¶新考点
- SDN:路由选择算法不再运行在每台路由器上,由一台远程控制器负责进行路由选择,路由仅进行转发。
- 网络范围状态管理层负责实现自定义路由选择协议
- 向上(北)网络控制应用程序/软件。向下(南)受控网络设备/路由器
- VLAN:
¶tool
1 | 四号绿: <font color=green size=4></font> |
¶参考资料
王道参考书 & GitHub: How-to-learn-408