转载声明:文章来源:https://blog.csdn.net/Lucky_Lu0/article/details/122451561
一.三次握手:
1、第一次握手:客户端给服务器发送一个 SYN 报文。
2、第二次握手:服务器收到 SYN 报文之后,会应答一个 SYN+ACK 报文。
3、第三次握手:客户端收到 SYN+ACK 报文之后,会回应一个 ACK 报文。
4、服务器收到 ACK 报文之后,三次握手建立完成。
第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。
第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。
因此,需要三次握手才能确认双方的接收与发送能力是否
SYN=1 表示该报文不携带数据,但消耗一个序号 seq=x,seq=x是客户端的初始化序列号,因为tcp是面向字节流的
SYN=1 表示该报文不携带数据,但消耗一个序号 seq=y,seq=y是服务器的初始化序列号,ACK=1是一个确认号
ack=x+1,表示服务器下次接收到的序号希望是x+1。然后服务器进入到SYN-RCVD等待的状态
ACK=1是一个确认号,seq=x+1是上一次服务器回应的序号要求,ack=y+1表示客户下一次接收到的序号希望是y+1
三次握手的作用:
1、确认双方的接受能力、发送能力是否正常。
2、指定自己的初始化序列号,为后面的可靠传送做准备。
3、如果是 https 协议的话,三次握手这个过程,还会进行数字证书的验证以及加密密钥的生成到。
二、四次挥手:
第一次挥手 客户端发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态
第二次挥手 服务器端接收到连接释放报文后,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT 关闭等待状态
第三次挥手 客户端接收到服务器端的确认请求后,客户端就会进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文,服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
第四次挥手 客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态,但此时TCP连接还未终止,必须要经过2MSL后(最长报文寿命),当客户端撤销相应的TCB后,客户端才会进入CLOSED关闭状态,服务器端接收到确认报文后,会立即进入CLOSED关闭状态,到这里TCP连接就断开了,四次挥手完成
为什么客户端要等待2MSL?
主要原因是为了保证客户端发送那个的第一个ACK报文能到到服务器,因为这个ACK报文可能丢失,并且2MSL是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃,这样新的连接中不会出现旧连接的请求报文。
三、静态路由综合实验
1.拓扑网络
2.配置IP
r1:
loopback0:192.168.1.33/28 loopback1:192.168.1.49/28
g0/0/0 192.168.1.1/30 g0/0/1 192.168.1.5/30
r2:
loopback0:192.168.1.65/28 loopback1:192.168.1.81/28
g0/0/0 192.168.1.2/30 g0/0/1 192.168.1.9/30
r3:
g0/0/1 192.168.1.6/30 g0/0/0 192.168.1.13/30 g1/0/0 192.168.1.97/27
r4:
loopback0:192.168.129/28 loopback1: 192.168.1.145/28
g0/0/0 192.168.1.10/30 g0/0/1 192.168.1.14/30 g1/0/0 192.168.1.17/30
g2/0/0 192.168.1.21/30
r5:
loopback0:192.168.1.161/27
g0/0/0 192.168.1.18/30 g1/0/0 192.168.1.22/30 g0/0/1 56.1.1.1/24
r6:
loopback0:6.6.6.1/24
g 0/0/0 56.1.1.2/24
r6为isp,接口ip均为公有地址,设备只能配置ip,r1-r5为局域网,
配置r1到r5的静态ip实现该局域网全网通信
首先配置r1,r2,r3,r4,r5的默认路由
r1:ip route-static 0.0.0.0 0 192.168.1.2
ip route-static 0.0.0.0 0 192.168.1.6
r2:
ip route-static 0.0.0.0 0 192.168.1.10
r3:
ip route-static 0.0.0.0 0 192.168.1.14
r4:
ip route-static 0.0.0.0 0 192.168.1.18
r4上的g2/0/0接口为作备份先不配置静态,将此线路down掉
r5:
ip route-static 0.0.0.0 0 56.1.1.2
由于访问r2,r4上的换回接口,会出现负载均衡,会使流量分两路,所以需要手动配置静态,
r1:
ip route-static 192.168.1.64 27 192.168.1.2
ip route-static 192.168.1.96 27 192.168.1.6
ip route-static 192.168.1.12 30 192.168.1.6
ip route-static 192.168.1.8 30 192.168.1.2
r2:
ip route-static 192.168.1.96 27 192.168.1.1
ip route-static 192.168.1.96 27 192.168.1.10
ip route-static 192.168.1.4 30 192.168.1.1
ip route-static 192.168.1.12 30 192.168.1.10
r3:
ip route-static 192.168.1.64 27 192.168.1.5
ip route-static 192.168.1.64 27 192.168.1.14
ip route-static 192.168.1.0 30 192.168.1.5
ip route-static 192.168.1.8 30 192.168.1.1
r4:
ip route-static 192.168.1.32 27 192.168.1.9
ip route-static 192.168.1.32 27 192.168.1.13
ip route-static 192.168.1.0 30 192.168.1.9
ip route-static 192.168.1.4 30 192.168.1.13
ip route-static 192.168.1.96 27 192.168.1.13
r5:
ip route-static 192.168.1.32 27 192.168.1.17
ip route-static 192.168.1.64 27 192.168.1.17
ip route-static 192.168.1.96 27 192.168.1.17
ip route-static 192.168.1.0 30 192.168.1.17
ip route-static 192.168.1.4 30 192.168.1.17
ip route-static 192.168.1.8 30 192.168.1.17
ip route-static 192.168.1.12 30 192.168.1.17
为两台pc自动获取ip
[r3]dhcp enable
[r3]ip pool pc1
[r3-ip-pool-pc1]network 192.168.1.96 mask 27
[r3-ip-pool-pc1]gateway-list 192.168.1.97
[r3-ip-pool-pc1]dns-list 114.114.114.114
[r3]int g 1/0/0
[r3-GigabitEthernet1/0/0]dhcp select global
获取成功
静态创建完成后,使用路由器分别访问其他路由器的环回地址
<r1>ping 192.168.1.18
PING 192.168.1.18: 56 data bytes, press CTRL_C to break
Reply from 192.168.1.18: bytes=56 Sequence=1 ttl=253 time=40 ms
Reply from 192.168.1.18: bytes=56 Sequence=2 ttl=253 time=30 ms
Reply from 192.168.1.18: bytes=56 Sequence=3 ttl=253 time=40 ms
Reply from 192.168.1.18: bytes=56 Sequence=4 ttl=253 time=40 ms
Reply from 192.168.1.18: bytes=56 Sequence=5 ttl=253 time=50 ms
访问成功,此时全网已实现通信
为了使r4上的192.168.1.20/30作备份路由,我们为该网段添加默认路由,并修改优先级
当192.168.1.16/30出现故障时,流量将会走192.168.1.20/30网段
[r4]ip route-static 0.0.0.0 0 192.168.1.22 preference 61
手动配置静态
[r5]ip route-static 192.168.1.96 27 192.168.1.21 preference 61
[r5]ip route-static 192.168.1.32 27 192.168.1.21 preference 61
[r5]ip route-static 192.168.1.64 27 192.168.1.21 preference 61
[r5]ip route-static 192.168.1.0 30 192.168.1.21 preference 61
[r5]ip route-static 192.168.1.4 30 192.168.1.21 preference 61
[r5]ip route-static 192.168.1.8 30 192.168.1.21 preference 61
[r5]ip route-static 192.168.1.12 30 192.168.1.21 preference 61
down掉192.168.1.16/30网段,查看r4,r5路由表
可以看到192.168.1.20/30网段的静态路由
为了防环,需要在r1,r2 ,r4配置空接口
[r1]ip route-static 192.168.1.32 27 NULL 0
[r2]ip route-static 192.168.1.64 27 NULL 0
[r4]ip route-static 192.168.1.128 27 NULL 0
使用r1和r5访问r6的环回地址
<r1>ping 6.6.6.1
PING 6.6.6.1: 56 data bytes, press CTRL_C to break
Reply from 6.6.6.1: bytes=56 Sequence=1 ttl=252 time=30 ms
Reply from 6.6.6.1: bytes=56 Sequence=2 ttl=252 time=40 ms
Reply from 6.6.6.1: bytes=56 Sequence=3 ttl=252 time=30 ms
Reply from 6.6.6.1: bytes=56 Sequence=4 ttl=252 time=50 ms
Reply from 6.6.6.1: bytes=56 Sequence=5 ttl=252 time=40 ms
<r5>ping 6.6.6.1
PING 6.6.6.1: 56 data bytes, press CTRL_C to break
Reply from 6.6.6.1: bytes=56 Sequence=1 ttl=255 time=40 ms
Reply from 6.6.6.1: bytes=56 Sequence=2 ttl=255 time=10 ms
Reply from 6.6.6.1: bytes=56 Sequence=3 ttl=255 time=20 ms
Reply from 6.6.6.1: bytes=56 Sequence=4 ttl=255 time=20 ms
Reply from 6.6.6.1: bytes=56 Sequence=5 ttl=255 time=20 ms
访问成功
让r6控制r5的公有ip地址时,实际登录到r1上,在r1上aaa认证
[r1]aaa
[r1-aaa]local-user luozhen privilege level 15 password cipher 123456
Info: Add a new user.
[r1-aaa]local-user luozhen service-type telnet
[r1-aaa]q
[r1]user-interface vty 0
[r1-ui-vty0]authentication-mode aaa
在r5上配置访问控制,将192.168.1.0的所有地址在g0/0/1接口转换为公有地址
[r5]acl 2000
[r5-acl-basic-2000]rule 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
将r5的端口映射到r6上
[r5]int g 0/0/1
[r5-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 23 ins
ide 192.168.1.1 23
Warning:The port 23 is well-known port. If you continue it may cause function fa
ilure.
Are you sure to continue?[Y/N]:y
[r5-GigabitEthernet0/0/1]
Please check whether system data has been changed, and save data in time
Configuration console time out, please press any key to log on
使用r6连接r5
<r6>telnet 56.1.1.1
Press CTRL_] to quit telnet mode
Trying 56.1.1.1 ...
Connected to 56.1.1.1 ...
Login authentication
Username:luozhen
Password:
<r1>
成功控制r1
又搞定一个知识盲区