数据链路层实验任务书

合集下载

数据链路层实验.

数据链路层实验.

数据链路层实验三层交换机实现VLAN 间通信一、实验设备2 台 3560 三层交换机,3 台电脑。

二、实验要求使在同一VLAN里的计算机系统能跨交换机进行相互通信,而在不同VLAN里的计算机系统也能进行相互通信。

三、实验步骤第一步:在交换机 SwitchA 上创建 Vlan 10 ,并将 0/5 端口划分到 Vlan 10中。

Switch>enSwitch#conf t!进入全局配置模式。

Enter configuration commands, one per line.End with CNTL/Z.Switch(config)#hostname SwitchA!修改 Switch 名字为 SwitchASwitchA(config)# vlan 10!创建 Vlan 10 。

SwitchA(config-vlan)# name sales!将 Vlan 10 命名为 sales。

SwitchA(config-vlan)#exitSwitchA(config)#interface fastethernet 0/5!进入接口配置模式。

SwitchA(config-if)#switchport access vlan 10!将 0/5 端口划分到 Vlan 10 。

SwitchA(config-if)#exit第二步:在交换机 SwitchA 上创建 Vlan 20 ,并将 0/8 端口划分到 Vlan 20中。

SwitchA(config)# vlan 20!创建 Vlan 20 。

SwitchA(config-vlan)# name technical!将 Vlan 20 命名为 technical 。

SwitchA(config-vlan)#exitSwitchA(config)#interface fastethernet 0/8!进入接口配置模式。

SwitchA(config-if)#switchport access vlan 20!将 0/8 端口划分到 Vlan 20 。

数据链路层实验报告

数据链路层实验报告

2、教师批改学生实验报告时间应在学生提交实验报告时间后 10 日内。
教务处制
实验目的与要求:
一、 实验目的
1、理解各种不同数据链路层协议的原理 2、熟悉并掌握各种不同数据链路层协议的性能
二、 实验要求
1. 根据所给各种协议的源代码,分析与理解各种协议的原理与算法思想。 2. 相同参数情况下,运行各种协议,得到各种协议的性能。 3. 对于协议 5,6,分别给定不同的负载、丢包率及校验和失败情况,对比两种协议的性能。
数据处理分析:
实验结论: 1. 当所有数据相同时,协议 6 的传输相率是最好的 2. 当协议 5 和协议 6 的丢包率都较低时,俩者的传输效率相差不大 3. 当协议 5 和协议 6 的负载都很大时,协议 6 的传输效率明显较高。
指导教师批阅意见:
成绩评定:
指导教师签字: 年 月 日 备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
./protocol5 100000 40 2 10 7 0 ./protocol5 100000 40 20 10 7 0 6 ./protocol6 100000 40 0.2 10 7 0 ./protocol6 100000 40 2 10 7 0 ./protocol6 100000 40 20 10 7 0 5 ./protocol5 100000 40 20 0.2 7 0 ./protocol5 100000 40 20 2 7 0 ./protocol5 100000 40 20 20 7 0 6 ./protocol6 100000 40 20 0.2 7 0 ./protocol6 100000 40 20 2 7 0 ./protocol6 100000 40 20 20 7 0

实验二 数据链路层实验

实验二 数据链路层实验

实验2 数据链路层实验学号:_______ ______专业:________________姓名:________ _《计算机网络原理》实验2.1 VLAN 配置一、实验目的掌握交换机上创建VLAN 、分配静态VLAN 成员、删除VLAN 的方法。

二、实验内容1.产生两个VLAN ,并验证配置结果;2.为每个VLAN 命名,并分配交换机成员端口给他们;3.进行删除VLAN 的操作;4.理解VLAN1为什么不能被删除。

三、实验环境以太网交换机1台,PC 机5台,标准网线5 根;console 线1根 四、实验组网图五、实验步骤1.准备工作(1)在关机状态下用控制台电缆连接交换机和计算机。

(2)配置各PC :停用组网实验不相关网卡(一般为Realtek 网卡),启用实验组网用(一般为Dlink )网卡,关闭其防火墙,配置IP 、子网掩码。

2.系统视图下输入sysname 命令给交换机重命名。

(1)[Quidway]sysname switchA (2)创建VLAN 2和VLAN 3Ip:192.168.2.14/24Ip:192.168.2.10/2444 Ip:192.168.2.11/24Ip:192.168.2.13/24PAPBPCPDIp:192.168.2.12/24 PC[switchA]vlan 2[switchA]vlan 3(3)查看当前交换机上有几个VLAN.[switchA]display vlan(disp vlan)(4)把端口1、2、3指定给VLAN 2[switchA] VLAN 2 ‘转入VLAN视图[switchA -VLAN 2]port e1/0/1 e1/0/2 e1/0/3 ‘指定该VLAN内包含哪些端口如果VLAN包含多个连续的端口时也可以通过如下命令实现[switchA -VLAN 2]port e1/0/1 to e1/0/3(5)把端口23指定给VLAN 3[switchA]inter e1/0/23 ‘进入接口视图[switchA-interface e1/0/23]port access vlan 3 ‘指定该端口属于VLAN 3(6)用上步的方法把端口24指定给VLAN3(7)查看VLAN 2的信息[switchA]disp vlan 2(8)用ping命令测试网络连通性(9)用display mac-address命令查看mac地址表(10)删除VLAN 2删除该VLAN 2包含的端口,两种方法:一种在接口视图下,一种在VLAN视图下。

数据链路层数据包分析

数据链路层数据包分析

三、实验设备与环境: 1. Iris 网络分析软件 2. 网络数据包捕获 四、实验步骤与结果分析: 验证以太网 MAC 帧的格式是怎样的,并分析 MAC 帧中各字段的内容。 1.实验步骤: 1)打开 iris 并设置地址簿,点击搜索按钮,搜索地址簿。
2)打开过滤器选择 Layer2,3 和 IP 地址。
3)击 IP 地址,拖入这台主机的 IP 和本网段的其他主机的 IP
4)点击开始运行,输入 cmd,打开捕获按钮,ping 一下选择的本网段的其他主机的 IP 地址。
(5)查看 IRIS 捕获结果,如图:
2.结果分析:

