TCP通信实验

TCP通信实验
TCP通信实验

采用TCP编写通信实验

实验日期:2018/4/13 实验地点:6506

班级:信处152 学号2015021118 姓名:张南卿

实验目的:

1)学会搭建TCP/IP应用环境以及开发工具;

2)掌握采用UDP的应用设计;

3)掌握采用TCP的应用设计。

实验环境:

linux系统

实验步骤:

1.环境搭建步骤

1)操作系统安装和配置;

2)编辑软件安装和配置;

3)编译软件安装和配置;

4)简单程序的运行测试;

2.软件设计过程及结果

1)架构图设计

2)数据报文设计;

3)程序处理流程设计;

3.编程与调试

1)编辑过程;

2)编译与语法错误;

3)调试与运行过程;

4)结果检查过程

实验关键程序分析:

(1)配置主机发送的目的地址和目的数据端口号

sin.sin family = AF INET;

sin.sin addr.s addr = inet addr(argv[1]);

sin.sin port = htons(SERVER PORT);

(1)发送buf中的数据给服务器

send(s,buf,len,0);

(3)从远端接收数据

accept(s,(struct sockaddr *)&sin,&len) )

(4)创建子进程,使命结束时,子进程自动终止

if (fork() == 0)

{

while(len = recv(new s,buf,sizeof(buf),0))

{

fputs(buf,stdout) ;

}

close(new S) ;

exit(1);

}

实验过程记录与分析:

(1)客户端TCP程序;

#define SERVER PORT 5432tdefine

#define MAX LINE 256

int main (int argc, char *argv[])

