当前位置:文档之家› 停止等待协议实验报告

停止等待协议实验报告

实验停止等待协议分析与协议模拟实现

一、实验目的和任务

1.掌握停止等待协议的原理及分析过程包括使用状态转移图进行协议的分析。

2.在计算机上编程模拟停止等待协议的工作过程并实现文件的端到端传输。

3.能够在文件的传输过程中表现出协议运行所遇到的各种状况,如丢包,差错控制等

二、分析与设计

1.设计任务分析:

停止等待协议是数据链路层的几个协议中最简单的协议,是具有最简单流量控制的数据链路层协议,是数据链路层各种协议的基础。实验是基于winsock编程,是visual C++ win32控制台运用程序实现的。它采用客户机/服务器(C/S)模型,即发送数据的一端为客户端,接收数据的一端为服务器端。停止等待协议就是通过双方的收发数据而达到相互通信的目的。

本实验通过编程模拟实现停止等待协议,随机的发送文件,通过服务器的的接受结果和客户端的接受结果显示理解停止等待协议的原理,掌握其应用。

2.? 协议分析

假定 1:链路是理想的传输信道,所传送的任何数据既不会出差错也不会丢失。假定 2:不管发方以多快的速率发送数据,收方总是来得及收下,并及时上交主机。这个假定就相当于认为:接收端向主机交付数据的速率永远不会低于发送端发送数据的速率。

如果存在这样的传输信道,数据链路层协议也是不需要的。信道不会出错,而且接收方缓存的容量为无限大而永远不会溢出;或接收速率与发送速率绝对精确相等。在上述两个假定的情况下,数据链路层当然就不需要任何协议就可以保证数据传输的正确。

这就是说,传输数据的信道是不可靠的(即不能保证所传的数据不产生差错),并且还需要对数据的发送端进行流量控制。

现在不能保证接收端向主机交付数据的速率永远不低于发送端发送数据的速率。由收方控制发方的数据流收方每接受到发方一帧后,回复确认帧,让发方继续发送下一帧,并且收方将数据帧交给上层软件识别,出现错误就将帧丢掉. 在大多数协议中,流量控制是一组过程,这组过程是用来告诉发送方在等待接收方的应答信号之前最多可以传送多少数据。流量控制有两个要点:

(1)数据流不能使接收方过载。任何接收设备都有一个处理输入数据的速率限制,并且存储输入数据的存储器容量也是有限的。接收设备必须在达到这些限制之前通知发送设备并且请求发送设备发送较少的数据帧或是暂停一会儿。在使用输入数据之前,需要对数据进行校验和处理,因此,每个接收设备都有一块存储器,叫做缓冲区,用于存放未来得及处理的数据帧。如果缓冲区将满,接收方也必须能够通知发送方暂停传输,直到接收方又能接收数据。

(2)应答。随着数据帧的到来,接收方对他们进行应答,可以每收到一帧给一个应答,也可以一次对若干帧进行应答。如果一个帧到达时已经被破坏,接收方发送一个否定应答帧(NAK)。

在数据链路层,差错控制主要指错误检测和重传方法。在一个帧中出现任何一个错误,接收方就返回一个否定应答帧,出错的帧就被发送方重新传送。这个过程被称作自动重复请求(ARQ)。数据被重传的情况有三种:帧破坏、帧丢失和应答帧丢失。

流量控制和差错控制是结合在一起实现的,共有两种实现流量控制和差错控制的技术:停止等待协议和滑动窗口协议。

可以用多种方法来表示一个有限状态机,对协议进行描述,以下只描述一种。

1)混合描述方法

比较实用的办法是合并一些状态,即考虑一些次要的细节。例如,甲方的状态 1 和状态 2,状态 3和状态 4 都可以合并,乙的状态 1 和状态 4,状态 2 和状态 3 也可进行合并。这样可以用 3 个字符 XYZ 表示整个系统的状态,其中 X=0 或 1,对应于甲方准备发 [0] 或 [1](包括发完后等待 ACK 的状态);Y=0 或 1,对应于乙方期望收到 [0] 或[1];Z=0、l、A或-,对应于信道上传送的是 [0]、[1]、ACK 或出现了差错(包括丢失)。这样,就可得出图3-24 的有限状态机。在弧线(或直线)旁边注明的数字为状态变迁的标号,其意义也注明在图3-24 的右方。

假设系统一开始处在(000)状态。这表示甲发完 [0],乙期望收到 [0],而信道上传送的也是 [0]。在无差错的情况下,系统的状态仅在 4 个状态中循环:(000)→(01A)→(111)→(10A)→(000)→‥‥。从理论上讲,应当共有 2 × 2 × 4 = 16 种不同的状态。去掉没有意义的组合后,还剩下 10 种状态,而导致状态变迁的输人事件共有 9 种(标号 0 ~ 8 )。

这种有限状态机可帮助我们检查协议是否正确。例如,检查一下乙方会不会连续将两个0 号帧送交主机。这相当于检查一下会不会出现这种情况,即在两次出现状态变迁 1 之间不出现状态变迁 3 。仔细检查图3-24 就可发现这种情况是不会发生的。同样方法也可用来排除连续将两个 1 号帧送交主机的可能。

再检查一下会不会发生甲方连续改变状态 2 次(如从 0 到 1,再回到 0 )而乙方的状态未改变。这种情况相当于出现了未被发现的报文丢失。可以看出,这种情况也是不存在的。

协议必须不出现死锁。死锁的出现是因为存在着这样的一种状态子集,其特点是:从这一子集内变迁到子集外是不可能的,而在这一子集内状态的变迁总是局限于子集内的几个状态。可以看出,如图所示的自动机没有死锁现象。

3.设计方案论证

当收方收到一个正确的数据帧后,便会向发方发送一个确认帧ACK,表示发送的数据正确接收。当发方收到确认帧后才能发送一个新的数据帧,这样就实现了接收方对发送方的流量控制。

由于通信线路质量各方面的影响,数据帧从发送方到接收方传输的过程中可能会出现差错。为了保证数据的正确性和完整性,接收方在收到数据后,会用一定的方法对接收到的数据进行差错检验,所以接收方很容易检测出收到的数据帧是否出现差错。当接收方发现收到的数据出现差错时,就会向发送方发送一个否认帧NAK,表示对方发送的数据错误。发送方会根据接收方发来的信息做出相应的操作。采用这样的有效的检错机制,数据链路层可以对上面的网络层提供了可靠的传输的服务。

