明20210821

网络协议

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

 OSI七层模型

7. 应用层:为用户的应用程序提供网络服务,如HTTP协议

6.表示层:将信息表示为一定形式和格式的数据流:如加密与解密,解码和编码等

5.会话层:负责通信主机之间会话的建立,管理和拆除,协调通信双方的会话。

4.传输层:负责通信主机端到端的连接。

3. 网络层:负责分组将源机送到目的机,包含寻址和最优路径选择等;

2.数据链路层:提供可靠的帧传递,实现差错控制,流控等。

1.物理层:提供透明的比特流传递。

 

 

 

 TCP/IP四层参考模型:

1.网络接口层:负责监视数据在主机和网络之间交换。

2.网络层:解决主机到主机之前的通信问题。

3.传输层:为应用层提供端到端的通信功能,保证数据包的顺序传送及数据的完整性。

4.应用层:为用户提供各种服务。

 

 


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

 TCP连接的建立(三次握手)

在TCP/IP的协议簇中,TCP协议面向提供可靠的连接服务,采用三次握手建立一个连接。TCP连接的建立采用C/S的方式。主动发出请求连接的应用进程是客户端,而被动等待建立连接的应用进程是服务器。
三次握手建立TCP连接的流程图

 

序列号 seq:占用4个字节标记数据段的顺序,TCP把连接中发送的所有数据字节编上一个序号,第一个字节的编号是本地随机产生。

确认号 ack:

同步SYN

终止FIN

客户端和服务器刚开始都处于CLOSED状态,主动打开连接是客户端,被动打开连接的是服务器。服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,进入LISTEN监听状态;

第一次握手:

客户端向服务器发出请求连接的报文段,这时TCP报文的首部同步位SYN=1,同时选择一个初始序列号seq=x,此时客户端进入SYN_SENT同步已发送的状态,等待服务器的确认;SYN报文段(syn=1)不能携带数据,但需要消耗一个序号。

第二次握手:

服务器收到请求的报文后,如果同意建立连接则向A客户端发送确认,在确认的报文段中SYN=1,ACK=1,确认号是ACK=X+1,同时也要为自己初始化一个序列号seq=y,此时服务器进入SYN_REVD同步收到状态客户端进入ESTABLISTEND状态。

第三次握手:

客户端收到服务器的确认之后,还需要给服务器发出确认,确认报文段中ACK=1,ack=y+1,自己的序列号seq=x+1,TCP连接已经建立服务器进入ESTABLISTEND状态。完成三次握手,随后客户端和服务器之间可以传输数据。

 

 

四次握手

 

 

在客户端和服务器通信完毕之后,主动断开调用close,开始进行四次握手。

第一次握手:

客户端进程先向TCP发出释放连接的报文段,并停止发送数据,主动关闭tcp连接。连接释放报文段首部FIN=1,客户端进入FIN_WAIT_1状态。

第二次握手:

服务器收到连接释放的报文段后发出确认,把确认报文首部ACK=1,ack=u+1 并带上自己的序列号seq=v,此时服务器端进入CLOSE_WAIT等待关闭状态。

第三次握手:

客户端收到服务器的请求之后,此时客户端处于FIN_WAIT_2状态,等待服务器发送连接释放报文。

服务器将最后的数据发送完毕之后,就向客户端发送释放报文即ACK=1,ack=u+1,处于半关闭状态,服务器可能有发送一些数据序列号seq=w 服务器处于LAST+ACK最后确认状态,等待客户端的确认。

第四次握手:

客户端收到服务器的连接释放报文后,必须要发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1 ,此时客户端进入TIME-WAIT时间等待状态。服务器只要收到客户端发出的确认立即进入CLOSED状态。

 

3、描述TCP和UDP区别

TCP 提供面向连接服务,在传输数据之前先建立连接,数据传输完成之后释放断开连接;TCP是可靠的传输协议,缺点:增加了系统资源的开销,对应的协议有SMTP,TELNET,HTTP.FTP等UDP 在传输数据之前不需要先建立连接,对端的主机在收到UDP报文之后也不需要给出确认。UDP是不可靠的连接,节省连接的开销,传输速度块。比如一些实时性要求较高的服务,DNS,TFTP,dhcp,snmp,nfs等

区别:
基于连接和无连接的传输协议
对系统资源的要求(TCP较多,udp较少)
UDP 程序结果简单
TCP流模式和UDP数据包模式
TCP保证数据正确性,可靠性;UDP无法保证数据的完整。


4、网卡绑定bond0的实现

网卡bond即通过将多个网卡绑定为一个逻辑网卡,实现本地网络的冗余,带宽扩容,负载均衡等。

[root@kvm KVM]# cd /etc/sysconfig/network-scripts/

[root@kvm-bj network-scripts]# more ifcfg-p1p1
DEVICE="p1p1"
BOOTPROTO="none"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
MASTER=bond1
SLAVE=yes
[root@kvm-bj network-scripts]# more ifcfg-p1p2
DEVICE="p1p2"
BOOTPROTO="none"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
MASTER=bond1
SLAVE=yes
[root@kvm-bj network-scripts]# more ifcfg-bond1
DEVICE=bond1
BOOTPROTO=none
ONBOOT=yes
BONDING_MASTER=yes
BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=layer2+3"
BRIDGE=br0

 

posted on 2021-09-25 12:13  明20210821  阅读(114)  评论(1编辑  收藏  举报

导航