第五周作业

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

OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、传输层、应用层
1、物理层:
物理层为OSI模型的最底层,负责网络上传输数据的比特流,即按照位进行传输。包括网卡、中继器、集线器等物理设备。
2、数据链路层:
数据链路层,通过校验、确认、反馈重发等手段将原始的物理连接改造成可靠的数据链路层,并负责相邻节点的数据传输,要解决将比特组合成帧和差错控制等问题。按帧进行传输。
3、网络层:
网络层是通信子网的最高层,解决路由选择、拥塞控制和网络互连、数据的路径选择和转寄等问题。网络传输层的数据单元成为分组或者包,形成报文。(IP)
4、传输层:
传输层提供可靠的、有效的端到端的网络连接。数据包。(TCP(传输控制协议)、UDP(用户数据报协议))
5、会话层:
允许不同主机上各种进程之间的会话,并提供会话管理的功能。其中数据的控制有3种,即单工、半双工、双工。
6、表示层:
为上层(应用层)用户提供共同需要的数据语法转换,完成数据转换、压缩与解压缩、加密与解密等操作。
7、应用层:
OSI参考模型的最高层,直接为终端用户(软件)服务。例如:ftp、ssh、http(s)等。
TCP/IP五层模型:
1、物理层
2、数据链路层
3、网络层
4、传输层
5、应用层

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

TCP协议中的6个标志位。每个标志位为一位:0或者1。
1、URG:(Urgent Pointer field significant)紧急指针。用到的时候值为1,用来处理避免TCP数据流中断。
2、ACK:(Acknowledgment fieldsignificant)置1时表示确认号(AcknowledgmentNumber)为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。
3、PSH:(Push Function),PUSH标志的数据,置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。
4、RST:(Reset the connection)用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误。
5、SYN:(Synchronize sequence numbers)用来建立连接,在连接请求中,SYN=1,ACK=0,连接响应时,SYN=1,ACK=1。即,SYN和ACK来区分Connection Request和Connection Accepted。
6、FIN:(No more data from sender)用来释放连接,表明发送方已经没有数据发送了。

TCP的三次握手和四次挥手,用到TCP协议6个标志位中的三个,即ACK、SYN、FIN。还有初始化序号(seq)和确认序号(ack)

TCP协议为全双工通信(即两端通信正常,都能够实行收发功能)和安全通信(即每次通信之间都要有初始化序号或者确认序号)

TCP的三次握手:
实现第一次握手:(SYN=1;ACK=0;seq=x)即客户端请求连接
第一次握手分析:客户端向服务器端发起请求(SYN=1  建立链接),但不知道服务器端能否响应该请求(ACK=0)。并且为保障数据安全传输,会建立一个初始化序列号(seq=x),当数据安全到达时,对方(服务器端)应该回应确认序号(ack=x+1)。

实现第二次握手:(SYN=1;ACK=1;ack=x+1;seq=y)即服务器端确认连接
第二次握手分析:服务器端接收到客户端的请求,并响应客户端的请求(SYN=1,ACK=1),并且确认上一次连接的确定序号(ack=x+1)。于此同时,服务器端也建立一个初始化序列号(seq=y)。


经过以上两次握手,客户端已经达到要求(收发功能正常),但服务器端未收到客户端的响应,不知道能否与客户端能够正常通信,所以客户端还应该回应服务器端(seq=x+1)

实现第三次握手:(SYN=0;ACK=1;ack=y+1;seq=x+1)即客户端确认连接
第三次握手分析:客户端回应服务器端的响应(ACK=1,seq=x+1)并且确认上一次连接的确定序号(ack=y+1)。于此同时,服务器端也建立一个初始化序列号(seq=y)。
,但是不知道服务器端能否收到(SYN=0)

四次挥手:
第一次挥手:(FIN=1,ACK=0,seq=m)客户端请求断开连接
第一次挥手分析:客户端向服务器端发送请求,请求断开(FIN=1),为确保安全本次会话建立一个序列号为m(seq=m),但不知道服务器端能否响应该请求(ACK=0),对方(服务器端)收到请求并给予答复,应该回应确认序号(ack=m+1)。

第二次挥手:(ACK=1,ack=m+1,seq=n)服务器端确认断开连接
第二次挥手分析:服务器端收到请求,并给予答复(ACK=1,ack=m+1),为确保安全本次会话建立一个序列号为n(seq=n)

