tcp三次握手、四次挥手笔记

TCP协议介绍

TCP是一种面向连接的、可靠的基于字节流的传输层通信协议。TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到数据进行确认、对失序的数据重新排序、丢弃重复数据。

TCP的特点有:
1.TCP是面向连接的运输层协议;

2.每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的;

3.TCP提供可靠交付的服务(传输的数据无差错、不丢失、不重复、并且按序到达)

4.TCP提供全双工通信。数据在两个方向上独立的进行传输。因此,连接的每一端必须保持每个方向上的传输数据序号。

5.面向字节流。面向字节流的含义:虽然应用程序和TCP交互是一次一个数据块,但TCP把应用程序交下来的数据转换成仅仅是一连串无结构的字节流。

名称意义
SYN连接请求标志
ACK确认标志
FIN终止标志

TCP三次握手

第一次握手:
客户端向服务器发送连接请求包,标志位SYN置为1,序号X=0;

第二次握手:
服务器收到客户端发来的报文,由SYN=1知道客户端要求建立联机。向客户端发送一个SYN和ACK都置为1的TCP报文,设置初始序号Y=0,将确认序号设置为客户端的序列号加1,即X+1=0+1=1;

第三次握手:
客户端收到服务器发来的包后检查确认序号是否正确,即第一次发送的序号加1.以及标志位ACK是否为1.若正确,客户端再次发送确认包,ACK标志位为1,SYN标志位为0.确认序号为Y+1,发送序号为X+1=1.服务器收到确认序号值与ACK=1则连接建立成功,可以传送数据了。

在这里插入图片描述

图一.TCP三次握手图解

TCP四次挥手

由于TCP协议是全双工通信的,因此每个方向都需要单独关闭来连接,需要发送四个数据包,因此称为四次握手。

第一次挥手:
客户端给服务器发送TCP包,用来关闭客户端到服务器的数据传送。将标志位FIN和ACK都置为1,序号为X=1,确认序号Z=1。

第二次挥手:
服务器收到FIN后,发回一个ACK(标志位ACK=1),确认序号为收到序号加1,即X=2。序号为收到的确认序号Z。

第三次握手:
服务器关闭与客户端的连接,发送一个FIN。标志位FIN和ACK都置为1,序号Y=1,确认序号为X=2;

第四次握手:
客户端收到服务器发送的FIN之后,发回ACK确认(标志位ACK=1),确认序号为收到序号加1,即Y=2。序号为收到的确认序号X=2。

在这里插入图片描述

图一.TCP四次挥手图解

以上就是我对TCP三次握手和四次挥手的总结归纳,如有错误请各位朋友帮忙指正,也欢迎各位朋友在讨论区留言评论!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值