网络原理考研笔记:
一、概念篇:
-
网络的分类:
- 按分布范围:广域网(WAN);城域网(MAN);局域网(LAN);个人局域网(PAN);
- 按拓扑结构:总线形;星形;环形;网状形;
-
网络的功能:数据通信;资源共享;分布式处理;提高可靠性;负载均衡; -
常用熟知应用层协议的端口号和传输层协议:
应用层协议 | HTTP | FTP | SMTP | POP3 | TELNET | BGP | DNS | DHCP | RIP | SNMP |
---|
端口号 | 80 | 21 | 25 | 101 | 23 | 179 | 53 | 67 | 520 | 161 | 基于传输层 | TCP | TCP | TCP | TCP | TCP | TCP | UDP | UDP | UDP | UDP |
-
OSI参考模型:
-
TCP/IP模型:
- 各层与OSI的对应关系:
- 网络接口层:对应OSI的物理层和数据链路层;
- 网际层:对应OSI的网络层;
- 传输层:对应OSI的传输层;
- 多路复用: 在源主机, 传输层协议从不同的套接字收集应用进程发送的数据块, 并为每个数据块封装上首部信息( 包括用于分解的信息) 构成报文段, 然后将报文段传递给网络层;
- 多路分解: 在目的主机, 传输层协议读取报文段中的字段, 标识出接收套接字, 进而通过该套接字, 将传输层的报文段中的数据交付给正确的套接字;
- 应用层:对应OSI的会话层、表示层和应用层;
- 与OSI的比较:
- 相似处:
- 采用分层的体系结构;
- 基于独立的协议栈;
- 都可以解决异构网络的互联;
- 不同处:
- OSI网络层支持无连接和面向连接的通信,但TCP/IP网络层仅提供无连接的不可靠的服务;
- OSI传输层仅提供面向连接的通信,但TCP/IP将可靠性的保证放在端到端的传输层;
-
奈奎斯特定理:理想低通信道(没有噪声、带宽有限)的==极限数据传输率 =
2
W
l
o
g
2
V
2Wlog_2V
2Wlog2?V,极限波特率 =
2
W
2W
2W==,其中
W
W
W是带宽,单位是
H
z
Hz
Hz,
V
V
V是每个码元离散电平的数目; -
香农定理:带宽受限且有高斯白噪声干扰的信道的==极限数据传输率 =
W
l
o
g
2
(
1
+
S
/
N
)
Wlog_2(1+S/N)
Wlog2?(1+S/N),其中
W
W
W是带宽,
S
S
S是信道传输信号的平均功率,
N
N
N是信道内部高斯噪声的功率,
S
/
N
S/N
S/N反映信噪比 =
10
l
o
g
10
(
S
/
N
)
10log_{10}(S/N)
10log10?(S/N)==,单位是
d
B
dB
dB -
数字数据编码成数字信号:
编码技术 | 编码方式 | 特点 |
---|
归零编码RZ | 高电平表示1,低电平表示0,每个时钟周期中间归零 | 根据每个时钟周期中间的跳变,可以进行同步,但归零占用一半带宽,影响传输效率 | 非归零编码NRZ | 高电平表示1,低电平表示0,无需归零 | 一个周期可以全部用来传输数据,但是无法传递时钟信号,难以同步 | 反向非归零编码NRZI | 信号的翻转表示0,保持不变表示1 | 既能传输时钟信号,又能尽量不损失带宽 | 曼彻斯特编码 | 前一半高电平后一半低电平是1,反之为0 | 在每个码元的中间出现跳变,位中间既可以作时钟信号,又可以作数据信号,但是频带宽度是原始基带宽度的两倍; 以太网使用的是曼彻斯特编码; 由于每个比特需要两个信号周期,因此波特率是比特率的两倍; | 差分曼彻斯特 | 该码元的前一半的电平与上个码元的后一半电平相同,则为1,反之为0 | 每个码元中间出现跳变,可以同步,且抗干扰性较好 | 4B/5B | 每4位数据作为一组转换成5位码 | 4位数据对应5位码的一半编码,其余一半作为控制码 |
-
数字数据调制成模拟信号:
- 幅移键控(ASK):改变载波信号的振幅表示1或者0;
- 频移键控(FSK):改变载波信号的频率表示1或者0;
- 相移键控(PSK):改变载波信号的相位表示1或者0;
- 正交振幅调制(QAM):将ASK和PSK结合起来,形成叠加信号;设波特率是B,相位有m个,每个相位有n重振幅,则数据传输率为:
B
l
o
g
2
(
m
n
)
Blog_2(mn)
Blog2?(mn);
-
模拟数据编码成数字信号:
- 采样:根据采样定理:原始信号的最大频率为
f
f
f,则采样频率需大于
2
f
2f
2f;
- 量化:把采样的电平幅值按照一定的分级标度转化为相应的整数数字值;
- 编码:把量化结果转化为二进制编码;
-
模拟数据调制成模拟信号:
- 使用FDM技术充分利用带宽资源;电话局即将模拟的声音数据加载到模拟的载波信号中传输;
-
数据交换方式:
交换名称 | 交换方式 | 优点 | 缺点 |
---|
电路交换 | 结点之间建立一条专用的物理通信路径,预分配带宽 在数据传输期间一直被独占,直到通信结束后才释放 分为三个阶段:连接建立、数据传输和连接释放 | 传输时延小 没有冲突 实时性强 | 建立连接时间长 线路独占,信道效率低 容错性低,没有差错控制 | 报文交换 | 数据交换的单位是报文,携带目标地址、源地址等信息,在交换结点采用存储转发的方式 | 无需建立连接 提高容错性和利用率 | 传输时延长 报文大小不固定且无限制 | 分组交换 | 与报文交换的不同是,限制了每次传送的数据块大小的上限,把大数据块分成合理的小数据块传输 | 无需建立连接 传输时延降低 减少了出错率 | 仍然存在传输时延 需要更多的控制信息,降低了通信效率
|
-
分组交换的两种方式:
| 数据报 | 虚电路 |
---|
连接建立 | 无连接 | 面向连接 | 目的地址 | 每个分组都有完整的目的地址 | 仅在建立连接阶段使用,之后每个分组使用虚电路号 | 路由选择 | 每个分组独立进行路由选择和转发 | 仅在建立时进行路由选择 之后同一条虚电路的分组按照同一路由转发 | 分组顺序 | 不保证有序 | 保证有序 | 可靠性 | 不保证可靠 | 保证可靠 | 容错性 | 出故障的结点丢失分组,其他分组也可以正常发送 | 所有经过出故障的结点的虚电路均不能正常工作 | 差错/流量控制 | 有差错控制,无流量控制 | 既有差错控制,也有流量控制 |
-
物理层接口的特性:
- 机械特性:规格、引脚数目、引脚排列情况等;
- 电气特性:电压高低、传输速率和距离;
- 功能特性:某一电平的电压的意义,引线的用途;
- 规程/过程特性:物理线路的工作规程和时序关系;
-
传输介质:
-
双绞线:
- 最常用的古老传输介质,由两根并排绞合且相互绝缘的铜导线组成;
- 绞合的目的是减少相邻导线的电磁干扰;
- 分类:
- 屏蔽双绞线:在双绞线外面加上一层由金属丝编织的屏蔽层;
- 非屏蔽双绞线:无屏蔽层;
- 优点:价格便宜、适用范围广,传输距离长;
- 适用:局域网、传统电话网、模拟传输和数字传输;
-
同轴电缆:
- 由内导体、绝缘层、网状编织屏蔽层和塑料外层构成;
- 分类:
- 50欧姆同轴电缆:主要传输基带数字信号;
- 75欧姆同轴电缆:传输宽带信号和有线电视系统;
- 优点:良好的抗干扰性,传输距离更长,高速;
- 缺点:价格贵于双绞线;
-
光纤:
- 利用光的全反射原理在光纤中不断传输;
- 分类:
- 单模光纤:光纤直径仅一个光波长度,不会产生多次反射;
- 多模光纤:从不同角度入射的多束光线在一条光纤中传输;
- 优点:传输损耗小、传播距离远、抗干扰性好、保密性好;
-
无线传输介质:
- 无线电波:穿透性强、传播距离远;
- 微波、红外线、激光:
- 三者都有很强的方向性,沿直线传播;
- 红外线和激光有自己的红外信号、激光信号格式;
- 微波频率高、频段宽,但是地面传输距离有限,需要中继站;
- 卫星通信:
- 通过卫星作为中继站传播微波信号;
- 优点:范围广、距离远;
- 缺点:时延长;
-
物理层设备:
- 放大器:将衰减的模拟信号放大;用于传输远距离的模拟信号;放大的同时噪声也放大,会失真;
- 中继器:
- 将数字信号整形并放大再转发出去,以消除信号经过一长段电缆后因噪声等原因造成的失真和衰减;
- 不能连接两个不同速率的局域网;
- 集线器:
- 多端口的中继器,工作在物理层,将信号进行整形放大,再生到发送状态,并转发到其他所有的端口
- 增大了冲突的概率,任意时刻平均只能有一个端口的有效数据输入,若带宽是
M
M
M的集线器连接了
N
N
N个端口,则每个端口的平均带宽为
M
/
N
M/N
M/N;集线器的数据率一般是100Mb/s;
- 每个端口连接的是同一个网络的不同网段,不能分割冲突域;
-
组帧技术:
- 字符计数法:在帧头使用一个计数字段标明帧内字符数;
- 字符填充:使用特殊字符定界一帧的开始和结束,帧内的特殊字符填充一个转义字符加以区分;
- 零比特填充:使用一个特定的比特串01111110标志一帧的开始和结束,发送方发送时帧内数据中遇到5个连续1要随后插入一个0,接收方则自动删除5个1后面插入的0;
- 违规编码法:将不合法的编码电平作为定界符;
-
数据链路层流量控制的三种滑动窗口协议:
- 对于大小为n的滑动窗口:滑动窗口 = 发送窗口 + 接收窗口;接收窗口
≥
1
\ge1
≥1;发送窗口
≤
n
?
1
\le n-1
≤n?1;
- 停止等待协议:发送窗口 = 1,接收窗口 = 1;
- 后退N步协议;发送窗口 =
N
N
N,接收窗口 = 1;若采用n比特对帧编号,则
1
≤
N
≤
2
n
?
1
1\le N\le2^n-1
1≤N≤2n?1;
- 选择重传协议;发送窗口 =
N
1
N_1
N1?,接收窗口 =
N
2
<
N
1
N_2<N_1
N2?<N1?;若采用
n
n
n比特对帧编号,则
N
1
+
N
2
≤
2
n
?
N
1
≤
2
n
?
1
N_1+N_2\le2^n\Rightarrow N_1 \le 2^{n-1}
N1?+N2?≤2n?N1?≤2n?1;
-
介质访问控制:
-
信道划分介质访问控制:
- 频分复用FDMA:适合传输模拟信号;
- 时分复用TDMA:适合传输数字信号;
- 波分复用WDMA:光的频分复用;
- 码分复用CDMA:
- 码分多址:每个站点的比特指定一个唯一的m位码片(计算时用1表示1,用-1表示0),1则发送码片,0则发送码片反码,要求各个站点的码片序列相互正交,这样混合码片(发送信号的线性叠加)与自己的码片规格化内积,结果是1则发送的是1,结果是-1则发送的是0;
-
随机访问介质访问控制:
-
以太网:
-
逻辑上采用总线型拓扑结构,物理上采用星型结构,半双工; -
信息以广播方式发送,采用CSMA/CD对总线进行访问控制; -
采用无连接的工作方式,尽最大努力交付,不纠正差错,提供不可靠的服务; -
MAC帧格式:
- 前导码:占8B,前7B是前同步码,后1B是帧开始定界符;不计入帧长计算;
- MAC地址:各占6B;
- 类型:占2B,指出数据域交给哪个协议实体处理,如0x0800是IP,0x0806是ARP;
- 数据域:46~1500B,为了保证最小帧长64B,因此数据最少需要46B(首部18B),不够需填充;
- 校验码:占4B,使用CRC校验,校验除了前导码外的所有部分;
-
以太网的传输介质:
- 10:指传输速度是100Mbps;
- BASE:指采用基带传输;
- T:双绞线;F:光纤;数字:同轴电缆;
- 快速以太网:100BASE-T;
-
802.11无线局域网协议:
- BSS:基本服务集,包括一个基站和若干移动站,所有的站在本BSS中直接通信,但与外部通信都要经过BSS基站;
- 帧三地址结构:地址1:AP地址;地址2:源地址;地址3:目的地址;
-
数据链路层设备:
- 网桥:
- 将两个网段的以太网相连接,组成更大范围的以太网;
- 可以 隔绝两个冲突域,但是 不能隔绝广播域;
- 按照自学习算法通过MAC地址进行存储转发,但是会因为广播信息过多产生广播风暴(可使用生成树算法避免);
- 可互联不同类型的局域网,使用不同的物理层;
- 透明网桥:在转发帧时记下其源地址和进入端口,作为转发表的项目,逐步建立转发表;选择的并不是最佳路由;
- 源路由网桥:源站以广播形式向目的站发送发现帧,探测所经过的结点,生成最佳路由;
- 交换机:
- 本质上是多对端口并行处理的网桥,每对端口都是独立的冲突域;
- 可以全双工,也可以半双工;
- 即插即用,转发表由自学习算法构建;
- 有专门的交换结构芯片,交换速率很高;
- 可以实现 虚拟局域网(VLAN),此时可以 隔绝广播域;
- 分为直通式交换机(仅检查目的地址后立即转发)和存储转发式交换机(先缓存帧,并检查数据正确性,正确转发,错误丢弃);
-
广域网:
- 与局域网的区别:范围更大,用交换机点到点连接;从互联网的角度来看二者平等;
- WWW高速缓存:主机将最近的一些请求和响应暂存在本地磁盘中,当与暂存的请求相同的心情求到达时,就将暂存的响应发送出来,从而降低广域网的带宽;
- 与互联网的区别:连接单一类型的网络,不使用路由器连接;
- PPP协议:
- 使用串行线路通信的面向字节全双工的协议;
- 该协议应用在直接连接两个结点的链路上用来通过拨号或专线方式建立点对点连接发送数据;
- 使用CRC差错检测但是不纠错;
- 不使用序号和确认机制,不可靠;
- 两端可以运行不同的网络层协议;
- 帧定界采用字符填充;
- HDLC协议:
- 面向比特全双工的数据链路层协议;
- 使用编号和确认机制,可靠;
- 帧定界采用零比特填充;
-
IPv4:
-
数据报格式:
- 首部长度:总共4位,每个单位表示4B,故最大首部长度为60B,一般为20B;
- 总长度:首部+数据长度,共16位,每个单位表示1B,故最大分组长度是65535B,但一个分组不能超过1500B(以太网的MTU),超过时需要分片;
- 标识:共16位,每产生一个数据报就加1,不过不是序号,只是为了分片时能分辨属于同一个数据报的分片(其标识相同),最终在目标主机重组(不会在中间路由器重组);
- 标志:最低位MF=1表示还有分片,中间位DF=0表示允许分片,最高位保留;
- 片位移:总共13位,每个单位表示8B,即每个分片的长度一定是8B的倍数;
- 生存时间TTL:共8位,每经过一个路由器减1,减为0则丢弃,确保分组不会永远在网络中循环;
- 协议:占8位,指出传输层协议号,6为TCP,17为UDP;
- 首部校验和:共16位,使用16位反码和校验,且只校验首部;校验出错则直接丢弃;
- 地址:32位地址;
-
IPv4地址:
- 分类地址:
- A类地址:网络号长为8位,前缀为0,子网掩码为255.0.0.0;
- B类地址:网络号长为16位,前缀为10,子网掩码为255.255.0.0;
- C类地址:网络号长为24位,前缀为110,子网掩码为255.255.255.0;
- D类多播地址:前缀为1110,后28位全为多播地址;
- CIDR:斜线记法:主机号/前缀长度;
- 特殊地址:
- 主机号全0表示网络号指向的那个网段地址;
- 主机号全1表示网络号指向的全部主机的广播地址;
- 0.0.0.0/0用来表示默认路由,如发往互联网;
- 255.255.255.255表示受限的广播,只能在该广播域广播,不能被路由器转发;
- 127.xx.yy.zz用作回环测试(作为目的地址发送,然后立即返回本机);
- 掩码为全1的是特定主机路由,如DNS服务器地址;
-
NAT:
-
NAT工作在网络层和传输层; -
NAT路由器通过查找NAT转换表实现本地专有网的IP地址和外部全球IP地址的转换; -
NAT转换表存放着{本地IP:端口}到{全球IP:端口}的映射; -
NAT路由器至少有一个有效的外部全球地址; -
NAT区别于普通路由器的是,其会查看端口号,以及更换IP地址; -
NAT转换表需要管理员设置,表中查询不到的分组直接丢弃不转发; -
NAT保留了一些私有地址仅属于专有私有网络,而不属于公网,如下所示:
地址类别 | 地址范围 |
---|
A类 | 10.0.0.0~10.255.255.255 | B类 | 172.16.0.0~172.31.255.255 | C类 | **192.168.**0.0~192.168.255.255 |
-
ARP:
- 工作在网络层,IP的子协议,本身数据作为以太网帧的数据部分;
- 解决同一个局域网上的主机或路由器的IP地址和MAC地址的映射问题;
- 当主机本地的ARP缓存查找不到目标主机IP地址对应的MAC地址时,广播ARP请求分组;
- 接到ARP请求分组并知道所请求主机的MAC地址的主机/路由器,回复ARP响应分组,告知所请求主机/路由器的MAC地址;
-
DHCP:
- 工作在应用层,基于UDP,端口号为67;
- 客户广播DHCP“Dicovery”报文(广播原因:存在多个DHCP服务器,未知其IP地址),DHCP服务器收到后从IP地址池中分配一个地址并广播“DHCP Offer”报文(广播原因:尚未分配客户端的IP地址);
- 客户收到“DHCP提供”报文,如果接受服务器所提供IP地址和相关配置(通常选择最先到达的IP),则广播“DHCP Request”报文请求提供该IP地址(广播原因:对可能多个DHCP服务器的IP地址进行请求);
- DHCP服务器收到“DHCP请求”报文后,广播“DHCP ACK”报文(广播原因:尚未分配客户端的IP地址),客户收到后即完成了分配;
- 两轮通信,四个报文,均是广播形式,源IP都是全0,目的IP都是全1;
- DHCP服务器分配的IP地址是临时的,只有一段租用期;租期快到时需要续租;
-
ICMP:
- 工作在网络层,IP的子协议,本身数据作为IP数据报的数据部分;
- ICMP差错报文:如终点不可达、超时(Traceroute)、源点抑制(网络拥塞而丢失报文,通知源点降低发送速率)、重定向(选择更好的路由)等;
- ICMP询问报文:PING;
- 不应发送ICMP差错报告的情况:
- 对ICMP差错报文不发送;
- 对分片的数据报的非首分片不发送;
- 对具有组播地址的数据报不发送(因此在PING后面接D类地址,永远收不到响应);
- 对特殊地址(0.0.0.0或127.0.0.0)不发送;
-
IPv6:
-
关键特征:身份验证和保密功能,增大了安全性; -
IPv6数据报格式:
- 首部长度:固定为40B;
- 分片:不允许分片;
- 有效载荷长度:共16位,给出了在IPv6数据报的定长的40B的数据报首部后的字节数量,包括扩展首部/数据;
- 下一个首部:标识数据报中的数据字段被交给哪个运输层协议;
- 跳数限制:共8位,即IPv4的TTL;
- 校验和:为了提高效率,省去校验和;
- 地址:128位;
-
IPv6地址:
- 每4位用十六进制表示一组,并用冒号隔开,共8组;
- 以0开头的组可以省略开头0;
- 如果某组就是0,则直接用一个0占位;
- 如果有多组连续出现0,则可以用双冒号代替这些0组,但是双冒号只能出现一次;
-
IPv4向IPv6的迁移:
- 双协议栈技术:同一台设备上同时装有IPv4和IPv6的协议栈,能同时和两种协议网络通信;
- 隧道技术:将整个IPv6数据报封装到IPv4的数据部分中;
-
路由协议的比较:
- RIP:网络出现故障时,会出现慢收敛现象;交换信息为整个路由表,开销大;每30秒交换一次;
- OSPF:对不同链路根据IP分组的不同服务类型设置不同的代价;到一个目的网络有多个相同代价的最佳路径,则可以均分给这几条路径;交换的分组有鉴别功能,提高了可靠性;每个链路状态带上一个32位的序号,序号越大,状态越新;
- BGP:BGP发言人(边界路由器)数量很少,使得路由选择不复杂;路由选择可以采用热土豆算法;
-
IP组播:
- 应用于基于UDP的应用;
- 每个组播组通过一个D类地址标识,组播地址只能用于目的地址;
- 组播地址的范围:224.0.0.0~239.255.255.255;因此并非所有的D类地址都可以用作组播地址;
- 主机组播时仅发送一份数据,数据在传送路口分岔时才会通过组播路由器复制;
- 组播数据报不可靠交付,且不产生ICMP报文;
- IGMP:
- 每个主机想加入组播组需要向组播组的组播地址发送一个IGMP报文声明加入申请;
- 本地组播路由器要周期性地探询本地局域网上的主机查看活跃状态;
- 进行组播路由选择:即找到以源主机为根的组播转发树(主要有三种路由算法:① 基于链路状态的路由选择;② 基于距离-向量的路由选择;③ 协议无关的组播PIM);
-
移动IP:
- 移动结点在本地网时,使用固有地址按照传统的TPC/IP通信;
- 移动结点漫游到外地网络时,向本地代理注册当前的位置地址,即转交地址(外部代理的地址);
- 本地代理收到后构建一条通向转交地址的隧道,将截获的发给移动结点固有地址的IP分组通过隧道转发到转交地址;
- 在转交地址处,外部代理解除隧道封装,恢复原始IP分组发给移动结点;
- 移动结点在外地向外部代理发送IP分组;
- 移动结点移动到另一个外网则向本地代理更新转交地址,或者回到本地网后则向本地代理注销转交地址;
-
网络层设备/路由器:
- 任务是连接异构网络并完成路由转发;
- 工作在三层,物理层、数据链路层和网络层;
- 可以隔离冲突域和广播域;
- 路由选择部分:路由选择处理机根据所选定的路由选择协议构造出路由表;
- 分组转发部分:分为输入端口、交换结构和输出端口三部分,交换结构根据转发表对分组进行处理(三种交换方法,① 通过存储器;② 通过总线;③ 通过互联网络),将输入端口进入的分组从一个合适的输出端口转发出去;
- 路由表项:<目的IP,子网掩码,下一跳IP,接口>;
- 转发表项:<目的站,下一跳>,通过路由表得出,为了查找过程最优;
- 默认路由:目的地址和子网掩码都是0.0.0.0;代替所有具有相同下一跳的表项,以减少重复表项;
-
UDP:
-
套接字: <目的IP,目的端口>; -
UDP数据报格式:
- UDP首部长度为8B;
- 端口号:共16位,可以提供65536个个端口号,其中0~1023是熟知端口号(服务器使用默认段端口号,而客户则是动态分配端口号);
- UDP长度:共16位,首部+数据的长度(最小值为8,即仅含首部);
- 校验和:共16位,使用反码校验,且校验伪首部+首部+数据,校验和功能可选,不校验则置全0,校验无差错则是全1;
- 伪首部:共12B,包括源IP、目的IP等,仅临时用作校验;
- 数据部分:在校验时不是偶数字节需要临时补个全0字节;
- UDP特点:无连接,不可靠,有差错直接丢弃,快速简单,适用于实时数据和非一对一传送的数据;
-
TCP:
-
套接字: <源IP,源port,目的IP,目的端口>; -
面向字节流:应用程序和TCP的交互是一次个数据块,但是TCP把应用程序交下来的数据视为一串无结构的字节流; -
TCP数据报格式:
- TCP首部长度最短为20B;
- 端口号:共16位;
- 序号和确认号:32位,为数据流中的字节编址,因此序号字段的值指的是本报文段所发送的数据的第一个字节的序号,确认号是期望收到对方的下一个报文段的数据的第一个字节的序号;
- 数据偏移:即首部长度,4位,每个单位为4B(因此首部长度需要是4B的整数倍),因此最大首部长度为60B;
- 特殊标志位:
- URG:紧急位,置1表示紧急指针字段有效,通知有紧急数据需要尽快传送;
- ACK:确认位,置1表示确认号字段有效,连接建立之后所有报文段ACK均置1;
- PSH:推送位,置1表示收到后需要尽快交付给接收应用进程;
- RST:复位位,置1表示TCP连接出现严重差错,必须释放连接,再重新连接;
- SYN:同步位,置1表示这是一个请求连接报文,且SYN报文不能携带数据,但要消耗一个序号
- FIN:终止位,置1表示这是一个释放连接报文;
- 窗口:16位,表示自己还能接收的数据大小,单位是字节,对方据此设置发送窗口大小;
- 校验和:16位,同UDP的计算,校验首部和数据;
- 紧急指针:16位,表示本报文段紧急数据共有多少字节(紧急数据放在数据的最前面);
-
连接管理:
-
连接建立/三次握手:
- 第一次握手:客户端发送SYN=1, seq=x(随机初始序号)的连接请求报文,不携带数据;
- 第二次握手:服务器发送SYN=1,ACK=1,seq=y(随机初始序号),ack=x+1的连接同意报文,不携带数据;
- 第三次握手:客户端发送ACK=1,seq=x+1,ack=y+1的确认报文,可以捎带数据;
-
连接释放/四次挥手:
- 第一次挥手:客户端发送FIN=1,seq=u的连接释放请求报文,不携带数据,且不再向服务器发送数据;
- 第二次挥手:服务器发送ACK=1,seq=v,ack=u+1的释放确认报文,可以继续携带数据,客户端仍要接收,此时TCP处于半连接状态;
- 第三次挥手:当服务器没有要向客户端发送的数据后,此时发送FIN=1,ACK=1,seq=w,ack=u+1的连接释放报文,不携带数据;
- 第四次挥手:客户端发送ACK=1,ack=w+1,seq=u+1的释放确认报文,之后再等待2MSL,确保对方所有帧都已接收完毕,才最终关闭连接,以免对后续连接产生错误干扰;
- SYN洪泛攻击:攻击者发送第一个握手给服务器,服务器以第二个握手回复,攻击者不再发送第三个握手,使得服务器处于半连接状态,重复发送第二个握手;建立大量的半连接会消耗服务器的CPU和内存,从而宕机;
-
可靠传输:
- 序号和确认号:保证不失序、不重复和不丢失,正确收到但失序的报文不会丢弃,但是确认采用累计确认,而重传只重传接收方的确认序号对应的报文段(GBN和SR的混合);
- 超时重传:TCP每发送一个报文段,就对该报文段设置计时器,重传时间到期未收到确认就要重传;
- 冗余ACK重传:当发送方收到对同一个报文段的3个冗余ACK时,就可以认为该确认报文段之后的报文段丢失,执行快重传;
- 重传时间RTO:按照RTT的估计值确认(RTO略大于RTT):新估计RTT = (1-a) x 旧RTT + a x 新RTT样本;
-
流量控制:
- 接收窗口rwnd:根据接收方报文段中“窗口”字段的大小限制,调整下次发送的报文段的大小;
- 拥塞窗口cwnd:根据当前网络拥塞程度估计的窗口值;
- 发送窗口 = min{rwnd,cwnd};
-
拥塞控制:
- 传输轮次:使用传输轮次是为了强调,把拥塞窗口cwnd所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个报文段的确认;因此可以认为只有在每个RTT开始时连续发送报文段;
- 慢启动:令cwnd=1,每收到一个确认,就增加一个最大报文段长度MSS,即cwnd++,因此该阶段cwnd按照
2
n
2^n
2n增长,直到一个规定的慢开始阈值ssthresh(cwnd不能越过sstrhesh,即:cwnd=min{cwnd*2,ssthresh}),此时改成拥塞避免算法;
- 拥塞避免:cwnd每经过一个RTT再cwnd++,因此该阶段cwnd线性增长,直到出现超时现象(慢开始阶段遇到超时现象同样处理):此时令ssthresh = cwnd/2,然后重新令cwnd=1并执行慢开始算法;
- 快恢复:当发送方收到对同一个报文段的3个冗余ACK时,快重传,并令ssthresh = cwnd/2,然后重新令cwnd=ssthresh(+3)并执行慢拥塞避免算法(即跳过慢启动阶段);
-
DNS:
- 客户机向本地域名服务器发出DNS请求报文;
- 本地域名服务器收到请求后,查询本地缓存,若没有该记录,则以DNS客户的身份向根域名服务器发出解析请求;
- 根域名服务器收到请求后,将对应顶级域名服务器dns.com的IP地址返回给本地域名服务器;
- 本地域名服务器向顶级域名服务器dns.com发出解析请求;
- 顶级域名服务器dns.com收到请求后,将对应的授权域名服务器dns.abc.com的IP地址返回本地;
- 本地域名服务器向授权域名服务器dns.abc.com发出解析请求;
- 授权域名服务器dns.abc.com收到请求后,将y.abc.com的查询结果返回给本地;
- 本地域名服务器将查询结果保存到本地缓存,同时返回给客户机;
-
FTP:
- 基于TCP,端口号为21(控制连接)和20(数据连接);
- FTP允许客户指明文件的类型,格式,存取权限,适合在异构网络中传送文件;
- FTP工作时使用两个并行的TCP连接,控制连接和数据连接;
- 控制连接:用来传输控制信息(带外传送),如连接信息、释放信息、命令信息等,整个会话期间一直保持打开状态;
- 数据连接:传输数据信息,每次文件传输时建立,传输完关闭;
-
SMTP:
- 电子邮件传输协议,基于TCP,端口号25;
- 用于发送方用户代理向发送方邮件服务器、发送方邮件服务器向接收方邮件服务器发送邮件;
- 发件人的邮件发送到发送方邮件服务器的缓存中;
- 发送方邮件服务器每隔一段时间扫描邮件缓存,发现有邮件,就与接收方邮件服务器建立TCP连接,传输发送方邮件;
- MIME:由于SMTP只能传送一定长度的ASCII码(不能传输二进制文件),因此MIME定义了传送非ASCII码的编码规则(将非ASCII码文件转化为ASCII);
-
POP3:
- 电子邮件传输协议,基于TCP,端口号110;
- 用于收件人用户代理向接收方邮件服务器请求读取邮件;
- 电子邮件的收发过程:
- 发信人调用用户代理来撰写要发送的邮件,用户代理用SMTP把邮件传送到发送方邮件服务器;
- 发送方邮件服务器将邮件放入邮件缓存队列,等待发送;
- 运行在发送方邮件服务器的SMTP客户进程,发现邮件缓存中有待发送的邮件,就向运行在接收方邮件服务器的SMTP服务器进程建立TCP连接;
- TCP连接建立后,SMTP客户进程开始向远程SMTP服务器进程发送邮件,当所有邮件发送完后,SMTP关闭TCP连接;
- 运行在接收方邮件服务器的SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮箱,等待收信人方便时读取;
- 收信人打算收件时,调用用户代理,使用POP3协议将自己的邮件从接收方邮件服务器的用户邮箱中取回;
-
TELNET:
- 基于TCP,端口号23;
- 将主机变成远程服务器的一个虚拟终端;
- 在命令方式下运行时,通过本地计算机传送命令,在远程服务器上运行相应程序,并将相应的运行结果传送到本地计算机显示;
-
HTTP:
-
基于TCP,端口号80; -
内核构成:URL;HTTP;HTML; -
HTTP操作过程:
- 每个万维网站点都有一个服务器进程,不断监听TCP端口80,当监听到连接请求后便于游览器建立连接;
- TCP连接建立后,浏览器向服务器发送请求,获取某个Web页面的HTTP请求;
- 服务器收到HTTP请求后,将构建所请求Web页的必要信息,并通过HTTP响应返回给浏览器;
- 浏览器将Web页面进行解析,显示给用户,然后释放TCP连接;
-
特点:
- HTTP面向文本,报文中每个字段是ASCII码串,并且长度不固定;
- 无状态,无HTTP连接(但是需要建立TCP连接);
- Web服务器使用Cookie跟踪用户的活动记录,Cookie本身存储在用户主机上;
- 非持续连接(
C
l
o
s
e
Close
Close):每个网页元素对象都需要一个单独的TCP连接;
- 持续连接(
K
e
e
p
A
l
i
v
e
KeepAlive
KeepAlive):在发送响应后仍然保持TCP连接,可以继续请求对象;
- 非流水线:在收到前一个请求的响应后才发送下一个请求,因此每个引用都消耗1个RTT;
- 流水线:逐个连续发送对各个引用对象的请求,服务器也是连续响应,所有引用对象共计经历一个RTT;
二、技术篇:
-
计算网络的各种性能指标:
- 带宽:本来指通信线路允许通过的信号频带范围,单位是Hz,而频带宽度与网络的数据传输能力正相关,因此用来表示数字信道的“最高数据率”,单位是b/s;
- 吞吐量:单位时间内通过某个网络的数据量;
- 时延:传输时延;传播时延;处理时延;排队时延;
- 时延带宽积:传播时延×带宽;
- 信道利用率:有数据通过的时间/(有+无)数据通过的时间;
-
计算总时延:
- 总时延 = 传播时延 + 传输时延 + 处理时延 + 排队时延;
- 处理时延和排队时延常忽略,故:总时延 = 传播时延 + 传输时延;
- 传播时延 = 信道长度/电磁波在信道上的传播速率;
- 传输时延 = 分组长度/信道宽度;
- 多段链路传输时延:设有k段链路,即中间经过k-1个路由器,则总传输时延 = nt+(k-1)t,t为一段链路的传输时延,n为分组的个数(类似于流水线,忽略除了传输时延外的其他时延);
-
计算以太网两点最远距离:设最小帧长是D,传输率是K,传播率是M,距离是L:
D
K
≥
2
L
M
\cfrac{D}{K}\ge \cfrac{2L}{M}
KD?≥M2L? -
计算信道的最大数据率:奈奎斯特定理和香农定理可以分别得到两个最大数据传输率,取最小值; -
计算波特率:设波特率为B,数据传输率为C,每个码元携带的离散电平值为N,则
C
=
B
l
o
g
2
N
C=Blog_2N
C=Blog2?N; -
计算奇偶校验码、循环冗余码和海明码的编码; -
停止等待协议下计算链路利用率/最大传输速率:
- 发送周期 T = 第一数据帧的(传输时延+传播时延) + 第一确认帧的(传输时延+传播时延);
- 设带宽为M,帧长为S,则发送一帧的时间 t = S/M;
- 则链路利用率 = t/T;
-
GBN协议/SR协议下计算链路利用率/最大传输速率:
- 发送周期 T = 第一数据帧的(传输时延+传播时延) + 第一确认帧的(传输时延+传播时延);
- 设帧长为S,带宽为M,则一个发送周期理论上能发送的帧数为N0 = T/(S/M);
- 若发送窗口为N,则实际上能发送的帧数为min(N,N0);
- 最大链路利用率 = min(N,N0) / N0;
-
CSMA/CD的最短帧长计算:最短帧长 = RTT x 数据传输率; -
自学习算法的构建转发过程; -
计算使用交换机下,网络的总带宽:若交换机拥有N对端口,每条链路带宽是M,则每个用户获得M的带宽,整个交换机全双工下获得NM的带宽,半双工下获得NM/2的带宽; -
IP数据报转发流程: 1)从数据报首部提取目的主机的IP地址,得到目的网络地址;
2)若网络与路由器直接相连,则直接交付,否则执行3;
3)若路由表中有特定目的网络的特定路由,则转发给到相应网络的下一跳路由器,否则执行4;
4)若路由表中找不到特定路由,则发送给默认路由,否则执行5;
5)如果最后没有转发成功,则报告转发分组错误;
-
IP数据报分片索引计算:
- 假设原数据报数据长度为N,数据链路层MTU的数据长度为M0,得到不大于M0的最大的8的倍数:
M
1
=
?
M
0
/
8
?
×
8
M_1 = \lfloor M_0/8\rfloor\times 8
M1?=?M0?/8?×8,则需要
?
N
/
M
1
?
\lceil N/M_1 \rceil
?N/M1??个分片;
- 每隔
M
1
M_1
M1?B分一个片,组成一个
M
1
+
20
M_1+20
M1?+20B的数据报,片偏移字段就是该分片偏移量/8;
- 最后一个片剩下
N
%
M
1
N\%M_1
N%M1?B数据,且置
M
F
=
0
MF=0
MF=0;
-
IP地址/子网的相关计算:
- 若主机号的序号长度为n,则最多可包含
2
n
?
2
2^n-2
2n?2台主机;
- 最大子网个数即
2
k
2^k
2k,其中 k = 32-网络号长度-预留的主机号长度(题中给出,或者取最小为2位);
- 求子网能分配的主机数的最值,要注意子网是否平均分配(若可以非平均分配,则尽量使得前面的子网尽量大,则最后剩的子网就是最小值,反之就是最大值);
- 为自治系统的每个局域网分配地址块:
- 从大地址局域网开始依次分配;
- 所需的地址数为主机数+路由器数;
- 主机号全0和全1不能用,因此主机号范围是00…01~11…10;
-
路由协议算法:
-
UDP的反码校验和计算:
- 在发送端:
- 将伪首部、首部、数据、填充字节按照16位一组分开,检验和字段填0,进行若干个16位的二进制串的反码求和;
- 求和规则:正常二进制求和,但若最高位相加后产生进位,则最后得到的结果要加1;
- 然后对和再求反码,填入检验和字段;
- 在接收端:
- 将伪首部、首部、数据、填充字节按照16位一组分开,进行若干个16位的二进制串的反码求和;
- 结果全1则无差错;否则则丢弃或交由应用层处理;
-
TCP拥塞控制算法的执行过程,以及拥塞窗口和发送窗口的计算;
|