从图中可以看出一个物理地址的头部信息包含目的 MAC 地址,源 MAC 地址和类型字段, 其目的 MAC 地址是 00:21:97:14:14: E7, 源 MAC 地址是 00:21:97:15:00:8C, 由图可知,目的主机为 172.28.27.40,源主机地址为 172.28.27.21. 硬件地址占 6 个字节,该协议长度为 4 个字节 捕获结果:一共捕获八条记录,四条发送记录,四条返回记录。 类型字段 08-00 表示它上层使用的是 IP 数据报 五:总结 通过这节实验课,我了解了如何使用 Iris 这个软件,学会了分析以太网 MAC 帧格式的结构、 含义等,我还了解了以太网 MAC 地址,学会在局域网中,通过使用 Ping 命令构造网络流量,捕获 其中 MAC 数据帧。
计算机学院软件工程系
实验名称: 班 级: 姓 日 实验地点: 指导教师 实验二 链路层数据包分析 名: 期: 学 号:
一、实验目的: 理解以太网 MAC 地址 学习并分析以太网 MAC 帧格式的结构、含义 二、实验内容: 在局域网中,通过使用 Ping 命令构造网络流量,捕获其中 MAC 数据帧进行分析

计算机网络实验 第2章 数据链路层实验

计算机网络实验 第2章 数据链路层实验

采用总线型或星形拓扑。由于以太网是基于共享总线的广播类型的网络,
所以当网络中有两个或两个以上站点同时发送数据时将引起冲突,因此以 太网使用CSMA/CD协议作为媒体控制协议解决冲突问题。
CSMA/CD协议的基本原理是:站点发送数据前先监听信道,信道 空闲时发送数据;在发送数据过程中持续监听信道,如果监听到冲 突信号则立即停止发送数据;同时发送强化冲突信号,以使网络中 正在发送数据的其它站点能够监听到冲突。
PPP帧格式如图所示
2.PPPoE
PPP协议不适于广播类型的以太网和另外一些多点访问类型的网络,于是 产生了PPPoE(Point-to-Point Protocol over Ethernet)。它为使用桥接以太 网的用户提供了一种宽带接入手段,同时还能提供方便的接入控制和计费。 每个接入用户均建立一个独一无二的PPP会话。会话建立前PPPoE必须通过 发现协议获取远端访问集中器的MAC地址。
第2章 数据链路层实验
实验三: 集线器与交换机的对比试验
3.1
背景知识
1.冲突域与广播域 冲突域:共享信道的传输机制决定了在网络中只能有一个站点发送数据 。如果两个或两个以上站点同时发送数据将发生冲突。虽然以太网在 MAC层采用CSMA/CD协议有效地降低了冲突的可能性,但是由于传播时 延的存在以及多个站点同时监听到信道空闲等情况的存在,冲突仍会发生 。所谓冲突域是指在该域内某一时刻只能有一个站点发送数据,如果两个 站点同时发送数据会引起冲突,则这两个站点处于同一个冲突域内。 广播域:以太网是广播网络,采用共享信道的传输机制来传输数据。在 以太网中,一个站点向所有站点发送数据的传输过程称为广播,这一过程 中传输的数据帧称为广播帧。在以太网中,能够接收到任意站点发送的广 播帧的所有站点的集合称为一个广播域。

数据链路层实验报告

数据链路层实验报告

数据链路层实验报告数据链路层实验报告引言:数据链路层是计算机网络中的一个重要组成部分,负责将网络层传递下来的数据分割成帧,并通过物理介质进行传输。

在本次实验中,我们通过搭建实验环境,深入了解和学习了数据链路层的相关知识,并进行了一系列实验。

实验一:帧的构造和解析在这个实验中,我们学习了帧的构造和解析过程。

通过使用C语言编写程序,我们能够手动构造和解析帧。

首先,我们学习了帧的基本结构,包括帧起始标志、目的地址、源地址、数据和帧检验序列等字段。

然后,我们通过实际操作,将这些字段按照规定的格式组装成一个完整的帧,并通过解析程序将其还原。

这个实验帮助我们深入理解了帧的构造和解析过程,为后续实验奠定了基础。

实验二:差错检测在数据链路层中,差错检测是非常重要的一项功能。

在这个实验中,我们学习了差错检测的原理和方法,并通过实验验证了其可靠性。

我们使用C语言编写了差错检测程序,通过给定的数据帧计算CRC校验码,并将其附加到帧的末尾。

然后,我们通过修改帧中的某一位,引入差错,并再次计算CRC校验码。

实验结果表明,差错检测程序能够准确地检测出帧中的差错,并帮助我们进一步理解差错检测的原理。

实验三:流量控制在数据链路层中,流量控制是保证数据传输可靠性的一项重要技术。

在这个实验中,我们学习了流量控制的原理和方法,并通过模拟实验验证了其有效性。

我们使用C语言编写了发送端和接收端的程序,并通过模拟发送端发送数据,接收端接收数据的过程。

实验结果表明,当发送端发送的数据速度超过接收端处理的速度时,接收端能够通过发送ACK帧来控制发送端的数据流量,保证数据传输的可靠性。

实验四:链路管理在数据链路层中,链路管理是保证网络正常运行的重要环节。

在这个实验中,我们学习了链路管理的原理和方法,并通过实际操作验证了其可行性。

我们使用C语言编写了链路管理程序,实现了链路的建立、维护和释放过程。

实验结果表明,链路管理程序能够准确地建立和释放链路,并保证链路的正常运行。

LAB-1:数据链路层及网络层数据包的捕捉与分析-2013版

LAB-1:数据链路层及网络层数据包的捕捉与分析-2013版

LAB-1:IEEE802标准和以太网数据链路层协议分析一.实验目的1.掌握以太网的报文格式2.掌握MAC地址、MAC广播地址的作用3.理解数据链路层协议的工作机制,掌握数据链路层帧(Ethernet II)的报文格式4.掌握网络协议编辑器软件(科来数据包生成器)的使用方法5.熟练掌握网络协议分析软件(WIRESHARK)的使用方法二.实验内容与步骤1.捕获真实的MAC帧●主机A、B作为一组,主机B启动协议分析软件,并设置只提取ICMP协议数据包的捕获过滤条件,主机A PING主机B,检查主机B捕获的数据包,并分析记录MAC帧格式●记录实验结果2.理解MAC地址的作用●主机A、B、C、D作为一组,主机A PING 主机C,主机B、D启动协议分析软件,并设置只提取源MAC地址为主机A的数据包捕获过滤条件,检查主机A所发送的ICMP数据帧,并分析该帧的内容。

●记录实验结果3.编辑并发送MAC广播帧●主机A、B、C、D作为一组,主机D启动协议编辑器,并编辑一个MAC帧(目标MAC: FFFFFFFFFFFF,源MAC: 主机D的MAC地址,协议类型或数据长度:大于0X600,数据字段:编辑长度在46-1500字节之间的数据),主机A、B、C启动协议分析软件,并设置只提取源MAC地址为主机D的数据包捕获过滤条件,主机D发送已编辑好的MAC帧,主机A、B、C捕获和检查是否有主机D所发送的MAC数据帧,并分析该帧的内容。

