常见网络协议

最近用tcpdump抓包时,经常需要用到tcp、ip等网络协议,在此记录下,备忘;
在网络上找了下,发现roclinux.cn网站有这些协议的格式图片,很清晰,在此引用下;

Ethernet协议

Ethernet

IP协议

IP

TCP协议

TCP

UDP协议

UDP

常见tcpdump表达式

  1. 获取发往192.168.0.1服务器的GET请求:
tcpdump -i en4 -X -nn '((host 192.168.0.1) and (tcp[(tcp[12]>>2):4]=0x47455420))'
tcpdump -i en4 -X -nn '((host 192.168.0.1) and (tcp[(tcp[12]>>4)<<2:4]=0x47455420))'

按照tcp协议,第12个字节的前4位存储偏移量,也即头部的长度,另外偏移量的单位为4byte,因此(tcp[12]>>4)<<2表示数据部分的开始位置,简写为tcp[12]>>2;

  1. 获取与192.168.0.1的GET请求和相应:
tcpdump -XvvennSs 0 -i en4 'tcp[(tcp[12])>>2:2]=0x4745 or tcp[(tcp[12])>>2:2]=0x4854'

0x4745为GE,0x4854为HT,熟悉HTTP协议的应该知道,这是HTTP请求和响应头部的开始字符

  1. 获取与192.168.0.1三次握手的SYN请求:
tcpdump -nn -i en4 -X 'tcp[tcpflags]=tcp-syn and host 192.168.0.1' 
  1. 获取端口大于1024的TCP请求
tcpdump -i en4 -X -nn 'tcp[0:2]>1024'

按照tcp协议,前两个字节存储源端口,因此可以用表达式tcp[0:2]表示;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 11,176评论 1 13
  • 本文整理了在实践过程中使用的Linux网络工具,这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如lso...
    老夫刘某阅读 9,002评论 0 7
  • 我其实是个很会煽情的人。但有时候这些话又真的说不出来。其实是真的蛮感谢身边的每一个人的,在我最需要人的时候,他们总...
    Francis_003阅读 1,683评论 7 1
  • 姓名: 张娟 公司: 路易彬彦 【日精进打卡第96天】 【知~学习】 《六项精进》0遍共127遍 《大学》0遍 共...
    路易彬彥张娟阅读 2,507评论 0 0
  • 继上文之后,终于鼓起勇气来整理这篇文章了。说到Acitivity启动,其实是个复杂而艰难的过程,认真去分析这块可以...
    空同定翁阅读 3,427评论 2 2