利用网络协议分析器分析 TCP
TCP IP网络协议分析实验报告
TCP/IP网络协议分析实验一、实验目的1. 通过实验,学习和掌握TCP/IP协议分析的方法及其相关工具的使用;2. 熟练掌握 TCP/IP体系结构;3. 学会使用网络分析工具;4. 网络层、传输层和应用层有关协议分析。
二、实验类型分析类实验三、实验课时2学时四、准备知识1.Windows 2003 server 操作系统2.TCP/IP 协议3.Sniffer工具软件五、实验步骤1.要求掌握网络抓包软件Wireshark。
内容包括:●捕获网络流量进行详细分析●利用专家分析系统诊断问题●实时监控网络活动●收集网络利用率和错误等2.协议分析(一):IP协议,内容包括:●IP头的结构●IP数据报的数据结构分析3.协议分析(二):TCP/UDP协议,内容包括:●TCP协议的工作原理●TCP/UDP数据结构分析六、实验结果1.IP协议分析:(1)工作原理:IP协议数据报有首部和数据两部分组成,首部的前一部分是固定长度,共20字节,是IP数据报必须具有的。
首部分为,版本、首部长度、服务类型、总长度、标识、标志、片偏移、生存时间、协议、首部检验和、源地址、目的地址、可选字段和数据部分(2)IPV4数据结构分析:2.TCP协议分析:(1)工作原理:TCP连接是通过三次握手的三条报文来建立的。
第一条报文是没有数据的TCP报文段,并将首部SYN位设置为1。
因此,第一条报文常被称为SYN分组,这个报文段里的序号可以设置成任何值,表示后续报文设定的起始编号。
连接时不能自动从1开始计数,选择一个随机数开始计数可避免将以前连接的分组错误地解释为当前连接的分组。
(2)TCP数据结构分析第一次握手:第二次握手:第三次握手:3.UDP协议分析:(1)工作原理:与我们所熟悉的TCP一样,UDP协议直接位于IP的顶层。
根据OSI(开放系统互联)参考模型,UDP和TCP都属于传输层协议。
UDP的主要作用是将网络数据流量压缩成数据报的形式。
网络协议分析
网络协议分析网络协议是计算机网络中传输数据的规则和约定,它们确保了信息在网络中的正确传输和接收。
本文将对几种常见的网络协议进行分析,包括TCP/IP协议、HTTP协议和DNS协议。
一、TCP/IP协议TCP/IP协议是互联网通信的核心协议,它由两个部分组成:传输控制协议(TCP)和网际协议(IP)。
TCP负责将数据分割成适合在网络上传输的小包,而IP则负责将这些包从源地址传送到目标地址。
TCP/IP协议具有可靠性和有序性,在数据传输过程中会检测、纠正丢失的数据包,并确保数据的正确接收。
它也能够控制数据的流量,以避免网络拥塞。
二、HTTP协议HTTP(超文本传输协议)是用于在计算机上进行传输超文本的协议。
它是Web应用程序和Web服务器之间的通信协议,基于客户端-服务器模型。
HTTP使用请求-响应模式,在客户端发送请求后,服务器会返回相应的数据。
请求和响应的内容以及其他相关信息都包含在HTTP报文中。
它的主要方法包括GET、POST、PUT和DELETE,用于在客户端和服务器之间进行数据的读取、提交、更新和删除。
三、DNS协议DNS(域名系统)是将域名转换为IP地址的协议。
当用户在浏览器中输入一个域名时,DNS负责将域名解析为相应的IP地址,以便能够与服务器建立连接。
DNS工作原理是将域名从右向左进行逐级查询,直到找到对应的IP地址或者找到负责该域名的权威服务器。
查询过程采用递归查询和迭代查询的方式。
四、网络协议的重要性网络协议的存在和运行是计算机网络能够正常工作的基础。
它们为数据传输提供了规范和标准,确保了数据的可靠性、有序性和准确性。
网络协议还能够提高网络的效率和安全性,对于互联网的发展和运行起着至关重要的作用。
总结:本文对网络协议进行了分析,包括TCP/IP协议、HTTP协议和DNS协议。
它们分别用于数据传输、超文本传输和域名解析。
网络协议的规范和标准确保了网络的正常工作,并提高了网络的效率和安全性。
tcpip实验报告
网络协议分析实验一、实验目的通过使用协议分析软件,对通信系统的通信过程进行监控、分析,以了解通信协议的工作过程。
二、实验内容利用协议分析软件(如:Wireshark)跟踪局域网报文(如条件允许也可跟踪多种局域网协议报文),实验内容如下:将安装协议分析软件的PC接入以太网中,跟踪PC之间的报文,并存入文件以备重新查。
设置过滤器过滤网络报文以检测特定数据流。
利用协议分析软件的统计工具显示网络报文的各种统计信息。
三、实验步骤1、在PC中安装协议分析软件(如:Wireshark)。
具体安装过程详见附录:Wireshark用户指南。
2、启动Wireshark协议分析软件,选择抓包菜单项启动实时监视器,开始实时跟踪显示网络数据报文。
可根据系统提示修改显示方式,详见附录:Wireshark用户指南。
3、调出跟踪存储的历史报文,选择有代表性的ETHERNET,IEEE802.3,IP,ICMP,TCP,UDP报文,对照有关协议逐个分析报文各字段的含义及内容。
EHERNET报文格式IEEE802.3报文格式IP报文格式4、设置过滤器属性,如目的地址,源地址,协议类型等。
如过滤不需要的网络报文,过滤器允许设置第二层,第三层或第四层的协议字段。
过滤器有两种工作方式:1)捕获前过滤:协议分析软件用过滤器匹配网络上的数据报文,仅当匹配通过时才捕获报文。
2)捕获后过滤:协议分析软件捕获所有报文,但仅显示匹配符合过滤条件的报文。
选择统计菜单项可以显示网络中各种流量的统计信息,如:关于字节数,广播中报文数,出错数等。
UDP 客户/服务器实验一、实验目的本实验目的是使用因特网提供的UDP 传输协议,实现一个简单的UDP 客户/服务器程序,以了解传输层所提供的UDP 服务的特点,应用层和传输层之间的软件接口风格,熟悉socket 机制和UDP 客户端/服务器方式程序的结构。
二、实验内容本实验为UDP 客户/服务器实验。
实验内容:UDP echo 客户/服务器程序的设计与实现。
tcp协议分析实验报告
TCP协议分析实验报告1. 引言TCP(传输控制协议)是一种面向连接的协议,用于在计算机网络中可靠地传输数据。
本实验旨在分析TCP协议的工作原理、数据包的格式和传输过程,并通过实验验证其可靠性和效率。
2. 实验环境在该实验中,我们使用了两台计算机作为实验设备,一台作为服务器,另一台作为客户端。
两台计算机通过以太网连接,并配置了相应的IP地址和子网掩码。
3. 实验步骤3.1 建立连接首先,客户端发送一个SYN包(同步包)到服务器的指定端口。
服务器收到SYN包后,发送一个SYN-ACK包(同步-确认包)作为响应。
客户端再次发送一个ACK包(确认包)给服务器,表示连接已建立。
3.2 数据传输一旦连接建立,客户端和服务器之间可以开始传输数据。
数据被分割成多个小的数据包,并使用TCP协议进行传输。
每个数据包都包含源端口、目的端口、序列号、确认号以及数据内容等字段。
3.3 确认和重传在传输过程中,接收方会发送确认包以确认已接收到的数据包。
如果发送方在一定时间内没有收到确认包,它会认为数据包丢失,然后重新发送该数据包。
这样可以确保数据的可靠性。
3.4 连接终止当数据传输完成后,客户端或服务器可以发送一个FIN包(结束包)来关闭连接。
接收到FIN包的一方发送一个ACK包作为确认,并关闭连接。
另一方在收到确认后也关闭连接。
4. 实验结果通过抓包工具,我们捕获并分析了在实验中传输的数据包。
我们观察到数据包的格式与TCP协议规定的格式相符,并且在传输过程中发现了确认和重传的情况,验证了TCP协议的可靠性。
5. 实验总结TCP协议是一种可靠的传输协议,在实验中我们深入了解了其工作原理和数据包的格式。
通过实验验证了TCP协议的可靠性和效率。
同时,我们也了解到了TCP协议在实际网络通信中的重要性和广泛应用。
参考文献•Tanenbaum, A. S., & Wetherall, D. J. (2011). 计算机网络(第5版).机械工业出版社.•Stevens, W. R., Wright, G., & Coppola, R. (1994). TCP/IP 详解卷1:协议. 机械工业出版社.本文档旨在介绍TCP协议的工作原理和实验验证过程,并不涉及具体的技术细节和算法解析。
tcpdump使用手册
tcpdump使用手册【原创版】目录1.tcpdump 简介2.tcpdump 的基本语法3.tcpdump 的高级特性4.tcpdump 的实际应用5.结论正文1.tcpdump 简介tcpdump 是一个网络协议分析器,它可以用于捕获、分析和解码网络数据包。
它广泛应用于网络故障排除、网络安全监控和网络协议分析等领域。
tcpdump 通过将网络接口放入促销模式,可以截获所有通过该接口的数据包,然后使用强大的过滤引擎和分析工具对数据包进行处理。
2.tcpdump 的基本语法tcpdump 的基本语法包括以下几个部分:- 捕获网络接口:tcpdump 可以通过`-i`选项指定要捕获的网络接口,如`-i eth0`。
- 设置过滤规则:tcpdump 可以通过`-nn`选项打开 ASN.1 和IPsec 解码,通过`-vvv`选项打开详细的调试输出。
- 设置数据包解码方式:tcpdump 可以通过`-X`选项指定解码方式,如`-Xutf8`表示使用 UTF-8 编码解码。
- 设置数据包输出方式:tcpdump 可以通过`-w`选项将数据包输出到文件,通过`-n`选项防止 DNS 解析。
3.tcpdump 的高级特性除了基本的语法和功能,tcpdump 还具有以下高级特性:- 强大的过滤引擎:tcpdump 可以使用正则表达式和布尔运算符进行数据包过滤,可以精确地筛选出需要的数据包。
- 丰富的分析工具:tcpdump 提供了多种分析工具,如`sum`可以统计数据包的数量,`wireshark`可以将数据包转换为 Wireshark 格式。
- 高级的解码功能:tcpdump 可以解码多种协议,如 TCP、UDP、ICMP 等,可以显示详细的协议数据。
4.tcpdump 的实际应用tcpdump 在实际应用中可以用于以下场景:- 网络故障排除:通过捕获网络数据包,可以分析网络故障的原因,如丢包、延迟等。
- 网络安全监控:通过过滤和分析网络数据包,可以检测网络中的恶意行为,如入侵、攻击等。
网络协议分析工具Ethereal的使用
⽹络协议分析⼯具Ethereal的使⽤⼤学时计算机⽹络课的实验报告,当时提不起兴趣,今天看来还挺有⽤的。
可以学习下怎样抓数据包,然后分析程序的通信协议。
⼀:学习使⽤⽹络协议分析⼯具Ethereal的⽅法,并⽤它来分析⼀些协议。
实验步骤:1.⽤“ipconfig”命令获得本机的MAC地址和缺省路由器的IP地址;(注:缺省路由器即 ”Default Gateway”)命令⾏:Start->Run->CMD->ipconfig /all >C:\Mac.txt(在命令⾏中把ipconfig命令保存在⽂本⽂档⾥⾯备⽤)结果:本机Mac地址:00.09.73.4B.8A.D7 缺省路由器IP:192.168.8.254步骤截图:图1(本机⽹络信息:Mac.txt)2.⽤“arp”命令清空本机的缓存:命令⾏:Start->Run->CMD->arp –d图2(arp命令 –d参数的帮助说明)3.运⾏Ethereal,开始捕获所有属于ARP协议或ICMP协议的,并且源或⽬的MAC地址是本机的包:图3(Capture->Options中关于⽹卡设置和Capture Filter)图4(抓包截图)4.执⾏命令:“ping” 缺省路由器的IP地址:图5(捕获包)图6(ping 过程)⼆:⽤Ethereal观察tracert命令的⼯作过程:1.⽤Ethereal语法内容及参数说明:命令⾏操作步骤:Start->Run->CMD->tracert图1(Tracert命令全部参数的帮助说明)2.运⾏Ethereal, 设定源和⽬的MAC地址是本机的包,捕获tracert命令中⽤到的消息:Tracert使⽤ICMP,相应过滤规则为:ether host 00:09:73:4B:8A:D7 and icmp图3(Capture->Options中关于⽹卡设置和Capture Filter)3.执⾏“tracert -d ” ,捕获包:执⾏命令:tracert -d :图3 (执⾏命令 tracert –d )图4(抓包截图)图5(捕获包)4.Tracert⼯作原理:Tracert使⽤ICMP消息,具体地讲,tracert发出的是Echo Request消息,触发返回的是Time Exceeded消息和Echo Reply消息。
tcp实验总结
tcp实验总结摘要:1.TCP协议简介2.TCP实验目的与过程3.TCP实验结果与分析4.TCP协议的优点与不足5.总结与建议正文:一、TCP协议简介TCP(Transmission Control Protocol,传输控制协议)是一种面向连接、可靠、基于字节流的传输层通信协议。
它与IP协议共同构成了TCP/IP协议族,是互联网中最常用的协议之一。
TCP协议通过三次握手建立连接,保证数据传输的可靠性,具有错误检测和纠正功能。
二、TCP实验目的与过程本次TCP实验旨在通过实际操作,了解TCP协议的工作原理,掌握TCP 连接的建立、数据传输和断开过程,以及分析TCP协议在实际应用中的性能表现。
实验过程如下:1.搭建TCP服务器和客户端2.实现TCP客户端与服务器的通信3.观察TCP连接的建立与断开4.分析TCP协议的传输性能三、TCP实验结果与分析实验结果显示,TCP协议能够实现可靠的数据传输。
通过对TCP连接的建立、数据传输和断开过程的观察,发现TCP协议具有以下特点:1.TCP连接建立:通过三次握手,客户端与服务器确认对方的存在,并为后续数据传输做好准备。
2.数据传输:TCP协议采用字节流的方式发送数据,保证了数据的顺序和完整性。
3.TCP断开:通过四次挥手,双方确认对方已接收完毕数据,并依次关闭连接。
四、TCP协议的优点与不足优点:1.面向连接,确保数据传输的可靠性2.错误检测和纠正功能,保证数据完整性3.流量控制与拥塞控制,提高网络资源利用率不足:1.相对复杂的实现,占用较多资源2.传输延迟较高,不适合实时应用3.依赖IP协议,不能单独使用五、总结与建议通过TCP实验,我们对TCP协议有了更深入的了解。
在实际应用中,应根据需求选择合适的协议,充分发挥TCP协议的优点,避免其不足。
linux wireshark使用方法
linux wireshark使用方法(原创版3篇)篇1 目录linuxwireshark使用方法一、背景介绍1.1 Wireshark的简介1.2 Linux下Wireshark的使用简介二、Wireshark的安装和配置2.1 安装Wireshark2.2 配置Wireshark三、使用Wireshark进行网络数据包分析3.1 捕获网络数据包3.2 分析网络数据包四、常见网络协议分析4.1 TCP协议分析4.2 UDP协议分析4.3 IP协议分析4.4 ARP协议分析4.5 DNS协议分析4.6 HTTP协议分析篇1正文一、背景介绍Wireshark是一款广受欢迎的网络数据包分析工具,可用于捕获、分析和可视化网络数据包。
在Linux平台上,Wireshark的使用方法与Windows平台类似,但也有一些差异。
本文将介绍如何在Linux上使用Wireshark进行网络数据包分析。
二、Wireshark的安装和配置1.安装Wireshark:在大多数Linux发行版中,Wireshark通常已经预装。
如果没有,可以从官方网站下载并手动安装。
2.配置Wireshark:安装完成后,启动Wireshark,并按照提示进行配置。
您需要选择要捕获的网络接口以及过滤数据包的选项。
这些设置可以在系统首选项中进行更改。
三、使用Wireshark进行网络数据包分析1.捕获网络数据包:启动Wireshark后,您可以选择要捕获的网络接口。
如果只有一个网络接口可用,则无需进行任何设置。
否则,您需要选择要使用的网络接口。
一旦选择完毕,单击“开始捕获”按钮即可开始捕获数据包。
2.分析网络数据包:捕获完成后,您可以在Wireshark的界面中查看捕获的数据包。
默认情况下,Wireshark将按时间顺序显示数据包。
您可以通过过滤器来查找特定的数据包。
例如,如果您只想查看TCP数据包,请在过滤器中输入“tcp”。
篇2 目录linuxwireshark使用方法一、背景介绍1.1 Wireshark的简介1.2 Linux下Wireshark的使用简介二、安装Wireshark2.1 在Linux系统上安装Wireshark2.2 下载和安装最新版本的Wireshark三、配置Wireshark3.1 配置Wireshark界面3.2 过滤网络流量四、使用Wireshark进行网络分析4.1 分析网络流量4.2 识别网络攻击篇2正文一、背景介绍Wireshark是一款流行的网络协议分析器,可用于捕获和分析网络流量。
wireshark抓包分析TCP和UDP
计算机网络Wireshark抓包分析报告目录1. 使用wireshark获取完整的UDP报文 (3)2. 使用wireshark抓取TCP报文 (3)2.1 建立TCP连接的三次握手 (3)2.1.1 TCP请求报文的抓取 (4)2.1.2 TCP连接允许报文的抓取 (5)2.1.3 客户机确认连接报文的抓取 (6)2.2 使用TCP连接传送数据 (6)2.3 关闭TCP连接 (7)3. 实验心得及总结 (8)1. 使用wireshark获取完整的UDP报文打开wireshark,设置监听网卡后,使用google chrome 浏览器访问我腾讯微博的首页/welcomeback.php?lv=1#!/list/qqfriends/5/?pgv_ref=im.perinfo.pe rinfo.icon?ptlang=2052&pgv_ref=im.perinfo.perinfo.icon,抓得的UDP报文如图1所示。
图1 UDP报文分析以上的报文内容,UDP作为一种面向无连接服务的运输协议,其报文格式相当简单。
第一行中,Source port:64318是源端口号。
第二行中,Destination port:53是目的端口号。
第三行中,Length:34表示UDP报文段的长度为34字节。
第四行中,Checksum之后的数表示检验和。
这里0x表示计算机中16进制数的开始符,其后的4f0e表示16进制表示的检验和,把它们换成二进制表示为:0100 1111 0000 1110.从wireshark的抓包数据看出,我抓到的UDP协议多数被应用层的DNS协议应用。
当一台主机中的DNS应用程序想要进行一次查询时,它构成了一个DNS 查询报文并将其交给UDP。
UDP无须执行任何实体握手过程,主机端的UDP为此报文添加首部字段,并将其发出。
2. 使用wireshark抓取TCP报文2.1 建立TCP连接的三次握手建立TCP连接需要经历三次握手,以保证数据的可靠传输,同样访问我的腾讯微博主页,使用wireshark抓取的TCP报文,可以得到如图2所示的客户机和服务器的三次握手的过程。
wireshark抓包分析——TCPIP协议
wireshark抓包分析——TCPIP协议本⽂来⾃当我们需要跟踪⽹络有关的信息时,经常会说“抓包”。
这⾥抓包究竟是什么?抓到的包⼜能分析出什么?在本⽂中以TCP/IP协议为例,简单介绍TCP/IP协议以及如何通过wireshark抓包分析。
Wireshark 是最著名的⽹络通讯抓包分析⼯具。
功能⼗分强⼤,可以截取各种⽹络封包,显⽰⽹络封包的详细信息。
Wireshark下载安装,略。
注意,若在Windows系统安装Wireshark,安装成功后可能会出现Wireshark的两个图标,⼀个是Wireshark(中⽂版);另外⼀个是Wireshark Legacy (英⽂版)。
下⾯的内容会以Wireshark Legacy为例介绍。
打开Wireshark,开始界⾯如下:Wireshark捕获的是⽹卡的⽹络包,当机器上有多块⽹卡的时候,需要先选择⽹卡。
开始界⾯中的Interface List,即⽹卡列表,选择我们需要的监控的⽹卡。
点击Capture Options,选择正确的⽹卡,然后点击"Start"按钮, 开始抓包。
我们打开浏览器输⼊任意http⽹址,连接再关闭,⽐如:。
然后,我们回到Wireshark界⾯,点击左上⾓的停⽌按键。
查看此时Wireshark的抓包信息。
在看抓包信息之前,先简单介绍下Wireshark界⾯的含义。
其中,封包列表的⾯板中显⽰编号、时间戳、源地址、⽬标地址、协议、长度,以及封包信息。
封包详细信息是⽤来查看协议中的每⼀个字段。
各⾏信息分别对应TCP/IP协议的不同层级。
以下图为例,分别表⽰:传输层、⽹络层、数据链路层、物理层,⼀共四层。
如果有应⽤层数据会显⽰第五层,即⼀共会出现五层。
每⼀层都有⼀个字段指向上⼀层,表明上⼀层是什么协议。
这⼤概是因为发包的时候会在数据上依次加上应⽤层、传输层、⽹络层、链路层的头部,但是对⽅收到数据包后是从最底层(链路层)开始层层剥去头部解包的,所以在每层上有⼀个字段指向上层,表明上层的协议,对⽅就知道下⼀步该怎么解包了。
网络协议分析——15-TCP
发送方将URG位置1,将紧急数据放在报文段数据区的最前面,接收方收 到URG报文段,立即把该情况通知给接收应用程序。
紧急数据一般位于数据区的最前端,紧急指针指向紧急数据的最后一个字 节。有些系统只传送1字节紧急数据,则可位于数据区任意地方。
紧急数据的交付与其它正常TCP数据交付的区别:指出紧急数据的存在, 并对它在数据流中的位置进行标记。
为每个连接保留一个时间戳(tsrecent)和最后发送的ACK报文的确认(lastack) 1. TCP设置两个变量: (1)tsrecent: 还没回送的最近的一个时间戳值; (2)lastack: 最近一次发送的ACK报文的确认序号; 2. 当包含序号与lastack一致的报文段到达时,其中的时间戳被保存至tsrecent; 3. 无论何时发送确认,tsrecent 将被写入时间戳回显应答字段,确认序号则
连接终止
三向握手
半关闭
四向握手
连接建立和半关闭
同时打开 同时关闭
连接复位
由RST标志来完成。 终止连接有三种情况:
拒绝连接请求:向一个不存在的端口请求连接 异常终止连接:某一端希望放弃在用的连接 终止空闲的连接:发现另一端的TCP连接闲置
拒绝连接 异常终止连接
1 2 3 4 5 6 7 8 9 10 11 12 13
已发并 得到确认
已发未 得到确认
未发但 可以发
不能发送
TCP的窗口大小可变技术
当目的主机缓冲区变小而不能接收源主机更多的数据时, 就要进行流量控制。
TCP流量控制技术:可随时改变窗口大小。目的主机在确 认时,还向源主机告知目的主机接收缓冲区的大小。
只有SYN报文能协商MSS,默认536字节;
TCPIP协议分析总结
第一章计算机网络基础1.协议是指在计算机网络中,为进行网络中的数据交换而建立的规则、标准或约定的集合,如交换数据的格式、编码方式、同步方式等。
协议定义了通信的方式和进行通信的时间,主要包括语法、语义和同步3个关键要素。
语法:定义了所交换数据的格式和结构,以及数据出现的顺序。
语义:定义了发送者或接受者所要完成的操作,包括对协议控制报文组成成分含义的约定。
同步:定义了事件实现顺序以及速度匹配。
体现在当两个实体进行通信时,数据发送的事件以及发送的速率。
2.OSI参考模型3.TCP/IP协议族Tcp表示传输控制协议,ip表示网际协议,tcp/ip实际上是一系列协议。
4.网络层也称为互联网层,由于该层的主要协议为IP,通常也简称为IP层。
该层主要负责相邻计算机之间的通信,把某主机(信源)上的数据包发送到因特网中的任何一台目标主机(信宿)上,即点到点通信。
其包括三方面功能。
处理来自传输层的数据报发送请求处理输入数据报处理路径、流控、拥塞等问题。
5.数据传输过程1.在信源上利用所需的应用层协议(FTP)将数据流传送给信源上的传输层。
2.在传输层将应用层的数据流截成若干分组,加上tcp首部生成tcp段,送交网络层。
3.网络层给tcp报文段封装上源、目的主机IP的ip首部生成ip数据报,送交链路层。
4.信源的链路层封装上源、主机mac帧的mac帧头和帧尾,根据目的mac地址,将mac帧发往中间路由器。
5.路由器根据目的ip地址进行选择传输路径,转发ip数据报。
6.数据传输到信宿,链路层去掉mac帧的mac帧头和帧尾,送交信宿的网络层。
7.信宿网络层检查ip数据报首部,如果与计算结果不一致则丢弃,一致则去掉ip首部送交信宿传输层。
8.传输层检查tcp报文段的顺序号,若正确,则向信源发送确认信息。
9.信宿传输层去掉tcp首部,将排好顺序的分组组成的应用数据流传给信宿上的相应程序。
6.客户机、服务器模式基本工作流程客户机程序首先发起连接请求,而服务器程序响应请求,通过确认与客户机程序建立通信连接。
实验7—网络协议分析(2)
TCP协议与FTP协议分析一、实验目的掌握TCP协议的报文形式;掌握TCP连接的建立和释放过程;掌握TCP数据传输中编号与确认的过程;理解TCP重传机制。
二、实验原理1、TCP报文格式2、TCP链接的建立TCP是面向连接的协议。
在面向连接的环境中,开始传输数据之前,在两个终端之间必须先建立一个连接。
对于一个要建立的连接,通信双方必须用彼此的初始化序列号seq和来自对方成功传输确认的应答号ack(指明希望收到的下一个八位组的编号)来同步,习惯上将同步信号写为SYN,应答信号写为ACK。
整个同步的过程称为三次握手,下图说明了这个过程:3、TCP链接的释放对于一个已经建立的连接,TCP使用四次握手来结束通话(使用一个带有FIN附加标记的报文段)。
TCP关闭连接的步骤如下图所示:4、TCP重传机制TCP每发送一个报文段,就对这个报文段设置一次计时器。
只要计时器设置的重传时间到期,但还没有收到确认,就要重传这一报文段。
三、实验内容及步骤练习一:查看分析TCP三次握手1、安装锐捷协议分析软件,登录服务器:192.168.25.2542、在A机设置过滤条件(提取TCP协议报文),设置A、B机的防火墙。
3、在A机中安装FTP服务端程序。
开始—控制面板-添加和删除程序-添加/删除windows组件-选中internet信息服务IIS-详细信息-选择文件传输协议FTP(安装过程需要I386程序支撑)4、在A机中开启协议分析软件,进行数据包抓包。
5、在B机中的协议分析软件中利用工具栏中的TCP连接工具对A 发起连接在IP地址一栏中填入A的IP地址,端口填入FTP服务端口21,然后点击连接。
6、分析PC2中捕获到的三次握手报文。
分析TCP三次握手过程中第一个报文:SYN分析TCP三次握手过程中第二个报文:SYN|ACK分析TCP三次握手第三个报文:ACK7、通过分析,根据TCP报文格式和IP数据报格式填写如下表格:MAC帧格式如下:IP数据报格式如下: TCP报文格式如下:填写三次握手报文的相关信息:练习二:查看TCP连接超时重传过程1、查看B中ARP缓存记录,确保有A中ARP记录:APR -a2、将A从网络中断开,确保A不会对B发送的TCP连接请求进行回应。
tcpip协议分析_实验1_Wireshark安装和使用
《TCP/IP协议分析》实验报告实验序号:1 实验项目名称:Wireshark安装和使用20网工学号姓名专业、班实验地点指导教师实验时间2022-09-05一、实验目的、内容与步骤、实验结果分析1.动手项目1-1安装Wireshark项目目标:为本课程的需要安装Wireshark软件。
过程描述:本项目介绍在你的计算机上如何安装Wireshark协议分析器。
Wireshark 将自动安装WinPcap (一种捕获网络数据流的Windows驱动程序)。
安装完成2.动手项目1-2捕获基本数据包,查看基本数据包和统计信息项目目标:学习如何在Wireshark中捕获数据包,查看数据包的相关信息以及Wireshark的统计功能。
过程描述:本项目介绍如何使用Wireshark 捕获基本数据包。
然后,本项目介绍数据包中包含的信息,以及如何查看Wireshark的统计信息。
2.1显示数据流量2.2所捕获数据包的基本信息2.3在Protocal协议一栏看出Wireshark识别出的协议有:SSDP、ARP、LOOP、OSPF、ICMPv6等。
2.4Wireshark识别出的会话2.5查看Wireshark窗口中部数据包详情窗格的Ethernet II字段的相关值,以便识别将数据包发送到网络上的工作站的MAC地址(单击右向尖括号展开Ethernet II字段)2.6缓冲区中数据包的数据包长度分布分析:从图中看出,IPV4的协议UDP所占分组百分比最高,IPV6按字节百分比占比高在跟踪缓冲区中,IPV4数据包长度最常见。
2.7检查Wireshark窗口底部的数据包字节窗格,查看有关跟踪缓冲区内容的摘要信息。
滚动摘要信息,认识跟踪缓冲区中看到的通信类型。
2.8Wireshark每秒钟捕获数据包数量的图形展示3.动手项目1-3选择一个过滤器并捕获数据包项目目标:学习如何在Wireshark中选择过滤器过程描述:本项目介绍如何在Wiresharte中选择一个过滤器,以便限定捕获的数据包类型。
TCPIP协议分析实验
TCPIP协议分析实验一、实验目的本实验旨在通过对TCP/IP协议的分析,加深对网络协议的理解,掌握抓包工具的使用以及网络通信的过程。
二、实验器材1.计算机一台2.网络抓包工具三、实验内容1.实验前准备首先需要在计算机上安装网络抓包工具,如Wireshark等。
2.抓包过程使用抓包工具在计算机上开启抓包功能,并进行网络通信。
例如使用浏览器访问一个网页、发送电子邮件等。
3.抓包数据分析将抓包工具捕获的数据进行分析。
根据每个包的协议类型、源地址、目的地址、数据内容等信息,逐一分析TCP/IP协议的流程和通信过程。
四、实验结果与分析通过抓包工具捕获的数据,我们可以得到以下实验结果和分析:1.协议类型分析根据抓包得到的数据,可以看到TCP、IP等协议的使用情况。
TCP协议是一种可靠的传输协议,用于确保数据能够准确无误地传输。
IP协议则是一种网络层协议,用于将数据包从一个主机传输到另一个主机。
2.源地址与目的地址分析通过抓包数据中的源地址和目的地址,可以了解数据包的发送方和接收方。
源地址是发起通信的主机,目的地址是接收通信的主机。
通过分析源地址和目的地址,可以确定通信的源和目的地,进而了解通信的主要参与者。
3.数据包的信息分析根据抓包数据中的数据内容,我们可以了解通信中所传输的具体信息。
例如,对于网页访问,可以从抓包数据中看到HTTP协议的使用,以及网页的具体内容。
对于电子邮件,可以从抓包数据中看到SMTP协议的使用,以及邮件的具体内容。
五、实验总结通过以上分析,我们可以了解到TCP/IP协议在网络通信中的重要性和应用情况。
TCP/IP协议是一种常用的网络协议,广泛应用于互联网、局域网等各类网络中。
通过对抓包数据的分析,我们可以进一步了解网络通信过程中各个环节的工作原理和特点,提高网络故障排除和优化的能力。
此外,实验过程中还需注意保护个人隐私和数据安全,避免在未经授权的情况下对他人进行抓包和分析。
六、参考资料1.《计算机网络》(第七版)-谢希仁。
计算机网络课程设计-编程实现简单的TCP协议分析器
编程实现简单的TCP协议分析器一、问题描述编程实现简单的TCP协议分析器,TCP协议分析器是一种用于监督和跟踪网络活动的诊断工具,它从局域网中抓取IP数据包,并对它进行分析得到相应的头部信息,过滤TCP包进行分析,得到TCP包的相应信息。
二、基本要求1.利用原始套接字实现简单的TCP协议分析器。
2.系统功能包括:2.1 原始套接字与网卡绑定,并接收流经网卡的所有数据包;2.2 对数据包进行分析以获得源IP地址和目的IP地址;2.3 对TCP Segment进行分析以获得其首部详细信息;2.4 显示分析结果。
3 建议使用VC++。
三、设计思想TCP协议的数据传送程序是由二个子程序组成的。
也可以看成是服务器端程序和客户端程序,其中:服务器端程序的功能是侦听端口号,接收远程主要的TCP连接申请,并接收远程主机传送来的文字数据。
另外一个子程序,也就是所谓的客户端程序,主要实现向网络的远程主机提出TCP连接申请。
程序利用原始套接字抓取局域网中的IP包。
TCP协议分析器实现了sniffer的一部分功能。
而sniffer的工作原理是:1. 把网卡置于混杂模式;2. 捕获数据包;3. 分析数据包。
Raw Socket: 原始套接字可以用它来发送和接收 IP 层以上的原始数据包, 如 ICMP, TCP, UDP等。
四、系统结构(1)Pcap_addr描述网络接口地址;(2)pcap_pkthdr用来描述每个捕获到的数据包的基本信息;(3)int_pcaplookupnet获取网络地址和网络掩码;(4)int_pcaploop循环捕获网络数据包,直到遇到错误或满足退出条件;(5)pcap_t* pcap_open_dead构造一个libpcap句柄。
五、程序流程(或模块划分)六、源程序#include "pcap.h"struct ether_header{u_int8_t ether_dhost[6];/* 目的以太网地址*/u_int8_t ether_shost[6];/* 源以太网地址*/u_int16_t ether_type;/* 以太网类型*/};struct arp_header{u_int16_t arp_hardware_type;/* 硬件类型*/u_int16_t arp_protocol_type;/* 协议类型*/u_int8_t arp_hardware_length;/* 硬件地址长度*/u_int8_t arp_protocol_length;/* 协议地址长度*/u_int16_t arp_operation_code;/* 操作码*/u_int8_t arp_source_ethernet_address[6];/* 源以太网地址*/u_int8_t arp_source_ip_address[4];/* 源IP地址*/u_int8_t arp_destination_ethernet_address[6];/* 目的以太网地址*/u_int8_t arp_destination_ip_address[4];/* 目的IP地址*/};struct ip_header{#if defined(WORDS_BIGENDIAN)u_int8_t ip_version: 4,/* 版本*/ip_header_length: 4;/* 首部长度*/#elseu_int8_t ip_header_length: 4, ip_version: 4;#endifu_int8_t ip_tos;/* 服务质量*/u_int16_t ip_length;/* 长度*/u_int16_t ip_id;/* 标识*/u_int16_t ip_off;/* 偏移*/u_int8_t ip_ttl;/* 生存时间*/u_int8_t ip_protocol;/* 协议类型*/u_int16_t ip_checksum;/* 校验和*/struct in_addr ip_souce_address;/* 源IP地址*/struct in_addr ip_destination_address;/* 目的IP地址*/};struct udp_header{u_int16_t udp_source_port;/* 源端口号*/u_int16_t udp_destination_port;/* 目的端口号*/u_int16_t udp_length;/* 长度*/u_int16_t udp_checksum;/* 校验和*/};struct tcp_header{u_int16_t tcp_source_port;/* 源端口号*/u_int16_t tcp_destination_port;/* 目的端口号*/u_int32_t tcp_sequence_liuzhen;/* 序列号*/u_int32_t tcp_acknowledgement;/* 确认序列号*/#ifdef WORDS_BIGENDIANu_int8_t tcp_offset: 4,/* 偏移*/tcp_reserved: 4;/* 未用*/#elseu_int8_t tcp_reserved: 4,/* 未用*/tcp_offset: 4;/* 偏移*/#endifu_int8_t tcp_flags;/* 标记*/u_int16_t tcp_windows;/* 窗口大小*/u_int16_t tcp_checksum;/* 校验和*/u_int16_t tcp_urgent_pointer;/* 紧急指针*/};struct icmp_header{u_int8_t icmp_type;/* ICMP类型*/u_int8_t icmp_code;/* ICMP代码*/u_int16_t icmp_checksum;/* 校验和*/u_int16_t icmp_id;/* 标识符*/u_int16_t icmp_sequence;/* 序列码*/};void tcp_protocol_packet_callback(u_char *argument, const struct pcap_pkthdr *packet_header, const u_char *packet_content){struct tcp_header *tcp_protocol;/* TCP协议变量*/u_char flags;/* 标记*/int header_length;/* 长度*/u_short source_port;/* 源端口*/u_short destination_port;/* 目的端口*/u_short windows;/* 窗口大小*/u_short urgent_pointer;/* 紧急指针*/u_int sequence;/* 序列号*/u_int acknowledgement;/* 确认号*/u_int16_t checksum;/* 校验和*/tcp_protocol = (struct tcp_header*)(packet_content + 14+20);/* 获得TCP协议内容*/source_port = ntohs(tcp_protocol->tcp_source_port);/* 获得源端口*/destination_port = ntohs(tcp_protocol->tcp_destination_port);/* 获得目的端口*/header_length = tcp_protocol->tcp_offset *4;/* 长度*/sequence = ntohl(tcp_protocol->tcp_sequence_liuzhen);/* 序列码*/acknowledgement = ntohl(tcp_protocol->tcp_acknowledgement);/* 确认序列码*/windows = ntohs(tcp_protocol->tcp_windows);/* 窗口大小*/urgent_pointer = ntohs(tcp_protocol->tcp_urgent_pointer);/* 紧急指针*/flags = tcp_protocol->tcp_flags;/* 标识*/checksum = ntohs(tcp_protocol->tcp_checksum);/* 校验和*/printf("------- TCP协议-------\n");printf("源端口号:%d\n", source_port);printf("目的端口号:%d\n", destination_port);switch (destination_port){case 80:printf("上层协议为HTTP协议\n");break;case 21:printf("上层协议为FTP协议\n");break;case 23:printf("上层协议为TELNET协议\n");break;case 25:printf("上层协议为SMTP协议\n");break;case 110:printf("上层协议POP3协议\n");break;default:break;}printf("序列码:%u\n", sequence);printf("确认号:%u\n", acknowledgement);printf("首部长度:%d\n", header_length);printf("保留:%d\n", tcp_protocol->tcp_reserved);printf("标记:");if (flags &0x08)printf("PSH ");if (flags &0x10)printf("ACK ");if (flags &0x02)printf("SYN ");if (flags &0x20)printf("URG ");if (flags &0x01)printf("FIN ");if (flags &0x04)printf("RST ");printf("\n");printf("窗口大小:%d\n", windows);printf("校验和:%d\n", checksum);printf("紧急指针:%d\n", urgent_pointer);}void ip_protocol_packet_callback(u_char *argument, const struct pcap_pkthdr *packet_header, const u_char *packet_content){struct ip_header *ip_protocol;/* IP协议变量*/u_int header_length;/* 长度*/u_int offset;/* 偏移*/u_char tos;/* 服务质量*/u_int16_t checksum;/* 校验和*/ip_protocol = (struct ip_header*)(packet_content + 14);/* 获得IP协议内容*/checksum = ntohs(ip_protocol->ip_checksum);/* 获得校验和*/header_length = ip_protocol->ip_header_length *4;/* 获得长度*/tos = ip_protocol->ip_tos;/* 获得服务质量*/offset = ntohs(ip_protocol->ip_off);/* 获得偏移*/if (ip_protocol->ip_protocol==6){printf("----------- IP协议-----------\n");printf("版本号:%d\n", ip_protocol->ip_version);printf("首部长度:%d\n", header_length);printf("服务质量:%d\n", tos);printf("总长度:%d\n", ntohs(ip_protocol->ip_length));printf("标识:%d\n", ntohs(ip_protocol->ip_id));printf("偏移:%d\n", (offset &0x1fff) *8);printf("生存时间:%d\n", ip_protocol->ip_ttl);printf("协议类型:%d\n", ip_protocol->ip_protocol);printf("上层协议为TCP协议\n");printf("校验和:%d\n", checksum);printf("源IP地址:%s\n", inet_ntoa(ip_protocol->ip_souce_address));/* 获得源IP地址*/printf("目的IP地址:%s\n", inet_ntoa(ip_protocol->ip_destination_address));/* 获得目的IP地址*/}}void ethernet_protocol_packet_callback(u_char *argument, const struct pcap_pkthdr *packet_header, const u_char *packet_content){static int packet_number = 1;/* 数据包个数,静态变量*/u_short ethernet_type;/* 以太网类型*/struct ether_header *ethernet_protocol;struct ip_header *ip_protocol;/* IP协议变量*/u_int header_length;/* 长度*/u_int offset;/* 偏移*/u_char tos;/* 服务质量*/u_int16_t checksum;/* 校验和*/ip_protocol = (struct ip_header*)(packet_content + 14);/* 获得IP协议内容*/checksum = ntohs(ip_protocol->ip_checksum);/* 获得校验和*/header_length = ip_protocol->ip_header_length *4;/* 获得长度*/tos = ip_protocol->ip_tos;/* 获得服务质量*/offset = ntohs(ip_protocol->ip_off);/* 获得偏移*//* 以太网协议变量*/ethernet_protocol = (struct ether_header*)packet_content;ethernet_type = ntohs(ethernet_protocol->ether_type);/* 获得以太网类型*/if(ethernet_type==0x0800 && ip_protocol->ip_protocol==6){u_char *mac_string;/* 以太网地址*/printf("**************************************************\n");printf("捕获第%d个TCP网络数据包\n", packet_number);printf("捕获时间:\n");printf("%s", ctime((const time_t*) &packet_header->_sec));/* 获得捕获数据包的时间*/printf("数据包长度:\n");printf("%d\n", packet_header->len);printf("-------- 以太网协议--------\n");/* 获得以太网协议内容*/printf("类型:\n");printf("%04x\n", ethernet_type);printf("源以太网地址: \n");mac_string = ethernet_protocol->ether_shost;printf("%02x:%02x:%02x:%02x:%02x:%02x\n", *mac_string, *(mac_string + 1), *(mac_string + 2), *(mac_string + 3), *(mac_string + 4), *(mac_string + 5));/* 获得源以太网地址*/printf("目的以太网地址: \n");mac_string = ethernet_protocol->ether_dhost;printf("%02x:%02x:%02x:%02x:%02x:%02x\n", *mac_string, *(mac_string + 1), *(mac_string + 2), *(mac_string + 3), *(mac_string + 4), *(mac_string + 5));/* 获得目的以太网地址*/ip_protocol_packet_callback(argument, packet_header, packet_content);packet_number++;printf("**************************************************\n");}}void main(){pcap_t *pcap_handle;/* Winpcap句柄*/char error_content[PCAP_ERRBUF_SIZE];/* 存储错误信息*/char *net_interface;/* 网络接口*/struct bpf_program bpf_filter;/* BPF过滤规则*/char bpf_filter_string[] = "";/* 过滤规则字符串*/bpf_u_int32 net_mask;/* 掩码*/bpf_u_int32 net_ip;/* 网路地址*/net_interface = pcap_lookupdev(error_content);/* 获得可用的网络接口*/pcap_lookupnet(net_interface, &net_ip, &net_mask, error_content);/* 获得网络地址和掩码地址*/pcap_handle = pcap_open_live(net_interface, BUFSIZ, 1, 1, error_content);/* 打开网路接口*/pcap_compile(pcap_handle, &bpf_filter, bpf_filter_string, 0, net_ip);/* 编译BPF过滤规则*/pcap_setfilter(pcap_handle, &bpf_filter);/* 设置过滤规则*/if (pcap_datalink(pcap_handle) != DLT_EN10MB)return ;pcap_loop(pcap_handle, - 1, ethernet_protocol_packet_callback, NULL);/* 注册回调函数,循环捕获网络数据包,利用回调函数来处理每个数据包*/ pcap_close(pcap_handle);/* 关闭Winpcap操作*/}七、测试数据本地局域网IP数据包八、测试情况程序运行结果图:结论通过两周的课程设计,增强了我的实际动手能力,通过实际的编程整合串联了我所学到的知识。
实验4-捕获并分析TCP数据包和TCP三次握手及四次挥手过程
实验四捕获并分析TCP数据包和TCP三次握手和四次挥手过程一、实验目的通过网络嗅探器软件对网络数据进行监听和分析,加深对计算机网络中各层协议数据单元PDU的形象理解。
二、实验内容1、利用网络嗅探器软件(例如Iris、Sniffer、Ethereal、 wireshark等),获取TCP数据包,记录并分析各字段的含义。
2、打开一个网站,截取TCP数据包(至少三个),分析TCP三次握手建立连接和四次挥手释放连接的过程。
三、实验步骤1、安装数据包捕获软件wireshark。
2、启动捕获软件。
(1)开始捕获数据报:(2)打开一个网站,例:(3)对捕获的TCP数据包进行分析,并保存(4)对捕获的TCP三次握手建立连接的几个数据包进行分析,分别说明各数据包代表的意义和所属的三次握手的第几次。
四、实验分析1、设置显示过滤,只显示源地址是本机的http数据包,说明如何进行设置?答:若要设置只显示源地址是本机的http数据包,需使用以下ip.src==本机IP && http 2、点开软件捕获界面中包详细信息栏的TCP数据包:若想查看TCP数据包的内容,需点击前面的加号,则显示TCP报文段各字段的结构如下图所示:对照课本P202页:TCP报文段的结构图,如下图示:分析并记录说明,所捕获的数据包的在运输层TCP报文段中各字段的具体信息:①源端口号:49896。
每一个应用进程在运输层都对应一个端口号。
端口是运输层与应用层的服务接口。
运输层的复用和分用功能都要通过端口才能实现。
②目的端口号:80。
说明发送方请求的是一个web服务(http).③序号:0。
为了对发送的报文段进行可靠传输,对每个发送的报文段的第一个字节都进行编号,称为序号。
例如:一个报文段的序号值为301,携带的数据长度100字节;则下一个报文段的序号为401.④确认号:0。
为了告诉发送方,到目前为止,接收方按顺序接收的报文段达到多少,将下一个期望接收的报文段的第一个字节的编号作为确认号发给发送方。
网络协议分析——抓包分析 TCP、UDP、ARP、HTTP协议
网络协议分析——抓包分析班级:021231学号:姓名:目录一、TCP协议分析-------------------------------2二、UDP协议分析-------------------------------6三、ARP协议分析-------------------------------12四、HTTP协议分析------------------------------16一、TCP协议分析1.TCP协议:1.TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、基于IP的传输层协议,由IETF的RFC 793说明(specified)。
TCP在IP报文的协议号是6。
2.功能当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。
之后TCP把数据包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。
TCP为了保证报文传输的可靠[1] ,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。
然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。
在数据正确性与合法性上,TCP用一个校验和函数来检验数据是否有错误,在发送和接收时都要计算校验和;同时可以使用md5认证对数据进行加密。
在保证可靠性上,采用超时重传和捎带确认机制。
在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。
2.抓包分析:运输层:源端口:占2个字节。
00 50(0000 0000 0101 0000)目的端口:占2个字节。
f1 4c(1111 0001 0100 1100)序号:占4个字节。
实验十五 网络嗅探与Tcp协议分析
网络嗅探与协议分析(1)(Sniffer软件应用)一、实验目的和意义网络嗅探器sniffer可以监听到所有流经同一以太网网段的数据包,不管它的接收者或发送者是不是运行sniffer的主机。
通过在网络上拦截(接收)数据包并做出分析,来确定该数据包使用了什么协议,是TCP/IP协议,还是UDP协议等,并同时分析出不同数据包的结构,再从中得到具体的内容,如帧的源MAC和目的MAC地址、IP地址、TCP序号等,这些数据内容还可以是用户的帐号和密码,以及一些商用机密数据等。
sniffer几乎能得到以太网上传送的任何数据包,黑客也就会使用各种方法Sniffer是NAI公司推出的协议分析软件,它支持丰富的协议,在网络特殊应用尤其是在网络管理过程中,可以通过计算机的网络接口,从网络上截获目的地为其他计算机的数据报文,利用专家分析系统,对捕获到的数据帧进行快速解码分析,诊断收集到的数据,实时监控网络活动,网络运行状态和错误信息等,是网络管理的有力工具。
本实验通过sniffer软件的应用,监视并分析TCP/UDP应用层程序在客户端和服务器间的交互(如Telnet、HTTP、FTP、DNS等的应用),加强对TCP连接中的三次握手过程及相关网络原理、协议及相关技术的掌握,同时熟练掌握涉及网络管理、网络安全方面的技术技能,为今后的网络管理、网络开发应用打下良好基础。
二、实验原理1、网络嗅探网络中处于同一个网段上的所有网络接口都有一个不同的硬件地址,每个网络还有一个广播地址。
在正常工作情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的报文则不予响应,因为此网络接口应该只响应: 1)帧的目标地址和本机网络接口的硬件地址相匹配;2)帧的目标区域具有"广播地址",这样的两种数据帧。
在接收到上面两种情况的数据包时,nc通过cpu产生一个硬件中断,由操作系统将帧中所包含的数据传送给系统进一步处理。
tcp抓包Wireshark使用
tcp抓包Wireshark使用TCP抓包是网络管理员和分析师中常用的一种技术,用于捕获网络上的数据包并进行分析。
Wireshark是一个流行的开源网络协议分析工具,可以在多个平台上使用。
安装完成后,启动Wireshark。
打开Wireshark后,将弹出一个对话框,询问您要捕获哪个网络接口上的数据包。
在对话框的顶部,有一个下拉菜单列出可用的网络接口。
选择要进行抓包的网络接口。
如果您不确定应使用哪个接口,请选择默认接口。
在选择接口后,点击“Start”按钮开始抓包。
此时,Wireshark将开始捕获网络接口上的数据包。
实时捕获数据包后,Wireshark将在主窗口中显示捕获的数据包列表。
每个数据包的详细信息(如源和目的IP地址、源和目的端口等)将显示在列表中。
您可以通过单击列表中的数据包以查看其详细信息。
Wireshark提供了多个选项卡,用于查看和分析数据包的不同方面,如帧、协议、源和目的信息等。
除了捕获数据包外,Wireshark还提供了许多其他功能,如过滤数据包、统计和分析传输速率等。
为了更好地理解数据包的内容和流量,您可以使用Wireshark的过滤器功能。
过滤器允许您仅显示满足特定条件的数据包,从而减少对捕获到的大量数据包的处理。
要使用过滤器,请在Wireshark的过滤栏中键入特定的过滤条件,并按“Enter”键应用过滤器。
Wireshark将只显示满足过滤条件的数据包。
Wireshark还提供了许多高级功能,如统计和图形化分析网络流量、导出数据包等。
这些功能可以帮助您更好地理解网络中的通信模式和性能问题。
在分析和故障排除网络问题时,Wireshark往往是一项强大的工具。
它可以帮助您查看和分析数据包中的错误、重传、丢包等,以及识别与网络性能相关的问题。
总结一下,Wireshark是一个功能强大的网络协议分析工具,可用于捕获和分析网络中的数据包。
通过了解如何使用Wireshark来执行TCP抓包操作,您可以更好地了解和维护网络性能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第23卷 第2期2006年6月黄石教育学院学报JournalofHuangshiEducationC ollegeV ol.23,N o.2Jun.,2006,084-092利用网络协议分析器分析TCPΠIP协议杨洪春Ξ(黄石教育学院计算机系,湖北 黄石 435000) [摘要]本文简单探讨了tcpΠip协议,并利用网络协议分析器对Ieternet网络中数据包实例进行了解析。
[关键词]tcpΠip;网络协议分析器;数据包;解析[中图分类号]TP393[文献标识码]A [文章编号]1671-7422(2006)02-0084-09TCPΠIP协议是互联网的基石,甚至可以说没有TCPΠIP协议就没有互联网的今天。
TCPΠIP协议的重要性不言而喻。
如果学习TCPΠIP协议只是停留在书本上的描叙,会很抽象,也不会留下很深的印象。
本文拟结合具体的实例,利用协议分析工具,分析具体的数据包,对照学习TCPΠIP协议,同时看到实际的数据传输过程。
一、TCPΠIP的基本原理我们平常提到的TCPΠIP协议实际是指有四层结构的协议族。
如下图所示:TCPΠIP层主要协议主要功能应用层HTTP、TE LNET DNS S NMP FTP向传输层传送数据或从应用程序获得数据传输层TCP UCP 实现源主机和目的主机之间对等实体间会话提供端到端的连接TCP要实现差错控制流量控制网络层IP、IC MP、IG MP异种网络互联、路由选择提供点到点的连接网络接口层ETHERNET PPP FDDI、AT M接入不同结构的网络以利用网络传递IP分组tcp、ip只是其中的两个重要的协议。
当中的每一个协议都有各自不同的功能,联合起来工作使互联网运转起来。
这里我们要注意分层的概念,每一个协议处于各自的层次,不同的层次完成不同的工作。
比如ip协议在网络层,ip协议是关于分组格式和协议的定义,分组路由和避免拥塞是本层的主要问题。
他们之间的关系如图(1)所示:Ξ[收稿日期]2006—04—10[作者简介]杨洪春(1966- ),男,湖北黄石人,黄石教育学院计算机系讲师,武汉大学计算机学院研究生班学员。
在实际的应用中,应用程序向网络发送数据时,数据是自上而下的流动,在每一层上加上相应的头部信息(有的要加尾部信息),直至到最后被当作一串比特流送入网络。
而从网络接受信息则是一个相反的过程,自下而上,每一层剥除加上的头部和尾部。
如图(2)所示:TCP 传给IP 的数据单元称作TCP 报文段(TCP SEG ME NT )或简称为TCP 段。
I P 传给网络接口层的数据单元称作IP 数据报(IP DAT 2AG RAM )。
通过以太网传输的比特流称作帧(ETHERNET Frame )。
在垂直方向上,计算机网络体系结构是分层的层次结构。
数据在层次间流动。
每一层都有与其相邻层的接口。
通过接口,向上一层提供服务或要求下一层提供服务。
为了通信,两个系统必须在各层之间传递数据、指令、地址等信息。
通信的逻辑流程与真正实现的数据流是不同。
虽然通信流程垂直通过各层次,但每一层都在逻辑上能够直接与远程计算机系统的相应层直接通信。
从图(3)可以看出,通讯实际上是按垂直方向进行的,但在逻辑上通信是在同级进行的。
二、实例分析为了进行更进一步的说明,需要抓取在网络上传输的数据。
TCP ΠIP 的应用层协议有多个,HTTP 协议是一个面向连接的协议,具有一定的代表性,这里我们只对HTTP 数据流进行分析。
选用IRIS V4.07作为协议分析工具。
这是一款使用方便、功能强大的网络嗅探器。
操作系统是WI NDOWS XP SP2。
运行IRIS 的主机位于以太网内,具有内网的IP 。
以下的分析我们先抓取数据包,然后再对它们进行解读。
图(4)・58・第2期 黄石教育学院学报 1、IRIS 的配置IRIS 具有网络监听的功能,此状态下IRIS 会抓取本网段所有的数据包。
影响我们的分析,必须进行设置,只抓取到达本机IP 的HTTP 协议的数据包。
运行IRIS ,用热键CTR L +B 弹出IRIS 地址表,在表中填写机器的IP 地址,这里我们运行IRIS 的主机IP 为10.12.33.139,为了对抓取的包看得更清楚不要添主机的名字(name ),设置好关闭此窗口。
回到IRIS 的主窗口,点击Filters 菜单项,在下拉的菜单中选择only -http.ftl 项。
这是IRIS 提供的过滤设置,此设置只抓取HTTP 协议的数据包。
2、抓包在IRIS 的主窗口,点击工具栏中的开始按钮,开始抓包。
转到浏览器界面,输入任意一个常用的网址,我们输入的网址是http :ΠΠw w .待此页面在浏览器中完成后回到IRIS 主窗口,可以看到抓取的多个包。
如果此时没有再抓取新包,可以关闭WE B 浏览器,再转到IRIS 主窗口按下停止按钮。
图(5)显示的是IRIS 抓取数据包后的窗口画面。
3、过程描叙为了更好的分析协议,我们先描述一下上述例子数据的传输步骤。
如图(6)所示:图(5)1)应用软件即WE B 浏览器向DNS 服务器发出请求,要求提供发往其的Web 地址的相应的IP 地址。
2)DNS 服务器收到请求后,发回相应的IP 地址。
3)TCP 用所获得的IP 向WE B 服务器发出连接请求。
双方建立连接。
4)WE B 服务器向目的主机传送数据。
5)目的主机向WE B 服务器发送数据传送完成确认。
4、过程分析为了更清晰的解释数据传送的过程,我们在所抓取的数据包中取了四组数据,分别是向DNS 服务器询问IP 地址、建立连接、传送数据和连接终止。
以下的分析按照显示数据包、解释该数据包、逐层分析包的内容的顺序进行。
1)请求DNS 服务器提供Web 地址的IP 地址并获得回答。
图(6)下列表格显示为抓取的二个相应的数据包。
No :S ource M AC address Dest M AC address T ype Protocol S ource IP add Dest IP address S ource port Dest port SE Q ACK Size 800:14:85:B4:70:CE 00:E0:FC:69:31:D5IP UDP ->DNS 10.12.33.139211.137.64.163102553 ——— ——— 719H UAWEI -6931d500:14:85:B4:70:CE IPUDP ->DNS 211.137.64.16310.12.33.139531025 ——— ——— 354・68・ 杨洪春:利用网络协议分析器分析TCP ΠIP 协议 第2期在第一行数据中,源端主机的M AC 地址是00:14:85:B4:70:CE ,这是上网主机网卡的M AC 地址。
目的端主机的M AC 地址是00:E0:FC :69:31:D5,它是主机所在的局域网网段交换机的M AC 地址。
主机在开机初始化的过程时,已获得了这部分信息,即了解本主机所处的网络环境。
后面有目的地的IP 地址,这个地址明显不在本局域网中,另外这个数据包是发向DNS 服务器,请求提供解析服务的,所以此数据包直接交给交换机,由它再往上递交。
从这一行数据中,我们还可以看到,它采用的是UDP 协议,源端口号是1025,目的端口号是53号,即公开的端口号。
第二行数据是DNS 服务器的回答,所以源地址和目的地址等正好掉换过来。
图(7)是第一行数据所代表的数据包用IRIS 分析的结果。
它有ETHERNET 、TCP 和IP 头部,数据部分是一个要求获知某网址IP 的查询。
TCP 和IP 头部在下面分析,这里看看ETHERNET 头部信息,括号内的数为该字段所占字节数,以太网报头中的前两个字段是以太网的源地址和目的地址。
两个字节长的以太网帧类型表示后面数据的类型。
对于IP 数据报,这个数字是0800。
在查询部分可以看到请求查询IP 的网址是WWW.265.C OM 图(8)是DNS 服务器给出的回答。
从它的DOM AI N NAME SY S 2TE M 部分可以看到对指定的网址给出了5个IP 地址。
2)建立连接。
图(8)下面的表格给出双方建立联系的过程。
我们选用了和位于IP 地址是219.238.238.113的WE B 服务器建立联系的数据。
S ource M AC address Dest M AC address T ype Protocol S ource IP address Dest IP address S our port Dest port SE Q ACK 00:14:85:B4:70:CE H UAWEI -6931d5IPT CP ->HTTP (....S.)10.12.33.139219.238.238.1131256 8026447476560H UAWEI -6931d500:14:85:B4:70:CE IP T CP ->HTTP (.A..S.)219.238.238.11310.12.33.13980 12562265471513264474765700:14:85:B4:70:CEH UAWEI -6931d5IPT CP ->HTTP (.A....)10.12.33.139219.238.238.1131256 8026447476572265471514这是TCP 建立数据传输通道的三次握手过程。
TCP 的数据包是靠IP 协议来传输的。
但IP 协议提供的是无连接的服务,只管把数据送出去,不能保证IP 数据报能成功地到达目的地,保证数据的可靠传输是靠TCP 协议来完成的。
当接收端收到来自发送端的信息时,接受端将发送一条应答信息,向对方表示已收到你的信息了。
这三组数据将能看到这・78・第2期 黄石教育学院学报 个过程。
TCP 是一个面向连接的协议。
无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。
建立连接的过程就是三次握手的过程。
下面是对这个过程的详细分析1))请求端为IP 地址10.12.33.139的主机发送一个初始序号(SE Q )2644747656给IP 地址219.238.238.113的WE B 服务器。
2))WE B 服务器收到这个序号后,将此序号加1值为2644747657作为应答信号(ACK ),同时随机产生一个初始序号(SE Q )2265471513,这两个信号同时发回到请求端主机,意思为:“消息已收到,让我们的数据流以2265471513这个数开始。
”3))请求端主机收到后将确认序号设置为服务器的初始序号(SE Q )2265471513加1为2265471514作为应答信号。