计算机网络原理实验三 云南大学

计算机网络原理实验三 云南大学
计算机网络原理实验三 云南大学

实验三、套接字编程

序号:姓名:学号:成绩

1.实验目的:

两人一组,编写一个客户端、服务器程序,掌握Socket编程原理。

2.实验环境:

连入局域网络的主机一台。

3.实验指导:

Socket API是实现进程间通信的一种编程设施,也是一种为进程间提供底层抽象的机制。理解socket编程模型及其原理。

4.实验分析,回答下列问题。

客户端IP:172.25.20.4

服务器IP:172.25.20.194

客户端源代码:

#include "stdafx.h"

#include

#include

#include

#include

#include

#include

#include

#include

#pragma comment(lib,"ws2_32.lib")

#define PORT 3490 /* 客户机连接远程主机的端口*/

#define MAXDATASIZE 100 /* 每次可以接收的最大字节*/

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

{

WORD wVersionRequested;

WSADATA wsaData;

int err = 0 ,rval = 0 ;

SOCKET fd;

struct sockaddr_in servaddr;

struct hostent* hp;

char buf[1024] = "";

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );

if ( err != 0 )

return -1;

if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)

{

printf("Can not create socket!");

exit(2);

}

servaddr.sin_family = AF_INET;

servaddr.sin_port = htons(PORT);

hp = gethostbyname("172.25.20.194");

//根据服务器的网络计算//机名称得到其IP地址等信息

memcpy((char*)&servaddr.sin_addr, (char*)hp->h_addr,hp->h_length); memset(servaddr.sin_zero, 0, sizeof(servaddr.sin_zero));

//和服务器创建连接

rval = connect(fd, (sockaddr*)&servaddr, sizeof(servaddr));

if (rval < 0)

{//创建连接失败

printf("Can not create connect!");

exit(3);

}

else

{ memset(buf, 0, 1024);

printf("Please input a line to server:");

scanf("%s",&buf);

//向服务器发送信息

rval = send(fd, buf, strlen(buf) + 1,0);

if(rval < 0)

printf("Write error!");

}

closesocket(fd);

exit(5);

}

服务器源代码:

#include "stdafx.h"

#include

#include

#include

#include

#include

#include

#include

#include

#pragma comment(lib,"ws2_32.lib")

#define MYPORT 3490 /*定义用户连接端口*/

#define BACKLOG 10 /*多少等待连接控制*/

#define SERVER_IP_ADDR "172.25.20.194" /*服务器的IP地址*/

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

{

SOCKET sock, msgsock;

int length = 0;

struct sockaddr_in server;

struct sockaddr tcpaddr;

char buf[1024] = "";

int rval= 0, len= 0, err = 0;

WORD wVersionRequested;

WSADATA wsaData;

/*指定socket版本,否则创建socket失败,即使创建socket返回值不为-1,但是bind 时会失败*/

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );

if ( err != 0 )

return -1;

/* 建立套接字*/

sock = socket(AF_INET, SOCK_STREAM, 0);

if (sock < 0)

{

perror("opening stream socket");

exit(1);

}

/* 使用任意端口命名套接字*/

server.sin_family = AF_INET;

server.sin_port = htons(MYPORT);

server.sin_addr.s_addr = inet_addr(SERVER_IP_ADDR);

memset(server.sin_zero, 0, sizeof(server.sin_zero));

//将服务器地址与socket绑定在一起

rval = bind(sock, (struct sockaddr *)&server, sizeof(server));

if (rval < 0)

{

perror("binding stream socket");

exit(1);

}

// 找出指定的端口号并打印出来

length = sizeof(server);

if (getsockname(sock, (struct sockaddr *)&server, &length) < 0)

{

perror("getting socket name");

exit(1);

}

printf("socket port #%d\n", ntohs(server.sin_port));

// 开始接收连接,最大请求数为

listen(sock, 5);

len = sizeof(struct sockaddr);

do

{ msgsock = accept(sock, (struct sockaddr *)&tcpaddr, (int *)&len);

if (msgsock == -1)

perror("accept");

else

{ memset(buf, 0, sizeof(buf));

if ( (rval = recv(msgsock, buf, sizeof(buf),0) < 0))

perror("reading stream message");

if (rval == 0)

printf("-->%s\n", buf);

}

closesocket(msgsock);

} while (TRUE);

/* 因为这个程序已经有了一个无限循环,所以套接字"sock"从来不显式关闭。然而,当进程被杀死或正常终止时,所有套接字都将自动地被关闭。*/

closesocket(msgsock);

return 0;

}

b.给出程序调试和运行的截图。

客户端服务器

c.回答下列问题:

(1)为什么在服务器和客户端要包含winsock2.h文件?

答:因为下文的ws2_32.lib是winsock2.h头文件包含的内容。

(2)为什么在服务器和客户端程序中要加入#pragma comment(lib,"ws2_32.lib") 语句,如果不加会出现什么问题?

答:这个语句表示链接到Ws2_32.lib这个库,如果不加,就不能正确链接,也就不能使用Ws2_32.lib这个库的内容了。

(3)为什么在服务器和客户端程序中要使用WSAStartup函数,如果不用程序会有什么问题?

答:WSAStarup,是Windows SocKNDs Asynchronous的启动命令、Windows下的网络编程接口软件Winsock1 或Winsock2 里面的一个命令,我们需要通过

WSAStartup函数完成对Winsock服务的初始化,若不用此函数,Winsock

服务无法初始化,从而影响程序的运行。

(4)如果先运行客户端程序,程序会有什么现象,为什么会有这一现象?

