OSI ——开放式系统互联参考模型
ISO——国际标准化组织
应用层 ——抽象语言—>编码
表示层 ——编码—>二进制
会话层 —— 应用程序内部的区分地址(无标准格式)
上三层—产生数据
下四层—传递数据
传输层 —— TCP/UDP – 分段(受MTU限制)、端口号
MTU:最大传输单元 默认1500 数据经过上三层的加工处理后,将来到传输层;需要分段数据,每段数据的最大容量不能超过MTU值; 分段是为了让多个节点可以在相互间影响较小的情况下共享带宽。
端口号:0-65535 16位二进制构成
1-1023注明端口(静态端口)—标记服务端的各种服务
1024-65535动态端口(高端口)—标记终端的进程
用户数据报文协议 —非面向连接的不可靠传输协议
仅完成传输层的基本工作(分段、提供端口号)。
UDP数据包每次能够传输的最大长度 = MTU(1500B) - IP头(20B) -UDP头(8B)= 1472Bytes 。
UDP协议的特点
每个分组都携带完整的目的地址;
发送数据之前不需要建立链接;
不对数据包的顺序进行检查,不能保证分组的先后顺序;
不进行分组出错的恢复和重传;
不保证数据传输的可靠性。
传输控制协议 – 面向连接的可靠传输协议
面向连接:通过三次握手建立端到端虚链路
可靠传输:4种可靠传输机制 – 确认、排序、重传、流控(滑动窗口)
在完成传输层的基本工作之上,还需要额外的保障传输的可靠性。
网络层 —— IPV4、IPV6 --互联网协议 逻辑寻址(通过IP地址来进行逻辑寻址)
数据链路层 —— 控制物理层 (介质访问控制)
1.MAC,媒介访问控制子层—通过物理地址(MAC地址)来进行物理寻址
2.LLC,逻辑链路控制子层—为上层服务提供FCS校验(在数据的尾部)
物理层 —— 定义电气电压,光学特性,接口规范
传输数据
正向ARP: 已知同一网段的目标ip地址,但未知目标mac地址;通过广播获取对方的mac地址。
反向ARP:1、已知对端的MAC,获取对端的ip地址; 2、已知本地的MAC地址,通过ARP基于对端查询本地的ip地址。
逆向ARP:一般存在于帧中继网络中,用于实现IP和DLCI地址的映射。
无故ARP:进行正向ARP查询,但被查询地址为本地的ip地址——地址冲突检测。
代理ARP:如果ARP请求是从一个网络的主机发往同一网段却不在同一物理网络上的另一台主机,那么连接它们的具有代理ARP功能的设备就可以回答该请求。
通过域名查询对应的ip地址。
域名解析是把域名指向网站空间ip,让人们通过注册的域名可以方便地访问到网站的一种服务。ip地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替ip地址标识站点地址。域名解析就是域名到ip地址的转换过程。域名的解析工作由dns服务器完成。
数据包从高层向低层进行加工处理的过程,过程中数据包将不断增大,因为需要添加不同层面的头部。
封装的反向;识别数据的过程;过程中数据包将不断的变小。
当一个数据帧进入交换机后,交换机永远先查看数据帧中的源mac地址;然后将该mac与其进入的接口映射记录到本地的mac地址表中;再关注数据帧中的目标mac地址,然后查询本地mac地址表是否有其对应接口的记录;若存在记录将单播向该接口转出,若没有记录,将洪泛该流量。
洪泛-- 除进入接口外的其他所有接口复制转出流量;被洪泛流量主要是广播、组播、未知单播;
未知单播:数据包中目标地址为明确的单播地址,但交换机上没有该mac对应的记录;
交换机为未知的目标mac地址,进行数据帧所有接口复制的行为。
迫使交换机进行洪泛,最终将本地的一个数据包转发给本广播域所有的节点。
PDU:协议数据单元,对各个数据封装的单位标记 。
上三层(应用、表示、会话)— 数据报文
传输 ——段
网络层 ——包
数据链路层——帧
物理层——比特流
1、层数不同
2、3层不同; TCP/IP仅支持ip;OSI支持所有网络层协议;
3、TCP/IP –支持跨层封装
在路由器与路由器这种三层直连设备间,直接沟通对话的协议,可以不封装4层;
在直连交换机二层设备间,可以直接访问到2层,跳过3、4层;–加快收敛速度
–OSPF/EIGRP/ICMP…跨3层 —STP…跨2层
在跨层到3层时,没有了4层;那么将有3层报头来完成4层的工作
—分段、端口号(区分进程和服务)
IPV4报头中可以对数据进行分片,使用协议号来区分进程和服务
在跨层封装到2层时,没有了3、4层。
以太网举例:
默认使用以太网第二层封装,该封装不具备分片的能力;
故在跨层封装到2层时,需要调用第一代以太网规则;
将数据链路层分为两个子层;LLC+MAC
LLC逻辑链路控制子层—负责分片和进程区分
MAC介质访问控制子层—控制物理层工作
1.两者都是模型化层次化
2.下层对上层提供服务支持
3. 每层协议彼此相互独立
存在ABCDE分类;其中ABC为单播地址—既可以作为源,也可以作为目标;
D为组播—只能作为目标;E为保留。
基于第一个8位分类:
A 1-126
B 128-191
C 192-223
D 224-239
E 240-255
特殊地址:
1、127.0.0.1 环回地址 测试使用
2、0.0.0.0 缺省路由-代表所有 无效地址—代表没有
3、255.255.255.255 受限广播地址
4、在每段地址中主机位全0、全1:
192.168.1.0/24 主机位全0—网络号
192.168.1.255/24 主机位全1—直接广播地址
5、169.254.0.0/16 自动私有地址、本地链路地址
一个网段是一个广播域;一个广播域不一定是一个网段
VLSM — 可变长子网掩码 子网划分,通过延长子网掩码的长度,将原来的主机位,借位到网络位,实现将一个网络逻辑切分为多个。
CIDR—无类域间路由 – 取相同位,去不同位 将多个网段逻辑的整合一个。
CIDR 分为 子网汇总和超网
子网汇总:汇总后,汇总网段的掩码长于或等于主类掩码 --LAN局域网
超网:汇总后,汇总网段的掩码短于主类 --WAN广域网
[Huawei]ip route-static 1.1.1.0 24 12.1.1.2
[Huawei]ip route-static 2.2.2.0 24 GigabitEthernet 0/0/1
目标网络号 下一跳或出接口
下一跳:流量从本地发出后下一个进入的路由器接口ip地址。
出接口:流量从本地路由器发出的接口。
建议:在MA网络中建议下一跳写法;在点到点网络中建议出接口写法
MA多路访问网络—在一个网段中,节点的数量不限制
点到点—在一个网段中,节点数量只能为两个
当到达部分连续子网时,若基于相同的下一跳访问;可以将这些目标网络进行汇总计算后;仅配置到达汇总网段的路由即可—减少路由表条目的数量。
汇总地址中包含了网络中当下不存在的地址网段时;当中早该丢弃的流量,还需要在网络中传播一段时间;才能被丢弃,浪费了链路资源;–尽量合理规划ip地址,精确的汇总计算。
一条不限定目标的路由;查表时,路由器在查询完本地所有直连、静态、动态路由后,若依然没有可达路径才使用该条目。
当路由器黑洞与缺省路由相遇后,必然出现环路。
[R1]ip route-static 1.1.0.0 22 NULL 0
通过修改默认的优先级,起到路径备份的作用。
[r2]ip route-static 1.1.0.0 22 23.1.1.1 preference 61
默认静态路由优先级为60;越小越好
当路由器访问同一个目标,拥有多条开销相似路径时;可以让设备将流量拆分后延多条路径同时传输,起到带宽叠加的作用。
缺省路由与路由黑洞相遇,将必然产生环路;在黑洞路由器上编辑一条到达汇总网段的空接口路由可以避免
[r2]ip route-static 1.1.0.0 22 NULL 0
1、TCP三次握手详解
2、TCP四次挥手详解
3、静态综合实验报告
(1)R6为ISP,接口IP地址为公有地址;
该设备只能配置IP地址,之后不能对其进行任何配置。
(2)R1—R5为局域网,私有IP地址192.168.1.0/24,请合理分配。
(3)所有路由器上环回,均代表连接用户的接口。
(4)R3下的两台PC通过DHCP自动获取IP地址。
(5)选路最佳,路由表尽量小,避免环路。
(6)R1—R5均可访问R6的环回。
(7)R6telnetR5的公有IP地址时,实际登录到R1上。
(8)R4与R5正常时通过1000M链路,故障时通过100M链路。
三次握手(Three-way Handshake)是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。
刚开始客户端处于 Closed 的状态,服务端处于 Listen 状态。
进行三次握手:
第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN。此时客户端处于 SYN_SENT 状态。
首部的同步位SYN=1,初始序号seq=x,SYN=1的报文段不能携带数据,但要消耗掉一个序号。
第二次握手:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s)。同时会把客户端的 ISN + 1 作为ACK 的值,表示自己已经收到了客户端的 SYN,此时服务器处于 SYN_RCVD 的状态。
在确认报文段中SYN=1,ACK=1,确认号ack=x+1,初始序号seq=y。
第三次握手:客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然,也是一样把服务器的 ISN + 1 作为 ACK 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于 ESTABLISHED 状态。服务器收到 ACK 报文之后,也处于 ESTABLISHED 状态,此时,双方已建立起了连接。
确认报文段ACK=1,确认号ack=y+1,序号seq=x+1(初始为seq=x,第二个报文段所以要+1),ACK报文段可以携带数据,不携带数据则不消耗序号。
发送第一个SYN的一端将执行主动打开(active open),接收这个SYN并发回下一个SYN的另一端执行被动打开(passive open)。
在socket编程中,客户端执行connect()时,将触发三次握手。
第一次握手:客户端发送网络包,服务端收到了。
这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。
这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。
第三次握手:客户端发包,服务端收到了。
这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。
因此,需要三次握手才能确认双方的接收与发送能力是否正常。
标准
C ——>FIN seq=3000 S
C seq=3001 ack <—— S
C seq=4000 FIN <—— S
C ——>ack seq=4001 S
可以三次 把fin ack一次发送;也可以俩次,一般是服务为了节约资源
第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于 FIN_WAIT1 状态。
即发出连接释放报文段(FIN=1,序号seq=u),并停止再发送数据,主动关闭TCP连接,进入FIN_WAIT1(终止等待1)状态,等待服务端的确认。
第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 +1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT 状态。
即服务端收到连接释放报文段后即发出确认报文段(ACK=1,确认号ack=u+1,序号seq=v),服务端进入CLOSE_WAIT(关闭等待)状态,此时的TCP处于半关闭状态,客户端到服务端的连接释放。客户端收到服务端的确认后,进入FIN_WAIT2(终止等待2)状态,等待服务端发出的连接释放报文段。
第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK 的状态。
即服务端没有要向客户端发出的数据,服务端发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),服务端进入LAST_ACK(最后确认)状态,等待客户端的确认。
第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 +1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态,服务端收到 ACK 报文之后,就处于关闭连接了,处于 CLOSED 状态。
即客户端收到服务端的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),客户端进入TIME_WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,客户端才进入CLOSED状态。
收到一个FIN只意味着在这一方向上没有数据流动。客户端执行主动关闭并进入TIME_WAIT是正常的,服务端通常执行被动关闭,不会进入TIME_WAIT状态。
因为当服务端收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端,“你发的FIN报文我收到了”。只有等到我服务端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四次挥手。
syn ack rst fin
窗口
拥塞控制
拥塞避免
慢启动
快重传
1、拓扑设计
2、实施
1)拓扑搭建
2)配置
(1)交换
(2)IP地址配置——底层-所有节点拥有合法IP地址
(3)全网可达——静态路由、动态路由
(4)策略——规则、优化、安全
(5)测试
(6)排错
3)维护
4)升级——割接
把每个路由器的所有环回地址看成1个,所以一共有5个,及有5个用户网段,
把骨干链路(路由器和路由器之间的链路)看成一个整体,及有1个骨干网段,
故5+1=6 ,4<6<8
所以要在192.168.1.0/24上借3位,如下所示
192.168.1.0/24
192.168.1.0/27 骨干链路——>192.168.1.0/30、192.168.1.4/30
192.168.1.8/30、192.168.1.12/30
192.168.1.16/30、192.168.1.20/30
192.168.1.24/30、192.168.1.28/30
192.168.1.000 00000/27
192.168.1.32/27 R1——>环回192.168.1.32/28、192.168.1.48/28
192.168.1.64/27 R2——>环回192.168.1.64/28、192.168.1.80/28
192.168.1.96/27 R3
192.168.1.128/27 R4——>环回192.168.1.128/28、192.168.1.144/28
192.168.1.160/27 R5
192.168.1.192/27 (用来升级)
192.168.1.224/27 (用来升级)
3.1 配置公网路由器AR6 IP
[r6]int g0/0/1
[r6]ip address 56.1.1.2 24
[r6]interface LoopBack 1
[r6]ip address 6.6.6.6 24
3.2 配置内网的路由器IP
以AR1为例
[r1]int LoopBack 1
[r1-LoopBack1]ip address 192.168.1.33 28
[r1-LoopBack1]int LoopBack 2
[r1-LoopBack2]ip address 192.168.1.49 28
[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]ip address 192.168.1.1 30
[r1-GigabitEthernet0/0/0]int g0/0/1
[r1-GigabitEthernet0/0/1]ip address 192.168.1.9 30
给r1-r5都配置一个到r6的缺省路由,再配置剩余选路不佳和缺少的路由,再手写静态,这样可以减少一路有提阿欧姆的数量。
缺省路由配置
[r1]ip route-static 0.0.0.0 0.0.0.0 192.168.1.2
[r1]ip route-static 0.0.0.0 0.0.0.0 192.168.1.10
[r2]ip route-static 0.0.0.0 0.0.0.0 192.168.1.6
[r3]ip route-static 0.0.0.0 0.0.0.0 192.168.1.14
[r4]ip route-static 0.0.0.0 0.0.0.0 192.168.1.18
[r5]ip route-static 0.0.0.0 0.0.0.0 56.1.1.2
静态路由配置
[r1]ip route-static 192.168.1.64 27 192.168.1.2
[r1]ip route-static 192.168.1.4 30 192.168.1.2
[r1]ip route-static 192.168.1.96 27 192.168.1.10
[r1]ip route-static 192.168.1.12 30 192.168.1.10
[r2]ip route-static 192.168.1.32 27 192.168.1.1
[r2]ip route-static 192.168.1.8 30 192.168.1.1
[r2]ip route-static 192.168.1.96 27 192.168.1.1
[r2]ip route-static 192.168.1.96 27 192.168.1.6
[r3]ip route-static 192.168.1.32 27 192.168.1.9
[r3]ip route-static 192.168.1.0 30 192.168.1.9
[r3]ip route-static 192.168.1.64 27 192.168.1.9
[r3]ip route-static 192.168.1.64 27 192.168.1.14
[r4]ip route-static 192.168.1.64 27 192.168.1.5
[r4]ip route-static 192.168.1.0 30 192.168.1.5
[r4]ip route-static 192.168.1.8 30 192.168.1.13
[r4]ip route-static 192.168.1.96 27 192.168.1.13
[r4]ip route-static 192.168.1.32 27 192.168.1.13
[r4]ip route-static 192.168.1.32 27 192.168.1.5
1000MB网段
[r5]ip route-static 192.168.1.32 27 192.168.1.17
[r5]ip route-static 192.168.1.64 27 192.168.1.17
[r5]ip route-static 192.168.1.96 27 192.168.1.17
[r5]ip route-static 192.168.1.128 27 192.168.1.17
[r5]ip route-static 192.168.1.0 30 192.168.1.17
[r5]ip route-static 192.168.1.4 30 192.168.1.17
[r5]ip route-static 192.168.1.8 30 192.168.1.17
[r5]ip route-static 192.168.1.12 30 192.168.1.17
100MB网段
[r5]ip route-static 192.168.1.32 27 192.168.1.21 pr 61
[r5]ip route-static 192.168.1.64 27 192.168.1.21 pr 61
[r5]ip route-static 192.168.1.96 27 192.168.1.21 pr 61
[r5]ip route-static 192.168.1.128 27 192.168.1.21 pr 61
[r5]ip route-static 192.168.1.0 30 192.168.1.21 pr 61
[r5]ip route-static 192.168.1.4 30 192.168.1.21 pr 61
[r5]ip route-static 192.168.1.8 30 192.168.1.21 pr 61
[r5]ip route-static 192.168.1.12 30 192.168.1.21 pr 61
r1,r2,r3汇总了路由,所以为了防止路由黑洞,还需要配置空接口路由
[r1]ip route-static 192.168.1.32 27 NULL 0
[r2]ip route-static 192.168.1.64 27 NULL 0
[r3]ip route-static 192.168.1.96 27 NULL 0
要连接外网,需要使用NAT服务
[r5]acl 2000
[r5-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255
[r5-acl-basic-2000]int g0/0/1
[r5-GigabitEthernet0/0/1]nat outbound 2000
[r3]ip pool asd
Info: It's successful to create an IP address pool
[r3-ip-pool-asd]network 192.168.1.96 mask 27
[r3-ip-pool-asd]gateway-list 192.168.1.97
[r3-ip-pool-asd]dns-list 114.114.114.114 8.8.8.8
[r3-GigabitEthernet2/0/0]dhcp select global
[r1]aaa
[r1-aaa]local-user yjh privilege level 15 password cipher 123123
Info: Add a new user.
[r1-aaa]local-user yjh service-type telnet
[r1]user-interfacevt
[r1]user-interface vty 0
[r1-ui-vty0]authentication-mode aaa
[r5]int g0/0/1
[r5-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 23 inside 192.168.1.1 23
Warning:The port 23 is well-known port. If you continue it may cause function failure.
Are you sure to continue?[Y/N]:y