三、系统运行与验证

程序分两部分:客户程序和服务器程序。工作过程是:服务器首先启动,它创建套接字之后等待客户的连接;客户启动后创建套接字,然后和服务器建立连接;建立连接后,客户写入文件的路径,然后将文件发送到服务器,服务器要求写入保存的文件路径,收到到文件后,将接收到的文件保存到指定路径当中。

服务器端运行图:

客户端运行图

成功发送文件后的

服务器端

客户端

文件发送失败

客户端的响应

客户端向服务器端发送文件请求ENQ,但是没有收到返回帧,客户端显示send file failed,而file send failed表明文件经过规定次数重传后文件还是发送失败。

四、总结与体会

1.分组情况

张润:负责停止等待协议模拟客户端程序的编写、调试。

毛凤阳:负责停止等待协议模拟服务端程序的编写、调试。

黄晓明:负责查阅相关资料,实验报告的撰写,编写头文件。

2.总结

通过本次实验及课上老师讲解,对停止等待协议有了更深刻的了解。并且通过C/S代码的编写运行,形象地看到客户/服务器端的运作方式,对于C/S模型有了很深刻的印象以及进一步理解。通过代码的编写,再一次熟悉Socket编程原理,掌握简单的套接字编程。

运行程序成功后,是在同一台电脑上进行C与S端的连接。而且使用的是TCP协议,所以要模拟停止等待协议发送丢包,超时等情况比较困难。仅仅实现了文件发送时等待应答信号超时的情况。编程时遇到许多困难,从一个新手通过查阅相关的资料和以前的学习以及和同学之间的交流进步到逐步了解。

在设计过程中,组员之间相互促进,相互交流,共同进步。

发送端程序

/header/"

#include "../header/"

if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)

{

throw Exception("Windows sockets startup unsuccessful");

}

else{

printf("Using %s (Status: %s)\n",

, ;

printf("with API versions %d.%d to %d.%d\n\n",

LOBYTE, HIBYTE,

LOBYTE, HIBYTE);

}

}

void mksock(int type) /header/"

#include "../header/"

d to %d.%d\n\n",

LOBYTE, HIBYTE,

LOBYTE, HIBYTE);

}

}

void mksock(int type)

{

PrimaryUDP = socket(AF_INET, type, 0);

if (PrimaryUDP < 0)

{

throw Exception("create socket error");

}

void BindSock()

{

sockaddr_in sin;

= INADDR_ANY;

= AF_INET;

= htons(SERVER_PORT);

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

throw Exception("bind error");

}

DWORD WINAPI ARecv(LPVOID lpParam)

{

FILE * file = NULL;

sockaddr_in remote;

int sinlen = sizeof(remote);

BSC buffer,bsc;

= STX; = ETX;

memset, 0, MAXBSCLENGTH);

int iread = 0;

unsigned long dwReceived = 0;

bool number = true;//发送方的数据开始发送时的序号设为,为了判断是不是第一次一段数据,所以这里标为

while (true)

{

iread = recvfrom(PrimaryUDP,(char*)&buffer,sizeof(buffer),0,(sockaddr*)&remote,&sinlen) ;

if (SOCKET_ERROR == iread || != STX || != ETX)

{

// 数据错误,发送负应答

cout<<"received a error data"<

= NAK;=false;//number这时没有实际的意义

sendto(PrimaryUDP,(char*)&bsc,sizeof(bsc),0,(sockaddr*)&remote,sinlen);

continue;

}

if == number)

{

// 重复收到数据,发送应答消息

cout<<"received a repeat data"<

= ACK;

= ;

sendto(PrimaryUDP,(char*)&bsc,sizeof(bsc),0,(sockaddr*)&remote,sinlen);

continue;

}

switch

{

case ENQ:

{

number = !number;//准备接收下一段数据

// 文件请求

cout<<"received a file request message,filename:"<<<

// 打开文件

if(strcmp((FileSavePath+strlen(FileSavePath)-1),"\\")!=0)

strcat(FileSavePath,"\\");

strcat(FileSavePath,;

if((file = fopen(FileSavePath, "ab")) == NULL)

{

cout<<"file open failed"<

return -1;

}

break;

}

case SYN:

{

number = !number;

// 文字发送中

int i =0;

if((i=fwrite, sizeof(char), sizeof, file)) <= 0)

{

cout << "write failed" << endl;

return -1;

}

dwReceived += i;

cout<<"write:"<

break;

}

case EOT:

{

number = !number;

// 文件发送完毕

cout<<"file received completely,save path:"<

fclose(file);

break;

}

default:

{

// 数据错误,发送负应答

= NAK;=false;

sendto(PrimaryUDP,(char*)&bsc,sizeof(bsc),0,(sockaddr*)&remote,sinlen);

continue;

break;

}

}

// 发送应答消息

= ACK;

= ;

sendto(PrimaryUDP,(char*)&bsc,sizeof(bsc),0,(sockaddr*)&remote,sinlen);

}

return 0;

}

int _tmain(int argc, _TCHAR* argv[])

{

InitWinSock();

mksock(SOCK_DGRAM);

BindSock();

CreateThread(NULL, 0, ARecv, NULL, 0, NULL);

cout<<"Please input the file save path:";

cin>>FileSavePath;

cout<<"receiver start succeed"<

getchar();

getchar();

return 0;

}

网络协议实验报告

网络协议实验报告 班级:_____网络2010-2班____ 学号:________08103617______ 姓名:__________程凯凌______ 指导老师:__________杨东平__________ 日期:2012年12月27日