{

struct sockaddr.in sin;//sin 是服务器套接字地址委量

char buf[MAX LINE] ;

int s;

int len;

sin.sin_ family = AF _INET;

sin.sin.addr.s addr = inet_addr(argv[1] );

sin.sin port = htons(SERVER PORT);

if ((s = socket(PF.INET, SOCK STREAM, 8)) <0)

{

perror("simple talk: socket");

exit(1);

}

if (connect(s,(struct sockaddr *)&sin, sizeof(sin)) <0)

{

perror("simple-talk:connect";

close(s);

exit(1)

}

while (fgets(buf, sizeof(buf),stdin))

{

buf[MAX LINE-1] ='\0';

len = strlen(buf) + 1;

send(s, buf, len, 0);

}//主程序结束

(2)服务器端TCP程序;

struct sockaddr_ in sin;

char buf[MAX.LINE] ;

int len;

int s,new.s;

/* 建立地址数据结构*/

bzero((char *)& sin,sizeof(sin));

sin.sin family = AF INET;

sin.sin addr.s addr = INADDR ANY;

sin.sin port = htons(SERVER PORT);

if((s = socket(PF_ INET,SOCK STREAM,0)) < 0)

{

}

if((bind(s,(struct sockaddr *)& sin,sizeof(sin))) < 0) {

}

listen(s,MAX PENDING);

while (1) {

if ((new _s = accept(s,(struct sockaddr *)&sin,&len)) < 0) { perror("simple-talk:accept");

exit(1);

}

if (fork() = 0) {//创建子进程

while (len = recv(new s,buf,sizeof(buf),日))

fputs(buf,stdout );

close(new_s);

exit(1);

}

客户端和服务器之间能够正常的通讯,和UDP通信的模式不同,TCP可以共用同一端口,而UDP不能共用端口。TCP存在一个监听端口,处理客户端的呼叫数据,并复制端口号生成子进程用于两者间通讯,所以TCP能够共用端口号,而且只有在发起中断请求时,两者间的数据交换才终止,期间端口号并不像UDP一样发送完数据就释放掉了,因此TCP的通信实验更加简单一些。

实验与计算机网络知识关系认识:

此次的TCP通信程序设计和之前做的UDP实验不同,UDP发送完数据后会释放端口号,加大了实验设计的难度,而TCP只有发起终止过后才会释放端口号,所以在通信实验中,TCP 的实验更加方便一些。

与计算机网络课上学习到的知识一样,TCP通过复制端口号生成子进程,并且有一个监听端口在管理整个服务器端口号的运行,TCP的不同进程间能够使用相同的端口号,这也是TCP和UDP不同之处所在。

UDP和TCP的实验加深了我们对两种通信协议的了解,深化了对课本知识的认识,更加深入的了解了TCP与UDP的优缺点。

TCP协议分析实验报告

TCP协议分析实验报告 实验4传输层协议分析 一、实验目的 1、学习3CDaemon FTP服务器的配置和使用,分析TCP报文格式,理解TCP的连接建立、和连接释放的过程。 2、学习3CDaemon TFTP服务器的配置和使用,分析UDP报文格式,理解TCP 协议与UDP协议的区别。 二、实验工具软件3CDaemon软件简介 3CDaemon是3Com公司推出的功能强大的集FTP Server、TFTP Server、Syslog Server 和TFTP Client于一体的集成工具,界面简单,使用方便。 这里主要介绍实验中需要用到的FTP Server功能和TFTP Server功能。 1、FTP Server功能 (1)配置FTP Server功能:选中左窗格功能窗口,打开FTP Server按钮,单击窗格中的 Configure FTP Server按钮,打开3CDaemon Configuration配置窗口,配置FTP Server功能。 这里需要设置的就是“Upload/Download”路径,作为FTP Server的文件夹,其它选项可以使用系统缺省设置。设置完成后,单击确认按钮,设置生效。 (2)在实验中,我们使用3CDaemon系统内置的匿名帐户“anonymous”登陆FTP 服务器, 客户端使用微软FTP客户端命令,关于Ftp命令的说明介绍如下。 (3) Ftp命令的说明 FTP的命令格式:ftp[-v][-d][-i][-n][-g][-w:windowsize][主机名/IP地址] 其中:

-v不显示远程服务器的所有响应信息; -n限制ftp的自动登录; -i在多个文件传输期间关闭交互提示 -d允许调试、显示客户机和服务器之间传递的全部ftp命令; -g不允许使用文件名通配符; -w:windowsize忽略默认的4096传输缓冲区。 使用FTP命令登录成功远程FTP服务器后进入FTP子环境,在这个子环境下,用户可以使用FTP的内部命令完成相应的文件传输操作。 FTP常用内部命令如下: open host[port]:建立指定ftp服务器连接,可指定连接端口。 user user-name[password][account]:向远程主机表明身份,需要口令时必须输入。 append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。 cd remote-dir:进入远程主机目录。 cdup:进入远程主机目录的父目录。 cd[dir]:将本地工作目录切换至dir。 dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件。get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file。 ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file。 put local-file[remote-file]:将本地文件local-file传送至远程主机。 mput local-file:将多个文件传输至远程主机。 nlist[remote-dir][local-file]:显示远程主机目录的文件清单,存入本地硬盘local-file。

实验二--配置TCPIP协议

实验二配置TCP/IP协议 专业班级学号姓名 实验学时2实验类型验证性实验地点数计学院实验中心实验时间指导老师 实验成绩 年月日 一、实验目的 了解TCP/IP协议的工作原理; 掌握TCP/IP协议的安装及配置方法; 掌握常用的TCP/IP网络故障诊断和排除方法; 二、实验环境 多台装有Windows 2008 Server的计算机。 三、实验内容及步骤 1、安装TCP/IP协议 控制面板—>网络连接—>本地连接—>右键调出属性面板—>添加—>协议—>选择 TCP/IP协议—>开始安装 2、设置TCP/IP协议 右击网上邻居—>属性—>右击本地连接—>属性—>选择TCP/IP协议—>属性 设置IP地址:机器号+10 设置子网掩码:设置默认网关:设置DNS服务器:、常用网络测试命令的使用 (1)Ping Ping是测试网络联接状况以及信息包发送和接收状况非常有用的工具,是网络测试最 常用的命令。Ping向目标主机(地址)发送一个回送请求数据包,要求目标主机收到请求后给 予答复,从而判断网络的响应时间和本机是否与目标主机(地址)联通。 如果执行Ping不成功,则可以预测故障出现在以下几个方面:网线故障,网络适配器 配置不正确,IP地址不正确。如果执行Ping成功而网络仍无法使用,那么问题很可能出在 网络系统的软件配置方面,Ping成功只能保证本机与目标主机间存在一条连通的物理路径。 命令格式: 参数含义: -t不停地向目标主机发送数据;直到用户按ctrl+c结束

-a 以IP地址格式来显示目标主机的网络地址; -n count 指定要Ping多少次,具体次数由count来指定; -l size 指定发送到目标主机的数据包的大小。 ①测试本机TCP/IP协议安装配置是否成功 PING127.0.0.1 这个Ping命令被送到本地计算机的IP软件,如果此测试不能通过,就表示TCP/IP的安装或配置存在问题。 ②PING 本机IP 这个命令被送到我们计算机所配置的IP地址,我们的计算机始终都应该对该Ping命令作出应答,如果没有,则表示本地配置或安装存在问题。出现此问题时,局域网用户请断开网络电缆,然后重新发送该命令。如果网线断开后本命令正确,则表示另一台计算机可能配置了相同的IP地址。 ③ PING 局域网内其他IP 这个命令应该离开我们的计算机,经过网卡及网络电缆到达其他计算机,再返回。收到回送应答表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码(进行子网分割时,将IP地址的网络部分与主机部分分开的代码)不正确或网卡配置错误或电缆系统有问题。 ④PING 网关IP 这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够作出应答。 ⑤PING LOCALHOST LOCALHOST是一个操作系统的网络保留名,它是的别名,每台计算机都应该能够将该名字转换成该地址。如果没有做到这一点,则表示主机文件(/Windows/host)中存在问题。 (2)ipconfig 使用ipconfig /all 查看配置。 发现和解决TCP/IP 网络问题时,先检查出现问题的计算机上的TCP/IP 配置。可以使用ipconfig 命令获得主机配置信息,包括IP 地址、子网掩码和默认网关。 注意:对于Windows 95 和Windows 98 的客户机,请使用winipcfg 命令而不是ipconfig 命令。使用带/all 选项的ipconfig 命令时,将给出所有接口的详细配置报告,包括任何已配置的串行端口。使用ipconfig /all,可以将命令输出重定向到某个文件,并将输出粘贴到其他文档中。也可以用该输出确认网络上每台计算机的TCP/IP 配置,或者进一步

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开始计数,选择一个随机数开始计数可避免将以前连接的分组错误地解释为当前连接的分组。

网络实验报告 TCP协议分析

《计算机网络(II)》实验报告 实验名称:TCP协议分析 班级:100341C 姓名:汪何媛学号:100341324 任课教师:顾兆军 完成日期:2012.12.14 实验环境:网络结构一 一、实验目的 1)查看TCP连接的建立和释放 2)编辑并发送TCP报文段 3)TCP的重传机制 二、实验内容 练习一:察看TCP连接的建立和释放 1. 主机B、C、D启动协议分析器进行数据捕获,并设置过滤条件(提取TCP协议)。 2. 主机C打开TCP工具,类型选择“服务器”,端口填写大于1024的值; 点击“创建”,如果端口被占用则选择其它。主机A打开TCP工具,类型选择“客户端”,地址填入主机C的IP地址;在端口填入主机C的TCP工具监听的端口;点击[连接]按钮进行连接。