●记录实验结果三.实验结果分析与思考1. 在实验步骤2中,为什么有的主机会收到ICMP数据包而有的主机收不到?2. 在实验步骤3中,简述FFFFFFFFFFFF作为目标MAC地址的作用,主机A、B、C是否均可以收到主机D的广播帧?3. 结合实验结果,说明MAC广播帧的作用范围?四.实验报告1.按上述实验步骤与内容撰写实验报告(抄袭他人实验结果,双方均不计成绩)2.要求说明实验时间、地点及同级成员名单。

实验三 数据链路层实验

实验三 数据链路层实验

实验三协议分析软件使用及数据链路层协议分析一、实验目的TCP/IP 协议栈分为四层,从下往上依次为网络接口层、网络层、传输层和应用层,而网络接口层没有专门的协议,而是使用连接在 Internet 网上的各通信子网本身所固有的协议。

如以太网(Ethernet)的802.3 协议、令牌环网(TokenRing)的802.5 协议、分组交换网的X.25 协议等。

目前Ethernet 网得到了广泛的应用,它几乎成为局域网代名词。

因此,对以太网链路层的帧格式进行分析验证,使学生初步了解TCP/IP 链路层的主要协议以及这些协议的主要用途和帧结构。

(1)掌握协议分析软件sniffer的使用;(2)熟悉以太网链路层帧格式构成;二、实验要求能运用sniffer工具进行以太网链路层帧格式协议分析。

三、实验原理以太网简介IEEE 802 参考模型把数据链路层分为逻辑链路控制子层(LLC,Logical Link Control)和介质访问控制子层(MAC,Media Access Control)。

与各种传输介质有关的控制问题都放在MAC 层中,而与传输介质无关的问题都放在LLC 层。

因此,局域网对LLC 子层是透明的,只有具体到MAC 子层才能发现所连接的是什么标准的局域网。

IEEE 802.3 是一种基带总线局域网,最初是由美国施乐(Xerox )于1975 年研制成功的,并以曾经在历史上表示传播电磁波的以太(Ether)来命名。

1981 年,施乐公司、数字设备公司(Digital)和英特尔(Intel)联合提出了以太网的规约。

1982 年修改为第二版,即DIX Ethernet V2,成为世界上第一个局域网产品的规范。

这个标准后来成为IEEE 802.3 标准的基础。

在 802.3 中使用1 坚持的CSMA/CD(Carrier Sense Multiple Access with Collision Detection )协议。

实验二数据链路层实验

实验二数据链路层实验

实验二数据链路层实验实验项目性质:设计性计划学时:4实验环境:实验日期:2015年10月14日一、实验目的1、理解并掌握数据链路层协议的功能。

2、进一步理解停止等待协议和滑动窗口协议的基本工作原理。

3、掌握计算机网络协议的基本实现技术。

4、利用RS 232C通信接口实现两台PC间传输文件。

二、实验内容与要求1、设计完成数据链路层相关类;2、开发一个使用RS232C接口在两台计算机之间采用停止等待协议传输信息(文件)的程序;3、开发一个使用RS232C接口在两台计算机之间采用滑动窗口协议传输文件的程序。

完成实验内容中的第1、2部分,有能力的同学完成全部内容。

三、实验(设计)仪器设备和材料清单计算机两台,串行电缆一根。

四.相关知识1 数据路层概述数据链路层协议应提供的基本功能有:(1) 数据在数据链路上的正常传输(建立、维护和释放)。

(2) 帧定界与同步,以实现透明传输。

(3) 差错控制和流量控制。

(4) 透明传输。

2 数据成帧方法在数据链路层,为实现透明传输及进行差错控制和流量控制,在把数据送到物理层之前,需将若干个数据组成一帧,并在其中加上其他必要的控制信息。

控制信息形成(数据成帧)的方法有以下几种:字符计数法、带字符填充的首尾界符法、带填充位的首尾标志法、物理层编码违例法。

3 差错控制与流量控制为确保帧可靠地交付接收方,接收方在收到帧后,应向发送方应答,告知是否正确收到帧,因此在数据链路层要建立差错控制机制:差错控制方法、CRC循环冗余校验、流量控制。

4 数据链路层协议(1)停止等待协议停止等待协议的基本原理是:发送方在数据帧中加入校验码(CRC),由接收方检查;若出错,返回NAK帧(否认帧),否则发送ACK帧(确认帧);发送方收到NAK帧后重发数据帧,若收到ACK帧可发送下一帧。

当超时计时事件发生时,重发丢失的帧,这样可通过等待发送来实现流量控制,如图3-2所示。

停止等待协议发送方的算法如下:(1) 从主机取一个数据帧。

实验4 链路层实验实验报告

实验4 链路层实验实验报告

链路层实验一、实验目的1)计算机网络的数据链路层协议保证通信双方在有差错的通信线路上进行无差错的数据传输,是计算机网络各层协议中通信控制功能最典型的一种协议。

2)本实验实现一个数据链路层协议的数据传送部分,目的在于使学生更好地理解基本数据链路层协议的基本工作原理,掌握计算机网络协议的基本实现技术。

二、实验内容在一个数据链路层的模拟实现环境中,用C 语言实现下面数据链路层协议。

分析一个理想的链路层协议的实现,熟悉它的实现环境。

对于前面实现的协议进行扩充,实现它的第一次改进,如何防止发方过快淹没收方。

对②再假设在不可靠的的链路上进行通信。

