Linux基础学习五

一、简述OSI七层模型和TCP/IP五层模型
OSI七层模型

OSI是Open System Interconnect的缩写,意为开放式系统互联,各个层次的划分按照以下原则:

1、同一层中的各网络节点都有相同的层次结构,具有同样的功能 。

2、同一节点内相邻层之间通过接口(可以是逻辑接口)进行通信 。

3、七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务。

4、不同节点的同等层按照协议实现对等层之间的通信 。

具体定义如下表所示:

层次层次名定义设备/协议
第一层物理层在局部局域网上传送数据帧(Data Frame),它负责管理电脑通信设备和网络媒体之间的互通针脚、电压、线缆规范、集线器、中继器、网卡、主机接口卡;ISO2110,IEEE802,IEEE802.2等协议
第二层数据链接层负责网络寻址、错误侦测和改错SLIP,CSLIP,PPP,ARP,RARP,MTU
第三层网络层决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成报文IP,ICMP,RIP,OSPF,BGP,IGMP
第四层传输层把传输表头(TH)加至数据以形成数据包TCP,UDP
第五层会话层负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接无协议
第六层表示层把数据转换为能与接收者的系统格式兼容并适合传输的格式无协议
第七层应用层提供为应用软件而设的接口,以设置与另一应用软件之间的通信HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL
TCP/IP五层模型

物理层:负责光电信号传递方式。集线器工作在物理层。以太网协议。

数据链路层:负责设备之间的数据帧的传输和识别。交换机工作在数据链路层。例如网卡设备的驱动,帧同步,冲突检测,数据差错校验等工作。

网络层:负责地址管理和路由选择。路由器工作在网络层。

传输层:负责两台主机之间的数据传输。

应用层:负责应用程序之间的沟通。网络编程主要针对的就是应用层。

: 传输层和网络层的封装在操作系统完成。应用层的封装在应用程序中完成。数据链路层和物理层的封装在设备驱动程序与网络接口中完成。

二、总结描述TCP三次握手四次挥手
TCP连接的建立(三次握手)

三次握手的流程图如下所示:

在这里插入图片描述

1、TCP服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了LISTEN(监听)状态。
2、TCP客户进程也是先创建传输控制块TCB,然后向服务器发出连接请求报文,这是报文首部中的同部SYN=1,同时选择一个初始序列号 seq=x ,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。
3、TCP服务器收到请求报文后,如果同意连接,则发出确认报文。确认报文中应该 ACK=1,SYN=1,确认号是ack=x+1,同时也要为自己初始化一个序列号 seq=y,此时,TCP服务器进程进入了SYN-RCVD(同步收到)状态。这个报文也不能携带数据,但是同样要消耗一个序号。
4、TCP客户进程收到确认后,还要向服务器给出确认。确认报文的ACK=1,ack=y+1,自己的序列号seq=x+1,此时,TCP连接建立,客户端进入ESTABLISHED(已建立连接)状态。TCP规定,ACK报文段可以携带数据,但是如果不携带数据则不消耗序号。
5、当服务器收到客户端的确认后也进入ESTABLISHED状态,此后双方就可以开始通信了。

TCP连接的释放(四次挥手)

流程图如下:

在这里插入图片描述

  1. 客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。

  2. 服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。

  3. 客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。

  4. 服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。

  5. 客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。

  6. 服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

    参考文档(https://www.cnblogs.com/lipengfei159263/p/9745986.html)

三、描述TCP和UDP区别

协议优点缺点
TCP可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击
UDP快,比TCP稍安全 UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些不可靠,不稳定 因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包

四、网卡绑定bond0的实现

本实验中使用的是虚拟机进行相关操作
网卡地址:
ens33:10.0.0.150 ens37:10.0.0.155 bond0接口地址10.0.0.160 主机版本centos8

##添加bond0接口
nmcli con add type bond con-name testbond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 10.0.0.160/24
##添加从属接口
nmcli con add type bond-slave ifname ens33 master bond0
nmcli con add type bond-slave ifname ens37 master bond0
##接口添加完成后,可查看接口信息
[root@centos8 ~]# nmcli connection 
NAME                UUID                                  TYPE      DEVICE 
ens33               278708d1-d2ae-4f95-b134-66d47485df37  ethernet  ens33  
Wired connection 1  dff57098-445d-3fb4-9fad-cd038c792f49  ethernet  ens37  
testbond0           442fca16-da86-4690-be3e-24612a4ac9b0  bond      bond0  
bond-slave-ens33    acd78d4d-f8cf-4839-8b36-471bddc19833  ethernet  --     
bond-slave-ens37    4f9b011b-8e83-4abf-9b17-e1c66572659d  ethernet  -- 
##启动从属接口
nmcli con up bond-slave-ens33
nmcli con up bond-slave-ens37
##启动bond
[root@centos8 ~]# nmcli con up testbond0 
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
##启动后查看ip信息
[root@centos8 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:7a:9e:d1 brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:7a:9e:d1 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:7a:9e:d1 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.160/24 brd 10.0.0.255 scope global noprefixroute bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::c707:bd06:ed9d:75c9/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
##网卡绑定bond0成功
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值