3.察看主机B、C、D捕获的数据,填写下表。

TCP 连接建立时,前两个报文的首部都有一个“maximum segment size”字段,它的值是多少?作用是什么?结合IEEE802.3协议规定的以太网最大帧长度分析此数据是怎样得出的。 maximum segment size=1460 4. 主机A 断开与主机C 的TCP 连接。 5. 察看主机B 、C 、D 捕获的数据,填写下表。 字段名称 报文1 报文2 报文3 序列号 2532372657 1948328206 2532372658 确认号 0 2532372658 1948328207 ACK 0 1 1 SYN 1 1

字段名称 报文4 报文5 报文6 报文7 序列号 3013278418 1558034120 1558034120 3013278419 确认号 1558034120 3013278419 3013278419 1558034121 ACK 1 1 1 1 FIN 1 1 练习二:利用仿真编辑器编辑并发送TCP 数据包 ? 本练习将主机A 和B 作为一组,主机C 和D 作为一组,主机E 和F 作为一组,现仅以主机A 和B 为例,说明实验步骤。 ? 在本实验中由于TCP 连接有超时时间的限制,故仿真编辑器和协议分析器的两位同学要默契配合,某些步骤(如计算TCP 校验和)要求熟练、迅速。 ? 为了实现TCP 三次握手过程的仿真,发送第一个连接请求帧之前,仿真端主机应该使用“仿真编辑器/工具菜单/TCP 屏蔽/启动屏蔽”功能来防止系统干扰(否则计算机系统的网络会对该请求帧的应答帧发出拒绝响应)。 ? 通过手工编辑TCP 数据包实验,要求理解实现TCP 连接建立、数据传输以及断开连接的全过程。在编辑的过程中注意体会TCP 首部中的序列号和标志位的作用。

TCP协议实验

网络课第四次上机实验报告 ------TCP协议实验 实验内容 实验内容主要包括: 设计保存TCP 连接相关信息的数据结构(TCB); TCP 协议的接收处理和封装发送; TCP 协议提供的Socket 函数接口。 实验过程 设计保存TCP 连接相关信息的数据结构(TCB) 用数据结构TCB为每一个TCP连接维护socketfd,srcAddr,dstAddr, srcPort, dstPort, seq, ack, wind owSize, state这些状态信息。以链表形式组织多个连接,nextTcb指向下一个连接的数据结构。 TCP 分组接收函数stud_tcp_input( ) 首先,检查校验和;然后通过字节序转换获取相应的信息,检查序列号。如果序列号不正确,则调用tcp_DiscardPkt;最后将报文交由输入有限状态机处理,有限状态机对报文进行处理,转换状态。根据当前的状态并调用stud_tcp_output 函数完成tcp 建连、数据传递时返回ACK、tcp 断连等工作

TCP 分组发送函数stud_tcp_output ( ) 判断需要发送的报文类型,根据报的类型对包中的相应字段进行设置,判断是否可以发送(发送窗口不为0)。构造TCP 数据报文并发送。填写TCP 报文各字段的内容和数据,转换字节序,计算校验和,然后调用发送流程的下层接口函数sendIpPkt( )发送。 stud_tcp_socket ( )函数 分配相应的socketfd并且新建TCB表项,并对成员变量进行初始化 stud_tcp_connect ( )函数 设定目的IPv4 地址和端口,源IPv4 地址和端口;初始化TCB 结构中的相关变量;设定TCB 中的输入状态为SYN-SENT,及其它相关变量,准备发送SYN 报文;调用发送流程的下层接口函数stud_tcp_output ( )发送SYN 报文(发送类型为PACKET_TYPE_SYN);等待“三次握手”完成后返回,建立连接成功;或者出错返回。 stud_tcp_send ( )函数 判断是否处于ESTABLISHED 状态;将应用层协议的数据拷贝到TCB 的输入缓冲区;调用stud_tcp_output ( )发送TCP 的数据报文(发送类型为PACKET_TYPE_DATA);同时等待ACK以实现停等式协议 stud_tcp_recv ( )函数 判断是否处于ESTABLISHED 状态;从TCB 的输入缓冲区读出数据;将数据交给应用层协议。 stud_tcp_close ( )函数 在正常情况下(ESTABLISHED 状态),进行相应状态转换,非正常情况下(SYN-SENT 状态),直接删除TCB 结构后退出;调用发送流程下层接口函数stud_tcp_output ( )发送FIN 报文(发送类型为PACKET_TYPE_FIN);等待回应的ACK 报

实验四 TCP 协议分析

郑州轻工业学院本科 实验报告 题目:实验四TCP 协议分析 学生姓名:王冲 系别:计算机与通信工程学院 专业:网络运维 班级:网络运维11-01 学号:541107110123 指导教师:熊坤 2014 年10 月28 日

实验四TCP 协议分析 一、实验目的 1、分析HTTP 协议 2、分析DNS 协议 二、实验环境 与因特网连接的计算机网络系统;操作系统为windows;Ethereal、IE 等软件。 三、实验步骤 1.俘获大量的由本地主机到远程服务器的TCP 分组 (1)启动浏览器,打开https://www.360docs.net/doc/d77077363.html,/ethereal- labs/alice.txt 网页,得到ALICE'S ADVENTURES IN WONDERLAND文本,将该文件保存到你的主机上。