三、实验步骤1)实验程序a)发送端sender.c:#pragma comment(lib, "ws2_32.lib")#include <winsock.h>#include <stdio.h>////////////////////////////////////////////////////////////////////////////发送帧////////////////////////////////////////////////////////////////////////// voidSendFrame(int * frameNumCurrent,intwinSizeCurrent,SOCKET * socketConn){char sendBuffer[128]; //发送数据if (_snprintf(sendBuffer,sizeof(sendBuffer)-1,"%d",*frameNumCurrent) < 0){printf("写数据出错!\n");return;}else{sendBuffer[sizeof(sendBuffer)-1] = '\0';}//发送数据第几帧if(send(*socketConn,sendBuffer,sizeof(sendBuffer),0) == SOCKET_ERROR){printf("发送数据失败!\n");return;}else{printf("现在在传送帧%s\n",sendBuffer);}}////////////////////////////////////////////////////////////////////////////接收ACK////////////////////////////////////////////////////////////////////////// voidReceiveACK(int * frameNumCurrent,SOCKET * socketConn){char recvBuffer[128];//接收数据int length = sizeof(structsockaddr);intframeNum = 0;//接收到的ACK号//接收ACK,判断是否有超时或者是否错误ACKif(recv(*socketConn,recvBuffer,sizeof(recvBuffer),0) == SOCKET_ERROR)//出现超时{printf("接收数据超时!需要重新传送帧%d\n\n",*frameNumCurrent);return;}else{frameNum = atoi(recvBuffer);//正确ACKif (frameNum == *frameNumCurrent){//正确ACK 准备传送下一帧*frameNumCurrent ^= 1;printf("接收到正确的ACK,已经成功传送帧%d,将要传送帧%d\n\n",(*frameNumCurrent)^1,*frameNumCurrent);}//错误ACKelse if (frameNum == ((*frameNumCurrent) ^ 1)){//得到错误ACK 不进行操作,主函数中进行重传操作printf("接收到错误ACK,帧%d传送错误,需要重新传送帧%d\n\n",*frameNumCurrent,*frameNumCurrent);}}}////////////////////////////////////////////////////////////////////////////初始化发送端监听socket//////////////////////////////////////////////////////////////////////////BOOL InitSocketSender(SOCKET * socketSender){SOCKADDR_IN addrSender;WORD wVersionRequested;WSADATA wsaData;//版本wVersionRequested = MAKEWORD(1,1);//启动if (WSAStartup( wVersionRequested, &wsaData) != 0){printf("启动不成功!\n");return FALSE;}if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ){printf("版本错误!\n");WSACleanup();return FALSE;}//创建socket*socketSender = socket(AF_INET,SOCK_STREAM,0);if(*socketSender == INVALID_SOCKET){printf("创建套接字失败!\n");return FALSE;}//创建地址信息addrSender.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//所有地址addrSender.sin_family=AF_INET;addrSender.sin_port=htons(8000);//端口号//绑定端口if(bind(*socketSender,(SOCKADDR*)&addrSender,sizeof(structsockaddr)) == SOCKET_ERROR){printf("绑定失败!\n");return FALSE;}//监听if (listen(*socketSender,SOMAXCONN) == SOCKET_ERROR){printf("监听失败!\n");return FALSE;}return TRUE;}////////////////////////////////////////////////////////////////////////////线程函数用于处理一个客户端请求//////////////////////////////////////////////////////////////////////////DWORD WINAPI ConnectClient(LPVOID socketConn){int count = 0;//循环次数计数器intwinSizeCurrent = 0;//当前发送窗口大小intframeNumCurrent = 0;//当前发送的帧号printf("初始状态发送窗口是:%d,准备向接收端发送数据\n\n",winSizeCurrent);++winSizeCurrent;while(count < 20){SendFrame(&frameNumCurrent,winSizeCurrent,(SOCKET*)socketConn);ReceiveACK(&frameNumCurrent,(SOCKET*)socketConn);++count;}printf("模拟结束!\n");//关闭Socketclosesocket(*((SOCKET*)socketConn));free(socketConn);return 0;}void main(){HANDLE hThread;//线程句柄DWORD threadId;SOCKET socketSender;//监听socketSOCKADDR_IN addrReceiver;//服务器地址int length = sizeof(structsockaddr);inttimeOut = 3000;//超时3秒//初始化发送端监听socketif (!InitSocketSender(&socketSender)){printf("初始化失败,退出!\n");WSACleanup();return;}printf("等待建立连接\n\n");//循环等待请求while (TRUE){SOCKET *socketConn = (SOCKET *)malloc(sizeof(SOCKET));*socketConn = accept(socketSender,(structsockaddr*)&addrReceiver,&length);printf("连接建立成功!接收端的地址是:%s\n\n",inet_ntoa(addrReceiver.sin_addr));if(setsockopt(*socketConn,SOL_SOCKET,SO_RCVTIMEO,(char*)&timeOut,sizeof(timeOut)) == SOCKET_ERROR){printf("设置接收时限错误!");closesocket(*socketConn);continue;}//开辟线程处理一个客户端请求hThread = CreateThread(NULL,0,ConnectClient,(LPVOID)socketConn,0,&threadId);}//清理操作closesocket(socketSender);WSACleanup();system("pause");}b)接收端receiver.c:#pragma comment(lib, "ws2_32.lib")#include <winsock.h>#include <stdio.h>#include <time.h>char buffer[128];int front=0;////////////////////////////////////////////////////////////////////////////接收帧//////////////////////////////////////////////////////////////////////////BOOL ReceiveFrame(int * frameExpect,int * frameRecv,intwinRecvSize,SOCKET socket){char recvBuffer[128];//接收数据intframeNum;//接收帧号//从发送端接收帧if(recv(socket,recvBuffer,sizeof(recvBuffer),0) == SOCKET_ERROR){printf("接收数据失败!\n");return FALSE;}frameNum = atoi(recvBuffer);if (frameNum != *frameExpect)//接收帧和希望接收帧号不匹配{printf("所要接收的帧和接收到的帧不匹配!,要接收的帧号是:%d,接收到的帧号是:%d\n",*frameExpect,frameNum);return FALSE;}else//接收帧和希望接收帧号匹配{*frameRecv = frameNum;printf("已经成功地接收帧%d,接收端窗口大小是:%d\n",*frameRecv,winRecvSize);}return TRUE;}////////////////////////////////////////////////////////////////////////////发送ACK//////////////////////////////////////////////////////////////////////////BOOL SendACK(int * frameExpect,int * frameRecv,SOCKET socket){//通过随机数随机产生正确ACK帧号、错误ACK帧号以及不发送ACK帧char sendBuffer[128];//发送数据int random = 0;//随机数0,1,2,0表示返回正确ACK 1表示返回错误ACK 2表示不返回ACKrandom = rand()%3;if (random == 0)//表示正确接收,并且正确回复ACK{if (_snprintf(sendBuffer,sizeof(sendBuffer)-1,"%d",*frameRecv) < 0){printf("写数据出错!\n");return FALSE;}else{sendBuffer[sizeof(sendBuffer)-1] = '\0';}//发送正确的ACKif(send(socket,sendBuffer,sizeof(sendBuffer),0) == SOCKET_ERROR){printf("发送数据失败!\n");return FALSE;}else{*frameExpect ^= 1;//经过确认,准备接受下一帧printf("针对已经接收到的帧%d回复ACK,回复的ACK号是%d:\n\n",*frameRecv,*frameRecv);}}else if (random == 1)//表示正确接收,并且错误回复ACK{if (_snprintf(sendBuffer,sizeof(sendBuffer)-1,"%d",(*frameRecv)^1) < 0){printf("写数据出错!\n");return FALSE;}else{sendBuffer[sizeof(sendBuffer)-1] = '\0';}//发送错误的ACKif(send(socket,sendBuffer,sizeof(sendBuffer),0) == SOCKET_ERROR){printf("发送数据失败!\n");return FALSE;}else{printf("针对已经接收到的帧%d回复ACK,回复的ACK号是%d:\n\n",*frameRecv,(*frameRecv)^1);}}else//表示正确接收,并且不回复ACK{//不发送ACKprintf("没有针对已经接收到的帧%d发送ACK\n\n",*frameRecv);}return TRUE;}////////////////////////////////////////////////////////////////////////////初始化发送端监听socket//////////////////////////////////////////////////////////////////////////BOOL InitSocketReceiver(SOCKET * socketRecv){WORD wVersionRequested;WSADATA wsaData;SOCKADDR_IN addrSender;int length = sizeof(structsockaddr);//版本wVersionRequested = MAKEWORD(1,1);//启动if (WSAStartup( wVersionRequested, &wsaData) != 0){printf("启动socket不成功!\n");return FALSE;}if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ){printf("版本错误!\n");WSACleanup( );return FALSE;}//创建socket*socketRecv = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); ;if(socket == INVALID_SOCKET){printf("创建套接字失败!\n");return FALSE;}//创建地址信息addrSender.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");//发送端主机IP addrSender.sin_family = AF_INET;addrSender.sin_port = htons(8000); //端口//连接发送端if (connect(*socketRecv,(structsockaddr*)&addrSender,length) == SOCKET_ERROR) {printf( "连接服务器失败!\n" );WSACleanup();return FALSE;}return TRUE;}void main(){SOCKET socketRecv;//接收端socketintframeExpect = 0;//期待的帧号intwinRecvSize = 8;//窗口大小intframeRecv = 0;//接收的帧号int count = 0;//循环次数计数器BOOL recvFlag = FALSE;//是否正确接收帧//连接服务器if (!InitSocketReceiver(&socketRecv)){printf( "初始化客户端失败,退出!\n" );WSACleanup();return;}else{printf("已经成功连接服务器\n\n");printf("初始状态接收端窗口大小是:%d,准备接收发送端数据\n\n",winRecvSize);srand((unsigned)time(NULL));while(count < 20){recvFlag = ReceiveFrame(&frameExpect,&frameRecv,winRecvSize,socketRecv);if (recvFlag)//正确接收帧,发送ACK{SendACK(&frameExpect,&frameRecv,socketRecv);}else{printf("得到错误的帧!\n");}++count;}printf("模拟结束!\n");}//清理closesocket(socketRecv);WSACleanup( );system("pause");}2)实验结果a)发送端:b)接收端:四、实验小结本次实验我们实现的是ARQ协议,而本次实验程序设计的精妙之处在于对ACK的正确返回、ACK的错误返回以及ACK丢失三种情形的成功模拟。

