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

OSI七层示例图:

网络协议和管理配置_服务端

网络协议和管理配置_客户端_02

协议分层(分层最大的好处就是便于封装)

OSI七层模型:

1、OSI七层网络模型称为开发式系统互联网参考模型,是一个逻辑上的定义和规范;

2、把网络从逻辑上分为七层,每一层都有相应的物理设备

3、OSI七层网络模型是一种框架式的设计方法,最主要的功能就是帮助不同类型的主机实现数据传输;

4、最大的优点就是将服务、接口和协议三个概念明确的区分起来

5、复杂且不实用;经常使用的是TCP/IP四层模型。

各部分及功能:

1、应用层:针对你特定应用的协议

2、表示层:设备固定的数据格式和网络标准数据格式之间的转化

3、会话层:通信管理,负责建立和单开通信连接,管理传输层 以下分层

4、传输层:管理两个节点之间的数据传递。负责可靠传输

5、网络层:地址管理和路由选择

6、数据链路层:互联设备之间传送和识别数据帧

7、物理层:界定连接器和网线之间的规格

TCP/IP四(五)层模型。

每一层都呼叫它的下一层提供的网络来完成自己的需求。(如果是四层模型数据链路层和物理层在一层)

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

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

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

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

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


2、TCP三次握手四次挥手

一、tcp三次握手

网络协议和管理配置_客户端_03

   第一次握手(SYN=1, seq=x):client先发起一个带有SYN字段,seq=x的请求。

   第二次握手(SYN=1, ACK=1, seq=y, ack=x+1):server端收到之后确认client的发送能力与自身的接收能力正常。返回ACK和SYN字段还有seq=y, ack=x+1。

   第三次握手(ACK=1,ack=y+1):client接收后确认server发送能力正常,返回ACK=1,ack=y+1字段。

   server拿到后确认client接受能力正常,自此三次握手成功,双方收发能力正常。

二、tcp 四次挥手

网络协议和管理配置_服务端_04

   第一次挥手(FIN=1,seq=x):客户端发送一个FIN报文,并停止再发送数据,主动关闭TCP连接,进入FIN_WAIT1状态,等待服务端的确认。

   第二次挥手(ACK=1,ack=x+1):服务端收到FIN之后,会发送ACK报文,此时服务端处于CLOSE_WAIT状态。此时处于半关闭状态,客户端到服务端的连接释放。客户端收到服务端的确认后,进入FIN_WAIT2状态,等待服务端发出的连接释放报文段。

   第三次挥手(FIN=1,seq=y):如果服务端没有要向客户端发出的数据了,则服务端发出FIN报文,服务端进入LAST_ACK状态,等待客户端的确认。

   第四次挥手(ACK=1,ack=y+1):客户端收到FIN报文之后,发送一个ACK报文作为应答,此时客户端处于TIME——WAIT状态。需要过一阵子(2MSL, MSL是数据报文的最大生存时间)以确保服务端收到自己的ACK报文之后才会进入CLOSED状态,服务端收到ACK报文之后,就处于CLOSED状态了。


3、TCP和UDP区别

1、在连接上,TCP是基于连接的,是面向连接的运输层协议,如打电话之前要拨号建立连接,UDP是无连接的,即发送数据之前不需要建立连接。

2、在对于系统资源的要求上,TCP较多,UDP较少。

3、结构程序方面,TCP的结构较为复杂,而UDP结构较为简单。

4、在模式上TCP为流模式,而UDP则是数据报模式。

5、TCP能保证数据的正确性和顺序性,而UDP可能丢失且不能保证数据的顺序不改变。

网络协议和管理配置_服务端_05


4、网卡绑定bond0的实现
#添加bonding接口
#nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 10.0.0.152/24
Connection 'mybond0' (f739e7fa-a148-4176-9965-7d36d1db5897) successfully added.

#添加从属接口
#nmcli con add type bond-slave ifname ens160 master bond0
#nmcli con add type bond-slave ifname ens224 master bond0
#注:如无为从属接口提供连接名,则该名称是接口名称加类型构成

#要启动绑定,则必须首先启动从属接口
#nmcli con up bond-slave-ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
#nmcli con up bond-slave-ens224
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)

#启动绑定
nmcli con up mybond0
#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: ens160: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether 00:0c:29:be:cc:79 brd ff:ff:ff:ff:ff:ff
3: ens224: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether 00:0c:29:be:cc:79 brd ff:ff:ff:ff:ff:ff permaddr 00:0c:29:be:cc:83
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:be:cc:79 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.152/24 brd 10.0.0.255 scope global noprefixroute bond0
valid_lft forever preferred_lft forever
inet6 fe80::5084:52f0:e353:7556/64 scope link noprefixroute
valid_lft forever preferred_lft forever