电子科技大学_TCPIP实验三_FTP中的TCP传输服务_实验报告模版
- 格式:doc
- 大小:132.50 KB
- 文档页数:6
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的主要作用是将网络数据流量压缩成数据报的形式。
网络协议分析实验一、实验目的通过使用协议分析软件,对通信系统的通信过程进行监控、分析,以了解通信协议的工作过程。
二、实验内容利用协议分析软件(如: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协议分析实验报告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协议的工作原理和实验验证过程,并不涉及具体的技术细节和算法解析。
实验一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(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(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协议作为互联网中最常用的协议之一,具有较高的可靠性和稳定性,但也存在一定的传输延迟和开销。
在实际应用中,我们需要根据具体的网络环境和需求来选择合适的协议,以确保数据的可靠传输和网络的稳定性。
电子科技大学实验报告学生姓名:学号:指导教师:许都日期: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网络。
tcp协议分析实验报告TCP协议分析实验报告一、引言TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,广泛应用于互联网通信中。
本实验旨在通过对TCP协议的分析,深入了解其工作原理和特点。
二、实验目的1. 了解TCP协议的基本概念和工作原理;2. 掌握TCP协议的连接建立、数据传输和连接终止过程;3. 分析TCP协议在网络通信中的性能表现。
三、实验环境本实验使用了一台运行Linux操作系统的计算机,并通过Wireshark网络抓包工具进行数据包的捕获和分析。
四、实验步骤1. 连接建立过程分析在实验环境中,通过使用telnet命令模拟客户端与服务器的通信过程,并使用Wireshark捕获数据包。
分析捕获到的数据包,了解TCP连接建立的过程,包括三次握手和确认过程。
2. 数据传输过程分析在已建立连接的基础上,通过telnet命令向服务器发送数据,并捕获数据包。
分析捕获到的数据包,了解TCP协议的数据传输过程,包括分段、序号、确认和重传等机制。
3. 连接终止过程分析在数据传输完成后,通过telnet命令关闭连接,并捕获数据包。
分析捕获到的数据包,了解TCP连接终止的过程,包括四次挥手和确认过程。
五、实验结果与分析1. 连接建立过程通过分析捕获到的数据包,可以看到客户端向服务器发送了SYN包,服务器回复了SYN+ACK包,最后客户端发送了ACK包,完成了连接的建立。
这个过程中,通过三次握手的机制,确保了双方的连接同步。
2. 数据传输过程在数据传输过程中,TCP协议将数据分段,并为每个数据段分配一个序号。
接收方通过确认机制,确保数据的可靠传输。
如果发送方未收到确认信息,将会进行重传,以保证数据的完整性。
3. 连接终止过程当数据传输完成后,通过四次挥手的过程,双方完成了连接的终止。
首先,客户端发送FIN包,服务器回复ACK包;然后,服务器发送FIN包,客户端回复ACK包。
tcp报文实验报告篇一:TCP实验报告3_电子科技大学学生姓名:田家翼学号:指导教师:张科日期:实验项目名称:报告评分:实验报告XX019030029XX 年 11月 16日OSPF协议的多区域特性教师签字:OSPF协议(RFC 2328)是一个基于链路状态路由选择的内部网关协议:路由器仅在网络拓扑变化时使用洪泛法(flooding)将自己的链路状态更新信息扩散到整个自治系统中。
为了增强OSPF协议的可伸缩能力(Scalability),OSPF 协议引入了区域的概念来有效并及时的处理路由选择。
OSPF 区域是包含在AS中的一些网络、主机和路由器的集合,自治系统中所有OSPF区域必须连接到一个主干区域(Area 0)上。
区域内的OSPF路由器(内部路由器,IR)使用洪泛法(flooding)传送本区域内的链路状态信息,区域边界的OSPF路由器(区域边界路由器,ABR)将本区域的信息汇总发给其他区域,自治系统边界的OSPF路由器(自治系统边界路由器,ASBR)将自治系统外的路由(外部路由)发布在自治系统中。
主干区域中的OSPF路由器也称为“主干路由器”(BR)。
ABR不能向OSPF残桩区域(Stub Area)通告外部路由。
在多址网络中,为了避免不必要的链路状态洪泛,需要选举1个指定路由器(DR)和1个备份指定路由器(BDR)。
OSPF协议有5种类型的报文,它们被直接封装在IP分组中多播发送。
- - -问候(Hello)报文:用来建立并维护OSPF邻接关系。
在建立了邻接关系后,OSPF路由器会定期发送Hello报文,来测试邻站的可达性。
数据库描述(DBD)报文:描述OSPF路由器的链路状态数据库的概要信息,即数据库中每一行的标题,它在两台相邻路由器彼此建立邻接关系时发送的。
链路状态请求(LSR)报文:由需要若干条特定路由信息的路由器发送出的,它的回答是LSU报文。
新接入的路由器在收到DBD报文后,可以使用LSR报文请求关于某些路由的更多信息。
电 子 科 技 大 学
实 验 报 告
学 号 学生姓名:
课程名称: 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连接的连接建立、数据传输和连接终止
阶段。)