TCP三次握手,数据传送以及TCP四次挥手

tcp三次握手:握手并不需要我们去做,连接服务器过程中内部进行三次握手
在这里插入图片描述
标志位 共六个
在这里插入图片描述
SYN:请求建立连接
ACK:应答
FIN:断开连接
连接需要三次握手:

第一次握手:(客户端发送一个包
客户端:
⦁ 携带标志位:SYN(1)
⦁ 发送32位随机序号1(用四个字节表示),这一步可以携带数据,也可以不携带数据,一般不携带
服务器端:
检测SYN的是是否为1

第二次握手:
服务器:
⦁ ACK的标志位(1)+确认序号(随机序号1+1)
⦁ 发起一个连接请求,SYN(1)+32位随机序号
客户端:
⦁ 检测标志位SYN是否为1,检测32位第二次发过来的序号(随机序列1+1)是否正确

第三次握手:
客户端
发送确认数据包ACK(1)标志位+随即序号2+1
服务器端:
⦁ 检测ACK是否为1
⦁ 确认序列号是否正确(随即序号2+1)

TCP数据传输过程:

在这里插入图片描述

mss:最大数据长度<mss 1460>意思就是最多传说1460个数据
整个过程分为三个过程,我们说一下第二个过程也就是服务端和客户端之间的数据传送:
在第二部分开始,客户端发送随即序号1001(20)ACK 8001 ,1001对方最后一次发送ACK的时候携带的确认序号(三次握手的时候的随机序列号),20表示携带数据大小,8001最新的确认序列号(三次握手阶段的数字)。8001(10) ACK 1021 ,8001(10)回复客户端10个大小的数据,ACK 1021应答数据收到,收到20个大小的数据(1001+20),ACK 8081 只是确认数据收到了,但是并没有回复数据。
要是1001(20)ACK 8001 发送之后收到的是ACK 1001就意思是没有收到,那么就会重新发送,这也就是为还是那么TCP安全的原因了,每次发送完数完之后都会确认

四次挥手:(哪一端断开连接都可以)
需要一个标志位:FIN
编号:对方最后一次发送AFK的时候携带的信号
第一次挥手:
客户端:
⦁ 发送断开连接的请求,FIN+序号(对方最后一次发送ACK的时候携带的确认序号)
⦁ ACK+序号
服务端:
⦁ 检测FIN的值是否为1
⦁ ACK的作用告诉对方之前发的数据收到了多少

第二次挥手:
服务器端
⦁ 给客户端发送确认的数据包ACK+确认编号,FIN对应的序号+1(如果有数据发送也要加上数据大小)
客户端:
⦁ 检测ACK的值
⦁ 检测确认序号

第三次挥手:
服务器端:
⦁ 发送断开连接的请求FIN+序号
⦁ ACK+序号
客户端:
⦁ 检测ACK的值

第四次挥手:
客户端:
发送ACK+序号+1(要是有数据还要加数据大小)

在这里插入图片描述
四次挥手体现在代码中就是在 服务器端和客户端各close()就可以了。

tcp—滑动窗口(缓存,缓冲区)
win 4066: win—滑动窗口,4096滑动窗口对应的缓冲区大小

在这里插入图片描述

从图可以看出客户端西安给服务端发送连接请求(客户端都是主动的连接,服务器端是被动的等待连接),然后进行了三次握手,握手过程中客户端告诉服务器端我缓存大小4k,一次最多发1460个字节,然后服务器端回复我缓存大小6k最多接受1k,然后客户端确认信息之后,双方开始数据传输,客户端发送数据较快,连续发了六次数据,然后收到服务端的回复,回复说你发的6k数据我都收到了,并且我的缓冲区现在还有2k空间(因为开始握手的时候产生的随机序号就是0,那么每次确认的序号就是数据大小+1),紧接着服务端读取了一会数据之后又回复说,我现在缓冲区还有4k,紧接着客户端又连续发送了1次数据和一条主动断开连接的请求,服务端还在处理数据,连发三条数据的确认信息,意思就是我缓冲区现在空了,但是现在客户端已经断开了连接,但是可以作为客户端发送断开连接的回复(应答),最后由服务器端请求断开连接,客户端给予应答 ,四次挥手结束。

tcp是面向安全的传输

在这里插入图片描述
当管道(缓存)满了的时候就会阻塞等待

1
1
1
1
1
1
1
1

==========================================================================================
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ

==========================================================================================

1
1
1
1
1
1
1
转发博文https://www.cnblogs.com/laowz/p/6947539.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值