ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

网络协议

2021-09-25 12:35:32  阅读:147  来源: 互联网

标签:报文 握手 网络协议 TCP 服务器 连接 客户端


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@kvm83-bigger-bj KVM]# cd /etc/sysconfig/network-scripts/

[root@kvm83-bigger-bj network-scripts]# more ifcfg-p1p1
DEVICE="p1p1"
BOOTPROTO="none"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
MASTER=bond1
SLAVE=yes
[root@kvm83-bigger-bj network-scripts]# more ifcfg-p1p2
DEVICE="p1p2"
BOOTPROTO="none"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
MASTER=bond1
SLAVE=yes
[root@kvm83-bigger-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

 

标签:报文,握手,网络协议,TCP,服务器,连接,客户端
来源: https://www.cnblogs.com/zhangym-study/p/15325193.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有