网络协议

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了网络协议脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

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)不能携带数据,但需要消耗一个序号。@H_406_77@

第二次握手:

服务器收到请求的报文后,如果同意建立连接则向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@KVM83-Bigger-bj KVM]# cd /etc/Sysconfig/network-scripts/

[root@kvm83-bigger-bj network-scripts]# more ifcfg-p1p1DEVICE="p1p1"BOOTPROTO="none"NM_CONTROLLED="no"ONBOOT="yes"TYPE="Ethernet"MASTER=bond1SLAVE=yes[root@kvm83-bigger-bj network-scripts]# more ifCFg-p1p2DEVICE="p1p2"BOOTPROTO="none"NM_CONTROLLED="no"ONBOOT="yes"TYPE="Ethernet"MASTER=bond1SLAVE=yes[root@kvm83-bigger-bj network-scripts]# more ifcfg-bond1DEVICE=bond1BOOTPROTO=noneoNBOOT=yesBONDING_MASTER=yesBONDING_OPTS="mode=4 miimon=100 XMit_hash_policy=layer2+3"brIDGE=br0

 

脚本宝典总结

以上是脚本宝典为你收集整理的网络协议全部内容,希望文章能够帮你解决网络协议所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。