一次http请求的报文分析

数据包如下:

第一个包113.31的主机(下边称之为客户端)给114.80的主机(下边称之为服务器)发送一个syn包请求建立连接

第二个包服务器回复客户端syn+ack表示同意和客户端建立连接

第三个包客户端回复服务器ack报文,表示,好,我那么我就建立连接吧

至此连接已建立,此处就完成了建立连接时传说中中的三次握手。

第四个包,当连接建立成之后,客户端紧接着发给服务器一个http的head请求

第五个包,服务器回复客户端所请求的内容

第六个包客户端回复服务器ack报文,告诉服务器你发送的我受到了

第七个包,当告诉服务器我需要的东西受到了后,我们可以关闭连接了,发送fin+ack报文

第八个包,服务器告诉客户端,我受到你的报文了,我知道该怎么做了

第九个包 服务器发送fin+ack告诉客户端关闭连接

第十个包 客户端回复ack报文确认关闭

从第7个到第10个包就是断开连接的4次握手!!!

此时在服务上查看本次的tcp连接,这时候连接应该处于TIME_WAIT状态!

默认time wait的等带时间默认是240秒!

#################################

本文由笔者原创

作者:john

转载请注明出处

一次http完整的请求tcp报文分析的更多相关文章

  1. HTTP 请求报文和响应报文分析和解刨!!

    http请求和响应报文分析 一>http请求报文主要包括三个部分:1.请求行:2.请求头:3;请求体: 1,请求行一般包括三个部分:请求方式:请求url : http协议版本. 请求方法:大部分 ...

  2. 计算机网络(8)-----TCP报文段的首部格式

    TCP报文段的首部格式 概述 TCP报文段首部的前20个字节是固定的,因此TCP首部的最小长度是20字节. 源端口和目标端口 各占2个字节,分别写入源端口号和目的端口号. 序列号 占4个字节,表示本报 ...

  3. HTTP请求响应报文&&相关状态码&&GET_POST请求方法 总结

    HTTP请求报文: 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据 1.请求行   请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GE ...

  4. TCP报文首段格式

    参考:https://www.bilibili.com/video/av9876107?from=search&seid=5217429010533979778 TCP(Transmissio ...

  5. TCP报文格式

    转载自https://blog.csdn.net/mary19920410/article/details/58030147 1.TCP报文格式 TCP报头中的源端口号和目的端口号同IP数据报中的源I ...

  6. TCP报文格式详解

    TCP报文是TCP层传输的数据单元,也叫报文段. 1.端口号:用来标识同一台计算机的不同的应用进程. 1)源端口:源端口和IP地址的作用是标识报文的返回地址. 2)目的端口:端口指明接收方计算机上的应 ...

  7. HTTP请求响应报文 - 相关状态码 - GET_POST请求方法

    HTTP请求报文: 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据 1.请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GET ...

  8. TCP报文首部详解

    首部固定部分各字段的意义如下: 1.源端口和目的端口,各占2个字节. 2.序号:占4个字节,序号范围为0到2的32次方-1,序号增加到2的32次方-1之后,下一个序号变为0,在一个TCP连接中传送的字 ...

  9. TCP报文

    源端口和目的端口: 各占16位 ,服务相对应的源端口和目的端口. 序列号: 占32位,它的范围在[0~2^32-1],序号随着通信的进行不断的递增,当达到最大值的时候重新回到0在开始递增.TCP是面向 ...

随机推荐

  1. linux 搭建Tomcat

    这几天用虚拟机装了centos ,以前没有用过linux,先将搭建java web 环境记录如下: 一.卸载系统安装的jdk环境. 1.安装好的CentOS会自带OpenJdk,用命令 java -v ...

  2. SQL如何合并查询结果

    1.UNION的作用 UNION 指令的目的是将两个 SQL 语句的结果合并起来.从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料. UNION 的一个 ...

  3. C#DataTable学习心得

    C#DataTable学习心得 一.DataSet.DataTable.DataRow.DataColumn 1] 在DataSet中添加DataTable DataSet.Tables.Add(Da ...

  4. 基于lua+nginx的abtest系统

    指定一个参数 这个参数可以标识客户端唯一id的,比如用户id等 拿到这个id根据系统的hash算法会hash出一个bucket,目前支持的桶总数为10 根据后台设定的map关系(redis或配置文件) ...

  5. centos6安装vncserver实现图形化访问

    一.配置163的yum源 1.导入CentOS-6的GPG证书 #rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6 2.让 ...

  6. drawable 另外一种形式dimens.xml

    常见的Drawable,放置默认drawable一系列目录,有时候会发现drawable找不到的情况,其实还可以放另外一个目录下 values------->>dimens.xml < ...

  7. php页面相互调用的知识点

    目前我们有这样一个需求: (1) a.php  页面要使用 b.php 定义的函数,我们可以使用 如下指令 require  require_once include   include_once 举 ...

  8. uvalive 6888 Ricochet Robots bfs

    题目链接 给一个n*m的图, 图上有n个标号, n<=4, 然后有墙, 还有一个终点x. 每一步, 只能走某一个标号, 可以向四个方向走, 然后必须要碰到墙或者图的边界或者另一个标号才能停下来. ...

  9. xtrabackup执行备份要拥有的权限

    xtrabackup备份的原理: xtrabackup直接复制datadir目录中的文件到备份目录下.这样问题就来了,在备份的时候mysql可以还在执行写入操作:所以xtrabackup会不停的去扫描 ...

  10. ORACLE-Kill 杀死正在执行的Oracle存储过程和死锁语句

    ORACLE-Kill 杀死正在执行的Oracle存储过程和死锁语句 存储过程 1.找到正在执行的存储过程的 sid ,serial# select   b.sid,b.SERIAL#,a.OBJEC ...