1、简述osi七层模型和TCP/IP五层模型
-
两者都是以协议栈的概念为基础
-
协议栈中的协议彼此互相独立
-
下层对上层提供服务
-
OIS是先有模型,TCP/IP是先有协议,后有模型
-
OSI是国际标准,适用于各种协议栈;TCP/IP实际标准,只适用于TCP/IP网络
-
OSI七层,TCP/IP五层
![](http://i2.51cto.com/images/blog/201811/10/3b6b830192ef2ccb6e7215e3e366fbe9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](https://img2020.cnblogs.com/blog/1201255/202201/1201255-20220117140242334-1342605219.png)
![](https://img2020.cnblogs.com/blog/1201255/202201/1201255-20220117140242334-1616339917.png)
2、总结描述TCP三次握手四次挥手
TCP三次握手
第一次握手:起初两端都处于CLOSED关闭状态,Client将标志位SYN置为1,随机产生一个值seq=x,并将该数据包发送给Server,Client进入SYN-SENT状态,等待Server确认;
第二次握手:Server收到数据包后由标志位SYN=1得知Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给Client以确认连接请求,Server进入SYN-RCVD状态,此时操作系统为该TCP连接分配TCP缓存和变量;
第三次握手:Client收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=y+1,并且此时操作系统为该TCP连接分配TCP缓存和变量,并将该数据包发送给Server,Server检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client和Server就可以开始传输数据。
TCP四次挥手
第一次挥手: Client端发起挥手请求,向Server端发送标志位是FIN报文段,设置序列号seq,此时,Client端进入FIN_WAIT_1
状态,这表示Client端没有数据要发送给Server端了。
第二次分手:Server端收到了Client端发送的FIN报文段,向Client端返回一个标志位是ACK的报文段,ack设为seq加1,Client端进入FIN_WAIT_2
状态,Server端告诉Client端,我确认并同意你的关闭请求。
第三次分手: Server端向Client端发送标志位是FIN的报文段,请求关闭连接,同时Client端进入LAST_ACK
状态。
第四次分手 : Client端收到Server端发送的FIN报文段,向Server端发送标志位是ACK的报文段,然后Client端进入TIME_WAIT
状态。Server端收到Client端的ACK报文段以后,就关闭连接。此时,Client端等待2MSL的时间后依然没有收到回复,则证明Server端已正常关闭,那好,Client端也可以关闭连接了。
3、描述TCP和UDP区别
文件传输数据对完整性要求高,传输中如果数据丢失会导致整个文件损坏无法打开,所以传输层针对文件传输类的工作,选用TCP协议。
语音视频通话属于实时采集的数据,发送的并不是一个事先准备好的文件,所以没有文件完整性一说。而且采集多少数据就传输多少数据,这时传输层则会选择忽略完整性检查,会选择速度更快延迟更小的UDP协议。
4、网卡绑定bond0的实现
1)创建bond0的配置文件
vim /etc/sysconfig/network-scripts/ifcfg-bond0 NAME=bond0 TYPE=bond DEVICE=bond0 BOOTPROTO=none IPADDR=10.0.0.100 PREFIX=8 BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
2)配置第一块eth0网卡
vim /etc/sysconfig/network-scripts/ifcfg-eth0 NAME=eth0 DEVICE=eth0 BOOTPROTO=none MASTER=bond0 SLAVE=yes ONBOOT=yes
3)配置第二块eth1网卡
vim /etc/sysconfig/network-scripts/ifcfg-eth1 NAME=eth1 DEVICE=eth1 BOOTPROTO=none MASTER=bond0 SLAVE=yes ONBOOT=yes
4)查看bond0状态
cat /pro/net/bonding/bond0