计算机网络
This is my study note of network.
因特网概述
- 网络
1
由若干个结点和连接这些结点的链路组成。
- 互联网
1
通过网络将多个路由器互连起来,形成互联网。
- 因特网
1
世界上最大的互联网。
三种交换方式
交换是按照某种方式动态分配传输线路的资源。
- 电路交换(circuit Switching)
1
2
3
4
5
6
7
8
9
10
11
12通过硬件线路进行交换的方式,叫做电路交换。
优点:
1.通信时延小
2.有序传输
3.没有冲突
4.使用范围广
5.控制简单
缺点:
1.建立时间长
2.线路独占,使用效率低
3.灵活性差
4.难以规格化 - 报文交换
1
2
3
4
5
6
7
8
9
10对报文大小没有限制,此时要求交换结点有较大的缓存空间。
优点:
1.无需建立连接
2.动态分配线路
3.提高线路可靠性
4.提高线路利用率
5.提供多目标服务
缺点:
1.引起转发延时
2.需要较大的缓存空间 - 分组交换
1
2
3
4
5
6
7
8
9将大的数据报文分成一个个小的,等大的组,组中的首部具有十分重要的作用,即指明传输数据的目的地址,根据首部地址进行查表转发。
优点:
1.无需建立连接
2.线路利用率高
3.简化管理
4.减少出错概率
缺点:
1.引起转发时延
2.需要传输额外信息量
计算机网络的定义及分类
定义:一些互联的、自治的计算机的集合。
- 互联:计算机之间可以通过有线或者无线进行数据通信。
- 自治:独立的计算机,有自己的硬件和软件,可以单独运行使用。
- 集合:至少两个计算机
分类:
- 按交换技术分类
1
2
31.电路交换网络
2.报文交换网络
3.分组交换网络 - 按使用者进行分类
1
21.公用网
2.专用网 - 按传输介质分类
1
21.有线网络
2.无线网络 - 按覆盖范围分类
1
2
3
41.广域网WAN
2.城域网MAN
3.局域网LAN
4.个域网PAN
性能指标
- 时延带宽积
1
时延带宽积 = 传播实验×带宽
- 利用率
1
2
3
4
5
6
7
81.信道利用率 表示信道有百分之几的时间是被利用的
2.网络利用率,全网络信道利用率的加权平均
信道利用率并非越高越好,会增加时延:
D0表示空闲时的时延,D表示当前网络的时延,利用率为U:
D = D0/(1-U)
当利用率达到百分之50时,时延就要加倍
当利用率达到百分之50以上时,时延急剧增大
当利用率为百分百时,时延趋于无穷大 - 丢包率
1
2
3
4丢失的分组数量与总分组数量的比值
丢失有两种情况:
1.传输过程中出现误码
2.分组到达队列已满的分组交换机时被丢弃,通信量较大时造成网络拥堵
计算机网络结构
- OSI体系结构
- TCP/IP体系结构
1 | 数据链路层 + 物理层 = 网络接口层 |
- 原理体系结构
专业术语
- 实体(任何可发送或接收信息的硬件或软件进程)
- 对等实体(同一层次的实体)
- 协议(控制两个对等实体进行逻辑通信的集合)
1
2
3语法:交换信息的格式
语义:通信双方所要完成的操作
同步:通信双发的时序关系
物理层
基本概念
- 分类
1
2
3
4
5
6
7
8
91.导引型传输媒体
双绞线
同轴电缆
光纤
2.非引导型传输媒体
微波通信
红外线
可见光
无线电波 - 主要任务
物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务。
1 | 机械特性: |
传输方式
- 串行传输
- 并行传输
- 同步传输
1
2外同步:在收发双方之间添加一条单独的时钟信号线
内同步:发送端将时钟同步信号编码发送到数据中一起传输 - 异步传输
1
分起始位和结束位。
- 单项通信
- 双向交替通信
- 双向同时通信
编码与调制
- 码元
1
在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形。
- 常用编码
1
2
3
4不归零编码:存在同步问题
归零编码(效率低):分正电平、零电平、负电平。
曼特斯特编码。
差分曼特斯特编码。 - 信道的极限容量
1
2
3
4奈氏准则:在假定的理想条件下,为了避免码间串扰,码元传输速率是有上限的。
理想低通信道的最高码元传输速率为:2W Baud
理想带通信道的最高码元传输速率为:W Baud
香农公式:带宽受限且有高斯白噪声干扰的信道的极限信息传输速率。 - c:信道的极限信息传输速率
- w:信道带宽
- s:信道内所传信号的平均功率
- N:信道内的高斯噪声功率
数据链路层
- 链路
1
一个结点到相邻结点的一段物理线路,中间没有其他任何交换结点。
- 数据链路数据链路层三个问题:
1
把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
- 封装成帧考虑到差错控制等多种因素,每一个数据链路层都规定了帧的数据部分长度上限,即最大传送单元MTU。
1
2
3
4
51.帧头和帧尾中包含重要的控制信息
2.帧头和帧尾的作用之一就是帧定界
3.透明传输:是指数据链路层对上层交付的传输数据没有任何限制
面向字节的物理链路使用字节填充,实现透明传输
面向比特的物理链路使用比特填充的方式实现透明传输 - 差错检测
1
2
3
4
5
6发送方发送帧之前,基于待发送的数据和检错算法计算出检错码,并封装在帧尾。
· 奇偶校验
· 循环冗余校验
1. 收发双方约定好一个生成多项式G(x)
2.发送方基于待发送的数据和生成多项式计算出差错检测码。将其加到代传输数据后面一起传输
3.接收方通过生成多项式计算是否生成误码 - 可靠传输
1
接收方接收到误码,则丢弃该帧。如果是不可靠传输,则丢弃后无需考虑其他问题,可靠传输还需要考虑其他处理。
停止-等待协议SW(Stop-and-Wait)
1 | 接收方收不到数据分组,就不会发送ACK或NAK,如果不采取其他措施,发送方会一直处于等待状态。 |
- 如果需要判断所受到的数据是否重复,要对数据进行分组编号。由于停止-等待协议的停等特性,只需要一个比特编号就够,即0和1。为了判断受到的ACK是否重复,也需要对收到的ACK分组进行编号,所用比特数量因与数据分组所用比特数量一致。
回退N帧协议GBN
- 采用N个比特给分组编序号,0~N
- 发送窗口取值大于1,小于等于2^N-1,超出最大值时会导致无法分辨新旧数据数组
- 接收窗口尺寸取值为1
如图,当数据分组5的检错码发现了错误,丢弃分组5的数据,此时对比分组6和接收方分组当前序号5,发现不匹配,则丢弃剩余分组,消息重传。
选择重传协议SR
回退N帧协议的接收窗口尺寸只能为1,接收方因此只能按序接收,效率低,此时为了进一步提升性能,可以设法只重传误码的数据分组,此时接收窗口不为
点对点协议PPP
PPP由三部分组成:
- 对各种协议数据报的封装方法
- 链路控制协议LCP
- 一套网络控制协议NCPs
透明传输——面向比特的同步链路采用比特0的比特填充法 - 发送方:对数据部分扫描,只要发现有5个连续的1,立即填充一个0。
- 接收方,对数据部分扫描,只要发现有5个连续的1,删除其后的一个0。
媒体控制
媒体接入控制
- 静态划分信道
预先分配好信道,利用率低,通常在无线网络的物理层使用。
1 | 1.频分多址FDM |
- 动态接入控制
1
2
3
41.受控接入
集中控制
分散控制
2.随机接入
CSMA/CD(碰撞检测)协议
- 主机最多经过2τ就能检测到是否发生碰撞
- 以太网的端到端往返传播时延2τ称为争用期或碰撞期
- 传播时延越长,碰撞机率越大,因此以太网不能连接太多的主机,使用的总线不能太长。
- 以太网规定最小帧长为64字节,即512比特(512比特时间为争用期)
- 如果发送的数据非常少,那么必须要加入一些填充字节
- 最小帧长确保了主机可在帧发送完成前检测到该帧是否发生碰撞
- 最大帧长也要限制,否则会导致总线总是忙碌
截断二进制指数退避算法:
信道利用率:
S = T / (T+τ)
CSMA/CA(碰撞避免)协议
- 不能使用碰撞检测CD,因为信号强度的动态范围非常大,无线网卡受到的信号往往会远小于发送信号的强度,对硬件要求很高。
- 存在隐蔽站问题
即A、C同时给B发送信号发生碰撞,但是A、C都收不到碰撞信号。
- MAC层定义了两种不同的媒体接入控制方式:
1
21.分布式协调功能DCF,无中心控制站,每个站点默认使用协议争用信道发送权
2.点协调功能PCF,使用集中控制的接入算法 - 帧间间隔
1
2
3
4所有的站点必须在持有检测到信道空闲一段指定时间后才能发送帧,这段时间称为IFS。IFS的长短由优先级决定。
分类:
·短帧间间隔SIFS,最短的帧间间隔
·DCF帧间间隔DIFS - 以下情况必须使用退避算法:
1
2
31.在发送数据帧之间检测到信道处于忙状态
2.在每一次重传一个数据帧时
3.在每一次成功发送后要连续发送下一个帧时 - 信道预约和虚拟载波监听站点只要监听到RTS帧、CTS帧或数据帧的任何一个,就知道信道被占用的持续时间,虚拟载波监听机制能减少隐蔽站的碰撞问题。
1
21.请求发送RTS
2.允许发送CTS
MAC地址、IP地址、ARP协议
- MAC地址(数据链路层)
是以太网的MAC子层所使用的地址。MAC地址一般固化在网卡的电可擦可编程只读存储器EEPROM中,硬件地址。MAC是对网络上各个接口的唯一标识,不是对网络各设备的唯一标识。 - IP地址(网络层)
是TCP/IP体系结构网际层所使用的地址。数据包传输过程中IP、MAC变化:1
2网络编号:标识因特网上数以百万计的网络
主机编号:标识同一网络上的不同主机 - ARP协议
是TCP/IP体系结构网际层所使用的地址,通过IP地址获取设备的MAC地址。主机中存储IP地址和MAC地址的对应关系。当存储表中没有找到对应IP,则会发送广播报文,对应IP主机接收到报文,返回需要对应的IP、MAC。
集线器和交换机
区别
- 使用集线器的以太网在逻辑上仍是一个总线网,各站点共享资源,使用的还是CSMA/CD协议。
- 集线器只工作在物理层
- 集线器一般都有少量的容错能力和网络管理能力
- 交换机可根据交换表将信息转发到对应主机
- 集线器受到碰撞帧后会发给各个主机,交换机会将多个帧缓存,然后发送到对应主机。
以太网自学习和帧转发流程
以太网交换机受到帧后,在帧交换表中查找帧的目的MAC地址对应的接口号,然后通过该接口转发帧。通过自学习算法建立以太网表。
以太网交换机生成树STP
添加冗余链路可以提高以太网的可靠性,当然这也有些负面效应——形成网络环路。网络环路会引起如下问题:
- 广播风暴
- 主机受到重复的广播帧
- 交换机的帧交换表震荡
虚拟局域网VLAN
网络中会频繁出现广播信息:
- TCP/IP协议栈中很多协议:虚拟局域网VLAN是一种将局域网内的设备划分成与物理位置无关的逻辑组技术,这些逻辑组具有某些共同的需求。
1
2
31.地址解析协议ARP
2.路由信息协议RIP
3.动态主机配置协议DHCP
同一个VLAN下可以互相访问,不同VLAN下无法互相访问。
- 实现机制
端口:1
2
3
4
5
61.Access
一般用于用户计算机连接,只能属于一个VLAN,PVID值与端口所属的VLAN的ID相同,根据端口对“未打标签”,即插入4字节的VLAN标志字段,与PVID取值相同,若帧中VID与端口PVID相等,则“去标签”并转发该帧。
2.Trunk
一般用于交换机之间或交换机路由器之间的互连。可以属于多个VLAN,用户可以设置Trunk口的PVID值。对VID等于PVID的帧去标签再转发,根据端口对“未打标签”,即插入4字节的VLAN标志字段,与PVID取值相同。
3.Hybrid
一般用于交换机之间或交换机路由器之间的互连,也可以用户计算机与交换机相连。根据端口对“未打标签”,即插入4字节的VLAN标志字段,与PVID取值相同,若帧中VID与端口PVID相等,则“去标签”并转发该帧。
网络层
网络层的作用主要是实现网络互连。
网络层服务
- 面向连接的虚电路服务
1
2
3
4
51.可靠通信由网络服务
2.建立网络层连接-虚电路VC
3.通信双方沿着已经建立的虚电路发送分组
4.目的主机地址仅在连接阶段使用,之后每个分组的首部都需要携带一条虚电路的编号
5.通信结束后要释放建立的电路 - 无连接的数据包服务
1
2
3
4
51.可靠通信由用户主机来保证
2.不需要建立网络层连接
3.每个分组走不同路径
4.分组首部必须携带目的主机的完整地址
5.分组可能误码、丢失、重复和失序
IPv4
1 | 因特网上每一台主机的每一个接口分配一个再全世界范围内唯一的32比特的标识符。 |
IPv4分类编址
- A类地址
1
8位网络,24位主机
- B类地址
1
16位网络,16位主机
- C类地址
1
24位网络,8位主机
- D类地址
1
多播地址
- E类地址以下三种情况不能指派给主机或者路由器接口:
1
保留为今后使用
- A类网络号0和127
- 主机号为“全0”,这是网络地址
- 主机号为“全1”,这是广播地址
划分子网的IPv4地址
32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特做为子网号:
无分类编址
解决IP地址紧张的问题。CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念。CIDR使用“斜线记法”,在IPv4地址后面加上斜线“/”,在斜线后面写上网络前缀的比特数量。
路由聚合(构造超网)
- 网络前缀越长,地址快越小,路由越具体
- 路由查找表转发分组时有多条线路可选,则选择网络前缀最长的那条,称为最长前缀匹配。
IPv4地址的应用规划
- 定长的子网掩码FLSM
1
2使用同一个子网掩码来划分子网
每个子网所分配的IP地址数量相同,造成IP地址浪费 - 变长的子网掩码VLSM
1
2使用不同的子网掩码来划分子网
每个子网所分配的IP地址数量可以不同,尽可能减少对IP地址的浪费
IP数据报的发送和转发过程
- 如何确定目的主机是否与自己在同一网络中呢?
IP地址与掩码相与,目的地址与掩码相与,结果相同时则在同一网络,不同时则在不同网络。 - 主机C如何知道路由器R的存在
指定接口做为主机的默认网关,当通信时会将数据发送给默认网关, - 路由器受到IP数据报后如何转发
1
21.检查IP数据报首部是否出错,若出错则丢弃该IP数据并通告源主机,没出错则转发
2.根据IP数据报的目的地址在路由器表中查找匹配条目,若找到匹配条目,则转发给条目中指示下一跳
静态路由配置
静态路由配置指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表。
- 这种人工配置方式简单、开销小,但不能及时适应网络状态的变化
- 一般只在小规模网络中使用
使用静态路由配置可能出现以下导致产生路由环路的错误(可加入黑洞路由解决) - 配置错误
- 聚合了不存在的网络
- 网络故障
路由选择协议
- 静态路由选择(人工配置)
- 动态路由选择(自动获取路由信息)
1
2
3
4特点:
1.自适应
2.分布式
3.分层次
路由信息协议RIP(内部网关协议IGP)
是内部网关协议IGP中最先得到广泛使用的协议之一。RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录,
RIP使用跳数做为度量来衡量到达目的网络的距离。
- 路由器到直连网络的距离定义为1
- 路由器到非直连网络的距离定义为所经过的路由器加1
- 允许一个路径最多15各路由器,16相当于不可达。
RIP交换三要点:
- 和谁交换信息(相邻路由器)
- 交换什么信息(路由表)
- 何时交换信息(按周期交换)
RIP存在问题:
- 坏消息传播慢
1
2
3
4解决方法:
1.限制最大距离
2.当路由表发生变化时立即发送更新报文,不再定时发送
3.让路由器记录受到某些特定路由信息的接口,而不是让同一路由信息再通过此接口反向传送
开放最短路径优先OSPF基本原理(内部网关协议IGP)
- 开放表明OSPF不是受某一家厂商控制,而是空开发表的
- 最短路径优先是因为使用了Dijkstra提出的最短路径算法SPF
- OSPF时基于链路状态的,不是基于距离向量的
- OSPF采用SPF计算路由,不会产生路由环路
- OSPF不限制网络规模,收敛速度快
OSPF相邻的路由器之间采用交互问候分组,建立和维护邻居关系。
- Hello分组分装在IP数据包中,发往组波地址224.0.0.5
- 发送周期为10秒
- 40秒尾受到邻居路由器的Hello分组,则认为不可达
1
每个路由器都会建立一个邻居表,如下:
使用OSPF的每个路由器都会产生链路状态通告LSA。
- 直连网络的链路状态信息
- 邻居路由器的链路状态信息五组分组类型:
1
使用OSPF的每一个路由器都有一个链路状态数据库LSDB,用于存储LSA。
- 问候分组
- 数据库描述分组
- 链路状态请求分组
- 链路状态更新分组
- 链路状态确认分组
OSPF的基本工作过程:
为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域。
- 区域内路由器IR:R1, R2, R8, R9
- 区域边界路由器ABR: R3, R4, R7
- 主干路由器BBR:R3,R4,R5,R6,R7
- 自治系统边界路由器ASBR:R6
边界网关协议BGP的基本工作原理(外部网关协议BGP)
- 不同自治系统中,度量路由的“代价”可能不同。
- 自治系统之间的路由选择必须考虑相关策略。
- 在配置BGP时,每个自治系统的管理员要选择至少一个路由器做为该自治系统的“BGP发言人”
1
2
31.在TCP连接上交换BGP报文以建立BGP会话
2.利用BGP会话交换路由信息
3.使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站和对等站
四种报文:
- OPEN
1
用来与相邻的另一个BGP发言人建立连接
- UPDATE
1
用来通告某一路由的信息,以及列出要撤销的多条路由
- KEEPALIVE
1
用来周期性地验证邻站的连通性
- notification
1
用来发送验证到的差错
IPV4数据报的首部格式
1 | 标识、标志、片偏移三个字段共用于数据报分片。每产生一个数据报,计数器值加1,并将此值赋给标识字段,标志占3比特,DF位1标识不允许分片,0标识允许分片。 |
网际控制报文协议ICMP
- 终点不可达
1
当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
- 源点抑制
1
当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
- 时间超过
1
当路由器受到一个目的IP地址不是主机的IP数据报,会将生存时间TTL字段减1,若不为0,则转发出去,为0则丢弃,给源点发送时间超过报文。
- 参数问题
1
根据IP数据报首部字段,判断首部在传输过程中发现了误码,则丢弃,并向源点发送参数问题报文。
- 改变路由以下情况不应该发送ICMP报文:
1
路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
- 对具有多播地址的数据报都不发送ICMP差错报告报文
- 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文