答:如果先运行客户端程序,则会显示无法连接到服务器。有这一现象的原因是服务器没运行,客户段无法寻找到对应IP的服务器。

(5)如果服务器程序所在计算机没有连接网络,程序会发生什么错误?我们捕获到

什么错误信息?

答:如果服务器程序所在计算机没有连接网络,则会显示不能建立连接(Can not creat connect)。因此我们做这个试验的时候一定保持电脑是连网状态。

(6)上述服务器是串行处理多个客户端的请求,如何该成并发处理的服务器?

答:用户进程调用accept,然后调用fork,这样,已连接套接口就在父进程与子进程间共享,一般来说,接下来便是子进程读、写已连接套接口并关闭侦听套接

口,而父进程则关闭已连接套接口。

5.实验小结:

①刚开始对于socket编程不是很了解,所以在运行程序及调试程序的过程中存在很多

的问题,比如看不懂程序中某段代码的意义,不清楚程序的轮廓。鉴于此,通过老

师在课堂上对程序的讲解及课下上网的搜索,慢慢的大致清楚了程序设计的基本思

路。

②本实验要求对原程序代码进行修改,以实现更多的功能,而我刚开始在理解程序方

面存在着问题,所以在修改程序时摸不着头绪,不知从何下手,后来通过不断的实

践及请教同学,在清楚了程序代码的思路及含义后渐渐的理清了头绪。

③本实验我也体会到了很多,本来自己大一c语言学的不好,所以我的程序设计基础

不好,在编程方面存在着很多的问题,通过这次的socket编程不仅让我了解了基于

TCP的socket编程,同时也更让我认识到自己存在的一些问题,这让我在以后的学

习中也有了大致的方向。

④对自己的建议:因为自己的编程基础不是很好,所以在以后的学习中多加实践,同

时拓展视野,学习课外知识,掌握编程的基本思路及步骤。

计算机网络实验七

实验七 1. 熟悉界面。运行Wireshark 软件,结合网络教程《WIRESHARK -简明教程-界面 说明》(openmaniak.//wireshark_use.php)熟悉界面元素。 2. 抓包练习。 1) 单击“Capture”菜单的“Options”项,在出现的对话框的“Interface”栏选择合适的网络接口后单击“Start”按钮。 2) 利用Windows 的有关软件进行一些网络访问,如在命令提示符窗口中ping 其他主机,或者利用IE 浏览器访问某。 3) 单击“Capture”菜单的“Stop”项,观察“封包列表”处显示的所捕获的包。共有几个包?都有那些类型的包(看“Protocol”列)? 很多包,有以下十个类型: ARP DHCPv6 HTTP ICMPv6 ICMPv3 LLMNR NBNS OICQ TCP UDP

3. 过滤器的使用。阅读网络教程《WIRESHARK -简明教程-过滤器》(openmaniak.//wireshark_filters.php),使用其中的例子进行练习(注意:需要根据实际的实验环境修改例子中IP 地址和端口等参数)。 来源192.168.99.203的封包

ether[12:2] <= 1500 1. 捕捉任何主机发出的Ethernet 80 2.3 格式的帧(帧的长度字段<=1500),Wireshark 的capture filter 的filter string 设置为:ether[12:2] <= 1500。

ether[12:2] > 1500 捕捉任何主机发出的DIX Ethernet V2(即Ethernet II)格式的帧(帧的长度字段>1500, 帧的长度字段实际上是类型字段),Wireshark 的capture filter 的filterstring 设置为:ether[12:2] > 1500。 分别选择802.3 格式的帧和Ethernet II 的帧各一个(若有相应类型的帧),填写表3。 PDU协议数据单元中,帧的上层PDU是IP分组,802.3将数据链路层分为LLC子层和MAC子层,IP分组分别要经过LLC和MAC层封装才交由物理层传输

计算机网络实验三

实验三 IP协议分析 一、实验目的和要求 ?熟练掌握Ethereal的使用方法 ?能对捕获到的包进行较深入的分析 ?掌握IP层的作用以及IP地址的分类方法 ?掌握IP数据包的组成和网络层的基本功能。 二、实验内容 常见网络命令使用;启动Ethereal并设置相应的选项,进行一次简单的ICMP,观察捕获到的数据包,过滤出IP数据包,分析每个IP分组的细节,查看IP数据包的结构与含义,观察IP协议的功能。 三、实验设备 PC机、Ethereal软件、WinpCap软件 四、背景知识 1、IP 地址的编址方法 IP 地址是为每个连接在互联网上的主机分配的唯一识别的 32 位标识符。IP 地址的编址方法共经历了三个阶段: (1)分类的IP 地址 这是一种基于分类的两级IP 地址编址的方法。 表1 IP 地址的分类 如表1 所示,IP 地址分为A,B,C,D,E 五类,其中A、B、C 类地址为可分配主机地址,而D 类地址为组播地址,E 类地址保留以备将来的特殊使用。IP 地址采用点分十进制方式记录,每个地址表被视为4 个以点分隔开的十进制整数,每个整数对应一个字节。 A、B、C 三类地址由两部分组成:网络地址和主机地址,这三类地址的网络地址部分的长度不一 样。每个A 类地址的网络中可以有 1600 万台主机;每个B 类地址的网络中可以有65534 台主机; 每个C 类地址的网络中可以有254 台主机。这样对于一个共有几十台计算机的局域网来说即使分配一个C 类地址也是一种浪费。为此,提出了子网和子网掩码的概念。

(2)划分子网的IP 地址 子网就是将一个A 类、B 类或 C 类网络分割成许多小的网络,每一个小的网络就称为子网。划分子网采用“网络号”+“子网号”+“主机号”三级编址的方法。在划分了子网的网络地址中,子网掩码用于确定网络地址。 子网掩码是一个和IP 地址对应的 32 位二进制数。子网掩码中与IP 地址的网络地址对应的部分为 1,与主机地址对应的部分为0。这样把网络接口的IP 地址与该接口上的掩码相与就得到该接口所在网络的网络地址,而把该IP 地址与掩码的反码相与则可得到主机地址。 (3)无分类域间路由选择CIDR 无分类域间路由选择CIDR 是根据划分子网阶段的问题提出的编址方法。IP 地址采用“网络前缀”+“主机号”的编址方式。目前CIDR 是应用最广泛的编址方法,它消除了传统的A、B、C 类地址和划分子网的概念,提高了IP 地址资源的利用率,并使得路由聚合的实现成为可能。 2、IP 报文格式 IP 报文由报头和数据两部分组成,如图1 所示: 图1 IP 报文格式 其中主要字段的意义和功能如下: * 版本:指IP 协议的版本; * 头长:是指IP 数据报的报头长度,它以4 字节为单位。IP 报头长度至少为 20 字节,如果选项部分不是4 字节的整数倍时,由填充补齐; * 总长度:为整个IP 数据报的长度; * 服务类型:规定对数据报的处理方式;

实验7_北航研究生计算机网络实验

实验九IPv6实验 1. 3.5节步骤2中,请思考下面问题: 主机加入到组播组中的过程是什么? 答:1. 主机通过地址自动配置,获得多播组地址; 2.主机发送MLD多播侦听报文给本地链路的路由器; 3.路由器根据报文中的信息,向多播转发表中添加表项,以记录多播组的成员身份。 4. 3.5节步骤3中,仔细观察PC1与RT1之间的交互报文,回答下述问题: 1)为什么报文中的“next header”采用hop-by-hop的选项? 答:因为hop-by-hop选项规定该报文的传送路径上每台中间节点都要读取并处理该拓展报头,起到提醒路由器对MLD报文进行深入检查的作用。 2)为什么跳数被限制为1? 答:为了将此报文限制在链路本地上。 3)在“Hop-by-Hop”选项中,有一个“Padn”,它的作用是什么? 答:为了使字段符合对齐要求。 5. 3.5节步骤4中,仔细观察Router Solicitation的报文,回答下述问题: 1)在前面的multicast listener report报文中,报文的跳数限制为1,而在这里, 同样是主机发给路由器的报文,为什么跳数却采用255? 答:因为节点只接受跳数限制为Cur Hop Limit字段的RA报文,所以主机无须担心接收到链路外的RA报文,所以主机在发送RS报文时无须担心RS报文传递到本地链路外。 2)报文中的ICMP选项中的“source link-layer address”的作用是什么? 答:表示发送该RS报文的接口的链路层地址,这样路由器在接收到RS报文后无须进行地址解析就可以返回单播的RA报文。

