Wireshark使用教程详解,带实例

合集下载

Wireshark使用中文教程

Wireshark使用中文教程

第 1 章介绍1.1. 什么是WiresharkWireshark 是网络包分析工具。

网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。

你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样。

(当然比那个更高级)过去的此类工具要么是过于昂贵,要么是属于某人私有,或者是二者兼顾。

Wireshark出现以后,这种现状得以改变。

Wireshark可能算得上是今天能使用的最好的开元网络分析软件。

1.1.1. 主要应用下面是Wireshark一些应用的举例:∙网络管理员用来解决网络问题∙网络安全工程师用来检测安全隐患∙开发人员用来测试协议执行情况∙用来学习网络协议除了上面提到的,Wireshark还可以用在其它许多场合。

1.1.2. 特性∙支持UNIX和Windows平台∙在接口实时捕捉包∙能详细显示包的详细协议信息∙可以打开/保存捕捉的包∙可以导入导出其他捕捉程序支持的包数据格式∙可以通过多种方式过滤包∙多种方式查找包∙通过过滤以多种色彩显示包∙创建多种统计分析∙…还有许多不管怎么说,要想真正了解它的强大,您还得使用它才行图 1.1. Wireshark捕捉包并允许您检视其内1.1.3. 捕捉多种网络接口Wireshark 可以捕捉多种网络接口类型的包,哪怕是无线局域网接口。

想了解支持的所有网络接口类型,可以在我们的网站上找到/CaptureSetup/NetworkMedia.1.1.4. 支持多种其它程序捕捉的文件Wireshark可以打开多种网络分析软件捕捉的包,详见???1.1.5. 支持多格式输出Wieshark可以将捕捉文件输出为多种其他捕捉软件支持的格式,详见???1.1.6. 对多种协议解码提供支持可以支持许多协议的解码(在Wireshark中可能被称为解剖)???1.1.7. 开源软件Wireshark是开源软件项目,用GPL协议发行。

wireshark抓包教程

wireshark抓包教程

wireshark抓包教程Wireshark是一款常用的网络分析工具,它可以用来抓取网络数据包,并对网络通信进行分析和故障排查。

本文将为大家介绍使用Wireshark进行抓包的基本步骤和注意事项。

第一步:安装Wireshark首先,你需要在Wireshark官网下载并安装最新版本的软件。

安装完成后,打开Wireshark。

第二步:配置网络接口在Wireshark界面的左上角选择合适的网络接口,比如网卡或者无线网卡接口。

一般来说,如果你的电脑只有一个网卡,这个选项将自动选择。

如果有多个网卡,可以通过点击菜单栏的"捕获"->"选项",在弹出的对话框中选择合适的网卡接口。

第三步:开始抓包点击Wireshark界面的“开始”按钮,在弹出的对话框中选择保存抓包文件的路径和文件名。

你可以选择将数据包保存到本地文件,也可以直接在Wireshark界面中查看抓包数据。

第四步:过滤数据包Wireshark抓包时会记录所有经过网络接口的数据包,如果网络通信比较频繁,抓包文件可能会非常庞大。

为了便于分析,我们可以使用过滤器来筛选出特定的数据包。

在Wireshark界面的过滤栏中输入过滤器规则,比如可以输入"tcp"来只展示TCP数据包,或者输入IP地址来只展示与该地址相关的数据包。

第五步:停止抓包当你想要停止抓包时,可以点击Wireshark界面的“停止”按钮,或者按下快捷键Ctrl+E。

第六步:数据包分析在Wireshark界面中,你可以看到抓包数据的详细信息,包括源地址、目的地址、协议类型、数据包长度等等。

通过点击各个字段,你可以查看详细的协议解析信息。

比如,你可以查看TCP数据包的源端口、目的端口、TCP标志位等信息,或者查看HTTP数据包的请求头和响应头。

第七步:保存和导出数据包如果你需要保存抓包数据,可以点击Wireshark界面上方的“保存”按钮,将抓包数据保存为pcapng格式的文件。

wireshark使用教程

wireshark使用教程

