linux运维5

本文详细介绍了OSI七层模型和TCP/IP五层模型,解析了TCP的三次握手与四次挥手过程,并通过实例展示了TCP连接的建立与终止。同时,探讨了TCP与UDP的区别,TCP侧重于数据完整性,而UDP则注重速度。最后,文章演示了在CentOS7上如何实现网卡绑定bond0,确保网络连接的冗余和可靠性。
摘要由CSDN通过智能技术生成

1、简述osi七层模型和TCP/IP五层模型

在这里插入图片描述
osi七层模型:
理论上模型,但是目前主流还是TCP/IP4层/5层模型

  1. 物理层(Physical Layer)
    在局部局域网上传送数据帧(Data Frame),它负责管理电脑通信设备和网
    络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡等

  2. 数据链路层(Data Link Layer)
    负责网络寻址、错误侦测和改错。

  3. 网络层(Network Layer)
    决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成报文。
    网络表头包含了网络数据。例如:互联网协议(IP)等。

  4. 传输层(Transport Layer)
    把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议
    等发送信息。例如:传输控制协议(TCP)等。

  5. 会话层(Session Layer)
    负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。

  6. 表示层(Presentation Layer)
    把数据转换为能与接收者的系统格式兼容并适合传输的格式

  7. 应用层(Application Layer)
    提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如:
    HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等

TCP/IP五层模型:

  1. 物理层(Physical Layer)
    在局部局域网上传送数据帧(Data Frame),它负责管理电脑通信设备和网
    络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机接口卡等

  2. 数据链路层(Data Link Layer)
    负责网络寻址、错误侦测和改错。

  3. 互联网层(实际就是网络层):
    决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成报文。
    网络表头包含了网络数据。例如:互联网协议(IP)等。

  4. 传输层
    把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议
    等发送信息。例如:传输控制协议(TCP)等。

  5. 应用层(会话层和表示层加应用层综合)
    负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
    然后把数据转换为能与接收者的系统格式兼容并适合传输的格式
    最后提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如:
    HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等

2、总结描述TCP三次握手四次挥手

环境准备:

客户端系统Windows 10
服务器系统centos 7.8
远程软件xshell 7
抓包工具科来网络分析系统 11
服务器IP192.168.116.145
客户端IP192.168.116.175

TCP三次握手联想:

1、学校门口小卖部一直开着大门等着人去买东西。(服务器一直开着端口)

2、小明平常没钱买辣条,有钱的时候就去买爆款辣条。(客户端有时访问服务器,有时候不访问服务器)

3、小明昨天帮妈妈买酱油得到2块钱小费,放学跑去校门口小卖部,叫老板去找爆款辣条,小明则等着老板给辣条。(客户端连接服务器,打开端口进行连接,进入到SYN-SENT状态)

4、小卖部老板找到小明要的辣条,然后等待小明给钱。(服务器接收客户端请求,进入到SYN-RCVD状态)

5、小明确认辣条是这款辣条没错,给钱给老板。老板确认价钱没错,把辣条给了小明。小明吃得开心,老板赚得开心。(客户端发送数据给服务器,客户端进入到ESTAB-LISHED状态,服务器进入到ESTAB-LISHED状态)

TCP三次握手会话图:

在这里插入图片描述

在这里插入图片描述
三次握手参考文档:http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh-3.htm

用xshell 7进行ssh远程抓包
点击TCP会话,可以看到客户端192.168.116.175的49777端口和192.168.116.145的22端口进行通信
在这里插入图片描述
TCP协议详细协商图
在这里插入图片描述
在这里插入图片描述

一、 TCP连接第一次握手
在这里插入图片描述

  1. 默认客户端的49777端口属于关闭状态,因为要进行通信,所以客户端会打开端口。
  2. 客户端发送SYN包给服务器,进入到SYN_SENT状态,进行TCP协议的第一次握手。
  3. SYN包的里面包括
    Seq 信息: 3889406003 客户端随机生成
    Ack 信息: 0,确认号,初始为0
    Next Seq 信息: 3889406004 指定服务器下次回复客户端的ACK确认号,就是在seq包的编号后面加1

猜疑:客户端发送数据给服务器,客户端是否拥有发送数据的功能?

二、 TCP连接第二次握手
在这里插入图片描述

  1. 服务器的22端口默认是一直在LISTEN状态,等待别人进行通信。
    ss -tnl | grep 22
    在这里插入图片描述

  2. 当收到客户端的SYN包时,服务器回复SYN,ACK数据包给客户端,进入到SYN-RCVD(半连接状态),等待客户端进一步连接,这就是TCP协议的第二次握手。

  3. 数据包有SYN和ACK包,信息如下:
    Seq 信息:2534631076 服务器随机生成
    Ack 信息: 3889406004 这个是客户端提供的ACK确认号,回复客户端需要提供这个
    Next Seq 信息: 2534631077 指定客户端下次回复服务器的确认号,就是在seq包的编号后面加1

结论:服务器收到数据包,证明客户端有发送数据的功能。

猜疑:服务器发送数据包给客户端,服务器是否有发送数据的功能?客户端是否有接收数据的功能?