等到服务器端向客户端发送数据结束时,在进行第三次挥手。

第三次挥手:(FIN=1,ACK=1,ack=m+1,seq=x)服务器端请求断开连接
第三次挥手分析:服务器端同意客户端的断开请求(FIN=1,ACK=1,ack=m+1),为确保安全本次会话建立一个序列号为x(seq=x)

经过以上三次握手,服务器端已经达到要求(收发功能正常),但客户端未对服务端的响应做出表态,不知道客户端是否要真正断开,所以客户端还应该回应服务器端确定断开的指示。(seq=x+1)

第四次挥手:(ACK=1,ack=x+1,seq=m+1)客户端确认断开连接
第四次挥手分析:客户端确定要关闭会话(ACK=1,ack=x+1,seq=m+1)




3、描述TCP和UDP区别

TCP
//工作在传输层 
面向连接协议
全双工协议
半关闭
错误检查
将数据打包成段,排序
确认机制
数据恢复,重传
流量控制,滑动窗口
拥塞控制,慢启动和拥塞避免算法



UDP
//工作在传输层
提供不可靠的网络访问
非面向连接协议
有限的错误检查
传输性能高
无数据恢复特性

4、网卡绑定bond0的实现

方法一:修改配置文件方式

1、准备两个同网段的虚拟机(CentOS7和CentOS8),都用NAT模式连接。
2、在CentOS8(10.0.8.200/24)上配置,在CentOS7(10.0.8.7/24)能够ping通CentOS8上所设置的IP。
3、在CentOS8上增加两张网卡,即eth1和eth2
4、把配置文件写入CentOS8中。
CentOS8配置文件如下:
cd   /etc/sysconfig/network-scripts      #进入该目录
vim   ifcfg-bond0									#创建bond0,即两张网卡公用一个IP,对外只显示一张网卡

NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.8.200
PREFIX=24
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路。mode=1聚合链路工作的模式。
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"

vim   ifcfg-eth1									#创建eth1网卡设置
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes


vim   ifcfg-eth2									#创建eth2网卡设置
NAME=eth2
DEVICE=eth2
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes

然后让网卡生效:
[10:53:52 root@CentOS8 network-scripts][#nmcli con
NAME    UUID                                  TYPE      DEVICE 
eth0    5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
virbr0  b493fcd3-8303-4675-82e8-2aaadc8abdfb  bridge    virbr0 
eth1    9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  --     
eth2    3a73717e-65ab-93e8-b518-24f5af32dc0d  ethernet  --     
[10:55:04 root@CentOS8 network-scripts][#nmcli con reload
[10:55:08 root@CentOS8 network-scripts][#nmcli con 
NAME    UUID                                  TYPE      DEVICE 
eth0    5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
bond0   ad33d8b0-1f7b-cab9-9447-ba07f855b143  bond      bond0  
virbr0  b493fcd3-8303-4675-82e8-2aaadc8abdfb  bridge    virbr0 
eth1    9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  eth1   
eth2    3a73717e-65ab-93e8-b518-24f5af32dc0d  ethernet  eth2 


在CentOS7上pingCentOS8上设置的10.0.8.200.
[root@CS7-VM1-192 ~]# ping 10.0.8.200
PING 10.0.8.200 (10.0.8.200) 56(84) bytes of data.
64 bytes from 10.0.8.200: icmp_seq=1 ttl=64 time=0.547 ms
64 bytes from 10.0.8.200: icmp_seq=2 ttl=64 time=0.464 ms
64 bytes from 10.0.8.200: icmp_seq=3 ttl=64 time=0.654 ms
64 bytes from 10.0.8.200: icmp_seq=4 ttl=64 time=0.447 ms
^C
--- 10.0.8.200 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 0.447/0.528/0.654/0.082 ms
[root@CS7-VM1-192 ~]# 
 
以上步骤:网卡绑定bond0的实现、



查看bond0的状态:
[10:56:27 root@CentOS8 network-scripts][#cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:37:e0:b6
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:37:e0:c0
Slave queue ID: 0

方法二:直接用命令方式ncmli

#添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup 
ipv4.method manual ipv4.addresses 10.0.0.100/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




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值