6. 3.5节步骤6中,仔细观察Router Advertisement的报文,回答下述问题: 1)“Cur hop limit”的含义是什么? 答:主机发送普通报文时使用的默认跳数限制。 2)报文中“lifetime”的含义是什么? 答:发送该RA报文的路由器作为缺省路由器的生命周期。 3)“reachable time”的含义是什么? 答:本链路上所有节点的“可达”状态保持时间。 4)“retransmit time”的含义是什么? 答:重传NS报文的时间间隔,用于邻居不可达检测和地址解析。 5)这里为什么会有“source link-layer”地址呢? 答:为了表示路由器发送RA报文的接口的链路层地址。

计算机网络原理实验五

实验五、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建立连接过程中的三个报文填写下来。 字段名称第一条报文第二条报文第三条报文 报文序号 6 7 8 Sequence Number 0 0 1 Acknowedgement Numbber 0 1 1 ACK 0 1 1 SYN 1 1 0 (1)TCP建立连接时的三个报文,其报文首部与其他TCP报文有什么不同? TCP在建立连接时的三个报文,在报文首部比别的报文多了OPTION的字段 (2)报文首部的OPTION字段的作用是什么?值为多少? 至少一字节的可变长字段,标识哪个选项有效。如果没有选项,这个字节等于0。说明选项的结束。这个字节等于1,表示无需再有操作 它的值为至少一个字节的可变长字段的长度。 (3)分析TCP数据传输阶段的前8个报文,将报文信息填入到表中 报文序号报文种类 (发送/确 认)序号字段确认号字 段 数据长度被确认报 文序号 9 确认 1 764 436 8

计算机网络实验报告-答案.

计算机网络实验报告 专业计算机科学与技术 班级计102 学号 109074057 姓名王徽军 组号一组D 指导教师毛绪纹 安徽工业大学计算机学院 二○一二年十二月

目录 实验总体说明 (3) 实验一以太网帧的构成 (3) 实验三路由信息协议RIP (9) 实验四传输控制协议TCP (11) 实验五邮件协议SMTP、POP3、IMAP (12) 实验六超文本传输协议HTTP (14)