(2)打开https://www.360docs.net/doc/d77077363.html,/ethereal- labs/TCP-ethereal- file1.html (3)窗口如下图所示。在Browse按钮旁的文本框中输入保存在你的主机上的文件ALICE'S ADVENTURES IN WONDERLAND的全名(含路径),此时不要按“Upload alice.txt file”按钮 (4)启动Ethereal,开始分组俘获。 (5)在浏览器中,单击“Upload alice.txt file”按钮,将文件上传到https://www.360docs.net/doc/d77077363.html,服务器,一旦文件上传完毕,一个简短的贺词信息将显示在你的浏览器窗口中。 (6)停止俘获。 2.浏览追踪信息

(1)在显示筛选规则中输入“tcp”,可以看到在本地主机和服务器之间传输的一系列tcp和http报文,你应该能看到包含SYN报文的三次握手。也可以看到有主机向服务器发送的一个HTTP POST 报文和一系列的“http continuation”报文。 (2)根据操作回答“四、实验报告内容”中的1-2题。 3.TCP 基础 根据操作回答“四、实验报告内容”中的3-10 题 4.TCP 拥塞控制 (1)在Ethereal已俘获分组列表子窗口中选择一个TCP 报文段。选择菜单: Statistics->TCP Stream Graph-> Time-Sequence-Graph(Stevens)。你会看到如下所示的图。

TCP协议实验

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 TCP协议实验 甲方:___________________ 乙方:___________________ 日期:___________________