1实验一数据链路层实验

1实验一数据链路层实验

1实验一数据链路层实验实验1 数据链路层——检错与纠错一实验任务1通过【海明编码】和【CRC 检错】测试软件,验证纠错与检错功能和性能,掌握其工作原理;2编写海明编码程序和 CRC 编码程序;3总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。

二实验环境1操作系统Windws 9x/NT/2000/XP/2003/2008/Vista/72软件Visual C++ 6.0/2005/2008/2010、Visual Basic 6.0/2005/2008/2010、Turbo C/C++3软件 C++ Builder 6.0/2006/2007/2009/2010/XE/XE2、Java、C# 或其它4数制转换与比较 (16进制、2进制转换;通过比较,找出差错个数、差错位置和突发差错长度)。

三海明编码实验下载【海明编码】测试软件,运行:1 验证纠错能力;2 验证检错能力;3 若数据=10011001,海明编码=?,校验位=?4若接收端收到的信息=101010101001(海明编码),数据=?5 尝试编写海明编码的程序。

四CRC编码实验下载【CRC-8检错】测试软件,运行:CRC8UndetectedErrors1验证检错能力,能检几位错?2 找出检错失败的信息码,并进行分析;3 若数据=“Hello!”,采用生成多项式107H,CRC校验码=?4若数据=“Hello!”,采用生成多项式131H,CRC校验码=?5若接收端收到的信息=4F6F1DH,采用生成多项式107H进行校验,结果如何?6自定义生成多项式,实验其性能,如何选择生成多项式?7试编写CRC-8编码程序;8试编写CRC-16编码程序,参考【CRC-16 检错】测试软件。

CRC16UndetectedErrors9 对比CRC-8、CRC-16、CRC-32的检错性能;10 试编写CRC-32编码程序,参考【CRC-32 检错】测试软件。

实验1.数据链路层与网络层协议实验doc

实验1.数据链路层与网络层协议实验doc

《计算机网络》实验指导书徐州工程学院信电工程学院通信与网络教研室编实验1-1预备实验(Ethereal工具的使用)Ethereal 是当前较为流行的一种计算机网络调试、数据包嗅探和网络协议分析软件。

该软件使用libpcap库或winpcap库从主机网络接口中捕获数据包。

Ethereal具有设计完美的GUI 和众多分类信息及过滤选项。

用户通过Ethereal,同时将网卡插入混合模式,可以查看到网络中发送的所有通信流量并捕获到所有的数据包。

一、下载安装Ethereal从网站上可以下载Ethereal软件的最新版本,新版本Ethereal 已经整合winpcap,下载Ethereal即可完成安装。

二、Ethereal的使用1.执行安装目录下的ethereal.exe文件,选择菜单Capature->Options,打开选项配置对话框,如图1所示。

对以下选项进行配置。

图1:Option配置窗口(1)Interface:指定在哪个接口(网卡)上抓包。

一般情况下都是单网卡,所以使用缺省的就可以了。

(2)Limit each packet:限制每个包的大小,缺省情况不限制。

(3)Capture packets in promiscuous mode:是否使用混杂模式。

如果选中,抓取所有的数据包。

如果只需要监听本机收到或者发出的包,这个选项不选。

(4)Capture Filter:过滤器。

只捕获满足过滤规则的分组,例如,捕捉主机202.14.26.53和www服务器之间的通信(主机202.14.26.53是自身),capture filter 的filter string设置为:host 202.14.26.53 and (5)Capture File:可以指定将捕获到的分组直接保存在一个文件里,而不是存于内存中,在这里输入文件名称。

