• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:TCP连接中的三次握手和四次挥手

java 搞代码 3年前 (2022-02-19) 25次浏览 已收录 0个评论
文章目录[隐藏]

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

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指可能在多个不同网络间实现信息传输的协定簇。TCP/IP协定不仅仅指的是TCP 和IP两个协定,而是指一个由FTP、SMTP、TCP、UDP、IP等协定形成的协定簇, 只是因为在TCP/IP协定中TCP协定和IP协定最具代表性,所以被称为TCP/IP协定。

1.协定简介

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

2.三次握手

在理解三次握手之前,咱们须要先看TCP首部两个要害的属性——序号和确认号。序号字段代表报文端要发送的数据的第一个字节的序号;通信的任何一方收到音讯都要发送一个确认报文,确认报文就须要一个确认号,它的值示意冀望收到下一个报文段的序号值,也就是说在确认报文中确认号才会失效。

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

  1. ACK:当ACK=1==确认号字段无效,为确认报文==;当ACK=0,确认号有效
  2. SYN:同步比特SYN=1,示意这是一个==连贯申请或申请承受报文==。
  3. FIN:用来==开释一个连贯==。当FIN=1,示意次报文段的发送端的数据曾经发送结束了,用来开释连贯。

第一次握手时,Client向Server发送一个连贯申请,须要设置SYN=1,同时发送本人的序列号Seq到服务器。第二次握手,为服务器收到申请后,发送一个确认报文,ACK=1,同时发送一个确认号,是冀望收到对方的下一个报文段的数据的第一个字节的序号,ACKnum=X+1,+1所示收到 SYN标识。第三次握手为客户端收到服务器的响应报文,他也要回复确认报文,确认报文ACK=1,ACKnum来源gaodai#ma#com搞@@代~&码网=Y+1

3.四次挥手

第一次挥手为客户端发送FIN=1,示意本人没有数据能够发送了,其次携带本人的序列号。第二次挥手为服务器端确认收到客户端的FIN包,发送一个确认包,表明本人接管到了客户端的敞开申请,然而这时并未筹备好敞开连贯。第三次挥手为服务器确认筹备好敞开连贯,这时发送FIN=1。第四次挥手为客户端收到服务端的敞开申请,发送一个确认包,服务器端收到这个申请后就敞开连贯,不再回应客户端,客户端会期待一个固定工夫后,主动敞开。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:TCP连接中的三次握手和四次挥手
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址