ARP1: 0000 ff ff ff ff ff ff 00 26 c7 35 46 48 08 06 00 01 0010 08 00 06 04 00 01 00 26 c7 35 46 48 0a 6e d0 d4 0020 00 00 00 00 00 00 0a 6e c0 01 以太网帧为:ff ff ff ff ff ff 00 26 c7 35 46 48 08 06 其中ff ff ff ff ff ff为目的地址(广播询问) 00 26 c7 35 46 48为源地址 08 06为上层协议类型arp(0x0806) Arp帧为: 00 01 08 00 06 04 00 01 00 26 c7 35 46 48 0a 6e d0 d4 00 00 00 00 00 00 0a 6e c0 01 其中00 01表示硬件类型(0x0001) 08 00表示 IP协议类型(0x0800) 06表示硬件长度为6 04表示协议长度为4 00 01表示操作请求码为0x0001 00 26 c7 35 46 48表示发送MAC地址 0a 6e d0 d4 表示发送IP地址为10.110.208.212 00 00 00 00 00 00 表示目的MAC地址 0a 6e c0 01表示目的IP地址10.110.192.1 ARP2: 0000 00 26 c7 35 46 48 00 14 d5 f1 de 1b 08 06 00 01 0010 08 00 06 04 00 02 00 14 d5 f1 de 1b 0a 6e c0 01 0020 00 26 c7 35 46 48 0a 6e d0 d4 00 00 00 00 00 00 0030 00 00 00 00 00 00 00 00 以太网帧:00 26 c7 35 46 48 00 14 d5 f1 de 1b 08 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 其中00 26 c7 35 46 48为目的地址(应答) 00 14 d5 f1 de 1b为源地址 08 06表示上层协议类型(0x0806) 00 00 00 00 00 00 00 00 00 00 00 00 00 00协议填充数据 arp帧为: 00 01 08 00 06 04 00 02 00 14 d5 f1 de 1b 0a 6e c0 01 00 26 c7 35 46 48 0a 6e d0 d4 其中00 01表示硬件类型(0x0001) 08 00表示 IP协议类型(0x0800) 06表示硬件长度为6 04表示协议长度为4

gobackn协议实验报告

一个数据帧如图所示: 其中有效数据和校验码可能含有转义字符。 (3) 帧中各个字段的定义和编码,计算CRC校验和的多项式定义 帧的定义编码:帧中的第一比特为开头FLAG,第二比特是帧的类型,共定义了{data,ack,nak} frame_kind三种类型,用枚举常量表述,第三比特是顺序编码,用于确定到达帧的顺序,第四比特是ACK捎带确认讯息,记录了当前已收到帧的确认情况,这是数据帧的头部。若为数据帧,从第五比特开始为网路层的数据,到网路层包裹信息结束后,接上4比特的CRC校验讯息,后有一结束字符FLAG表明该帧结束。 CRC校验数:CRC校验数据由函数crc32()产生,函数crc32()返回一个32位整数为数据生成CRC-32校验和,并且把这 32比特校验和附在数据字节之后。 多项式定义:采用的CRC校验方案为CRC-32,生成多项式为: x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+1 校验和附加在数据帧尾部,接受方用带校验和的数据来逻辑除以生成多项式,余数为零则数据无误码,反之有误码等待发送方重传。 (4) 协议工作时两个站点之间信息交换的过程控制,尤其是发生误码条件下的控制方案 协议工作时,两个站点通过互发数据包交换数据,而控制讯息则稍带在数据讯息中传递,当遇到超时情况时,则主动发送空数据包以提供讯息。 当出现帧丢失时,如收到帧的序号有跳跃,或者出现CRC校验出错丢弃了某帧,会主动发送NAK否定帧,提示重传,接收方丢弃所有的后续帧。若长期未产生放送消息,则出现ACK超时事件,主动发送ACK帧提示确认,对方收到确认后,滑动窗口继续发送,若一直未收到确认讯息,则出现数据帧超时事件,发送方会自动重发未确认帧。 11.3 软件设计 给出程序的数据结构,模块之间的调用关系和功能,程序流程。 (1)数据结构:数据结构是整个程序的要点之一,程序维护者充分了解数据结构就可以对主 要算法和处理流程有个基本的理解。描述程序中自定义结构体中各成员的用途,定义的全局变量和主函数中的变量的变量名和变量所起的作用。 采用字符数组结构来存放数据帧:

网络协议分析实验报告

实 验 报 告 课程名称 计算机网络 实验名称 网络协议分析 系别 专业班级 指导教师 学号 姓名 实验日期 实验成绩 一、实验目的 掌握常用的抓包软件,了解ARP 、ICMP 、IP 、TCP 、UDP 协议的结构。 二、实验环境 1.虚拟机(VMWare 或Microsoft Virtual PC )、Windows 2003 Server 。 2.实验室局域网,WindowsXP 三、实验学时 2学时,必做实验。 四、实验内容 注意:若是实验环境1,则配置客户机A 的IP 地址:192.168.11.X/24,X 为学生座号;另一台客户机B 的IP 地址:192.168.11.(X+100)。在客户机A 上安装EtherPeek (或者sniffer pro )协议分析软件。若是实验环境2则根据当前主机A 的地址,找一台当前在线主机B 完成。 1、从客户机A ping 客户机B ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析ARP 协议; 2、从客户机A ping 客户机B ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析icmp 协议和ip 协议; 3、客户机A 上访问 http://biz.doczj.com/doc/7a110915.html, ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析TCP 和UDP 协议; 五、实验步骤和截图(并填表) 1、分析arp 协议,填写下表 客户机B 客户机A

2、分析icmp协议和ip协议,分别填写下表 表一:ICMP报文分析

3、分析TCP和UDP 协议,分别填写下表

(完整版)计网协议5和协议6程序

程序设计报告 (2011/2012学年第一学期) 题目:数据链路层滑动窗口协议的设计 与实现 专业网络工程 学生姓名朱瑞霖、李小明 学生学号 09211517 、 09211524 日期 2011-12-01

一、实验内容和实验目的 利用所学数据链路层原理,自己设计一个滑动窗口协议,在仿真环境下编程实现有噪音信道环境下两站点之间无差错双工通信。信道模型为8000bps 全双工卫星信道,信道传播时延270毫秒,信道误码率为10-5,信道提供字节流传输服务,网络层分组长度固定为256字节。通过该实验,进一步巩固和深刻理解数据链路层误码检测的CRC 校验技术,以及滑动窗口的工作机理。滑动窗口机制的两个主要目标: (1) 实现有噪音信道环境下的无差错传输; (2)充分利用传输信道的带宽。 在程序能够稳定运行并成功实现第一个目标之后,运行程序并检查在信道没有误码和存在误码两种情况下的信道利用率。为实现第二个目标,提高滑动窗口协议信道利用率,需要根据信道实际情况合理 地为协议配置工作参数,包括滑动窗口的大小和重传定时器时限以及ACK 搭载定时器的时限。这些参数的设计,需要充分理解滑动窗口协议的工作原理并利用所学的理论知识,经过认真的推算,计算出最优 取值,并通过程序的运行进行验证。 通过该实验提高同学的编程能力和实践动手能力,体验协议软件在设计上各种问题和调试难度,设计在运行期可跟踪分析协议工作过程的协议软件,巩固和深刻理解理论知识并利用这些知识对系统进行优化,对实际系统中的协议分层和协议软件的设计与实现有基本的认识。 二、实验环境 Window操作系统下,Microsoft Visual C++ 6.0 集成化开发环境。 三、实验分工 协议5主要由李小明完成,协议6主要由朱瑞霖完成,两协议的测试以及部分参数的设定、测试由两人共同完成。实验报告由李小明和朱瑞霖共同整理完成。 四、软件设计 1、数据结构分析 (a)协议五 #define inc(k)if(k