wireshark使用教程Wireshark是一款开源的网络协议分析工具,可以用于捕获和分析网络通信数据包。

下面是一个简单的Wireshark使用教程:1. 下载和安装:可以从Wireshark官网下载适用于您操作系统的安装包,并按照安装向导进行安装。

2. 启动Wireshark:安装完成后,双击桌面上的Wireshark图标启动程序。

3. 选择网络接口:Wireshark会自动弹出一个“Interface List”窗口列出可用的网络接口。

选择您要进行分析的网络接口,并点击“Start”按钮开始捕获数据包。

4. 捕获数据包:一旦开始捕获数据包,Wireshark将开始显示捕获到的数据包。

您可以在“Capture”菜单中选择“Stop”来停止捕获。

在捕获过程中,您可以使用过滤器功能来过滤展示的数据包。

5. 分析数据包:Wireshark捕获到的数据包会以表格的形式展示,每一行代表一个数据包。

您可以选择某个数据包进行详细分析,在右侧的“Packet Details”窗口中查看其详细内容。

6. 过滤数据包:Wireshark支持使用过滤器来只显示特定条件下的数据包。

在界面上方的“Filter”栏输入你要过滤的条件,并按下“Enter”即可。

例如,输入“ip.addr==192.168.0.1”将只显示与IP地址为192.168.0.1相关的数据包。

7. 分析协议:Wireshark可以解析多种常见的网络协议,您可以在“Statistics”菜单中选择“Protocol Hierarchy”来查看分析结果。

这将显示每个协议的使用情况及其占据的网络流量。

8. 导出数据包:如果您想要保存分析结果,可以使用Wireshark的导出功能。

在菜单中选择“File”->“Export Packet Dissections”来将数据包以不同的格式(如txt、csv、xml)导出至本地存储。

以上就是一个简单的Wireshark使用教程,希望能对您使用Wireshark进行网络数据包分析有所帮助。

Wireshark使用教程详解,带实例

Wireshark使用教程详解,带实例

Wireshark教程带实例第 1 章介绍1.1. 什么是WiresharkWireshark 是网络包分析工具。

网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。

你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样。

(当然比那个更高级)过去的此类工具要么是过于昂贵,要么是属于某人私有,或者是二者兼顾。

Wireshark出现以后,这种现状得以改变。

Wireshark可能算得上是今天能使用的最好的开元网络分析软件。

1.1.1. 主要应用下面是Wireshark一些应用的举例:•网络管理员用来解决网络问题•网络安全工程师用来检测安全隐患•开发人员用来测试协议执行情况•用来学习网络协议除了上面提到的,Wireshark还可以用在其它许多场合。

1.1.2. 特性•支持UNIX和Windows平台•在接口实时捕捉包•能详细显示包的详细协议信息•可以打开/保存捕捉的包•可以导入导出其他捕捉程序支持的包数据格式•可以通过多种方式过滤包•多种方式查找包•通过过滤以多种色彩显示包•创建多种统计分析•…还有许多不管怎么说,要想真正了解它的强大,您还得使用它才行图 1.1. Wireshark捕捉包并允许您检视其内1.1.3. 捕捉多种网络接口Wireshark 可以捕捉多种网络接口类型的包,哪怕是无线局域网接口。

想了解支持的所有网络接口类型,可以在我们的网站上找到/CaptureSetup/NetworkMedia.1.1.4. 支持多种其它程序捕捉的文件Wireshark可以打开多种网络分析软件捕捉的包,详见1.1.5. 支持多格式输出Wieshark可以将捕捉文件输出为多种其他捕捉软件支持的格式,详见1.1.6. 对多种协议解码提供支持可以支持许多协议的解码(在Wireshark中可能被称为解剖)1.1.7. 开源软件Wireshark是开源软件项目,用GPL协议发行。

01-Wireshark教程和3个实例

01-Wireshark教程和3个实例

