博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
//……关于TCP三次握手与四次挥手
阅读量:7107 次
发布时间:2019-06-28

本文共 808 字,大约阅读时间需要 2 分钟。

TCP的概述

  TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种断点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为192.3.4.16 而端口号为80,那么得到的套接字为192.3.4.16:80。

TCP连接的建立(三次握手)

 

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

TCP连接的释放(四次挥手)

    

第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态

第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态

第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1Server进入CLOSED状态,完成四次挥手。

 

转载于:https://www.cnblogs.com/jerome92/p/10265172.html

你可能感兴趣的文章
小心DataContractJsonSerializer和JavaScriptSerializer的内部实现差异
查看>>
VS2005 WebService 引用无法识别DataTable
查看>>
c/c++ 宏中"#"和"##"的用法
查看>>
TypeScript
查看>>
激发灵感:26个清爽的蓝色调网页设计作品欣赏
查看>>
理解UIApplication(转)
查看>>
JavaScript面向对象编程入门
查看>>
单机版数据库
查看>>
JavaScript调用系统exe文件
查看>>
spring(13)
查看>>
Java中的反射机制(三) 反射与数组
查看>>
${oid?c}的使用
查看>>
12306多种手段反击浏览器厂商“见招拆招”
查看>>
64位机器上编译
查看>>
WMI使用的WIN32_类库名 【转】
查看>>
c#图像灰度化、灰度反转、二值化
查看>>
ESB:消息队列之小试牛刀
查看>>
flash基本操作二-库面板和元件创建
查看>>
算法题009 电梯调度算法
查看>>
iOS 推送,服务器。证书。
查看>>