三、TCP协议的第三次握手
在这里插入图片描述
ACK包里面包括:
Seq 信息:3889406004 客户端改变自己的Seq信息为刚才设定的Ack信息,证明自己是刚才发送的客户端
Ack 信息:2534631077 客户端提供服务器需要的Ack信息
Next Seq 信息:3889406004 指定下次服务器回复客户端的Ack编号

  1. 客户端发送ACK包给服务器,客户端进入到ESTAB-LISHED状态。
 netstat -an         Windows查看进程状态

在这里插入图片描述

  1. 服务器收到ACK包后,也进入到ESTAB-LISHED状态。
 lsof -i:22       centos 7 查看端口状态,需要yum install -y lsof 安装工具

在这里插入图片描述

结论:
客户端收到服务器的数据,证明服务器有发送数据的功能。
客户端发送数据给回服务器,证明客户端拥有接收数据的功能
客户端和服务器都具有发送和接收功能,双方开始正常通信。

TCP协议四次挥手:

四次挥手参考文档:
http://www.tcpipguide.com/free/t_TCPConnectionTermination-2.htm

四次挥手理论图:
在这里插入图片描述
实验图:

在这里插入图片描述
在这里插入图片描述

注意:第二次挥手和第三次挥手因为TCP协议的本身的流量控制机制问题,所以有时候会把2个包放在一起。

三次握手后,客户端和服务器都是ESTABLISHED状态
在这里插入图片描述
在这里插入图片描述
第一次挥手:
在这里插入图片描述

1、客户端发送ACK包,ACK包是对上次连接的数据进行确认,不关挥手机制的事。
2、客户端发送FIN包,向服务器发起断开端口连接请求。

第二次挥手:
在这里插入图片描述

服务器收到客户端的断开请求后,发送ACK包进行确认收到断开请求。然后端口进入到CLOSE-WAIT等待关闭状态。

第三次挥手:
在这里插入图片描述

服务器准备好和客户端端口断开连接后,发送FIN包给客户端确认要断开连接,然后进入到LAST-ACK,也就是等待客户端的ACK包状态。

第四次挥手:
在这里插入图片描述

客户端最后发送ACK包确认收到服务器的FIN包,会先进入到TIME_WAIT等待状态。
客户端等待2MSL时间后,这段时间是为了等待服务器收到ACK包,时间到了后,客户端端口关闭,进入到CLOSED状态。服务器则会继续变成LISTEN状态

在这里插入图片描述
在这里插入图片描述

3、描述TCP和UDP区别

参考网站:http://www.tcpipguide.com/free/t_toc.htm

TCP协议的特性:
1、工作在传输层
2、面向连接协议
3、全双工协议
4、有数据包恢复机制,可重传,保障数据完整性
5、有窗口机制控制流量,避免拥塞
6、有确认机制,保障数据的正确性
7、传输相对较慢,注重高质量传输

使用TCP协议包括:http,https,ftp,ssh等

UDP协议的特性:
1、工作在传输层
2、不用连接就可以通信
3、有限的错误检查机制
4、传输快,性能高
5、没有数据恢复

使用UDP协议包括:TFTP、SNMP、NFS、DNS、BOOTP等

4、网卡绑定bond0的实现

准备一台虚拟机,使用双网卡,系统为centos7
在这里插入图片描述

系统版本Centos 7
网卡1名称ens33
网卡2名称ens34
绑定网卡名称bond 0
绑定模式主备模式 mode=1

网卡1配置:

cd /etc/sysconfig/network-scripts/     进入网卡文件存放目录
mv ifcfg-ens33 ifcfg-ens33.bak         把旧的网卡1改为别的名字,让其不生效
vi ifcfg-ens33                         新建新的网卡1配置文件
添加
NAME=ens33
DEVICE=ens33
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes

网卡2配置:

 mv ifcfg-ens34 ifcfg-ens34.bak  把旧的网卡2改为别的名字,让其不生效
 vi ifcfg-ens34                  新建新的网卡2配置文件
 添加
NAME=ens34
DEVICE=ens34
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes

绑定网卡bond 0配置:

 vi ifcfg-bond0                  新建网卡的绑定文件
 添加
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.116.146
PREFIX=24
GATEWAY=192.168.116.2
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"

mode=1代表主备模式,当网卡1断了后,网卡2能替代网卡1,保证通信不断开。
systemctl restart network 重启网卡,使配置生效
在这里插入图片描述
cat /proc/net/bonding/bond0 通过进程可以看到目前工作的是网卡1
在这里插入图片描述
客户端开启一个长ping测试:
ping 192.168.116.146
在这里插入图片描述

服务器断开测试:

nmcli conn              查看默认工作的网卡,3个绿色代表3个都正常
nmcli conn down ens33   断开网卡1
nmcli conn              可以看到网卡1断开连接

在这里插入图片描述

cat /proc/net/bonding/bond0  通过进程可以看到目前工作的是网卡2,网卡切换完成

在这里插入图片描述
客户端查看是否有丢包:
总共发了68个包,0个包丢失,证明网卡绑定成功
68 packets transmitted, 68 received, 0% packet loss, time 67033ms
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值