实验总体说明 1.实验总体目标 配合计算机网络课程的教学,加强学生对计算机网络知识(TCP/IP协议)的深刻理解,培养学生的实际操作能力。 2.实验环境 计算机网络协议仿真实验室: 实验环境:网络协议仿真教学系统(通用版)一套 硬件设备:服务器,中心控制设备,组控设备,PC机若干台 操作系统:Windows 2003服务器版 3.实验总体要求 ●按照各项实验内容做实验,记录各种数据包信息,包括操作、观察、记录、分析, 通过操作和观察获得直观印象,从获得的数据中分析网络协议的工作原理; ●每项实验均提交实验报告,实验报告的内容可参照实验的具体要求,但总体上应包 括以下内容:实验准备情况,实验记录,实验结果分析,算法描述,程序段,实验过程中遇到的问题以及对思考问题的解答等,实验目的、实验原理、实验步骤不需要写入实验报告中。 实验一以太网帧的构成 实验时间:_____________ 成绩:________________ 实验角色:_____________ 同组者姓名:______________________________

练习一:领略真实的MAC帧 00000000: FF FF FF FF FF FF 8C 89 A5 75 71 10 06 05 14 55 ..q....U 00000010: 85 48 D2 78 62 13 47 24 58 25 00 00 00 00 00 00 .H襵b.G$X%...... 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 ............ 练习二:理解MAC地址的作用 ●记录实验结果 表1-3实验结果 本机MAC地址源MAC地址目的MAC地址是否收到,为什么 主机B 8C89A5-7570BB 8C89A5-757113 8C89A5-7570C1 是,主机A与主机B接在同一共享模块 主机D 8C89A5-771A47 8C89A5-757113 8C89A5-7570C1 是,主机C与主机D接在同一共享模块 主机E 8C89A5-757110 无无否,与主机A、C都不在同一共享模块 主机 F 8C89A5-7715F8 无无否,与主机A、C都不在同一共享模块 练习三:编辑并发送MAC广播帧 ●结合练习三的实验结果,简述FFFFFF-FFFFFF作为目的MAC地址的作用。 答:该地址为广播地址,作用是完成一对多的通信方式,即一个数据帧可发送给同一网段内的所有节点。 练习四:编辑并发送LLC帧 ●实验结果 帧类型发送序号N(S)接受序号N(R) LLC 001F 0 ●简述“类型和长度”字段的两种含义 答:一是如果字段的值小于1518,它就是长度字段,用于定义下面数据字段的长度;二是如果字段的值大于1536,用于定义一个封装在帧中的PDU分组的类型。 思考问题: 1.为什么IEEE802标准将数据链路层分割为MAC子层和LLC子层? 答:出于厂商们在商业上的激烈竞争,IEEE的802委员会未能形成一个统一的、最佳的局域网标准,而是被迫制定了几个不同标准,如802.4令牌总线网、802.5令牌环网等。为了使数据链路层能更好地适应多种局域网标准,802委员会就将局域网的数据链路层拆成两个子层,即逻辑链路控制

计算机网络实验报告(7)访问控制列表ACL配置实验

一、实验项目名称 访问控制列表ACL配置实验 二、实验目的 对路由器的访问控制列表ACL 进行配置。 三、实验设备 PC 3 台;Router-PT 3 台;交叉线;DCE 串口线;Server-PT 1 台; 四、实验步骤 标准IP访问控制列表配置: 新建Packet Tracer 拓扑图 (1)路由器之间通过V.35 电缆通过串口连接,DCE 端连接在R1 上,配置其时钟频率64000;主机与路由器通过交叉线连接。 (2)配置路由器接口IP 地址。 (3)在路由器上配置静态路由协议,让三台PC 能够相互Ping 通,因为只有在互通的前提下才涉及到方控制列表。 (4)在R1 上编号的IP 标准访问控制。 (5)将标准IP 访问控制应用到接口上。 (6)验证主机之间的互通性。 扩展IP访问控制列表配置: 新建Packet Tracer 拓扑图 (1)分公司出口路由器与外路由器之间通过V.35 电缆串口连接,DCE 端连接在R2 上,配置其时钟频率64000;主机与路由器通过交叉线连接。 (2)配置PC 机、服务器及路由器接口IP 地址。 (3)在各路由器上配置静态路由协议,让PC 间能相互ping 通,因为只有在互通的前提下才涉及到访问控制列表。 (4)在R2 上配置编号的IP 扩展访问控制列表。 (5)将扩展IP 访问列表应用到接口上。 (6)验证主机之间的互通性。 五、实验结果 标准IP访问控制列表配置: PC0: PC1:

PC2:

PC1ping:

PC0ping: PC1ping: 扩展IP 访问控制列表配置:PC0: Server0:

计算机网络原理实验三winsock套接字编程实验报告

实验三、WINSOCK套接字编程实验报告 序号:姓名:刘易学号: 20101150040 成绩指导老师: 1.实验目的: 用C或JA V A语言编写客户端、服务器程序,实现基于TCP或UDP的网络通信数据传输服务,熟悉基于TCP或UDP的Socket编程原理。 2.实验环境: 建立在TCP/IP 网络体系结构之上计算机网络实验环境。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。计算机具备Windows环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。 3.实验指导: 参见套接字编程实验指导 4.实验步骤 (1)运行指导书中给出的参考程序,分析实验结果,并回答问题(1)-(3) (2)根据给定参考程序修改代码,完善修改服务器和客户端的功能。并回答问题(4)-(5) 5.实验结果分析 (1)为什么在服务器和客户端要包含winsock2.h文件? (2)为什么在服务器和客户端程序中要加入#pragma comment(lib,"ws2_32.lib") 语句,如果不加会出现什么问题? (3)为什么在服务器和客户端程序中要使用WSAStartup函数,如果不用,程序会有什么问题? (4)修改后的程序完成实现了什么功能,附上修改后的源代码。(修改或填加的代码用波浪线标注,并填加注释),并附上实验截图

