电子科技大学_TCPIP实验三_FTP中的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协议的分析

TCP报头长度(4位):给出报头中32bit字的数目,它实际上指明数据从哪里开始。需要这个值是因为任选字段的长度是可变的。这个字段占4bit,因此TCP最多有60字节的首部。然而,没有任选字段,正常的长度是20字节。
图4TCP前20字节的固定报文
1.分析上图的TCP协议的报文得到如下结论:
源端口号(16位):它(连同源主机IP地址)标识源主机的一个应用进程。图片中的来源端口地址为80。
目的端口号(16位):它(连同目的主机IP地址)标识目的主机的一个应用进程。这两个值加上IP报头中的源主机IP地址和目的主机IP地址唯一确定一个TCP连接。图片中的目的端口为1025。
顺序号(32位):用来标识从TCP源端向TCP目的端发送的数据字节流,它表示在这个报文段中的第一个数据字节的顺序号。如果将字节流看作在两个应用程序间的单向流动,则TCP用顺序号对每个字节进行计数。序号是32bit的无符号数,序号到达2 32-1后又从0开始。当建立一个新的连接时,SYN标志变1,顺序号字段包含由这个主机选择的该连接的初始顺序号ISN(Initial Sequence Number)。图片中的序号为0。
图5数据部分的报文
选项:长度可变,最长达到40字节。当没有使用“选项”时,TCP首部的长度就是20字节。还有就是后面的填充都是在常规的TCP首部后增加的。
教
师
评
语
教师签名:
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协议的工作原理和实验验证过程,并不涉及具体的技术细节和算法解析。
tcpip实验报告

实验一Linux内核通用链表的使用一、实验目的学习Linux内核通用链表的设计原理,熟练掌握Linux内核通用链表的使用。
二、实验内容1、掌握Linux通用链表的创建2、掌握通用链表添加元素、删除元素和遍历链表的方法3、掌握通用链表的查找方法三、实现原理Linux的内核源文件list.h提供了所有的链表定义,以及各类链表的操作接口和实现。
其中创建链表的方法如下:LIST_HEAD(my_list);在指定的head后插入新节点,常用于堆栈数据结构的实现list_add(structlist_head *new, structlist_head *head);在指定的head前插入新节点,常用于队列数据结构的实现list_add_tail(structlist_head *new, structlist_head *head);从链表中删除一个指定节点list_del(structlist_head *entry);根据当前链表节点指针ptr获得宿主节点指针list_entry(ptr, type, member);遍历链表list_for_each(pos, head);四、实现代码和运行结果#include <stdio.h>#include <malloc.h>#include "list.h"struct user{int id;structlist_head list;};int main(void){struct user *p;LIST_HEAD(user_queue);for (inti = 0; i< 10; i++){p = (struct user *)malloc(sizeof(struct user));p->id = i;list_add_tail(&p->list, &user_queue);}structlist_head *q;list_for_each(q, &user_queue){p = list_entry(q, struct user, list);printf("%d\n", p->id);}return 0;}#include <stdio.h>#include <malloc.h>#include "list.h"struct user{char username[20];int id;structlist_head list;};int main(void){struct user *p;LIST_HEAD(head);for (inti; i< 10; i++){p = (struct user *)malloc(sizeof(struct user)); p->id = i + 1;printf("user %2d, Please input username: ", i+1); scanf("%s", p->username);list_add_tail(&(p->list), &head);}structlist_head *tmp;list_for_each(tmp, &head){p = list_entry(tmp, struct user, list);printf("%d\t%s\n", p->id, p->username);}list_for_each(tmp, &head){p = list_entry(tmp, struct user, list);if (p->id == 5)printf("%s\n", p->username);}return 0;}实验二Linux内核通用哈希链表的使用一、实验目的学习Linux内核通用哈希链表的设计原理,熟练掌握Linux内核通用哈希链表的使用。
tcp实验报告

tcp实验报告TCP实验报告一、实验目的TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,它在互联网通信中扮演着重要的角色。
本实验旨在通过实际操作和观察,深入理解TCP协议的工作原理和特点。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.93. 实验工具:Wireshark三、实验步骤与结果1. 建立TCP连接通过Python的socket库,我们可以轻松地创建TCP连接。
在本实验中,我们编写了一个简单的服务器端和客户端程序,通过本地主机进行通信。
2. 数据传输与流量控制在TCP连接建立后,我们进行了数据的传输实验。
首先,我们发送了一个较小的数据包,观察到数据包的传输过程中,TCP协议会自动进行流量控制,确保数据的可靠传输。
接着,我们发送了一个较大的数据包,发现TCP会将大数据包拆分成多个小数据包进行传输,并在接收端进行重组。
3. 拥塞控制为了模拟网络拥塞的情况,我们在实验中人为地降低了网络带宽。
通过Wireshark抓包分析,我们观察到TCP协议在发现网络拥塞时,会自动减少发送速率,以避免网络的过载。
同时,我们还注意到TCP协议会根据网络的状况动态调整拥塞窗口的大小,以提高网络的利用率。
4. 可靠性与重传机制为了测试TCP协议的可靠性,我们在实验中故意模拟了数据包丢失的情况。
通过Wireshark的分析,我们发现当发送端未收到确认消息时,会自动触发重传机制,确保数据的可靠传输。
同时,TCP还会根据超时时间的动态调整,以适应不同网络环境下的传输速度。
五、实验总结通过本次实验,我们深入了解了TCP协议的工作原理和特点。
TCP作为一种可靠的传输协议,在互联网通信中发挥着重要的作用。
它通过流量控制、拥塞控制和重传机制等手段,确保了数据的可靠传输,并适应了不同网络环境的变化。
在今后的学习和实践中,我们将进一步深入研究TCP协议的细节,并结合实际应用场景,优化网络通信的性能和可靠性。
tcp协议分析 实验报告