Wireshark教程一、界面二、认识数据包网络的7层次结构:物理层、数据链路层、网络层、传输层、表示层、会话层、应用层物理层数据帧概况:数据链路层以太网帧头部信息MAC地址:是网卡的物理地址前3组是表示生产厂家、后3组是厂家对网卡的编号IP地址是我们定义的,可以随便更改ARP协议就是用来对二者进行转换的互联网层IP包头部信息其它内容三、过滤器设置过滤器的区别捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中。

需要在开始捕捉前设置。

显示过滤器(DisplayFilters):在捕捉结果中进行详细查找。

他们可以在得到捕捉结果后随意修改。

那么我应该使用哪一种过滤器呢?两种过滤器的目的是不同的。

捕捉过滤器是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件。

显示过滤器是一种更为强大(复杂)的过滤器。

它允许您在日志文件中迅速准确地找到所需要的记录。

两种过滤器使用的语法是完全不同的。

显示过滤器snmp || dns || icmp//显示SNMP或DNS或ICMP封包。

ip.addr == 10.1.1.1//显示来源或目的IP地址为10.1.1.1的封包。

ip.src==172.16.1.102 //显示来源是172.16.1.102的数据包ip.src != 10.1.2.3 or ip.dst != 10.4.5.6//显示来源不为10.1.2.3或者目的不为10.4.5.6的封包。

ip.src != 10.1.2.3 and ip.dst != 10.4.5.6 //显示来源不为10.1.2.3并且目的IP不为10.4.5.6的封包。

tcp.port == 25//显示来源或目的TCP端口号为25的封包。

tcp.dstport == 25//显示目的TCP端口号为25的封包。

tcp.flags//显示包含TCP标志的封包。

tcp.flags.syn == 0x02//显示包含TCP SYN标志的封包。

Wireshark入门教程及破解

Wireshark入门教程及破解
Hide capture info dialog (不显示捕获的数据包 的数量的统计数据)
开始抓包
Start
停止抓包
Stop
Display filter
Display filter
此filter非彼filter Capture filter vs Display filter
• Capture filter 在抓包之前设置,是第一层过滤器,避免抓到大量的无 用数据包。 • Display filter在抓包后设置,是第二层过滤器,过滤规则更细,帮助迅 速准确地找到所需记录。
Tips
当使用关键字作为值时,需使用反斜杠“\”。
“ether proto \ip” (与关键字“ip”相同)。
这样写将会以IP协议作为目标。
“ip proto \icmp” (与关键字“icmp”相同)。 这样写将会以ping工具常用的icmp作为目标。 可以在“ip”或“ether”后面使用“multicast”及“broadcast”关键字。当您想 排除广播请求时,"no broadcast"就会非常有用。
Tips
由于网桥工作在网络的第二层,所以两块物理网卡和网桥的IP地址可以 设置成和客户不同的网段地址,抓包的计算机本身不能访问客户网络, 只是作为一个二层的桥接设备。
如果让抓包计算机也能够访问客户网络,只需在网桥上设置一个能够 访问客户网络的有效IP地址即可。
抓包时可以选择任意一个物理网卡进行抓包,不能选择网桥抓包。
matches
符合
Display filter
查找数据数 据包中包含 Ox 11:bb 的 TCP数据包
Display filter
Logical expressions(逻辑运算符)

Wireshark使用教程详解带实例

Wireshark使用教程详解带实例

Wireshark使用教程详解带实例Wireshark是一款开源网络分析工具,它能够捕获和分析网络流量,使用户能够深入了解网络通信过程中发生的问题和异常。

本文将详细介绍Wireshark的使用方法,并通过实例演示其在网络故障排除和网络性能优化中的应用。

一、Wireshark安装和准备工作二、捕获和过滤数据包Wireshark具有强大的过滤功能,可以根据多种条件过滤所捕获的数据包,以减少不必要的数据包显示。

在捕获界面的过滤栏中输入过滤表达式,如“ip.addr==192.168.0.1”以显示所有源或目标IP地址为192.168.0.1的数据包。

三、分析数据包1. 分析摘要面板(Summary)摘要面板显示了捕获数据包的概要信息,如协议、源和目标地址、数据包大小等。

通过查看该面板可以迅速了解网络通信中所使用的协议和各个数据包的交互情况。