如果选择Using ring buffer(使用环行缓冲区),分组可以被写入多个文件,当每个文件写满或者在指定秒数的时间后交换文件。

《计算机网络基础及应用》 实训文档 第4章 数据链路层抓包实践

《计算机网络基础及应用》 实训文档 第4章 数据链路层抓包实践

实验4-2 数据链路层抓包实践一、实验目的(1)理解数据链路层帧格式(2)掌握抓包软件的使用(3)掌握通过抓包软件抓取帧并进行分析的办法。

二、相关理论数据链路层的传输单位为帧(Frame或称分组),在发送端数据链路层将网络层的数据按照一定格式打包为帧并发送给物理层,在接收端数据链路层将物理层的数据按照一定格式解包为帧并发送给网络层。

目前,在数据链路层使用比较多的是以太网(Ethernet)协议。

以太网帧格式如下:目的Mac地址源Mac地址类型数据校验码6字节6字节2字节46-1500字节4字节目的Mac地址:下一跳的Mac地址,帧每经过一跳(即每经过一台网络设备如交换机)该地址会被替换,直到最后一跳被替换为接收端的Mac地址。

源Mac地址:发送端Mac地址。

类型:用来指出以太网帧内所含的上层协议。

对于IP报文来说,该字段值是0x0800。

对于ARP信息来说,以太类型字段的值是0x0806。

数据:从上层或下层传来的有效数据,如果少于46个字节,必须增补到46个字节。

校验码:CRC校验码,校验数据在传输过程中是否出错。

三、实验内容(1)掌握抓包软件的使用(2)掌握通过抓包软件抓取帧并进行分析的办法四、实验步骤(1)打开Wireshark,其主界面如下:(2)在“抓包”菜单中选中options,可以设置抓包选项,如下图所示,这里我们需要选择要对其进行抓包的网卡。

选择完成后按“start”开始抓包。

过几秒钟后选择菜单capture->stop停止抓包。

显示抓包结果:任意选中一帧,可以看到该帧所在的各层分组的头部如下:通过头部信息可以看出,该帧在数据链路层使用的是Ethernet II协议,到网络层被封装为IP 数据包,到传输层被封装为UDP数据包,没有应用层协议。

点开Ethernet II前的+号,可以看到该帧在数据链路层的详细信息:可以看出该帧的源Mac地址为00:30:18:a9:c5:aa,目的Mac地址为:94:0C:6d:66:00:8a, 类型特征码为0800(即表示IP封装),在数据区可以看到该帧的完整数据(16进制表示,可以在数据区右键选择2进制表示)。

实验二数据链路层实验

实验二数据链路层实验

实验二数据链路层实验一、实验目的本实验旨在通过实际操作,加深对数据链路层的理解,掌握数据链路层的基本概念、协议和实现方法。

二、实验设备和工具1. 计算机:一台2. 网络摹拟器软件:如GNS3、Packet Tracer等3. 网络线:若干条4. 交换机:一台三、实验步骤1. 网络拓扑搭建a. 打开网络摹拟器软件,创建一个新项目。

b. 在项目中添加两台计算机和一台交换机,并连接它们。

c. 配置计算机的IP地址和子网掩码,确保它们在同一网段内。

2. 数据链路层基本概念实验a. 打开两台计算机的命令行界面。

b. 在计算机1上使用ping命令向计算机2发送数据包,并观察结果。

c. 分析ping命令的过程,了解数据链路层的作用和功能。

3. 数据链路层帧封装实验a. 在计算机1上创建一个文本文件,写入一段文字。

b. 使用数据链路层的帧封装方法,将文本文件封装成数据帧。

c. 将封装后的数据帧发送给计算机2,并接收并解析数据帧。

d. 比较发送前和接收后的数据是否一致,验证数据链路层帧封装的正确性。

4. 数据链路层差错检测实验a. 在计算机1上创建一个文本文件,写入一段文字。

b. 使用数据链路层的差错检测方法,对文本文件进行差错检测。

c. 将差错检测后的结果发送给计算机2,并进行差错检测验证。

d. 比较发送前和接收后的结果,验证数据链路层差错检测的准确性。

5. 数据链路层流量控制实验a. 在计算机1上创建一个较大的文件。

b. 使用数据链路层的流量控制方法,控制文件的发送速率。

c. 将文件发送给计算机2,并观察发送过程中的流量操纵情况。

d. 分析流量控制的效果,验证数据链路层流量控制的可行性。

6. 数据链路层可靠传输实验a. 在计算机1上创建一个文本文件,写入一段文字。

b. 使用数据链路层的可靠传输方法,将文本文件分割成多个数据包。

c. 将数据包发送给计算机2,并进行接收和重组。

d. 比较发送前和接收后的文本内容,验证数据链路层可靠传输的正确性。

计算机网络关于数据链路层协议的实验报告

计算机网络关于数据链路层协议的实验报告

实验报告实验名称数据链路层协议的理解与实现课程名称计算机网络姓名王颖学号16008404日期地点成绩教师王磊电气工程学院东南大学实验一数据链路层协议的理解与实现一.实验目的:1.加深对流量控制、差错处理方法的理解;2.熟悉TCP/IP编程, 将书本知识运用到实验中;3.开拓学生的创新意识,培养学生的独立动手操作的能力;二.实验内容:1.利用已有的模拟信道程序,编制发送、接收程序的部分模块,使系统具有可靠的收发功能。

具体要求1)采用无连接Socket编程2)地址与端口发送端:地址:127.0.0.1 端口:8001接收端:地址:127.0.0.1 端口:600134)需考虑的异常情况:出错、丢失、延时5)采用停等协议6)单工方式7)ACK/NAK的表示:ACK:0x06NAK:0x152.待完成模块要求1)发送程序:偶校验;编码;发送、接收;差错处理、流量控制。

2)接收程序:检查偶校验;应答;发送、接收三.实验环境(软件、硬件及条件):Microsoft visual C++ 6.0四.实验原理1、程序实现的原理Windows Sockets(套接字) 是在Windows下一套开放的、支持多种协议的网络编程接口规范。

为Windows下网络异步通信提供了一种方便的开发和运行环境。

Windows Sockets规范建立在BSD UNIX 中实现的Berkeley 套接字模型上,现已是TCP/IP网络的标准。

它独立于底层的协议。

其原理示意图如下1)数据链路层数据链路层目的是建立在物理层基础上,通过一些数据链路层协议,在不太可靠的物理链路上实现可靠的数据传输。

