1、简述osi七层模型和TCP/IP五层模型
OSI七层模型由物理层,数据链路层,网络层,传输层,会话层,表示层,应用层组成。
物理层实现的是网络信号通过物理层进行传输,通过物理设备,集线器,中继器,网卡,双绞线传输比特流。传输的单位是Bit。
数据链路层是将比特合成帧,使用数据链路层地址 (以太网使用的是 MAC 地址)来访问介质,并进行差错检测。在物理层提供的服务基础之上,负责在通信的实体之间创建数据链路。传输以帧为单位是Frame。
网络层通过 IP 寻址来创建两个网络节点之间的连接,为源主机的传输层送来的分组,选择合适的路由和交换节点,正确无误的按照 IP 地址传送给目的主机的传输层。使用 IP协议和路由器的路由选择信息。
传输层创建了主机之间的端到端的连接。传输层的作用,是为上层协议提供端到端的可靠的透明的数据传输服务,包括差错控制和流量控制等问题。
会话层负责创建、管理和终止表示层实体之间的通信会话。
表示层提供各种用于应用层数据的编码和转换功能,确保一个主机的应用层发送的数据能被另一个主机的应用层识别。如果有必要,该层可以提供一种标准的表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。
应用层是OSI 参考模型中最靠近用户的一层,为计算机用户提供应用接口,也为用户直接提供各种网络服务。
TCP/IP五层协议和OSI的七层协议对应关系如下。
2、总结描述TCP三次握手四次挥手
三次握手
第一次握手
建立连接。客户端发送连接请求报文段,将SYN位置为1, seq为x;(x 是随机生成的一个 int 数值)然后,客户端进入SYN_SEND状态,等待服务器的确认;
第二次握手
服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置ACK为x+1(seq+1);同时,自己自己还要发送SYN请求信息,将SYN位置为1,seq为 y (y 是随机生存的一个 int 数值);服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;
第三次握手
客户端收到服务器的SYN+ACK报文段。然后将ACK设置为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。
四次挥手
第一次挥手:
Client (可以是客户端,也可以是服务器端),设置seq和ACK,向 Server发送一个FIN报文段;此时,Client 进入FIN_WAIT_1状态;这表示 Client 没有数据要发送给 Server了;客户端发送第一次挥手后,就不能在向服务端发送数据了。
第二次挥手:
Server 收到了 Client 发送的FIN报文段,向 Client 回一个ACK报文段,ACK 为 seq 加 1;Client 进入 FIN_WAIT_2 状态;Server 告诉 Client ,同意关闭请求;Server 第一次响应后,还可以继续向 Client 发送数据,这里只是告诉 Client ,收到Client发送的关闭请求。
第三次挥手
Server 向 Client 发送 FIN 报文段,请求关闭连接,同时 Server 进入 CLOSE_WAIT 状态;当 Server 的数据响应完成后,再告诉 Client,我这边也可以关闭请求了, 这时Server 就不能再向 Client 发送数据了。
第四次挥手
Client 收到 Server 发送的 FIN 报文段,向 Server 发送 ACK 报文段,然后 Client 进入
TIME_WAIT 状态;Server 收到 Client 的 ACK 报文段以后,就关闭连接;此时,Client
等待2MSL后依然没有收到回复,则证明 Server 端已正常关闭,Client 也可以关闭连接了。
3、描述TCP和UDP区别
1.TCP面向连接,UDP是无连接的。2.TCP提供可靠的服务,通过TCP传输的数据,无差错,不丢失,不重复,按序到达。UDP不保证可靠交付。3.TCP传输效率低,UDP传输效率高。4.TCP连接只能一对一,UDP支持一对一,一对多,多对一相互通信。
4、网卡绑定bond0的实现
用nmcli命令设置
#添加bonding接口
[root@localhost ~]# nmcli connection add con-name mybond0 ifname bond0 type bond mode active-backup ipv4.method manual ipv4.addresses 10.0.0.99/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