一直研究lighttpd源码,顺便看下网络编程,不说太多,开始吧

第一步 设置wireshark过滤规则

tcp.port eq 81 ,然后开始捕捉

第二步  http://183.61.16.168:81/ 打开浏览器访问这个地址

第三步,分析数据

2636 17.482576000 183.27.235.172 183.61.16.168 TCP 74 4197 > hosts2-ns [SYN] Seq=0 Win=8192 Len=0 MSS=1440 WS=4 SACK_PERM=1

2638 17.498859000 183.61.16.168 183.27.235.172 TCP 74 hosts2-ns > 4197 [SYN, ACK] Seq=0 Ack=1 Win=14600 Len=0 MSS=1460 SACK_PERM=1 WS=512

2639 17.498994000 183.27.235.172 183.61.16.168 TCP 62 4197 > hosts2-ns [ACK] Seq=1 Ack=1 Win=66240 Len=0

以上就是tcp三次握手,

2696 18.028389000 183.27.235.172 183.61.16.168 TCP 463 4197 > hosts2-ns [PSH, ACK] Seq=1 Ack=1 Win=66240 Len=401

这条就是发送http请求包了

长度为401

2698 18.051721000 183.61.16.168 183.27.235.172 TCP 62 hosts2-ns > 4197 [ACK] Seq=1 Ack=402 Win=15872 Len=0

这个就是服务器响应给浏览器的数据,服务器说收到了请求,然后把ack加上401等于402返回给客户端,如果不返回,浏览器会重发给服务器

2699 18.052968000 183.61.16.168 183.27.235.172 TCP 289 hosts2-ns > 4197 [PSH, ACK] Seq=1 Ack=402 Win=15872 Len=227

到这条,服务器返回首页给浏览器,长度为227 这里可以发现只有有数据,Len肯定是大于0的

2721 18.234494000 183.27.235.172 183.61.16.168 TCP 403 4197 > hosts2-ns [PSH, ACK] Seq=402 Ack=228 Win=66012 Len=341

浏览器偷偷的发起第二个请求,get /favicon.ico 这个请求,

2722 18.259705000 183.61.16.168 183.27.235.172 TCP 541 hosts2-ns > 4197 [PSH, ACK] Seq=228 Ack=743 Win=16896 Len=479

服务器说没有这个文件,然后返回给客户端

2728 18.514549000 183.61.16.168 183.27.235.172 TCP 541 [TCP Retransmission] hosts2-ns > 4197 [PSH, ACK] Seq=228 Ack=743 Win=16896 Len=479

又重发了一次

2729 18.514663000 183.27.235.172 183.61.16.168 TCP 74 4197 > hosts2-ns [ACK] Seq=743 Ack=707 Win=65532 Len=0 SLE=228 SRE=707

浏览器说收到了,给服务器一个回答

3180 23.263527000 183.61.16.168 183.27.235.172 TCP 62 hosts2-ns > 4197 [FIN, ACK] Seq=707 Ack=743 Win=16896 Len=0

服务器主动关闭连接,发送一个fin

3181 23.263637000 183.27.235.172 183.61.16.168 TCP 62 4197 > hosts2-ns [ACK] Seq=743 Ack=708 Win=65532 Len=0

浏览器说收到了

3587 27.508143000 183.27.235.172 183.61.16.168 TCP 62 4197 > hosts2-ns [FIN, ACK] Seq=743 Ack=708 Win=65532 Len=0

然后浏览器发送一个fin

3590 27.523692000 183.61.16.168 183.27.235.172 TCP 62 hosts2-ns > 4197 [ACK] Seq=708 Ack=744 Win=16896 Len=0

然后服务端说收到了

其实有个问题就是 seq和ack有点混乱,一时加这个,一时加那个

