一、OSI参考模型
1、OSI的结构
应用层:把人类语言转化成编码,为各种应用程序提供网络服务。
表示层:定义一些数据的格式,(对数据进行加密、解密、编码、解码、压缩、解压缩,每一层都可以实现,只不过一般在表示层进行操作)。
会话层:对通信双方进行建立、维护、拆除(session ID能够保障各个会话窗口互不影响)
传输层:建立端口对端口的连接(逻辑连接(ip连接))----端口号
DNS(域名解析系统):端口号53
HTTP(超文本传输协议)----80
SMTP(简单邮件传输协议)----发邮件--25
pop3(邮局协议)---收邮件--110
telnet(远程登录)---23
FTP(文件传输协议)----20、21
TFTP(简单文件传输协议)
动态端口号:1024-65535----用来分配给一些不固定的服务
网络层:路由器,提供路由,依据ip寻址,转发数据。
数据链路层:交换机,封装成帧、差错检测、流量控制。
LLC子层:逻辑链路控制子层,为传输可靠性提供一个保障,减少出现帧丢失、重复、失序的情况 (CRC-----循环冗余计算码)
MAC子层:媒体接入控制子层,负责识别网络层的协议,然后对他们进行封装、解封装,MAC寻址、 流量控制
物理层:集线器,传输比特流,定义一些参数(电压、接口、线缆标准、传输距离、传输介质、物理扩扑、信号传输模式)
2、信号传输模式:
单工模式:同一时间内,通信双方只能有一方有收或者发消息
半双工模式:同一时间内,通信双方可以同时有收或者发消息
全双工模式:同一时间内,通信双方可以同时有收发消息(目前使用的模式)
二、TCP/IP参考模型
1、TCP/IP的模型
TCP/IP标准模式:应用层、传输层、网络层、网络接口层
TCP/IP对等模式:应用层、传输层、网络层、数据链路层、物理层(8字):7字节+1字节
前同步码(标识从数据链路层传下来的数据+帧开始定界符(10101011)(便于接收端识别帧头帧尾))
2、各个层中的协议
应用层、表示层、会话层:SMTP、POP3、FTP、DNS、SNMP、TFTP等
传输层:TCP、UDP
中间的协议:ICMP、IGMP
网络层:IP
中间的协议:RARP、ARP
数据链路层、物理层:USB
3、TCP协议
TCP固定的头部字节:20Byte
source port:源端口
destination port:目的端口
sequence number:序列号,标识本机发送的数据报文的编号 Ack : ACK=1,确认号,标识请求对方下次发送的数据报文的编号
date offest:数据偏移,标识数据分段在完整数据中的位置
reserved:保留,给未来开发的功能 urg:当位置为1,urgent pointer紧急指针位会发挥作用,优先发送数据
PSH:TCP的推送位,在缓冲区未填满的情况下,尽快的将缓冲区的数据推送上前,交付给接收的应用 进程
RST:复位开关
SYN:连接建立的标志位
FIN:连接断开的标志位
WINDOW:窗口,通告本机接收能力 checksum:校验和
4、TCP的可靠机制
TCP的三次握手:
第一次:由客户端发出连接请求到服务器,服务器收到后可以确定客户的发送与自身的接收没问题。
第二次:再由服务器回话个客户,让客户知道自己的发送与接受没问题,这时服务器还不知自己的发 送是否有碍,
第三次:需客户在此回话表示服务器的发送无碍时,方可以稳定建立连接,三次握手完成后就可以进 行数据传输。
四次挥手:
第一次:若由客户端发出断开请求时,当服务器收到后,表明了客户没有要给服务器发送数据的事。
第二次:当服务器收到后,再次回复给客户端表明同意你的请求。
第三次:再次由服务器给客户端发送关闭连接的请求。
第四次:客户端收到后,再次给服务器发送同意的信息时,就会关闭连接,此时当客户端等待2msl时, 客户端依旧没有收到信息时,则证明服务器已正常关闭,此时客户端就可以正常关闭。
确认机制:
Ack=上一次seq+上一次的lenseq=上一次的Ack
滑动窗口机制:
通过滑动窗口来通告本机的接收能力,实现流量控制
完整性校验机制:
通过checksum来校验数据的完整性
5、TCP,UDP的协议特点
TCP:可以实现流量控制; 进行数据分段; 面向连接的可靠协议; 使用场景:对传输效率要去求不高,对准确性要求高,占用带宽高 。
UDP(用户数据协议):不能实现流量控制; 连接无的不可靠协议; 使用场景:对传输效率要去求高,对准确性要求不高,占用带宽不高。
6、IP协议
version:版本(4或6)
IHL:IP地址的头部长度20Byte
type of service :服务类型
total length:IP头部+从传输层传下来的数据
identification:标识
FLAGS:标识符,保证数据分片后,区别与网络中的其他IP数据报文
fragment offset:片偏移,标识数据分片在完整数据中的位置
ttl:生存周期,32、64、128、256
protocol:描述上层所使用的协议
header checksum:头部校验和
source address:源IP地址
destination address:目标IP地址
TCP分段:受MSS的影响(最大数据分段长度)
IP分片:受MTU的影响(最大传输单元) 例如:以太网接口(通过光纤上网),默认的MTU是1500字节 PPPOE(宽带拨号上网、网线上网),默认的MTU是1492字节
7、ICMP协议-网络报文管理协议
Type=0,Code=0时Echo reply:ping回复
Type=8,Code=0时Echo rrquest:ping请求
Type=3,Code=0时网络不可达
Type=3,Code=1时主机不可达
Type=3,Code=2时协议不可达
Type=3,Code=3时端口不可达
Type=5,Code=0时重定向
8、以太网帧协议(只在数据链路层出现)
目的地址+源地址+类型+数据(来自网络层)+FCS
FCS:帧尾
三、OSPF
1、OSPF的介绍
1.1、三张表
路由表:提供路由信息
拓扑表:存放链路状态信息
邻居表:存放了邻居的状态和邻居的基本信息
1.2、五种数据包
hello:周期性的建立和维护邻居关系
DBD(DD):数据库描述报文,描述的是LSA(链路状态通告报文)的摘要信息
LSR:链路状态请求报文,自己没有的或者比自己更新的那些链路状态的信息
LSU:链路状态更新报文
LSAck:链路状态确认报文
1.3、ospf工作过程
邻居:同一OSPF区域内相互通信的路由器。邻居之间通过定期发送Hello包来确认连通性,并建立相互的邻接关系。
邻接(邻居的升华):
(1)确认可达性(双up),建立邻居(通过3次hello包)
route ID:标识的是路由器的身份
手工配置:IPV4地址格式,点分十进制(不能重复)
自动选举:协议自己自动选举(通过环回口、物理接口)
环回口:IP地址最大的优先成为ROUTER ID(从第一个网络模块开始进行比较,若模块都相同则比较子网掩码的大小)
物理接口:IP地址最大的优先成为ROUTER ID
注:手工配置>环回口>物理接口
建议:一般配置一个环回口
(2)摘要同步,开始建立邻接关系(确立了邻居关系之后)
a、A向邻居路由器B发送DBD报文,通告本地LSDB(链路状态数据库表)中所以的LSA的摘要信息
b、B收到DBD报文后,与本地的LSDB做对比,向A发送LSR报文,请求对方发送自己需要的LSA的完整信息(所需的目录及目录下的所有信息)
c、A收到LSR后,把对方所需要的LSA的完整信息打包成一条LSU报文,发至B
d、B收到LSU后,向A回复LSAck报文,进行确认
选举DR(指定路由器)、BDR(备份指定路由器)、DRother(其他没有角色的路由),保证路由信息的交互更加高效有序的进行
选举范围:每个网段都会选举出一个DR和BDR
选举规则:
a.接口优先级(0~255),默认优先级是1,数字越大接口优先级越高
b.router ID,IP地址大的优先成为DR、次优是BDR
关系状态:
DR和BDR建立邻接关系
DR和DROTHER建立邻接关系
BDR和DROTHER建立邻接关系
DROTHER和DROTHER之间不用建立邻接关系
注意:DR没有抢占性(不会因为新增路由器而改变原来的DR,除非DR和BDR都故障了),当DR故障了,BDR代替DR
(3)完整信息同步,完全邻接关系建立
完全邻接关系建立,LSDB表和路由表形成
注:OSPF的周期性更新,是增量更新
3、ospf状态机
DOWN:稳定状态(关闭状态),这种情况处于手动指定router ID,发送第一个HELLO包的时候,进入下一个状态
Attempt:一般不会出现,收不到对方的HELLO回包,这种情况一般出现在NBMA网络(非广播多点接入网络)
INIT:初始化状态,收到了对方的HELLO回包,但没有收到对方的hello确认包
2-way:双方互相发现邻居,邻居状态(关系)稳定,并确认DR和BDR的角色,稳定状态
(以上就已经确认邻居关系了,相当于3次hello包的过程)
Exstart:交换开始状态,发送一个空的DBD报文,不发送LSA的摘要信息(提示对方)
Exchange:交换状态,发送后续的DBD报文,用于通告LSDB的LSA的摘要信息
Loading:读取状态,进行LSA的请求、加入、确认
Full:完全邻接关系建立,LSDB表和路由表形成,稳定状态
OSPF的周期更新:30分钟
以上步骤同时进行
2、ospf的多区域
2.1、区域产生背景
(1)如果运行OSPF协议的路由器都处于同一个区域,随着网络规模的变大,同步LSDB表会表的非常缓慢,会导致诸多的问题
(2)OSPF路由器在同一个区域会广播发送LSA,如果网络规模大,会导致LSDB表的同步非常缓慢
2.2、分区的好处
(1)减少了LSA的广播范围
(2)减少了路由表的规模
(3)提高网络的扩展性,有利于大规模网络
2.3、区域类型(骨干区域和非骨干区域)
骨干区域:area 0
AREA ID 0=0.0.0.0
1=0.0.0.1
2.4、多区互连原则
(1)非骨干区域必须和骨干区域互连
(2)非骨干区域之间不会互连(防止形成环路)
(3)骨干区域不能被分割
路由角色:
IR:内部路由器,所有接口都在一个区域内
BR:边界路由器,连接多个区域
ABR:区域边界路由器
AS:自治系统,同一个自治系统内的路由器的AS编号是一样的
ASBR:自治系统边界路由器
3、OSPF协议的特点
没有跳数限制
使用组播更新变化的路由和网络信息
224.0.0.6:DR和BDR的组播接收地址
224.0.0.5:指网络中所以运行OSPF协议的路由器
路由收敛速度快
以cost作为度量值(rip以跳数作为度量值)
有效避免环路问题
在互联网上被大量使用,是应用最广泛的路由协议
OSPF的更新周期是30分钟(RIP的更新周期是30秒