即数据链路层提供网络中相邻节点之间可靠的数据通信。

数据链路层的主要功能是为网络层提供连接服务,并在数据链路连接上传送帧。

依据功能可以分为有连接和无连接两种。

本实验采用的是有应答,无连接服务。

无连接服务时,发送方的数据链路层要发送数据时,就直接发送数据帧。

计算机网络数据链路层实验报告

计算机网络数据链路层实验报告

计算机网络数据链路层实验报告目录一、实验内容和实验环境描述(1)实验内容和目的(2)实验环境二、软件设计(1)数据结构(2)模块结构(3)算法流程三、实验理论分析四、实验结果:(1)性能测试记录表(2)截图(由于截图近200张,这里只列出最优参数的情况,其余参数对比图及其log文件在“参数对比“文件夹里)五、源程序清单六、实验结果分析七、研究和探索的问题八、实验总结和心得体会一、实验内容和实验环境描述(1)实验内容和目的利用所学数据链路层原理,自己设计一个滑动窗口协议,在仿真环境下编程实现有音信道环境下两站点之间无差错双工通信。

信道模型为8000bps 全双工卫星信道,信道传播时延270毫秒,信道误码率为10-5,信道提供字节流传输服务,网络层分组长度固定为256字节。

通过该实验,进一步巩固和深刻理解数据链路层误码检测的CRC 校验技术,以及滑动窗口的工作机理。

滑动窗口机制的两个主要目标:(1) 实现有噪音信道环境下的无差错传输; (2)充分利用传输信道的带宽。

在程序能够稳定运行并成功实现第一个目标之后,运行程序并检查在信道没有误码和存在误码两种情况下的信道利用率。

为实现第二个目标,提高滑动窗口协议信道利用率,需要根据信道实际情况合理地为协议配置工作参数,包括滑动窗口的大小和重传定时器时限以及ACK 搭载定时器的时限。

这些参数的设计,需要充分理解滑动窗口协议的工作原理并利用所学的理论知识,经过认真的推算,计算出最优取值,并通过程序的运行进行验证。

通过该实验提高同学的编程能力和实践动手能力,体验协议软件在设计上各种问题和调试难度,设计在运行期可跟踪分析协议工作过程的协议软件,巩固和深刻理解理论知识并利用这些知识对系统进行优化,对实际系统中的协议分层和协议软件的设计与实现有基本的认识。

(2)实验环境WindowsXP环境PC机,Microsoft Visual C++ 6.0 集成化开发环境。

二、软件设计(1)数据结构(selective)#define MAX_SEQ 15#define NR_BUFS ((MAX_SEQ+1)/2)#define DATA_TIMER 3000 //帧超时时间间隔#define ACK_TIMER 240 //ack的超时间隔struct FRAME {unsigned char kind;unsigned char ack;unsigned char seq;unsigned char data[PKT_LEN];unsigned int padding;};int no_nak=1; //标志是否已经发送过nakstatic int phl_ready = 0;unsigned char oldest_frame=MAX_SEQ+1;其中kind表示数据的类型;ack表示确认帧;seq表示帧的序列号;data[PKT_LEN]表示数据内容;padding此处没有用到。

计算机网络-数据链路层实验一

计算机网络-数据链路层实验一

北京邮电大学软件学院2014-2015学年第1学期实验报告课程名称:计算机网络实验名称:数据链路层实验实验完成人:姓名:学号:________成绩:姓名:________学号:________成绩:________姓名:________学号:________成绩:________姓名:________学号:________成绩:________姓名:________学号:________成绩:________指导教师:_____ ________________________日期: 2014 年 10 月 27 日实验目的通过本实验使学生理解数据链路层协议数据单元(PDU)的定义和数据链路层功能。

一、二、实验内容a)使用网络协议分析软件Wireshark抓取本计算机访问某网站(例如北京邮电大学网站,其网址为)时发送和接收到的数据包;b)对所抓取的数据包进行分析,分析数据链路层的帧结构及各字段的含义。

三、实验环境1.Windows操作系统2.Wireshark (版本1.10):Wireshark是一个开源的抓包工具。

四、实验结果抓包截图如下:从中选择第185号包进行分析,点进去之后帧的详细情况如下图:数据链路层信息截图:Destination,Source,Type字段:其中destination字段中存取的是该包的目标主机的Mac地址(74:e5:0b:d1:7c:58),占据了数据链路层串中前6个位,之后的(00:0f:e2:6a:3c:fd)知道就是Source字段,后面的08 00两位指的是协议类型为IPv4.如图所示,我的ip是10.125.115.161,如果包的Source的IP地址是这个的话,那么就是我发送的包,同理,destination是我的IP的话,就是我接受的包。

数据链路层实验

数据链路层实验

实验四:数据链路层实验实验准备实验环境:A192.168.0.10500:06:58:e3:4d:1d B192.168.0.10000:07:e9:53:87:d9 DHCP服务器192.168.0.100:06:25:8d:be:1d第一个实验地址解析协议ARP确定与本地网上一个IP地址对应的MAC地址主机A捕获的Ethernet跟踪记录保存在arp.cap第二个实验在主机B上,我们用命令ipconfig/release释放IP地址192.168.0.100后用命令ipconfig/renew重新获取IP地址。

主机A跟踪这些数据活动,并保存在dhcpRealMAC.cap文件中重新设置主机B的MAC地址为00:10:7b:59:18:64.MAC地址更变在计算机重启会生效.当B启动时,我们捕获所产生的网络通信流的Ethereal跟踪记录并分离DHCP分组。

跟踪保存在dhcpRebootNewMAC.cap文件中。

然后我们重设主机B的MAC地址为与主机A一样的MAC地址00:06:25:8d:be:1d。

重启主机。

使新的MAC地址生效DHCP服务器分配IP地址192.168.0.107给主机B(没有分配地址192.168.0.105.因为主机A在网络上并响应了该IP地址。

)我们捕获主机B ping主机B的跟踪记录并保存在duplicateMACs.cap文件中两台主机连接到一个以太网集线器上。

在实验过程中,主机A保持以太网MAC地址和IP地址不变,而主机B将分配多个MAC地址。

问题:1.在第一个实验中,如果我们计时ping命令要多久才能成功返回的话,就会发现第二次ping命令由于ARP请求要花费更长的时间。