tcp协议分析实验报告
TCP协议分析实验报告
引言
TCP(Transmission Control Protocol)是互联网中最常用的协议之一,它负责在网络中建立可靠的连接,确保数据的可靠传输。
本实验旨在通过对TCP协议的
分析,深入了解其工作原理和性能特点。
实验目的
1. 了解TCP协议的基本工作原理
2. 分析TCP协议的数据传输过程
3. 掌握TCP协议的性能特点
实验环境
本实验使用了Wireshark网络抓包工具和一台运行TCP协议的服务器和客户端。
实验步骤
1. 使用Wireshark抓包工具对TCP协议进行抓包
2. 分析抓包数据,了解TCP协议的数据传输过程
3. 对TCP协议的性能特点进行分析
实验结果与分析
通过抓包和分析数据,我们了解到TCP协议在数据传输过程中的工作原理。
TCP协议通过三次握手建立连接,然后通过数据分段和确认机制来保证数据的
可靠传输。
在传输过程中,TCP协议还会根据网络状况进行拥塞控制和流量控制,以确保网络的稳定性和数据的可靠性。
此外,我们还发现TCP协议具有较高的可靠性和稳定性,但也存在一定的传输
延迟和开销。
在高负载和高延迟的网络环境下,TCP协议的性能可能会受到一定影响。
结论
通过本实验,我们深入了解了TCP协议的工作原理和性能特点。
TCP协议作为互联网中最常用的协议之一,具有较高的可靠性和稳定性,但也存在一定的传输延迟和开销。
在实际应用中,我们需要根据具体的网络环境和需求来选择合适的协议,以确保数据的可靠传输和网络的稳定性。
TCP__IP实验报告