《网络协议分析》实验报告

网络协议分析 ——计算机+自动化0902班易珊珊学号:200926100427 1 实验目的 ?掌握如何利用协议分析工具分析IP数据报报文格式,体会数据报发送,转发的过程。 ?通过分析截获TCP报文首部信息,理解首部中的序号,确认号等字段是TCP可靠连接的基础.通过分析TCP连接的三次握手建立和释放过程,理解TCP连接建立和释放机制。 2 实验内容 ?(1)IP协议分析 ?IP协议分析 (图一)IP数据报的格式

(图二)捕获的IP数据报 version:4,版本,占四位。 Header length:20 bytes,IP数据报首部为20字节,等于固定部分长度,说明没有可选字段。 Differentiated services field:ox00,所有服务类型都为0,说明这是一种缺省情况,IP数据报的发送者没有规定IP数据报的服务类型。 Total length:52,IP数据报总长度为52字节。 Identification:oxa47b,标识,占16位。 Flags: 标志,占3位。DF=1,MF=0, Fragment offset:0,说明该数据报没有分片。 Time to live:128,生存时间是128,每过一个路由器它就减1。 Protocol:TCP(ox06)此IP 数据报携带的数据使用TCP协议,协议字段

值为6。 Header checksum:oxdf8a,首部校验和,占16位。Source:192.168.2.10 源地址,占32位。Destination:202.102.233.164 目的地址,占32位。 ?(2)TCP协议分析: (图三)TCP报文段的首部格式

实验2利用停止等待协议传输数据文件

测控网络实验指导 实验二 利用停止等待协议传输数据文件 一、 实验目的 ? 深入理解停止等待协议的主要特点; ? 深入理解停止等待协议的工作过程; ? 进一步掌握串行口编程的方法。 二、 实验环境 该实验可以看成是前一实验的扩展和深入,它要求在串行口上利用停止等待协议实现文件的可靠传输,因此,实验需要的实验环境与实验一(异步串行通信实验)完全相同。其所需设备、器件及电缆的制作和设备的连接方法可参阅实验一的实验手册。 三、 实验概述 1. 停止等待协议 图2-1 停止等待协议的基本工作过程 图2-2 数据包的丢失和确认信息的丢失示意图 所谓停止等待就是在发送方发完数据报后,需要等待接收方应答信息的到 发送数据包 接收正确认发送数据包重发数据包 发送数据包 接收负确认接收正确认接收正确认接收数据包1正确 发送正确认ACK 接收数据包2错误 发送负确认NAK 接收数据包2正确 发送正确认ACK 接收数据包3正确 发送正确认ACK 接收方 发送数据包接收正确认发送数据包超时重传数据包超时重传数据包接收正确认接收数据包0正确 发送正确认ACK1 接收数据包1正确 发送正确认ACK0 接收数据包1正确(抛弃) 发送正确认ACK0 接收方 发送数据包超时 超时

来。如果发送方接收到正确认信息ACK,那么说明接收方已经正确接收到上一数据包,发送方就可以发送下一数据包;如果发送方接收到负责确认信息NAK,说明接收方收到的数据包是错误的,发送方应该重发,如图2-1所示。 为了保证数据传输的可靠性,实际的停等协议并不像上述的那么简单。在实际应用环境中,至少应该考虑以下两种情况。 (1)数据包丢失 数据包在传输过程中丢失,接收方未收到任何数据,如图2-2所示。由于接收方不知道数据已经发送,因此它不可能给出正确认(ACK)信息或负确认信息(NAK)信息。为了解决这个问题,发送方需要在发送一个数据包后启动一个定时器。一旦在规定时间内没有收到接收方的任何信息,则认为数据包丢失,需要重发该数据包。如果重传一个数据包的次数达到一定值,则认为数据通信信道存在严重问题,数据传输失败。 (2)确认信息丢失或出错 接收方正确接收到数据包,但确认信息在传输过程中丢失或出错,如图2-2所示。这时发送方也不能确定接收方是否收到了数据包。这个问题的解决也是采用定时器的方法,在定时器溢出后重发数据包。但是为了保证接收到的数据不重复,需要给数据包编号。当接收方再次收到同样编号的数据包时,将该包丢弃,并认为上次发送的确认信息丢失或出错,需要重传该确认信息。对于停等协议,至少需要两个编号(通常为0和1)。第一个包的编号为0,第二个包的编号为1,第三个包的编号再为0……如果接收方连续收到了相同编号的数据包,则发生了重复,需要将其丢弃。同时确认信息也需要进行编号,通常用ACK1表示收到编号为0的数据包,并准备接收编号为1的数据包。同样的,ACK0则表示下一个准备接收到的数据包的编号为0。 2.停止等待协议实例——BSC BSC是一种典型的面向字符型停止等待协议,它使用了ASCII码中的10个控制字符完成通信控制功能,并规定了数据报文、控制报文的格式以及协议的操作过程。由于规程简单、容易实现,比较适宜在中低速网络(如电话网)中使用。 控制字符:BSC协议中使用的控制字符的符号、名称、ASCII编码及功能说明如表2-1所示。 表2-1 BSC协议中使用的控制字符与功能

IP协议分析实验报告

计算机网络 实 验 报 告 实验名称: IP协议分析 实验分组号: 实验人:郑微微 班级: 12计算机科学系本四B班学号: 实验指导教师:阮锦新 实验场地:网络实验室706 实验时间: 2014年11月 17号 成绩:

