做外贸网站需要注意哪些,常德论坛,图片免费模板,旅游网站设计理念计算机网络实验 目录
实验目的
实验环境
实验原理
1、UDP协议
2、TCP协议
实验具体步骤 实验目的
1、掌握使用wireshark工具对UDP协议进行抓包分析的方法#xff0c;掌握UDP协议的报文格式#xff0c;掌握UDP协议校验和的计算方法#xff0c;理解UDP协议的优缺点掌握UDP协议的报文格式掌握UDP协议校验和的计算方法理解UDP协议的优缺点通过实验进一步了解UDP协议
2、掌握使用wireshark工具对TCP协议进行抓包分析的方法通过实验进一步了解TCP协议。 实验环境
Windows11系统Ethereal、wireshark抓包工具 实验原理
1、UDP协议
UDP是一种简单的面向数据报的传输层协议与TCP相比它不提供可靠性、顺序传输或拥塞控制。
UDP的主要特点
无连接。发送数据之前不需要建立连接。
使用尽最大努力交付。即不保证可靠交付。
面向报文。UDP 一次传送和交付一个完整的报文。
没有拥塞控制。网络出现的拥塞不会使源主机的发送速率降低。很适合多媒体通信的要求。
支持一对一、一对多、多对一、多对多等交互通信。
首部开销小只有 8 个字节。 2、TCP协议
TCP是一种面向连接的、可靠的传输层协议用于在网络上可靠地传输数据。
TCP特点
TCP 是面向连接的运输层协议。
每一条 TCP 连接只能有两个端点 (endpoint)每一条 TCP 连接只能是点对点的一对一。
TCP 提供可靠交付的服务。
TCP 提供全双工通信。 字段 含义 源端口和目的端口 16位表示数据包发送方\接收方的端口号 序号 32位用于标识发送方发送的数据字节流的顺序以便接收方能够对接收到的数据包进行排序和重组。 确认号 32位表示接收方期望收到的下一个字节的序列号 数据偏移 4位表示TCP首部的长度以32位4字节为单位。数据偏移字段的最小值为5即20字节最大值为15即60字节 保留 6位保留供将来使用发送时设置为0 URG 当设置为1时表示紧急指针字段有效 此时该字节会被优先发送 ACK 当设置为1时表示确认号字段有效 PSH 当设置为1时表示接收方应立即将数据提交给应用程序而不是等待缓冲区填满后再提交阿 RST 当设置为1时表示发送方要求重置连接 SYN 当设置为1时表示这是一个连接请求或连接接受报文用于建立连接 FIN 当设置为1时表示发送方已完成数据发送请求关闭连接 窗口 2位表示发送方允许接收方发送的数据量以字节为单位。窗口大小可以随着网络拥塞程度的
TCP各字段含义表
一、UDP
UDP报头由4个部分组成源端口号、目标端口号、数据包长度和校验值其中每个域各占用两个字节。UDP使用端口号为不同的应用保留其各自的数据传输通道。UDP和TCP正是采用这一机制实现对同一时刻内多项应用同时发送和接受数据的支持。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去而数据接收一方则通过目标端口接收数据。有的网络应用只能使用预先为其预留或注册的静态端口而另外一些网络应用则可以使用未被注册的动态端口。因为UDP报头使用两个字节存放端口号所以端口号的有效范围是从0~65535。一般来说大于49151的端口号都代表动态端口。
每个UDP报文称为一个用户数据报User Datagram。用户数据报分为两个部分UDP首部和UDP数据区。 源端口 目的端口 报文长度 校验和 数据 … 图 UDP报文格式 二、TCP
TCP是面向连接的协议。在面向连接的环境中开始传输数据之前在两个终端之间必须先建立一个连接。对于一个要建立的连接通信双方必须用彼此的初始化序列号seq和来自对方成功传输确认的应答号ack(指明希望收到的下一个八位组的编号)来同步习惯上将同步信号写为SYN应答信号写为ACK。整个同步的过程称为三次握手如图下图所示。
图TCP连接的建立
对于一个已经建立的连接TCP使用四次握手来结束通话使用一个带有FIN附加标记的报文段如图所示。
图TCP连接的释放
TCP每发送一个报文段就对这个报文段设置一次计时器。只要计时器设置的重传时间到期但还没有收到确认就要重传这一报文段。 16位源端口号 16位目的端口号 32位序号 32位确认序号 4位首部长度 保留 (6位) U R G A C K P S H R S T S Y N F I N 16位窗口大小 16位校验和 16位紧急指针 选项 数据
图TCP报文格式 实验具体步骤
1、抓取本机和远程计算机通讯使用的UDP数据报
在本机上安装并运行腾讯QQ即时聊天工具(腾讯QQ即时聊天软件采用UDP的方式进行数据传输)QQ登陆以后启动wireshark协议分析工具并选择“Capture”à“Start”开始数据包的抓取。然后使用QQ软件和好友进行聊天对话等待一段时间后停止wireshark的抓包工作。停止抓包后在wiresharkl窗口中除了希望的UDP数据包外还会有其他一些数据包所以需要在wiresharkl中的“Filter”域中输入关键字“UDP”然后点击“Apply”按钮将非UDP数据包过滤掉。
2、UDP协议分析 分析查看这些UDP协议数据包回答以下问题
这些UDP数据包的包头分为多少个部分每个部分代表什么含义
答源端口8000代表发送方的端口号
目的端口55436代表接收方的端口号
长度73整个 UDP 数据包的长度
校验和用于检验数据包在传输过程中是否出现错误。
这些UDP数据包的源地址、目的地址分别是多少通讯使用的源端口和目的端口号又分别是多少
答源地址为 36.155.207.242目的地址为 10.102.91.91源端口为 8000目的端口为 55436。
观察这些发送的UDP数据包有没有得到来自对方的回复为什么
答没有回复因为并没有从 10.102.91.91 的某个端口发往 36.155.207.242 的 8000 端口的数据包
3、UDP校验和的计算 图UDP校验和的计算
根据图5-2给出UDP计算校验和的步骤。
答当计算UDP协议的校验和时首先需要在UDP数据报前面添加一个伪首部其中包含了源IP地址、目的IP地址、协议类型UDP为17和UDP数据报长度等信息。然后将伪首部、UDP首部以及数据部分按照16位字节分割。如果数据部分字节数不是偶数则需填充全零字节。接下来对所有的16位字进行二进制反码求和。这意味着每一位进行异或操作进位会在结果的最低位上被加上。最后对求和结果取反得到校验和值。在接收方收到UDP数据报后也会按照同样的步骤计算校验和并与接收到的校验和进行比较以验证数据在传输过程中是否发生错误。 TCP
1、抓取本机和远程计算机进行文件传输时TCP数据包
在分析TCP之前先通过HTTP POST的方式(通过HTTP方式传输数据有POST和GET两种方式前者相对后者而言更适合用于传输具有大量数据的文件)将本地的一个文件上传到一个远程的Web服务器上然后使用Ethereal去捕获该文件传输过程中的TCP数据包。
(1)打开IE浏览器在地址栏内输入 “http://gaia.cs.umass.edu/ethereal-labs/alice.txt”
并复制其内容然后在本地计算机上新建一个文本文件“alice.txt”将刚才复制的内容粘贴到该文件中。
(2)在IE浏览器的地址栏中输入“http://gaia.cs.umass.edu/ethereal-labs/TCP-ethereal-file1.html”出现如图所示的页面。 图 浏览器界面
(3)点击网页上的“浏览”按钮选择需要上传的本地文件“alice.txt”。注意在这一步不要点击网页最下面的“Upload alice.txt file”按钮。
(4)启动Ethereal协议分析工具并点击程序上方“Capture”菜单下的“Start”开始数据包的抓取。
(5)返回到刚才打开的那个网页点击网页上的“Upload alice.txt file”按钮发送alice.txt文件。
(6)发送完文件以后停止Ethereal的抓包工作会看到如图6-2所示的Ethereal窗口。 图Ethereal抓取的TCP协议数据包
2、过滤无关的其他数据包
由于Ethereal抓包的时候将网卡设为监听模式因此在抓取的数据包中会将网络上出现的所有数据包都抓下来其中许多是与该实验无关的数据包如ARP数据包、交换机的通讯包等因此需要将这些抓到的无关数据包给过滤掉。过滤的步骤为首先在Ethereal中的“Filter”域中输入关键字“TCP”然后点击右边的“Apply”按钮将捕获到的与传输无关的数据包过滤掉剩下与本实验相关的部分。
在过滤后的数据包捕获窗口中看到的是本机和gaia.cs.umass.edu之间的一系列的TCP和HTTP通讯信息其中有初始化连接的含有“SYN”信息的3次TCP握手一个HTTP POST信息和一系列的从本机发往gaia.cs.umass.edu的TCP包和HTTP包。查看捕获的数据包回答以下问题
本地计算机的IP地址是什么通讯使用的TCP端口号是多少
答128.119.245.12 80
(2)gaia.cs.umass.edu的IP地址是多少对方使用哪个端口发送和接收TCP数据包
答10.102.182.112 发送80 接受64829
3、TCP协议分析
由于这个实验是分析TCP协议所以接下来需要将上述的窗口中的HTTP信息过滤掉只留下TCP数据包。点击“Analyze” 菜单中的“Enableed Protocols”在弹出的如图6-3所示的“Enabled Protocols”对话框中将“HTTP”的勾选去掉。 图 屏蔽HTTP信息
点击“确定”按钮以后将会看到只有本机和gaia.cs.umass.edu之间通讯的TCP数据包。分析查看这些TCP数据包回答以下问题
用于初始化连接的TCP SYN数据包中的sequence号是多少在该数据包中哪部分表明了该数据包数否为一个SYN数据包
答0 syn标志位
gaia.cs.umass.edu回复的SYNACK数据包中的sequence号是多少数据包中的哪部分表明了该数据包是否为一个SYNACK数据包
答sequence 号是1
这个数据包中Flags 字段的值为 0x01010000其中第 16 位从右往左数为 ACK 位第 17 位为 SYN 位这两个位都被设置为 1因此可以确定该数据包是一个 SYNACK 数据包。
包含HTTP POST指令的TCP数据包中的sequence号是多少
答1
如果将含有HTTP POST指令的TCP数据包作为连接建立后的第一个数据包那么前6个数据包的sequence号是多少并且它们分别是什么时间发送的这些数据包的ACK确认包又是什么时候收到的比较发送的TCP数据包和其确认包有什么不同。这6个数据包的RTT值是多少在收到每一个ACK确认包后RTT估计值又是多少
答前6个数据包的序列号分别是1、15、12240、1360、5440和2720。
发送时间4.439929。
收到时间4.666633。
发送的TCP数据包包含数据而ACK确认包只包含确认信息不包含数据。
这6个数据包的RTT值是0.226704。
收到每个ACK确认包后估计的RTT值也是0.226704。
(5)前6个TCP数据包的长度分别是多少
答分别是565、1460、1460、1460、1460、1460。