Linux 基础教程 29-tcpdump命令-1
在Linux中输入命令man tcpdump给出的定义如下所示:是不是感觉很懵?我们用通俗、形象、学术的表达方式来全方位描述tcpdump:常用选项如下所示:1、第一个抓包示例-i : 指定用来抓包的网络接口,这个参数在服务器有多个网卡的时候非常有效-nn : 不转换协议和端口号,当tcpdump遇到协议号或端口号,不需要将这些数字转换为对应的协议名称或端口名称,如22端口SSH端口,我们希望显示22,而非SSH-X : 将协议头和包内容原原本本的显示出来,tcpdump会同时以16进制和ASCII的形式进行显示,在协议分析时非常好用。'port 22' : 告诉tcpdump要有选择的显示所抓到的包,在该示例中,只显示源端口或目的端口是22的数据包,其他的数据包则不显示。-c : 用来指定抓包的个数,示例设置的个数为1,则代表仅抓取一个包之后就退出不再抓包了。2、-e 增加数据链路层的头部信息通过两个命令的输出对比,可以看到增加-e选项后,输出的结果中增加MAC地址信息。而且在输出内容中会有oui Unknown,OUI即Organizationally unique identifier(组织唯一标识符),在任何一块网卡中烧录的6字节MAC地址中,前3个字节体现了OUI,其表明了网卡的制造组织,通常情况下,该标识符是唯一的。在本例中,由于没有识别出网卡的制造商,因此显示为Unknown。3、-l 将输出变为行缓冲模式-l的作用是将tcpdump的输出行为变为行缓冲方式,这样可以保证tcpdump遇到换行符,就立即将缓冲的内容输出到标准输出(stdout),方便利用管道或重定向方式进行后续处理,而不会造成延迟。在Linux的标准I/O中提供了全缓冲、行缓冲、无缓冲三种缓冲方式。标准错误是不带缓冲的,而终端设备常为行缓冲,其他默认则为全缓冲。在该例中,将tcpdump输出的内容通过管道提取第5列,可以用来查看详细的连接信息。而如果不加 -l 选项时,则只有当缓冲区全部占满时,tcpdump才会将缓冲区中的内容输出,这样就有可能导致输出不连续的,如果强行结束,则会影响下一行的完整性。4、-t 输出不加时间戳在增加选项-t选项后,时间23:48:03.193526就消失了。tcpdump默认情况下是按微秒来计时,因此最一个时间精确到了第6位。5、 -v 显示详细信息在增加-v选项后,会在输出的内容中增加tos、ttl、id、offset、协议编号、总长度等,如需要理解这些信息,就需要了解TCP/IP协议中的头的具体定义了。6、-F 指定过滤表达式所在的文件在第一个示例中,命令行增加了'port 22',而这一项就叫过滤条件,如果设置了过滤条件,则tcpdump只抓取满足过滤条件的数据包。如需要设置较为复杂的过滤条件或复用过滤条件时,这时可以将过滤条件保存为文件,然后通过-F加载该过滤文件。7、 -w 将原始数据包信息保存到文件中当我们查看保存的文件时,出现的是乱码。则代表无法直接查看,很有可能是二进制文件。那么怎么查看保存的文件了?请看下一个示例。7、 -r 从文件中读取原始数据包通过-w和-r选项即可实现抓包的录制回放功能。