一、实验目的 1、掌握IP协议分析的方法 2、掌握TCP/IP体系结构 3、加深网络层协议的理解 4、学会使用网络分析工具 二、实验要求 1、实验前下载安装Ethereal/Wireshark/Sniffer中的一款网络分析工具软件 2、了解网络分析工具软件的常见功能与常见操作 3、每位学生必须独立完成所有实验环节 三、实验环境 1、操作系统:Windows XP/Windows 7/Windows 2008 2、已安装网络分析工具软件 3、PC机能访问互联网 四、实验内容及原理 1、实验内容 (1)IP头的结构 (2)IP报文分析 2、实验原理 网络之间互连的协议(Internet Protocol,IP)就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。 IP报文由报头和数据两部分组成,如图1所示:

图1 IP报文格式 五、需求分析 IP协议是TCP/IP体系中两个主要的协议之一,而IP地址位于IP数据报的首部,在网络层及以上使用的是IP地址,因此在数据链路层是看不见数据报的IP地址,另外首部的前一部分是固定长度,共20字节。在TCP/IP的标准中,各种数据格式常以32位为单位来描述,通过分析IP数据报的格式就能够知道IP协议都具有哪些功能。 六、实验步骤 1、打开网络分析工具软件 2、抓取浏览器数据包 (1)启动网络分析工具软件,设置抓包过滤条件。 (2)启动浏览器,在地址栏输入要访问的IP地址。 (3)关闭浏览器,停止抓包。 (4)存储所捕获的数据包。 (5)分析数据包。 七、实验分析 1.启动网络分析工具软件,设置抓包过滤条件为“==”

网络协议实验报告6

组号:3F 学号:53131016 姓名:杨灵 实验7.1 FTP协议 【实验目的】 学习FTP协议的连接过程;理解FTP协议的工作原理。一人一组,一组提交报告。 【实验环境】 本实验采用网络结构一, 一定要设置DNS服务器,地址是:172.16.0.253 主机的IP地址使用172.16.0.0段。掩码255.255.255.0. IP地址分配方法: 172.16.0.组号、主机号 例如:第2组的B主机的IP地址设置为172.16.0.22 第5组的F主机的IP地址设置为 172.16.0.56 【实验内容】 本实验要求: FTP服务器已经启动,并提供一个公共帐户,用户名是:anonymous,口令:无。或用户名:group2_1,口令:group2_1 (可以上传数据)。练习一 FTP 本实验学生独立完成,目的是了解FTP协议的端口和连接过程。 实验步骤: 1、主机启动协议分析器,打开数据捕获窗口,设置过滤条件(提取FTP协议); 2、主机登录FTP服务器:在仿真端的命令行提示符下运行: >ftp 172.16.0.253 LOGIN:>group2_1 PASS:>group2_1 >dir >quit 3、查看主机捕获的数据,在会话分析中,查看TCP会话中的21端口和20端口的会话情况,记录21端口和20端口的会话过程; ●记录实验结果: ①粘贴捕获包的截图;

②是否可以捕获到用户名和密码? 答:可以,在USER和PASS会话中。 ③21端口和20端口分别传输什么内容? 答:一个是数据端口,一个是控制端口,控制端口一般为21,而数据端口不一定是20,这和FTP的使用模式有关,如果是主动模式,应该为20,如果为被动模式,由服务器端和客户端协商而定。练习二使用浏览器登入FTP 1、主机启动协议分析器,打开数据捕获窗口; 2、主机启动IE浏览器,在“地址”框中输入ftp://172.16.0.253 3、查看主机捕获的数据,在会话分析中,查看TCP会话中的端口情况。 4、结合练习1的会话过程,说明浏览器登入FTP的工作过程。 ●记录实验结果: ①粘贴捕获包的截图; ②对比上个实验,FTP服务器用哪个端口传输数据,数据连接是谁发起的连接? 答:ftp服务器用21端口传输数据,数据连接是客户端发起的的连接。 练习三在窗口模式下,上传/下传数据文件 熟悉FTP在窗口方式下的命令使用;在本地机的D:上建立一个文本文件,文件名为你的学号+姓名; 1、主机登录FTP服务器:在命令行提示符下运行: D:>ftp 172.16.0.253 >LOGIN:group2_1 >PASS: group2_1 >put 文件名(文件名为你的学号+姓名) >dir (查看FTP上是否已经上传) >get 文件名(FTP服务器) >quit 2、回到本地硬盘上查看是否已经下载到本地?(进入FTP时的目录下) ●记录实验结果: ①粘贴FTP上的文件列表;

网络协议实验报告

