TCP/IP传输协议
即传输控制/网络协议,也叫作网络通讯协议
TCP/IP传输协议是严格来说是一个四层的体系结构:
应用层、传输层、网络层和数据链路层(物理层)
应用层:应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的。
(1)对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议,邮件传输应用使用了SMTP协议、万维网应用使用了HTTP协议、远程登录服务应用使用了有TELNET协议。
(2)应用层还能加密、解密、格式化数据。
(3)应用层可以建立或解除与其他节点的联系,这样可以充分节省网络资源。
运输层:作为TCP/IP协议的第二层,运输层在整个TCP/IP协议中起到了中流砥柱的作用。且在运输层中,TCP和UDP也同样起到了中流砥柱的作用。
网络层:网络层在TCP/IP协议中的位于第三层。在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能。
网络接口层:在TCP/IP协议中,网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层所以,网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路。
四层模型是标准模型,五层模型是对等模型
应用层 — 报文
传输层 — 段
网络层 — 包
数据链路层 — 帧
物理层 — 比特流
TCP/IP协议是Internet最基本的协议,其中应用层的主要协议有Telnet、FTP、SMTP等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层;传输层的主要协议UDP、TCP,是使用者使用平台和计算机信息网内部数据结合的通道,可以实现数据传输与数据共享;网络层的主要协议有ICMP、IP、IGMP,主要负责网络中数据包的传送等;而网络访问层,也叫网络接口层或数据链路层,主要协议有ARP、RARP,主要功能是提供链路管理错误检测、对不同通信媒介有关信息细节问题进行有效处理等。
OSI模型共有七层,从下到上分别是:
物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。
应用层、表示层、会话层三个层次提供的服务相差不是很大,所以在TCP/IP协议中,它们被合并为应用层一个层次。
运输层和网络层在网络协议中的地位十分重要,所以在TCP/IP协议中它们被作为独立的两个层次
因为数据链路层和物理层的内容相差不多,所以在TCP/IP协议中它们被归并在网络接口层一个层次里。只有四层体系结构的TCP/IP协议,与有七层体系结构的OSI相比要简单了不少,也正是这样,TCP/IP协议在实际的应用中效率更高,成本更低。
获取目标MAC地址的方法:
ARP协议 ---- 地址解析协议 ---- 通过一种地址获取另外一种地址
正向ARP:已知目标IP地址,获取目标MAC地址
工作过程:首先,主机通过广播的形式发送ARP请求,通过
IP地址请求MAC地址。因为是广播帧,所以,广播域内所有
的设备均会收到这个请求,设备收到后,先将数据包数据包
中的源IP和源MAC的对应关系记录在自己本地的ARP缓存表
中。然后,再看请求的IP地址,如果请求的不是自己的IP地
址,则将直接丢弃数据包。如果请求的是自己的IP地址,则
进行应答。之后,再进行通讯时,将优先查看本地的ARP缓
存表,若有记录,则按照记录中的MAC地址添加;若不存在
记录,则再发ARP请求获取。
反向ARP :已知目标MAC地址,获取对方IP地址。
免费ARP:利用正向ARP的工作原理,请求自己的IP地址。
1,自我介绍;2,检测地址冲突
RIP协议
**路由信息协议**
有类网络协议包括:RIPV1 IGRP EGP
无类路由协议包括:RIPV2 、EIGRP 、OSPF 、ISIS 、BGPV4
有类别与无类别:子网掩码
**有类别路由协议的特点**
1:发送路由更新包的时候不携带路由条目的子网掩码
2:路由传递过程中使用路由发送和接收规则
3:在边界路由器上面会产生自动汇总,并且这个自动汇总是无法关闭的
**无类路由协议特点**
发送路由更新包的时候携带自己的子网掩码
在边界路由器上面的自动汇总可以关闭,可以支持不连续子网。
RIPV1和RIPV2的区别:
1:RIPV1是有类别的路由协议,RIPV2是无类别的路由协议(RIPV1在传递网段信息的时候不携带子网掩码,RIPV2在传递网段信息时携带子网掩码)。因为这个原因,导致RIPV1不支持非连续子网网络以及VLSMCIDR。
2:RIPV1采用广播的形式进行邻居间的通信,RIPV2采用组播(224.0.0.9)的邻居间的通信。但凡是224.0.0.X开头的组播地址都称为本地链路组播,其特点是这类组播的TTL值为1:这类信息仅能在一个广播域内进行传播RIPV1和RIPV2都是基于UDP的520端口进行通信RIPNG是基于UDP的521端口进行通信。
3:RIPV2支持手动认证和手工汇总,RIPV1不支持
RIP环路问题
---- 异步周期更新导致
破除环路
1,15跳的开销限制(开销值不断叠加,自动破环)
2,触发更新 ---- 当拓扑结构发生变化的第一时间,将该变更信息传递出去
3,水平分割 — 从哪个接口学到的信息,将不再从哪个接口发出去。
4,毒性逆转 — 从哪个接口学到的信息,依然可以从这个接口发出去, 但是必须带毒(将COST改为16)
在一台路由器上,水平分割和毒性逆转只能二选其一,华为设备默认开启的是水平分割机制。但如果同时开启水平分割和毒性逆转,华为设备将按照毒性逆转来执行。
ospf协议
**开放式最短路径优先协议**
无类别的路由协议(传递路由信息的时候携带子网掩码),都支持VLSM和CIDR。以组播的形式传递信息。 ---- 224.0.0.5/224.0.0.6 ,支持等开销负载均衡。选路佳,收敛快,占用资源少
OSPF也存在三个版本 — OSPFV1(实验室阶段夭折),OSPFV2 — IPV4 ,OSPFV3 ---- IPV6
OSPF和RIP不同,RIP要求仅适用于中小型的网络环境中,OSPF可以应用于中大型的网络环境中。
区域划分的主要目的 :
1.区域内部传递拓扑信息,区域之间传递路由信息
2.区域边界路由器 --- ABR --- 同时处于多个区域,并且一个接口对应一个
区域,至少有一个接口属于骨干区域。
3.区域之间可以存在多个ABR,一个ABR也可以对应多个区域
区域划分的要求:
1,区域之间必须存在ABR
2,区域划分必须按照星型拓扑结构划分 ---- 所有区域需要连接在中心区
域上,这个中心我们称之为骨干区域。
为了方便对各个区域进行区分和管理,我们给每个区域设计一个编号 ---
区域ID(area ID) ---- 由32位二进制构成 --- 可以通过点分十进制的形
式来表示,也可以直接使用十进制来进行表示。 ---- 规定,骨干区域的区域
ID必须是0。
RID需要满足的条件:
1,唯一性(全OSPF网络内部唯一即可);
2,格式统一,由32位二进制构成,采用IP地址的格式
RID的获取方法(两种)
1,手工配置:仅需满足以上两点要求即可。
2,自动获取:如果是自动获取,设备将会在自己环回接口的IP地址中选择最大
的作为自己的RID。如果没有环回接口,则将在自己的物理接口上选择IP地址最
大的作为RID。
OSPF的数据包
OSPF一共存在5种数据包
1.**hello包** --- 用来周期发现,建立和保活邻居关系
hello的周期发送时间 ---- 10S(30S)
死亡时间 --- dead time ---- 4倍的hello时间 ---- 40S(120S)
因为OSPF传递的是拓扑信息,需要将所有路由器的位置关系表示清楚,所以,需
要有一个参数对所有的路由器进行区分和标定。我们引入RID来完成这个工作。
hello包中会携带这个RID。
2.**DBD包** ---- 数据库描述报文 --- 携带的是数据库
(LSDB --- 存放LSA信息的数据库)目录信息
3.**LSR包** ---- 链路状态请求报文 --- 基于DBD包请求未知的LSA信息
4.**LSU包** --- 链路状态更新报文 --- 真正携带LSA信息的数据包
5.**LSAck包 **--- 链路状态确认报文 --- 确认包 OSPF存在每30MIN
一次的周期更新。
OSPF工作过程
启动配置完成后,OSPF向本地所有运行OSPF协议的接口以组播224.0.0.5发送hello包。Hello包中携带本地的RID以及本地已知邻居的RID。之后,将收集到的邻居关系记录在一张表中 — 邻居表。
邻居表建立之后,将进行条件匹配;失败则将停留在邻居关系,仅使用hello包进行周期保活。匹配成功,则开始建立邻接关系。首先使用未携带数据的DBD包进行主从关系选举。之后,使用携带数据的DBD包进行数据库目录的共享。之后,本地使用LSR/LSU/LSACK数据包来获取未知的LSA信息;完成本地数据库的建立。 — LSDB(链路状态数据库) — 生成数据库表。
最后,基于本地的链路状态数据库,生成有向图,之后,通过SPF算法将有向图转换成最短路径树。之后,计算本地到达未知网段的路由信息,将路由信息添加到路由表中。 收敛完成后,hello包依然需要进行10S(30S)一次的周期保活,每30MIN进行一次周期更新。
DR/BDR的选举规则:
1,先比较优先级,优先级最大的为DR,次大的为BDR ,优先级默认为1。
如果将一个接口的优先级修改为0,则代表该接口放弃DR/BDR的选举。
2,当优先级相同时,则比较RID。RID大的路由器对应接口为DR,次大的为BDR。
DR/BDR的选举是非抢占模式的,一旦DR和BDR选定,则将无法被替换。选举时
间为死亡时间。(只是时间相同,并不是由同一个计时器计时)(这个时间仅是
选举的一个上限时 间,选举可以在短时间内完成,只要完成后则将不能抢占)
BGP
边界网关协议
无类别的路径矢量协议
无类别 : 传递路由信息时携带子网掩码
路径矢量
1,距离矢量中的距离指的是协议将一个路由器作为一跳来计算开销。而路径矢
量是以一个AS作为一个单位来传递信息的。
2,距离矢量型协议的分发是根据算法来分的,但是BGP协议不存在算法的
概念,因为BGP协议不需要去计算路由,只需将现有的传递到自己的邻居处即可。
IGP — 内部网关协议 — RIP OSPF
EGP — 外部网关协议 — BGP
AS — 自治系统 — 由单一的机构或组织所管理的一些列IP网络及设备所构成集合。
划分AS的原因:
1,网络范围太大,协议跑不过来;
2,自治管理
IGP
选路佳,收敛快,占用资源少 (RIP 、OSPF)
EGP
1,可控性
AS之间需要传递大量的路由信息,所谓可控,就是可以更方便的干涉选路,更容易做策略。 — 弥补重发布的不足为了保证路由传递的可控性,更方便干涉选路,BGP协议舍弃了开销值,取而代之的是他为路由信息设计了很多路径属性。可以通过属性进行选路,使得选路过程更加灵活,可控性更高。
2,可靠性
BGP协议为了保证传输的可靠性,直接选择TCP协议作为传输层的协议来完成数据收发 ---- 使用的是TCP 179号端口— 使用TCP协议通讯造成的问题是,传输效率降低,只能实现单播通讯(TCP需要去建立会话),占用资源会加大 ---- 使用TCP之后,便不能通过广播或者组播去自动发现邻居进行通信了。— BGP协议可以实现非直连建邻,非直连建邻的前提条件是邻居双方网络可达 ---- BGP的非直连建邻是建立在IGP的基础上
BGP划分
我们可以根据邻居关系的建立情况,将BGP的邻居关系分为两种 :
AS之间:
EBGP对等体 --- 如果建立对等体的两台路由器位于不同的AS中,则他们
的关系被称为EBGP对等体关系。
AS内部:
IBGP对等体 --- 如果建立对等体的两台路由器位于同一个AS中,则他们
的关系被称为IBGP对等体关系。
AS-BY-AS
BGP将一个AS作为一个单位来看待。 ---- BGP的一个特性:BGP是不支
持负载均衡。
因为EBGP对等体之间一般采用直连建邻的方法,所以,我们将EBGP对等体之间的数据包中的TTL值设置为1;而IBGP对等体之间往往需要非直连建邻,所以,IBGP对等体之间的数据报中的TTL值我们设置为255;当然,如果EBGP对等体之间需要非直连建邻,则需要手工修改TTL值。
BGP的工作过程
1,基于IGP(静态,直连)实现IP可达;
2,指定邻居关系,邻居间需要建立TCP会话通道。BGP之后发送的所有数
据包都是通过TCP会话通道发送,来保证其传输的可靠性的。
3,使用OPEN报文和keeplive报文进行邻居关系的建立;生成邻居表;
4,使用Update报文共享路由信息,信息中携带目标网络号,掩码信息及
各种属性;将收集和发送的所有路由信息记录在一张表中 --- BGP表。
5,之后,将BGP表中的最优路径加载到路由表中。(到达同一个目标网段
可能收到多条路由信息,BGP仅加载一条(不存在负载均衡)最优路径,最优路
径是通过属性来选择的)
6,收敛完成后,将使用keeplive包进行周期保活,默认保活时间为180S
,周期发送时间为60S。
7,若出现错误信息,将使用notification报文进行告警;(这个错误信
息可能出现在对等体建立的时候,也可能出现在之后。)
8,若发生结构突变,则将直接发送UPdate报文进行触发更新。
BGP的路由黑洞
由于BGP协议可以非直连建邻,故可能出现BGP协议跨越未运行BGP协议的
路由器,导致BGP路由传递后,显示控制层面可达,但是,数据层面,流量经过
未运行BGP协议的路由器时,无法通过,形成路由黑洞。
解决方案:
1,让AS内所有设备都运行BGP协议 (未讲解MPLS使用这个解决)
2,可以在AS内部运行BGP的设备上像AS内部使用的IGP协议中进行重发布
(信息量很大,承载能力需求大,不合适)。做策略,进行筛选,解决部分。
3,使用MPLS技术解决路由黑洞问题 --- 是当前工程中主要使用的解决
BGP路由黑洞方案。
BGP为了防止BGP路由黑洞的产生,提出了BGP同步机制 --- 即当一台路
由器从自己IBGP对等体学习到一条BGP路由时,他不能将这条路由通告给自己
的EBGP对等体,除非他又从IGP协议中(包含静态路由)学习到这条路由。也就
是要求IBGP路由和IGP路由同步。华为设备默认关闭BGP的同步规则。
BGP的防环机制
BGP使用的防环机制 ---- 水平分割
在BGP中的水平分割分为两种:
1,EBGP水平分割 — 专门解决EBGP对等体之间可能出现的环路问题。
EBGP水平分割:
bgp协议在路由条目中记录所经过的AS编号 --- AS_PATH属性(记载所
有经过AS编号的属性,该属性除了可以用来进行EBGP对等体之间的防环外,还
可以在特定情况下进行路由选路)。接收到的BGP路由条目中的AS_PATH中若包
含本地的AS号,则将拒绝接受,避免环路产出。
2,IBGP水平分割 — 专门解决IBGP对等体之间可能出现的环路问题。
IBGP水平分割:
因为BGP的AS-BY-AS的特性,导致AS内部被认为是一个整体,在默认情况下
,路由的属性是不会发生变化的,所以,无法通过属性来进行防环。 所以,
IBGP水平分割的做法 --- 当一个路由器从一个IBGP对等体处学习到某一条
BGP路由时,他将不再把这条路由信息通告给其他的IBGP对等体。
IBGP水平分割可以有效的解决IBGP对等体之间路由回传造成的环路问题,
但是,也会引发路由信息传递障碍问题。想要避免IBGP水平分割带来的问题,可
以让所有AS内部运行BGP的路由器均建立IBGP对等体关系。---- 这种建立全连的
IBGP对等体的方案并不是最佳解决方案 --- 因为,当一个AS内运行BGP协议的
路由器数量较多时,建立全连的邻居关系,将造成大量的资源浪费,并且降低网
络的可扩展性。
所以,BGP存在两个技术专门用于解决IBGP水平分割带来的问题:
1,路由反射器
2,联邦
三次握手
第一次握手:客户端尝试连接服务器,向服务器发送 syn 包(同步序列编号Synchronize Sequence Numbers),syn=j,客户端进入 SYN_SEND 状态等待服务器确认
第二次握手:服务器接收客户端syn包并确认(ack=j+1),同时向客户端发送一个 SYN包(syn=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态
第三次握手:第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
简化版
http和https区别
HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分
布式、协作式和超媒体信息系统的应用层协议
HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)
是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信
,但利用 SSL/TLS 来加密数据包。
HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
http在tcp80端口上,https在tcp443端口上
https需要在CA申请证书
响应速度快,http就需要三次握手,只需要交换三个包,而https需要交换十二个包,还要9个ssl握手包
https更消耗服务器资源(建构在ssl与tls上的http协议)
ospf特殊区域
1、Stub-末节区域
与AS外部没有太多路由通信失误边缘区域;过滤Type4 LSA和Type5 LSA,减少边界路由器的压力。
(1)放行LSA:Type1 LSA;Type2 LSA(仅广播网拥有此类LSA);Type3 LSA
(2)拒绝LSA:Type4 LSA;Type5 LSA;Type7 LSA
2、Totally Stub-完全末节区域
同样处于AS边缘;且只有一个连接其他区域的ABR,没有ASBR;没有虚连接穿越非骨干区域。
(1)放行LSA:Type1 LSA;Type2 LSA(仅广播网拥有此类LSA)
(2)拒绝LSA:Type3 LSA;Type4 LSA;Type5 LSA;Type7 LSA
3、NSSA----Not-So-Stubby Area,非纯末梢区域
(1)可以位于非边缘区域,可以有多个ABR,可以有一个或多个ASBR;将ASBR引入的外部路由以Type7 LSA进入NSSA区域并在本NSSA区域泛洪,然后在ABR上转换为Type5 LSA后以自己的身份发布到区域外
(2)放行LSA:Type1 LSA;Type2 LSA(仅广播网拥有此类LSA);Type3 LSA
(3)拒绝LSA:Type4 LSA;Type5 LSA
4、Totally NSSA完全非纯末梢区域
(1)可以位于非边缘区域,可以有多个ABR,可以有一个或多个ASBR;将ASBR引入的外部路由以Type7 LSA进入NSSA区域并在本NSSA区域泛洪,然后在ABR上转换为Type5 LSA后以自己的身份发布到区域外
(2)放行LSA:Type1 LSA;Type2 LSA(仅广播网拥有此类LSA)
(3)拒绝LSA:Type3 LSA;Type4 LSA;Type5 LSA
DNS
域名解析协议,应用层
DNS协议则是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。
DNS占53端口.
DNS在区域传输的时候使用TCP协议,其他时候使用UDP协议。
DNS区域传输的时候使用TCP协议:
1.辅域名服务器会定时(一般3小时)向主域名服务器进行查询以便了解数据是否有变动。如有变动,会执行一次区域传送,进行数据同步。区域传送使用TCP而不是UDP,因为数据同步传送的数据量比一个请求应答的数据量要多得多。
域名解析使用UDP协议