如何抓取iPhone上的traffic

如何抓取iPhone上的traffic

为什么要抓取iPhone上面的traffic,有时候需要查看手机上某个应用的发的网络包(可能是因为没有这个程序的源代码,所有没有办法通过xcode+debug的方式)。这里我们说2种方法,

共享Wifi

第一种方法是共享苹果笔记本的Wifi,然后让iPhone手机连到这个wifi,关掉所有苹果笔记本上所有使用网络的应用,以及iPhone所有除了要查看的app以外所… 更多... “如何抓取iPhone上的traffic”

TCP简单说下篇

TCP简单说下篇

本文摘自
https://www.kancloud.cn/kancloud/tcp/45893

TCP的RTT算法
从前面的TCP重传机制我们知道Timeout的设置对于重传非常重要。

设长了,重发就慢,丢了老半天才重发,没有效率,性能差;
设短了,会导致可能并没有丢就重发。于是重发的就快,会增加网络拥塞,导致更多的超时,更多的超时导致更多的重发。
而且,这个超时时间在不同的网络的情况下,根本… 更多... “TCP简单说下篇”

TCP 简单说上篇

TCP 简单说

本文转自:
https://www.kancloud.cn/kancloud/tcp/45892

TCP头格式
接下来,我们来看一下TCP头的格式

你需要注意这么几点:

TCP的包是没有IP地址的,那是IP层上的事。但是有源端口和目标端口。
一个TCP连接需要四个元组来表示是同一个连接(src_ip, src_port, dst_ip, dst_port)准确说是五元组,还有一个是协议。但因为这里只是说… 更多... “TCP 简单说上篇”

为什么TCP头部没有数据长度信息而UDP有

为什么TCP头部没有数据长度信息而UDP有

先让我们看看IP,TCP,UDP的头部结构

1. IPv4 头部

ipv4_header

2. TCP和UDP头部
TCP_UDP_headers

可以看到IP的头部包换数据的长度,TCP的头部不包含数据长度,UDP的头部则包含。

从信息冗余的角度来看,UDP的长度信息是不需要的。

因为IPv4的头部已经包含了数据的长度信息,这里的数据如果当前的通讯协议是UDP,那么这个长度就包含了UDP的头部和UDP的数据,因为UDP的头部… 更多... “为什么TCP头部没有数据长度信息而UDP有”

强大的linux命令ncat

强大的linux命令ncat      

ncat是linux内置的一个命令,可以提供tcp,udp的服务器和客户端,还可以作为代理服务器。

所以如果测试,完全不用自己写一个tcp和udp的服务器,直接使用ncat就可以。ncat默认是工作于tcp模式,如果要工作udp,则使用 -u选项。下面介绍一些非常经典的应用。

ncat默认是工作在客户端的… 更多... “强大的linux命令ncat”

Wireshark分析HLS流

Wireshark分析HLS流

 

关于HLS的介绍,前面我有专门写一篇博文介绍
HLS媒体流简要

本篇文章介绍如何使用Wireshark分析HLS流,

为了抓包的方便,我们就是在内部的一台机器设置HLS的媒体流服务器,关于如何假设HLS服务器,前面也有介绍:

利用nginx-rtmp-module搭建HLS流媒体服务器然后在另外一台服务器使用vlc或者ffplay客户端访问HLS流,然后Wires… 更多... “Wireshark分析HLS流”

创建wireshark的自定义的协议分析插件

 

创建wireshark的自定义的协议分析插件

wireshark本身已经支持很多了的公共的协议,作为分析包的工具已经很强大了。

如果我们还想分析一下我们私有的协议,那么还可以开发插件。插件需要是C代码,其实官方有很详尽的文档,我就直接把链接放这里了。

https://www.wireshark.org/docs/wsdg_html_chunked/ChDissectAdd.html

 … 更多... “创建wireshark的自定义的协议分析插件”

UDP包的大小问题

UDP包的大小问题

 

我们传输数据的包的时候,需要包的大小。为什么呢?因为如果你的大包的大小超过了网络路径中的最大传输单元,也就是MTU

MTU=Maximum Transmit Unit

那么这个包在传输的时候就会出现碎片化处理(fragmentation),也就是在网络传输的时候,网络包被分成多个包传输,这样大大增加了数据包到达客户端后,因为丢失其中的某个包,而不能组成完整的包的几率。

关于网络… 更多... “UDP包的大小问题”