1. 概念

  TCP(Transmission Control Protocol,传输控制协议),是一种面向连接的,可靠地,基于字节流的传输层通信协议。当应用层向TCP层发送用于网络间传输的用8位字节表示的数据流时,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制

2. 特性

  有序性:为每个数据包编排序号,是接收端能够判断先后到达的次序混乱的数据包的原本顺序

  正确性:TCP用一个checksum函数来检验数据是否有错误,在发送和接收时都要计算校验和,这使得接收端能够判断数据是否在传输过程中被破坏

  可靠性:发送端采用超时重传并有确认机制识别错误或丢失数据,进行重发

  可控性:接收端和发送端的网络质量通常不同,TCP采用滑动窗口协议和拥塞控制算法是数据的发送速度达到合理值

3. 三次握手

  建立连接时,客户端发送SYN包到服务器,并进入SYN_SENT状态,等待服务器确认

  服务器收到SYN包,反馈给客户端一个SYN+ACK包,此时服务器进入SYN_RECV状态

  客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,客户单和服务器同时进入ESTABLISHED(TCP连接成功)状态,完成三次握手

4. 四次关闭连接

  关闭请求方向另一方发送一个带有FIN附加标记的报文段

  接收方 收到这个FIN报文段之后,并不立即用FIN报文段回复,而是先向发送方 发送一个确认序号ACK,通知通知自己的相应的应用程序:对方要求关闭连接,使应用程序做相应的清理工作

  接收方的应用程序清理工作完成后,向 发送方发送一个FIN报文段

  发送方 收到这个FIN报文段之后,向接收方发送一个ACK,表示连接彻底释放

最新文章

  1. MFC MSBDutyTable下载地址
  2. 【BZOJ1036】[ZJOI2008]树的统计Count 树链剖分
  3. C#实现动态页面静态化
  4. android-数据存储之外部file存储(sdcard)
  5. PLSQL登录弹出空白框如何解决
  6. [C] static和extern的作用
  7. SqlServer知识点记录分享
  8. POJ 1321 棋盘问题 --- DFS
  9. 【JQuery基础教程(第三版)图灵】笔记
  10. tornado.web.Application类配置及使用
  11. Docker简单介绍
  12. Leetcode题1
  13. CI框架剖析一
  14. 【HDOJ 1085】数学问题,母函数
  15. 如何卸载CentOS自带的apache
  16. Synchronize,Lock, ReentrantLock,ReentrantReadWriteLock
  17. Python3.4 枚举类型的使用
  18. maven向本地仓库导入jar包
  19. Nginx负载均衡实例
  20. 在VMware上安装Ubuntu软件步骤与遇到的相关问题及解决方案

热门文章

  1. hdu 5452(树链刨分)
  2. A Secret(KMP)
  3. 一、docker临时记录
  4. SVN中分支的建立与合并
  5. CSS3选择器:nth-child与:nth-of-type区别
  6. js获取链接等号“=”后面的参数
  7. vertical-align:middle;一般用于img和行内文字对齐方式
  8. 006-搭建框架-实现AOP机制【三】AOP技术
  9. Java CLASSPATH
  10. Django——admin组件