1、简述osi七层模型和TCP/IP五层模型
OSI七层模型
应用层:为应用程序或用户请求提供各种请求服务。OSI 参考模型中最靠近用户的一层,为计算机用户提供应用接口,也为用户直接提供各种网络服务。应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。
表示层:数据编码、格式转换、数据加密。把数据转换为能与接收者的系统格式兼容并适合传输的格式,即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。
会话层:创建、管理和维护会话。负责创建、管理和终止表示层实体之间的通信会话,支持它们之间的数据交换。
传输层:数据通信。创建了主机之间的端到端的连接。传输层的作用,是为上层协议提供端到端的可靠的透明的数据传输服务,包括差错控制和流量控制等问题。常用协议包括:TCP、UDP。
网络层:IP选址及路由选择。通过 IP 寻址来创建两个网络节点之间的连接,选择合适的路由和交换节点,正确无误的按照 IP 地址传送给目的主机的传输层。常用协议包括:IP、ICMP、RIP、OSPF。
数据链路层:提供介质访问和链路管理。将比特组合成字节,再将字节组合成帧,使用数据链路层地址 (以太网使用的是 MAC 地址)来访问介质,并进行差错检测。在物理层提供的服务基础之上,负责在通信的实体之间创建数据链路。传输以帧为单位的数据包。常见设备及协议包括:交换机、PPTP、L2TP、ARP。
物理层:提供物理连接,比特流透明传输。通过物理介质传输0-1 比特流,实现电脑通信设备和网络媒体之间的互通。常见设备包括:物理线路、光纤、集线器、中继器。
TCP/IP五层模型
TCP/IP是一组协议的代名词,它包括许多协议,组成了TCP/IP协议簇。它是把OSI七层模型简化成了五层模型。每一层都呼叫它的下一层所提供的网络来完成自己的需求。
2、总结描述TCP三次握手四次挥手
三次握手:
三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。客户端执行连接请求时。将触发三次握手。
第一次握手: Client 将标志位 SYN 设置为 1,随机产生一个 Number 值 seq=100,并将数据发送给 Server,Client 进入 SYN_SENT 状态,等待 Server 确认;
第二次握手: Server 收到数据包后 Client 设置的标志位 SYN=1 知道 Client 要求建立连接,Server 将标志位 SYN 和 ACK 都置为 1,并且发送一个确认序号 ack=100+1,然后随机产生一个值 seq=130,并将该数据包发送给 Client 以确认连接请求,Server 进入 SYN_RCVD 状态;
第三次握手: Client 收到确认后,检查 ACK 状态是否为 100+1,ACK 是否为 1,如果正确则将标志位 ACK 置为 1,ack=130+1,并将该数据包发送给 Server,Server 检查 ACK 是否为 130+1,ACK 是否为1,如果正确则连接建立成功,Client 和 Server 进入 ESTABLISHED 状态,完成三次握手,随后 Client 与 Server 之间可以开始传输数据了。
四次挥手
第一次挥手: Client 发送一个 FIN,用来关闭 Client 到 Server 的数据传送,Client 进入 FIN_WAIT_1 状态;
第二次挥手: Server 收到 FIN 后,发送一个 ACK 给 Client,确认序号为 ack=u+1(与 SYN 相同,一个 FIN 占用一个序号),Server 进入 CLOSE_WAIT 状态;
第三次挥手: Server 发送一个 FIN,用来关闭 Server 到 Client 的数据传送,Server 进入 LAST_ACK 状态;
第四次挥手: Client 收到 FIN 后,Client 进入 TIME_WAIT 状态,接着发送一个 ACK 给 Server,确认序号为 w+1,Server 进入 CLOSED 状态,完成四次挥手。
3、描述TCP和UDP区别
1.TCP是面向链接的运输层协议,UDP是无链接的。
2.每一条TCP链接只能有两个端点,UDP支持一对1、一对多和多对多的通讯。
3.TCP提供可靠交付服务,UDP使用尽最大努力交付。
4.TCP面向字节流,UDP面向报文。
5.TCP有拥塞控制,UDP没有拥塞控制。
6.TCP首部开销较大最少20个字节,UDP首部开销较小只有8个字节。
4、网卡绑定bond0的实现
> nmcli connection add con-name mybond0 ifname bond0 type bond mode balance-alb ipv4.method manual ipv4.addresses 192.168.184.222/24
> nmcli con add type bond-slave ifname ens33 master bond0
> nmcli con add type bond-slave ifname ens35 master bond0
> nmcli connection up bond-slave-ens33
> nmcli connection up bond-slave-ens35
# 查看接口状态
> nmcli connection
NAME UUID TYPE DEVICE
mybond0 b9e288af-5144-459f-ab34-d7892a8ae41e bond bond0
bond-slave-ens33 e18081eb-14ee-4e6f-b6fe-ef6053ba1cc8 ethernet ens33
bond-slave-ens35 e53aba6d-9553-4220-a7a7-f6200a26e93b ethernet ens35
ens33 54816c3f-1ab5-42d5-ab15-08b50c878d8f ethernet --
Wired connection 1 fcf1e811-5d6d-31b3-b686-a826e4a6434c ethernet --
# 查看bond状态
> cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: ens33
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:4d:79:0f
Slave queue ID: 0
Slave Interface: ens35
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:4d:79:19
Slave queue ID: 0
# 删除bond
> nmcli connection delete mybond0
> nmcli connection delete bond-slave-ens33
> nmcli connection delete bond-slave-ens35