客户端改变的代码: { for(;;) { memset(buf, 0, 1024); printf("Please input a line to server:"); scanf("%s",&buf); rval = send(fd, buf, strlen(buf) + 1,0); if(rval < 0) printf("Write error!"); if((rval=recv(fd,buf,sizeof(buf),0)<0)) perror("reading stream message"); if(rval==0) printf("server said :%s\n",buf); } 服务器端修改的代码: for(;;) { memset(buf, 0, sizeof(buf)); if ( (rval = recv(msgsock, buf, sizeof(buf),0) < 0))

计算机网络实验二简单共享局域网的组建

计算机网络实验二简单共享局域网的组建

计算机网络实验二简单共享局域网的组建

计算机网络原理实验报告 实验二 简单共享局域网的组建 系别:计算机科学与技术系网络工程方向类型:设计性 班级:1002班 姓名:张磊(2010100244) 日期:2012年 11 月14日

一、实验题目 简单共享局域网的组建 二、实验目的和要求 1.掌握以太网卡与交换机的连接与配置 2.掌握Windows中的TCP/IP或NetBEUI协议的设置 三、实验原理 1. NetBEUI是什么 NetBEUI是网络基本输入输出系统,是局域网上的程序可以使用的应用程序编程接(API)。NetBIOS为程序提供了请求低级服务的统一的命令集,这些服务是管理名称、执行会话和在网络节点之间发送数据报所要求的。 NetBEUI则是NetBIOS的扩展用户接口,是Microsoft网络的本地网络协议。它通常用于小的、有1~200客户的部门大小的局域网。它可 以使用令牌环源路由作为其路由的惟一方法。它是NetBIOS标准的 Microsoft实现。 2.交换机的应用 交换机是交换式网络上设备的公用连接点。交换机包含多个端口。计算机用网线和交换机相连的方法是:将双绞线的一端RJ-45接头插到交 换的一个口上,另一端插到计算机网卡上的RJ-45插座上。如果所有设 备都已接通电源,那么交换机上的连接指示灯就会显示连接状态,可据 此判断网络连接是否正常。 3. 联网计算机的简单设置 实现Windows对等网,应对联网计算机的网络协议、标识、网络客户和服务进行简单的设置。方法如下: (1)添加网络协议 双击“控制面板”—“网络连接”—“本地连接”,打开“本地连 接状态”对话框,单击“属性”,打开“属性”对话框,单击“安 装”,选择“协议”,单击“添加”,出现“选择网络协议”对话框, 选定所要添加的协议。一般Windows的操作系统中都已存在 TCP/IP协议,在Win 2K中需添加NetBEUI协议。 (2)添加服务 同添加协议方式类似,在打开“属性”对话框,单击“安装”,选 择“服务”,单击“添加”,出现“选择网络服务”对话框,选定所 要添加的服务。

计算机网络实验指导书新

计算机网络实验指导书(新版)

————————————————————————————————作者:————————————————————————————————日期: 2

计算机网络 实验指导书 主编郭雅 参编余小华黄锦煜罗肖辉 主审陶培基 I

前言 计算机网络是信息社会的支柱。培养一大批谙熟计算机网络原理与技术,具有综合应用和研发创新能力的人才,是社会信息化的需要,也是高等院校相关专业的教学目的。 编者在本科院校二级学院工作多年,一直担任计算机网络课程及其实验课程的教学工作。包括编者所在学校在内的许多本科院校二级学院采用了谢希仁编著《计算机网络》作为网络基础课程的教材。该教材内容丰富,说理透彻。针对本科院校二级学院学生的特点,教学中应该基础理论和实践并重,各所院校都开出了一定的实验课时。为规范实验内容,严格实验训练,达到实验教学的目的,编者多年来一直对本类院校的实验教学进行探索,研究在课时有限的情况下,如何组织计算机网络实验教学的内容,使之既能配合课堂教学,加深对所学知识的理解,又能紧跟网络技术的发展,培养和提高学生的实际操作技能。在教学实践中,编者一直坚持编写和完善实验指导书,并与选用谢希仁编著《计算机网络》做教材的一些兄弟院校的教师多次交流,修订完成了这本《计算机网络实验指导书》。 本书内容涵盖诠释网络原理,应用组网技术和实施网络管理等几个方面的实验项目十九个。由于编者水平有限,编写时间紧迫,不足与错误在所难免,恳请专家和广大读者不吝批评指正。 参加本书编写的人员有华南理工大学广州学院计算机工程系余小华老师,华南师范大学增城学院教育信息技术部黄锦煜老师,华南师范大学增城学院网络中心罗肖辉老师。 本书由华南师范大学增城学院计算机系主任陶培基教授担任主审。 感谢广东轻工职业技术学院计算机系教授石硕对本书编写和出版所提供的意见、建议和热忱帮助。 编者 2011年6月 于华南师范大学增城学院,广州 E-mail: hsguoya@https://www.360docs.net/doc/501913321.html, II

计算机网络实验

试验一 利用wireshark抓包工具抓包 一、实验名称 使用网络协议分析仪 Wireshark 二、实验目的 1. 掌握安装和配置网络协议分析仪Wireshark的方法; 2. 熟悉使用Wireshark工具分析网络协议的基本方法,加深对协议格式、协议层次和协议交互过程的理解。 三、实验内容和要求 1. 安装和配置Wireshark的网络协议分析仪,下载地址https://www.360docs.net/doc/501913321.html,。 2. 使用并熟悉Wireshark分析协议的部分功能。 四、实验环境 1.Windows7 操作系统PC机器。 2.PC机器具有以太网卡一块,通过双绞线与局域网连接。 3.Wireshark软件(Wireshark-win64-2.0.2)。 五、操作方法与实验步骤 1:安装网络协议分析仪,从官网下载exe软件双击安装Wireshark-win64-2.0.2。

2:启用Wireshark进行试验。 2.1:启动初始如下显示: 2.2:分组捕获数据,并将捕获的数据保存为文件抓包实验数据.pcapng,当再次需要捕获时,可以打开文件在进行实验抓包。2.3:对数据进行协议分析。 在上部“俘获分组的列表”窗口中,有编号(No)、时间(Time)、源地址(Source)、目的地址(Destination)、协议(Protocol)、长度(Length)和信息(Info)等列(栏目),各列下方依次排列着俘获的分组。中部“所选分组首部的细节信息”窗口给出选中帧的首部详细内容。下部“分组内容”窗口中是对应所选分组以十六进制数和ASCII 形式的内容。 2.4无线网连接抓包实验数据如下图1 2.5本地连接网页抓包实验数据如下图2

计算机网络原理实验七、传输层可靠传输协议GBN编程实验报告

实验七、传输层可靠传输协议G B N编程实验报告序号:姓名:学号:成绩指导老师: 一、实验目的: 1、通过编写实现一个简单可靠的数据传输协议GBN的发送和接收代码,模拟可靠数据传输 2、理解TCP协议可靠传输的差错检测、重传、累计确认、定时器的可靠传输策略。 二、实验原理: 在GBN中,发送端不需要在接收到上一个数据包的ACK后才发送下一个数据包,而是可以连续发送数据包。在发送端发送数据包的过程中,如果接收到对应已发送的某个数据包的NACK,则发送端将NACK对应的某个数据包进行重发,然后再将该数据包之后的数据包依次进行重发。 三、结果分析: 本次试验中采用java语言进行程序编写 代码注释: (一)S ender类 import java.util.Timer; public class Sender extends Thread{ public int windowsize=3; //发送方窗口长度设为3 public String[] data={"data1","data2","data3", "data4","data5","data6","data7"}; //模拟七个数据包public int sign[]={0,1,2,3,4,5,6}; //为7个数据包标号 public int localack=-1; //保存最近收到的ACK public Timers litime=null; //定时器(这里定为2秒) public int switches=0; //超时标志,1为超时 public int windowsign[]; //当前窗口内待发的数据分组的序号 public int acksign=0;

计算机网络原理(实验指导书)

计算机网络原理实验指导书 中原工学院 计算机学院网络工程系 2014年12月10日

实验一Windows系统网络命令的使用 一、实验目的 1. 了解Windows操作系统提供的各种网络命令的功能。 2. 熟悉Windows操作系统提供的各种网络命令的使用方法和输出格式。 3、掌握常用的网络命令,能用ping 、ipconfig等命令工具来进行网络测试、使用tracert路由跟踪命令、使用route、netstat、arp等命令查看网络状态。 二、实验内容 1、常用网络测试命令PING的使用 2、网络配置查看命令IPCONFIG的使用 3、网络连接统计命令NETSTAT的使用 4、网络路由表操作命令ROUTE的使用 5、地址解析命令ARP的使用 6、路由跟踪tracert命令的使用 三、实验步骤 (一)常用的网络测试工具-PING.EXE 1、工作原理 Ping的主要作用是验证与远程计算机的连接。该命令只有在安装了TCP/IP 协议后才可以使用。向远程计算机通过ICMP协议发送特定的数据包,然后等待回应并接收返回的数据包,对每个接收的数据包均根据传输的消息进行验证。默认情况下,传输四个包含32 字节数据(由字母组成的一个循环大写字母序列)的回显数据包。 过程如下: (1)通过将ICMP 回显数据包发送到计算机,并侦听回显回复数据包来验证与一台或多台远程计算机的连接。 (2)每个发送的数据包最多等待一秒。 (3)打印已传输和接收的数据包数。 2、用法 ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list 参数一览表:

计算机网络实验报告

计算机网络实验报告

实验一双绞线的制作 一、实验目的 1、了解双绞线的类型和特点; 2、掌握EIA/TIA 568A与EIA/TIA 568B网线的线序标准; 3、掌握直通线、交叉线的制作和测试方法。 二、实验器材 压线钳、RJ45、网线。 三、实验内容 1、制作直通线和交叉线; 2、测试双绞线的通畅性。 四、实验步骤 1、熟悉压线钳及RJ45接头 1)压线钳 目前市面上的压线钳有好几种类型,实际的功能以及操作都是大同小异,我们以图10.1为例进行说明,该工具有三处不同的功能。 图10.1 压线钳 在压线钳的最顶部的是压线槽,压线槽提供了三种类型的线槽,分别为6P、8P以及4P,中间的8P槽是我们最常用到的RJ45压线槽,而旁边的4P为RJ11电话线路压线槽。如图10.2所示。 图10.2 压线槽类型 在压线钳8P压线槽的背面,可以看到呈齿状的模块,主要是用于把水晶头上的8个触点压稳在双绞线之上。如图10.3所示。

图10.3 8p压线槽背面 最前端是剥线口,刀片主要是起到切断线材,如图10.4所示。 图10.4 剥线口 2)RJ45接头 俗称“水晶头”,如图10.5所示。RJ45接头没有被压线之前金属触点凸出在外,接头是连接非屏蔽双绞线的连接器,为模块式插孔结构。接口前端有8个凹槽,简称8P,凹槽内的金属接点共有8个,简称8C,因而也有8P8C的别称。 图10.5 RJ-45接口 2、制作双绞线 制作直通线时,要求双绞线两端排序要么都是568A标准,要么都是568B标准。如按照568B进行制作,则两端的顺序如下: 端1:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕(568B) 端2:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕(568B) 1)剥线 先确定所需要的双绞线长度,最短0.6米,最长不超过100米。利用压线钳的剪线刀口将双绞线端头剪齐,再将双绞线端头伸入剥线入口,握紧卡线钳,如图10.6所示,同时慢慢旋转双绞线,让刀口划开双绞线的保护胶皮,取出端头从而剥下保护胶皮。

