软考架构师(5)——数据通信与计算机网络
一:网络架构
1:基本理论
网络协议三要素:语法,语义,同步
总时延 = 传输时延 + 传播时延 + 处理时延 + 排队时延
2:层次架构
网络互连模型(OSI/RM七层模型):
物理层(比特bit):RJ45、CLOCK、IEEE802.3 (中继器又转发器[原理信号再生],集线器,不能隔离冲突域也不能隔离广播域)
数据链路(帧Frame):PPP、FR、HDLC、VLAN、MAC (网桥,交换机,可以隔离冲突域,不能隔离广播域)
网络层(包Packet 分组):IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器既可以隔离冲突域也可以隔离广播域)
传输层(段Segment):TCP、UDP、SPX(网路层以上的中间设备称网关)
会话层(会话协议数据单元SPDU):NFS、SQL、NETBIOS、RPC
表示层(表示协议数据单元PPDU):JPEG、MPEG、ASII
应用层(应用协议数据单元APDU):FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
3: 电路交换与分组交换
1:电路交换
两个用户要通信之前需要建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。
2:分组交换
每个分组都有首部和尾部,包含了源地址和目的地址等控制信息
总时延 = 排队时延 + 处理时延 + 传输时延 + 传播时延
二:物理层
物理层的特性:机械特性(规定连接所用的设备规格,接口形状)电气特性(信号电压的高低,)功能特性(电平代表的含义接口不见信号的用途,引脚功能)规程特性()
通信方式:单工通信,半双工通信,全双工通信
带通调制:模拟信号是连续的信号,数字信号是离散的信号。带通调制把数字信号转换为模拟信号。
调制:把数值信号转换为模拟信号
三:数据链路层
1:数据链路层的三个基本问题
封装成帧:将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
透明传输:字节填充转义字符——帧开始符:SOH,帧结束符:EOT
差错检测:循环冗余检测(CRC)
(1)编码
不归零编码:正电平为1,负电平为0
归零编码:正脉冲为1,负脉冲为0
曼切斯特编码:中心向上跳变为0,向下跳变为1
差分曼切斯特编码:中心始终跳变,边界跳变为0,边界不跳为1
(2)奇偶校检码
(3)循环冗余码
(4)海明码
2:信道分类:广播信道,点对点信道
3:信道复用技术
1:频分复用:占用不同的频率带宽资源
2:时分复用:在不同的时间占用相同的频率带宽资源
3:统计时分复用
4:波分复用:光的波分复用
5:码分复用:为每个用户分配 m bit 的码片,并且所有的码片正交
4:CSMA/CD表示 载波监听 多点接入/ 碰撞检测
多点接入 :主机以多点的方式连接到总线上。
载波监听 :每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。
碰撞检测 :在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。
争用期:记端到端的传播时延为t ,称2t为争用期。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
5:PPP协议:互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。
6:MAC地址:一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。
7:局域网:主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,可以按照网络拓扑结构对局域网进行分类为:星型网,环形网,总线网,以太网是星型拓扑结构
香农定理:C = W log2(1+S/N) b/s
奈氏准则:
编码与循环冗余码:
CSMA/CD
四:网络层
1:IP
1):ip数据报格式:
- 版本 : 有 4(IPv4)和 6(IPv6)两个值;
- 首部长度 : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为首部固定长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
- 区分服务 : 用来获得更好的服务,一般情况下不使用。
- 总长度 : 包括首部长度和数据部分长度。
- 生存时间 :TTL,它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL 为 0 时就丢弃数据报。
- 协议 :指出携带的数据应该上交给哪个协议进行处理,例如 ICMP、TCP、UDP 等。
- 首部检验和 :因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算的工作量。
- 标识 : 在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。
- 片偏移 : 和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节。
2):IP地址编址的划分:
分类编址:
子网划分:
IP 地址 ::= {< 网络号 >, < 子网号 >, < 主机号 >}
要使用子网,必须配置子网掩码。一个 B 类地址的默认子网掩码为 255.255.0.0
无分类编址CIDR:
IP 地址 ::= {< 网络前缀号 >, < 主机号 >}
特殊的IP地址:
本地广播地址:
多播地址:
私有IP地址:
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
IP数据报分片问题:
IPV6:
与IPV4相比,IPv4的IP地址长度是32位,而IPv6的IP地址长度为128位
IPv6的128位地址通常写成8组,每组为四个十六进制数的形式。比如:AD80:0000:0000:0000:ABAA:0000:00C2:0002 是一个合法的IPv6地址。这个地址比较长,看起来不方便也不易于书写。零压缩法可以用来缩减其长度。如果几个连续段位的值都是0,那么这些0就可以简单的以::来表示,上述地址就可写成AD80::ABAA:0000:00C2:0002。这里要注意的是只能简化连续的段位的0,其前后的0都要保留,比如AD80的最后的这个0,不能被简化。还有这个只能用一次,在上例中的ABAA后面的0000就不能再次简化。当然也可以在ABAA后面使用::,这样的话前面的12个0就不能压缩了。这个限制的目的是为了能准确还原被压缩的0,不然就无法确定每个::代表了多少个0。例如,下面是一些合法的IPv6地址:
CDCD:910A:2222:5498:8475:1111:3900:2020
1030::C9B4:FF12:48AA:1A2B
2000:0:0:0:0:0:0:1
同时前导的零可以省略,因此2001:0DB8:02de::0e13等价于2001:DB8:2de::e13。
一个IPv6地址可以将一个IPv4地址内嵌进去,并且写成IPv6形式和平常习惯的IPv4形式的混合体。IPv6有两种内嵌IPv4的方式:IPv4映像地址和IPv4兼容地址。
2:地址解析协议ARP
作用:根据IP地址获取物理地址MAC
过程:
1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址
3:当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
注意:广播(255.255.255.255)发送ARP请求,单播发送ARP响应。
3:控制报文协议ICMP
ICMP封装在IP数据报中,可分为
差错控制报文:终点不可达,时间超过,参数问题,改变路由
询问报文:
应用:ping 和Traceroute
4:路由协议
路由器从功能上可以划分为:路有选择和分组转发
路由协议可分为:
内部网关协议(IGP):
RIP(基于距离向量的路由选择协议)
距离是指跳数,直接相连的路由器跳数为 1。跳数最多为 15,超过 15 表示不可达。
①仅和相邻路由器交换信息。
②路由器交换的为自己现在的路由表(当前本路由器所知道的全部信息)
③按固定的时间间隔交换路由信息
OSPF(开放最短路径优先)
- 使用了 Dijkstra 提出的最短路径算法
- 向本自治系统中的所有路由器发送信息,这种方法是洪泛法。
- 发送的信息就是与相邻路由器的链路状态,链路状态包括与哪些路由器相连以及链路的度量,度量用费用、距离、时延、带宽等来表示。
- 只有当链路状态发生变化时,路由器才会发送信息。
外部网关协议(EGP)
BGP(边界网关协议)
互联网规模大,BGP智能找一条比较好的路由,而不是最佳路由。每个 AS 都必须配置 BGP 发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息。
五:传输层
1:UDP
首部格式:首部字段只有 8 个字节,包括源端口、目的端口、长度、检验和。12 字节的伪首部是为了计算检验和临时添加的。
2:TCP
1):首部格式:
- 确认号 :期望收到的下一个报文段的序号。例如 B 正确收到 A 发送来的一个报文段,序号为 501,携带的数据长度为 200 字节,因此 B 期望下一个报文段的序号为 701,B 发送给 A 的确认报文段中确认号就为 701。
- 数据偏移 :指的是数据部分距离报文段起始处的偏移量,实际上指的是首部的长度。
- 确认 ACK :当 ACK=1 时确认号字段有效,否则无效。TCP 规定,在连接建立后所有传送的报文段都必须把 ACK 置 1。
- 同步 SYN :在连接建立时用来同步序号。当 SYN=1,ACK=0 时表示这是一个连接请求报文段。若对方同意建立连接,则响应报文中 SYN=1,ACK=1。
- 终止 FIN :用来释放一个连接,当 FIN=1 时,表示此报文段的发送方的数据已发送完毕,并要求释放连接。
2):建立连接:TCP三次握手与四次挥手
TCP 可靠传输
TCP 使用超时重传来实现可靠传输:如果一个已经发送的报文段在超时时间内没有收到确认,那么就重传这个报文段。
TCP 滑动窗口
发送方和接收方各有一个窗口,接收方通过 TCP 报文段中的窗口字段告诉发送方自己的窗口大小,发送方根据这个值和其它信息设置自己的窗口大小。
TCP 流量控制
流量控制是为了控制发送方发送速率,保证接收方来得及接收。
TCP 拥塞控制
如果网络出现拥塞,分组将会丢失,此时发送方会继续重传,从而导致网络拥塞程度更高。
流量控制是限制发送方数据流量为了让接收方能来得及接收,而拥塞控制是为了降低整个网络的拥塞程度。
流量控制方式有:注意:滑动窗口 = 发送窗口+ 接收窗口
1,停止等待协议:W发=1,W收 = 1
2,滑动窗口协议(连续ARQ)
2.1:后退N帧协议:W发>1 ,W收 = 1 ,1<Wt<=2^n -1
2.2 : 选择重传协议:W发>1,W收>1,接收窗口为序列号范围的一半,Wt = WR = 2^(n-1)
发送窗口实际大小 = min(rwnd 接收,cwnd拥塞)
TCP 主要通过四个算法来进行拥塞控制:
慢开始、拥塞避免、快重传、快恢复。
发送方需要维护一个叫做拥塞窗口(cwnd)的状态变量,注意拥塞窗口与发送方窗口的区别:拥塞窗口只是一个状态变量,实际决定发送方能发送多少数据的是发送方窗口。
为了便于讨论,做如下假设:
-
接收方有足够大的接收缓存,因此不会发生流量控制;
-
虽然 TCP 的窗口基于字节,但是这里设窗口的大小单位为报文段。
3:UDP与TCP的区别
TCP对应的协议:
(1) FTP:定义了文件传输协议,使用21端口。
(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。
(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。
UDP对应的协议:
(1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
(2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
(3) TFTP(Trival File Transfer Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。
六:应用层
1:域名系统DNS:提供主机名和IP地址之间的转换
域名具有层次结构:根域名,顶级域名,二级域名
2):动态主机配置DHCP
提供了即插即用的连网方式,用户不再需要手动配置 IP 地址等信息。
3):电子邮件协议:
简单邮件传送协议SMTP:只能发送ASCII码,互联网邮件扩充MIME可以发送二进制文件
POP3邮局协议
4):ftp文件传输协议
它需要两个连接来传送一个文件:
-
控制连接:服务器打开端口号 21 等待客户端的连接,客户端主动建立连接后,使用这个连接将客户端的命令传送给服务器,并传回服务器的应答。
-
数据连接:使用20端口,用来传送一个文件数据。
在浏览器中输入www.baidu.com后执行的全部过程
1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
2、在客户端的传输层(添加TCP头),把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
3、客户端的网络层(添加IP头)不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
4、客户端的链路层(添加MAC头),包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。
网络存储技术
主流的网络存储技术主要有三种,分别是
直接附加存储(Direct Attached Storage,DAS)
存储操作依赖于服务器,不带有任何存储操作系统
DAS的适用环境为:
(1)服务器在地理分布上很分散,通过SAN或NAS在它们之间进行互连非常困难时;
(2)存储系统必须被直接连接到应用服务器(例如,Microsoft Cluster Server或某些数据库使用的“原始分区”)上时;
(3)包括许多数据库应用和应用服务器在内的应用,它们需要直接连接到存储器上时。
网络附加存储(Network Attached Storage,NAS)
类似于一个专用的文件服务器,它去掉了通用服务器的大多数计算功能,而仅仅提供文件系统功能,从而降低了设备的成本
存储区域网络(Storage Area Network,SAN)
通过专用交换机将磁盘阵列与服务器连接起来的高速专用子网。它没有采用文件共享存取方式,而是采用块(block)级别存储。
七:网络规划与设计
八:物联网
物联网可以分为三个层次:感知层、网络层和应用层。
感知层:用于识别物体、采集信息,就好比人通过视觉、嗅觉、听觉、触觉来感受事物一样,采集各类信息。如:二维码、RFID、摄像头、传感器。
网络层:传递信息和处理信息。通信网与互联网的融合网络、网络管理中心、信息中心和智能处理中心等。
应用层:解决信息处理和人机交互的问题。
九:计算专题
例一:
若两路由器间的频率带宽为8KHZ,信噪比为30dB,该链路实际数据传输速率约为理论最大数据传输速率的50%,则该链路的实际数据传输速率是_______
解:极限传输速率 = Wlog2(1+S/N) ——带宽受限有高斯白噪声
信噪比 = 10 log10(S/N)
故实际 = 50% * W log2(1+S/N) = 0.5 * 8K * log2(1001)= 40Kbps
补:极限传输率 = 2W log2V ——理想低通
例二:时延与信道利用率
主机甲 采用 停止等待协议 向 主机乙 发送数据,数据传输速率是 3k bps,单向传播延时是200ms,忽略确认帧传输时延,当信道利用率等于40%时,数据帧长度_______
解:信道利用率 = 发送时延/ 传输周期
传输周期 = 发送时延 + 2 * 传输时延
故40% = (x/3kbps)/ ((x/3kbps)+2 * 200ms) => x = 800bit
补:信道吞吐率 = 信道利用率 * 发送速率
最小帧长 = 总线传播时延 * 数据传输率 * 2,即帧的传输时延至少要2倍于线路的传播时延
故 => 发送帧数/ 发送速率 = 2 * (线路长度 / 传播速度)
例三:
若hub再生比特流的过程中会产生1.535us延时,信号传播速度为200m/us ,不考虑前导码,则H3 与 H4 之间的最远距离是_______
以太网规定最小帧长64B,hub为100Base集线器,为V传输 = 100M bps,所以64 B / v传输 = 2 (l /v传输 + 1.535) 得 l = 205 m
例四: