2023年11月20日
我发现我最近疯狂放屁,不知道咋回事,难道是最近吃的东西不太好,或者是天气的缘故?
应该是这样的,不然我身体前一段时间体检的时候好好的,怎么会突然开始就疯狂放屁了。看来这每天吃的东西想当关键,不能在胡乱吃了。
明天就要面试了,说实话,还是有一点点小小的紧张,毕竟这个工作对我来说,也是相当的不错,离家近,工资还高。
如果入职的话,相当不错。
今天是面试前的最后一天,我居然在网上找到了俩个同岗位的人。
人在面对这种俩面性事情的时候,不管哪种情况的发生,都会又开心又难过。
我开心的是总算找到有和我同岗位的人了,至少找到就说明了这些人不可能是关系户,不会是那种子弟,至少我们还是有着相互竞争的同一平台,不会是那种你就想都不用想了,已经注定是人家的囊中之物。
难过的是居然还是有人要面试,那就是说明我这个岗位放弃的人其实并没有多少,估计最多一俩个,甚至一俩个都没有,只能到时候努力面试了。
而且这还是面试前的最后一天,我感觉我有点炸裂,难以接受这个事实,如果说早一点发现这么多人,我就还能接受,但是最后一天,突然蹦出来这么多人。唉,管他呢,到时候再看吧。
今天还认真的复习了昨天没有复习完的,接上。
三、数据链路层
1.功能(要解决的问题)
成帧(Framing)
将比特流划分成“帧”的主要目的是为了检测和纠正物理层在比特传输中可能出现的错误,数据链路层功能需借助“帧”的各个域来实现
差错控制(ErrorControl)
处理传输中出现的差错,如位错误、丢失等
流量控制(FlowControl)
确保发送方的发送速率,不大于接收方的处理速率,避免接收缓冲区溢出
2.数据链路层提供的服务
1.无确认无连接服务(Unacknowledgedconnectionless)
接收方不对收到的帧进行确认
适用场景:误码率低的可靠信道;实时通信;
网络实例:以太网
2.有确认无连接服务(Acknowledgedconnectionless)
每一帧都得到单独的确认
适用场景:不可靠的信道(无线信道)
网络实例:802.11
3.有确认有连接服务(Acknowledgedconnection-oriented)
适用场景:长延迟的不可靠信道
3.成帧(Framing)
3.1要解决的关键问题:如何标识一个帧的开始?
接收方必须能从物理层接收的比特流中明确区分出一帧的开始和结束,这个问题被称为帧同步或帧定界
关键:选择何种定界符?定界符出现在数据部分如何处理?
3.2成帧(framing)的方式
①带比特填充的定界符法
定界符:两个0比特之间,连续6个1比特,即01111110,0x7E
发送方检查有效载荷:若在有效载荷中出现连续5个1比特,则直接插入1个0比特
接收方的处理:
若出现连续5个1比特,
若下一比特为0,则为有效载荷,直接丢弃0比特;
若下一比特为1,则连同后一比特的0,构成定界符,一帧结束
②物理层编码违例
核心思想:选择的定界符不会在数据部分出现
4B/5B编码方案
4比特数据映射成5比特编码,剩余的一半码字(16个码字)未使用,可以用做帧定界符
例如:00110组合不包含在4B/5B编码中,可做帧定界符
前导码
存在很长的前导码(preamble),可以用作定界符
例如:传统以太网、802.11
曼切斯特编码/差分曼切斯特编码
正常的信号在周期中间有跳变,持续的高电平(或低电平)为违例码,可以用作定界符
例如:802.5令牌环网
4.差错控制
4.1背景
链路层存在的一个问题:信道的噪声导致数据传输问题
差错(incorrect):数据发生错误
丢失(lost):接收方未收到
乱序(outoforder):先发后到,后发先到
重复(repeatedlydelivery):一次发送,多次接收
解决方案:差错检测与纠正、确认重传
确认:接收方校验数据(差错校验),并给发送方应答,防止差错
定时器:发送方启动定时器,防止丢失
顺序号:接收方检查序号,防止乱序递交、重复递交
4.2差错检验与纠正
目标
保证一定差错检测和纠错能力的前提下,如何减少冗余信息量?
考虑的问题
信道的特征和传输需求
冗余信息的计算方法、携带的冗余信息量
计算的复杂度等
两种主要策略
检错码(error-detectingcode)
在被发送的数据块中,包含一些冗余信息,但这些信息只能使接收方推断是否发生错误但不能推断哪位发生错误,接收方可以请求发送方重传数据主要用在高可靠、误码率较低的信道上,例如光纤链路偶尔发生的差错,可以通过重传解决差错问题
纠错码(error-correctingcode)
发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,并能纠正错误(定位出错的位置)主要用于错误发生比较频繁的信道上,如无线链路也经常用于物理层,以及更高层(例如,实时流媒体应用和内容分发)使用纠错码的技术通常称为前向纠错(FEC,ForwardErrorCorrection)
常用的检错码包括:
①奇偶检验(ParityCheck)
1位奇偶校验是最简单、最基础的检错码。
1位奇偶校验:增加1位校验位,可以检查奇数位错误。
②校验和(Checksum)
主要用于TCP/IP体系中的网络层和传输层
③循环冗余校验(CyclicRedundancyCheck,CRC)
数据链路层广泛使用的校验方法
CRC校验码计算方法
设原始数据D为k位二进制位模式
如果要产生n位CRC校验码,事先选定一个n+1位二进制位模式G(称为生成多项式,收发双方提前商定),G的最高位为1
将原始数据D乘以2^n(相当于在D后面添加n个0),产生k+n位二进制位模式,用G对该位模式做模2除,得到余数R(n位,不足n位前面用0补齐)即为CRC校验码
CRC校验码计算示例
D=1010001101
n=5
G=110101或G=x5+x4+x2+1
R=01110
实际传输数据:101000110101110
④汉明码
目标:以奇偶校验为基础,找到出错位置,提供1位纠错能力
给定n位待发送的数据,首先确定校验位的个数k(根据2^k≥k+n+1)
确定校验位在码流中的位置,2^i,i=0,1,2,……,得到校验位P_1,P_2,P_4,P_8,……
确定分组,即每个校验位分别负责哪些数据位
P_1负责位置号的二进制符合XXXX1形式的数据位,即1,3,5,7,9,……
P_2负责位置号的二进制符合XXX1X形式的数据位,即2,3,6,7,10,……
P_3负责位置号的二进制符合XX1XX形式的数据位,即4,5,6,7,12,13,14,15,……
基于偶校验确定每组的校验位(0或1)
注:汉明码是采用奇偶校验的码。它采用了一种非常巧妙的方式,把这串数字分了组,通过分组校验来确定哪一位出现了错误。
实际的海明码编码的过程也并不复杂,我们通过用不同过的校验位,去匹配多个不同的数据组,确保任何一个数据位出错,都会产生一个多个校验码位出错的唯一组合。这样,在出错的时候,我们就可以反过来找到出错的数据位,并纠正过来。当只有一个校验码位出错的时候,我们就知道实际出错的是校验码位了。
5.流量控制
链路层存在的另一个问题:接收方的处理速率
接收方的接收缓冲区溢出
解决方案
基于反馈(feedback-based)的流量控制
接收方反馈,发送方调整发送速率
基于速率(rate-based)的流量控制
发送方根据内建机制,自行限速
6.媒体接入控制MAC(MediumAccessControl)子层
数据链路层分为两个子层:
MAC子层:介质访问
LLC子层:承上启下(弱层)
6.1信道分配问题
①时分多址接入-TDMA
TDMA:timedivisionmultipleaccess
按顺序依次接入并使用信道
每个用户使用固定且相同长度的时隙
某时隙轮到某用户使用时,该用户没有数据要发送,则该时隙被闲置
例子:6-userLAN,1,3,4时隙有数据发送,2,5,6时隙被闲置
②频分多址接入-FDMA
FDMA:frequencydivisionmultipleaccess
信道总频带被划分为多个相同宽度的子频带
每个用户占用一个子频带,不管用户是否有数据发送
例子:6-userLAN,1,3,4频带有数据发送,2,5,6频带被闲置
6.2多路访问协议
6.2.1随机访问协议
特点:冲突不可避免
①ALOHA
纯ALOHA协议
原理:想发就发!
特点:
冲突:两个或以上的帧
随时可能冲突
冲突的帧完全破坏
破坏了的帧要重传
分隙ALOHA
分隙ALOHA是把时间分成时隙(时槽)
时隙的长度对应一帧的传输时间。
帧的发送必须在时隙的起点。
冲突只发生在时隙的起点
②载波侦听多路访问协议CSMA
特点:“先听后发”
改进ALOHA的侦听/发送策略分类
非持续式CSMA
1.特点
①经侦听,如果介质空闲,开始发送
②如果介质忙,则等待一个随机分布的时间,然后重复步骤①
2.好处
等待一个随机时间可以减少再次碰撞冲突的可能性
3.缺点
等待时间内介质上如果没有数据传送,这段时间是浪费的
持续式CSMA
p-持续式CSMA
1.特点
①经侦听,如介质空闲,那么以p的概率发送,以(1–p)的概率延迟一个时间单元发送
②如介质忙,持续侦听,一旦空闲重复①
③如果发送已推迟一个时间单元,再重复步骤①
1-持续式CSMA
1.特点
①经侦听,如介质空闲,则发送
②如介质忙,持续侦听,一旦空闲立即发送
③如果发生冲突,等待一个随机分布的时间再重复步骤①
2.好处:持续式的延迟时间要少于非持续式
3.主要问题:如果两个以上的站等待发送,一旦介质空闲就一定会发生冲突
4.注意
1-持续式是p-持续式的特例
6.2.2受控访问协议
特点:克服了冲突
①位图协议(预留协议)
竞争期:在自己的时槽内发送竞争比特
举手示意
资源预留
传输期:按序发送
明确的使用权,避免了冲突
②令牌传递
令牌:发送权限
令牌的运行:发送工作站去抓取,获得发送权
除了环,令牌也可以运行在其它拓扑上,如令牌总线
发送的帧需要目的站或发送站将其从共享信道上去除;防止无限循环
缺点:令牌的维护代价
③二进制倒计数协议
站点:编序号,序号长度相同
竞争期:有数据发送的站点从高序号到低序号排队,高者得到发送权
特点:高序号站点优先
6.2.3有限竞争协议
利用上述二者的优势
①自适应树搜索协议(AdaptiveTreeWalkProtocol)
在一次成功传输后的第一个竞争时隙,所有站点同时竞争。
如果只有一个站点申请,则获得信道。
否则在下一竞争时隙,有一半站点参与竞争(递归),下一时隙由另一半站点参与竞争
即所有站点构成一棵完全二叉树。
6.3虚拟局域网VLAN
广播域(BroadcastingDomain)
广播域是广播帧能够到达的范围;
缺省情况下,交换机所有端口同属于一个广播域,无法隔离广播域;
广播帧在广播域中传播,占用资源,降低性能,且具有安全隐患。
VLAN是一个在物理网络上根据用途,工作组、应用等来逻辑划分的局域网络,与用户的物理位置没有关系。
通过路由器或三层交换机进行VLAN间路由,实现VLAN间通信。
VLAN类型
基于端口的VLAN
基于MAC地址的VLAN
基于协议的VLAN
基于子网的VLAN
6.4无线局域网WLAN
无线局域网(WirelessLocalAreaNetwork,WLAN):指以无线信道作为传输介质的计算机局域网
基础架构模式(Infrastructure)
分布式系统(DS)
访问点(AP)
站点(STA)
基本服务集(BSS)
扩展服务集(ESS)
站点之间通信通过AP转发
自组织模式(Adhoc)
站点(STA)
独立基本服务集(IBSS)
站点之间直接通信
共享同一无线信道
无线局域网需要解决的问题
1.有限的无线频谱带宽资源
通道划分、空间重用
提高传输速率,解决传输问题
提高抗干扰能力和保密性
2.共享的无线信道
介质访问控制方法(CSMA/CA)
可靠性传输、安全性
3.组网模式管理
BSS构建、认证、关联
移动性支持(漫游)
睡眠管理(节能模式)
四、网络层
1.网络层概述
网络层在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。
2.网络层关键功能
路由(控制面)
选择数据报从源端到目的端的路径
核心:路由算法与协议
转发(数据面)
将数据报从路由器的输入接口传送到正确的输出接口
3.Internet网际协议
3.1IPv4协议及其相关技术
3.1.1基本概念
IPv4协议,网际协议版本4,一种无连接的协议,是互联网的核心,也是使用最广泛的网际协议版本,其后继版本为IPv6
internet协议执行两个基本功能
寻址(addressing)
分片(fragmentation)
3.1.2IPv4数据报格式
版本:4bit,表示采用的IP协议版本
首部长度:4bit,表示整个IP数据报首部的长度
区分服务:8bit,该字段一般情况下不使用
总长度:16bit,表示整个IP报文的长度,能表示的最大字节为2^16-1=65535字节
标识:16bit,IP软件通过计数器自动产生,每产生1个数据报计数器加1;在ip分片以后,用来标识同一片分片
标志:3bit,目前只有两位有意义。
MF,置1表示后面还有分片,置0表示这是数据报片的最后1个;
DF,不能分片标志,置0时表示允许分片
片偏移:13bit,表示IP分片后,相应的IP片在总的IP片的相对位置
生存时间TTL(TimeToLive):8bit,表示数据报在网络中的生命周期,用通过路由器的数量来计量,即跳数(每经过一个路由器会减1)
协议:8bit,标识上层协议(TCP/UDP/ICMP…)
首部校验和:16bit,对数据报首部进行校验,不包括数据部分
源地址:32bit,标识IP片的发送源IP地址
目的地址:32bit,标识IP片的目的地IP地址
选项:可扩充部分,具有可变长度,定义了安全性、严格源路由、松散源路由、记录路由、时间戳等选项
填充:用全0的填充字段补齐为4字节的整数倍
3.1.3数据报分片
分片原因
数据报长度大于传输链路的MTU
MTU(MaximumTransmissionUnit),最大传输单元
链路MTU
路径MTU(PathMTU)
分片策略
允许途中分片:根据下一跳链路的MTU实施分片
不允许途中分片:发出的数据报长度小于路径MTU(路径MTU发现机制)
重组策略
途中重组,实施难度太大
目的端重组(互联网采用的策略)
重组所需信息:原始数据报编号、分片偏移量、是否收集所有分片
IPv4分片策略
IPv4分组在传输途中可以多次分片
源端系统,中间路由器(可通过标志位设定是否允许路由器分片,DF标志位)
IPv4分片只在目的IP对应的目的端系统进行重组
IPv4分片、重组字段在基本IP头部
标识、标志、片偏移
IPv6分片机制有较大变化(见IPv6部分的介绍)
注:分组(packet)与帧(frame)的关系
3.1.4IP协议功能及报头字段总结
网络层基本功能
支持多跳寻路将IP数据报送达目的端:目的IP地址
表明发送端身份:源IP地址
根据IP头部协议类型,提交给不同上层协议处理:协议
其它相关问题
数据报长度大于传输链路的MTU的问题,通过分片机制解决:标识、标志、片偏移
防止循环转发浪费网络资源(路由错误、设备故障…),通过跳数限制解决:生存时间TTL
IP报头错误导致无效传输,通过头部机校验解决:首部校验和
3.2IP地址
3.2.1概述
IP地址,网络上的每一台主机(或路由器)的每一个接口都会分配一个全球唯一的32位的标识符
将IP地址划分为固定的类,每一类都由两个字段组成
网络号相同的这块连续IP地址空间称为地址的前缀,或网络前缀
IP地址共分为A、B、C、D、E五类,A类、B类、C类为单播地址
IP地址的书写采用点分十进制记法,其中每一段取值范围为0到255
IP特殊地址
3.2.1子网划分
子网划分(subnetting),在网络内部将一个网络块进行划分以供多个内部网络使用,对外仍是一个网络
子网(subnet),一个网络进行子网划分后得到的一系列结果网络称为子网
子网掩码(subnetmask),与IP地址一一对应,是32bit的二进制数,置1表示网络位,置0表示主机位
子网划分减少了IP地址的浪费、网络的组织更加灵活、便于维护和管理
3.2.3无类域间路由
将32位的IP地址划分为前后两个部分,并采用斜线记法,即在IP地址后加上“/”,然后再写上网络前缀所占位数
一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合(routeaggregation),也称为构成超网(supernet)
聚合技术在Internet中大量使用,它允许前缀重叠,数据包按具体路由的方向发送,即具有最少IP地址的最长匹配前缀
注:当路由器收到一个IP数据包时,它会将数据包的目的IP地址与自己本地路由表中的所有路由表进行逐位(Bit-By-Bit)对比,直到找到匹配度最长的条目,这就是最长前缀匹配机制。(路由比对之前会用相应路由的目的网络掩码进行逻辑与运算,再拿结果与路由路径比对)
3.3DHCP动态主机配置协议
DHCP:动态主机配置协议
当主机加入IP网络,允许主机从DHCP服务器动态获取IP地址
可以有效利用IP地址,方便移动主机的地址获取
工作模式:客户/服务器模式(C/S)
基于UDP工作,服务器运行在67号端口,客户端运行在68号端口
DHCP客户从UDP端口68以广播形式向服务器发送发现报文(DHCPDISCOVER)
DHCP服务器广播发出提供报文(DHCPOFFER)
DHCP客户从多个DHCP服务器中选择一个,并向其以广播形式发送DHCP请求报文(DHCPREQUEST)
被选择的DHCP服务器广播发送确认报文(DHCPACK)
3.4ARP地址解析协议
背景
网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址二获取的MAC地址的过程是由ARP(AddressResolutionProtocol)协议来实现的。
注:因为下层协议是通过MAC地址来确定各自身份的,所以下层发送必须要MAC地址
IP与MAC地址
ARP协议工作过程
A已知B的IP地址,需要获得B的MAC地址(物理地址)
如果A的ARP表中缓存有B的IP地址与MAC地址的映射关系,则直接从ARP表获取
如果A的ARP表中未缓存有B的IP地址与MAC地址的映射关系,则A广播包含B的IP地址的ARPquery分组
在局域网上的所有节点都可以接收到ARPquery
B接收到ARPquery分组后,将自己的MAC地址发送给A
A在ARP表中缓存B的IP地址和MAC地址的映射关系
超时时删除
路由到另一个局域网
A创建IP数据包(源为A、目的为E)
在源主机A的路由表中找到路由器R的IP地址223.1.1.4
A根据R的IP地址223.1.1.4,使用ARP协议获得R的MAC地址
A创建数据帧(目的地址为R的MAC地址)
数据帧中封装A到E的IP数据包
A发送数据帧,R接收数据帧
3.5网络地址转换(NAT)
定义
网络地址转换(NAT)用于解决IPv4地址不足的问题,是一种将私有(保留)地址转化为公有IP地址的转换技术
私有IP地址:
A类地址:10.0.0.0–10.255.255.255
B类地址:172.16.0.0–172.31.255.555
C类地址:192.168.0.0–192.168.255.255
NAT工作机制
出数据报:外出数据报用NATIP地址(全局),新port#替代源IP地址(私有),port#
NAT转换表:每个(源IP地址,port#)到(NATIP地址,新port#)映射项
入数据报:对每个入数据报的地址字段用存储在NAT表中的(源IP地址,port#)替代对应的(NATIP地址,新port#)
NAT根据不同的IP上层协议进行NAT表项管理
TCP,UDP,ICMP
传输层TCP/UDP拥有16-bit端口号字段
所以一个WAN侧地址可支持60,000个并行连接
NAT的优势
节省合法地址,减少地址冲突
灵活连接Interne
保护局域网的私密性
3.6ICMP:互联网控制报文协议
ICMP:互联网控制报文协议
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告
由主机和路由器用于网络层信息的通信
ICMP报文携带在IP数据报中:IP上层协议号为1
ICMP报文类型
ICMP差错报告报文
终点不可达:不可达主机、不可达网络,无效端口、协议
ICMP询问报文
回送请求/回答(ping使用)
ICMP报文格式
ICMP报文的前4个字节包含格式统一的三个字段:类型、代码、检验和
相邻的后四个字节内容与ICMP的报文类型有关
ICMP报文类型及功能
4.路由算法
路由算法须满足的特性:
正确性
简单性
鲁棒性
稳定性
公平性
有效性
根据路由算法是否随网络的通信量或拓扑自适应划分
静态路由选择策略(非自适应路由选择)
动态路由选择策略(自适应路由选择)
4.1距离向量路由
算法基本思想
每个节点周期性地向邻居发送它自己到某些节点的距离向量;
当节点x接收到来自邻居的新DV估计,它使用B-F方程更新其自己的DV:
Dx(y)←minv{c(x,v)+Dv(y)}foreachnodey∊N
上述过程迭代执行,Dx(y)收敛为实际最小费用dx(y)
距离向量算法特点:迭代的、分布式的
每次本地迭代由下列引起:本地链路费用改变、邻居更新报文
分布式:各节点依次计算,相互依赖
注:路由器只掌握物理相连的邻居以及链路费用
算法过程
路由器启动时初始化自己的路由表
初始路由表包含所有直接相连的网络路径,距离均为0
路由器周期性地向其相邻路由器广播自己知道的路由信息
相邻路由器可以根据收到的路由信息修改和刷新自己的路由表
路由器经过若干次更新后,最终都会知道到达所有网络的最短距离
所有的路由器都得到正确的路由选择信息时网络进入“收敛”(convergence)状态
特殊情况考虑
计数到无穷问题(TheCount-to-InfinityProblem)
好消息传播快,坏消息传播慢,是距离向量路由的一个主要缺点
4.2链路状态路由
注:所有路由器掌握完整的网络拓扑和链路费用信息
算法过程
链路状态(LinkState)路由可分为五个部分:
发现邻居,了解他们的网络地址;
设置到每个邻居的成本度量;
开销/度量/代价:
自动发现设置或人工配置
度量:带宽、跳数、延迟、负载、可靠性等
常用度量:链路带宽(反比)
例如:1-Gbps以太网的代价为1,100-Mbps以太网的代价为10
可选度量:延迟
发送一个echo包,另一端立即回送一个应答
通过测量往返时间RTT,可以获得一个合理的延迟估计值
构造一个分组,分组中包含刚收到的所有信息;
构造链路状态分组(linkstatepacket,LSP)
发送方标识
序列号
年龄
邻居列表
将此分组发送给其他的路由器;
每个LSP分组包含一个序列号,且递增
路由器记录所收到的所有(源路由器、序列号)对
当一个新分组到达时,路由器根据记录判断:
如果是新分组,洪泛广播
如果是重复分组,丢弃
如果是过时分组,拒绝
计算到其他路由器的最短路径。
Dijkstra算法示例
D(k):从计算节点到目的节点k当前路径代价
p(k):从计算节点到目的节点k的路径中k节点的前继节点
距离向量和链路状态算法比较
网络状态信息交换的范围
DV:邻居间交换
LS:全网扩散
网络状态信息的可靠性
DV:部分道听途说
LS:自己测量
4.3层次路由
产生原因
过于庞大的路由表存储、查找困难,路由信息交互开销高
现实情况:
地址分配往往是随机的,难以进行高效的地址聚合
每个网络的网络管理员有自己的管理方法和思路,并不希望每个路由器都干涉本网络内部的地址分配等问题
层次路由可以解决:
网络扩展性问题:当网络扩大时,控制路由表条目和路由表存储空间的增长
管理的自治问题:网络管理员可以控制和管理自己网络的路由
基本思路
互联网由大量不同的网络互连,每个管理机构控制的网络是自治的
自治系统(AS,AutonomousSystem)
一个管理机构控制之下的网络
一个AS内部通常使用相同的路由算法/路由协议,使用统一的路由度量(跳数、带宽、时延…)
不同的AS可以使用不同的路由算法/路由协议
每个AS有一个全球唯一的ID号:ASID
自治系统内的还可以进一步划分层次:私有自治系统或区域
效果
4.4广播路由
广播(Broadcasting):源主机同时给全部目标地址发送同一个数据包
实现方法
①给每个主机单独发送一个数据包
效率低、浪费带宽
Server需要知道每个目的地址
②多目标路由(multi-destinationrouting)
在需要转发的路由器线路复制一次该数据报
网络利用率高
Server依然需要知道所有的目的地址
注:以上方法难以实现
③泛洪(flooding)
一种将数据包发送到所有网络节点的简单方法
将每个进入数据包发送到除了进入线路外的每条出去线路
用途
保证性:一种有效广播手段,可确保数据包被传送到网络中每个节点
鲁棒性:即使大量路由器被损坏,也能找到一条路径(如果存在)
简单性:仅需知道自己的邻居
无控制的泛洪
实现广播最显而易见的技术
环路可能导致广播风暴
路由器可能收到多个副本
节点需要跟踪已泛洪的数据包以阻止洪泛
即使利用跳数来限制,也会出现成倍爆炸
解决方法:受控制的泛洪(每个路由器进行有选择的泛洪)
序号控制泛洪
逆向路径转发
④生成树(spanningtree)
源节点向所有属于该生成树的特定链路发送分组
改进了逆向路径转发
没有环路
最佳使用带宽
最少副本,消除了冗余分组
一个路由器可以不必知道整颗树,只需要知道在一颗树中的邻居即可
5.Internet路由协议
5.1路由选择协议RIP
概述
路由选择协议RIP(RoutingInformationProtocol)是基于距离矢量算法的协议
使用跳数衡量到达目的网络的距离
RIP认为一个好的路由就是它通过的路由器的数目少,即“距离短”
RIP允许一条路径最多只能包含15个路由器
RIP协议的基本思想
仅和相邻路由器交换信息
路由器交换的内容是自己的路由表
周期性更新:30s
工作过程
初始化
周期性更新
小结
RIP协议的特点
算法简单,易于实现
收敛慢
需要交换的信息量较大
RIP协议的适用场合
中小型网络
RIP协议的防环路机制
触发更新
毒性反转
水平分割
其他
5.2BGP-外部网关路由协议
路由协议
内部网关协议IGP:有RIP和、OSPF、ISIS等多种具体的协议
外部网关协议EGP:目前使用的协议就是BGP
边界网关协议BGP(BorderGatewayProtocol)
目前互联网中唯一实际运行的自治域间的路由协议
BGP功能
eBGP:从相邻的AS获得网络可达信息
iBGP:将网络可达信息传播给AS内的路由器
基于网络可达信息和策略决定到其他网络的“最优”路由
BGP会话:两个BGP路由器通过TCP连接交换BGP报文
通告到不同网络前缀的路径,即路径向量协议
BGP路径通告
AS2的路由器2c从AS3的路由器3a接收到路径AS3,X
根据AS2的策略,AS2的路由器2c接受路径AS3,X,通过iBGP传播给AS2的所有路由器
根据AS2策略,AS2的路由器2a通过eBGP向AS1的路由器1c通告从AS3的路由器3a接收到路径AS2,AS3,X
路由器可能会学到多条到达目的网络的路径:
AS1的路由器1c从2a学到路径AS2,AS3,X
AS1的路由器1c从3a学到路径AS3,X
由策略,AS1路由器1c可能选择路径AS3,X,并在AS1中通过iBGP通告路径
6.路由器的工作原理
6.1路由器概述
路由器是互联网最主要的网络设备,包含2个核心功能
控制层:运行各种路由协议:BGP、OSPF、RIP,学习去往不同目的的转发路径:路由表
数据层:根据上述路由表,将收到的IP分组转发到正确的下一跳链路
6.2路由器控制层
路由器可同时运行多个路由协议
路由器也可不运行任何路由协议,只使用静态路由和直连路由
路由管理根据路由优先级,选择最佳路由,形成核心路由表
控制层将核心路由表下发到数据层,形成转发表(FIB)
若存在多个“去往同一目的IP前缀”的不同类型路由,路由器根据优先级选择最佳路由
优先级数值越小,优先级越高
6.3路由器数据层
路由器中IP报文转发核心功能
链路层解封装,IP头部校验
获取报文目的IP地址
用目的IP地址,基于最长前缀匹配规则查询转发表
查询失败,丢弃报文
查询成功
获取转发出接口和下一跳IP地址
IP头部“TTL”字段值减1,重新计算IP头部“校验和”
重新进行链路层封装,发送报文
注:普通IP报文转发过程中,路由器不查看传输层及以上层协议的内容
IP报文在路由器转发前后的变化
链路层封装更新,IP头部“TTL”减1,IP头部“校验和”更新
数据报在不同硬件单元的处理
报文输入的接口卡
链路层解封装
转发表查询(该工作在输入接口卡处理)
通过交换结构将报文排队发往目的接口卡(发送过快将产生拥塞)
交换结构
从输入接口卡发往输出接口卡
报文输出的接口卡
从交换结构接收报文(排队进行后续处理,到达太快将产生拥塞)
链路层封装
从输出接口发送报文
这个大概就是今天复习的,还是蛮多的,希望今天复习的,到明天都可以用的到。
应该是这样的,不然我身体前一段时间体检的时候好好的,怎么会突然开始就疯狂放屁了。看来这每天吃的东西想当关键,不能在胡乱吃了。
明天就要面试了,说实话,还是有一点点小小的紧张,毕竟这个工作对我来说,也是相当的不错,离家近,工资还高。
如果入职的话,相当不错。
今天是面试前的最后一天,我居然在网上找到了俩个同岗位的人。
人在面对这种俩面性事情的时候,不管哪种情况的发生,都会又开心又难过。
我开心的是总算找到有和我同岗位的人了,至少找到就说明了这些人不可能是关系户,不会是那种子弟,至少我们还是有着相互竞争的同一平台,不会是那种你就想都不用想了,已经注定是人家的囊中之物。
难过的是居然还是有人要面试,那就是说明我这个岗位放弃的人其实并没有多少,估计最多一俩个,甚至一俩个都没有,只能到时候努力面试了。
而且这还是面试前的最后一天,我感觉我有点炸裂,难以接受这个事实,如果说早一点发现这么多人,我就还能接受,但是最后一天,突然蹦出来这么多人。唉,管他呢,到时候再看吧。
今天还认真的复习了昨天没有复习完的,接上。
三、数据链路层
1.功能(要解决的问题)
成帧(Framing)
将比特流划分成“帧”的主要目的是为了检测和纠正物理层在比特传输中可能出现的错误,数据链路层功能需借助“帧”的各个域来实现
差错控制(ErrorControl)
处理传输中出现的差错,如位错误、丢失等
流量控制(FlowControl)
确保发送方的发送速率,不大于接收方的处理速率,避免接收缓冲区溢出
2.数据链路层提供的服务
1.无确认无连接服务(Unacknowledgedconnectionless)
接收方不对收到的帧进行确认
适用场景:误码率低的可靠信道;实时通信;
网络实例:以太网
2.有确认无连接服务(Acknowledgedconnectionless)
每一帧都得到单独的确认
适用场景:不可靠的信道(无线信道)
网络实例:802.11
3.有确认有连接服务(Acknowledgedconnection-oriented)
适用场景:长延迟的不可靠信道
3.成帧(Framing)
3.1要解决的关键问题:如何标识一个帧的开始?
接收方必须能从物理层接收的比特流中明确区分出一帧的开始和结束,这个问题被称为帧同步或帧定界
关键:选择何种定界符?定界符出现在数据部分如何处理?
3.2成帧(framing)的方式
①带比特填充的定界符法
定界符:两个0比特之间,连续6个1比特,即01111110,0x7E
发送方检查有效载荷:若在有效载荷中出现连续5个1比特,则直接插入1个0比特
接收方的处理:
若出现连续5个1比特,
若下一比特为0,则为有效载荷,直接丢弃0比特;
若下一比特为1,则连同后一比特的0,构成定界符,一帧结束
②物理层编码违例
核心思想:选择的定界符不会在数据部分出现
4B/5B编码方案
4比特数据映射成5比特编码,剩余的一半码字(16个码字)未使用,可以用做帧定界符
例如:00110组合不包含在4B/5B编码中,可做帧定界符
前导码
存在很长的前导码(preamble),可以用作定界符
例如:传统以太网、802.11
曼切斯特编码/差分曼切斯特编码
正常的信号在周期中间有跳变,持续的高电平(或低电平)为违例码,可以用作定界符
例如:802.5令牌环网
4.差错控制
4.1背景
链路层存在的一个问题:信道的噪声导致数据传输问题
差错(incorrect):数据发生错误
丢失(lost):接收方未收到
乱序(outoforder):先发后到,后发先到
重复(repeatedlydelivery):一次发送,多次接收
解决方案:差错检测与纠正、确认重传
确认:接收方校验数据(差错校验),并给发送方应答,防止差错
定时器:发送方启动定时器,防止丢失
顺序号:接收方检查序号,防止乱序递交、重复递交
4.2差错检验与纠正
目标
保证一定差错检测和纠错能力的前提下,如何减少冗余信息量?
考虑的问题
信道的特征和传输需求
冗余信息的计算方法、携带的冗余信息量
计算的复杂度等
两种主要策略
检错码(error-detectingcode)
在被发送的数据块中,包含一些冗余信息,但这些信息只能使接收方推断是否发生错误但不能推断哪位发生错误,接收方可以请求发送方重传数据主要用在高可靠、误码率较低的信道上,例如光纤链路偶尔发生的差错,可以通过重传解决差错问题
纠错码(error-correctingcode)
发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,并能纠正错误(定位出错的位置)主要用于错误发生比较频繁的信道上,如无线链路也经常用于物理层,以及更高层(例如,实时流媒体应用和内容分发)使用纠错码的技术通常称为前向纠错(FEC,ForwardErrorCorrection)
常用的检错码包括:
①奇偶检验(ParityCheck)
1位奇偶校验是最简单、最基础的检错码。
1位奇偶校验:增加1位校验位,可以检查奇数位错误。
②校验和(Checksum)
主要用于TCP/IP体系中的网络层和传输层
③循环冗余校验(CyclicRedundancyCheck,CRC)
数据链路层广泛使用的校验方法
CRC校验码计算方法
设原始数据D为k位二进制位模式
如果要产生n位CRC校验码,事先选定一个n+1位二进制位模式G(称为生成多项式,收发双方提前商定),G的最高位为1
将原始数据D乘以2^n(相当于在D后面添加n个0),产生k+n位二进制位模式,用G对该位模式做模2除,得到余数R(n位,不足n位前面用0补齐)即为CRC校验码
CRC校验码计算示例
D=1010001101
n=5
G=110101或G=x5+x4+x2+1
R=01110
实际传输数据:101000110101110
④汉明码
目标:以奇偶校验为基础,找到出错位置,提供1位纠错能力
给定n位待发送的数据,首先确定校验位的个数k(根据2^k≥k+n+1)
确定校验位在码流中的位置,2^i,i=0,1,2,……,得到校验位P_1,P_2,P_4,P_8,……
确定分组,即每个校验位分别负责哪些数据位
P_1负责位置号的二进制符合XXXX1形式的数据位,即1,3,5,7,9,……
P_2负责位置号的二进制符合XXX1X形式的数据位,即2,3,6,7,10,……
P_3负责位置号的二进制符合XX1XX形式的数据位,即4,5,6,7,12,13,14,15,……
基于偶校验确定每组的校验位(0或1)
注:汉明码是采用奇偶校验的码。它采用了一种非常巧妙的方式,把这串数字分了组,通过分组校验来确定哪一位出现了错误。
实际的海明码编码的过程也并不复杂,我们通过用不同过的校验位,去匹配多个不同的数据组,确保任何一个数据位出错,都会产生一个多个校验码位出错的唯一组合。这样,在出错的时候,我们就可以反过来找到出错的数据位,并纠正过来。当只有一个校验码位出错的时候,我们就知道实际出错的是校验码位了。
5.流量控制
链路层存在的另一个问题:接收方的处理速率
接收方的接收缓冲区溢出
解决方案
基于反馈(feedback-based)的流量控制
接收方反馈,发送方调整发送速率
基于速率(rate-based)的流量控制
发送方根据内建机制,自行限速
6.媒体接入控制MAC(MediumAccessControl)子层
数据链路层分为两个子层:
MAC子层:介质访问
LLC子层:承上启下(弱层)
6.1信道分配问题
①时分多址接入-TDMA
TDMA:timedivisionmultipleaccess
按顺序依次接入并使用信道
每个用户使用固定且相同长度的时隙
某时隙轮到某用户使用时,该用户没有数据要发送,则该时隙被闲置
例子:6-userLAN,1,3,4时隙有数据发送,2,5,6时隙被闲置
②频分多址接入-FDMA
FDMA:frequencydivisionmultipleaccess
信道总频带被划分为多个相同宽度的子频带
每个用户占用一个子频带,不管用户是否有数据发送
例子:6-userLAN,1,3,4频带有数据发送,2,5,6频带被闲置
6.2多路访问协议
6.2.1随机访问协议
特点:冲突不可避免
①ALOHA
纯ALOHA协议
原理:想发就发!
特点:
冲突:两个或以上的帧
随时可能冲突
冲突的帧完全破坏
破坏了的帧要重传
分隙ALOHA
分隙ALOHA是把时间分成时隙(时槽)
时隙的长度对应一帧的传输时间。
帧的发送必须在时隙的起点。
冲突只发生在时隙的起点
②载波侦听多路访问协议CSMA
特点:“先听后发”
改进ALOHA的侦听/发送策略分类
非持续式CSMA
1.特点
①经侦听,如果介质空闲,开始发送
②如果介质忙,则等待一个随机分布的时间,然后重复步骤①
2.好处
等待一个随机时间可以减少再次碰撞冲突的可能性
3.缺点
等待时间内介质上如果没有数据传送,这段时间是浪费的
持续式CSMA
p-持续式CSMA
1.特点
①经侦听,如介质空闲,那么以p的概率发送,以(1–p)的概率延迟一个时间单元发送
②如介质忙,持续侦听,一旦空闲重复①
③如果发送已推迟一个时间单元,再重复步骤①
1-持续式CSMA
1.特点
①经侦听,如介质空闲,则发送
②如介质忙,持续侦听,一旦空闲立即发送
③如果发生冲突,等待一个随机分布的时间再重复步骤①
2.好处:持续式的延迟时间要少于非持续式
3.主要问题:如果两个以上的站等待发送,一旦介质空闲就一定会发生冲突
4.注意
1-持续式是p-持续式的特例
6.2.2受控访问协议
特点:克服了冲突
①位图协议(预留协议)
竞争期:在自己的时槽内发送竞争比特
举手示意
资源预留
传输期:按序发送
明确的使用权,避免了冲突
②令牌传递
令牌:发送权限
令牌的运行:发送工作站去抓取,获得发送权
除了环,令牌也可以运行在其它拓扑上,如令牌总线
发送的帧需要目的站或发送站将其从共享信道上去除;防止无限循环
缺点:令牌的维护代价
③二进制倒计数协议
站点:编序号,序号长度相同
竞争期:有数据发送的站点从高序号到低序号排队,高者得到发送权
特点:高序号站点优先
6.2.3有限竞争协议
利用上述二者的优势
①自适应树搜索协议(AdaptiveTreeWalkProtocol)
在一次成功传输后的第一个竞争时隙,所有站点同时竞争。
如果只有一个站点申请,则获得信道。
否则在下一竞争时隙,有一半站点参与竞争(递归),下一时隙由另一半站点参与竞争
即所有站点构成一棵完全二叉树。
6.3虚拟局域网VLAN
广播域(BroadcastingDomain)
广播域是广播帧能够到达的范围;
缺省情况下,交换机所有端口同属于一个广播域,无法隔离广播域;
广播帧在广播域中传播,占用资源,降低性能,且具有安全隐患。
VLAN是一个在物理网络上根据用途,工作组、应用等来逻辑划分的局域网络,与用户的物理位置没有关系。
通过路由器或三层交换机进行VLAN间路由,实现VLAN间通信。
VLAN类型
基于端口的VLAN
基于MAC地址的VLAN
基于协议的VLAN
基于子网的VLAN
6.4无线局域网WLAN
无线局域网(WirelessLocalAreaNetwork,WLAN):指以无线信道作为传输介质的计算机局域网
基础架构模式(Infrastructure)
分布式系统(DS)
访问点(AP)
站点(STA)
基本服务集(BSS)
扩展服务集(ESS)
站点之间通信通过AP转发
自组织模式(Adhoc)
站点(STA)
独立基本服务集(IBSS)
站点之间直接通信
共享同一无线信道
无线局域网需要解决的问题
1.有限的无线频谱带宽资源
通道划分、空间重用
提高传输速率,解决传输问题
提高抗干扰能力和保密性
2.共享的无线信道
介质访问控制方法(CSMA/CA)
可靠性传输、安全性
3.组网模式管理
BSS构建、认证、关联
移动性支持(漫游)
睡眠管理(节能模式)
四、网络层
1.网络层概述
网络层在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。
2.网络层关键功能
路由(控制面)
选择数据报从源端到目的端的路径
核心:路由算法与协议
转发(数据面)
将数据报从路由器的输入接口传送到正确的输出接口
3.Internet网际协议
3.1IPv4协议及其相关技术
3.1.1基本概念
IPv4协议,网际协议版本4,一种无连接的协议,是互联网的核心,也是使用最广泛的网际协议版本,其后继版本为IPv6
internet协议执行两个基本功能
寻址(addressing)
分片(fragmentation)
3.1.2IPv4数据报格式
版本:4bit,表示采用的IP协议版本
首部长度:4bit,表示整个IP数据报首部的长度
区分服务:8bit,该字段一般情况下不使用
总长度:16bit,表示整个IP报文的长度,能表示的最大字节为2^16-1=65535字节
标识:16bit,IP软件通过计数器自动产生,每产生1个数据报计数器加1;在ip分片以后,用来标识同一片分片
标志:3bit,目前只有两位有意义。
MF,置1表示后面还有分片,置0表示这是数据报片的最后1个;
DF,不能分片标志,置0时表示允许分片
片偏移:13bit,表示IP分片后,相应的IP片在总的IP片的相对位置
生存时间TTL(TimeToLive):8bit,表示数据报在网络中的生命周期,用通过路由器的数量来计量,即跳数(每经过一个路由器会减1)
协议:8bit,标识上层协议(TCP/UDP/ICMP…)
首部校验和:16bit,对数据报首部进行校验,不包括数据部分
源地址:32bit,标识IP片的发送源IP地址
目的地址:32bit,标识IP片的目的地IP地址
选项:可扩充部分,具有可变长度,定义了安全性、严格源路由、松散源路由、记录路由、时间戳等选项
填充:用全0的填充字段补齐为4字节的整数倍
3.1.3数据报分片
分片原因
数据报长度大于传输链路的MTU
MTU(MaximumTransmissionUnit),最大传输单元
链路MTU
路径MTU(PathMTU)
分片策略
允许途中分片:根据下一跳链路的MTU实施分片
不允许途中分片:发出的数据报长度小于路径MTU(路径MTU发现机制)
重组策略
途中重组,实施难度太大
目的端重组(互联网采用的策略)
重组所需信息:原始数据报编号、分片偏移量、是否收集所有分片
IPv4分片策略
IPv4分组在传输途中可以多次分片
源端系统,中间路由器(可通过标志位设定是否允许路由器分片,DF标志位)
IPv4分片只在目的IP对应的目的端系统进行重组
IPv4分片、重组字段在基本IP头部
标识、标志、片偏移
IPv6分片机制有较大变化(见IPv6部分的介绍)
注:分组(packet)与帧(frame)的关系
3.1.4IP协议功能及报头字段总结
网络层基本功能
支持多跳寻路将IP数据报送达目的端:目的IP地址
表明发送端身份:源IP地址
根据IP头部协议类型,提交给不同上层协议处理:协议
其它相关问题
数据报长度大于传输链路的MTU的问题,通过分片机制解决:标识、标志、片偏移
防止循环转发浪费网络资源(路由错误、设备故障…),通过跳数限制解决:生存时间TTL
IP报头错误导致无效传输,通过头部机校验解决:首部校验和
3.2IP地址
3.2.1概述
IP地址,网络上的每一台主机(或路由器)的每一个接口都会分配一个全球唯一的32位的标识符
将IP地址划分为固定的类,每一类都由两个字段组成
网络号相同的这块连续IP地址空间称为地址的前缀,或网络前缀
IP地址共分为A、B、C、D、E五类,A类、B类、C类为单播地址
IP地址的书写采用点分十进制记法,其中每一段取值范围为0到255
IP特殊地址
3.2.1子网划分
子网划分(subnetting),在网络内部将一个网络块进行划分以供多个内部网络使用,对外仍是一个网络
子网(subnet),一个网络进行子网划分后得到的一系列结果网络称为子网
子网掩码(subnetmask),与IP地址一一对应,是32bit的二进制数,置1表示网络位,置0表示主机位
子网划分减少了IP地址的浪费、网络的组织更加灵活、便于维护和管理
3.2.3无类域间路由
将32位的IP地址划分为前后两个部分,并采用斜线记法,即在IP地址后加上“/”,然后再写上网络前缀所占位数
一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合(routeaggregation),也称为构成超网(supernet)
聚合技术在Internet中大量使用,它允许前缀重叠,数据包按具体路由的方向发送,即具有最少IP地址的最长匹配前缀
注:当路由器收到一个IP数据包时,它会将数据包的目的IP地址与自己本地路由表中的所有路由表进行逐位(Bit-By-Bit)对比,直到找到匹配度最长的条目,这就是最长前缀匹配机制。(路由比对之前会用相应路由的目的网络掩码进行逻辑与运算,再拿结果与路由路径比对)
3.3DHCP动态主机配置协议
DHCP:动态主机配置协议
当主机加入IP网络,允许主机从DHCP服务器动态获取IP地址
可以有效利用IP地址,方便移动主机的地址获取
工作模式:客户/服务器模式(C/S)
基于UDP工作,服务器运行在67号端口,客户端运行在68号端口
DHCP客户从UDP端口68以广播形式向服务器发送发现报文(DHCPDISCOVER)
DHCP服务器广播发出提供报文(DHCPOFFER)
DHCP客户从多个DHCP服务器中选择一个,并向其以广播形式发送DHCP请求报文(DHCPREQUEST)
被选择的DHCP服务器广播发送确认报文(DHCPACK)
3.4ARP地址解析协议
背景
网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址二获取的MAC地址的过程是由ARP(AddressResolutionProtocol)协议来实现的。
注:因为下层协议是通过MAC地址来确定各自身份的,所以下层发送必须要MAC地址
IP与MAC地址
ARP协议工作过程
A已知B的IP地址,需要获得B的MAC地址(物理地址)
如果A的ARP表中缓存有B的IP地址与MAC地址的映射关系,则直接从ARP表获取
如果A的ARP表中未缓存有B的IP地址与MAC地址的映射关系,则A广播包含B的IP地址的ARPquery分组
在局域网上的所有节点都可以接收到ARPquery
B接收到ARPquery分组后,将自己的MAC地址发送给A
A在ARP表中缓存B的IP地址和MAC地址的映射关系
超时时删除
路由到另一个局域网
A创建IP数据包(源为A、目的为E)
在源主机A的路由表中找到路由器R的IP地址223.1.1.4
A根据R的IP地址223.1.1.4,使用ARP协议获得R的MAC地址
A创建数据帧(目的地址为R的MAC地址)
数据帧中封装A到E的IP数据包
A发送数据帧,R接收数据帧
3.5网络地址转换(NAT)
定义
网络地址转换(NAT)用于解决IPv4地址不足的问题,是一种将私有(保留)地址转化为公有IP地址的转换技术
私有IP地址:
A类地址:10.0.0.0–10.255.255.255
B类地址:172.16.0.0–172.31.255.555
C类地址:192.168.0.0–192.168.255.255
NAT工作机制
出数据报:外出数据报用NATIP地址(全局),新port#替代源IP地址(私有),port#
NAT转换表:每个(源IP地址,port#)到(NATIP地址,新port#)映射项
入数据报:对每个入数据报的地址字段用存储在NAT表中的(源IP地址,port#)替代对应的(NATIP地址,新port#)
NAT根据不同的IP上层协议进行NAT表项管理
TCP,UDP,ICMP
传输层TCP/UDP拥有16-bit端口号字段
所以一个WAN侧地址可支持60,000个并行连接
NAT的优势
节省合法地址,减少地址冲突
灵活连接Interne
保护局域网的私密性
3.6ICMP:互联网控制报文协议
ICMP:互联网控制报文协议
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告
由主机和路由器用于网络层信息的通信
ICMP报文携带在IP数据报中:IP上层协议号为1
ICMP报文类型
ICMP差错报告报文
终点不可达:不可达主机、不可达网络,无效端口、协议
ICMP询问报文
回送请求/回答(ping使用)
ICMP报文格式
ICMP报文的前4个字节包含格式统一的三个字段:类型、代码、检验和
相邻的后四个字节内容与ICMP的报文类型有关
ICMP报文类型及功能
4.路由算法
路由算法须满足的特性:
正确性
简单性
鲁棒性
稳定性
公平性
有效性
根据路由算法是否随网络的通信量或拓扑自适应划分
静态路由选择策略(非自适应路由选择)
动态路由选择策略(自适应路由选择)
4.1距离向量路由
算法基本思想
每个节点周期性地向邻居发送它自己到某些节点的距离向量;
当节点x接收到来自邻居的新DV估计,它使用B-F方程更新其自己的DV:
Dx(y)←minv{c(x,v)+Dv(y)}foreachnodey∊N
上述过程迭代执行,Dx(y)收敛为实际最小费用dx(y)
距离向量算法特点:迭代的、分布式的
每次本地迭代由下列引起:本地链路费用改变、邻居更新报文
分布式:各节点依次计算,相互依赖
注:路由器只掌握物理相连的邻居以及链路费用
算法过程
路由器启动时初始化自己的路由表
初始路由表包含所有直接相连的网络路径,距离均为0
路由器周期性地向其相邻路由器广播自己知道的路由信息
相邻路由器可以根据收到的路由信息修改和刷新自己的路由表
路由器经过若干次更新后,最终都会知道到达所有网络的最短距离
所有的路由器都得到正确的路由选择信息时网络进入“收敛”(convergence)状态
特殊情况考虑
计数到无穷问题(TheCount-to-InfinityProblem)
好消息传播快,坏消息传播慢,是距离向量路由的一个主要缺点
4.2链路状态路由
注:所有路由器掌握完整的网络拓扑和链路费用信息
算法过程
链路状态(LinkState)路由可分为五个部分:
发现邻居,了解他们的网络地址;
设置到每个邻居的成本度量;
开销/度量/代价:
自动发现设置或人工配置
度量:带宽、跳数、延迟、负载、可靠性等
常用度量:链路带宽(反比)
例如:1-Gbps以太网的代价为1,100-Mbps以太网的代价为10
可选度量:延迟
发送一个echo包,另一端立即回送一个应答
通过测量往返时间RTT,可以获得一个合理的延迟估计值
构造一个分组,分组中包含刚收到的所有信息;
构造链路状态分组(linkstatepacket,LSP)
发送方标识
序列号
年龄
邻居列表
将此分组发送给其他的路由器;
每个LSP分组包含一个序列号,且递增
路由器记录所收到的所有(源路由器、序列号)对
当一个新分组到达时,路由器根据记录判断:
如果是新分组,洪泛广播
如果是重复分组,丢弃
如果是过时分组,拒绝
计算到其他路由器的最短路径。
Dijkstra算法示例
D(k):从计算节点到目的节点k当前路径代价
p(k):从计算节点到目的节点k的路径中k节点的前继节点
距离向量和链路状态算法比较
网络状态信息交换的范围
DV:邻居间交换
LS:全网扩散
网络状态信息的可靠性
DV:部分道听途说
LS:自己测量
4.3层次路由
产生原因
过于庞大的路由表存储、查找困难,路由信息交互开销高
现实情况:
地址分配往往是随机的,难以进行高效的地址聚合
每个网络的网络管理员有自己的管理方法和思路,并不希望每个路由器都干涉本网络内部的地址分配等问题
层次路由可以解决:
网络扩展性问题:当网络扩大时,控制路由表条目和路由表存储空间的增长
管理的自治问题:网络管理员可以控制和管理自己网络的路由
基本思路
互联网由大量不同的网络互连,每个管理机构控制的网络是自治的
自治系统(AS,AutonomousSystem)
一个管理机构控制之下的网络
一个AS内部通常使用相同的路由算法/路由协议,使用统一的路由度量(跳数、带宽、时延…)
不同的AS可以使用不同的路由算法/路由协议
每个AS有一个全球唯一的ID号:ASID
自治系统内的还可以进一步划分层次:私有自治系统或区域
效果
4.4广播路由
广播(Broadcasting):源主机同时给全部目标地址发送同一个数据包
实现方法
①给每个主机单独发送一个数据包
效率低、浪费带宽
Server需要知道每个目的地址
②多目标路由(multi-destinationrouting)
在需要转发的路由器线路复制一次该数据报
网络利用率高
Server依然需要知道所有的目的地址
注:以上方法难以实现
③泛洪(flooding)
一种将数据包发送到所有网络节点的简单方法
将每个进入数据包发送到除了进入线路外的每条出去线路
用途
保证性:一种有效广播手段,可确保数据包被传送到网络中每个节点
鲁棒性:即使大量路由器被损坏,也能找到一条路径(如果存在)
简单性:仅需知道自己的邻居
无控制的泛洪
实现广播最显而易见的技术
环路可能导致广播风暴
路由器可能收到多个副本
节点需要跟踪已泛洪的数据包以阻止洪泛
即使利用跳数来限制,也会出现成倍爆炸
解决方法:受控制的泛洪(每个路由器进行有选择的泛洪)
序号控制泛洪
逆向路径转发
④生成树(spanningtree)
源节点向所有属于该生成树的特定链路发送分组
改进了逆向路径转发
没有环路
最佳使用带宽
最少副本,消除了冗余分组
一个路由器可以不必知道整颗树,只需要知道在一颗树中的邻居即可
5.Internet路由协议
5.1路由选择协议RIP
概述
路由选择协议RIP(RoutingInformationProtocol)是基于距离矢量算法的协议
使用跳数衡量到达目的网络的距离
RIP认为一个好的路由就是它通过的路由器的数目少,即“距离短”
RIP允许一条路径最多只能包含15个路由器
RIP协议的基本思想
仅和相邻路由器交换信息
路由器交换的内容是自己的路由表
周期性更新:30s
工作过程
初始化
周期性更新
小结
RIP协议的特点
算法简单,易于实现
收敛慢
需要交换的信息量较大
RIP协议的适用场合
中小型网络
RIP协议的防环路机制
触发更新
毒性反转
水平分割
其他
5.2BGP-外部网关路由协议
路由协议
内部网关协议IGP:有RIP和、OSPF、ISIS等多种具体的协议
外部网关协议EGP:目前使用的协议就是BGP
边界网关协议BGP(BorderGatewayProtocol)
目前互联网中唯一实际运行的自治域间的路由协议
BGP功能
eBGP:从相邻的AS获得网络可达信息
iBGP:将网络可达信息传播给AS内的路由器
基于网络可达信息和策略决定到其他网络的“最优”路由
BGP会话:两个BGP路由器通过TCP连接交换BGP报文
通告到不同网络前缀的路径,即路径向量协议
BGP路径通告
AS2的路由器2c从AS3的路由器3a接收到路径AS3,X
根据AS2的策略,AS2的路由器2c接受路径AS3,X,通过iBGP传播给AS2的所有路由器
根据AS2策略,AS2的路由器2a通过eBGP向AS1的路由器1c通告从AS3的路由器3a接收到路径AS2,AS3,X
路由器可能会学到多条到达目的网络的路径:
AS1的路由器1c从2a学到路径AS2,AS3,X
AS1的路由器1c从3a学到路径AS3,X
由策略,AS1路由器1c可能选择路径AS3,X,并在AS1中通过iBGP通告路径
6.路由器的工作原理
6.1路由器概述
路由器是互联网最主要的网络设备,包含2个核心功能
控制层:运行各种路由协议:BGP、OSPF、RIP,学习去往不同目的的转发路径:路由表
数据层:根据上述路由表,将收到的IP分组转发到正确的下一跳链路
6.2路由器控制层
路由器可同时运行多个路由协议
路由器也可不运行任何路由协议,只使用静态路由和直连路由
路由管理根据路由优先级,选择最佳路由,形成核心路由表
控制层将核心路由表下发到数据层,形成转发表(FIB)
若存在多个“去往同一目的IP前缀”的不同类型路由,路由器根据优先级选择最佳路由
优先级数值越小,优先级越高
6.3路由器数据层
路由器中IP报文转发核心功能
链路层解封装,IP头部校验
获取报文目的IP地址
用目的IP地址,基于最长前缀匹配规则查询转发表
查询失败,丢弃报文
查询成功
获取转发出接口和下一跳IP地址
IP头部“TTL”字段值减1,重新计算IP头部“校验和”
重新进行链路层封装,发送报文
注:普通IP报文转发过程中,路由器不查看传输层及以上层协议的内容
IP报文在路由器转发前后的变化
链路层封装更新,IP头部“TTL”减1,IP头部“校验和”更新
数据报在不同硬件单元的处理
报文输入的接口卡
链路层解封装
转发表查询(该工作在输入接口卡处理)
通过交换结构将报文排队发往目的接口卡(发送过快将产生拥塞)
交换结构
从输入接口卡发往输出接口卡
报文输出的接口卡
从交换结构接收报文(排队进行后续处理,到达太快将产生拥塞)
链路层封装
从输出接口发送报文
这个大概就是今天复习的,还是蛮多的,希望今天复习的,到明天都可以用的到。
转码声明:以上内容基于搜索引擎转码技术对网站内容进行转码阅读,自身不保存任何数据,请您支持正版