2. 分层面板(Packet List)分层面板以树状结构显示了选定数据包的详细信息。

它将数据包分为各个协议层次,并展开显示每个层次的具体字段信息。

用户可以展开或折叠每个协议层次,以查看其所包含的字段详细信息。

3. 字节流面板(Bytes)字节流面板以十六进制和ASCII码显示了选定数据包的原始数据内容。

用户可以通过该面板查看数据包的详细内容,并进一步分析其中的问题。

4. 统计面板(Statistics)统计面板提供了关于捕获数据包的各种统计信息。

用户可以查看每个协议的数据包数量、平均包大小、传输速率等。

此外,Wireshark还提供了更高级的统计功能,如流量图表、分析数据包时间间隔等。

四、实例演示为了更好地说明Wireshark的使用方法,我们将以现实应用场景为例进行实例演示。

假设我们在一个企业内部网络中发现了网络延迟问题,我们希望通过Wireshark来定位问题的根源。

首先打开Wireshark并选择要监听的网络接口,然后开始捕获数据包。

在捕获过程中,我们注意到在与一些服务器的通信中出现了较长的延迟。

wireshark抓包教程

wireshark抓包教程

wireshark抓包教程Wireshark 抓包教程:1. 下载安装 Wireshark:从官方网站下载最新版本的 Wireshark 并安装在您的计算机上。

2. 启动 Wireshark:打开 Wireshark 软件,您将看到一个主界面。

3. 选择网络接口:在 Wireshark 左上角的"捕获选项"中,选择要抓取数据包的网络接口。

如果您使用有线连接,选择相应的以太网接口;如果您使用无线网络,选择无线网卡接口。

4. 开始捕获数据包:点击"开始"按钮来开始捕获数据包。

Wireshark 将开始监听选定的网络接口上的数据传输。

5. 分析捕获的数据包:在捕获数据包的过程中,Wireshark 将显示捕获的数据包详细信息。

您可以使用过滤器来筛选显示特定协议的数据包。

6. 分析数据包内容:双击某个数据包,Wireshark 将显示详细的包内容,包括源地址、目的地址、协议类型等信息。

您还可以查看数据包的各个字段。

7. 导出数据包:如果您需要将捕获的数据包保存到本地供后续分析或分享,可以使用"文件"菜单中的"导出"选项。

8. 终止捕获数据包:点击"停止"按钮来终止捕获数据包。

停止捕获后,Wireshark 将显示捕获过程的统计信息,如捕获的数据包数量、捕获的数据包大小等。

9. 清除捕获数据包:在捕获数据包后,如果您想清空捕获的数据包列表,可以选择"捕获"菜单中的"清除列表"。

以上就是使用 Wireshark 进行抓包的基本教程。

通过分析捕获的数据包,您可以深入了解网络通信过程,并解决网络故障或安全问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Wireshark教程带实例第 1 章介绍1.1. 什么是WiresharkWireshark 是网络包分析工具。

网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。

你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样。

(当然比那个更高级)过去的此类工具要么是过于昂贵,要么是属于某人私有,或者是二者兼顾。

Wireshark出现以后,这种现状得以改变。

Wireshark可能算得上是今天能使用的最好的开元网络分析软件。

1.1.1. 主要应用下面是Wireshark一些应用的举例:•网络管理员用来解决网络问题•网络安全工程师用来检测安全隐患•开发人员用来测试协议执行情况•用来学习网络协议除了上面提到的,Wireshark还可以用在其它许多场合。

1.1.2. 特性•支持UNIX和Windows平台•在接口实时捕捉包•能详细显示包的详细协议信息•可以打开/保存捕捉的包•可以导入导出其他捕捉程序支持的包数据格式•可以通过多种方式过滤包•多种方式查找包•通过过滤以多种色彩显示包•创建多种统计分析•…还有许多不管怎么说,要想真正了解它的强大,您还得使用它才行图 1.1. Wireshark捕捉包并允许您检视其内1.1.3. 捕捉多种网络接口Wireshark 可以捕捉多种网络接口类型的包,哪怕是无线局域网接口。