实验一: unsigned short checkSum(char*pBuffer,int nLen) { unsigned short nWord; unsigned int nSum=0; int i; for(i=0;i>16) { nSum=(nSum&0xFFFF)+(nSum>>16); } nSum=~nSum; return((unsigned short)nSum); } int timeout=1000; setsockopt(sock_raw,SOL_SOCKET,SO_RCVTIMEO,(char*)&timeout,sizeof(timeout)); setsockopt(sock_raw,SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout,sizeof(timeout)); ICMPheader*pIcmpHeader=(ICMPheader*)sendBuffer; pIcmpHeader->byType=8; pIcmpHeader->byCode=0; pIcmpHeader->nId=(USHORT)::GetCurrentProcessId(); pIcmpHeader->nChecksum=0; pIcmpHeader->nSequence=htons(nSeq++); memset(sendBuffer+sizeof(ICMPheader),'*',32); pIcmpHeader->nChecksum=htons(checkSum(sendBuffer, sizeof(ICMPheader)+32)); int nRet=sendto(sock_raw,sendBuffer,sizeof(ICMPheader)+32,0, (SOCKADDR*)&dest_addr,sizeof(SOCKADDR_IN)); IPheader*ipHdr=(IPheader*)recvBuffer; ICMPheader*icmpHdrRet=(ICMPheader*)(recvBuffer+sizeof(IPheader)); if(icmpHdrRet->byCode==0&& icmpHdrRet->nId==pIcmpHeader->nId&& icmpHdrRet->nSequence==pIcmpHeader->nSequence) { nPacketReceived++; unsigned long dwRecvTime=::GetTickCount(); int nRoundTime=dwRecvTime-dwSendTime; nTotalRoundTime+=nRoundTime;

网络协议分析实验报告样本

网络协议分析实验报告样本 网络协议分析实验报告本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 实验报告99实验名称网络协议分析姓名学号班级313计本班实验目的掌握常用的抓包软件,了解EtherV 2、ARP、P IP协议的结构。 实验内容 11、分析2EtherV2协议 22、分析P ARP协议 33、分析P IP协议实验步骤 11、在S DOS状态下,运行ipconfig,记录本机的IP地址和硬件地址,网关的IP地址。 如下图11所示::本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 图图 12、分析数据链路层协议( (1)、在:PC1的“运行”对话框中输入命令“Ping192.168.191.1,单击“Enter”按钮;图如下图2所示:图图2( (2)、在本机上运行wireshark截获报文,为了只截获和实验内容有关的报文,将Ethereal的的Captrue Filter设置为“No

Broadcastand noMulticast”;如下图3所示:本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 图图3 (33)停止截获报文::将结果保存为MAC--学号,并对截获的报文进行分析:11)列出截获的报文中的协议类型,观察这些协议之间的关系。 答::a a、UDP:用户数据包协议,它和P TCP一样位于传输层,和P IP协议配合使用,。 在传输数据时省去包头,但它不能提供数据包的重传,所以适合传输较短的文件。 b b、WSP:是无线局域网领域推出的新协议,用来方便安全地建立无线连接。 c c、ARP:地址解析协议,实现通过P IP地址得知其物理地址。 在P TCP/IP网络环境下,每个主机都分配了一个232位的P IP 地址,这种互联网地址是在网际范围标本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。 文档如有不当之处,请联系本人或网站删除。 识主机的一种逻辑地址。 为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。 这样就存在把P IP地址变换成物理地址的地址转换问题。

停止等待协议的实现

福建农林大学计算机与信息学院 课程设计报告 课程名称:计算机网络 课程设计题目:停止等待协议的实现 姓名: 系:计算机 专业:计算机科学与技术 年级: 学号: 指导教师: 职称: 2011 年6 月10 日

福建农林大学计算机与信息学院 课程设计报告结果评定 评语: 成绩: 指导教师签字:评定日期:

目录 1、课程设计的目的和任务 (4) 2、课程设计的要求 (4) 3、课程设计的分析与设计 (4) 3.1 设计任务分析 (4) 3.2 设计方案论证 (5) 3.3 详细设计 (5) 3、系统实施 (7) 4、总结与体会 (9) 5、参考文献 (9) 附录:源代码 (10)

停止等待协议的实现 1、课程设计的目的和任务 《计算机网络》课程讲述计算机网络的原理,尤其是TCP/IP协议栈的原理和应用,是一门理论性、应用性、实践性都比较强的课程。而此次的课程设计是在学习完《计算机网络》课程后进行的一次全面的综合能力的检验。 计算机网络的课程设计是从原理和实践的角度,在计算机上编程模拟实现计算机网络的基本协议。通过本次课程设计,使我们对计算机网络的原理能有更加深刻的认识和理解,同时进一步锻炼自己的动手能力。 在这次课程设计中,我设计的的是通过编译语言,编程模拟实现数据链路层协议中的停止等协议。 2、课程设计的要求 通过双方的收发数据而达到相互通信的目的。 3、课程设计的分析与设计 3.1 设计任务分析 停止等待协议是数据链路层的几个协议中最简单的协议,是具有最简单流量控制的数据链路层协议,是数据链路层各种协议的基础。此课程设计是基于winsock 编程,是在VC++6.0的MFC界面下和控制台下实现的。它采用客户机/服务器(C/S)模型,即发送数据的一端为客户端,接收数据的一端为服务器端。停止等待协议就是通过双方的收发数据而达到相互通信的目的。 本课程设计通过编程模拟实现停止等待协议,随机的发送数据,通过服务器的的接受结果和客户端的接受结果显示理解停止等待协议的原理,掌握其应用。

计算机网络协议实验报告

实验报告 项目名称:小型局域网的设计 课程名称:计算机网络B 班级:电G131 姓名:xxx xx 学号:51201320xx 5120132045 教师:张晓明 信息工程学院计算机系

一、实验目的 基于网络协议分析工具Ethereal,通过多种网络应用的实际操作,学习和掌握不同网络协议数据包的分析方法,提高 TCP/IP 协议的分析能力和应用技能。 二、实验前的准备 ●二人一组,分组实验; ●熟悉 Ping、Tracert等命令,学习FTP、HTTP、SMTP和POP3协议; ●安装软件工具Ethereal,并了解其功能、工作原理和使用方法; ●安装任一种端口扫描工具; ●阅读本实验的阅读文献; 三、实验内容、要求和步骤 3.1 学习Ethereal工具的基本操作 学习捕获选项的设置和使用,如考虑源主机和目的主机,正确设置Capture Filter;捕获后设置Display Filter。 3.2 PING命令的网络包捕获分析 PING命令是基于ICMP协议而工作的,发送4个包,正常返回4个包。以主机210.31.32.7 为例,主要实验步骤为: (1)设置“捕获过滤”:在Capture Filter中填写 host 210.31.32.7; (2)开始抓包; (3)在 DOS 下执行PING命令; (4)停止抓包。 (5)设置“显示过滤”:IP.Addr==210.31.32.7 (6)选择某数据包,重点分析其协议部分,特别是协议首部内容,点开所有带+号的内容。 (7)针对重要内容截屏,并解析协议字段中的内容,一并写入 WORD 文档中。

截获数据 Frame 3 (74 bytes on wire,74 bytes captured) Arrival Time: Nov 11,2014:15:49:35 Packet Length:74bytes Capture Length:74bytes Ethernet II,Src: f0:de:f1:ef:cf:3e, Dst: 08:81:f4:9e:47:f0 Internet Protocol,Src Addr:10.10.56.126(10.10.56.126),Dst Addr:210.31.32.7(210.31.32.7) 分析 第三帧,74字节在线,捕获74字节 到达时间:2014年11月11日15点49分35秒 包长度:74字节 捕获长度:74字节 以太网2,源物理地址:f0:de:f1:ef:cf:3e,目标物理地址:08:81:f4:9e:47:f0 源IP地址:10.10.56.126 目标IP地址:210.31.32.7 3.3 TRACERT 命令数据捕获 观察路由跳步过程。分别自行选择校内外2个目标主机。比如, (1)校内:tracert 210.31.32.8

无线红外的停止等待和返回NARQ协议的对比

IEEE 802.11e网络无线红外的停止等待 和返回N ARQ协议的对比 摘要: 在即将运用的IEEE标准802.11e添加一个新的可选确认方案,即所谓的为了支持服务质量(QoS)和更好的利用无线介质(WM)的 (BurstAck爆发)。在本文中著名的Stop-and-Wait(SW)机制和被用作一个有滑动窗口的Go-Back-N(GBN)自动重复请求(ARQ)方案的提高确认(BurstAck破裂)的行为效率进行了的研究。链接参数如,传播MAC协议数据单元(MPDUs)的窗口大小,终端的数量(STAs) ,而且丢帧率(FER)和信噪比(SNR)也会被考虑到。在我们的分析中,其独特的特征红外遥控器的实体层以及标准802.11为红外(IR)无线局域网络而有的管理信息库(MIB)参数和复杂的标准802.11MAC协议的行为也会被考虑到。所得结果显示,在中型网络用作GBN执行得更好的纵发确认是用大的窗口而不是不很高的丢帧率。然而对于小窗口,差质量和大型网络通道并不建议GBN方案。 关键词:IEEE 802.11;SW;GBN,爆裂的肯定 1.介绍 按照IEEE标准传输协议,红外(IR)无线局域网络(WLANs)的终端的固定波长在850到950海里[1]。红外辐射在室内不暗或透明的环境表面会发生反射[2、3]。红外通过多次反射来辐射传播,结果其系统类似无线电在地区或覆盖面积得到建 立。作为一个后果是要提供灵活的终端移动性[45]、。在有较好红外(IR)无线局域网络的地方必须避免产生的干扰(例如飞机,机场、船舶、会议大厅等)。红外(IR)无线局域网络提供无线连接和支持纯粹的建筑室内中[45]、,促使它们有利覆盖大 面积室内空间。此外,光学无线通信系统可以作为候选作为无线网络家用连接(WHL),因为他们可以提供高速家之间的通信设备而且无需认证。 然而,红外光谱有几个缺点。多路的分散性,这是有关接受脉搏的时间分散传 播,是观察国米符号干扰(ISI)的传输速率高于破产10百万位元/秒[3,5-7]。在IEEE 802.11的实例中的红外光谱的链接有1和2兆的传输速率而那些现象是可以避免的。联系的另一个缺点是,周围的红外光谱光引发瞬间噪声,由于光检测过程的随 机噪声性质,而人造光由于周期性干扰光强变化而给人提供干扰[8,9]。对于低和适度的利率的情况下,IEEE 802.11环境噪声的主要因素归与无线的红外链路性能[8,9]。 通常用于中等强度调制(IM)的变送器和直接检测(DD)接受者的传输红外。当直接检测(DD)接收器的使用时,信噪比(SNR)是和光功率平方成正比,而在用无线电传送中它是和传输接受量成正比。因此,由于跟踪和周围的声音则高水平的光功率必须发出,而且是不允许的国际安全制度和终端输出功率约束的。因此,对传输信号必须经过处理以至于让它能检测尽可能低的价信噪比。标准IEEE

网络协议实验报告

TCP/IP协议分析-阅读调式IP协议源代码 实验内容:阅读、调试IP协议源代码 姓名:陈春玮 学号:142050121 实验日期:2014.11.25 一、实验目的: TCP/IP协议簇各功能函数之间的调用过程是协议簇运行的基础,查看TCP/IP协议簇各函数源代码实现及调用关系有助于整体理解协议簇。 实验要求阅读并调通IP协议源代码各函数的相互调用,理解网络报文转发功能这一TCP/IP核心功能的实现方式。 二、实验内容 (一)IP进程实现ipproc.c structep*ipgetp()这个函数实现用循环法获取一个ip数据报。 if((pip->ip_verlen>>4)!=IP_VERSION)如果IP数据报的版本号不是4,则丢弃报文,接收下一个ip数据包; if(IP_CLASSD(pip->ip_dst)||IP_CLASSE(pip->ip_dst))如果ip数据首部目的地址是一个E类地址,丢弃报文,接收下一个ip数据包; if(ifnum!=NI_LOCAL) if(cksum(pip,IP_HLEN(pip)>>1)) 如果ip数据报不是来自回环接口,则计算首部校验和,如有误,则丢弃报文,接收下一个ip数据包。 prt=rtget(pip->ip_dst,(ifnum==NI_LOCAL));if(prt==NULL){if(gateway)为该报文获取路由,判断该报文是否来自外部接口并要转发到外部接口,若是,则判断该主机是不是网关,不是则丢弃报文,接收下一个ip数据包。 iph2net()将报文首部字节序转换为网络字节序。 Ipdbc()这个函数查看报文是否是一个定向广播的报文,传入ip数据包的输入接口号,以太网帧,该数据包的路由。 Ipredirect()查看是否需要对该报文的路由进行重定向处理,传入ip数据包的输入接口号,以太网帧,该数据包的路由。

网络协议分析实验报告

课程设计 课程设计题目网络协议分析实验报告学生姓名: 学号: 专业: 2014年 6 月 29日

实验1 基于ICMP的MTU测量方法 实验目的 1)掌握ICMP协议 2)掌握PING程序基本原理 3)掌握socket编程技术 4)掌握MTU测量算法 实验任务 编写一个基于ICMP协议测量网络MTU的程序,程序需要完成的功能: 1)使用目标IP地址或域名作为参数,测量本机到目标主机经过网络的MTU; 2)输出到目标主机经过网络的MTU。 实验环境 1)Linux系统; 2)gcc编译工具,gdb调试工具。 实验步骤 1.首先仔细研读ping.c例程,熟悉linux下socket原始套接字编程模式,为实验做好准备; 2.生成最大数据量的IP数据报(64K),数据部分为ICMP格式,ICMP报文为回送请求报 文,IP首部DF位置为1;由发送线程发送; 3.如果收到报文为目标不可达报文,减少数据长度,再次发送,直到收到回送应答报文。 至此,MTU测量完毕。

ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。[1] 它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。ICMP报文在IP帧结构的首部协议类型字段(Protocol 8bit)的值=1.

