OSI七层模型(ISO 国际标准化组织)
应用层(人机交互):是最靠近用户的OSI层。这一层为用户的应用程序提供网络服务。 表示层(数据格式、压缩、加密、呈现格式):可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码,而另一台则使用美国信息交换标准码来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。 会话层(建立会话):通过运输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名) 传输层(端到端传输、可靠传输):定义了一些传输数据的协议和端口号(WWW端口80等),如: TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据) UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。 网络层(路由,寻找最佳路径):在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。 数据链路层(建立链路转发、MAC寻址):定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。 物理层(二进制传输 (脉冲信号)、接口、电器、电压、线路):主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流。这一层的数据叫做比特。
TCP/IP四层模型(IETF 组织——事实上的模型,现有协议后有模型)
上三层统一为应用层 传输层(终端到终端层) 网络层(互联网层) 网络接口层
IP编址
IANA ? 主类 ? A 单播 0XXXXXXX /8 1-126 10.0.0.0/8 127.0.0.0/8(回环地址) ? B 单播 10XXXXXX /16 128-191 172.16.0.0-172.31.0.0/16 ? C 单播 110XXXXX /24 192-223 192.168.0.0-192.168.255.0/24 ? D 组播 1110XXXX 224-239 ? E 科研保留 ? 无类/可变长子网 ? 引入了掩码,规则1表示网络位,0表示主机位 ? 192.168.1.0 255.255.255.0 ? 10.1.1.0/24 划出10个子网 借位–>把主机位借为网络位 ? 2^4=16 24+4=28 ? XXXX 10.1.1.210/28 10.1.1.226/28 是否在一个网段 ----- 必会题 答:不在一个网段 210——>11010010 10.1.1.210/28在网段208 226——>11100010 10.1.1.226/28在网段224 只看二进制前四位是否相同
10.1.1.130/28 网段是什么,段广播是什么? ----必会题 答:130——>10000010 10.1.1.130/28的网段是128 段广播是143
TCP(传输控制协议)
C —> syn seq=10000 S C seq=200 syn seq=10001 ACK<— S 半开队列 计时器 C —> ack seq = 201 S 全连队列
TCP三次握手过程:
第一次握手 客户主动(active open)去connect服务器,并且发送SYN 假设序列号为J,服务器是被动打开(passive open) 第二次握手 服务器在收到SYN后,它会发送一个SYN以及一个ACK(应答)给客户,ACK的序列号是 J+1表示是给SYN J的应答,新发送的SYN K 序列号是K 第三次握手 客户在收到新SYN K, ACK J+1 后,也回应ACK K+1 以表示收到了,然后两边就可以开始数据发送数据了
syn半开攻击,发送大量syn包不回确认ack,导致半开队列被占满,服务器无法提供连接服务 防御:syn_cookie 技术 记录syn半开连接者的IP,下次连接时不会将其放入半开队列(等于丢弃)
为什么要进行三次握手? 答:3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。 现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机S和C之间的通信,假定C给S发送一个连接请求分组,S收到了这个分组,并发 送了确认应答分组。按照两次握手的协定,S认为连接已经成功地建立了,可以开始发送数据分组。可是,C在S的应答分组在传输中被丢失的情况下,将不知道S 是否已准备好,不知道S建立什么样的序列号,C甚至怀疑S是否收到自己的连接请求分组。在这种情况下,C认为连接还未建立成功,将忽略S发来的任何数据分 组,只等待连接确认应答分组。而S在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
四次断开过程
1)客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。 2)服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。 3)客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。 4)服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。 5)客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2??MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。 6)服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。
可以三次断开 ,把fin ack一次发送,也可以两次断开 一般是为了节约资源
为什么需要四次断开? 答:TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。TCP是全双工模式,这就意味着,当主机1发出FIN报文段时,只是表示主机1已经没有数据要发送了,主机1告诉主机2,它的数据已经全部发送完毕了;但是,这个时候主机1还是可以接受来自主机2的数据;当主机2返回ACK报文段时,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1的;当主机2也发送了FIN报文段时,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,我也没有数据要发送了,之后彼此就会愉快的中断这次TCP连接。如果要正确的理解四次分手的原理,就需要了解四次分手过程中的状态变化。
syn ack rst fin 窗口 拥塞控制 拥塞避免 慢启动 快重传
UDP(用户数据报协议) OICQ DHCP 动态主机配置协议
1. DHCP 全局配置
dhcp enable //开启DHCP服务
#
ip pool K //创建地址池
gateway-list 10.1.1.1
network 10.1.1.0 mask 255.255.255.0
dns-list 8.8.8.8
domain-name huawei.com
interface GigabitEthernet0/0/0
ip address 10.1.1.1 255.255.255.0
dhcp select global //接口关联全局配置
2. DHCP接口配置
dhcp enable //开启DHCP服务
interface GigabitEthernet0/0/1
ip address 20.1.1.1 255.255.255.0
dhcp select interface //接口启用当前接口ip的网段及网关为基础的DHCP
dhcp server dns-list 8.8.8.8
dhcp server domain-name huawei.com
#
3. DHCP根据mac地址分配固定IP
ip pool A
gateway-list 100.1.1.1
network 100.1.1.0 mask 255.255.255.0
static-bind ip-address 100.1.1.100 mac-address 5489-98c4-6891 //根据MAC分配IP
静态路由
静态路由是一种路由的方式,路由项由手动配置,而非动态决定。与动态路由不同,静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态。一般来说,静态路由是由网络管理员逐项加入路由表。
?路由来源
- 链路层自发现-直连 0
- 静态路由 60
- 动态路由
- IGP
- rip 100
- ospf 10 150
- eigrp
- isis 15
- EGP
ip route-static 目标网段 掩码 下一跳/出接口 ip route-static 10.1.1.0 24 20.1.1.1 ip route-static 10.1.1.0 24 30.1.1.1 pre 30
RIP 4层 UDP 520 计时器 周期 30s hold 180s flash 240s 抑制时间 180s rip的更新规则:
1. 如果没有则学习
2. 如果有-判断是否同源
1. 如果同源无条件学习
2. 如果不同源--判断开销
1. 开销比现有小 学习
2. 开销比现有大 忽略
3. 开销相同 负载均衡
出现路由环路的现象
防环:
1. 水平分割 当路由从一个接口进就不能在此接口出
2. 毒性逆转
3. 触发更新
4. 抑制计时器
5. 最大跳数
宣告问题 rip的包
OSPF 距离矢量型 传递信息沿途路由器都会更改计算 内容携带是矢量信息(路由表) 分布式计算 链路状态型 传递信息沿途不会被更改 内容携带的是链路状态信息(拓扑信息) 集中式计算 OSPF的传递拓扑信息(LSA)的前提是路由器之间需要建立邻居关系
OSPF的运算过程
-
OSPF建立邻居 -
OSPF洪范LSA -
LSDB同步 -
运行SPF算法
- 第一步以自己为根计算到达其他路由器节点的最短路径树----计算树干
2. 第二步计算路由器节点上的网段信息----计算树叶 ?
router-id 唯一性
手动指定 自动选举 有回环先选回环,多回环选大的,没回环选物理接口,多接口选大的 DR/BDR 指定路由器 /备份的指定路由器 解决ospf在多路网络中邻居数量过多以及信息重复传递问题 选举DR/BDR
1. 先看接口优先级(0-255默认是1)大优,0表示无选举权
2. 如果优先级一致,router-id大优
命令 接口下 ospf dr-priority X
不能抢占,如果要抢占需要重启OSPF进程 >reset ospf process
drother 224.0.0.6 发 收224.0.0.5 dr/bdr 224.0.0.6 收 发 224.0.0.5
OSPF邻居转态
- down
- init
- tow-way 邻居关系—邻居表-----dis ospf peer(brief) 用到包hello、DBD(空)
- exstart 邻接关系—LSDB -----dis ospf lsdb 用到的包 DBD(非空)LSR LSU LSACK
- exchange
- loading
- full
OSPF包
OSPF开销 ? cost=10^8/接口带宽 开销是路径叠加值 修改开销 ? 修改接口带宽 ? 接口下 ospf cost X
|