网络课第四次上机实验报告 —__TCP协议实验 率实验内容 实验内容主要包括: 设计保存TCP连接相关信息的数据结构 (TCB; TCP协议的接收处理和封装发送; TCP协议提供的Socket函数接口。 4实验过程 设计保存TCP连接相关信息的数据结构 (TC0 mt DINT32 ?工皿1如; UINT32 dstfiddr: 口INTL6 arcForu- ni!4T16 datPort; UIIU3Z UINT32 ack; UIMT1? windowSize; Uli-ITS state; ICB ^nextlGib; 用数据结构TCB为每一个TCP连接维护socketfd , srcAddr , dstAddr, srcPort, dstPort, seq, ack, windowSize, state 这些状态信息。以链表形式组织多个连接, nextTcb指向下一个连接的数据结构。 TCP 分组接收函数stud_tcp_input() 首先,检查校验和;然后通过字节序转换获取相应的信息,检查序列号。如果序列号不正

确,则调用tcp_DiscardPkt ;最后将报文交由输入有限状态机处理,有限状态机对报文进行处 理,转换状态。根据当前的状态并调用 stud_tcp_output 函数完成tcp建连、数据传递 时返回ACK tcp断连等工作 TCP 分组发送函数stud_tcp_output () 判断需要发送的报文类型,根据报的类型对包中的相应字段进行设置,判断是否可以发送(发送窗口不为0)。构造TCP数据报文并发送。 填写TCP报文各字段的内容和数据,转换字节序,计算校验和,然后调用发送流程的下层接口函数sendIpPkt()发送。 stud_tcp_socket ()函数 分配相应的socketfd并且新建TCB表项, 并对成员变量进行初始化 设定目的IPv4地址和端口,源IPv4地址和端口;初始化TCB结构中的相关变量;设定TCB中的输入状态为SYN-SENT及其它相关变量,准备

TCPIP协议分析试验报告

.. TCP/IP协议分析及应用实验报告 学号:姓名:班级: 实验项目编号: B03862704 实验项目名称:传输控制协议TCP 一、实验目的: 1. 掌握TCP协议的报文格式。 2. 掌握TCP连接的建立和释放过程。 3. 掌握TCP数据传输中编号与确认的过程。 4. 掌握TCP协议校验和的计算方法。 5. 理解TCP重传机制。 二、实验环境: Windows server 2003 TCP/IP协议分析及应用教学实验平台 三、实验原理(或要求): TCP报文格式 16位源端口号 16位目的端口号 位序号32 位确认序号32F P U A R S 4位首6保留(16I 位窗口大小 C 部长R S S Y 位)N N T G K H 度位紧急指针16位校验和16 选项数据 连接的建立TCP在面向连接的环境中,开始传输数据之前,在两个终 TCP是面 向连接的协议。通信双方必须用彼此的初端之间必须先建立一个连接。对于一个 要建立的连接,(指明希望收到的下一个ackseq始化序列号和来自对方成功传输 确认的应答号。ACK,应答信号写为八位组的编号)来同步,习惯上将同步信 号写为SYN整个同步的过程称为三次握手,如图: 优质范文.

连接的释放TCP附加标记的报FINTCP使用四次握手来结束通话(使用一个带有对于一个已经建立的连接,如图。文段) TCP重传机制只要计时器设置的重传时间到期,就对这个报文段设置一次计时器。TCP每发送一个报文段,但还没有收到确认,就要重传这一报文段。

优质范文. .. 四、实验步骤: 练习一:察看TCP连接的建立和释放 主机B、C、D启动协议分析器进行数据捕获,并设置过滤条件(提取TCP协议)。主机A启动仿真编辑器,进入TCP连接视图。在“服务器信息/IP地址”中填入主机C的IP地址;使用“端口扫描”获取主机C的TCP端口列表,在“服务器信息/端口”中填入主机C的一个TCP端口(大于1024);点击“连接”按钮进行连接。 察看主机B、C、D捕获的数据,填写下表。 字段名称报文1 报文2 报文3 Sequence Number Acknowledgement Number ACK SYN TCP连接建立时,前两个报文的首部都有一个“maximum segment size”字段,它的值是多少?作用是什么?结合IEEE802.3协议规定的以太网最大帧长度分析此数据是怎样得出的。 主机A断开与主机C的TCP连接。 察看主机B、C、D捕获的数据,填写下表。

TCPIP协议分析实验报告2

TCP/IP协议分析及应用实验报告 学号:姓名:班级: 实验项目编号:B03862702 实验项目名称:网际协议IP 一、实验目的: 1. 掌握IP数据报的报文格式 2. 掌握IP校验和计算方法 3. 掌握子网掩码和路由转发 4. 理解特殊IP地址的含义 5. 理解IP分片过程 二、实验环境: Windows server 2003 TCP/IP协议分析及应用教学实验平台 三、实验原理(或要求): IP报文格式 IP数据报是由IP首部加数据组成的。IP首部的最大长度不超过60字节。 IP IP分片 链路层具有最大传输单元(MTU)这个特性,它限制了数据帧的最大长度。不同的网络类型都有一个上限值。以太网通常是1500字节。如果IP层有数据包要传输,而数据包的长度超过了MTU,那么IP层就要对数据包进行分片操作。使每一片长度都小于MTU。 IP首部中“16位标识”、“3位标志”和“13位片偏移”包含了分片和重组所需的信息。另外,当数据被分片后,每个片的“16位总长度” 值要改为该片的长度值。

IP路由表 大部分网络层设备都存储着一张记录路由信息的表格,称为路由表。它由许多条项目组成。网络层设备收到数据报后,根据其目的IP地址查找路由表确定数据报传输的最佳路径(下一跳)。然后利用网络层的协议重新封装数据报,利用下层提供的服务把数据报转发出去。路由表的项目一般含有五个基本字段:目的地址、网络掩码、下一跳地址、接口、度量。路由表按如下顺序匹配:直接交付->特定主机交付->特定网络交付->默认交付 路由选择过程 路由选择模块从IP处理模块接收到IP分组后,使用该分组的目的IP地址同路由表中的每一个项目按特定的顺序(按照前面介绍的“路由表匹配顺序”)查找匹配项,当找到第一个匹配项后就不再继续寻找了,这样就完成了路由选择过程。 匹配路由表项的方法是将IP地址与路由表中的一个项目的“子网掩码”进行按位“与”操作,然后判断运算结果是否等于该项目的“目的地址”,如果等于,则匹配成功,否则,匹配失败。 四、实验步骤: 练习三:IP数据报分片 在主机B上使用“MTU工具”设置以太网端口的MTU为800字节(两个端口都设置)。主机A、B、E启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(提取ICMP协议)。 在主机A上,执行命令ping -l 1000 172.16.0.2。 主机A、E停止捕获数据。主机E如下图所示,重新定义过滤条件(取一个ICMP数据包,按照其上层协议IP的Identification字段设置过滤)。

TCP协议实验报告

学生实验报告 姓名:_________ 学号:____________ 班级:________________ 指导老师:_______________ 内容摘要 该实验报告了TCP协议分析实验相关分析; TCP协议分析是通过Wireshark分析TCP协议的报文格式,如理解TCP报文段首部各字段的含义,理解TCP建立连接的三次握手机制,了解TCP的确认机制,了解TCP的流量控制和拥塞控制 实验目的 1. 通过协议分析软件掌握TCP协议的报文格式; 2. 理解TCP报文段首部各字段的含义; 3. 理解TCP建立连接的三次握手机制; 4. 了解TCP的确认机制,了解TCP的流量控制和拥塞控制; 实验原理 连上in ternet的PC机,并且安装有协议分析软件Wireshark 实验原理及概况 TCP是因特网中最主要的运输层协议,它能够在两个应用程序章提供可靠的、有序的数据流传输,能够检测传输过程中分组是否丢失、失序和改变,并利用重传机制保证分组可 靠地传输到接收方; TCP首部格式如下图所示: 位U 3 16 24 31 首先是源端口和目的端口,服务器提供服务的端口号是固定的,比如:Web服务端口 号是80,而客户端的端口号是由操作系统随机分配一个用户端口号。TCP提供字节流服务, 它为分组中的每个字节编号,首部中的序号表示分组中第一个字节的编号。接收方用确认号 表示它期望接收的数据流中下一个字节编号,表明确认号之前的字节接收方都已经正确接收 了。数据偏移字段表示报文段的首部长度。标志部分包含6个标志位,ACK位表明确认号 字段是否有效;PUSH位表示发送端应用程序要求数据立即发送;SYN、FIN、RESET三位 用来建立连接和关闭连接;URG和紧急指针通常较少使用。接收端利用窗口字段通知发送 方它能够接收多大数据量。检验和字段是接收方用来检验接收的报文是否在传输过程中出

TCP协议实验报告

T C P协议实验报告 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

学生实验报告 姓名:学号:班级:指导老师: 内容摘要 该实验报告了TCP协议分析实验相关分析; TCP协议分析是通过Wireshark分析TCP协议的报文格式,如理解TCP报文段首部各字段的含义,理解TCP建立连接的三次握手机制,?了解TCP的确认机制,了解TCP的流量控制和拥塞控制 实验目的 1.通过协议分析软件掌握TCP协议的报文格式; 2.理解TCP报文段首部各字段的含义; 3.理解TCP建立连接的三次握手机制; 4.了解TCP的确认机制,了解TCP的流量控制和拥塞控制; 实验原理 连上internet的PC机,并且安装有协议分析软件Wireshark 实验原理及概况 TCP是因特网中最主要的运输层协议,它能够在两个应用程序章提供可靠的、有序的数据流传输,能够检测传输过程中分组是否丢失、失序和改变,并利用重传机制保证分组可靠地传输到接收方; TCP首部格式如下图所示:

首先是源端口和目的端口,服务器提供服务的端口号是固定的,比如:Web服务端口号是80,而客户端的端口号是由操作系统随机分配一个用户端口号。TCP提供字节流服务,它为分组中的每个字节编号,首部中的序号表示分组中第一个字节的编号。接收方用确认号表示它期望接收的数据流中下一个字节编号,表明确认号之前的字节接收方都已经正确接收了。数据偏移字段表示报文段的首部长度。标志部分包含6个标志位,ACK位表明确认号字段是否有效;PUSH位表示发送端应用程序要求数据立即发送;SYN、FIN、RESET三位用来建立连接和关闭连接;URG 和紧急指针通常较少使用。接收端利用窗口字段通知发送方它能够接收多大数据量。检验和字段是接收方用来检验接收的报文是否在传输过程中出错。 TCP重传机制:当发送方传输一个报文段的同时启动一个重传计时器,当该报文的确认到达时,这个计时器就会取消,如果这个计时器超时,那么数据将会被重传。TCP在重传之前,并不总是等待重传计时器超时,TCP也会把一系列重复确认的分组当作是数据丢失的先兆;

实验一:TCP、ICMP协议分析实验

实验一:TCP、ICMP协议分析实验 在这个实验中,我们将通过分析TCP的一个片段发送和接收从你的电脑传送到远程服务器的一个大小为150KB的文件来研究TCP的特性和执行过程,同时也将探索ICMP协议,由ping程序产生的ICMP 消息和ICMP 消息的格式与内容。在开始之前请打开我们的实验工具Wireshark,点击“捕获”—“选项”选择要捕捉的输入接口,选择“在所有接口上使用混杂模式”,然后点击“开始”,这样可以有选择的捕获只和你有关系的数据包。 一、捕获一个从你的电脑到远程服务器的TCP数据 在我们开始对TCP的研究之前,我们需要利用Wireshark来捕获一个TCP的数据包。这个包从你的电脑向远程服务器传输一个文件,我们是使用POST方式而不用GET方法是因为我们要传输一个很大数量的数据。 现在按以下步骤做: 1. 打开你的浏览器。输入: 你将会看到Alice in Wonderland的文本版,然后点击鼠标右键另存到你的电脑中; 2. 接下来输入: ; 3. 你将会看到一个像这样的屏幕:

4. 按“选择文件”按钮选取你刚才保存的文件,请先不要按“Upload alice.txt file”按钮; 5. 现在打开Wireshark,开始数据包的捕获; 6.再回到你的浏览器,按下“Upload alice.txt file”按钮向https://www.360docs.net/doc/d77077363.html,服务器来上载 文件(一旦这个文件被上载,一个短小的祝词将会显示在你的浏览器窗口); 7.停止Wireshark的捕获,你的Wireshark窗口应该和下面所示的窗口相类似: 来看一下捕获的数据,在主窗口顶部的“应用显示过滤器”中输入“tcp”以用来过滤包。你所看见的是你的电脑和https://www.360docs.net/doc/d77077363.html,之间的一系列TCP和HTTP消息。你可以看到含有SYN消息的最初的三次握手,还可以看到一个HTTP POST消息和一系列从你的电脑发送到https://www.360docs.net/doc/d77077363.html,的HTTP附加部分的消息。同时,你也可以看到从https://www.360docs.net/doc/d77077363.html, 返回到你的电脑的TCP ACK片段。 8. 点击“文件”—“保存”选项将数据保存,命名为tcp-1。 通过观察所捕获数据包的内容回答以下问题: Q1. 你的电脑向https://www.360docs.net/doc/d77077363.html, 传输文件时所用的IP地址和TCP端口号是多少? A1:IP地址:182.138.127.2 TCP端口号:49508 Q2. https://www.360docs.net/doc/d77077363.html, 的IP地址是多少?该服务器的哪个端口发送和接收TCP片段? A2:IP地址:128.119.245.12 发送和接收TCP片段端口:80 Q3. 用来在你的电脑和https://www.360docs.net/doc/d77077363.html, 之间开始TCP连接的TCP SYN片段的序列号是多少?在片段中怎样识别这个片段是一个SYN片段? A3:开始TCP连接的TCP SYN片段的序列号:2291245470(绝对序列号) 识别片段方式:Syn设置为1

tcp协议和http协议

竭诚为您提供优质文档/双击可除tcp协议和http协议 篇一:实验tcp协议与http协议 实验三tcp协议与http协议 学号__142055210__姓名__李奋伟__实验机 ip_192.168.1.103______实验机mac地址 _34-e6-d7-77-e7-35__日期__20xx.6.17 实验目的: 掌握tcp协议内容,掌握http协议内容。 实验步骤: 1、捕获tcp三次握手的过程,如下: 2、写出tcp三次握手的原理。 综合上图,设ip地址为192.168.1.254的主机为a,ip 地址为101.199.97.158的主机为b。可以分析得出,a是客户,b为服务器。 第一次握手: a的tcp客户进程首先创建tcb,然后向b发出连接请求报文段,首部中的同步位syn=1,同时初始序号seq=0; 第二次握手:

b收到连接请求报文段,同意建立连接,向a发送确认。在确认报文段中把syn和ack置为1,确认号ack=1,初始序号seq=0; 第三次握手: tcp客户进程收到b的确认后,向b给出确认。确认报文段的ack置1,确认号ack=1,自己的序号为seq=1。 这时,a进入established(已建立连接)状态。b收到a 的确认后,也进入established状态。 3、分析http协议,写出工作过程。 首先捕获一个数据包,如下: 由上图可知通过三次握手连接成功,请求方式为get;http为1.1本;浏览器类型是windows/6.2intelus;host 行定义了目标所在的主机为239.255.255.250:1900\r\n。 原始框显示了分组中包含的数据的每个字节.从中可以观察最原始的传输数据.方框左边是十 六进制的数据,右边是ascii码。 http协议定义了web客户端(浏览器)如何向web站点请求web页以及web服务器如何将web页传送给客户机。具体来说,这是通过客户端发送http请求报文和http响应报文来实现的。当用户请求一个页面时(在浏览器中输入网址或者点击网页某一个链接),浏览器会向web服务器发出对该页及其引用的相关对象的http请求报文,服务器响应这

(完整)实验五_使用Wireshark分析TCP协议

实验五使用Wireshark分析TCP协议 一、实验目的 分析TCP协议 二、实验环境 与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。 三、实验步骤 1、捕获一个从你电脑到远程服务器的TCP数据 打开FTP客户端,连接ftp://202.120.222.71,用”TCP”为过滤条件,捕获建立连接和断开连接的数据。 图5.1 捕获的TCP数据 (1)连接建立: TCP连接通过称为三次握手的三条报文来建立的。观察以上数据,其中分组

10到12显示的就是三次握手。第一条报文没有数据的TCP报文段(分组10),并将首部SYN位设置为1。因此,第一条报文常被称为SYN分组。这个报文段里的序号可以设置成任何值,表示后续报文设定的起始编号。连接不能自动从1开始计数,选择一个随机数开始计数可避免将以前连接的分组错误地解释为当前连接的分组。观察分组10,Wireshark显示的序号是0。选择分组首部的序号字段,原始框中显示“9b 8e d1 f5”。Wireshark显示的是逻辑序号,真正的初始序号不是0。如图5.2所示: 图5.2 逻辑序号与实际初始序号(分组10) SYN分组通常是从客户端发送到服务器。这个报文段请求建立连接。一旦成功建立了连接,服务器进程必须已经在监听SYN分组所指示的IP地址和端口号。如果没有建立连接,SYN分组将不会应答。如果第一个分组丢失,客户端通常会发送若干SYN分组,否则客户端将会停止并报告一个错误给应用程序。 如果服务器进程正在监听并接收到来的连接请求,它将以一个报文段进行相应,这个报文段的SYN位和ACK位都置为1。通常称这个报文段为SYNACK 分组。SYNACK分组在确认收到SYN分组的同时发出一个初始的数据流序号给

实验六、TCP 协议分析实验报告

实验六、TCP 协议分析实验报告 序号:姓名:学号:成绩: 1.实验目的: 理解TCP报文首部格式和字段的作用,TCP连接的建立和释放过程,TCP数据传输过程中编号与确认的过程。 2.实验环境: 连网环境,可以是局域网,也可以是连入Internet的单机。 3.实验步骤: (1)启动Etherel协议分析软件,并开始抓包。 (2)启动某个基于TCP的应用程序,例如连接某个FTP站点,或通过浏览器访问某个网页。 (3)等出现浏览的网页后停止数据包的捕获。 (4)出现协议分析界面,将filter 一栏填入tcp,则只显示TCP协议信息,通过此信息,可以看到TCP连接的三次握手过程和协商的初始的序列号,数据传输过程以及拆除连接的相应信息。 4.实验分析,回答下列问题 打开捕获文件tcp-ethereal-trace-1,通过捕获的数据包分析TCP建立连接的三次握手的过程,并将TCP建立连接过程中的三个报文填写下来。 字段名称第一条报文第二条报文第三条报文 报文序号 1 2 3 Sequence Number 0 1 1 Acknowedgement Numbber 0 1 1 ACK 0 1 1 SYN 1 1 0 (1)TCP建立连接时的三个报文,其报文首部与其他TCP报文有什么不同? 答:都使用了SYN协议。TCP建立连接时的三个报文的首部具有Options字段,且其Sequence和Acknowedgement Numbber为0或者1。 (2)报文首部的OPTION字段的作用是什么?值为多少? 答: Options字段里包含了MSS字段,表明了本断能接收的最大长度的报文段。它的值为(3)分析TCP数据传输阶段的前8个报文,将报文信息填入到表中 报文序号报文种类 (发送/确 认)序号字段确认号字 段 数据长度窗口

TCP协议实验报告

学生实验报告 姓名:学号:班级:指导老师: 内容摘要 该实验报告了TCP协议分析实验相关分析; TCP协议分析是通过Wireshark分析TCP协议的报文格式,如理解TCP报文段首部各字段的含义,理解TCP建立连接的三次握手机制,了解TCP的确认机制,了解TCP的流量控制和拥塞控制 实验目的 1.通过协议分析软件掌握TCP协议的报文格式; 2.理解TCP报文段首部各字段的含义; 3.理解TCP建立连接的三次握手机制; 4.了解TCP的确认机制,了解TCP的流量控制和拥塞控制; 实验原理 连上internet的PC机,并且安装有协议分析软件Wireshark 实验原理及概况 TCP是因特网中最主要的运输层协议,它能够在两个应用程序章提供可靠的、有序的数据流传输,能够检测传输过程中分组是否丢失、失序和改变,并利用重传机制保证分组可靠地传输到接收方; TCP首部格式如下图所示: 首先是源端口和目的端口,服务器提供服务的端口号是固定的,比如:Web服务端口号是80,而客户端的端口号是由操作系统随机分配一个用户端口号。TCP提供字节流服务,它为分组中的每个字节编号,首部中的序号表示分组中第一个字节的编号。接收方用确认号表示它期望接收的数据流中下一个字节编号,表明确认号之前的字节接收方都已经正确接收了。数据偏移字段表示报文段的首部长度。标志部分包含6个标志位,ACK位表明确认号字段是否有效;PUSH位表示发送端应用程序要求数据立即发送;SYN、FIN、RESET三位用来建立连接和关闭连接;URG和紧急指针通常较少使用。接收端利用窗口字段通知发送方它能够接收多大数据量。检验和字段是接收方用来检验接收的报文是否在传输过程中出错。

tcp协议实验报告

竭诚为您提供优质文档/双击可除 tcp协议实验报告 篇一:Tcp实验报告 Tcp实验报告 一、实验目的 1.深入理解Tcp原理,掌握连接状态控制、可靠传输等重要机制; 2.为应用层提供网络编程接口,即socket接口。 二、实验要求 1.理解Tcp的主要原理,针对客户端角色的、“停-等”模式的Tcp,设计接收和发送流程。 2.编程实现Tcp段的接收流程,重点是段接收的有限状态机 3.编程实现Tcp段的发送流程,完成Tcp段的封装处理。 4.编程实现客户端socket接口函数 三、编程实现 1.停-等协议的实现 停-等协议主要体现在stud_tcp_send()函数和

stud_tcp_recv()和函数中。 实现的主要思路是: a)调用stud_tcp_send()发送一个数据包时,直到收到ack包并把ack交给stud_tcp_input()处理才退出 b)调用stud_tcp_recv()接收一个数据包成功后,紧接着发送一个相应的ack包才退出 上述两个设计保证了发送和接收窗口大小为1 2.接收流程的有限状态机 首先检查校验和与序号是否正确,只有当这两者都无误之后才进入状态机部分。 状态机基于switch结构实现,根据当前Tcb的状态分情形讨论状态的变化。 处理流程如下 3.发送时的封装和有限状态机 a)查看当前的Tcb是否为空,为空则创建当前的Tcbb)封装数据 i. ii. iii. iv. v. vi.拷贝数据设置源端口和目的端口设置包序列和ack