ICMP原理 ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。 我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。 ICMP(Internet Control Message,网际控制报文协议)是为网关和目标主机而提供的一种差错控制机制,使它们在遇到差错时能把错误报告给报文源发方.是IP层的一个协议。但是由于差错报告在发送给报文源发方时可能也要经过若干子网,因此牵涉到路由选择等问题,所以ICMP报文需通过IP协议来发送。ICMP数据报的数据发送前需要两级封装:首先添加ICMP 报头形成ICMP报文,再添加IP报头形成IP数据报 通信术语最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。 实验2 基于UDP的traceroute程序 实验目的 1)掌握UDP协议 2)掌握UDP客户机/服务器编程模式 3)掌握socket编程技术 4)掌握traceroute算法

停止等待协议的实现

农林大学计算机与信息学院 课程设计报告 课程名称:计算机网络 课程设计题目:停止等待协议的实现 姓名: 系:计算机 专业:计算机科学与技术 年级: 学号: 指导教师: 职称: 2011 年 6 月 10 日

农林大学计算机与信息学院课程设计报告结果评定

目录 1、课程设计的目的和任务 (4) 2、课程设计的要求 (4) 3、课程设计的分析与设计 (4) 3.1 设计任务分析 (4) 3.2 设计方案论证 (5) 3.3 详细设计 (5) 3、系统实施 (7) 4、总结与体会 (9) 5、参考文献 (9) 附录:源代码 (10)