电子科技大学实验报告学生姓名:学号:指导教师:许都日期:2014 年月日实验项目名称:IP分组交付和ARP协议报告评分:教师签字:IP子网中使用一个32比特的掩码来标识一个IP地址的网络/子网部分和主机部分。
将IP地址和掩码进行“位与”运算后可以得到该IP地址所在IP子网的子网地址,结合掩码中0比特个数可以确定该IP子网的IP地址空间范围。
根据IP地址所在IP子网的子网地址及其掩码,可以判断这些IP地址是否属于同一个IP子网。
IP地址空间中定义了一些特殊地址:●网络/子网地址:标识一个IP网络或子网。
●直接广播地址:表示该分组应由特定网络上的所有主机接收和处理。
●受限广播地址:表示该分组应由源所在网络或子网上的所有主机接收理。
●本网络上本主机地址:表示主机自己。
●环回地址:用来测试机器的协议软件。
IP分组被交付到最终目的地有两种不同的交付方式:直接交付和间接交付。
交付时首先通过路由选择技术确定交付方式:如果IP分组的目的与交付者在同一个IP网络上,就直接交付该分组至目的站点;如果IP分组的目的与交付者不在同一个IP网络上,就间接交付该分组至下一个路由器(即下一跳站点)。
在以太网上,IP分组是封装在以太帧中发送的,因此发送时除了要有接收站的IP地址(IP分组中的目的IP地址)外,还需要接收站的MAC地址(以太网帧中的目的MAC地址)。
ARP协议(RFC 826)实现了IP地址(逻辑地址)到MAC地址(物理地址)的动态映射,并将所获得的映射存放在ARP高速缓存表中。
不同的交付方法将导致不同的ARP解析操作,获取不同的目的物理地址。
直接交付时,交付者直接将IP分组交付给该分组的目的站点,因此交付者使用ARP 协议找出IP分组中目的IP地址对应的物理地址。
间接交付时,交付者需要将IP 分组交付给下一跳站点,而不是该IP分组的目的端,因此交付者使用ARP协议找出下一跳站点IP地址对应的物理地址。
IP网络是一个逻辑网络,一个物理网络可以被逻辑划分成若干个IP网络。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电 子 科 技 大 学
实 验 报 告
学 号 学生姓名:
课程名称: TCP / IP
任课老师:
实验项目名称 FTP中的TCP传输服务
实验3:FTP中的TCP传输服务
【实验内容】
实验拓扑中VMware虚拟机PC2和Server分别位于由提供集线器功能的虚拟网卡
VMnet1和VMnet2模拟实现的两个以太网Ethernet1和Ethernet2中,这两个以太网对应的
IP子网A和子网B分别连在Dynamips软件模拟实现的路由器R1和R2的F0/0接口上。R1
和R2之间通过PPP链路互联。Server上开启了匿名FTP服务。
实验者在PC2上分别使用ftp命令和IE浏览器连接FTP服务器下载文件,结合Dynamips
软件的分组捕获功能以及Wireshark软件的捕获分组查看功能,考察在FTP会话过程中TCP
协议的连接建立过程和连接终止过程。通过分析TCP连接建立和连接终止过程中所捕获的
TCP报文段,掌握TCP报文段首部中的端口地址、序号、确认号和各个码元比特的含义和
作用;并通过FTP操作体会网络应用程序间的交互模式——客户/服务器(C/S)模式。
【实验步骤】
1、依次启动VMware Workstation中TCPIP组内的虚拟机PC2和Server。
2、启动Dynamips Server,然后运行lab3.net,在Dynagen窗口中提示符“=>”后依次
输入以下命令启动路由器R1和R2:
=> start R1
=> start R2
3、在PC2上ping Server的IP地址确保整个实验网络运行正常。
4、在Dynagen窗口中提示符“=>”后输入以下命令捕获子网A中的分组:
=> capture R1 f0/0 cmdftp.cap
5、在PC2的cmd窗口中以命令行的方式启动FTP客户进程登录FTP服务器,下载一
份文本文件tcpip.txt后结束FTP客户进程。
该过程中的操作示意如下:(X.X.X.X表示FTP服务器的IP地址,黑斜体表示学生
输入内容,其它为系统显示信息)
C:\> ftp X.X.X.X
„„
User (X.X.X.X:(none)): ftp
„„
Password: ftp
„„
ftp> get tcpip.txt
„„
PC2
192.168.11.2/24
子网A 子网B
R1 R2
F0/0 F0/0
S1/0
S1/0
PPP
Ethernet1(VMnet1) Ethernet2(VMnet2)
Server(FTP)
192.168.22.253
ftp> quit
221
6、在Dynagen窗口中提示符“=>”后依次输入以下命令重新捕获子网A中的分组:
=> no capture R1 f0/0
=> capture R1 f0/0 ieftp.cap
7、在PC2上用IE浏览器作为FTP客户机登录同一台FTP服务器,下载完文本文件
tcpip.txt后关闭IE浏览器窗口。
8、在Dynagen窗口中提示符“=>”后输入以下命令停止捕获:
=> no capture R1 f0/0
9、用Wireshark软件查看并分析捕获的分组文件(cmdftp.cap、ieftp.cap)中的FTP会
话分组,查看过滤条件为“ip.addr == 192.168.22.253”(在Wireshark主窗口界面“过
滤工具栏”的“Filter:”域中输入)。
10、实验结束后,按照以下步骤关闭实验软件、上传实验数据、还原实验环境:
(1)在Dynagen窗口中提示符“=>”后依次输入以下命令关闭Dynagen窗口,然
后再关闭Dynamips Server窗口:
=> stop /all
=> exit
(2)依次关闭PC2和Server,再关闭VMware窗口;
(3)运行lab3.net所在目录下的“reset.bat”文件。
【实验数据和结果分析】
1、按捕获顺序记录步骤6中子网A上捕获的所有TCP报文段,记录信息如下:
IP分组首部 TCP报文段
IP地址 端口 序号 确认号 标志位 窗口 长度(字节)
源 目的 源 目的 首部 数据
说明:“标志位”=控制字段中置1的标志;
“序号”、“确认号”和“窗口”用十六进制表示。
【分析】
1) 步骤6中的FTP客户以及FTP服务器之间建立了几条TCP连接?每条连接中
双方的IP地址、TCP端口号和初始序号分别是多少?
2) TCP报文段中的窗口值定义的是该报文段源端还是目的端的发送窗口还是接
收窗口?
3) 实验中哪些类型的TCP报文段首部中携带有MSS的选项信息?
2、按捕获顺序记录步骤7中子网A上捕获的所有TCP连接建立、连接终止和连接复
位报文段,记录信息如下:
IP分组首部 TCP报文段
IP地址 端口 序号 确认号 标志位 窗口 长度(字节)
源 目的 源 目的 首部 数据
说明:“标志位”=控制字段中置1的标志;
“序号”、“确认号”和“窗口”用十六进制表示。
【分析】
1) 步骤7中的FTP客户以及FTP服务器之间建立了几条TCP连接?每条连接中
双方的IP地址、TCP端口号和初始序号分别是多少?
2) 步骤6和步骤7的FTP会话交互有哪些不同?解释产生这些差异的原因。
【实验结论】
1、 需要用哪些参数来标识一条TCP连接?
2、利用记录的TCP报文段信息,在一张时序图中画出步骤6中FTP客户与FTP服务
器之间的整个TCP报文段交互过程。(要求:在图中注明每个TCP报文段的编号、
类型、序号和确认号,并标注出每一条TCP连接的连接建立、数据传输和连接终止
阶段。)