tcpdump详细教程
tcpdump - dump traffic on a networktcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息-c:指定要抓取的包数量。-i interface:指定tcpdump需要监听的接口。默认会抓取第一个网络接口-n:对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。-P:指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"。-s len:设置tcpdump的数据包抓取长度为len,如果不设置默认将会是65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截断,若出现包截断,:输出行中会出现"[|proto]"的标志(proto实际会显示为协议名)。但是抓取len越长,包的处理时间越长,并且会减少tcpdump可缓存的数据包的数量,:从而会导致数据包的丢失,所以在能抓取我们想要的包的前提下,抓取长度越小越好。-e:输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。-q:快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。-X:输出包的头部数据,会以16进制和ASCII两种方式同时输出。-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。-v:当分析和打印的时候,产生详细的输出。-vv:产生比-v更详细的输出。-vvv:产生比-vv更详细的输出。-D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后。-F:从文件中读取抓包的表达式。若使用该选项,则命令行中给定的其他表达式都将失效。-w:将抓包数据输出到文件中而不是标准输出。可以同时配合"-Gtime"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些文件以进行分析和打印。-r:从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。==一个基本的表达式单元格式为"proto dir type ID"==对于表达式语法,参考pcap-filter 【pcap-filter - packet filter syntax】host, net, port, portrange例如:host 192.168.201.128,net 128.3, port 20, portrange 6000-6008'src,dst,srcor dst, src and dsttcp, udp , icmp,若未给定协议类型,则匹配所有可能的类型==表达式单元之间可以使用操作符" and / && / or / || / not / ! "进行连接,从而组成复杂的条件表达式==。如"host foo and not port ftp and not port ftp-data",这表示筛选的数据包要满足"主机为foo且端口不是ftp(端口21)和ftp-data(端口20)的包",常用端口和名字的对应关系可在linux系统中的/etc/service文件中找到。另外,同样的修饰符可省略,如"tcp dst port ftp or ftp-data or domain"与"tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain"意义相同,都表示包的协议为tcp且目的端口为ftp或ftp-data或domain(端口53)。使用括号"()"可以改变表达式的优先级,但需要注意的是括号会被shell解释,所以应该使用反斜线""转义为"()",在需要的时候,还需要包围在引号中。==**tcpdump只能抓取流经本机的数据包 **==默认情况下,直接启动tcpdump将监视第一个网络接口(非lo口)上所有流通的数据包。这样抓取的结果会非常多,滚动非常快。注意,表达式被单引号括起来了,这可以防止shell对其中的括号进行错误解析

如何快速熟悉TCP/IP协议
一般来说学习 TCP/IP协议是一件比较麻烦的事,许多人只会用,不懂其原理,写代码的时候的不知道所以然,面试的时候,什么是三次握手,什么是滑动窗口也回答不了,机会就没了,其实TCP/IP协议本身的学习比学习怎么使用socket更重要,如果了解了协议,应用层的东西就变得简单了,很快就可以掌握和应用了。 1、推荐《TCP-IP详解》三本书,已经够了。2、推荐抓包工具OmniPeek,协议学习是实践性很强的,需这款抓包工具很简单也很好用。 3、视频教程,推荐明教教主的教程,是免费的,这里不能发网址,只能自己搜索了,他是配合《TCP-IP详解》讲得,讲得很好。
第一阶段: 先了解七层模型,然后看一下CCNA/NP的教学视频和书籍,对网络模型有初步了解。第二阶段:可以去看看《TCP/IP详解卷一》,讲基础。第三阶段:学习一些理论知识,最好的还是机械工业出版社出版的《计算机网络,自顶向下网络设计》和《计算机网络,系统方法》。第四阶段:看《TCP/IP详解卷二》,讲Unix TCP/IP协议栈设计。第五阶段:看Linux 内核源码network部分。 以上都是关于TCP/IP的知识点,不包括广域网技术和其他的接入网技术等。

TCPIP协议经典教程
推荐两本,第一本是《用TCP/IP进行网际互联第一卷:原理协议与结构(第四版)》(共三卷)。 本书是一部关于计算机网络的经典教科书,它是目前美国大多数大学里所开设的计算机网络课程的主要参考书。目前国内外能见到的各种有关TCP/IP的书籍,其主要内容均出自本书。本书的特点是:强调原理、概念准确,深入浅出,内容丰富新颖;全书共分为三卷,第一卷从TCP/IP基本概念讲起,讨论了主要协议和结构,讲解了TCP/IP的各种具体应用,并阐述了其未来发展趋势。全书共33章,各章之后有许多问题。本书可供计算机和通信专业的研究生,高年级本科生作为教科书或学习参考书,也可供从事科研和技术开发的人员参考。第二本是《TCP/IP协议详解》,也是三卷。这本书也非常的经典,它详细介绍一下TCP/IP的内部结构,并提供了作者本人的一个根据协议做出的软件实现的源代码。 中文版是由机械电子工业出版社出版的,翻译、装帧都很不错。不过建议有能力的还是读英文原版,影印版的也不贵。
哦你想说什么

有没有TCP协议操作JSON的例子或者教程
1)XML 和JSON是两种完全不同的数据表达方式。他们分别采用完全不同格式将原始数据转换成XML或者JOSN格式数据;然后再将XML或JOAN格式的数据还原为原始数据 2)Socket是用来编写TCP/IP或UDP/IP通信程序的;HTTP是使用TCP/IP的“应用层协议”,HTTP协议利用(借助于) TCP/IP 实现传输。3)XML和JSON都可以借助HTTP进行传输 一个形象的比喻:TCP/IP是由SOCKET修建公路,HTTP是公路上跑的车,XML或JSON是车装载的货物。

本文由 在线网速测试 整理编辑,转载请注明出处。