想了解支持的所有网络接口类型,可以在我们的网站上找到/CaptureSetup/NetworkMedia.1.1.4. 支持多种其它程序捕捉的文件Wireshark可以打开多种网络分析软件捕捉的包,详见1.1.5. 支持多格式输出Wieshark可以将捕捉文件输出为多种其他捕捉软件支持的格式,详见1.1.6. 对多种协议解码提供支持可以支持许多协议的解码(在Wireshark中可能被称为解剖)1.1.7. 开源软件Wireshark是开源软件项目,用GPL协议发行。

您可以免费在任意数量的机器上使用它,不用担心授权和付费问题,所有的源代码在GPL框架下都可以免费使用。

因为以上原因,人们可以很容易在Wireshark上添加新的协议,或者将其作为插件整合到您的程序里,这种应用十分广泛。

1.1.8. Wireshark不能做的事Wireshark不能提供如下功能•Wireshark不是入侵检测系统。

如果他/她在您的网络做了一些他/她们不被允许的奇怪的事情,Wireshark不会警告您。

但是如果发生了奇怪的事情,Wireshark可能对察看发生了什么会有所帮助。

[3]•Wireshark不会处理网络事务,它仅仅是“测量”(监视)网络。

Wireshark不会发送网络包或做其它交互性的事情(名称解析除外,但您也可以禁止解析)。

1.2. 系通需求想要安装运行Wireshark需要具备的软硬件条件...1.2.1. 一般说明•给出的值只是最小需求,在大多数网络中可以正常使用,但不排除某些情况下不能使用。

[4]•在繁忙的网络中捕捉包将很容塞满您的硬盘!举个简单的例子:在100MBIT/s全双工以太网中捕捉数据将会产生750MByties/min的数据!在此类网络中拥有高速的CPU,大量的内存和足够的磁盘空间是十分有必要的。

•如果Wireshark运行时内存不足将会导致异常终止。

可以在/KnownBugs/OutOfMemory察看详细介绍以及解决办法。

•Wireshark作为对处理器时间敏感任务,在多处理器/多线程系统环境工作不会比单独处理器有更快的速度,例如过滤包就是在一个处理器下线程运行,除了以下情况例外:在捕捉包时“实时更新包列表”,此时捕捉包将会运行在一个处理下,显示包将会运行在另一个处理器下。

此时多处理或许会有所帮助。

[5]1.2.2. Microsoft Windows•Windows 2000,XP Home版,XP Pro版,XP Tablet PC,XP Media Center, Server 2003 or Vista(推荐在XP下使用)•32-bit奔腾处理器或同等规格的处理器(建议频率:400MHz或更高),64-bit处理器在WoW64仿真环境下-见一般说明•128MB系统内存(建议256Mbytes或更高)•75MB可用磁盘空间(如果想保存捕捉文件,需要更多空间) 800*600(建议1280*1024或更高)分辨率最少65536(16bit)色,(256色旧设备安装时需要选择”legacy GTK1”)•网卡需求:o以太网:windows支持的任何以太网卡都可以o无线局域网卡:见MicroLogix support list, 不捕捉802.11包头和无数据桢。

o其它接口见:/CaptureSetup/NetworkMedia说明•基于以下三点原因,将不会对旧版Windows提供支持:没有任何开发人员正在使用那些操作系统,这将使支持变得更加困难,Wireshark运行所依赖的库文件(如GTK,WinPCap等)也放弃对它们的支持。

同样,微软也放弃了对它们的技术支持。

•Windows 95,98和ME不能运行Wireshark。

已知的最后一个可以运行在以上平台的版本是Ethereal0.99.0(需要安装WinPCap3.1),你依然可以使用从: /download.html获得。

顺便提一下:微软于2006年1月11日停止对98/ME支持。

•Windows NT 4.0今后将无法运行Wireshark.最有一个已知版本是Wireshark0.99.4(需安装自带的WinPCap3.1),你依然可以从:/wireshark/wireshark-setup-0.99.4.exe得到它。

顺便提一下:微软于2005年12月31日停止对NT 4.0的支持。