计算机网络原理实验报告

计 算 机 网 络 实 验 报 告 学校:中原工学院 学院:计算机学院 班级:网络092 学生:李东杰 学号:200900824217 日期:2010年12月25日

实验1 WIN32网络配置命令使用 一、实验内容: 网络测试工具—PING.EXE 网络配置查看程序—IPCONFIG.EXE 网络链接统计工具—NETSTA T.EXE 操纵网络路由表的工具—ROUTE.EXE 地址解析工具—APR.EXE 路由跟踪工具—TRACERT.EXE 二、教学目的、要求: 了解WIN32操作系统提供的各种网络功能的命令。熟悉WIN32操作系统提供的各种网络命令的使用方法和输出格式。 三、教学重点及难点 掌握命令输出项的含义 三、实验步骤 1、最常用的网络测试工具-PING.EXE 作用:Ping的主要作用是验证与远程计算机的连接。该命令只有在安装了TCP/IP 协议后才可以使用。 原理:向远程计算机通过ICMP协议发送特定的数据包,然后等待回应并接收返回的数据包,对每个接收的数据包均根据传输的消息进行验证。默认情况下,传输四个包含32 字节数据(由字母组成的一个循环大写字母序列)的回显数据包。过程如下: (1)(1)通过将ICMP 回显数据包发送到计算机并侦听回显回复数据包来验证与一台或多台远程计算机的连接。 (2)(2)每个发送的数据包最多等待一秒。 (3)(3)打印已传输和接收的数据包数。 用法:ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list