ARP请求和应答增加了多少时间?你是如何知道的?0.0001390.000131通过查看arp.cap第一次ping的时候request与reply之间相差0.000139第二次ping的时候发送ARP广播请求在15.238511到15.238642应答完成2.以太网地址比IP地址多多少位?可以表示出多少个唯一的MAC地址?可以标识多少个唯一的IP地址?32位48位232个3.当分配一个重复的MAC地址给主机B时,寻找一个方法使DHCP服务器不分配192.168.0.105给主机B。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机网络实验一任务一: Windows XP上的网络配置与操作实践Windows XP网络配置如何在Windows XP中配置IP地址∙网络连接->属性->TCP/IP->属性∙IP地址、子网掩码(subnet mask)、网关(default gateway)、DNS服务器IPCONFIG查看电脑IP地址、Mac地址等信息,需要在CMD命令窗口中执行。

USAGE:ipconfig [/? | /all | /renew [adapter] | /release [adapter] |/flushdns | /displaydns | /registerdns |/showclassid adapter |/setclassid adapter [classid] ]Options:/? Display this help message/all Display full configuration information./release Release the IP address for the specified adapter. /renew Renew the IP address for the specified adapter./flushdns Purges the DNS Resolver cache./registerdns Refreshes all DHCP leases and re-registers DNS names/displaydns Display the contents of the DNS Resolver Cache./showclassid Displays all the dhcp class IDs allowed for adapter./setclassid Modifies the dhcp class id.说明:DOS命令的描述方法/格式例子:C:\>ipconfigWindows IP ConfigurationEthernet adapter 本地连接 4:Connection-specific DNS Suffix . : localdomainIP Address. . . . . . . . . . . . : 192.168.176.128Subnet Mask . . . . . . . . . . . : 255.255.255.0Default Gateway . . . . . . . . . : 192.168.176.2>>>练习:在自己机器上运行此命令,尝试各种参数,解释结果。

PING测试特定主机能否通过IP到达.Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS][-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] target_nameOptions:-t Ping the specified host until stopped.--to see statistics and continue - type Control-Break; --to stop - type Control-C.-a Resolve addresses to hostnames.-n count Number of echo requests to send.-l size Send buffer size.-f Set Don't Fragment flag in packet.-i TTL Time To Live.-v TOS Type Of Service.-r count Record route for count hops.-s count Timestamp for count hops.-w timeout Timeout in milliseconds to wait for each reply.在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以用-l自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能宕机。

例子:C:\>ping Pinging [221.236.31.145] with 32 bytes of data: Reply from 221.236.31.145: bytes=32 time=12ms TTL=128Reply from 221.236.31.145: bytes=32 time=13ms TTL=128Reply from 221.236.31.145: bytes=32 time=10ms TTL=128Reply from 221.236.31.145: bytes=32 time=11ms TTL=128Ping statistics for 221.236.31.145:Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:Minimum = 10ms, Maximum = 13ms, Average = 11ms1. 大家同时ping本网网关IP地址, -t参数,查看返回时间2. 用-l 65500 改数据包大小,看返回时间的变化3. ping –i 30 测试连通性,将30改为1,3,5,7分别测试>>>练习:在自己机器上运行此命令.目标地址分别为(但不限于):∙127.0.0.1;∙;∙;∙;尝试各种参数,解释结果。

TRACERT路由跟踪:显示分组数据包在IP网络经过的路由器的IP地址Usage: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_nameOptions:-d Do not resolve addresses to hostnames.-h maximum_hops Maximum number of hops to search for target.-j host-list Loose source route along host-list.-w timeout Wait timeout milliseconds for each reply.C: >tracert 通过最多 30 个跃点跟踪到 [202.115.118.98] 的路由:1 86 ms2 ms 4 ms 192.168.81.12 <1 毫秒 <1 毫秒 <1 毫秒 192.168.251.1933 <1 毫秒 <1 毫秒 <1 毫秒 10.11.2.1134 2 ms 2 ms 1 ms 10.8.10.145 1 ms 1 ms 1 ms [202.115.118.98] 跟踪完成。

>>>作业:选择目标地址为(但不限于)∙;∙;∙;解释所经过的IP和地理位置(参见后面IP地理位置查询)NETSTAT显示当前主机TCP/IP 网络连接信息。

Usage:NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval] -a 显示所有连接和监听端口。

-b 显示包含于创建每个连接或监听端口的可执行组件。

-e 显示以太网统计信息。

此选项可以与–s 选项组合使用。

-n 以数字形式显示地址和端口号。

-o 显示与每个连接相关的所属进程 ID。

-p proto 显示 proto 指定的协议的连接;proto 可以是下列协议之一: TCP、UDP、TCPv6 或 UDPv6。

如果与 -s 选项一起使用以显示按协议统计信息,proto 可以是下列协议之一: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。

-r 显示路由表。

C:\>netstat –aActive ConnectionsProto Local Address Foreign Address StateTCP ljbxp:epmap ljbxp:0 LISTENINGTCP ljbxp:microsoft-ds ljbxp:0 LISTENINGTCP ljbxp:1027 ljbxp:0 LISTENINGTCP ljbxp:5152 ljbxp:0 LISTENINGTCP ljbxp:netbios-ssn ljbxp:0 LISTENINGTCP ljbxp:1032 77.67.126.16:http CLOSE_WAITUDP ljbxp:microsoft-ds *:*UDP ljbxp:isakmp *:*UDP ljbxp:4500 *:*UDP ljbxp:ntp *:*UDP ljbxp:1900 *:*UDP ljbxp:ntp *:*UDP ljbxp:netbios-ns *:*UDP ljbxp:netbios-dgm *:*UDP ljbxp:1900 *:*>>>作业:在以下几种状态下,运行此命令,尝试各种参数,解释结果的不同。

∙未启动任何应用程序∙打开网页(或其他网页)∙打开QQ任务二:数据链路层协议以及帧格式使用软件:Packet Tracer 5.2版本。

当 IP 数据包通过网间时,可封装在许多不同的数据链路层帧中。

Packet Tracer 支持以太网、Cisco 的私有 HDLC、基于 PPP 的 IETF 标准以及帧中继。

当数据包在路由器之间传送时,帧将会解封,而IP数据包将封装在出站接口的帧中。

本练习将跟踪网间的 IP 数据包,研究不同的第 2 层封装。

模拟网络:PC1 通过四个路由器连接到 PC2。

这些路由器之间的三条链路各自使用不同的链路层协议。

Cisco1 与 Cisco2 之间的链路使用 Cisco 的私有HDLC协议;Cisco2 与 Brand X 之间的链路使用基于PPP协议的 IETF 标准,因为 Brand X 不是 Cisco 路由器;Brand X 与 Cisco3 之间的链路使用帧中继通过服务提供商网络,以降低成本(与使用专用链路相比)。

相关文档
最新文档