1. 简述osi七层模型和TCP/IP五层模型
OSI七层模型
分层名称 | 功能 | 常见协议 |
---|---|---|
应用层 | 特定应用协议 | http、ftp、smtp |
表示层 | 设备固有数据格式和网络标准数据格式转换 | |
会话层 | 负责建立和断开通信连接 | |
传输层 | 管理两个节点之间的数据传输 | TCP、UDP |
网络层 | 地址管理和路由选择 | IP、ICMP |
数据链路层 | 识别帧 | ARP |
物理层 | 传输0或1电信号 |
TCP/IP五层模型
分层名称 | 功能 | 常见协议 |
---|---|---|
应用层 | 应用程序之间的沟通 | http、ftp、smtp |
传输层 | 负责两台主机之间的数据传输 | TCP、UDP |
网络层 | 负责地址管理和路由选择 | IP、ICMP |
数据链路层 | 负责设备之间的数据帧的传输和识别 | ethernet |
物理层 | 负责光电信号传递方式 |
2. 总结描述TCP三次握手四次挥手
三次握手
三次握手
A | B | ||
---|---|---|---|
1 | close | listen | |
2 | SYN-SENT | --> seq=X,SYN=1 --> | SYN-RECEIVED |
3 | ESTABLISHED | <-- seq=Y,ack=X+1,SYN=1,ACK=1<-- | SYN-RECEIVED |
4 | ESTABLISHED | -->seq=X+1,ack=Y+1,ACK=1 --> | ESTABLISHED |
5 | ESTABLISHED | --> data --> | ESTABLISHED |
第一次握手:建立连接时,客户端发送seq=X包到服务器,标志位SYN=1,并进入SYN_SENT状态,等待服务器确认
第二次握手:服务器收到客户端发来的包,返回ack=x+1,seq=y,标志位是SYN和 ACK=1即SYN+ACK包,此时服务器进入SYN_RECEIVED状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包seq=X+1,ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
四次挥手
四次挥手
客户端或服务器均可主动发起挥手动作,刚开始双方都处于 ESTABLISHED 状态,假如是客户端先发起关闭请求。四次挥手的过程如下:
- 第一次挥手:客户端发送一个报文段(FIN=1,序号seq=u),并停止再发送数据,主动关闭TCP连接,进入FIN_WAIT1(终止等待1)状态,等待服务端的确认
- 第二次挥手:服务端收到连接释放报文段后即发出确认报文段(ACK=1,确认号ack=u+1,序号seq=v),服务端进入CLOSE_WAIT(关闭等待)状态,此时的TCP处于半关闭状态,客户端到服务端的连接释放。客户端收到服务端的确认后,进入FIN_WAIT2(终止等待2)状态,等待服务端发出的连接释放报文段。
- 第三次挥手:服务端没有要向客户端发出的数据,服务端发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),服务端进入LAST_ACK(最后确认)状态,等待客户端的确认。
- 第四次挥手:客户端收到服务端的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),客户端进入TIME_WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,客户端才进入CLOSED状态。
3. 描述TCP和UDP区别
- TCP基于连接,UDP无连接;
- TCP可靠,保证数据正确性,UDP不可靠,可能丢包;
4. 网卡绑定bond0的实现
1. 修改配置文件
vim ifcfg-bond0
BOOTPROTO=static
NAME="bond0"
DEVICE="bond0"
ONBOOT=yes
BONDING_MASTER=yes
BONDING_OPTS="mode=0 miimon=100" #mode1:active-backup 模式,即主备模式。mode0:round-broin 模式,即负载均衡模式,需要交换机配置聚合口
IPADDR=10.0.0.150
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
DNS1=114.114.114.114
vim ifcfg-ens33
BOOTPROTO=static
NAME="ens33"
DEVICE="ens33"
ONBOOT=yes
MASTER=bond0
SLAVE=yes
vim ifcfg-ens37
BOOTPROTO=static
NAME="ens37"
DEVICE="ens37"
ONBOOT=yes
MASTER=bond0
SLAVE=yes
nmcli c reload
2. nmcli命令
添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode round-robin ipv4.method manual ipv4.addresses 10.0.0.150/24
添加从属接口
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0
注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1
启动绑定
nmcli con up mybond0
查看bond0信息
nmcli c s mybond0
cat /proc/net/bonding/bond0