计算机网络实验6-7

实验6 IIS的安装及WWW服务配置 【实验目的】 1)通过实验理解IIS服务的概念及其所具有的功能。 2)掌握IIS服务的安装方法。 3)掌握WWW服务的配置包括IP地址、端口号、默认文档、安全等设定,以及如何 应用WWW服务的方法。 【实验环境】 具有Windows2000server的计算机、局域网环境、Windows2000Server安装光盘。 【实验重点及难点】 重点:1)掌握WWW服务的配置 2)作为典型的TCP服务,掌握WWW的服务过程,体会TCP三次握手的交互 过程以及数据确认过程。 【实验内容】 一、IIS的安装 默认情况下,在Windows2000Server安装过程中会自动选择安装IIS,当然也可以选择不安装,单独安装。 在“控制面板”中选择“添加/删除程序”,单击“添加/删除Windows组件”,选中“Internet信息服务(IIS)”的“详细信息”清单,配置IIS的组件,如9,必选其中“Internet服务管理器”及“公用文件”,如果你的服务器作为WWW或FTP服务器,则分别选中“WorldWideWeb服务器”和“文件传输协议(FTP)服务器”,对于不需要的服务,最好不要安装,这是安全的做法。然后单击“确定”、“下一步”,开始IIS系统文件的安装。此过程中会要求插入Windows2000Server安装光盘。 Internet信息服务组件 安装完成后,提示重新启动机器。 二、WWW服务器的配置及使用依次单击“开始”-“程序”-“管理工具”- “Internet 服务管理器”,打开Internet 信息服务窗口。如图所示:计算机ns列出了两项服务,FTP和WWW,显示为默认FTP站 点和默认WEB站点。

计算机网络实验三协议分析精编

计算机网络实验三协议 分析精编 Document number:WTT-LKK-GBB-08921-EIGG-22986

天津理工大学实验报告学院(系)名称:计算机与通信工程学院

6.列举出你所抓到数据包的种类(协议名称)。列表写出客户端、网关、web服务器的IP地址和MAC地址。HTTP客户端和服务器段的端口号。 答:数据包的种类TCP、UDP、DNS、DHCP、ARP、OSPF、LLDP、SSL、TLS、NBNS、BROWSER=等。 客户端网关Web服务器 IP地址 MAC地址58:6a:b1:5d:be:3344:37:e6:04:08:9f44:37:e6:04:09:c5 HTTP客户端的端口号:80,服务器端口号:2518。 7.将TCP、IP、ARP、DNS、HTTP和Ethernet的首部字段的名字和值按照协议的格式(参见附录2)分别记录下来。(任意打开一个消息) 答:IP:

版本:4首部长度:20bytes区分服务:0x00总长度:40 标识:0x41c6标志:0x02片偏移:0 生存时间:51协议:TCP(6)首部校验和:0x4bfb 源地址: 目的地址: 可选字段:填充 TCP: 源端口:80目的端口:2518 序号:1 确认号:716 数据偏 移 保留URG ACK 1 PSH RS I SYN FIN 窗口:16128检验和0xf2e5紧急指针: 无效

选项:空填充:空ARP: 以太网目的地址:HonHaiPr_04:08:9f (44:37:e6:04:08:9f)以太网源地址: HonHaiPr_04:09:c5 (44:37:e6:04:09:c5) 帧类型:ARP (0x0806) DNS:

计算机网络原理实验报告

重庆交通大学 实验报告 班级:电子信息专业级班学号: 姓名: 实验项目名称:计算机网络原理实验实验项目性质:设计性(验证性)实验所属课程:计算机网络 实验室(中心):软件实验室 指导教师: 实验完成时间: 2016 年 6 月 29