•Windows CE 及嵌入版windows(NT/XP)不被支持。

•64-bit处理器运行Wireshark需要在32bit仿真环境下(称作WoW64),最低需要安装WinPCap4.0。

•支持多显示(不知道是显示其还是监视器)安装,但会遇到一些不可预料的问题。

1.2.3. Unix/LinuxWireshark目前可以运行在许多UNIX平台,系统可以对照上面Windows下的指标。

二进制包最少在以下平台可用:•APPle Mac OSX•Debian GNU/Linux•FreeBSD•NetBSD•OpenPKG•Red Hat Fedora/Enterprise Linux•rPath Linux•Sun Solaris/i386•Sun Solaris/Sparc如果二进制包在您的平台无法使用,你可以下载源文件并尝试编译它。

希望您能发送邮件到wireshark-dev[AT] .分享您的经验。

1.3. 从哪里可以得到Wireshark你可以从我们的网站下载最新版本的Wireshark /download.html.网站上您可以选择适合您的镜像站点。

Wireshark通常在4-8周内发布一次新版本如果您想获得Wireshark发布的消息通知,你可以订阅Wireshark-announce邮件列表。

详见第 1.6.4 节“邮件列表”1.4. Wiresahrk简史[6]1997年以后,Gerald Combs 需要一个工具追踪网络问题并想学习网络知识。

所以他开始开发Ethereal (Wireshark 项目以前的名称) 以解决以上的两个需要。

Ethereal是第一版,经过数次开发,停顿,1998年,经过这么长的时间,补丁,Bug报告,以及许多的鼓励,0.2.0版诞生了。

Ethereal就是以这种方式成功的。

此后不久,Gilbert Ramirez发现它的潜力,并为其提供了底层分析1998年10月,Guy Harris正寻找一种比TcpView更好的工具,他开始为Ethereal进行改进,并提供分析。

998年以后,正在进行TCP/IP教学的Richard Sharpe 关注了它在这些课程中的作用。

并开始研究该软件是否他所需要的协议。

如果不行,新协议支持应该很方便被添加。

所以他开始从事Ethereal的分析及改进。

从那以后,帮助Ethereal的人越来越多,他们的开始几乎都是由于一些尚不被Ethereal支持的协议。

所以他们拷贝了已有的解析器,并为团队提供了改进回馈。

2006年项目Moved House(这句不知道怎么翻译)并重新命名为:Wireshark.1.5. Wireshark开发维护Wireshark最初由Gerald Combs开发。

目前由Wireshark team进行进一步开发和维护。

Wireshark team是一个由修补bug提高Wireshark功能的独立成员组成的松散组织。

有大量的成员为Wireshark提供协议分析。

同时我们也希望这些活动能持续机芯。

通过查看Wireshark帮助菜单下的About,你可以找到为Wireshark提供代码的人员名单,或者你也可以通过Wireshark 网站的authors页面找到。

Wireshark 是开源软件项目,发布遵循GNU General Public Licence (GPL协议),所有源代码可以在GPL框架下免费使用。

欢迎您修改Wireshark以便适合您的需要,如果您可以提供您的改进给Wireshark team ,我们将不胜感激。

为Wireshark Team 提供您的改进建议,有以下益处:•如果其他人发现您提供的改进十分有用会肯定它们的价值,您将会得知你曾像Wireshark team 一样帮助过他人•The developers of Wireshark might improve your changes even more, as there's always room for improvement. Or they may implement some advanced things on top of your code, which can be useful for yourself too.•The maintainers and developers of Wireshark will maintain your code as well, fixing it when API changes or other changes are made, and generally keeping it in tune with what is happening with Wireshark.So if Wireshark is updated (which is done often), you can get a new Wireshark version from the website and your changes will already be included without any effort for you.Wireshar 源代码和二进制kits (二进制工具包?)可以根据自己的平台对应下载,网站是:/download.html.1.6. 汇报问题和获得帮助如果您在使用中碰到了问题,或者您需要Wireshark的帮助,有以下几种可能让您有兴趣的方法(当然,还包括这本书)。

相关文档
最新文档