网络_2020
第一章-计算机网络概述
互联网概述
计算机网络
由若干结点和链接这些结点的链路组成,结点可以是计算机、集线器、交换机、路由器等,一般来说,网络的链路不超过100M,例如可以是学校的教室和机房内
互"连''网
网络和网络之间通过路由器连起来所形成的(比如教室与教室的网络之间相连),路由器还可以有广域网接口,使网络距离上扩展,网络的互连除了物理的连接还需要能交换信息。
网络的划分
按传输技术
- 广播式网络(broadcast networks)
- 点到点网络(point to point networks)
按作用范围
- 广域网(WAN):跨城市国家
- 相比于局域网,广域网速度更慢,误码率高,因为传输距离长,接触的设备与传输介质更多,受环境干扰更大
- 城域网(MAN):覆盖整个城市
- 局域网(LAN):覆盖一个学校/一个企业
- 个人区域网(PAN):自己找两个计算机相连
互联网发展的三个阶段
- ARPANET向互连网发展
- 三级结构的互联网(主干网、地区网、校园网(或企业网))
- 多层次ISP结构的互联网
- 通过ISP获得的IP地址接入到互联网
- ISP分为不同层次:主干ISP、地区ISP、本地ISP
- 本地ISP可以连接到地区ISP,也可以直接连接到主干ISP
IXP(互联网交换点):允许两个网络直接相连并交换分组,不需通过第三个网络来转发分组(例如直接本地到本地ISP,不需经过地区和主干ISP),减少了分组转发的延迟时间,降低了分组转发的费用
分组转发
报文:要发送的整块数据
将一个报文划分为几个分组后再进行传送,路由器收到一个分组,先暂时存储一下,查表后找到合适的接口发给下一个路由器,这样一步步最终到达主机
互联网的标准化工作
ISOC:负责全面管理O
IRTF:负责长期考虑的问题
IEIF:研究近期工程问题
制定互联网正式标准的三个阶段:
互联网草案——建议标准——互联网标准
OSI模型
为什么会出现OSI?
早起ARPANET仅有4个结点,这4台计算机之间的通讯必须遵循一些事先约定好的原则。相互通信的两个计算机系统必须高度协调工作,这种“协调”相当复杂,ARPANET就提出了分层的方法。后来很多公司陆续提出了自己的系统网络体系结构,为了防止垄断,促进计算机网络的发展,国际标准化组织ISO提出了开放系统互连基本参考模型OSI/RM,简称OSI
这个模型把网络通信的工作分为7层,从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。
各层功能定义
整个过程以公司A和公司B的一次商业报价单发送为例子进行讲解。
-
应用层(实现功能,但具体通过什么程序实现是会话层的事)
OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。
实际公司A的老板就是我们所述的用户,而他要发送的商业报价单,就是应用层提供的一种网络服务,当然,老板也可以选择其他服务,比如说,发一份商业合同,发一份询价单,等等。 -
表示层
表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。
由于公司A和公司B是不同国家的公司,他们之间的商定统一用英语作为交流的语言,所以此时表示层(公司的文秘),就是将应用层的传递信息转翻译成英语。同时为了防止别的公司看到,公司A的人也会对这份报价单做一些加密的处理。这就是表示的作用,将应用层的数据转换翻译等。 -
会话层(实现应用与应用之间的通信,但怎么找到对方是传输层的事)
会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
会话层的同事拿到表示层的同事转换后资料,(会话层的同事类似公司的外联部),会话层的同事那里可能会掌握本公司与其他好多公司的联系方式,这里公司就是实际传递过程中的实体。他们要管理本公司与外界好多公司的联系会话。当接收到表示层的数据后,会话层将会建立并记录本次会话,他首先要找到公司B的地址信息,然后将整份资料放进信封,并写上地址和联系方式。准备将资料寄出。等到确定公司B接收到此份报价单后,此次会话就算结束了,外联部的同事就会终止此次会话。 -
传输层
传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP UDP就是在这一层。端口号既是这里的端。
传输层就相当于公司中的负责快递邮件收发的人,公司自己的投递员,他们负责将上一层的要寄出的资料投递到快递公司或邮局。 -
网络层([网络层和传输层的区别][https://zhidao.baidu.com/question/52206756.html])
本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的IP层。这一层就是我们经常说的IP协议层。IP协议是Internet的基础。
网络层就相当于快递公司庞大的快递网络,全国不同的集散中心,比如说,从深圳发往北京的顺丰快递(陆运为例啊,空运好像直接就飞到北京了),首先要到顺丰的深圳集散中心,从深圳集散中心再送到武汉集散中心,从武汉集散中心再寄到北京顺义集散中心。这个每个集散中心,就相当于网络中的一个IP节点。 -
数据链路层 (管质量,解决不可靠问题)
将比特组合成字节,再将字节组合成帧,使用链路层地址 (以太网使用MAC地址)来访问介质,并进行差错检测,但不纠错
-
物理层(管信号传输,但不管传输质量)
实际最终信号的传输是通过物理层实现的。通过物理介质传输比特流。规定了电平、速度和电缆针脚。常用设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆。这些都是物理层的传输介质。快递寄送过程中的交通工具,就相当于我们的物理层,例如汽车,火车,飞机,船。
[通俗理解各层次][https://www.2cto.com/net/201309/247111.html]
分层的好处
- 各层之间是独立的,某层不需知道它下一层的具体实现,减少复杂度
- 灵活性好,任一层变化,只要接口关系不变,这层以上或以下均不受影响
- 结构上可分开
- 易于实现和维护
- 促进标准化工作
注意各层的一些协议
TCP/IP
美国国防部创建,分为四层,从低到高分别为:网络接口层、网际层、运输层、应用层
- 网络接口层:
主要是指物理层次的一些接口,比如电缆等. - 网络层:
提供独立于硬件的逻辑寻址,实现物理地址与逻辑地址的转换. - 传输层:
为网络提供了流量控制,错误控制和确认服务. 为两台主机上的应用程序提供端到端的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。 - 应用层:
负责处理应用程序的逻辑,比如文件传输,名称查询和网络管理等。
TCP/IP&OSI
相同:
- 二者某些层次是相同的,都运用了分组交换的技术
不同:
-
OSI/RM模型是在协议发明之前设计的.而TCP/IP是在协议出现之后设计的.
-
TCP/IP可越层交流,但OSI不能(也即TCP/IP没有充分区分服务和协议)
网络的拓扑结构
计算机网络拓扑
由计算机组成的网络之间设备的分布情况以及连接状态,分为物理拓扑和逻辑拓扑
物理拓扑
根据网络设备的实际物理地址进行扫描而得出,所以更加适合网络设备层的管理,网络出现故障通过物理拓扑图可以详细的找出哪一台设备出现什么样的问题。常见物理拓扑结构:
逻辑拓扑
以网络设备的IP地址划分为依据生成的拓扑图,定义了主机对于媒体的访问方式
令牌传递就属于逻辑拓扑
令牌:一个独特的标志信息,一位或多位二进制数字组成的码,当某站有包发送时,等待令牌到达,当检测到为空令牌就发送包,再发送令牌
常见物理拓扑结构
Bus拓扑
将网络中的各个节点设备用一根总线(如同轴电缆等)挂接起来,实现计算机网络的功能。
bus断掉影响所有连接总线设备的传输(bus两端有特殊处理防止信号传不过去(信号回传什么的),断掉的位置没有)
广播式传输(总线上信号每个device都看得见),device需要判断一个信号是否传给自己,需要一些控制保证device用bus其他的不能用
适用场景:总线型拓扑结构适用于计算机数目相对较少的局域网络,通常这种局域网络、的传输速率在100Mbps,网络连接选用同轴电缆。主要适用于家庭、宿舍等网络规模较小的场所。总线型拓扑结构曾流行了一段时间,典型的总线型局域网有以太网。
Ring拓扑
环形拓扑结构是一个像环一样的闭合链路,在环形网中,所有的通信共享一条物理通道,即连接了网中所有节点的点到点链路。环形状不用很标准,每个结点会收到信号再发送个一下一个结点
优点plus:传输过程可控,不会产生冲突(信息在网络中传输的最大时间固定)
应用:流水线操作
Dual Ring拓扑
主要用于城域网,类似ring,一个环坏掉可以用另一个环进行相同的通讯(同时间只有一个环在使用)
Star拓扑
目前路由器、交换机等的使用方式
优点plus:可并行(如果中心结点允许多路同时传输),安全性高(两个结点之间的传输无需经过中心节点以外的节点)
扩展Star
星型网络扩展到包含与主网络设备相连的其它网络设备
可以不经过中心结点就完成传输
Tree
不是很主流
每个结点有逻辑意义,有等级高低(省市乡镇),和总线拓扑一样,一个站点发送数据,其他站点都能接收,同一层结点一般不交流数据
Mesh
广域网的拓扑
优点:连通性、可靠性最强,如果两点间流量大,可以选择以另一结点为中间节点来传输
缺点:成本太高
Cellular
构成网络覆盖的各通信基地台的信号覆盖呈六边形,从而使整个网络像一个蜂窝而得名。
用于无线传输,这种网络拓扑结构是由星型结构和总线型结构的网络结合在一起的网络结构,这样的拓扑结构更能满足较大网络的拓展,解决星型网络在传输距离上的局限,而同时又解决了总线型网络在连接用户数量的限制。这种网络拓扑结构同时兼顾了星型网与总线型网络的优点,在缺点方面得到了一定的弥补。
网络设备
LAN
主机:和网络直接相连的设备,不属于任何一层
终端:用于和主机通信的设备,比如手机、个人电脑、银行pos机
NIC(网卡):第2层
设备工作在第二层,说明第二层及以下的数据可以处理
准确来说,一个主机上的一个网卡有一个唯一的mac地址(一个主机可以有多个网卡),使主机和介质相连,主机之间通过网卡通讯,通过网卡向主机发送信号(用于计算机和外界局域网的连接)
Media:第1层
传输介质,例如铜线、光缆
Repeaters(中继器):第1层
由于电流消耗,用作传输距离延长(长方形划线),只会转发不会过滤
Hubs(多端口的中继器(集线器),收到信号可以传到其他所有端口):第1层
物理上是star
逻辑上是bus(广播式传输,数据发给网络上所有计算机,符号总线型结构)
Bridges(网桥):第2层
连接两个LAN,根据MAC地址转发帧数据(hubs不会过滤)
A向B发信号不会通过bridge,向D发才会通过,可以实现A向B发的同时,D向E发
[通俗理解1][http://www.360doc.com/content/18/0201/23/18848094_727065534.shtml][通俗理解2][https://blog.csdn.net/xcymorningsun/article/details/52882479]
Switches(交换机、多端口网桥):第2层
物理逻辑上都是Star
Router(路由器):第3层
路由器和交换机区别:前者连接对象范围大,ip相当于大地址,MAC相当于小地址
第二章-OSI物理层
网络通信系统的基本问题
数据传输类型
-
模拟通信
模拟信号的信号电平是连续变化的
-
数字通信
数字信号是用两种不同的电平去标识0、1串的电压脉冲信号表示
数据通信方式
-
串行通信、并行通信
- 串行通信是使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。1.节省传输线,尤其是远程通信;2.数据传送效率低。
- 并行通信即一组数据的各数据位在多条线上同时被传输,这种传输方式称为并行通信。1.传输速度快、效率高,多用在实时、快速的场合;2.通信线多、成本高,故不宜进行远距离通信
-
单工通信、半双工或全双工通信
- 单工通信只支持信号在一个方向上传输(正向或反向),任何时候不能改变信号的传输方向
- 半双工通信允许信号在两个方向上传输,但某一时刻只允许信号在一个信道上单向传输(老师讲课,同学回答问题)
- 全双工通信允许诗句同时在两个方向上传输,由于有两个信道,允许同时进行双向传输(手机打电话)
同步方式
- 同步通信
- 异步通信
传输媒体
1.双绞线(屏蔽双绞线STP,无屏蔽双绞线UTP)
STP和UTP有效距离是100m,带宽1-10G(名词可能考UTP)
优点:抗干扰能力强、传输距离远、布线容易、价格低廉
注意1-7类线的特点
2.同轴电缆(Coaxial):粗缆、细缆
粗缆成本高,弯曲性能差,传输距离远
不用中继器时比双绞线传输距离更远
比光纤便宜,比双绞线贵
3.光缆(Fiber):由于传播广,没有电磁干扰,但工艺要求较高,成本高,未来发展趋势好(主要成分为二氧化硅,易获得)
- 多模光纤(Multimode)直径比单模光纤(Singlemode)高一个数量级,光在内部有大量反射,可以识别更多角度的光(按角度区分不同光线),反射多能量损耗大,传输距离近。
- 单模损耗小,传输距离远,但制作成本高
- 局域网一般多mode,广域网一般单mode
无线传播方式
-
激光
信息发送时,先转换成电信号,再由光调制器将其调制在激光器产生的激光束上,经光学天线发射出去。信息接收时,光学接收天线将接收到的光信号聚焦后,送至光检测器恢复成电信号,再还原为信息
-
红外:电视遥控器
- 可以反射传输
- 传输距离短,只能直线传输
- 无法通过不透明对象
-
电磁波:手机、卫星等
双绞线的三种线序
直通线:
两头同为568A标准或568B标准;(一般用的都是568B平行线的做法),线有颜色,用以区分不同的作用。
pc和路由器、路由器和终端相连用直通线(不同设备之间)
交叉线Crossover:
一端568A,一端568B
用作背接线,可以连两个相同的Hub或交换机(相同设备之间,虽然也支持直通线)
全反线(Rollover Cable)
线序一般是一头为568B,另外一头的颜色全反过来
主要连接电脑和交换机、路由器的Console口,这种连接允许计算机用户登录路由器或者交换机来输入命令(直接连接,非远程访问)。
-
568A/568B是做网线时遵循的一种行业标准。它规定了双绞线内的8个不同颜色的细线从左到右插入水晶头的顺序。
-
网线(一般指直通线)在100兆用四根,1000兆用八根(其余四芯作为供电线路,也可以作为1、2、3、6的备用线路使用。)
信号
1.数字信号、模拟信号
2.数字信号失真问题、香农公式
3.比特率、波特率
4.编码
- 单极性&双极性
- 单极性码会积累直流分量,这样就不能使变压器在数据通信设备和所处环境之间提供良好绝缘的交流耦合,直流分量还会损坏连接点的表面电镀层,双极性码的直流分量大大减少,这对数据传输是很有利的
- 单极性实现比双极性简单
- 归零&不归零
- 归零:每个周期都要从正/负极跳到零,占用带宽,但同步性好
- 不归零:同步性差
- 不归零反向:有一定的同步性
- 曼彻斯特&差分曼彻斯特
5.带通调制
6.复用
- 时分复用:1,2,3之间有空隙
第三章-数据链路层
数据链路层对于物理层的补充
物理层:传送透明的比特流,即便通过物理手段或者带通调制仍然会产生差错(例:别人的信号被干扰,变成自己可识别的信号)
数据链路层:弥补物理层的不足,能对数据检错,研究范围是一个局域网内
网络层:研究网络与网络之间的通信
不是所有网络都有三层及以上:蓝牙(flow control)
第二层对第三层提供的功能(传输帧的方式)
面向连接(Connection)
无连接(Connectionless)
二者区别为发送数据之前是否需要进行协商建立一个所谓的“信道”,或协商一些关键数据,有连接要进行这个操作,无连接就不要,拉到要发的就直接发送
Ack:需要确认(一个信息发送,必须对方给予回应再发送下一个,无回应需要重发/减小发送窗口)
NoAck:无需确认
C和A的关系:C表示连接,但传输不一定被接收
CLess+NoAck:适用于可靠连接(上层通信确保数据正确)、Real-time tasks:规定时间必须做完task、大多数局域网
CLess+Ack:无线网
C+Ack:最不可靠
一般没有 C NA(c之后可靠性较高)
常见的局域网拓扑(针对广播信道)
- 以太网:每个设备都可以发数据,先发的占用总线(Non-deterministic)
- 令牌环网(Token Ring):不可随意发送数据,必须先拥有令牌(Deterministic)
- FDDI网:Deterministic
局域网内传播的三种帧
- 单播(一对一)
- 广播(一对全体)
- 多播(一对多)
要求CSMA/CD
以太网的两个标准
MAC(媒体接入控制):考虑数据传输的问题
LLC(逻辑链路控制):考虑传输两端的问题
LLC子层:比MAC子层更加抽象,为网络层提供服务
MAC帧格式
前同步码:避免一个站刚开始接收MAC帧时,适配器的时钟尚未与到达的比特流达成同步,使MAC帧前面若干位无法接收的问题
帧开始定界符:前六位与前同步码作用一样,最后两个连续的1告诉适配器马上开始接收MAC帧信息
类型/长度(IEEE标准):字段值大于0x0600时(相当于十进制的1536)表示类型,小于时才表示长度(V2标准只能表示类型)
数据(不考虑首部和尾部的18字节)
最小46Bit:保证数据发送完毕前检测出/未检测出的碰撞是有效的
最大1500Bit:数据太长会让昂有的主机长时间不能发送数据,有的发送数据可能超出接收端缓 存大小,造成溢出
FCS:CRC检测
第二层目的地址在前:能快速转发,不需要找resource
MAC地址
以太网环境下LLC被忽略,面向无连接,无应答,不强调控制,控制有代价
MAC地址分为两部分,前面24bit是向IEEE购买(不会导致冲突),后面24bit可以生产商自己设定,生产商生产超过2^24,则需要再买一个
小厂商可以找大厂商拿后2^24的一部分,具体拿那部分由大厂商决定,IEEE不管
路由器有MAC地址,笔记本(终端也有MAC地址),二者在MAC层面上是平等的,但路由器的层次在IP层面更高
第一个bit取1表示组波或广波(全1),是0表示单波
网桥收到这个MAC就广播出去,可以做逻辑控制
需要广播:把信息发给所有主机、不知道发给谁(已知IP,发送ARP广播,收到广播的设备比较IP,相同就发送MAC回来)
帧的结构
PDU:协议数据单元(记忆),对等层之间传递的数据单元。物理层的 PDU是数据位(bit),数据链路层的 PDU是数据帧(frame),网络层的PDU是数据包(packet),[传输层的 PDU是数据段(segment),其他更高层次的PDU是报文(message)。
ALOHA:出现于CSMA/CD之前的协议
在传输数据的同时监听信道,检测到碰撞立即取消所有的传输
Pure ALOHA:设备都可以发数据,如果产生碰撞,就随机停止一段时间再发
Slloted ALOHA:把频道在时间上分段,每个传输点只能在一个分段的开始进行传输,避免了发送的随意性,比Pure稍微优化
监听算法(监听成功后才考虑碰撞)
1-persisit:持续等待,直到前者发送完成
non-persist:不用持续等待,一段时间轮询一下(例如10秒),其他时间可以做其他事
p-persist:总线空闲时,有概率决定是否立即发送(避免与其他站点产生冲突)
如果 colision detected,要发数据的主机就回退数据重发送
发送过程中的监听阶段:
以太网广播式传播给每个设备,由设备独自决定是收下数据还是丢弃数据
监听到冲突后,广播jam signal:32位或更高的连续个1,所有设备都会收到该信号表示产生冲突,再进行其他操作
总结上述传输信号过程
- 主机希望传输
- 判断是否检测到载波
- 准备帧
- 发送帧
- 看是否由冲突发生
- 持续传数据
- 判断是否传完
- 一次传输完成
- 广播 jam信号
- 计数尝试次数
- 尝试次数是否太多?
- 尝试次数太多就终止(网络(局域网)不能用,需要维护)
-
- 尝试次数不是很多,等一段时间,取随机数,以10M以太网为例 (1-10):随机 2^k-1
无线局域网
有/无基础设施的局域网:两个移动节点是否直接通讯,不需要第三方ap支持(无线局域网的一种分类)
特点
每个设备都有覆盖范围
相邻基站才能通信
通信距离短
AP
就是传统有线网络中的HUB,也是组建小型无线局域网时最常用的设备。AP相当于一个连接有线网和无线网的桥梁,其主要作用是将各个无线网络客户端连接到一起,然后将无线网络接入以太网。
无线局域网标准
802.11 无线局域网从无到有的过程
802.11b 速度有提升
802.11a 不使用DSSS(扩展频谱)机制(用正交频分复用),速度更高,推出仓促,可用性较差,适用于较短距离通信
802.11g OFDM 正交频分复用,比802.11a好
802.11n 当前在用
有基础设施的局域网:
基本服务集内两个设备即使靠的再进也需要通过ap转发
客户端如何连接ap,必须先发现ap,发现的两种方式:
主动扫描:主动发消息来获取ap的反馈
被动扫描:被动接受消息从中获得ap信息
https://blog.csdn.net/lixuande19871015/article/details/77674881
必须知道SSID
WLAN的帧格式
序号控制:确定是哪个帧
持续期:对通信有个预先估计
去往ap和来自ap不可能同时为1或为0
无线网络存在的问题
有线网络:设备发信号总线上每个设备都能收到
无线网络:能收到信号的范围有限(不能用CSMA协议)
Hidden:AC都把数据发给B,产生冲突(AC相互不了解)
Exposed:B发数据给A但C能看到这个信号,以为发给自己,所以此时C不会给D发数据
[CSMA/CA工作流程][https://blog.csdn.net/qq894040717/article/details/82426965]
A给B发RTS,C收到RTS就知道现在不能给B发数据
第二层设备
网卡
使计算机和局域网能通信
网桥
[集线器、网桥、交换机的区别][https://blog.csdn.net/xcymorningsun/article/details/52882479]
网桥可以优化使用集线器(Hub)带来的不足,将一个局域网通过网桥划分为几个部分,这样的结果是
- 将大冲突域变成小的冲突域 C(n,2)——2*C(n/2,2)
- 网桥连接的两部分之间通信量变大时,网桥可能成为瓶颈
透明网桥
“透明”是指局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的,帧经过哪些网桥由网桥的自学习算法决定
站表是动态的,最开始是空表
空表:通过自学习算法来补充
动态:每个数据有生命期,某段时间未改变则删除数据
透明网桥的问题
目标地址未知时必须向网络上的所有设备发送广播,太多会导致网络风暴
源路由网桥
主机知道发送某个帧到目的地会经过哪些网桥,对网的利用(路径)更加充分,但带宽不一定高,还会有其他的缺点
交换机
构造虚拟电路来通信
虚拟电路:它仅在两个节点需要通信时存在,并且在交换机中建立。(避免某条线路被两个计算机通信唯一占用)
三种设备和冲突域
-
Bridge:虽然可以隔离冲突域,但也会增加时延,因为需要判断收发情况
-
Switch:比Brige效果更好
- cut-through:看到中间一部分就把数据读过去(把目的地址放在前面的原因)
-
Router:和上面的有一定区别与联系
目前研究热点:SDN
第四章-网络层
只经过第二层来通信:无法知道数以亿计的主机的MAC地址,所以需要更高的层次
网络层的主要任务
实现不同网络之间的交流,避免出现上述问题。不同网段的帧可能有不同格式,但第三层会把它们转换成相同格式(IP)协议
数据链路层面向连接是相邻设备的连接,例如保证两台相邻交换机直接可靠通信
传输层面向连接是逻辑上的连接,商定终端AB的规则,不管AB之间的设备如何连接(低层可以面向连接也可以无连接)
[面向连接-电路交换 无连接-分组交换的区别][https://zhidao.baidu.com/question/536649235.html]
路由器基本功能
- 把数据包装成ip数据包
- 采用某些算法决定ip数据包的转发
ip数据包的格式
首部用一行4字节方式
首部=固定部分(20字节)+可变部分
固定部分
- 版本:占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致.日前广泛使用的 IP协议版本号为 4 (即 IPv4).IPv6 目前还处于起步阶段.
- 首部长度:最大可表示长度为15(1111)*4=60字节,所以可变部分最大值是60-20=40字节,最小为0
- 服务类型,用来获得更好的服务。这个字段以前一直没有被人们使用
- 优先级:报文根据优先级排队,优先级高先发送
- D:最小延时 T:最大吞吐率 R:最大可靠性 C:最小代价(四位一般最多1位取1,不能都取1)
- 总长度:首部及数据之和的长度,占16bit,所以数据报的最大长度为 2^(16)-1=65535字节.在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,即最大传送单元 MTU (Maximum Transfer Unit).当一个数据报封装成链路层的帧时,此数据报的总长度 (即首部加上数据部分)一定不能超过下面的数据链路层的MTU值,否则要分片.
- 标识:IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段,用于确定数据报片属于哪个数据报,以便最后能正确重装为完整的数据报(完整数据报会分片)
- 标志:3bit,但目前只有2bit有意义. 最低位记为 MF MF=1即表示后面"还有分片"的数据报.MF=0表示这已是若干数据报片中的最后一个.标志字段中间的一位记为DF,意思是"不能分片",只有当 DF=0时才允许分片.
- 片偏移:13bit.较长的分组在分片后,某片在原分组中的相对位置.也就是说,相对用户数据字段的起点,该片从何处开始.片偏移以 8个字节为偏移单位,这就是说,每个分片的长度一定是 8字节(64位)的整数倍.
- 生存时间:记为 TTL (Time To Live)数据报在网络中可通过的路由器数的最大值。防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源
- 协议:指出此数据报携带的数据使用何种协议(高层协议),以便目的主机的 IP 层将数据部分上交给哪个处理过程
- 首部校验和:只检验数据报的首部,但不包括数据部分.这是因为数据报每经过一个路由器,都要重新计算一下首都检验和 (一些字段,如生存时间,标志,片偏移等都可能发生变化),不检验数据部分可减少计算的工作量.
ip地址
长度为4个字节,为方便查看,每8位代表的十进制划分一段,共4段,例如:133.14.17.0
分为两部分:网络号NetWork ID、主机号Host ID(网络号标识的是Internet上的一个子网,由ARIN分配;而主机号标识的是子网中的某台主机,由网络管理员分配)
路由器只需要把报文送到对应的network,后面的host可以根据第二层机制发送到达,可以减少路由表复杂程度NetWord + Host=4字节,但二者具体取值不确定,根据ABC类地址来划分(D类用于IP多播,E类保留为以后用)
[同网段/不同网段主机间通信][https://blog.csdn.net/rhx_qiuzhi/article/details/79830943]
注意:不同类地址可表示的主机位必须减2,因为host全0表示该ip地址是本主机所连接到的单个网络地址,常用于路由表;全1表示广播地址,向本网的所有主机发送数据包(这两个地址不分配给主机)
特别注意:受限广播地址 255.255.255.255
- 广播地址作用/受限广播地址作用
- 广播地址:发送到对应网段所有主机
- 受限广播地址:
- 是否都经过路由器转发
- 广播地址:不经过
- 受限广播地址:经过
- 广播地址到MAC地址(非自身MAC地址)是否全F
- 发给本网段:全F
- 不同网段:网关的MAC
- 详见上述同网段/不同网段的通信
划分子网
完善IP地址的设计,解决不合理的情况
例:一个公司人力资源部/财务等二者资源不希望被对方看见,但又不想买新的network,就从已购买的network后面的host分出几位来人为划分子网
每个子网都是独立的网段,一个网段的广播域不会到另一个网段
划分计算
从Host借的位数:
- 最少借两位:借一位可能与某个网段产生混淆(xx.0原来就表示某个网段)
- 最少保留两位(限制了最多借位):只保留一位无意义(host留出两种情况做特殊用)
注意平衡子网的个数与地址空间的利用率(求利用率处以254)
子网掩码:用于标识ip地址哪些位用来表示主机所在子网
注意如何根据设计计算子网掩码和根据子网掩码和ip地址计算主机所在网段
路由器
寻路:决定从哪个端口发出数据,根据算出的netid做转发,从哪边转发根据不同的协议有不同的选择(跳数/时延等)
例:A5发到B5,假设A5知道B5的ip,但此时不知道B5的mac(只能知道同一网段的)
- A5解析到目标ip不在本网段,发给网关(这里是路由)
- 路由查询路由表,从对应端口发送给B5
注:每个端口必须有一个单独的、唯一的网络地址如果一个路由器的不同端口有相同的网段,则其他端口发来的数据会被丢掉(不知道发给哪个端口)
配路由器(路由表)
- 静态:网络管理员手工建立路由表,适用于简单网络环境,使网络管理员更易于了解对应网络
- 安全性,某个网段(财务部门)不希望信息被转发,则该网段不被添加到路由表
- 测试链路的连通性
- 动态:路由表由路由器跟据一定算法动态建立
- 自适应网络状态的变化,针对大规模网络
总线线路对应的是一个交换机
ARP协议
目的:已知对方ip,找到它的MAC地址
ARP表:记录当前掌握的ip和mac关系,保存在内存中,先在表中找ip对应的mac(每个条目有生命期),找不到再用ARP机制
相当于自学习,主机收到的报文有mac和相应的ip,记录在arp表中
例:A希望把数据发给同一网段的C,但不知道C的MAC地址
- A发送广播,同一网段的BC都可以收到广播
- 各个设备看请求ip和自己的ip是否一致,一致就收下,并知道A的MAC,再发送自己的MAC给A,这样A知道了C的MAC地址,同时ARP表也学习到了这个数据
- A把数据发给C
如果发送到的是不同网段?
- 方法1:默认网关
- 方法2:Proxy ARP
默认网关:路由器上连接到源主机所在网段的接口的IP地址,主机借助网关将数据发出去
Proxy ARP:针对未设置默认网关的情况 [代理ARP的作用和原理][https://blog.csdn.net/junjun222222/article/details/42555189]
路由协议
可路由协议(Router protocol):消息传输经过网络层
- 注意与Routing protocol的区别:Routing protocol决定了Routed protocol具体是怎样路由的
不可路由协议(Non-routable protocal):消息传输经过12层,不经过第3层
例:微软为每个window电脑生成一个唯一标识号,类似MAC,局域网可以直接通过这个表示号通信
动态路由协议两类
IGP(内部网关协议):AS内
EGP(外部网关协议):AS与AS之间
IGP又分为两类
DVP:基于跳数(RIP, IGRP)
LSP:基于带宽(OSPF)
DVP举例:
ABC定时(可人为设定)把自己路由表告诉给邻居(但A不能告诉C,邻居视角)
A告诉B我能到达W,所以B知道能1跳到w(A和w直连,0跳),其余类似,再过30s就可学习到z->2,因为第一个30sB学习到z->1,第二个30sB把更新的表给A学习,还有另外的计时器用于从表中删去无效的内容
LSP举例:
每个路由器向本自制系统同所有路由器发信息,从而获得一个全局的拓扑图,知道全网有多少个路由器,以及哪些路由器是相连的,其代价是多少,最终使图根据SPF算法形成树,从而确定了路由表
区别
LSP:A知道具体通过哪些设备到达目的地
DVP:A只知道通过B到达目的地,但B具体怎么到达目的地A不知道
RIP:名词记忆
IGRP:思科设备使用
基于各个因素计算Metric,性能较好
OSPF:cost和带宽成反比,cost越低越好
经典路由一个网段中大家都是相同掩码
有类网络:根据ip能知道该地址属于ABC的哪一类(子网掩码固定)
无类网络:子网掩码不固定,因为会分出一部分主机位做子网
VLSM:可变长子网掩码,允许同一层次的网段有不同的子网掩码(原来使相同的,比如C类地址借2个主机位,则划分的四个网络有相同的子网掩码255.255.255.192)
目的:解决一般子网划分的浪费问题,不可能每个子网的主机数一致(比如一个子网有128个主机,另外几个都只有个位数主机,则按128划分就会浪费几百个ip)
原理详见:https://blog.csdn.net/qq_33414271/article/details/78636303
子网数减2问题:
老式路由器无法将全0子网号与全1子网号和对应的母网区分开(可以区分子网,不是有类路由)
现在的路由一般有相关协议能做区分,所以不需要减2(主机数仍需要减2)
理解109和110的区别
109:7个网段(路由与路由之间的连线也属于一个网段,Brisbane少画了一个"|—"),但路由与路由之间的网段只需要两个ip(给两个路由端口),按照平均分配每个网段有30个ip,这样就会浪费28个
110:不均分,路由器连线之间只需要2个ip,这样相邻的网段差就是196-192=4
eg.Perth下需要60hosts,所以是6个位,所以子网借两位,最多四个子网,不能满足条件(7个子网,传过来的ip可能属于7个网段的任意一个),此时就需要不均分
ICMP:网际控制报文协议
作用:为了提高ip数据报交付成功的机会
类型
- 差错报告
- 目的站不可达
- 源站抑制(不再使用)
- 超时
- 参数问题
- 改变路由
- 查询报文(ping就是一种查询报文)
- 回送请求和应答
- 时间戳请求和应答
- 地址掩码请求和应答(不再使用)
- 路由器询问和应答(不再使用)
注意:ICMP报文是达到某种条件被触发的,而不是整个网络用ICMP报文通信
第五章-传输层
传输层的应用:同一台主机上有许多程序同时用到网络,当一个数据包从互联网发来,需要某种机制确定被哪个进程所识别
-
定位:为多个进程服务
-
传输可靠性控制(交换机和路由器没有,出错只会丢弃),基于TCP而UDP没有
发展过程:TCP——UDP 现在SCTP(流控制传输协议,可用于语音视频传输控制)
TCP(可靠)
- 检查(出错就resend,重传一定次数仍是error就失败,UDP发现出错就丢弃)
- 面向连接
- 确认传输成功
- 流控制:解决通信双方因处理速度不同导致数据接受不完整的区别
TCP和UDP都用端口号(port)来标识进程
port:2字节(0-65535)
端口号分配(同一个端口号针对不同主机可能代表不同的进程)
1-1023:系统占用,提供特定的系统服务
1024-49151:没有固定作用,可以复用
49151-65535:客户端进程使用,可以复用
TCP报文段的首部格式
- 源/目的端口:分别用2B表示
- 序号:每个字节占一个序号,这里的值x是本报文段所发送数据的第一个字节的序号,一个报文携带100个字节,则下一个报文段序号从x+100开始
- 确认号:期望收到对方下一个报文段的第一个字节的序号
- 数据偏移:实际表示TCP报文段的首部长度(首部长度是可变的)
- 保留:以备今后使用,目前无用置0
- 后面的6bit用于说明本报文段的性质(可以多位置1)
- URG:配合紧急指针使用,将紧急数据放到本报文段数据最前面
- ACK:ACK=1时有效
- PSH:立即发送,不等缓存满
- RST:让接收方立刻中断连接
- SYN:SYN=1表示这是一个连接请求或连接接受报文
- FIN:用于正常释放连接
- 窗口:控制接收方发送数据的大小,因为自身的缓存是有限的
- 检验和:检验首部和数据部分
- 紧急指针:指出紧急字段有多少字节
为什么需要可靠传输?
资源子网的AB需要传输数据,他们经过通信子网,但通信子网不受AB控制,不可靠,可能会被篡改,所以AB需要经过一定协商
缺点:无法百分之百保证,A——>B 需要B给A确认,B——>A,(B如何知道A收到确认?需要A给B应答),会无限循环下去,最后一次传输始终无法保证正确性,因为中间的通信子网是不可靠传输,TCP只需保证一定概率的正确传输,一般确认三次概率就相当高了
三次握手建立连接
一种DOS攻击的方式:挟持大量被黑主机(“僵尸电脑”)发送大量请求,但不发送第三次握手(程序控制),服务器消耗大量资源来解析这些主机发送的请求,导致无法响应正常请求
可靠传输协议
停止等待:等待发送的消息被确认再发送下一个消息,信道利用率极低
连续ARQ:提高信道利用率
传输层主机主机之间对发送数据量可以协商,实现流量控制
四次握手释放连接
注意:服务端发送应答并且把之前(客户端发送结束请求之前)处理的请求发送给客户端,此时B还会给A发送数据,但A没有数据发送
UDP(不可靠)
为什么需要UDP:UDP传输速率更快,消耗的资源更少,缺点是正确性不如TCP
TCP不适合大量数据传输,有的应用不需要数据的准确性而需要数据的即时性,例如比赛直播,某个数据不正确只是某个局部画面模糊,但观众能获得整个画面的大概信息
NAT:使私有ip转化为公网ip(私有ip不能上公网)
外网:广域网,外网ip是世界上唯一的ip
内网:局域网,内网ip在这个局域网内是惟一的(不同局域网可以有相同ip,子网掩码不同,可以区分不同网段,这也说明了NAT可以解决ip剩余量不足的问题)
内网不能直接访问外网,需要经过某种转换才能访问外网,这种转换就是NAT
静态NAT、动态NAT:静态/动态生成转换表,一个主机对应一个公网ip
缺点:内网主机很多,公网ip很少,内网主机无法全部上公网
PAT:解决上述问题
用内网ip+端口号来对应公网ip+端口号,这样不同主机可以访问相同公网ip,只是占用的端口号不同(前面是一个主机占用一个公网ip的所有端口,这里是多个主机分别占用一个公网ip的端口)
第六章-会话、表示、应用层
OSI的应用层次:会话、表示、应用层(相当于五层协议中的应用层)
半双工:网上打牌,同时只能有一个人在出牌。
会话层:传输层确定了进程间的通信规范,而会话层用于管理和控制进程之间的会话,例如是半双工还是其他的(传输层确定能通信,会话层确定怎么通信)
- CheckPoint:把会话分割成明显的会话单元,这样当网络出现故障就从最后一个检查点开始重传数据(下载100M的文件,下载到95M网络断线只需要再次下载最后5M)
表示层:数据标准化(某个指令在不同系统上命令不同,表示层让他们标准化),数据压缩,数据加密
- 标准化:让不同系统能统一数据标准,正确通信
- 压缩:降低文件大小,降低传输费用
- 加密:负责传输的安全
应用层:规定一些高层的数据规范,直接与用户交流
- HTTP协议
HTTP协议(超文本传输协议)
- 面向事务:事务是指一系列的信息交换,而这一系列的信息交换是一个不可分割的整体,要么所有信息交换都完成,要么一次交换都不进行(类比java事务)
- 无状态:同一个客户端第二次访问同一个服务器上的页面时,服务器不知道它第一次访问时的状态
HTTP的请求报文结构:
方法:GET、POST等,不同的请求方式服务器的处理过程不同(编程决定)
URL:用于定位互联网资源,格式为<协议>://<主机>:<端口>/<路径>
版本:HTTP协议的版本,一般是HTTP1.0和HTTP1.1
HTML:超文本标记语言(HTTP定义了浏览器如何向服务器请求文档, 以及服务器怎样把文档传送给浏览器,而文档以何种形式被用户看见就需要HTML来规定)
FTP&TFTP:用于文件的传输,前者面向连接,后者无连接(有无三次握手)
FTP工作步骤:
主进程(端口号21)用于接收用户发送的连接请求,从属进程有提供传输,有另外的ip和端口号(20),两个端口(一个控制一个传输)
HTTP无连接,一个请求完链接就断开,无记忆,FTP面向连接,必须主动quit链接才断开,否则该链接一直被保持
Telnet:远程终端协议,用于用户通过本机对远地主机操作
NVT:网络虚拟终端,不同服务器的命令对应功能可能不一样,通过NVT转换成自己支持的格式
发电子邮件:不是本地发送,是服务器帮你发,需要在服务器上注册一个账号(id@xxx.com)唯一标识一个身份。邮件一般存在邮件服务器上,客户端发送请求给服务器希望发邮件,邮件开启一个进程来发送邮件。
相关协议
SMTP:发邮件协议,参见41Sender——sina.com——mail.cctv.com
POP3:收邮件协议,参见mail.cctv.com——Receiver
MIME:进行非ASCII码格式与ASCII码格式的转换
SNMP:简单网络管理协议 ,定义了网络管理的标准
DNS:把互联网上的主机名字转换为IP地址
hosts文件:基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析,如果发现是被屏蔽的IP或域名,就会禁止打开此网页!
域名是分层结构,从左到右层次越来越高,域名从左到右指向范围变大
解析过程:主机向本地域名服务器——递归查询、本机域名服务器到根域名服务器——迭代查询
第七章-路由与路由器
路由与路由器
路由器的硬件结构(详见:https://wenku.baidu.com/view/b9057ae319e8b8f67c1cb989.html):
本质:专用功能计算机,在一般PC上做了改进,不要显示器键盘,降低成本
RAM:易失性,在运行期间暂存操作系统和数据(和普通计算机的RAM一样),例如路由表项目、ARP缓冲项目、日志项目和队列中排队等待发送的分组。此外还有运行配置文件(running-config)、正在执行的代码、IOS操作系统和一些临时数据信息,存取速度最快
NVRAM:非易失,仅保存启动配置文件(startup-config,和running-config有一定区别:https://zhidao.baidu.com/question/332639470.html),容量较小
Flash:可读可写,在操作系统重新启动或关机后仍能保存数据,存放当前使用的IOS,也能存放旧版IOS,这样当升级出现问题时可迅速退回旧版操作系统,从而避免长时间的网络故障
ROM:只读,主要包含
- POST:用于检测路由器中各硬件部分是否完好(文件/磁盘/CPU等),正常后就加载操作系统
- BootStrap:用于启动路由器并载入IOS
- 备份的IOS:以便原有IOS受损时使用
路由器接口
- AUX:利用拨号方式进行远程配置
- console:连接至计算机,通过计算机的程序进行本地配置
路由器启动过程
1.加电自检:扫描硬件并与ROM的信息对比判断是否出现异常
2.POST没有问题就执行BootStrap引导程序(如查找并运行IOS)
3.找IOS并加载到RAM
- 先在FLASH中找IOS,找不到再去TFTP找,还是没有就去ROM中找
4.找startup-config并加载到RAM
- 先在NVRAM中找找不到再去TFTP找,还是没有就用命令行手动配置
5.进入用户模式,完成启动过程
路由器:进行路径选择和消息转发,实现数据从一个网段到另一个网段
实现路径选择:静态路由/动态路由(二者的比较:https://blog.csdn.net/bbc955625132551/article/details/78110267)
管理距离:配置静态路由时的可选配置,指一种路由协议的路由可信度。一台路由器上可能会启用好几种不同的路由协议,路由器根据管理距离决定相信哪一个协议,并添加相关信息至路由表
路由收敛:从网络结构发生变化(路由表会发生变化)开始,到网络中所有路由设备中路由表重新保持一致的状态转换过程
AS内的动态路由协议主要有三种:DVP/LSP/Hybrid(混合式)
DVP:基于跳数(参见第四章路由协议),可能产生路由环路问题(https://baike.baidu.com/item/路由环路/8975272?fr=aladdin)
解决方法
- 定义最大跳数,达到该值还未送到就认为不可达,将不再接受来自访问该网络的任何路由更新信息(因为原来两个路由器都认为依赖对方可以到达,从而计数到无穷)
- 路由毒化:在上述方法的基础上,网段出现故障,直连的路由器向相邻路由器发送更新信息,跳数设置为无穷大,毒化信息会传给所有路由器,告诉它们该网段不可达,不再接收更新信息
- 水平分割:单向反馈,A向B学习到某网段路径信息,就不再向B发出关于该网段路径的更新信息
- 控制更新时间:某网段出现故障,直连路由器启动抑制计时器(抑制时间大于更新信息发送到整个网络的时间),并标记该路由不可访问。抑制时间内若接受到邻居发来的更新信息,度量值比原来更好,就标记可以访问并取消抑制计时器,否则更新将被忽略
LSP:基于链路状态
需要考虑的问题:相比于DVP,LSP需要更多的内存及执行更多的处理;初始淹没期间的带宽问题
38?
Hybrid Protocol:混合
- EIGRP:结合了LSP和DVP
- IS-IS:分级的链路状态协议
默认路由:是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。目的地不在路由器的路由表里的所有数据包都会使用默认路由。(详见书P133)
第八章-路由协议
RIP协议
基本原理:路由器交换信息,基于距离构建路由表,每个路由器只知道接下来应该到哪个路由器才能实现最短距离传送,但不知道完整的路径
RIPV1
- 每30s向邻居广播一次分组
- 最大跳数为15,等于16相当于不可达
- 负载均衡:路由度量值一样时,可以将数据分摊到一样度量值的路由进行转发,RIPV1默认是4条路由,最多6条,超过6条只会从中选取6条
- 限制
- 有类路由协议,不携带子网掩码
- 在255.255.255上以广播形式发送更新,其余路由器即使不启用RIP协议也必须先解析报文才知道这个协议是RIP,然后把它扔掉;该路由器连接网段的主机也受影响(降低效率)
- 不支持身份认证?
- 不支持VLSM和无类域间路由(CIDR?)
配置RIP协议
router rip //为某个路由器配置rip协议
(version 2 可选,表示配置的是RIPV2协议)
network 1.0.0.0 //设置参与到RIP进程中的路由器直连网络,即确定路由器连接1.0.0.0网段的接口启用rip协议
network 2.0.0.0
RIPV2
- 无类路由协议,携带子网掩码
- 在224.0.0.9上以组播发送,减少资源消耗(224.0.0.9更有效)
- 支持认证
- 支持VLSM和 CIDR?
- 180s:某个路由在180s内未收到相邻路由器的更新路由表(收到更新路由表和自身是否更新是两回事),则把此相邻路由器记为不可达路由器,将距离置为16
- 240s:如果在240s后(再过240s)仍未收到该路由器的更新,则把有关该路由器的路由信息从路由表中删除
- 使用水平分割来阻止路由环路
debug ip rip:显示了该路由器所有启用rip的接口通过交换发送和收到的路由信息(可以自己配置路由器来尝试)
OSPF协议
基本原理:基于链路状态构建全网的拓扑结构图,每个路由器采用Dijkstra算法构造以自己为根的spf树,再通过spf树得到最佳路径放入路由表
OSPF将一个自治系统(AS)划分为若干个更小的区域(area),每个区域只考虑自己内部的事情。减少了整个自治系统的回路,这种设计具有可扩展性,从而能使OSPF能够用于规模很大的网络
OSPF相关概念
- link:物理连接,不同的物理连接有不同的速度
- link-state:用多个不同的参数去标识一个链接的状态,例如带宽、时延、费用
- cost:仅和带宽成反比
- area:逻辑划分,同一个area内link-state的某些参数是相同的
- 同一个area的路由器(不同的area的路由器即使相连也不会建立)会建立邻居关系,有相同的拓扑
性能优化:多路复用电路上DR负责与所有路由器通信其余路由器只通过DR间接与其他路由器交换信息,BDR是DR的备份(将链接数Cn,2降低到O(n))
Area
- 每一个area用32bit唯一标识(area0为0.0.0.0)
- 分层次划分区域,不同区域之间的通信需要经过area0,所以必须和area0相连,而且这种连接方式可以防止回路(见PPT31)
- ABR:边界路由器,连接area0和其他区域,一个ABR最好不要跟多个area相连(一般不超过5个)
DR&BDR
-
OSPF网络类型
- point-to-point、point-to-multipoint不需要DR和BDR
- NBMA多路复用但不广播(区别于BroadcastMultiaccess),左边某个路由器在一次传播只会唯一到达右边的一个路由器
- 广播网络需要
- 还有两种类型分别是一个路由器连多个pc;一个路由器的某端口连多个路由器
-
224.0.0.5:由DR/BDR发出,被所有运行OSPF进程的路由器接收
-
224.0.0.6:其他路由器发送给DR/BDR
-
一个area有多个链路,每个链路有BDR和DR,同一个路由器可能在链路1是DR但在链路2是BDR
-
选择DR和BDR
- 先比较Priority,值最大和次大的分别为DR和BDR,相同就比较Router ID,同上
- Priority:手工设置
- Router ID:选择IP地址最大的Loopback接口的IP地址为Router ID;假如只有一个Loopback接口,则Router ID就是这个Loopback的地址。如过没有Loopback接口,就选择IP地址最大的物理接口的IP地址为Router ID,如果接口down则路由器需要重新建立邻接关系(loopback一般不会down)
- 先比较Priority,值最大和次大的分别为DR和BDR,相同就比较Router ID,同上
OSPF分组
数据部分:五种类型
常见类型:问候分组(hello)
相邻路由器每隔10s交换一次问候分组,以知道哪些邻站可达,若40s内未收到某个相邻路由器发来的问候分组,则可认为该相邻路由器不可达,应立即修改链路状态数据库,并重新计算路由表
虽然OSPF是基于UDP报文,但它本身实现可靠传输(seq确认机制)
OSPF主要步骤
- 建立邻居关系:相邻路由器互相发送hello包,将邻居添加到邻居数据库
- 选择DR&BDR(点对点网络可跳过该步骤)
- 如果新的OSPF路由器以更高的优先级或路由器ID加入网络,则当前的DR和BDR不会更改。只有当前DR失败时,它才会成为新的BDR;只有当前DR和BDR失败时,它才会成为新的DR。
- 传递信息:路由器获得全网的拓扑结构图,保存在链路状态数据库内
- 计算:根据数据库每台路由器以自己为跟建立最小生成树,在路由表中建立对应路径
- 维护路由信息:采用某些机制应对可能出现的变更
- A发生变化,向DR/BDR发送消息,DR把变化信息告诉相邻路由,相邻路由再各自转发
局域网交换与VLAN
交换机主要功能:基于MAC地址转发帧
对称交换:相同带宽端口间的交换,如果带宽不同时可能产生瓶颈
非对称交换:不同带宽端口间的交换,通过交换机内共享的存储缓冲器实现,根据带宽不同,动态分配缓冲空间的大小,从而避免因缓冲区溢出导致的数据丢失。而对称交换的存储缓冲器一般是基于端口的,不同带宽的端口有不同大小的存储缓冲器,容量固定。
交换方式
存储并转发:缓存整个数据包,然后进行CRC检查,处理完错误后再取出数据包的目的地址进行转发
直通:输入端口检测到一个数据包时,就检查包头,根据包头的目的地址直接转发
碎片隔离:仅检查数据包长度是否够64字节,如果小于64字节,则丢弃该包(介于存储并转发与碎片隔离直接)
三层交换机:主要用于网段划分后,相同网段不同子网间数据的快速交换,而路由器侧重于不同网络之间数据的转发,二者侧重点不同,虽然第三层交换机有部分路由器的功能,但二者不能等同
四层交换机:交换不仅依赖于MAC和IP地址,还依赖端口号,从而能根据应用程序的特点来控制交换,实现应用层的访问控制和服务质量保证。
STP(生成树协议,和OSPF协议的SPF树不是一个东西):在网络中建立树形拓扑,消除网络中的二层环路
二层环路:危害更大,没有第三层中类似最大跳数的检测机制,使得环内交换持续进行,直到其中一个交换机关闭或链路断开,对于CPU的占用极高
二层环路产生原因:交换机A发送广播包,B收到,如果B和A互连,则B会发广播包给A,这样发出去的包又会从另一端口接收,接收又发送,形成环路。
STP基本原理:通过在交换机之间传递一种特殊的协议报文BPDUS(网桥协议数据单元)确定网络的拓扑结构(树形),从而避免了环路
STP树的形成过程(选举例子详见:https://blog.csdn.net/zainwei1766/article/details/41707447)
- 选举根桥:拥有最低BID的交换机作为根桥
- 选举根端口:非根交换机去往根桥路径最优的端口(每个非根交换机有且只有一个)
- 非根桥到达根桥的路径可能有多条,每条的开销不一样(cost根据累计带宽确定),选取cost最小的那条路对应的端口,如果两条路cost一样,比较上行BID(A—>B—>根=A—>C—>根,则比较B和C的BID),如果A到B有两条路(假设BID比较完毕),则选A端口号小的那条
- 选举指定端口:交换机向所连网段转发配置BPDU的端口, 非根交换机与非根交换机之间连接线的两个端口(除去包含根端口的连接线)中必定有一个端口为指定端口。 一般情况下, 根桥的每个端口总是指定端口,与根端口直连的端口为指定端口
- 比较两个非根交换机的根端口到达根桥的最低链路开销,最低开销的非根交换机所在连接线的端口作为根端口,开销相同比较两个交换机的BID,BID相同比较端口号
- 阻塞预备端口:既不是指定端口也不是根端口
BPDU报文携带了相关的信息用于确定根桥、根端口、指定端口(解释:https://blog.csdn.net/hrl7752/article/details/77648606)
BID:8字节
优先级(前2字节)+交换机MAC地址(后6字节),BID越低越好
状态迁移
VLAN(虚拟局域网):把同一物理局域网内的不同用户逻辑地划分成不同的广播域,某些情况下不希望通过交换机的信息被发送到所有与之相连的机器上,划分VLAN后交换机就将它的不同端口隔离,可以解决很多问题
为什么需要VLAN:https://blog.51cto.com/6930123/2115373
特点
- 按逻辑划分,同一个VLAN内的工作站没有物理范围上的限制
- 通过软件设置
- 一个VLAN就是一个广播域
- 不同VLAN间需要通过路由器/三层交换机通信
划分VLAN
- 按交换机端口
- 按MAC地址
- 基于规则:按照网关设置的规则自动划分
- 按网络层:每个主机的网络层地址或协议类型
- 按IP组播
- 按用户:用户需要输入用户名和密码,得到VLAN管理的认证
同一个VLAN中的所有节点都连接到同一路由器接口:提供更高的安全性
VLAN结构
bacbone(主干网):两个交换机之间能传多个VLAN的链接,是高速网络
识别不同VLAN
帧过滤:检查每个帧的特定信息(MAC地址或第3层协议类型)(VLAN根据MAC地址划分)
帧标记:帧里面有标签来表示唯一的VLAN(IEEE802.1Q和Cisco的ISL标准)
静态VLAN:网管事先把端口分配到不同的VLAN
动态VLAN:交换机选择转发时会请求指定的服务器,服务器根据MAC帧确定属于哪个VLAN
Access Link:连接交换机只属于一个VLAN的链路
Trunk Link:连接交换机与交换机或路由器的链路(native VLAN:主干链路发生故障时使用的VLAN)
路由器优化:
如果一个物理接口对应一个VLAN,则对物理接口的数量要求很高,但由于路由器物理局限性不可能有大量接口,所以产生了路由器子接口
子接口:通过协议和技术将一个物理接口虚拟出来的多个逻辑接口
优点:打破物理接口的数量限制,在一个接口中实现多个VLAN间的路由和通信
缺点:带宽占用
WAN
广域网详解:https://blog.csdn.net/stardsd/article/details/50959528
WAN:广域网
WAN连接不同的局域网、城域网,不同的LAN在ip层次标准相同,但12层标准可能不一样,物理线路等,所以广域网主要关注的是12层的数据
广域网的结构
CPE:客户终端设备,下连具体的业务设备,提供用户的相关网络业务接入
LocalLoop:CPE和CO之间的线,由ISP设置
CO switch:交换机,用于CPE接入WAN
toll network:广域网内部结构,一般由交换机和trunk链路构成
WAN链路连接方案
广域网可以提供面向连接和无连接两种服务模式,对应于两种服务模式,广域网由两种组网方式:虚电路、数据包
虚电路
- 通信前建立一条从源节点到目的节点的虚电路(逻辑连接)
- 通过虚电路进行数据传输
- 传输结束释放虚电路
- 每个交换机维持一个虚电路表
- 不能独占带宽(区别于电路交换)
SVC:交换型虚电路,临时性连接,电话服务和ATM环境使用
PVC:永久性虚电路,提前设定好的,永久性连接,X.25网络和帧中继使用
WAN设备
Modem(调制解调器,又称CSU/DSU):实现数字信号和模拟信号的相互转换,主要用于电话网络的数据通信
ISDN终端适配器:将非ISDN标准终端的外部接口转换成ISDN标准接口的设备,使现有的非ISDN标准终端(模拟话机、G3传真机、分设备、PC机等)能够在ISDN网络上运行
WAN应用在物理层
描述如何为广域网服务提供物理上的支持
描述DTE(数据终端设备,如PC、路由器)和DCE(数据通信设备,如Modem)之间的接口
- 有许多协议规定了接口,如EIA/TIA-232、X.21、V.35等
WAN应用在数据链路层
描述单挑链路上帧的传输机制
- 点到点
- 点到多点:与非广播多路访问有区别
- 广播多路访问
- 非广播多路访问:不支持广播功能
相关协议
- PPP:点对点协议
- HDLC(高级数据链路控制):支持点对点、点对多点
- FR(帧中继):非广播多路访问
- ISDN(综合业务数字网):利用了PPP
- LAPB(链路访问过程平衡):一种特殊的HDLC
PPP&HDLC(这里特指cisco HDLC)
具有相同的帧格式,PPP是ISO标准,HDLC是cisco标准。HDLC插入专有类型代码,这意味着HDLC框架不能与其他供应商的设备互操作
PPP
串行链路上使用最广泛的第2层协议
特点
- 网络协议多路复用
- 动态分配IP地址
- 身份认证:PAP、CHAP(二者认证方式不同,后者安全性更高)
- 压缩
- 错误检测
PPP协议的组成
- 使用ISO-HDLC作为封装第三层数据报的基础
- 建立、配置和测试数据连路连接的链路控制协议(LCP)
- 网络控制协议(NCP)
Flag:首部第一个字段或尾部字段,规定为0x7E
Address:0xFF
Control:0x03
Protocol:协议字段决定了Data的信息类型
Data:不超过1500字节
FCS:CRC检验
当Data中出现了特殊字符需要进行转码
PPP协议运行的四个阶段
- 建立链路(LCP)
- 发送LCP的配置请求帧,信息字段包含特定的配置请求(验证等方式,是否支持压缩、多链路捆绑、回拨)
- 另一端可以发送以下的一种响应(配置确认、配置否认、配置拒绝)
- 建立是一个相互的过程,即A向B发送请求,B也向A发送请求,发送响应的目的是让AB协商最后达成共识
- 验证(PAP/CHAP)
- 发起通信的一方发送一串信息,用于接收方验证其身份
- 网络层协议配置(NCP)
- 设备发送NCP包来选择和配置一个或多个网络层协议,此后,对应的网络层协议的数据报可以通过该链路传送
- 配置完毕后链路两个PPP端点就可相互发送分组
- 终止链路(LCP)
- 用户请求、产生错误都会终止连接
PAP身份认证
- 身份认证可以是单向认证或双向认证,下面以单向认证为例
- 被认证方(客户端)向认证方发起一个认证请求帧,其中包括用于身份认证的用户名和密码
- 认证方(服务端)收到请求帧后,查看本地数据库验证客户端提供的用户名/密码的正确性,如果正确,向客户端发送确认帧,表示认证成功,该用户可以与PAP服务器端建立PPP连接;否则返回一个认证否认帧,表示认证失败,当然客户端也就不能与PAP服务器端建立PPP连接了。但这里要注意的是,如果第一次认证失败,并不会马上直接将链路关闭,而是会在PAP客户端提示可以尝试以新的用户账户信息进行再次认证,只有当认证不通过次数达到一定值(默认为4)时才会关闭链路,以防止因误传、网络干扰等造成不必要的LCP重新协商过程。
- 缺点:直接发送明文,不安全
CHAP身份认证
-
同样以单向认证为例
-
由认证方(服务端)不断地以产生一个随机序列号的质询(challenge,又称挑战:认证序列号id+主认证方认证用户名+随机数random)字符串帧发送给被认证方(客户端),询问被认证方是否要进行身份认证。直到被认证方为这个质询做出了响应
-
被认证方接收到挑战信息,根据接收到主认证方的认证用户名到自己本地的数据库中查找对应的密码(如果没有设密码就用默认的密码),查到密码再结合主认证方发来的id和随机数据根据MD5算法算出一个Hash值。
-
被认证方回复认证请求,认证请求里面包括:id(与认证请求中的id相同)、Hash值、被认证方的认证用户名,主认证方处理挑战的响应信息,根据被认证方发来的认证用户名,主认证方在本地数据库中查找被认证方对应的密码(口令)(即必须要求主认证方和被认证方使用的密码必须相同)结合id找到先前保存的随机数据和id根据MD5算法算出一个Hash值(即根据口令、CHAP id 和随机数三个量计算Hash值),与从被认证方得到的Hash值做比较,如果一致,则认证通过,如果不一致,则认证不通过。
ISDN
综合业务数字网,它的最大的优点,就是能把多种类型的电信业务,如电话、传真、可视电话、会议电视等综合在一个网内实现。凡加入这个网的用户,都可实现只用一对电话线连接不同的终端,进行不同类型的高速、高质的业务通信。
BRI/DRI:ISDN的两种速率接口
BRI:两个B通道(每个带宽64kbit/s)+一个D通道(带宽16kbit/s)
PRI:23B+D或30B+D(不同地区标准不一样)
B通道用于传送数据、声音和其他功能服务,D通道则用于传送控制和信号信息
SPID:服务配置文件标识符,是一些服务提供商用来定义ISDN设备用户所订购服务的号码,在访问初始到服务供应商的链接交换时,ISDN 设备会使用 SPID,如果SPID不对,那么你的ISDN设备就不能和ISDN交换机建立正确的连接
ISDN利用ITU-T标准,跨越OSI参考模型的物理层、数据链路和网络层,默认封装选择为HDLC,还可以是PPP,只允许一种封装类型。
DDR:拨号路由,在LAN和BRI之间提供路由,建立网络连接
后面内容详见PPT