java三次握手转发_【Java】TCP连接中的三次握手和四次挥手

首页

专栏

java

文章详情

0

TCP连接中的三次握手和四次挥手

105359.html一个呆头娃发布于 今天 06:25

TCP连接中的三次握手和四次挥手

1.协议简介

TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报,IP数据报由首部和数据两部分组成,IP报头中包含大量的信息,如源IP地址,目的IP地址,数据报长度,IP版本号等,数据部分呢保存传输层的数据,如保存TCP、UDP、ICMP等数据。

20d4d05c56f453685e9adbb72b3208aa.png

2.三次握手

在了解三次握手之前,我们需要先看TCP首部两个关键的属性——序号和确认号。序号字段代表报文端要发送的数据的第一个字节的序号;通信的任何一方收到消息都要发送一个确认报文,确认报文就需要一个确认号,它的值表示期望收到下一个报文段的序号值,也就是说在确认报文中确认号才会生效。

如何标识是否为确认报文呢?这里要关注六个标志位,分别是URG、ACK、PSH、PST、SYN、FIN。在这六个标志位中,又要重点关注三个,分别是

ACK:当ACK=1==确认号字段有效,为确认报文==;当ACK=0,确认号无效

SYN:同步比特SYN=1,表示这是一个==连接请求或请求接受报文==。

FIN:用来==释放一个连接==。当FIN=1,表示次报文段的发送端的数据已经发送完毕了,用来释放连接。

c5e654524ad583b341d61a5cbc7bff94.png

第一次握手时,Client向Server发送一个连接请求,需要设置SYN=1,同时发送自己的序列号Seq到服务器。第二次握手,为服务器收到请求后,发送一个确认报文,ACK=1,同时发送一个确认号,是期望收到对方的下一个报文段的数据的第一个字节的序号,ACKnum=X+1,+1所示收到 SYN标识。第三次握手为客户端收到服务器的响应报文,他也要回复确认报文,确认报文ACK=1,ACKnum=Y+1

3.四次挥手

64849886b04b39924de2c4231bae36cf.png

第一次挥手为客户端发送FIN=1,表示自己没有数据可以发送了,其次携带自己的序列号。第二次挥手为服务器端确认收到客户端的FIN包,发送一个确认包,表明自己接收到了客户端的关闭请求,但是这时并未准备好关闭连接。第三次挥手为服务器确认准备好关闭连接,这时发送FIN=1。第四次挥手为客户端收到服务端的关闭请求,发送一个确认包,服务器端收到这个请求后就关闭连接,不再回应客户端,客户端会等待一个固定时间后,自动关闭。

javatcp-ip

阅读 25更新于 今天 06:25

赞收藏

分享

本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议

105359.html

一个呆头娃

但行好事,莫问前程

6声望

2粉丝

关注作者

0 条评论

得票时间

105359.html

提交评论

105359.html

一个呆头娃

但行好事,莫问前程

6声望

2粉丝

关注作者

宣传栏

TCP连接中的三次握手和四次挥手

1.协议简介

TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报,IP数据报由首部和数据两部分组成,IP报头中包含大量的信息,如源IP地址,目的IP地址,数据报长度,IP版本号等,数据部分呢保存传输层的数据,如保存TCP、UDP、ICMP等数据。

20d4d05c56f453685e9adbb72b3208aa.png

2.三次握手

在了解三次握手之前,我们需要先看TCP首部两个关键的属性——序号和确认号。序号字段代表报文端要发送的数据的第一个字节的序号;通信的任何一方收到消息都要发送一个确认报文,确认报文就需要一个确认号,它的值表示期望收到下一个报文段的序号值,也就是说在确认报文中确认号才会生效。

如何标识是否为确认报文呢?这里要关注六个标志位,分别是URG、ACK、PSH、PST、SYN、FIN。在这六个标志位中,又要重点关注三个,分别是

ACK:当ACK=1==确认号字段有效,为确认报文==;当ACK=0,确认号无效

SYN:同步比特SYN=1,表示这是一个==连接请求或请求接受报文==。

FIN:用来==释放一个连接==。当FIN=1,表示次报文段的发送端的数据已经发送完毕了,用来释放连接。

c5e654524ad583b341d61a5cbc7bff94.png

第一次握手时,Client向Server发送一个连接请求,需要设置SYN=1,同时发送自己的序列号Seq到服务器。第二次握手,为服务器收到请求后,发送一个确认报文,ACK=1,同时发送一个确认号,是期望收到对方的下一个报文段的数据的第一个字节的序号,ACKnum=X+1,+1所示收到 SYN标识。第三次握手为客户端收到服务器的响应报文,他也要回复确认报文,确认报文ACK=1,ACKnum=Y+1

3.四次挥手

64849886b04b39924de2c4231bae36cf.png

第一次挥手为客户端发送FIN=1,表示自己没有数据可以发送了,其次携带自己的序列号。第二次挥手为服务器端确认收到客户端的FIN包,发送一个确认包,表明自己接收到了客户端的关闭请求,但是这时并未准备好关闭连接。第三次挥手为服务器确认准备好关闭连接,这时发送FIN=1。第四次挥手为客户端收到服务端的关闭请求,发送一个确认包,服务器端收到这个请求后就关闭连接,不再回应客户端,客户端会等待一个固定时间后,自动关闭。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值