wireshark http过程的更多相关文章

  1. wireshark使用过程中,卡死未响应

    原因 : 未知 处理办法:1.重装wireshark ----------无效果 2.卸载有道词典-----------成功,wireshark正常运行,重装有道词典该问题必现,所以问题由有道词典引起 ...

  2. Wireshark:couldn't run dumpcap in child process(附带Linux下探索过程)

    之前都是直接使用Kali里面安装好的Wireshark和Win下的,Ubuntu的来个小计 PS:解决方法不重要,我觉得更重要的是这个摸索的过程 解决方法 # 安装wireshark sudo apt ...

  3. Wireshark协议分析工具应用

    一.Wireshark简介与安装 Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用W ...

  4. Wireshark数据抓包教程之安装Wireshark

    Wireshark数据抓包教程之安装Wireshark 安装Wireshark 通过上一节的学习可以根据自己的操作系统来下载安装Wireshark了.本书中已开发版1.99.7(中文版)为主,下面介绍 ...

  5. Ubuntu16.04安装wireshark

    Wireshark是一个非常强大的抓包工具,适用于各种场合,安装配置也简单.这里仅对在Ubuntu上的安装做介绍. 首先通过apt安装WireShark: $ sudo apt-add-reposit ...

  6. unbutu下wireshark编译安装(已更新)

    今天下午在ubuntu下进行编译安装wireshark,过程中出了很多错误,但最终安装成功了,这里写下自己的安装步骤和方法,有参考博文的安装编译方法,也有自己的总结和心得. 1 安装编译工具 $sud ...

  7. Wireshark漫谈(一)

    可能有人会说,一个软件的安装有什么好谈的,无非就是"同意,同意,同意......是,是,是"诸如此类的选项.的确,Wireshark软件的安装步骤是挺简单的,不过本文不是想谈安装步 ...

  8. Ubuntu 16.04安装Wireshark进行抓包

    技巧: 1.可以通过tcpdump抓取某个网卡的包,然后输出日志文件,通过Wireshark进行分析. 2.可以设置Wifi热点,然后通过手机连接这个热点,然后进行tcpdump的分析,然后输出日志文 ...

  9. 使用WireShark进行网络流量安全分析

    WireShark的过滤规则 伯克利包过滤(BPF)(应用在wireshark的捕获过滤器上) ** 伯克利包过滤中的限定符有下面的三种:** Type:这种限定符表示指代的对象,例如IP地址,子网或 ...

随机推荐

  1. TCL语言笔记:TCL基础语法

    一.什么是TCL Tcl 全称是 Tool command Language.它是一个基于字符串的命令语言,基础结构和语法非常简单,易于学习和掌握. Tcl 语言是一个解释性语言,所谓解释性是指不象其 ...

  2. React-用ImmutableJS提高性能

    一.需求 1.子组件有更新时,只重新渲染有变化的子组件,而不是全部 二.ImmutableJS原理 三.代码 1.CheckboxWithLabel.jsx var React = require(' ...

  3. s1.charAt(x)=='a'

    public class hhh{public static void main(String[]args) {   String s1="hkdhskhegoihwhonfdsaaa&qu ...

  4. *IDEA真好用

    使用maven做开发,在编辑pom.xml文件时

  5. Java API —— 编码 & IO流( InputStreamReader & OutputStreamWriter & FileReader & FileWriter & BufferedReader & BufferedWriter )

    1.编码     1)编码表概述         由字符及其对应的数值组成的一张表     2)常见编码表         · ASCII/Unicode 字符集:ASCII是美国标准信息交换码,用一 ...

  6. DefaultHashOperations multiget的一个坑

    DefaultHashOperations的multiget如果没有数据会返回java.util.Collections.EmptyList,这个List没有重写add方法. List<Long ...

  7. 删除 GPT 保护分区

    问题: 将内置和/或外置硬盘连接到 Windows XP 32 位操作系统时,将无法访问硬盘,“磁盘管理”将会报告该硬盘包含 GPT 保护分区.在此状态下,将无法对硬盘进行重新分区和格式化. 原因: ...

  8. uva10820Send a Table

    筛法. 首先使cnt[i]=sqr(n/i),这样cnt[i]就表示gcd(x,y)大于等于i的数对的个数,然后倒序枚举减去gcd大于i的个数就可以得到ans[i].最终得到ans[1]. 这个算法单 ...

  9. EasyUi datagrid 单选框选中事件

    Easyui datagrid中的单选框默认是这样定义的 columns: [[ { field: 'CK', title: '', checkbox: true, width: 30 }]]. 平常 ...

  10. LA 2572 (求可见圆盘的数量) Kanazawa

    题意: 把n个圆盘依次放到桌面上,按照放置的先后顺序给出这n个圆盘的圆心和半径,输出有多少个圆盘可见(即未被全部覆盖). 分析: 题中说对输入数据进行微小扰动后答案不变. 所露出的部分都是由若干小圆弧 ...