TCP连接建立

三路握手

三路握手发生在客户端发起connect请求到服务端accept返回中,在三路握手发生前,服务端
必须准备好接受外来连接,这通常通过服务端调用 (socket、bind、listen) 这三步来完成,
我们称之为被动打开(a),客户端通过调用 (connect) 发起主动打开。

三路握手发生的具体过程:

1.在客户端发起主动打开之后,客户端TCP发送一个SYN(同步)分节,告诉服务器,客户将在待
建立的连接中发送的数据的初始序列号。
2.服务器ACK确认客户的SYN,同时发送一个自己的SYN分节,其中包含服务器将在同一连接中
发送的数据的初始序列号。
3.客户ACK服务器的SYN。

SYN:同步分节,通常不携带数据,其所在的IP数据报只含有一个IP首部,一个TCP首部以及可
能的TCP选项

TCP连接终止

具体过程:

1.某个进程首先调用close,执行主动关闭,并且发送一个FIN分节
2.对端接收到这个FIN之后执行被动关闭。这个FIN由TCP确认ACK,并作为一个文件结束符传递
给进程。
3.接收到这个文件结束符的进程将调用close关闭它的套接字,并发送一个FIN
4.接收到这个FIN的原发送端TCP确认ACK这个FIN。

 

TCP状态转换图

最新文章

  1. angularjs指令系统系列课程(5):控制器controller
  2. three.js 源码注释(三十九)Light/HemisphereLight.js 半球光、 自然光(天光效果)
  3. sublime快捷键-for mac
  4. 佛山Uber优步司机奖励政策(2月1日~2月7日)
  5. ReSharper C++计划上市
  6. NUint使用详解及Visual Studio配置
  7. Hadoop的初步理解
  8. 在线制作css动画——cssanimate
  9. jar包的MANIFEST.MF文件
  10. CMDB-(paramiko模块 -- 实现ssh连接)
  11. Creating A Moddable Unity Game
  12. Android使用VideoView播放本地视频及网络视频Demo
  13. 项目中jsp的存放
  14. [题解] CodeM美团点评编程竞赛资格赛题
  15. windows2008r2共享文件夹设置方法
  16. 配置Linux防火墙
  17. Azure .NET Libraries 入门
  18. 每天一个Linux命令 - 【chkconfig】
  19. oracle学习篇六:子查询
  20. 注册中心eureka

热门文章

  1. luogu2805 [NOI2009]植物大战僵尸
  2. JSP标签:jsp内置标签、jstl标签、自定义标签
  3. 九度oj 题目1016:火星A+B
  4. jquery滚动条插件slimScroll
  5. BZOJ 2190 [SDOI2008]仪仗队 ——Dirichlet积
  6. BestCoder Round #36
  7. 刷题总结——谈笑风生(主席树+dfs序的应用)
  8. Linux命令——top
  9. win8激活工具,win 8激活工具,windows8激活工具,赶紧来下载咯
  10. Laravel 之文件上传