tcpdump/HTTP协议实践
tcpdump/HTTP协议实践

客户端:
CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED
服务端:
CLOSED->LISTEN->SYN收到->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED
# tcpdump host 192.168.64.71 and port 80 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
10:13:01.617505 IP 10.1.9.11.58384 > 192.168.64.71.80:
Syn 3718379515:3718379515(0) win 65535 <mss 1460,nop,nop,sackOK>
客户端发起连接请求
10:13:01.617631 IP 192.168.64.71.80 > 10.1.9.11.58384:
Syn 261066897:261066897(0) ack 3718379516 win 5840 <mss 1460,nop,nop,sackOK>
服务端响应连接请求
10:13:01.617766 IP 10.1.9.11.58384 > 192.168.64.71.80: . ack 1 win 65535
10:13:01.618011 IP 10.1.9.11.58384 > 192.168.64.71.80:
Push 1:612(611) ack 1 win 65535
客户端向服务端发送数据(HTTP请求)
10:13:01.618023 IP 192.168.64.71.80 > 10.1.9.11.58384: . ack 612 win 6721
10:13:01.618486 IP 192.168.64.71.80 > 10.1.9.11.58384:
Push 1:329(328) ack 612 win 6721服务端向客户端回送数据(HTTP响应)
10:13:01.618510 IP 192.168.64.71.80 > 10.1.9.11.58384:
Push 329:1303(974) ack 612 win 6721
10:13:01.619638 IP 10.1.9.11.58384 > 192.168.64.71.80: . ack 1303 win 64233
10:13:11.574352 IP 10.1.9.11.58384 > 192.168.64.71.80:
Fin 612:612(0) ack 1303 win 64233
客户端先发起关闭连接操作
10:13:11.574455 IP 192.168.64.71.80 > 10.1.9.11.58384:
Fin 1303:1303(0) ack 613 win 6721
服务端响应客户端的关闭连接操作
10:13:11.574991 IP 10.1.9.11.58384 > 192.168.64.71.80: . ack 1304 win 64233
客户端进入TIME_WAIT状态
Ø
服务端(192.168.64.71.80)向客户端(10.1.9.11.58384)回送的响应分了两个tcp包:
第一个包发送了328字节,第二个包发送了974字节
Ø
关闭连接由客户端(10.1.9.11.58384)首先发起,因此客户端(192.168.64.71.80)需要经历一个TIME_WAIT过程
Site found: www.tcpdump.com=192.168.64.71
Connecting to 192.168.64.71
Connected to 192.168.64.71
GET http:// www.tcpdump.com/
> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
> User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
> Host: tsf.oa.com
Request sent. 611 bytes
Data available. 974/974 bytes
Date: Sun, 10 Aug 2008 02:27:08 GMT
Server: Apache/2.0.59 (Unix) DAV/2 PHP/5.2.1 SVN/1.4.6
Last-Modified: Wed, 21 May 2008 01:19:21 GMT
ETag: "298227-3ce-62ec9840"
Accept-Ranges: bytes
Content-Length:
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=GB2312
200 Request complete
从上面的抓包结果来看,Apache将HTTP响应头和数据部分是分成两两部分发送的,而且TCP/IP协议栈没有再对其分包,也就是每个send调用都将数据发送完毕。
显示包的内容:
tcpdump -i eth1 -n -vv -x -e -s 1600 # 仅二进制
tcpdump -i eth1 -n -vv -X -e -s 1600 # 二进制和文本
-s 指定显示多少字节的包内容
tcpdump/HTTP协议实践的更多相关文章
- TCP\IP协议实践:wireshark抓包分析之链路层与网络层
目录 TCP\IP协议实践:wireshark抓包分析之链路层与网络层 从ping开始 链路层之以太网封装 ip首部 开启ping程序,开始抓包 由一个ping的结果引出来的两个协议ARP ICMP ...
- WCF 采用net.tcp协议实践
概述 与Socket相比,WCF真是爽得不得了,其基本指导思想为SOA——面向服务. 其基本配置在于ABC(Address,Binding,Contract),通常,只要这三个因素配置对了,那么,基本 ...
- DNS协议 实践
根据DNS协议发送UDP请求,然后获取IP地址 头文件: #ifndef __DNS__ #define __DNS__ #include <stdio.h> #include <s ...
- [置顶] 【GBT28181开发:SIP协议实践】之设备远程启动
下面学习的是设备远程控制的流程,和设备信息.设备目录.设备状态的流程差不多,主要是描述的协议字段不同,模拟SPVMN系统向源设备发送远程启动控制指令,记录下交互的消息,详细研究了下: 转载请注明出处: ...
- WCF 采用net.tcp协议实践(转)
概述 与Socket相比,WCF真是爽得不得了,其基本指导思想为SOA——面向服务. 其基本配置在于ABC(Address,Binding,Contract),通常,只要这三个因素配置对了,那么,基本 ...
- quic协议实践
QUIC实践 环境Ubuntu14.x86_64 gcc4.8 python2.7 编译QUIC服务器和客户端 下载 git clone https://github.com/google/proto ...
- RPC协议实践入门
RPC 是什么 RPC(Remote Procedure Call) 是一个计算机通信协议.该协议允许运行与一台计算机的程序调用另一个地址空间的程序,是一个通过发送请求-接受回应进行信息交互的系统. ...
- WCF 采用net.tcp协议
WCF 采用net.tcp协议实践 概述 与Socket相比,WCF真是爽得不得了,其基本指导思想为SOA——面向服务. 其基本配置在于ABC(Address,Binding,Contract), ...
- tcpdump 使用
例子: 首先切换到root用户 tcpdump -w aaa.cap -i eth7 -nn -x 'port 9999' -c 1 以例子说明参数: -w:输出到文件aaa.cap ...
随机推荐
- [基本操作] kd 树
概念就不说了吧,网上教程满天飞 学了半天才知道,kd 树实质上只干了两件事情: 1.快速定位一个点 / 矩形 2.有理有据地优化暴力 第一点大概是可以来做二维平面上给点/矩形打标记的问题 第二点大概是 ...
- H国的身份证号码(搜索)
个人心得:巧妙利用数字进行维护就好了,深搜还是有点心得的: #1558 : H国的身份证号码I 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 H国的身份证号码是一个N位 ...
- [独孤九剑]Oracle知识点梳理(八)常见Exception
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- 【HTML5】Canvas绘制基础
什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以 ...
- 学习动态性能表(12)--v$db_object_cache
学习动态性能表 第12篇--V$DB_OBJECT_CACHE 2007.6.4 本视图提供对象在library cache(shared pool)中对象统计,提供比v$librarycache更 ...
- mysql之 mysql 5.6不停机主从搭建(一主一从基于日志点复制)
环境说明:版本 version 5.6.25-log 主库ip: 10.219.24.25从库ip:10.219.24.22os 版本: centos 6.7已安装热备软件:xtrabackup 防火 ...
- Zabbix通过SNMPv2监控DELL服务器的硬件信息
(一)zabbix监控DELL服务器 (1)简述:监控DELL服务器硬件一般有两种途径:1.操作系统上安装OMSA,编写脚本调用omreport命令进行监控(需要在操作系统上安装比较麻烦):2.使用i ...
- flask之instance_path实例路径
Flask 0.8 introduces instance folders. Flask for a long time made it possible to refer to paths rela ...
- UIButton 不同状态图片来回切换
做百度地图是否显示路况信息,用到两种状态的图片 第一种方法:用Bool进行标记 声明一个 Bool _isRoad; - (void)roadBtnAction:(UIButton *)sender ...
- (转)C# -- 扩展方法的应用(Extension Methods)
本文转载自:http://blog.csdn.net/zxz414644665/article/details/9793205 当你有下面这样一个需求的时候,扩展方法就会起到作用:在项目中,类A需要添 ...