TCP和HTTP

  TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,采用三次握手建立连接,四次挥手终止连接。
  TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去,服务器和客户端均可主动发起断开连接的请求。

  HTTP(Hypertext Transfer Protocol,超文本传送协议),是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准,HTTP协议是建立在TCP协议之上的一种应用。
  HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为”一次连接”。

  • HTTP 1.0中,客户端的每次请求都要建立一次单独的连接,在处理完本次请求后,就自动释放连接
  • HTTP 1.1中,可在一次连接中处理多个请求,且可重叠发送请求(无需等待一个请求结果返回后再发送下一个请求)

TCP是传输层协议,定义数据传输和连接方式的规范
HTTP是应用层协议,定义传输数据的内容的规范
HTTP协议基于TCP协议,所以支持HTTP也就一定支持TCP

TCP三次握手(建立连接)

  1. 第一次握手:客户端向服务器发送SYN(seq=j)包到服务器;
  2. 第二次握手:服务器收到SYN包,向客户端发送ACK包(ack=j+1)和SYN包(seq=k);
  3. 第三次握手:客户端收到SYN+ACK包,向服务器发送ACK包(ack=k+1),完成三次握手。

    SYN:(Synchronize Sequence Numbers,同步序列编号)
    ACK:(Acknowledgement Number,确认编号)
    FIN:结束标志

TCP四次挥手(终止连接)

  1. 第一次挥手:客户端向服务器发送FIN包(seq=j),关闭客户到服务器的数据传送;
  2. 第二次挥手:服务器收到FIN包,向客户端发送ACK包(ack=j+1);
  3. 第三次挥手:服务器向客户端发送FIN包(seq=k);
  4. 第四次挥手:客户端收到FIN包,向客户端发送ACK包(ack=k+1),完成四次挥手。

为什么TCP连接是3次而终止是4次

  连接时,服务端收到SYN后,把ACK和SYN一起打包回发给客户端,只有3次。
  终止时,由于TCP连接是全双工的,每个方向都必须单独进行关闭,即FIN和ACK是分开发送的,所以有4次。
  当一方完成它的数据发送任务后,发送一个FIN来终止连接。但收到一个FIN只表示对方没有数据发送,而己方仍能发送数据。因此必须单独关闭。

TCP、HTTP详解相关推荐

  1. TCP/IP详解学习笔记(9)-TCP协议概述

    终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输 ...

  2. 《TCP/IP详解卷1:协议》第6章 ICMP:Internet控制报文协议-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  3. IPv6时代的《TCP/IP详解》!

    点击我,试试看吧!                                                    点击我,试试看吧!                              ...

  4. TCP/IP详解--第十七章

     第17章 TCP:传输控制协议 17.1    引言   本章将介绍 TCP为应用层提供的服务,以及 TCP首部中的各个字段.随后的几章我们在了 解TCP的工作过程中将对这些字段作详细介绍. 对TC ...

  5. TCP/IP详解--第十五章

     第15章 TFTP:简单文件传送协议 15.1    引言   TFTP(Trivial File Transfer Protocol) 即简单文件传送协议,最初打算用于引导无盘系统 (通常是工作站 ...

  6. TCP/IP详解--第五章

    第5章 RARP:逆地址解析协议 5.1   引言   具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取  I P地址.但是无盘机, 如X终端或无盘工作站,则需要采用其他方法来获得 IP地址. ...

  7. TCP/IP详解--第一章

    说明:专栏中的内容是<TCP/IP详解>这本书,博主分享在此. 第1章概     述 1.1   引言 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但  TCP/IP协 ...

  8. TCP/IP详解--学习笔记(9)-TCP协议概述

    终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输 ...

  9. TCP/IP详解--学习笔记(5)-IP选路,动态选路,和一些细节

    1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统 ...

  10. 《TCP/IP详解》

    明天又开新课了,用到的课本是<TCP/IP详解 卷2:实现>,TCP/IP论著中的the Bible. 分享一下百度百科里关于这三卷书内容的简介: <TCP/IP详解,卷1:协议&g ...

最新文章

  1. Java并发编程题库
  2. 【Java源码分析】Android-SparseArray源码分析
  3. python文件操作举例
  4. MENUITEMINFO结构的翻译(转)
  5. Android-- Intent.Action(2)
  6. 用Java刷OJ超时怎么办?原因分析及解决方式
  7. 第十七节: EF的CodeFirst模式的四种初始化策略和通过Migration进行数据的迁移
  8. [scikit-learn 机器学习] 4. 特征提取
  9. 同时支持mp4/ogg/webm/flv格式的视频播放
  10. sql获取当前月一号
  11. 《Python编程:从入门到实践》第12章:武装飞船
  12. openoffice java awt_使用openoffice转pdf,详细
  13. 硬件防火墙 与软件防火墙
  14. Uaexpert操作手册
  15. 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include pch.h”?
  16. 百万级用户量的站内信设计
  17. 关于电脑出现 “USB Serial Port“ 黄色感叹号
  18. 稳了,我用 Python 可视化分析和预测了 2022 年 FIFA 世界杯
  19. android BLE Peripheral 模拟 ibeacon 发出ble 广播
  20. AVL CRUISE基础介绍资料

热门文章

  1. 关于linux内存管理说法不正确,Linux自我检测题 - osc_8wyy9cyu的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. Codeup墓地-2159
  3. Post Office(邮局)之四边形不等式优化dp
  4. “智能汽车”VS“万物互融”,谁是OPPO陈明永的未来战略?
  5. 腾讯资深运维专家周小军:QQ与微信架构的惊天秘密
  6. [附源码]java+ssm计算机毕业设计基于web的服装设计系统的设计与实现hn9pb(源码+程序+数据库+部署)
  7. 抽象类和接口的区别(通俗易理解)
  8. HDMI 延长器芯片
  9. JSP_JSP九大内置对象
  10. oracle安装问题--测试未成功的问题