实验1 控制台网络操作的基本命令 实验目的: 掌握和使用控制台网络操作的基本命令:ipconfig,ping,tracert,arp,dhcp,nslookup,netstat。 实验环境: Windows7,使用命令提示符 实验步骤: ipconfig 使用ipconfig/all查看自己计算机的网络配置,尽可能明白每行的意思。 分析:你和旁边的计算机是否处于同一子网,为什么? Ping 练习ping命令,掌握反馈的意思。 通过ping/?了解ping命令的各种选项并实际使用。 Tracert/pathping 使用tracert或pathping进行路由追踪。 思考为何能进行路由追踪?请实际验证。 Arp 以arp –a命令,查看当前arp缓存,并通过网络获得查看缓存的变化。 以arp –s命令将网关设置为静态arp。 Dhcp 使用ipconfig/release释放自动获取的网络配置,并用ipconfig/renew重新获取,了解DHCP。 如果你不能释放,请思考如何处理。 常用端口号 打开C:\WINDOWS\system32\drivers\etc\services文件,了解常用的端口号分配。 Netstat 练习netstat命令,查看当前的网络连接状况。 Nslookup 练习nslookup命令,进行命令行的DNS解析。 Hosts文件 打开C:\WINDOWS\system32\drivers\etc\hosts文件,思考如何屏蔽浏览网页和观看视频时的广告? 实验内容: ipconfig

计算机网络实验2

No. Time Source Destination Protocol Info 3141 76.793239 122.228.225.234 172.16.195.14 TCP 29000 > mobile-file-dl [ACK] Seq=13115 Ack=5611 Win=266 Len=0 TSV=2721900318 TSER=295566 Frame 3141: 66 bytes on wire (528 bits), 66 bytes captured (528 bits) Arrival Time: Dec 17, 2010 20:32:05.704512000 中国标准时间 Epoch Time: 1292589125.704512000 seconds [Time delta from previous captured frame: 0.030628000 seconds] [Time delta from previous displayed frame: 0.030628000 seconds] [Time since reference or first frame: 76.793239000 seconds] Frame Number: 3141 Frame Length: 66 bytes (528 bits) Capture Length: 66 bytes (528 bits)

[Frame is marked: False] [Frame is ignored: False] [Protocols in frame: eth:ip:tcp] [Coloring Rule Name: TCP] [Coloring Rule String: tcp] Ethernet II, Src: Alcatel-_c5:10:4c (00:d0:95:c5:10:4c), Dst: JetwayIn_ab:ca:42 (00:30:18:ab:ca:42) Destination: JetwayIn_ab:ca:42 (00:30:18:ab:ca:42) Address: JetwayIn_ab:ca:42 (00:30:18:ab:ca:42) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Source: Alcatel-_c5:10:4c (00:d0:95:c5:10:4c) Address: Alcatel-_c5:10:4c (00:d0:95:c5:10:4c) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Type: IP (0x0800) Internet Protocol, Src: 122.228.225.234 (122.228.225.234), Dst: 172.16.195.14 (172.16.195.14) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 52 Identification: 0xca10 (51728) Flags: 0x02 (Don't Fragment) 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment offset: 0 Time to live: 52 Protocol: TCP (6) Header checksum: 0xb0c5 [correct] [Good: True] [Bad: False] Source: 122.228.225.234 (122.228.225.234) Destination: 172.16.195.14 (172.16.195.14) Transmission Control Protocol, Src Port: 29000 (29000), Dst Port: mobile-file-dl (2926), Seq: 13115, Ack: 5611, Len: 0 Source port: 29000 (29000) Destination port: mobile-file-dl (2926) [Stream index: 12] Sequence number: 13115 (relative sequence number) Acknowledgement number: 5611 (relative ack number)

计算机网络实验

杭州电子科技大学 实验报告 学生姓名:韩民杨学号:12081420 指导教师:吴端坡 实验地点:1#108 实验时间:2015-4-24 一、实验室名称:1#108 二、实验项目名称:计算机网络实验1 Coding on error dectecting algorithms(C++) 三、实验学时: 四、实验原理:C++编程 五、实验目的:利用C++编程CRC16校验及奇偶校验 六、实验内容: Coding on error dectecting algorithms(C++) 1.Cyclic redundancy check Using the polynomials below to encode random generated data stream (40-100bits). Show the FEC, and encoded data frame. CRC-4 x4+x+1 ITU G.704 CRC-16 x16+x15+x2+1 IBM SDLC CRC-32 x32+x26+x23+ (x2) x+1 ZIP, RAR, IEEE 802 LAN/FDDI, IEEE 1394, PPP-FCS For the error patter listed below, what the conclusion does the receiver get? Can the receiver find the errors?

Case Error pattern No error 0000 (0000) One error 1000 (000) Two errors 100 (001) Random errors Random error pattern 2.Parity check Using even or odd parity check on random generated data stream (8-20bits). Show encoded data frame. For the error patter listed below, what the conclusion does the receiver get? Can the receiver find the errors? Case Error pattern No error 0000 (0000) One error 1000 (000) Two errors 100 (001) 七、实验器材(设备、元器件): PC机一台,装有C++集成开发环境。 八、实验步骤: #include #include #include #include #include #include #define NO_ERROR 1 #define ONE_ERROR 2 #define TWO_ERROR 3 #define RANDOM_ERROR 4 #define RESULT 1 #define CRC 0 #define Parity 0

相关文档
最新文档