admin 管理员组文章数量: 887021
文章目录
- 题型
- 单位换算
- 第一章
- 协议与划分层次、网络协议的三个组成要素,分层的思想等
- 协议
- 网络协议的三个组成要素
- 分层的思想
- ⭐计算机网络体系结构
- OSI 的七层协议
- TCP/IP 的四层协议
- 五层协议
- 发送时延、传播时延、总时延、往返时间RTT计算
- 第二章 物理层
- 传输媒体
- 导向性传输介质
- 非导向性传输介质
- 信道的极限容量计算,包括理想无噪声条件下的奈奎斯特定理计算,带宽受限且有高斯白噪声干扰条件下的香农公式计算
- 奈氏准则
- 香农定理
- 区别
- 信道复用技术,其中码分多址CDMA较为复杂,注意码片序列的选取、含义和计算
- 静态划分信道四方法
- 频分多路复用FDM
- 时分多路复用TDM(静态)
- 改进的时分复用-统计时分复用STDM(动态)
- 波分多路复用WDM
- 码分多路复用CDM(重点)
- 第三章 数据链路层
- 差错检测,其含义及广泛使用的循环冗余检验CRC的原理和计算,注意模2运算与进制换算中除2取余法的不同
- 检错编码
- CSMA/CD协议原理、适用场景和基本的计算
- MAC层的硬件地址
- 以太网交换机的交换方式、作用、以及交换表的自学习过程
- 自学习算法
- 以太网交换机的三种方式
- 第四章 网络层
- 网际协议IP
- IP地址的演化:分类IP地址、划分子网、子网掩码定义及使用子网掩码找出IP地址中的子网部分、CIDR无分类编址
- IP地址分类
- 特殊的IP地址
- 子网划分(包含了计算)
- 无分类编址CIDR
- IP数据报分片计算
- 前置知识:IP数据报格式
- 正片开始!数据报分片
- IPv6,含义、冒号十六进制记法表示及IPv4向IPv6过渡的策略
- RIP,含义、路由表更新过程
- (了解一下路由算法是什么)路由算法
- 路由信息协议RIP
- RIP协议报文字段
- 优缺点
- 路由器工作原理,及与集线器、交换机的不同
- 第五章 运输层
- UDP、TCP的不同,使用UDP和TCP常见的应用协议
- UDP、TCP的不同
- 使用UDP和TCP常见的应用协议
- UDP面向报文,TCP面向字节流的概念
- 停等协议,自动重传ARQ协议
- 停止等待协议
- 自动重传请求ARQ
- 累计确认,序号之间的关系
- TCP的拥塞控制方法,真正的发送窗口值与拥塞窗口和接收窗口的关系,拥塞控制四个阶段不同算法的应用条件
- 慢开始和拥塞避免
- 快重传和快恢复
- TCP连接的三个阶段,包括连接建立,数据传送和连接释放(可能还要补)
- TCP的连接建立
- TCP可靠传输
- TCP连接释放
- 第六章 应用层
- 域名系统(DNS)
- ⭐域名解析过程(解析为IP地址)
- FTP提供交互式的访问,使用了两个TCP连接:控制连接和数据连接
- FTP
- 控制连接和数据连接
- 统一资源定位符URL含义及作用
- 超文本文件传送协议HTTP
- HTTP的连接
- HTTP报文结构
- 电子邮件的组成:三个主要构件及过程
- 组成结构
- 动态主机配置协议DHCP
- 第七章 网络安全
- 两类密码体制(对称密钥体制和公钥密码体制),DES,RSA等
- DES
- RSA
- 数字签名原理
- 报文摘要算法MD5,SHA-1
- MD5
- SHA-1
题型
- 选择题20题,40分,
- 计算机3题,15分,
- 三综合题5题,45分
骂骂咧咧,大数据和计网就间隔一个晚上,要人狗命!
基本不会出考纲,各年级按老师的考纲为实际参考标准。
完整计算机网络知识点整理参考我的另一篇博客:https://blog.csdn/weixin_50816938/article/details/126942943(其实也只有1-5章)
单位换算
(怎么会有人上大学了还记不住单位换算,是我没错了)
- 时间
1s = 1000 ms = 106μs = 19ns - 比特(bit,小写的b)
1b = 10-3 Kb = 10-6 Mb = 10-9 Gb - 米
1米 = 106μm = 19nm
第一章
协议与划分层次、网络协议的三个组成要素,分层的思想等
协议
网络协议,简称协议,是为进行网络中数据交换而建立的规则,标准和约定。
计算机网络的组成:硬件,软件,协议
网络协议的三个组成要素
- 语法:传输数据的格式,数据如何分割,通信时采用的数据格式,编码及信号电平等(遵循规则,怎么讲)。
- 语义:指对构成协议的协议元素含义的解释(讲什么)
- 同步:各种操作的条件、时序关系,操作顺序。
分层的思想
分层可将庞大而复杂的问题,转化成若干较小的局部问题,而这种较小的局部问题就比较易于研究和处理。
⭐计算机网络体系结构
在计算机网络体系结构中,协议是一个“水平”的概念,服务是一个“垂直”的概念。
分组也叫IP数据报
TCP就是报文段,UDP是用户数据报
上一层的PDU作为下一层的SDU
层次结构含义
最低层只提供服务,是整个层次结构的基础;中间各层既是下一层的服务使用者,又是上一层的服务提供者;最高层面向用户提供服务。
上一层只能通过相邻层间的接口使用下一层的服务,而不能调用其他层的服务;下一层所提供服务的实现细节对上一层透明。(上层数据包含在下层数据里)
OSI 的七层协议
巧记口令:物链网输会示用/物联网淑惠试用(从低到高)
-
OSI参考模型(口令:物链网输会示用/物联网淑惠试用,下面三层是通信子网(数据通信),上面三层是资源子网(数据处理))
- 物理层:在物理媒介上实现比特流的透明传输,传送单位比特
- 数据链路层
- 任务:将网络层传输来的IP数据报组装成帧
- 定义接口特性,传输模式(单工(单向),半双工(双向但同一时间只能一个人用传输信道),双工),传输速率,比特同步,比特编码。
- 主要协议:Rj45,802.3
- 功能:成帧(定义帧的开始和结束),差错控制,流量控制(发送方发送速度和接收方接收速度之间进行协调),控制对信道的访问。
- 如SDLC,HDLC,PPP,SRP,帧中继
- 任务:将网络层传输来的IP数据报组装成帧
- 网络层:IP层,传输单位数据报
- 任务:把网络层的协议数据单元从源端到目的端,进行通信,点到点(点即主机)
- 关键问题:对分组进行路由选择,实现流量控制,拥塞控制,差错控制,网际互连等功能
- 如IP,IPX,ICMP,IGMP,ARP,RARP,OSPF
- 传输层:传输报文段TCP或者用户数据段UDP
-
实现两个进程通信
-
功能:提供端到端(端口,应用进程到应用进程)的传输服务,提供可靠/不可靠传输,差错控制,流量控制,复用分用等功能(可差流用 )。(上面四层是端到端,下面三层是点到点)
-
传输单位是报文段或用户数据段。
-
如TCP,UDP
-
- 会话层:向表现层实体/用户进程提供建立连接并在连接上有序的传输数据。这就是会话,也是建立同步SYN。
- 管理主机间的会话进程,包括建立,管理,终止进程会话。
- 使用校验点可使会话在通信失效的时候从校验点继续回复通信,实现数据的同步。
- 表示层
- 处理两个通信系统交换信息的表示方式,对语法和语义进行处理。数据结构。
- 如数据格式转换,数据加密解密,数据的压缩和恢复。
- 应用层(所有能和用户交互产生网络流量的程序,是否需要联网可用作为判定标准),传输单位报文。
- 用户和网络的界面
- 如FTP(文件传输),SMTP(电子邮件),HTTP(万维网)
TCP/IP 的四层协议
路由器在转发分组时最高只用到网际层而没有用到运输层和应用层。
五层协议
五层的应用层包含了七层的应用层,表示层,会话层。
发送时延、传播时延、总时延、往返时间RTT计算
时延Delay:数据从网络(链路)的一端到另一端所需的时间。单位s。
-
发送时延(传输时延):发送分组到链路上(传输到链路的过程,产生在发送器上),第一比特到最后一比特时间。
发送时延 = 数据帧长度( b i t ) 信道宽度( b i t / s )(发送速率,实际发送速率大多达不到带宽) 发送时延= \cfrac{数据帧长度(bit)}{信道宽度(bit/s)(发送速率,实际发送速率大多达不到带宽)} 发送时延=信道宽度(bit/s)(发送速率,实际发送速率大多达不到带宽)数据帧长度(bit) -
传播时延:一个比特从一端到另一端时间(发生在链路上),取决于电磁波传播速度和链路长度。(比特流在信道上传输显示的效果就是电磁波传播的速率)
传播时延 = 信道长度( m ) 电磁波的传播速率( m / s ) 传播时延=\cfrac{信道长度(m)}{电磁波的传播速率(m/s)} 传播时延=电磁波的传播速率(m/s)信道长度(m)
区分:发送时延是发生在主机上的,传播时延是发生在主机外(传播介质上,链路,信道)的。 -
排队时延:路由器输出/入队列中排队等待处理所用的时间。
-
处理时延:主机或路由器在收到分组时,存储转发的处理时间,比如检错,找出口。
-
总时延:发送时延,传播时延,处理时延,排队实验的总和。
-
往返时延RTT:发送方发送数据到发送方收到接收方的确认(接收方收到数据后立刻发送确认)总共经历的时延。(在互联网中,往返时间还包括各中间节点的处理时延,排队时延以及转发数据时的发送时延)
课后练习
1-20.网络体系结构为什么要采用分层次的结构?试举出一些与分层体系结构的思想相似的日常生活。
答:
①各层之间是独立的。某一层可以使用其下一层提供的服务而不需要知道服务是如何实现的。
②灵活性好。当某一层发生变化时,只要其接口关系不变,则这层以上或以下的各层均不受影响。
③结构上可分割开。各层可以采用最合适的技术来实现
④易于实现和维护。
⑤能促进标准化工作。
与分层体系结构的思想相似的日常生活有邮政系统,物流系统。
1-24.论述具有五层协议的网络体系结构的要点,包括各层的主要功能。
答:
综合OSI 和TCP/IP 的优点,采用一种原理体系结构。
各层的主要功能:
(1)物理层 物理层的任务就是透明地传送比特流。(注意:传递信息的物理媒体,如双绞线、同轴电缆、光缆等,是在物理层的下面,当做第0 层。) 物理层还要确定连接电缆插头的定义及连接法。
(2)数据链路层 数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。每一帧包括数据和必要的控制信息。
(3)网络层 网络层的任务就是要选择合适的路由,使发送站的运输层所传下来的分组能够正确无误地按照地址找到目的站,并交付给目的站的运输层。
(4)运输层 运输层的任务是向上一层的进行通信的两个进程之间提供一个可靠的端到端服务,使它们看不见运输层以下的数据通信的细节。
(5)应用层 应用层直接为用户的应用进程提供服务。
1-27.试解释everything over IP 和IP over everthing 的含义。
答:(1)TCP/IP协议可以为各式各样的应用提供服务 (所谓的everything over ip)
(2)允许IP协议在各式各样的网络构成的互联网上运行(所谓的ip over everything)
第二章 物理层
传输媒体
传输介质也称传输媒体/传输媒介,它就是数据传输系统中在发送设备和接收设备之间的物理通路。
物理层考虑的是怎么才能在连接各种计算机的传输媒介上传输数据比特流。而不是指具体的传输媒介。传输媒体在物理层的下面,因为物理层是体系结构的第一层,因此有时称传输媒体为0层。在传输介质中传输的是信号,但传输介质并不知道所传输的信号代表什么意思。但物理层规定了电气特性,因此能够识别所传送的比特流。(传输介质只管传输不管是什么信号,物理层要能够识别传输的信号)
物理层的作用是尽可能地屏蔽掉不同传输媒体和通信手段之间的差异。主要任务是确定与传输媒体的接口的一些特性。
传输介质分类:
- 导向性传输介质:电磁波被导向沿着固体媒介(铜线/光纤)传播。如 双绞线、同轴电缆、光纤
- 非导向性传输介质:自由空间,介质可以是空气、真空、海水等。如 无线电波、微波、红外线和激光
导向性传输介质
(注意我标黑的就行,一大段文字是因为直接复制过来的)
举例:
-
双绞线
双绞线是古老、又最常用的传输介质,它由两根采用一定规则并排绞合的、相互绝缘的铜导线组成。绞合可以减少对相邻导线的电磁干扰。为了进一步提高抗电磁干扰能力,可在双绞线的外面加上一个由金属丝编织成的屏蔽层,这就是屏蔽双绞线(STP),无屏蔽层的双绞线就称为非屏蔽双绞线(UTP)。
双绞线价格便宜,是最常用的传输介质之一,在局域网与传统电话网中普遍使用。模拟传输和数字传输都可以使用双绞线,其通信距离一般为几公里到十几公里。距离太远时,对于模拟传输,要用放大器放大衰减的信号;对于数字传输,要用中继器将失真的信号整形。 -
同轴电缆
同轴电缆由导体铜质芯线、绝缘层、网状编制屏蔽层和塑料外层构成。按特性抗阻数值的不同,通常将同轴电缆分为两类:50 Ω 同轴电缆和 75 Ω 同轴电缆。其中 50 Ω 同轴电缆主要用于传送基带数字信号,又称为基带同轴电缆,它在局域网LAN/数字传输中得到广泛应用;75 Ω 同轴电缆主要用于传送宽带信号,又称为宽带同轴电缆,它主要用于有线电视系统,模拟传输。- 同轴电缆VS双绞线
由于外导体屏蔽层的作用,同轴电缆抗干扰特性比双绞线好,被广泛用于传输较高速率的数据,其传输距离更远,但价格较双绞线贵。
- 同轴电缆VS双绞线
-
光纤
光纤通信就是利用光导纤维传递光脉冲来进行通信。有光脉冲表示1,无光脉冲表示0。而可见光的频率大约是 108MHz,因此光纤通信系统的带宽远远大于目前其他各种传输介质的带宽。光纤在发送端有光源,可以采用发光二极管或半导体激光器,它们在电脉冲作用下能产生出光脉冲;在接收端用光电二极管做成光检测器,在检测到光脉冲时可还原出电脉冲。光纤主要由纤芯(实心的! )和包层构成,光波通过纤芯进行传导,包层较纤芯有较低的折射率。当光线从高折射率的介质射向低折射率的介质时,其折射角将大于入射角。因此,如果入射角足够大,就会出现全反射(光线在纤芯中传输的方式就是不断地全反射),即光线碰到包层时候就会折射回纤芯、这个过程不断重复,光也就沿着光纤传输下去。- 特点:
传输损耗小,中继距离长,对远距离传输特别经济。
抗雷电和电磁干扰性能好。
无串音干扰,保密性好,也不易被窃听或截取数据。
体积小,重量轻。
- 特点:
非导向性传输介质
信道的极限容量计算,包括理想无噪声条件下的奈奎斯特定理计算,带宽受限且有高斯白噪声干扰条件下的香农公式计算
奈氏准则
在理想低通 (无噪声,带宽受限) 条件下,为了避免码间串扰,极限码元传输速率为 2W Baud【波特,1Baud = 1码元/s】,W 是信道带宽,单位是 Hz。(只有在这奈氏准则和香农定理中带宽才用Hz,一般都是用b/s)
码元是指用一个固定市场的信号波形(数字脉冲),代表不同离散数值的基本波形,是数字通信中数字信号的计量单位
- 在任何信道中,码元传输的速率是有上限的。若传输速率超过此上限,就会出现严重的码间串扰问题,使接收端对码元的完全正确识别成为不可能。
- 信道的频带越宽(即能通过的信号高频分量越多),就可以用更高的速率进行码元的有效传输。
- 奈氏准则给出了码元传输速率的限制,但并没有对信息传输速率给出限制。
- 由于码元的传输速率受奈氏准则的制约,所以要提高数据的传输速率,就必须设法使每个码元能携带更多比特的信息量,这就需要采用多元制的调制方法
香农定理
在奈氏准则的基础上解决有噪声的传输输入速率的上限问题。噪声的影响主要看信噪比,常记为S/N。
信噪比
=
信号的平均功率
噪声的平均功率
信噪比=\cfrac{信号的平均功率}{噪声的平均功率}
信噪比=噪声的平均功率信号的平均功率
如果题目给出信噪比没有给单位就当作S/N直接用,如果给的单位是分贝dB,先算出S/N。
信噪比(
d
B
)
=
10
l
o
g
10
(
S
/
N
)
信噪比(dB)=10log_{10}(S/N)
信噪比(dB)=10log10(S/N)
香农定理:在带宽受限且有噪声的信道中,为了不产生误差,信息的数据传输速率有上限值。
- 信道的带宽或信道的信噪比越大,则信息的极限传输速率就越高。
- 对一定的传输带宽和一定的信噪比,信息传输速率的上限就确定了。
- 只要信息的传输速率低于信道的极限传输速率,就一定能够找到某种方法来是实现无差错的传输。
- 香农定理得出的为极限信息传输速率,实际信道能达到的传输速率要比它低不少。
- 从香农定理可以看出,若信道带宽 W 或信噪比 S/N 没有上限(不可能),那么信道的极限信息传输速率也就没有上限。
区别
如果题目既可以用奈氏准则也可以用香农定理,计算结果值取小的作为极限传输速率。
信道复用技术,其中码分多址CDMA较为复杂,注意码片序列的选取、含义和计算
信道复用技术
- 将多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。
- 采用多路复用技术可以把多个输入通道的信息整合到一个复用通道中,在接收端把收到的信息分离出来并传送到对应的输出通道。
静态划分信道四方法
频分多路复用FDM
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同带宽(频率带宽) 资源。
时分多路复用TDM(静态)
将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。
TDM帧是在物理层传送的比特流所划分的帧,标志一个周期。
改进的时分复用-统计时分复用STDM(动态)
谁先来就先发送谁的(这张图怪怪的)
波分多路复用WDM
利用光的频分多路复用,在一根光纤中传输多种不同波长的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
码分多路复用CDM(重点)
和CDM区分:码分多址(CDMA系统)[Code Division Multiple Access] 是码分复用的一种方式。
实现
-
1个比特分为多个码片/芯片(chip),每个站点被指定一个唯一的 m 位的芯片序列。(扩频技术:把原始信号的频带宽度扩宽,以达到提供该信号在信道传输的信噪比,达到抗干扰的功能)
-
发送1时站点发送芯片序列,发送0时发送芯片序列反码(通常把0写成-1)。
-
如何不打架:多个站点同时发送数据的时候,要求各个站点的芯片序列相互正交。
-
如何合并:各路数据在信道中被线性相加。
-
如何分离:合并的数据和源站规格化内积。
-
先来个学习前提 —— 规格化内积
规格化内积,计算方法就是S和T对应的码片序列每项相乘的和除以序列长。
规格化内积为0是正交
-
A的芯片序列(1对应的序列集)是 ( 1 , − 1 , − 1 , + 1 , + 1 , + 1 , + 1 , − 1 ) (1,-1,-1,+1,+1,+1,+1,-1) (1,−1,−1,+1,+1,+1,+1,−1)
-
B的芯片序列是 ( − 1 , + 1 , − 1 , + 1 , − 1 , + 1 , + 1 , + 1 ) (-1,+1,-1,+1,-1,+1,+1,+1) (−1,+1,−1,+1,−1,+1,+1,+1)
-
相互正交就是 a 0 × b 0 + a 1 × b 1 + . . . + a n − 1 × b n − 1 a_0×b_0 + a_1×b_1 + ... + a_{n-1}×b_{n-1} a0×b0+a1×b1+...+an−1×bn−1,即 ( − 1 ) + ( − 1 ) + 1 + 1 + ( − 1 ) + 1 + 1 + ( − 1 ) 8 = 0 \cfrac{(-1) +(-1) + 1 + 1 +(-1)+ 1 + 1 +(-1)} { 8} = 0 8(−1)+(−1)+1+1+(−1)+1+1+(−1)=0,规格化内积为0即为正交,互不干扰。
-
获取传输数据,各个位对应处理,比如A的第二位0,B的第二位1
- 合并: ( a 0 + b 0 , a 1 + b 1 , . . . , a n − 1 + b n − 1 ) (a_0+b_0 , a_1+b_1 , ... , a_{n-1}+b_{n-1}) (a0+b0,a1+b1,...,an−1+bn−1),即 ( − 1 , + 1 , + 1 , − 1 , − 1 , − 1 , − 1 , + 1 ) (-1,+1,+1,-1,-1,-1,-1,+1) (−1,+1,+1,−1,−1,−1,−1,+1)与 ( − 1 , + 1 , − 1 , + 1 , − 1 , + 1 , + 1 , + 1 ) (-1,+1,-1,+1,-1,+1,+1,+1) (−1,+1,−1,+1,−1,+1,+1,+1)合并(线性相加)就是 ( − 2 , 2 , 0 , 0 , − 2 , 0 , 0 , 2 ) (-2,2,0,0,-2,0,0,2) (−2,2,0,0,−2,0,0,2)
- 分离:比如我们要获取A的传输数据,就是把
(
−
2
,
2
,
0
,
0
,
−
2
,
0
,
0
,
2
)
(-2,2,0,0,-2,0,0,2)
(−2,2,0,0,−2,0,0,2)和A的芯片序列(源站)进行规格化内积,即
(
1
,
−
1
,
−
1
,
+
1
,
+
1
,
+
1
,
+
1
,
−
1
)
×
(
−
2
,
2
,
0
,
0
,
−
2
,
0
,
0
,
2
)
8
=
(
−
2
−
2
+
0
+
0
−
2
+
0
+
0
−
2
)
8
=
−
1
\cfrac{(1,-1,-1,+1,+1,+1,+1,-1)×(-2,2,0,0,-2,0,0,2)}{8} \\= \cfrac{(-2 - 2 + 0 + 0 - 2 + 0 + 0 - 2)}{8}\\ = -1
8(1,−1,−1,+1,+1,+1,+1,−1)×(−2,2,0,0,−2,0,0,2)=8(−2−2+0+0−2+0+0−2)=−1
即A传输来的数据为0(在CDM中用-1表示0)。- 结果为+1,说明这个站发送比特1。
- 结果为-1,说明这个站发送比特0。
- 结果为0,说明这个站没有发送信息。
课后练习
2-08.假定要用3KHz带宽的电话信道传送64kb/s的数据(无差错传输),试问这个信道应具有多高的信噪比。(分别用比值和分贝来表示?这个结果说明什么问题?)
解:C=Wlog2(1+S/N)
64000b/s=3000Hz×log2(1+S/N)
信噪比(dB)=10log10(S/N) = 64.2db
这说明这是个信噪比要求很高的信道。
2-16.共有4个站进行码分多址通信。4个站的码片序列为
A:(-1-1-1+1+1-1+1+1)
B:(-1-1+1-1+1+1+1-1)
C:(-1+1-1+1+1+1-1-1)
D:(-1+1-1-1-1-1+1-1)
现收到这样的码片序列
S:(-1+1-3+1-1-3+1+1)。
问哪个站发送数据了?发送数据的站发送的是0还是1?
解:
S•A=(+1-1+3+1-1+3+1+1)/8=1, A发送1
S•B=(+1-1-3-1-1-3+1-1)/8=-1, B发送0
S•C=(+1+1+3+1-1-3-1-1)/8=0, C无发送
S•D=(+1+1+3-1+1+3+1-1)/8=1, D发送1
第三章 数据链路层
差错检测,其含义及广泛使用的循环冗余检验CRC的原理和计算,注意模2运算与进制换算中除2取余法的不同
差错由来
传输中的差错都是噪声引起的。
- 全局性:由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
- 解决方法:提高信噪比来减少或避免干扰。(通过传感器)
- 局部性:外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
- 解决方法:通常利用编码技术来解决。
差错
- 位错:比特位出错,1变成0,0变成1
- 帧错:丢失、重复、失序
为什么要在数据链路层进行差错控制?
- 因为错误可以尽早发现,不会让一个错误的数据报发送了很长时间到达目的地之后才被发现,从而导致网络资源的浪费。(比如一个数据从出发点到目的地要经过十几个路由器,数据在到达第一个路由器的数据链路层时会被检验出错而被丢弃,就不用再经过后面十几个路由器的传输的)
差错控制(比特错,帧错传输层讲解)
- 检错编码
- 奇偶校验码(稍微了解一下呗,反正很快,虽然考纲也没有)
- 循环冗余码CRC
- 纠错编码
- 海明码(我删掉了,考纲没有)
编码VS编码
- 数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程判断是否出现了差错。
什么是冗余编码
- 在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到码字是否仍符合原规则,从而判断是否出错。
检错编码
- 奇偶校验码
- 奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的校验码。它由n-1位信息元和1位校验码组成。
- 如果是奇校验码,那么在附加一个校验元后,码长位n的码字中”1“的个数为奇数。
如果是偶校验码,那么在附加一个校验元后,码长位n的码字中”1“的个数为偶数。 - 奇偶校验码的检错能力只有百分之五十,比如奇检验码只能检测奇数位出错的情况,但并不知道哪些位出错,也不能检验偶数位出错的情况。
- 如下题:奇校验,添加一个校验位后为11100101,出现错误只能出现奇数个不一样的,因此出错后还是奇数个1则无法检测(偶数个位出错),答案是D!
- CRC循环冗余码
- 接收端检错过程,把收到的每一个帧都除以同样的除数,然后检查得到的余数R。如果余数为0,这个帧就没有差错,接受。如果余数为不为0,判定这个帧有差错(无法确定到位),丢弃。
- FCS帧检验序列(冗余码)的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。
- 在数据链路层仅仅使用循环冗余检验CRC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错“。
接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃,“凡是接收端数据链路层接收的帧均无差错”。
链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠(不出错)传输。(可靠传输:数据链路层发送端发送什么,接收端就收到什么。)
- 发送端最终发送的数据 = 要发送的数据 + 帧检验序列FCS,FCS就是冗余码,根据多项式的阶对要发送的数据加0后与多项式相除(相同为0,不同为1),余数就是冗余码。比如下面这题:要发送的数据是1101 0110 11,多项式10011是四阶,所以在要发送的数据后面加4个0,即1101 0110 1100 00,对1101 0110 1100 00除多项式10011得到的余数1110就是FCS。
生成多项式的最高次幂即为循环冗余码的位数,下面这道题冗余码是四位。
CSMA/CD协议原理、适用场景和基本的计算
- 动态分配信道
- 轮询访问介质访问控制:令牌传递协议
- 随机访问介质访问控制
- ALOHA协议
- CSMA协议
- ⭐CSMA/CD协议(动态分配这边好多协议,但是考纲上只有CSMA/CD,时间有限我就把其他的都删掉了)
- CSMA/CA协议
先稍微了解一下CSMA:
载波监听多路访问协议CSMA(carrier sense multiple access)
- CS:载波监听,每个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
- 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大( 互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时, 就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。
- MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
载波监听/多路访问/碰撞检测 CSMA/CD(carrier sense multiple access with collision detection):从属于CSMA协议,也是先监听信道再发送数据,不同在发送数据的时候依旧监听,一旦发现冲突就停止对数据的发送,减少浪费。
- CS:载波监听,每个站在发送数据之前以及发送数据时要检测一下总线上是否有其他计算机在发送数据。
- MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。 应用于总线型网络。
- CD:碰撞检测(冲突检测):“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。一旦发生冲突就停止数据的传输。应用于半双工网络(不允许双方同时发送信息)。
传播时延对载波监听的影响→冲突
- 因为电磁波在总线上总是以有限速率传播的,A向B和B向A发送信息(假设),A先发送数据,当A传输的数据还没有到达B(传播时延),B检测信道是空闲(没有信号进入B站点/主机),所以B可能发送数据。一旦发送数据在信道上就产生冲突和碰撞。
- A发送的信号和B发送的信号相碰叠加导致信号不一致,两端根据接收到的数据帧采用差错控制发现发生碰撞,停发。
- 只要经过 2τ(τ是单程段到端的传播时延) 时间还没有检测到碰撞,就能肯定这次发送不会发生碰撞。这种情况发生在A端先发送数据,B端刚发送数据就发生碰撞(A发送的数据快到达B)。
- 至多检测时间2τ,最少τ。
确定碰撞后的重传时机
- 截断二进制指数规避算法
- 确定基本退避时间为争用期2τ(τ是传播时延)。
- 定义参数k,它等于当前重传次数,但k不超过10,即 k = m i n [ 重传次数, 10 ] k=min[重传次数,10] k=min[重传次数,10]。当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10。(k不是重传次数,是在重传次数和10中取最小值)
- 从离散的整数集合 [ 0 , 1 , ( 2 k ) − 1 ] [0, 1, (2^k) - 1] [0,1,(2k)−1]中随机取出一个数r进行重传,重传所需要退避的时间是r倍的基本退避时间,即 2 τ × r 2τ×r 2τ×r。
- 当重传达16次仍不能成功,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。
- 若连续多次发生冲突,就表明可能有较多的站参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定
最小帧长问题
- 如果发送了一个很小的帧发生了碰撞,但是由于帧太短,帧发送完毕之后才能检测到发生了碰撞,已经没有办法停止发送。因此定义了最小帧长,希望在检测到碰撞的时候,帧还没发送结束。
- 帧的传输时延至少要两倍于信号在总线中的传播时延。
最小帧长 = 总线传播时延( τ ) × 数据传输速率 × 2 最小帧长=总线传播时延(τ)×数据传输速率×2 最小帧长=总线传播时延(τ)×数据传输速率×2
是传输,自己理解一下物理原理就明白了:在检测到碰撞的时候,帧还没发送结束。
以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧。
MAC层的硬件地址
适配器与MAC地址
- 计算机与外界有局域网的连接是通过通信适配器的。
- 在局域网中,硬件地址又称为物理地址,或MAC地址。MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示。02-60-8c-e4-b1-21
以太网MAC帧
-
最常用的MAC帧是以太网V2的格式。
-
数据部分的最小字节(最小帧长,注意单位是字节!!Byte)为46,因为CSMA/CD协议最小帧长64B,因此剩下的就是64-6-6-2-4=46B,最长是1500字节(MTU)。当数据字段的长度小于 46字节时需要加入整数字节的填充字段保证MAC
-
FCS:CRC循环冗余检验的4个字节的帧检验序列
补充:
- 物理层七个字节前导码七个字节的101…用于数据同步,最后一个字节…1用于表示结束。
- 数据链路层加头加尾,有帧开始定界符,为啥没有帧结束定界符?
- 以太网使用曼彻斯特编码,一个比特内都有两个码元,帧结束时候电压就不会变了,轻松确认帧结束位置,往前4B进而得到数据结束位置!
- 每两个帧发送都会有一个间隔!间隔中是不会有电压变化的!
以太网交换机的交换方式、作用、以及交换表的自学习过程
- 网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。(和集线器主要的区别就是集线器会从所有的端口转发出去,网桥会考虑应不应该从这个口转发,应该从哪个口转发)
- 网段
- 每一个以太网就是一个冲突域,也被称为网段。一般指一个计算机网络中使用同一物理层设备(传输介质
√
√
√、中继器、集线器等)能够直接通讯的那一部分。
- 每一个以太网就是一个冲突域,也被称为网段。一般指一个计算机网络中使用同一物理层设备(传输介质
√
√
√、中继器、集线器等)能够直接通讯的那一部分。
- 网桥优点
- 过滤通信量,增大吞吐量。
- 如果把网桥换成工作在物理层的转发器,那么就没有这种过滤通信量的功能。
- 带宽是指能够有效通过该信道的信号的最大频带宽度。所有如果每一个网段的传输速率(/带宽)是10bit/s,那么三个合起来最大的吞吐量就是30bit/s。(ab通信时c和d,e和f可以同时通信)
- 扩大了物理范围。
- 提高了可靠性。
- 网桥可以把网段隔离开。由于各网段相对独立,彼此不干扰,但不同网段的主机又可以交流通信 。因此一个网段的故障不会影响到另一个网段的运行。
- 可互连不同物理层、不同MAC子层和不同速率的以太网。
- 过滤通信量,增大吞吐量。
自学习算法
先看一下几个网桥的分类
透明网桥
”透明“ 指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备 —— 实现通过"自学习"算法(帧传输过程中要经过网桥接口,来自地址A的帧经过网桥时查看转发表,如果发现转发表没有记录,就记下该地址通过网桥时的接口(根据源MAC地址),也就是数据经过网桥要找到地址A需要经过哪个接口,这样以后经过网桥要传给地址A的数据就知道往网桥的1号接口走就能到达目的地址)。
自学习算法
通过自学习来构建转发表。每一个通过网桥的数据都会被记录下网桥收到数据时数据对应的地址和网桥自己的接口,通过许许多多的数据包构造的缓存,网桥就可以知道哪个数据包在哪个接口,以后如果要穿数据包就知道要往哪个接口发送数据包了。
- 初始转发表都是空。
- A发送数据,送往目的地址B。数据往左右两边走,所以A左边的G和右边的B都能接收到(虽然B已经接收到了,但是A还会继续向右走,因为透明网桥中以太网上的站点不知道所发送的帧将经过哪几个网桥,只能通过自学习算法逐步填充转发表,通过转发表告知目的地址应该走哪个接口,但是初始转发表为空,没有记录目的地址B应该走哪个接口)。
- A经过1号网桥,发现转发表中没有记录A地址对应的接口,就在转发表中记录经过1号网桥要到达目的地址A需要走1号端口。同理经过2号网桥也记录经过2号网桥要到达目的地址A需要走1号端口。
- 这时候B要向目的地址A发送数据,B向左边和右边都发送数据,往左边A就接收到了。往右边经过1号网桥,查询转发表中有没有B地址(源地址)的信息,没有就记录。同时!发现目的地址A对应接口是1号端口,不用往右转发了,丢弃帧。(2号网桥的转发表此时不会记录目的地址B对应的接口,因为走不到2号网桥)
- 总结来是,源地址发送数据把能走的路都走。遇到网桥时查询一下源地址对应接口有没有记录,没有就添加记录。然后再查询一下目的地址对应接口有没有,如果有且和源地址在同一个方向就丢弃数据帧(不继续走了),有记录且不在同一个方向就按记录下的接口走,没有记录就都走。数据传输过程中不断填满转发表,即自学习算法。当然转发表一段时间全部清空,再次自学习,不断完善,及时更新。
源路由网桥
在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。
方法:源站以广播方式向欲通信的目的站发送一个发现帧。
通过广播方式向目标地址发送广播,此时可能会经过不同路由产生不同的路径,目标地址收到后再将每一条路径都发一个响应帧给网桥,网桥经过对比就知道哪个接口最快。(把走过的最优路线记下,以后就按这个路线走)
⭐多接口网桥:以太网交换机
以太网交换机本质上是一个多端口的网桥,它工作在数据链路层。交换机能经济地将网络分成小的冲突域,为每个工作站提供更高的带宽。
- 交换机通常有十几个端口,每个端口都可以直接连接主机或者连接集线器。
- 交换机同网桥一样,每个端口引出的区域都是一个冲突域。
- 交换机可以独占传输媒体带宽,交换机端口连接的集线器/主机都是独占媒体带宽,不同于集线器带宽被平分。
- 交换机工作原理:现在的数通设备基本都是存储-转发模式。外部接口之间不是直接联通的。数据帧从一个接口进入交换机后会进入内部存储模块,经芯片计算后再从需要的接口发出去。接口物理特性限制了接口最大带宽。现在普通的交换机都是千兆接口,但交换机内部处理芯片能达到几万兆或几十万兆。所有接口速率都满负荷也不会超过内部芯片处理能力。
- 集线器不管有多少个端口,所有端口都共享一条带宽,在同一时刻只能有两个端口传送数据,其他端口只能等待;只能工作在半双工模式下。交换机每个端口都有一条独占的带宽,当两个端口工作时并不影响其他端口的工作,交换机可以工作在半双工模式下也可以工作在全双工模式下。
- N个用户共享集线器提供的带宽B,平均每个用户仅占有B/N的带宽。
- 交换机每个端口提供的带宽B,N和用户,每个用户独占带宽B,交换机总带宽B×N。
(这张图是3个冲突域,一个广播域。如果这里面把交换机换成集线器那么就是1个冲突域)
以太网交换机的三种方式
- 直通式交换机:查完目的地址(6B)就立刻转发。
- 延迟最小,提高了帧的转发速度。可靠性低,无法支持具有不同速率的端口的交换。而且不检查差错之间转发,可能会把一些无效帧也转发出去。
- 存储转发式交换机(主要使用):将帧放入高速缓存,并检查是否正确(先缓存后处理),正确则转发,错误则丢弃。
- 延迟最大,可靠性高,可以支持具有不同速率的端口的交换。
- 无碎片直通转发:类似直通交换,但它会在接受完64个字节之后再转发帧。
- 保证了不会将无效帧转发出去。
冲突域(叫碰撞域也行)VS广播域
-
冲突域:在同一个冲突域中的每一个结点都能收到被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。
-
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收到这个信号的设备的范围称为一个广播域。(接收信号的范围,广播的范围)
判断冲突域和广播域
- 冲突域(物理分段):
- 连接在同一导线上的所有工作站的集合,或者说是同一物理网段上所有节点的集合或以太网上竞争同一带宽的节点集合。在OSI模型中,冲突域被看作是第一层的概念,连接同一冲突域的设备有集线器,网线或者其他进行简单复制信号的设备。也就是说,用集线器,网线连接的所有节点可以被认为是在同一个冲突域内,它不会划分冲突域。而第二层设备(网桥,交换机)和第三层设备(路由器)都可以划分冲突域的,当然也可以连接不同的冲突域。
- 广播域:
- 接收同样广播消息的节点的集合。广播域被认为是OSI中的第二层概念,所以像集线器,交换机等第一,第二层设备连接的节点被认为都是在同一个广播域。而第三层路由器则可以划分广播域,即可以连接不同的广播域。
- 当图中没有路由器时,显然,不能隔离广播域,这是就有一个广播域。
- 当图中有路由器时,看路由器上有几个向外连接的端口就有几个广播域。数冲突域时,先看交换机下连接几台pc和集线器,就有几个冲突域,但要注意的是,路由器和交换机之间也是有冲突域的。也就是说,冲突域来源有(交换机连接的冲突域+路由器连接的交换机)
课后练习
3-08. 要发送的数据为101110。采用CRC生成多项式是P(X)=X3 +1。试求应添加在数据后面的余数。
加三个0就是101110000,然后除以1001,得到的余数是011。
3-20.假定1km长的CSMA/CD网络的数据率为1Gb/s。设信号在网络上的传播速率为200000km/s。求能够使用此协议的最短帧长。
答:对于1km电缆,单程传播时间1km/200000km = 5* 10-6 s=5 us,来回路程传播时间为10us(2t),为了能够按照CSMA/CD工作,最小帧的发射时间不能小于10us(2t),以Gb/s速率工作,10微秒可以发送的比特数等于10−5 s * 109 b = =10000b,因此,最短帧是10000位或1250字节长。
第四章 网络层
网际协议IP
IP地址的演化:分类IP地址、划分子网、子网掩码定义及使用子网掩码找出IP地址中的子网部分、CIDR无分类编址
IPV4地址
- IP地址:全世界唯一的32位/4字节标识符,标识路由器主机的接口。
- IP地址:= {<网络号>,<主机号>}
- 网络号标志主机(或路由器)所连接到的网络。主机号标志着该主机(或路由器)。
- 每个IP地址包括两部分:网络号和主机号。当分配给主机号的二进制位越多,则能标识的主机数就越多,相应地能标识的网络数就越少,反之同理。
如何区分一个IP地址哪部分是网络号,哪部分是主机号:
- 给出一个IP地址,我们可以通过子网掩码确定这个IP地址的网络号和主机号。
- 子网掩码的作用就是将某个IP地址划分成网络地址和主机地址两部分。
图片截取自https://wwwblogs/gdayq/p/5794845.html
路由器可以划分广播域,在子网掩码都是255.255.255.0的基础上,LAN1的网络号是222.1.3.0,LAN3的网络号是222.1.2.0。同一广播域的网络号相同。
路由器的每一个接口都有一个不同网络号的IP地址,所以说路由器可以连接不同的网络的。
绿色区域的三条线是无编号网络(了解即可)。
IP地址分类
记一下ABC三类网络号的分界1~ 126,128~ 191,192~ 223
- A:两个-2减的是全0和全1(即01111111:127,用于环回测试),第一个可用的是0-0000001
- B:-1减的是全0,因为前两位已经被占用也就是说最小从10-000000 00000001 也就是128.1
- C:-1减的是全0,因为前三位已经被占用也就是说最小从110-00000 00000000 00000001 也就是192.0.1
为什么要-2或者-1,我查了一下:
主机号全部-2是因为主机号不能全0或者全1,全1是广播地址,全0的情况是本机地址或者网络地址。
网络号全0分别代表0.x.x.x,128.0.x.x,192.0.0.x,可以把这三个看作保留地址,然后A类还有一个全1的情况,即0111111,也就是127.x.x.x这个是环回测试的地址。
特殊的IP地址
红线不是交换的意思,不用管,就是一个对角线。
(以C类网络为例)
- 全0就是本网范围内的本机,发送方。
- 0.0.0.x,本网主机号为x的主机,接收方。
- 255.255.255.255,本网所有可以广播的主机,接收方。
- x.x.x.0,网络地址为x.x.x.0,就是一个网络(前面有提到)。
- x.x.x.255,网络地址为x.x.x.0的网络上的所有主机。
- 127是A类网络,但永远不会进入网络的,只是给本机发送数据,即环回测试。
子网划分(包含了计算)
分类的IP地址的弱点
- IP地址空间的利用率有时很低。
- 给每个物理网络分配一个网络号会使路由表变得太大而网络性能变坏。
- 两级IP地址不够灵活。
子网划分:在IP地址中增加一个子网号字段,使两级IP地址变成了三级IP地址。
要注意:
- 主机号全0或者全1都是不被允许的,所以至少留下两位主机号。
- 子网号能不能全0,全1看情况。(没说默认 当作不能吧)
- 某单位划分子网后,对外表现为一个网络,即本单位外的网络看不见本单位内子网的划分。
基本思路
- 子网划分纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
- 从主机号借用若干比特作为子网号,当然主机号也就相应减少了相同比特。 三级IP地址的结构如下:IP地址 = {<网络号>,<子网号>,<主机号>}。
- 凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的目的网络号,先找到连接到本单位网络上的路由器。然后该路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网。最后把IP数据报直接交付给目的主机。
子网掩码
- 子网掩码是一个与IP地址相对应的、长32bit的二进制串,它由一串1和跟随的一串0组成。
- 其中,1对应于IP地址中的网络号及子网号,而0对应于主机号。
- 计算机只需将IP地址和其对应的子网掩码逐位“与”(逻辑AND运算),就可得出相应子网的网络地址。
例子一
- 72:01001000,192:11000000,141属于B类网络,网络号占2B,即141.14,剩下的11的是子网号,所以子网号占2位,即01=64。
子网掩码:<11111111 11111111><11><000000 0000000>
网络地址是IP&子网掩码 = 141(10) 14(10) 01000000 00000000 = 141.14.64.0 - 72:01001000,224:11100000,141属于B类网络,网络号占2B,剩下的1是的是子网号,所以子网号占3位。
根据子网掩码划分IP地址:<11111111 11111111><111><00000 0000000>
网络地址是IP&子网掩码 = 141(10) 14(10) 01000000 00000000 = 141.14.64.0
例子二
- 发送广播分组即主机号全1。
- 180属于B类网络,网络号占2B,也就是180.80,252 = 11111100,所以子网号是为1的剩下6位,77 = 01001101,子网号就是010011(6位),所以目的地址是180.80.<010011><11.11111111> = 180.80.79.255。
- 选D。
无分类编址CIDR
先区分一下定长子网掩码和变长子网掩码
- 定长就是那些A,B,C类
无分类域间路由选择是在变长子网掩码的基础上提出的一种消除传统 A、B、C类网络划分,并且可以在软件的支持下实现超网构造的一种IP地址的划分方法。
- 消除了传统的A类,B类和C类地址以及划分子网的概念。
- 融合子网地址与子网掩码,方便子网划分。
IP地址的无分类两级编址为:IP = {<网络前缀>, <主机号>}
- 斜线记法:IP地址/网络前缀所占比特数。距离192.199.170.82/27,前27位是网络前缀,主机号是五位,也就是最多有25个主机号,可用的还要-2。
- 其中,网络前缀所占比特数对应于网络号的部分,等效于子网掩码中连续1的部分。
例1:只有基于变长子网掩码基础上才有CIDR,24位前缀数对应网络号部分(192是C类网络,也是24位(3B)网络号),所以子网划分只能划分最后8位。这里只是假设如果是定长,子网掩码就是255.255.255.248(11111111.11111111.11111111.11111000)也就是说子网号有五位,所以最大子网数是25,剩下三位作为主机号,但不可全0或全1,所以23-2 = 6.
顺便区分一下IP地址和Mac地址
IP数据报分片计算
前置知识:IP数据报格式
固定部分都是20B(字节),可变部分可有可无。
很重要! 这个图每行32位也就是4字节,头部占5行也就是20字节。
- 版本:指IP的版本,IPv4 / IPv6
- 首部长度:记录这个数据报的首部有多长,占4位,然后首部长度的单位是4B(字节)。可以表示的最大十进制数是15,最小从5开始(为了保证IP数据包一定满足固定部分的20B,所以从5开始,5×4字节=20字节,也就是固定部分的长度)。以32位为单位,最大值为60B(15x4B)。最常用的首部长度是20B。
- 区分服务:指示期望获得哪种类型的服务。
- 总长度:占16位,首部长度 + 数据部分长度,单位是 1B。数据报的最大长度位 216 - 1 = 65535B。以太网帧的最大传送单元(MTU)位1500B,因此当一个IP数据报封装成帧时,数据报的总长度一定不能超过下面的数据链路层的MTU值,一旦超过就要进行分片。
- 标识:占16位。它时一个计数器,每产生一个数据报就加1,并赋值给标识字段。当一个数据报的长度超过网络的MTU时,必须分片,此时每个数据报片都复制一次标识号,以便能正确重装成原来的数据报。同一数据报的分片使用同一标识。
- 标志:占3位。xxx,最高位无意义,标志字段的最低位 MF,MF = 1 表示后面还有分片,MF = 0 表示最后一个分片或没有分片。标志字段中间的一位时 DF,只有当 DF = 1 时才允许分片。
- 片偏移:占13位。它指出较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位,即每个分片的长度一定是8B(64位)的整数倍。(除了最后一个分片,每个分片的长度一定是8B的整数倍)
- 生存时间(TTL):IP分组的保质期,占8位。数据报在网络中可通过的路由器数的最大值,标识分组在网络中的寿命,以确保分组不会永远在网络中循环。经过一个路由器 -1,变成 0 则丢弃。
- 协议:占8位。指出此分组携带的数据部分使用何种协议,即分组的数据部分应交给哪个传输层协议,如TCP、UDP等。其中值为6表示TCP,值为17表示UDP。
- 首部校验和:检验首部的字段,采用的求和,占16位。IP数据报的首部校验和只校验分组的首部,而不校验数据部分。
- 源地址字段:占32位,标识发送方的IP地址。
- 目的地址字段:占32位,标识接收方的IP地址。
- 可选字段:可有可无,0~40B,用来支持排错、测量以及安全等措施。
- 填充:全0,把首部补成4B的整数倍,补全的作用。
总结一下:头部设计到的三个单位
- 总长度单位1B
- 片偏移单位8B
- 首部长度单位4B
口诀:[一种(种 - 总长度)] [八片(片-片偏移)] 的 [首(首部长度)饰]
最大传送单元MTU
- 一个数据链路层数据报能承载的最大数据量称为最大传送单元(MTU)。因为IP数据报被封装在数据链路层数据报中,因此数据链路层的MTU严格地限制着 IP 数据报的长度。以太网的MTU是1500字节。
IP分组经过数据链路层的封装,加头加尾,IP分组形成了数据帧的数据部分,数据部分有个最大要求,就是不能超过MTU这个上限值,以太网中数据部分的最大值就是1500字节,如果传送的数据报长度超过MTU就要进行分片。
正片开始!数据报分片
当IP数据报的总长度大于链路MTU时,就需要将IP数据报中的数据分装在两个或多个较小的IP数据报中,这些较小的数据报称为片。
如何分片?这里就要用到标识,标志,片偏移。
- 标识:同一数据报采用同一标识,占16位。它是一个计数器,每产生一个数据报就加1,并赋值给标识字段。当一个数据报的长度超过网络的MTU时,必须分片,此时每个数据报片都复制一次标识号,以便能正确重装成原来的数据报。同一数据报的分片使用同一标识。
- 标志:占3位。x DF MF,最高位无意义。
- 标志字段中间的一位是 DF(Don’t Fragment),只有当 DF = 0 时才允许分片,DF = 1 时禁止分片。
- 标志字段的最低位 MF(More Fragment),MF = 1 表示后面还有分片,MF = 0 表示当前分片是最后一个分片 或者 没有分片(没有超过MTU) 。
- 片偏移:占13位。它指出较长的分组在分片后,某片数据部分在原分组中数据部分的相对位置。片偏移以8个字节为偏移单位,即每个分片的长度一定是8B(64位)的整数倍。(除了最后一个分片,每个分片的长度一定是8B的整数倍)
举例:最大MTU为1420B(字节),其中20字节要作为分片的首部(每个分片拥有字节的首部),所以每个分片数据部分最大长度位1400B。所有3800B被分成1400B + 1400B + 1000B。 所以数据报片1,2,3的相对原始数据报的位置是0B,1400B,2800B。片偏移以8B为偏移单位,所以对应片1,2,3的片偏移是0,1400/8=175,350。
IPv6,含义、冒号十六进制记法表示及IPv4向IPv6过渡的策略
(稍微了解就行)解决“IP地址耗尽”问题的措施有以下三种:
- 采用无类别编制CIDR,使IP地址的分配更加合理。
- 采用网络地址转换(NAT)方法以节省全球IP地址。
- 采用具有更大地址空间的新版本的IPv6。( 根本上解决)
- 改进首部格式:快速处理/转发数据报和支持QoS
- QOS ( Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。
正片开始!IPv6数据报格式
基本首部40B是固定的,数据报需要增加什么功能(不是必要的功能)就在扩展首部(可有可无)那里处理。
- 版本:指明了协议版本,总是6。
- 优先级:区分数据报的类别和优先级。
- “流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签。
- 有效载荷长度(扩展首部+数据部分长度)【除了基本首部剩下的全部】
- 下一个首部:标识下一个扩展首部或上层协议首部。(基本首部的下一个首部指向第一个扩展首部,第一个扩展首部的下一个首部指向第二个扩展首部,…第N-1个扩展首部的下一个首部指向第N个扩展首部)
【数据报途中经过的路由器都不处理这些扩展首部 (只有一个首部例外,即逐跳选项扩展首部)】 - 跳数限制:相当于IPv4的TTL。
- 源地址和目的地址都是128位,大大扩展了。
区分IPv6 & IPv4
- IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。
- IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。
- IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
- IPv6支持即插即用(即自动配置),不需要DHCP协议。
- IPv6首部必须是8B的整数倍,IPv4首部是4B的整数倍(首部长度的单位是4B(字节))。
- IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。返回差错报告报文,这种报文采用ICMPv6:附加报文类型“分组过大”。
- IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延应用。
- IPv6取消了协议字段,改成下一个首部字段。
- IPv6取消了总长度字段,改用有效载荷长度字段。
- IPv6取消了服务类型字段。
IPv6地址表现形式
- 一般形式冒号十六进制记法:4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
- 压缩形式: 4 B F 5 : 0000 : 0000 : 0000 : B A 5 F : 039 A : 000 A : 2176 → 4 B F 5 : 0 : 0 : 0 : B A 5 F : 39 A : A : 2176 4BF5:0000:0000:0000:BA5F:039A:000A:2176 → 4BF5:0:0:0:BA5F:39A:A:2176 4BF5:0000:0000:0000:BA5F:039A:000A:2176→4BF5:0:0:0:BA5F:39A:A:2176。
- 零压缩:一连串连续的0可以被一对冒号取代。 F F 05 : 0 : 0 : 0 : 0 : 0 : 0 : B 3 箭头 F F 05 : : B 3 FF05:0:0:0:0:0:0:B3 箭头FF05::B3 FF05:0:0:0:0:0:0:B3箭头FF05::B3。双冒号表示法在一个地址中仅可出现一次。
IPv6向IPv4过渡的策略
- 双栈协议:在一台设备上同时装有IPv4和IPv6协议栈,那么这台设备既能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么在路由器的不同接口上分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络;如果这台设备是一台计算机,那么它将同时拥有IPv4地址和IPv6地址,并且具备同时处理这两个协议地址的功能。
- 隧道技术:
- 在IPv6 数据报要进入IPv4 网络时,把IPv6 数据报封装成为IPv4数据报,整个的IPv6 数据报变成了IPV4 数据报的数据部分。
- 当IPv4 数据报离开IPv4 网络中的隧道时,再把数据部分 (即原来的IPv6 数据报)交给主机的IPv6 协议栈。
RIP,含义、路由表更新过程
(了解一下路由算法是什么)路由算法
路由算法分类
- 静态路由算法(非自适应路由算法):管理员手动配置路由信息(手工配置怎么走)
- 有点:简便、可靠,在负荷稳定、拓扑变化不大(不会有很多主机退出或者进入,相对稳定)的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。
- 缺点:路由更新慢,不适用大型网络。
- 动态路由算法(自适应路由算法):路由器间彼此交换信息,按照路由算法优化出路由表项。
- 优点:路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化。算法
- 缺点复杂,增加网络负担。
动态路由算法再划分
- 全局性 链路状态路由算法 OSPF:所有路由器掌握完整的网络拓扑和链路费用信息。
- 分散性:距离向量路由算法 RIP:路由器只掌握物理相连的邻居及链路费用。
路由信息协议RIP
路由信息协议(Routing Information Protocol,RIP)是内部网关协议(IGP)中最先得到广泛应用的协议。
RIP是一种分布式的基于距离 - 向量的路由选择协议,其最大的优点就是简单。要求网络中每一个路由器都维护从它到其他每一个目的网络的唯一最佳记录[记录在路由表里](即一组距离)
- 距离:“跳数”,即从源端口到目的端口所经过的路由器的个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1(直接交付)。RIP允许一条路由最多只包含15个路由器,因此距离为16表示网络不可达 → RIP适合小的互联网。
RIP协议是应用层协议,使用UDP传送数据!(端口520)。RIP选择的路径不一定是时间最短的,但一定是具有最少路由器的路径。因为它是根据最少跳数进行路径选择的。
RIP规定
- 网络中的每个路由器都要维护从它自身到其他每个目的网络的唯一最佳距离记录(因此这是一组距离,称为距离向量)。
- 距离也称为跳数(Hop Count),规定从一个路由器到直接连接网络的距离(跳数)为1。而每经过一个路由器,距离(跳数)加1。
- RIP认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径。
- RIP允许一条路径最多只能包含15个路由器(即最多允许15跳)。因此距离等于16时,它表示网络不可达。可见RIP只适用于小型互联网。距离向量路由可能会出现环路的情况。规定路径上的最高跳数的目的是为了防止数据报不断循环在环路上,减少网络拥塞的可能性。
- RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表(动态维护)。
- 在RIP中不支持子网掩码的RIP广播。所以RIP中每个网络的子网掩码必须相同。但在新的RIP2中,支持变长子网掩码和CIDR。
RIP协议和谁交换?
- 仅和相邻路由器交换信息。(向邻居节点广播整个路由表)
多久交换一次?
- 每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。
交换什么?
- 路由器交换的信息是自己的路由表。
距离向量算法
每个路由表项目都有三个关键数据:<目的网络N,距离d,下一跳路由器地址X>。对于每个相邻路由器发送过来的RIP报文,执行如下步骤:
- 对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目:把 “下一跳” 字段中的地址都 改为X,并把所有 “距离”字段的值都加1 。
- 对修改后的RIP报文中的每个项目,执行如下步骤:
- 当原来的路由表中没有目的网络N时,把该项目添加到路由表中。
- 当原来的路由表中有目的网络N,且下一跳路由器的地址是X时,用收到的项目替换原路由表中的项目。(以最新为准)[同一个目的同一个下一跳直接更新/取最新的]
- 当原来的路由表中有目的网络N,且下一跳路由器的地址不是X时,如果收到的项目中的距离d小于路由表中的距离,那么就用收到的项目替换原路由表中的项目;否则什么也不做。[同一个目的不同一下一跳取距离最小的,距离相等不管]
- 如果180秒(RIP默认超时时间为180秒)还没有收到相邻路由器的更新路由表,那么把此相邻路由器记为不可达路由器,即把距离设置为16(距离为16表示不可达)。
- 返回。
- ⭐总结一下:没有就添加,同目的网络同下一跳取最新的距离,同目的网络不同下一跳取最短距离的记录覆盖,不可达距离设为16。
例子
Net2 - 3 - R4:新的路由表中有同目的网络和同下一跳路由器的记录,选择最新版本,所以距离3换成5。
Net3 - 4 - R5:新的路由表种有同目的网络但不同下一跳路由器的记录,取距离小的记录覆盖,所以Net3 - 4 - R5变成Net3 - 2 - R4。
Net1 - 3 - R1:原始路由表不存在目的网络为Net1的,所以直接添加。
到A最短 = min(5 + 6,16 + 3,7 + 5) = min(11,19,12) = 11
到B最短 = min(0 + 6,12 + 3,6 + 5) = min(6,15,11) = 6
到C最短 = 0
到D最短 = min(6 + 6,9 + 3,0 + 5) = min(12,12,5) = 5
到B最短 = min(2 + 6,10 + 3,4 + 5) = min(8,13,9) = 8
RIP协议报文字段
优缺点
- RIP优点:实现简单、开销小、收敛过程较快。
- RIP缺点:好消息传得快,坏消息传的慢
上面这两句话什么意思呢?
比如这张图:初始的时候R1路由表记录<1,1,- >(目的地址为网络1,距离1,可以直接交付),R2路由表记录<1,2,R1>(目的地址为网络1,距离2,下一跳路由器为R1)。
但是当:网1出了故障,R1就会接收到更新的路由表信息变为<1,16,->,并将路由表信息发送给了R2。但是,如果R1先接收来自R2的信息<1,3,R2>(这是修改后的了)(原始R2中的是<1,2,R1>),R1就会把路由表信息更新为<1,3,R2>,再发送新的路由表信息给R2,R2接受到新路由表信息更新为<1,4,R1>,然后R2又给R1发,R1更新<1,5,R2>,两个路由表来回上述操作,最后直到最短距离变成16才能发现网络1到达不了,出故障了。这就是坏消息传的慢。
路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大。
网络出现故障时,会出现慢收敛现象(即需要较长的时间才能将此信息传送到所有路由器,上面举的例子),俗称“坏消息传得慢”,使更新过程的收敛时间长。
路由器工作原理,及与集线器、交换机的不同
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是连接异构网络并完成路由转发。
内部结构组成:
- 路由选择:根据所选定的路由选择协议构造出路由表,同时经常或定期和相邻路由器交换路由信息而不断地更新和维护路由表。
- 分组转发:根据转发表(路由表得来)对分组进行转发。由三部分组成,交换结构、一组输入端口、一组输出端口。
- 区分一下:路由选择就是找路由走的路径,转发是路由器内部走哪个端口。
- 不是所有有输入端口进入的分组都进行转发处理。若收到RIP/OSPF(路由信息)分组等,则把分组交由路由选择处理机,若收到的是数据分组,则查找转发表进行转发输出。
- 不是所有有输入端口进入的分组都进行转发处理。若收到RIP/OSPF(路由信息)分组等,则把分组交由路由选择处理机,若收到的是数据分组,则查找转发表进行转发输出。
处理过程:
输入端口
- 物理层只是进行比特的接收。
- 到达链路层,链路层按照传输分组的协议接收传输分组的帧。
- 数据链路层把帧的头和尾去掉,将分组交给网络层,网络层先判断是路由信息还是数据分组,前者的话交给路由选择处理机进行处理计算,后者进行分组处理,执行转发输出。
- 很多分组的话需要排队等待处理,容易产生时延。(输入端口中的查找和转发功能再路由器的交换功能中最重要)
- 输入端口中的查找和转发功能再路由器的交换功能中是最重要的。
输出端口
- 输出端口先有交换结构接收到一个输出分组,后面就和输入的倒过来。
- 数据链路层处理模块将 分组加上链路层的首部和尾部交给物理层后送到外部线路。
- 在网络层的处理模块中设有一个缓冲区(队列),当交换结构传送过来的分组的速率超过输出链路的发送速率时,来不及发送的分组就暂时存放再这个队列中。
- 如果路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到0,这就使得后面再进入队列的分组由于没有存储空间而只能被丢弃。(路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因)
关于交换结构(了解一下应该就行)
三层设备的区别
- 路由器可以互联两个不同网络层协议的网段。
- 网桥可以互联两个物理层和链路层不同的网段。
- 集线器不能互联两个物理层不同的网段。
对于任何层次的设备都可以互联它所在的层次和以下层次的网段(×,比如集线器)
路由表与路由转发
- 路由表根据路由选择算法得出的,主要用途是路由选择。总是用软件来实现!
- 路由表有4个项目:目的网络IP地址、子网掩码、下一跳IP地址、接口。
- 一般会包含一个默认路由<0.0.0.0,0.0.0.0,,>
- 转发表从路由表得出的。可以用软件来实现,甚至也可以用特殊的硬件来实现!
- 转发表有2个项目:分组将要发往的目的地址、分组的下一跳(即下一步接收者的目的地址,实际为MAC地址。
转发和路由选择的区别:
- 转发是路由器根据转发表把收到的IP数据报从合适的端口转发出去,它仅涉及一个路由器。
- 路由选择 则涉及很多路由器,路由表是许多路由器协同工作的结果。这些路由器按照复杂的路由算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出整个路由表。
第八版课后练习
22.有如下的4个/24地址块,试进行最大可能的聚合。
212.56.132.0/24
212.56.133.0/24
212.56.134.0/24
212.56.135.0/24
解:通俗的解释一下聚合,就是取两个地址块前缀相同的部分。把数全部化为2进制然后进行比较。
132=10000100
133=10000101
134=10000110
135=10000111
则4个地址块有22个相同的前缀,则聚合之后的CIDR地址为:212.56.132.0/22
24.已知路由器R1的转发表如下表所示。试画出各网络和必要的路由器的连接拓扑,标注出必要的IP地址和接口,对不能确定的情况应当指明。
25.一个自治系统分配到的IP地址块为30.138.118/23,并包含有5个局域网,其连接图如图所示,每个局域网上的主机数分别标注。试给出每一个局域网的地址块。
答案不唯一
4-2习题还没看
第五章 运输层
传输层提供进程和进程之间的逻辑通信。(网络层提供主机之间的通信)
逻辑通信:传输层之间的通信好像是沿着水平方向传送数据,但事实上这两个传输层之间并没有一条水平方向的物理连接。(先通过网络层实现主机通信,主机在将信息交给对应的进程/线程)
UDP、TCP的不同,使用UDP和TCP常见的应用协议
UDP、TCP的不同
-
面向连接的传输控制协议TCP
传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:回复确认、流量控制、计时器及连接管理等。
可靠,面向连接,时延大,适用于大文件。比如QQ传输大文件。 -
无连接的用户数据报协议UDP
传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。
不可靠,无连接,时延小,适用于小文件。比如QQ发送一条消息。
使用UDP和TCP常见的应用协议
UDP面向报文,TCP面向字节流的概念
- UDP 是面向报文的:对应用层传下来的报文不做拆分或者合并,不改变报文的长度。应用层给UDP多长的报文,UDP就照样发生,即一次发一个完整报文。
- TCP面向字节流:TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。
- TCP对连续的字节流分段,形成了TCP报文段。
停等协议,自动重传ARQ协议
(这一段是我在链路层写的,传输层这边的停等协议其实也差不多)
停止等待协议
为什么要有停等协议?
- 因为在链路上出了比特出差错外,底层的信道还会出现丢包问题。
- 丢包:物理线路故障,设备故障,病毒攻击,路由信息错误等原因,会导致数据包的丢失。
- 这里的数据包就是一个数据,在不同层次有不同的名字;在链路层是帧,在网络层是数据报/分组,在传输层是报文段。
“停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
无差错接收与可靠传输的区别
-
无差错接收是指凡是接收的帧(不包括丢弃的帧),我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错。也就是说:凡是接收端数据链路层接受的帧都没有传输差错(有差错的帧就丢弃而不接受)。
-
要做到可靠传输(即发送什么就收到什么)就必须加上确认和重传机制。
详解停等协议
每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,因而传输效率很低。(一个发送周期大部分时间都在传播路上,发送时间占比很小)
应用情况:
-
无差错情况
-
有差错
-
数据帧丢失或检测到帧出错(传过去没成功)
- 解决办法:发送帧的同时保留帧的副本,设立定时器,一旦超过时间限制还没收到确认帧(数据出错就不返回确认帧),发送方就将副本重新发送,接收方接收后返回确认帧。(数据帧和确认帧需要编号)如果是帧出错就把接收到的帧丢弃,等待发送方重新发送。
- 解决办法:发送帧的同时保留帧的副本,设立定时器,一旦超过时间限制还没收到确认帧(数据出错就不返回确认帧),发送方就将副本重新发送,接收方接收后返回确认帧。(数据帧和确认帧需要编号)如果是帧出错就把接收到的帧丢弃,等待发送方重新发送。
-
ACK(确认帧)丢失(返回确认没成功)
- 解决办法:设立定时器, 一旦超时,发送方重新发送副本,接收方接收到新的帧因为和之前发送的重复,把第二次发送来的重复的帧丢弃,然后像发送方返回确认。
- 解决办法:设立定时器, 一旦超时,发送方重新发送副本,接收方接收到新的帧因为和之前发送的重复,把第二次发送来的重复的帧丢弃,然后像发送方返回确认。
-
ACK迟到(返回确认,但是迟到超过时间限定)
- 解决办法:也是计时器,超过实现没收到确认,发送方重新发送,然后出现了重复帧,丢掉重复帧。(注意,这里确认帧是迟到,不是丢失,也就是说最终这个确认帧会返回给发送方的)发送方在进行下一个帧的发送是时候收到了之前迟到的确认帧,发送方不对迟到的确认帧处理,直接丢掉。
- 解决办法:也是计时器,超过实现没收到确认,发送方重新发送,然后出现了重复帧,丢掉重复帧。(注意,这里确认帧是迟到,不是丢失,也就是说最终这个确认帧会返回给发送方的)发送方在进行下一个帧的发送是时候收到了之前迟到的确认帧,发送方不对迟到的确认帧处理,直接丢掉。
-
性能分析(了解一下就行,考纲没有,看看也很快)
- T0是发送方发送第一个比特到最后一个比特所用时间,也就是发送时延。TA同理。RTT是传播时延。
- 信道利用率:发送时延占整个发送周期的比率。(下面这道题没说确认帧的发送时延,记为0)
停止等待协议弊端
- 停等协议发送方每发送一个帧就处于等待状态,等到接收方回复一个确认帧,发送方才会发送新的帧。因此大部分时间都是在等待,真正发送数据的时间很少,极大地浪费了资源。
- 为了解决这个问题,可以采用流水线技术,一次发送多个帧,但同时在其他方面需要改进:
- 必须增加序号范围;
- 发送方需要缓存多个分组,为帧丢失重传备用。
针对这种解决方案,就推出了GBN和SR(考纲没有,我就没继续写了)。
自动重传请求ARQ
- 通常 A 最终总是可以收到对所有发出的分组的确认。如果 A 不断重传分组但总是收不到确认,就说明通信线路太差,不能进行通信。
- 使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信。
- 像上述的这种可靠传输协议常称为自动重传请求 ARQ(AutomatiRepeat reQuest)。意思是重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组。
累计确认,序号之间的关系
ack的序号表示期待收到下一个报文段的序号。
- A为每一个发送的分组都进行编号。若B收到了编号相同的分组,则认为收到了重复分组,丢弃重复的分组,并回送确认
- B为发送的确认也进行编号,指示该确认是对哪一个分组的确认。
- A根据确认及其编号,可以确定它是对哪一个分组的确认,避免重新发送。若为重复的确认,则将其丢弃。
TCP的拥塞控制方法,真正的发送窗口值与拥塞窗口和接收窗口的关系,拥塞控制四个阶段不同算法的应用条件
出现拥塞的条件:对资源的需求总和大于可用资源。
拥塞控制目的:防止过多的数据注入到网络中(全局性)。
区别流量控制和拥塞控制:
- 流量控制是点对点的。
- 拥塞控制是全局性问题
拥塞控制四种算法
- 慢开始
- 拥塞避免
- 快重传
- 快恢复
先假设
- 数据单方向传送,而另一个方向只传送确认。
- 接收方总是有足够大的缓存空间,因而发送窗口取决于拥塞程度(这是假设)。
实际上:发送窗口 = Min{接收窗口 rwnd,拥塞窗口 cwnd}(r-receive,c-crowd,不只是英文对应是不是这个,方便记忆而已)- 接收窗口:接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量。
- 拥塞窗口: 发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量。
慢开始和拥塞避免
- 为了讨论方便:初始值cwnd默认设置为1(一个报文段,长队是最大报文段的长度MSS)。
- 一个传输轮次:发送一批报文段并收到他们的确认的时间(一个往返时延RTT)。
- 当网络出现拥塞时
- ssthresh = max(cwnd/2,2)
- cwnd = 1
- 执行慢开始算法。
- 慢开始是指数增长:1,2,4,8,16…
- 到达ssthresh:16【慢开始门限】,报文段的增加由指数增长变成线性增长,每次+1。
- 等到达24的时候,发送方检测到出现拥塞现象,所以由24降到1,继续指向慢开始算法。
- 新一轮的【慢开始门限值】变为上一轮出现【网络拥塞的窗口值】【24】的一半【12】。
快重传和快恢复
- 快重传:只要收到三个重复的确认(ACK:期待收到下一个序号为x的报文段)冗余就立即重传。快重传后直接就执行快恢复。
- 收到连续三个重复确认,发送方认为网络可能没有发送拥塞,所以不执行慢开始而是执行快恢复。
- 调整门限ssthresh = 当前拥塞窗口/2。
- 新拥塞窗口cwnd = 新ssthresh。
- 开始执行拥塞避免算法,cwnd线性增大。
- 和拥塞避免的区别,前者是立即降到1后执行慢开始算法,而快恢复是降到新的门限值【上一轮出现网络拥塞的窗口值的一半,比如24->12】,然后执行快恢复:+1。
TCP连接的三个阶段,包括连接建立,数据传送和连接释放(可能还要补)
TCP连接传输三个阶段:连接建立 — 数据传送 — 连接释放
TCP的连接建立
TCP连接建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器。
-
客户端发送连接请求报文段,无应用层数据。
SYN = 1,seq = x- SYN:同步位,只在连接请求和连接请求的确认为1
- seq:标识本次报文段的序号(x是发送方发送的首条报文段的序号,一般随机)
-
服务器端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据。
SYN = 1,ACK = 1,seq = y(随机),ack = x + 1(客户端发送的seq是x,因此我期望收到的下一个序号就是x+1)- ACK:确认位,用于回复,确认对方的报文已经收到(由于第一步连接请求无需确认,因此ACK=0)
- ack:其实就是确认号,表示下一次期望收到的序号(因为请求连接的报文无数据部分,序号为x,所以ack = x + 1)。ACK和ack是组合使用,共同生效。
- y是接收方发送的首条报文段的序号,一般随机
-
客户端为该TCP连接分配缓存和变量,并向服务器返回确认的确认,表示发送方可以发送携带数据的报文了。
SYN = 0,ACK = 1,seq = x + 1(客户端第一次发送即第一步时定义的序号是seq=x,且无数据,因此下一次发送按序就是seq=x+1),ack = y + 1- SYN = 0,只有在前两步才是1,其他都是0.
- 上一条报文段序号是y,那么期待下一条报文段的序号就是y + 1,所以ack = y + 1
- 因为发送方之前已经发送了seq = x的报文段,所以下一条报文段的序号为x + 1,即seq = x + 1。TCP 是面向字节流的,通过 TCP 传送的字节流中的每个字节都按顺序编号,而报头中的序号字段值则指的是本报文段数据的第一个字节的序号。发送方发送的请求链接报文是没有数据的,
TCP可靠传输
网络层提供尽最大努力交付,是不可靠传输。所以网络层的上层传输层就担负起了可靠传输的职能。
- 如果网络层用的TCP就可以实现可靠传输。
- 如果使用的UDP就还得交给上层应用层实现可靠传输。
可靠:保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的。(按序不丢失)
TCP 实现可靠传输的机制:
- 校验:与UDP校验一样,增加伪首部,使用二进制反码求和
- 序号:一个字节占一个序号,序号字段指一个报文段的第一个字节序号
- 确认:默认使用累积确认,发送方有TCP缓存,只有接收方收到数据并返回确认才会把数据从缓存中去除。接收方发送的ack为连续的最大序号(实现超时重传)。
- 重传:确认重传不分家,TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段。超时重传。
超时重传的时间
- TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)。对于每个报文段发送和收到确认的时间(RTT:往返时间)进行加权计算,动态更新。
超时等待时间有点久,如果在超时之前知道数据报是否丢失(超时时间内)
冗余ACK(冗余确认)
- 每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号。
ex:
- 发送方
- 发送1,2,3,4,5报文段
- 接收方
- 接收方收到1,返回给1的确认(确认号为2的第一个字节)
- 接收方收到3,仍返回给1的确认(所以确认号仍然为2的第一个字节)
- 接收方收到4,仍返回给1的确认(确认号为2的第一个字节)
- 接收方收到5,仍返回给1的确认(确认号为2的第一个字节)
- 发送方收到3个对于报文段1的冗余ACK→认为2报文段丢失,重传2号报文段(快速重传)
TCP连接释放
参与一条TCP连接的两个进程中的任何一个都能终止该连接,连接结束后,主机中的缓存和变量将被释放。
-
客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接。(无需确认位ACK此时=0)
FIN = 1,seq = u(u其实等于客户端发送的最后一个报文段序号+1)- FIN:终止位,表示数据发送完毕,只有在服务器或客户端发送完数据后才会将该终止位置为1,请求释放连接的报文FIN设为1。
- FIN:终止位,表示数据发送完毕,只有在服务器或客户端发送完数据后才会将该终止位置为1,请求释放连接的报文FIN设为1。
-
服务器端回送一个确认报文段,客户到服务器这个方向的连接就释放了 —— 半关闭状态。(客户端停止发送了,服务器端仍可以发送)
ACK = 1,seq = v(v其实等于服务器发送的最后一个报文段序号+1),ack = u + 1(上一步的报文seq=u,因此期待的下一个报文段序号就是u+1) -
服务器发完数据,就发出连接释放报文段,主动关闭TCP连接。
FIN = 1,ACK = 1,seq = w(w其实等于服务器发送的最后一个报文段序号+1),ack = u + 1(上一步的报文seq=u,中间客户没有发送报文,因此期待的下一个报文段序号就是u+1) -
客户端回送一个确认报文段,再等到时间等待计时器设置的 2MSL(最长报文段寿命,防止客户端发送的确认报文段丢失,服务器就会重传连接释放报文段,然后客户端再次发送确认,同时重新启动2MSL计时器 | 如果没有这个机制,A发送完确认报文段直接关闭不等待,A发送给B的确认报文段又丢失,A没法收到B重传的连接释放报文段,B也收不到确认报文段,没法正常关闭)后,连接彻底关闭。
ACK = 1,seq = u + 1(u+1就是客户端第一次发送的序号seq=u的下一个序号),ack = w + 1(服务器上一步发送的seq=w,期待服务器的下一个报文序号是w+1)
课后练习
5-23主机 A 向主机 B 连续发送了两个 TCP 报文段,其序号分别为 70 和 100。试问:
(1)第一个报文段携带了多少个字节的数据?
(2)主机 B 收到第一个报文段后发回的确认中的确认号应当是多少?
(3)如果主机 B 收到第二个报文段后发回的确认中的确认号是 180,试问 A 发送的第二个报文段中的数据有多少字节?
(4)如果 A 发送的第一个报文段丢失了,但第二个报文段到达了 B。B 在第二个报文段到达后向 A 发送确认。试问这个确认号应为多少?
答:
(1)第一个报文段的数据序号是 70 到 99,共 30 字节的数据。
(2)B 期望收到下一个报文段的第一个数据字节的序号为 100,因此确认号为 100。
(3)A 发送的第二个报文段中的数据中的字节数是 180 - 100 = 80 字节(实际上,就是序号 100 到序号 179 的字节,即 179 - 100 + 1 = 80 字节)
(4)B 在第二个报文段到达后向 A 发送确认,其确认号应为 70。(报文段丢失,就会重复发送确认上一个未收到的报文段第一个序号,即 70)
5-39.TCP 的拥塞窗口 cwnd 大小与传输轮次 n 的关系如表所示:
新一轮的【慢开始门限值】变为上一轮出现【网络拥塞的窗口值】
(1)试画出如教材中图 5-25 所示的拥塞窗口与传输轮次的关系曲线。
(2)指明 TCP 工作在慢开始阶段的时间间隔。
(3)指明 TCP 工作在拥塞避免阶段的时间间隔。
(4)在第 16 轮次和第 22 轮次之后发送方是通过收到三个重复的确认还是通过超时检测到丢失了报文段?
(5)在第 1 轮次,第 18 轮次和第 24 轮次发送时,门限 ssthresh 分别被设置为多大?
(6)在第几轮次发送出第 70 个报文段?
(7)假定在第 26 轮次之后收到了三个重复的确认,因而检测出了报文段的丢失,那么拥塞窗口 cwnd 和门限 ssthresh 应设置为多大?
答:
(1)
(2)慢开始时间间隔:[1, 6] 和 [23, 26]
(3)拥塞避免时间间隔:[6, 16] 和 [17, 22]
(4)在第 16 轮次之后发送方通过收到三个重复的确认,检测到丢失了报文段,因为题目给出,下一个轮次的拥塞窗口减半了。在第 22 轮次之后发送方通过超时,检测到丢失了报文段,因为题目给出,下一个轮次的拥塞窗口下降到 1了。
(5)在第 1 轮次发送时,门限 ssthresh 被设置为 32,因为从第 6 轮次起就进入了拥塞避免状态,拥塞窗口每个轮次加 1。
在第 18 轮次发送时,门限 ssthresh 被设置为发生拥塞时拥塞窗口 42 的一半,即 21。
在第 24 轮次发送时,门限 ssthresh 被设置为发生拥塞时拥塞窗口 26 的一半,即 13。
(6)第 1 轮次发送报文段 1。(cwnd = 1)
第 2 轮次发送报文段 2, 3。(cwnd = 2)
第 3 轮次发送报文段 4 ~ 7。(cwnd = 4)
第 4 轮次发送报文段 8 ~ 15。(cwnd = 8)
第 5 轮次发送报文段 16 ~ 31。(cwnd = 16)
第 6 轮次发送报文段 32 ~ 63。(cwnd = 32)
第 7 轮次发送报文段 64 ~ 96。(cwnd = 33)
因此第 70 报文段在第 7 轮次发送出。
(7)检测出了报文段的丢失时拥塞窗口 cwnd 是 8,因此拥塞窗口 cwnd 的数值应当减半,等于 4,而门限 ssthresh 应设置为检测出报文段丢失时的拥塞窗口 8 的一半,即 4。
第六章 应用层
应用层的具体内容就是规定应用进程在通信时所遵循的协议。
域名系统(DNS)
因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名(Domain Name)。 域(Domain) 是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。每个域名都由标号序列组成,而各标号之间用点(“.”) 隔开。
关于域名中的标号有以下几点需要注意(了解就行)
1)标号中的英文不区分大小写。
2)标号中除连字符(-) 外不能使用其他的标点符号。
3)每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符。
4)级别最低的域名写在最左边,级别最高的顶级域名写在最右边。
域名空间的树状结构
在域名系统中,每个域分别由不同的组织进行管理。每个组织都可以将它的域再分成一定数目的子域,并将这些子域委托给其他组织去管理。例如,管理CN域的中国将EDU.CN子域授权给中国教育和科研计算机网(CERNET)来管理。
域名服务器
DNS的层次结构:
(其实就是个树状结构,没啥可看的)
- 根域名服务器:根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP地址。根域名服务器也是最重要的域名服务器,不管是哪个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器。因特网上有13个根域名服务器,尽管我们将这13个根域名服务器中的每个都视为单个服务器,但每个“服务器”实际上是冗余服务器的集群,以提供安全性和可靠性。需要注意的是,根域名服务器用来管辖顶级域(如),通常它并不直接把待查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器进行查询。
- 顶级域名服务器:这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址)。
- 权限域名服务器:每台主机都必须在授权域名服务器处登记。为了更加可靠地工作,一台主机最好至少有两个授权域名服务器。实际上,许多域名服务器都同时充当本地域名服务器和授权域名服务器。授权域名服务器总能将其管辖的主机名转换为该主机的IP地址。
- 本地域名服务器:本地域名服务器对域名系统非常重要。每个因特网服务提供者(ISP), 或一所大学,甚至一所大学中的各个系,都可以拥有一个本地域名服务器。当一台主机发出DNS查询请求时,这个查询请求报文就发送给该主机的本地域名服务器。事实上,我们在Windows系统中配置“本地连接”时,就需要填写DNS地址,这个地址就是本地DNS (域名服务器)的地址。
[本地域名一般会缓存之前的查询记录,这样下次查询就比较快了]
⭐域名解析过程(解析为IP地址)
域名解析有两种方式:递归查询和递归与迭代相结合的查询
- 主机向本地域名服务器的查询采用的是递归查询
也就是说,如果本地主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份(主机靠本地域名服务器),向根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询。在这种情况下,本地域名服务器只需向根域名服务器查询一次,后面的几次查询都是递归地在其他几个域名服务器之间进行的。
【简单说就是主机向本地域名服务器发送查询请求后,主机就不管了,剩下的工作看本地域名服务器了】 - 本地域名服务器向根域名服务器的查询采用迭代查询
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪个顶级域名服务器进行查询”。然后让本地域名服务器自己(本地域名服务器靠自己)向这个顶级域名服务器进行后续的查询,如图(b)所示。 同样,顶级域名服务器收到查询报文后,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应向哪个权限域名服务器查询。最后,知道所要解析的域名的IP地址后,把这个结果返回给发起查询的主机。
【也是剩下的查询由本地域名服务器去查询,其他的服务器只告诉本地域名服务器去哪个服务区查,本地域名服务器始终参与查询(妥妥工具人)】
高速缓存:为了提高DNS的查询效率,并减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。当一个DNS服务器接收到DNS查询结果时,它能将该DNS信息缓存在高速
缓存中。这样,当另一个相同的域名查询到达该DNS服务器时,该服务器就能够直接提供所要求的IP地址,而不需要再去向其他DNS服务器询问。因为主机名和IP地址之间的映射不是永久的,所以DNS服务器将在一段时间后丢弃高速缓存中的信息。
FTP提供交互式的访问,使用了两个TCP连接:控制连接和数据连接
FTP
文件传送协议FTP功能:(知道FTP是传文件的,用TCP实现可靠传输就可以)
-
目的是减少或消除在不同操作系统下处理文件的不兼容。
-
FTP使用TCP实现可靠传输
补充一个:简单文件传送协议TFTP (Trivial File Transfer Protocol),只需要知道这是一个很小,而且易于实现的一种文件传送协议即可。
- 优点:非常适合UDP环境
FTP服务器和用户端
FTP是基于客户/服务器(C/S)的协议。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。
- 依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器。
- 连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。
控制连接和数据连接
服务器的进程包括:
- 1个主进程:负责接收新的请求
- n个从属进程:负责处理单个请求(主进程接收的请假被分配给从属进程处理,一个FTP服务器进程可同时为多个客户进程提供服务。)
服务器进程工作步骤:
- 打开熟知端口21 (控制端口),使客户进程能够连接上。
- 等待客户进程发连接请求。
- 启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。
- 回到等待状态,继续接收其他客户进程的请求。
两个圆柱表示系统正在运行的进程。FTP在工作时使用两个并行的TCP连接:一个是控制连接(端口号21),一个是数据连接(端口号20)。使用两个不同的端口号可使协议更加简单和更容易实现。这两个连接就是从属进程。
-
控制连接:
- 建立控制连接:服务器监听21号端口,等待客户连接,建立在这个端口上的连接称为控制连接
- 控制连接传送控制信息(请求):控制连接用来传送控制信息(如连接请求、传送请求等)。FTP客户发出的传送请求,通过控制连接发送给服务器端的控制进程。
- 传输模式:控制信息都以7位ASCII格式传送。
- 始终打开:在传输文件时还可以使用控制连接,因此控制连接整个会话期间一直保持打开状态。
-
数据连接:
- 数据连接端口号为20:是否使用TCP20端口建立数据连接与传输模式有关。
- 主动方式使用TCP20端口;(主动就是服务器主动告诉用户数据连接的端口是20)
- 被动方式由服务器和客户端自行协商决定(端口>1024)
- 创建数据连接和数据传送进程:服务器端的控制进程在接收到FTP客户发来的文件传输请求后,就创建“数据传送进程”和“数据连接”。
- 数据连接用来连接客户端和服务器端的数据传送进程,数据传送进程实际完成文件的传送。
- 传送完毕后关闭。
- 数据连接端口号为20:是否使用TCP20端口建立数据连接与传输模式有关。
统一资源定位符URL含义及作用
万维网www (World Wide Web)是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。而访问/获取这些薪资资源就是通过统一资源定位符UR,URL唯一标识资源(文件、视频、音频…)。
URL的格式:
- http就是超文本传输协议,ftp是文件传送协议
- 主机是存放资源的主机在互联网中的域名
- 端口和路径可以省略
- URL不区分大小写
超文本文件传送协议HTTP
HTTP协议功能:HTTP(Hyper Text Transfer Protocol)协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档(就是上面URL标记的资源),以及服务器怎样把文档传送给浏览器。
HTTP操作过程
从协议执行过程来说,浏览器要访问WWW服务器时,首先要完成对WWW服务器的域名解析。一旦获得了服务器的IP地址,浏览器就通过TCP向服务器发送连接建立请求。
万维网工作过程:
- 每个万维网站点都有一个服务器进程,它不断地监听TCP的端口80(默认),当监听到连接请求后便与浏览器建立连接。
- TCP连接建立后,浏览器就向服务器发送资源请求获取某个Web页面的HTTP请求。
- 服务器收到HTTP请求后,将构建所请求Web页的必需信息,并通过HTTP响应返回给浏览器。
- 浏览器再将信息进行解释,然后将Web页显示给用户。
- 最后,TCP连接释放。
用户浏览页面方法:
- 输入URL
- 点击超链接
假如客户点击超链接,接下来发生的事件顺序如下:- 浏览器分析URL
- 浏览器向DNS请求解析IP地址
- DNS解析出IP地址
- 浏览器与服务器建立TCP连接.
- 浏览器发出取文件请求
- 服务器响应
- 释放TCP连接
- 浏览器显示,浏览器可以先只下载文本部分。
HTTP的连接
(TCP是面向连接的,但是HTTP是无连接的,HTTP是面向事务的)
- 非持久连接(非流水线连接):对于非持久连接,每个网页元素对象(如JPEG图形、Flash等)的传输都需要单独建立一个TCP连接,如图所示(第三次握手的报文段中捎带了客户对万维网文档的请求)。也就是说,请求一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT。【简单说就是每次请求都要先建立连接,浪费时间】
(一个RTT用于TCP连接,另一个RTT用于请求和接收文档)。
- 持久连接(流水线连接):所谓持久连接,是指万维网服务器在发送响应后仍然保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的HTTP请求与响应报文。
- 非流水线方式:客户在收到前一个响应后才能发出下一个请求。【一个结束才可以下一个】
- 流水线方式:HTTP/1.1 的默认方式是使用流水线的持久连接。这种情况下,客户每遇到一个对象引用就立即发出一个请求,因而客户可以逐个地连续发出对各个引用对象的请求。如果所有的请求和响应都是连续发送的,那么所有引用的对象共计经历1个RTT延迟,而不是像非流水线方式那样,每个引用都必须有1个RTT延迟。
HTTP报文结构
HTTP报文
- 请求报文
- 响应报文
报文格式:HTTP报文是面向文本的,因此在报文中的每一个字段都是一些ASCII码串。
- 方法一般就是说这个请求时什么操作,比如获取就是Get。
- URL是请求资源的地址(资源定位符)
举例:
- 第一行Get是请求方法,接着是URL,版本信息
- Host接的是域名
- Connection:Close表示非持久连接
- Cookie:123456表示该用户之前访问过了
电子邮件的组成:三个主要构件及过程
组成结构
客户A要给客户B发邮件,在客户端软件写好邮件后发送,先到发送方邮件服务器上,然后发送到接收方邮件服务器上,最后发送给客户B的客户端上。【中间有服务器来接收邮件】
-
简单邮件传输协议SMPT
SMTP(Simple Mail Transfer Protocol)规定了在两个相互通信的SMTP进程之间应如何交换信息。- 两个STMP进程:负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器。
- SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。
- SMTP特点:TCP连接、端口号25、C/S网络应用模型
SMTP通信三个阶段:
连接建立——邮件传送——连接释放(记这个过程即可,邮件传送阶段发的那些东西看看就好)
-
通用因特网邮件扩充MIME
- SMTP存在缺点。MIME弥补了这些缺点,使电子邮件系统可以支持声音、图像、视频、多种国家语言等等。使得传输内容丰富多彩 。
- MIME最早应用于邮件扩充,但是现在逐步应用于浏览器。
MIME原理图:
-
邮局协议POP3
- POP3特点:TCP连接、端口号110、C/S网络应用模型
-
POP3工作方式:(接收方把邮件从接收端邮件服务器读取出来后,对邮件的处理有两种方式。)
- 下载并保留(在服务器)
- 下载并删除
可以看出邮局协议POP3是非常简单、功能有限的一种邮件读取协议,对于邮件要么下载保留要么下载删除,不能根据用户需要决定是否上传到用户计算机上。因此有一种新的网际报文存取协议IMAP。
-
网际报文存取协议IMAP
IMAP协议比POP协议复杂。当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。
IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WiFi的时 候再下载附件)。 -
基于万维网的电子邮件(使用HTTP协议)
现在日常生活中普遍使用的一种发邮件方式。通过使用浏览器,登陆电子邮箱,就可以发送邮件了。不需要下载邮件客户端。
用户代理发送邮件和读取邮件都使用HTTP协议。邮件服务器直接的发送环节还是使用SMTP协议(简单邮件传输协议)。
动态主机配置协议DHCP
主机获取IP地址的方式:
- 静态配置
- 动态配置
动态主机配置协议(Dynamic Host Configuration Protocol)常用于给主机动态地分配IP地址。(比如移动设备:手机,电脑)
动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。DHCP服务器运行在67好端口,客户运行在68号端口。
DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与iP地址,允许地址重用(一个地址之前被a使用,a不用了释放,b可以用这个地址,参考wifi),支持移动用户加入网络,支持在用地址续租。
DHCP服务器聚合DHCP客户端的交换过程(DHCP工作流程):
-
DHCP客户机(主机)广播”DHCP发现“报文,试图找到网络中的DHCP服务器,以便从DHCP服务器获得一个IP地址。(问网络内所有设备有没有DHCP服务器)
-
DHCP服务器收到”DHCP发现“消息后,向网络中广播”DHCP提供“消息,从尚未出租的IP地址中(包含IP地址和相关配置信息)挑选一个分配给DHCP客户机,先发来的IP地址先用。(回复有DHCP服务器)
-
DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。DHCP客户机收到”DHCP提供“消息,如果接收DHCP服务器所提供的相关参数,那么通过广播”DHCP请求“消息向DHCP服务器请求提供IP地址。(广播是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址)
-
DHCP服务器广播“DHCP确认”消息,将IP地址正式分配分配给DHCP客户机。
注意点
- DHCP允许网络上配置多台DHCP服务器,当DHCP客户机发出DHCP请求后,有可能收到多个应答消息,这时DHCP客户机通常挑选最先到达的。
- DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限时间内使用这个分配到的IP地址。DHCP称这段时间为租用期。租用期的数值应由DHCP服务器自己决定,DHCP客户也可以在自己发送的报文中提出对租用期的要求。
- 采用广播方式进行交互的原因是在DHCP执行初期,客户端不知道服务器端的IP地址,而在执行中间,客户端并未分配IP地址,从而导致两者之间的通信必须采用广播方式。采用UDP而不采用TCP的原因也很明显:TCP需要建立连接,如果连对方的IP地址都不知道,那么更不可能通过双方的套接字建立连接。
第七章 网络安全
两类密码体制(对称密钥体制和公钥密码体制),DES,RSA等
- 对称密钥体制:加密密钥与解密密钥是相同。
- 公钥密码体制:使用不同的加密密钥与解密密钥。
DES
数据加密标准DES,属于对称密钥密码体制,是一种分组密码:
- 在加密前,先对整个明文进行分组。每一个组长为 64 位。
- 然后对每一个64 位二进制数据进行加密处理,产生一组 64位密文数据;最后将各组密文串接起来,即得出整个的密文。
- 使用的密钥为 64 位(实际密长度为 56 位,有8位用于奇偶校验)。
DES的机密性仅取决于对密钥的保密,而算法是公开的。
RSA
- 加密密钥(公钥)是公开的,解密密钥(私钥)是保密的。
- 加密和解密运算也是公开的。
- 加密和解密运算可以对调,是互逆的。
数字签名原理
报文摘要算法MD5,SHA-1
数字签名就能够实现对报文的鉴别但这种方法有一个很大的缺点:对较长的报文 (这是很常见的) 进行数字签名会使计算机增加非常大的负担(需要进行很长时间的运)。
密码散列函数(cryptographic hash function)是一种相对简单的对报文进行鉴别的方法
报文摘要算法 MD5的基本思想是用足够复杂的方法将报文的数据位充分“弄乱”,报文摘要代码中的每一位都与原来报文中的每一位有关SHA-1比MD5 更安全,但计算起来却比 MD5 要慢些。
MD5
SHA-1
直接看题目吧
课后练习
7-01
计算机网络都面临哪几种威胁?主动攻击和被动攻击的区别是什么?对于计算机网络的安全措施都有哪些?
答:
1.计算机网络面临以下的四种威胁:截获(interception);中断(interruption);篡改 (modification);伪造(fabrication)。
2.网络安全的威胁可以分为两大类:即被动攻击和主动攻击。
主动攻击是指攻击者对某个连接中通过的 PDU 进行各种处理。如有选择地更改、删除、延迟这些PDU。甚至还可将合成的或伪造的PDU 送入到一个连接中去。主动攻击又可进一步划分为三种,即更改报文流;拒绝报文服务;伪造连接初始化。
被动攻击是指观察和分析某一个协议数据单元 PDU 而不干扰信息流。即使这些数据对攻击者来说是不易理解的,它也可通过观察 PDU 的协议控制信息部分,了解正在通信的协议实体的地址和身份,研究 PDU 的长度和传输的频度,以便了解所交换的数据的性质。这种被动攻击又称为通信量分析。
还有一种特殊的主动攻击就是恶意程序的攻击。恶意程序种类繁多,对网络安全威胁较大的主要有以下几种:计算机病毒;计算机蠕虫;特洛伊木马;逻辑炸弹。
3.对付被动攻击可采用各种数据加密动技术,而对付主动攻击,则需加密技术与适当的鉴别技术结合。
7-07
对称密钥体制与公钥密码体制的特点各如何?各有何优缺点?
在对称密钥体制中,它的加密密钥与解密密钥的密码体制是相同的,且收发双方必须共享密钥,对称密码的密钥是保密的,没有密钥,解密就不可行,知道算法和若干密文不足以确定密钥。
在公钥密码体制中,它使用不同的加密密钥和解密密钥,且加密密钥是向公众公开的,而解密密钥是需要保密的,发送方拥有加密或者解密密钥,而接收方拥有另一个密 钥。两个密钥之一也是保密的,无解密密钥,解密不可行,知道算法和其中一个密钥以及若干密 文不能确定另一个密钥。
优点:对称密码技术的优点在于效率高,算法简单,系统开销小,适合加密大量数据。对称密钥算法具有加密处理简单,加解密速度快,密钥较短,发展历史悠久等优点。
缺点:对称密码技术进行安全通信前需要以安全方式进行密钥交换,且它的规模复杂。公钥密钥算法具有加解密速度慢的特点,密钥尺寸大,发展历史较短等特点。
7-10
数字签名采用了双重加密的方法来实现防伪、防赖。
其原理为:被发送文件用 SHA 编码加密产生 128 bit 的数字摘要。然后发送方用自己的私用密钥对摘要再加密,这就形成了数字签名。将原文和加密的摘要同时传给对方。对方用发送方的公共密钥对摘要解密,同时对收到的文件用 SHA 编码加密产生又一摘要。将解密后的摘要和收到的文件在接收方重新加密产生的摘要相互对比。如两者一致,则说明传送过程中信息没有被破坏或篡改过。否则不然。
7-26
在教材上的图 7-18 中,假定在第一步,顾客发送报文给经销商时,误将报文发送到一个骗子处,而骗子就接着冒充经销商继续下面的步骤。试问在报文交互到第几个步骤时,顾客可以发送对方并不是真正的经销商?
顾客在第 ④ 步,用 CA 发布的公约鉴别 B 的证书时,即可发现 B 是骗子。
版权声明:本文标题:JMU软件20 计算机网络复习 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1725918922h892661.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论