停止等待协议的实现 1、课程设计的目的和任务 《计算机网络》课程讲述计算机网络的原理,尤其是TCP/IP协议栈的原理和应用,是一门理论性、应用性、实践性都比较强的课程。而此次的课程设计是在学习完《计算机网络》课程后进行的一次全面的综合能力的检验。 计算机网络的课程设计是从原理和实践的角度,在计算机上编程模拟实现计算机网络的基本协议。通过本次课程设计,使我们对计算机网络的原理能有更加深刻的认识和理解,同时进一步锻炼自己的动手能力。 在这次课程设计中,我设计的的是通过编译语言,编程模拟实现数据链路层协议中的停止等协议。 2、课程设计的要求 通过双方的收发数据而达到相互通信的目的。 3、课程设计的分析与设计 3.1 设计任务分析 停止等待协议是数据链路层的几个协议中最简单的协议,是具有最简单流量控制的数据链路层协议,是数据链路层各种协议的基础。此课程设计是基于winsock 编程,是在VC++6.0的MFC界面下和控制台下实现的。它采用客户机/服务器(C/S)模型,即发送数据的一端为客户端,接收数据的一端为服务器端。停止等待协议就是通过双方的收发数据而达到相互通信的目的。 本课程设计通过编程模拟实现停止等待协议,随机的发送数据,通过服务器的的接受结果和客户端的接受结果显示理解停止等待协议的原理,掌握其应用。

网络协议实验报告汇总

实验一以太网链路层帧格式分析 一.实验目的 分析MAC层帧结构 二.实验内容及步骤 步骤一:运行ipconfig命令 在Windows的命令提示符界面中输入命令:ipconfig /all,会显示本机的网络信息: 步骤二:编辑LLC信息帧并发送 1、打开协议数据发生器,在工具栏选择“添加”,会弹出“网络包模版”的对话框,在“选择生成的网络包”下拉列表中选择“LLC协议模版”,建立一个LLC帧。

2、在“网络包模版”对话框中点击“确定”按钮后,会出现新建立的数据帧,此时在协议数据发生器的各部分会显示出该帧的信息。 3、编辑LLC帧。 4、点击工具栏或菜单栏中的“发送”,在弹出的“发送数据包”对话框上选中“循环发送”,填入发送次数,选择“开始”按钮,即可按照预定的数目发送该帧。在本例中,选择发送10次。 5、在主机B的网络协议分析仪一端,点击工具栏内的“开始”按钮,对数据帧进行捕获,按“结束”按钮停止捕获。捕获到的数据帧会显示在页面中,可以选择两种视图对捕获到的数据帧进行分析,会话视图和协议视图,可以清楚的看到捕获数据包的分类统计结果。 步骤三:编辑LLC监控帧和无编号帧,并发送和捕获 步骤四:保存捕获的数据帧 步骤五:捕获数据帧并分析 1、启动网络协议分析仪在网络内进行捕获,获得若干以太网帧。 2、对其中的5-10个帧的以太网首部进行观察和分析,分析的内容为:源物理地址、目的物理地址、上层协议类型。 捕获到的数据报报文如下:

对所抓的数据帧进行分析: ①MAC header: 目的物理地址:00:D0:F8:BC:E7:08 源物理地址:00:13:D3:51:44:DD 类型:0800表示IP协议 ②IP header: IP协议报文格式如下: 版本:4表示IPv4 首部长度:5表示5×4=20个字节。 服务类型:00表示正常处理该数据报。 总长度:0028表示此数据报的总长度为40字节。

停止等待协议

?5.4.1 停止等待协议

理想的传输条件特点 ?理想的传输条件有以下两个特点: ?(1) 传输信道不产生差错。 ?(2) 不管发送方以多快的速度发送数据,接收方总是来得及处理收 到的数据。 ?在这样的理想传输条件下,不需要采取任何措施就能够实现可靠传输。 ?然而实际的网络都不具备以上两个理想条件。必须使用一些可靠传输协议,在不可靠的传输信道实现可靠传输。

5.4.1 停止等待协议 ?“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。 ?全双工通信的双方既是发送方也是接收方。 ?为了讨论问题的方便,我们仅考虑 A 发送数据而 B 接收数据并发送确认。因此 A 叫做发送方,而 B 叫做接收方。

无差错情况 A 发送分组 M1,发完就暂停发送,等待 B 的确认 (ACK)。B 收到了 M1 向 A 发送 ACK。A 在收到了对 M1 的确认后,就再发送下一个分组 M2。 A B 停止发送, 等待 ACK 确认 M1 收到 ACK, 继续发送 确认 M2 时间 时间

2. 出现差错 ?在接收方 B 会出现两种情况: ?B 接收 M1 时检测出了差错,就丢弃M1,其他什么也不做(不通知 A 收到有差错的分组)。 ?M1 在传输过程中丢失了,这时 B 当然什么都不知道,也什么都不做。?在这两种情况下,B 都不会发送任何信息。 ?如何保证 B 正确收到了 M1 呢?

2. 出现差错 ?解决方法:超时重传 ?A 为每一个已发送的分组都设置了一个超时计时器。 ?A 只要在超时计时器到期之前收到了相应的确认,就撤销该超时计时器,继续发送下一个分组 M2 。

相关主题