序号设置包头长度设置flag设置windowsize和urgentpointer c)改变状态 d)变换字节序 将字节序从本地序变成网络序 4.各接口函数的实现 a)stud_tcp_socket() b) stud_tcp_connect() c)stud_tcp_send() d) stud_tcp_recv() e)stud_tcp_close() 5.校验和的计算 与Ip包的校验类似,但是要求对伪首部进行校验伪首部由以下部分组成: a)32位Ip源地址 b)32位Ip目的地址 篇二:Tcp协议实验 网络课第四次上机实验报告 实验内容 实验内容主要包括:

TCP协议分析实验报告

实验4传输层协议分析 一、实验目的 1、学习3CDaemon FTP服务器的配置和使用,分析TCP报文格式,理解TCP的连接建立、和连接释放的过程。 2、学习3CDaemon TFTP服务器的配置和使用,分析UDP报文格式,理解TCP协议与UDP协议的区别。 二、实验工具软件3CDaemon软件简介 3CDaemon是3Com公司推出的功能强大的集FTP Server、TFTP Server、Syslog Server 和TFTP Client于一体的集成工具,界面简单,使用方便。 这里主要介绍实验中需要用到的FTP Server功能和TFTP Server功能。 1、FTP Server功能 (1)配置FTP Server功能:选中左窗格功能窗口,打开FTP Server按钮,单击窗格中的Configure FTP Server按钮,打开3CDaemon Configuration配置窗口,配置FTP Server功能。 这里需要设置的就是“Upload/Download”路径,作为FTP Server的文件夹,其它选项可以使用系统缺省设置。设置完成后,单击确认按钮,设置生效。 (2)在实验中,我们使用3CDaemon系统内置的匿名帐户“anonymous”登陆FTP服务器,客户端使用微软FTP客户端命令,关于Ftp命令的说明介绍如下。 (3) Ftp命令的说明 FTP的命令格式:ftp[-v][-d][-i][-n][-g][-w:windowsize][主机名/IP地址] 其中: -v不显示远程服务器的所有响应信息; -n限制ftp的自动登录; -i在多个文件传输期间关闭交互提示 -d允许调试、显示客户机和服务器之间传递的全部ftp命令; -g不允许使用文件名通配符; -w:windowsize忽略默认的4096传输缓冲区。 使用FTP命令登录成功远程FTP服务器后进入FTP子环境,在这个子环境下,用户可以使用FTP 的内部命令完成相应的文件传输操作。 FTP常用内部命令如下: open host[port]:建立指定ftp服务器连接,可指定连接端口。 user user-name[password][account]:向远程主机表明身份,需要口令时必须输入。append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。

相关文档
最新文档