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

合集下载

计算机网络实验 第7章 综合实验

计算机网络实验 第7章 综合实验
Байду номын сангаас12
任务二:观察PC0访问网站的过程,并综合运用所学到的计算机网络 知识,分析该访问过程所涉及的协议事件,理解各协议如何协同工作
01
step
02
step
观察DHCP动态主机配置过程 • 重新打开练习文件,并快速进入模拟模式; • 使用Inspect检查工具打开PC0的端口状态总表; • 运行模拟,并观察DHCP的交互过程; 观察ARP的执行情况 • 重新打开练习文件,进入模拟模式,并启用Router1的Se0/1接口; • 分别检查PC0、DNS服务器、Router0、Router1和Web服务器的 ARP表; • 打开PC0的Web浏览器,输入,单击 Capture/Forward按钮观察ARP的执行情况。可以发现在PC0请求网 页过程中先后总共执行3次ARP,分别是: • ① PC0查询DNS服务器192.168.1.253的MAC地址; • ② PC0查询网关192.168.1.254的MAC地址; • ③ Router2查询网站192.168.4.253的MAC地址。
图7-13 Cisco的三层分层模型
2.1
背景知识
其中每一层都有其特定的功能,详细说明如下: ①核心层(Core Layer)位于网络的最顶层,被视为主干网络,其主要 功能是实现快速而可靠的数据传输。核心层的性能和可靠性对整个网络的性 能和可靠性是至关重要的。因此在设计核心层时,只将高可靠性、高速的传 输作为其设计目标,而影响传输速度的数据处理不放在核心层实现。核心层 交换机需要具有较高的可靠性和性能。 ②汇聚层(Distribution Layer)位于核心层和接入层中间,负责连接接 入层和核心层,将众多的接入层接入点汇集起来,屏蔽接入层对核心层的影 响。汇聚层需要实现一些网络策略,包括提供路由、实现包过滤、网络安全、 创建 Vlan 并实现Vlan 间路由、分割广播域、 WAN 接入等。汇聚层交换机仍 需要较高性能和比较丰富的功能。 ③接入层(Access Layer)又称为桌面层,提供用户或工作站的网络接 入,用户可以通过接入层访问网络设备。接入层交换机的数量较多,在设备 选择上需要选择易于使用和维护、具有较高性价比和高端口密度的交换机。

计算机网络实验

计算机网络实验

计算机网络实验一、实验目的本次计算机网络实验的目的是通过在网络中的数据传输过程中,学习和熟悉 OSI七层模型及 TCP/IP 协议栈、掌握常见的网络诊断工具和指令,了解常用的网络安全攻防技术。

二、实验环境本次实验使用的是 Ubuntu 系统作为实验环境,操作使用 Linux 命令行模式。

需要安装的软件为 Wireshark、Nmap、Telnet、nc 等。

实验所需网络拓扑环境由实验教师提供。

三、实验内容1. 学习 OSI 七层模型和 TCP/IP 协议栈OSI 七层模型包括应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。

TCP/IP 协议栈包括应用层、传输层、网络层和数据链路层。

学完这些理论知识后,需要了解各层在传输过程中所承载的数据类型和主要协议。

2. 了解网络诊断工具和指令网络诊断工具主要包括 Wireshark、Nmap、Telnet、nc 等。

其中 Wireshark 是用于网络分析和诊断的工具,可以详细的分析网络中的流量;Nmap 是一款常用的网络扫描工具,可以检测出网络中存在的主机和开放的端口;Telnet 是一种基于 TCP/IP 协议的远程登录工具,可以通过它来连接远程主机;nc 命令可以快速建立 TCP 或 UDP 连接,并快速发送和接受数据。

3. 理解网络攻防技术中间人攻击等,能够让防范这些攻击变得更加有效。

此外,还需要掌握一些网络安全策略,如访问控制、加密、认证等。

四、实验步骤1. 使用 Wireshark 分析数据包Wireshark 是一款非常强大的网络流量分析软件。

首先需要从镜像端口或 TAP 端口捕获网络流量,并保存下来。

在Wireshark 软件中,打开该数据包文件,即可查看网络中的通信流量、查看数据包的详细信息,并进行一系列的过滤操作。

通过分析数据包,可以了解各层所承载的数据类型和通信细节。

2. 使用 Nmap 扫描主机和端口Nmap 是一款网络扫描工具,可以检测出网络中存在的主机和开放的端口。

计算机网络原理实验七实验报告

计算机网络原理实验七实验报告

计算机⽹络原理实验七实验报告实验七、传输层可靠传输协GBN编程实验报告序号:姓名:学号:成绩指导⽼师:⼀、实验⽬的:1、通过编写实现⼀个简单可靠的数据传输协议GBN的发送和接收代码,模拟可靠数据传输2、理解TCP协议可靠传输的差错检测、重传、累计确认、定时器的可靠传输策略。

⼆、实验指导:参考教材。

三、实验要求:编程实现⼀个GBN传输协议的发送⽅和接收⽅两程序,采⽤编程语⾔不限,要求能将发送――接收流程以及处理⽅法表现出来.附源代码及注释通过本次实验,了解了GBN传输协议的相关知识,因为实验代码是由三部分组成,所以⽤Studio做实验时,要建⽴3个⽂件,⼀个是头⽂件,存放gbn.h, 另外2个是源⽂件,分别存放gbn.c 和 gbn-cs.c,然后再启动调试。

实验代码通过查阅资料很容易理解,但是怎么实现这个程序对我来说是个问题。

后来我把程序分了3部分,⼀个头⽂件和两个源⽂件,通过visual studio可以良好的运⾏,以下为⽼师附带代码的运⾏结果⼀、GBN.h#pragma once#include//基础功能模块的数据结构声明#define BIDIRECTIONAL 1 /* change to 1 if you're doing extra credit and write a routine called B_output *//* a "msg" is the data unit passed from layer 5 (teachers code) to layer4 (students' code). It contains the data (characters) to be delivered tolayer 5 via the students transport level protocol entities. */ struct msg{ char data[20];};/* a packet is the data unit passed from layer 4 (students code) to layer3 (teachers code). Note the pre-defined packet structure, which allstudents must follow. */struct pkt{int seqnum;int acknum;int checksum;char payload[20];};#define WINDOWSIZE 8#define MAXBUFSIZE 50#define RTT 15.0#define NOTUSED 0#define NACK -1#define TRUE 1#define FALSE 0#define A 0#define B 1//⽹络仿真部分数据结构声明***********************************************************struct event{float evtime; /* event time */int evtype; /* event type code */int eventity; /* entity where event occurs */struct pkt *pktptr; /* ptr to packet (if any) assoc w/ this event */ struct event *prev;struct event *next;};/* possible events: */#define TIMER_INTERRUPT 0#define FROM_LAYER5 1#define FROM_LAYER3 2#define OFF 0#define ON 1//基础功能模块的函数声明******************************************************************* void ComputeChecksum(struct pkt *packet);//计算校验和int CheckCorrupted(struct pkt packet);//检查数据是否出错void A_output( struct msg message);//A端向外发送数据void A_input(struct pkt packet);//A端接收数据void A_timerinterrupt();//A计时器超时void A_init();//A端初始化void B_output(struct msg message);void B_input(struct pkt packet);void B_timerinterrupt();void B_init();//⽹络仿真部分的函数声明**************************************************void init(); //初始化仿真器float jimsrand();//随机数发⽣器[0,1]//处理事件列表部分的函数声明*********************************************void generate_next_arrival();//产⽣下⼀个到达的分组void insertevent(struct event *p);//向事件列表中插⼊⼀条新的事件void printevlist();//打印事件列表//******************************************************************** //**********************计时器模块*********************************** void stoptimer(int);//停⽌计时器void starttimer(int,float);//启动计时器//******************************************************************** *//**************************⽹络各层之间传送模块***********************void tolayer3(int AorB,struct pkt packet);//向第3层发送信息void tolayer5(int AorB,char datasent[20]);//向第5层发送信息⼆、GBN.c#include "GBN.h"#include#include#includeextern int TRACE = 1; /* for my debugging */extern int nsim = 0; /* number of messages from 5 to 4 so far */extern int nsimmax = 0; /* number of msgs to generate, then stop */extern float time = 0.000;float lossprob; /* probability that a packet is dropped */ float corruptprob; /* probability that one bit is packet is flipped */ float lambda; /* arrival rate of messages from layer 5 */ int ntolayer3; /* number sent into layer 3 */static int nlost = 0; /* number lost in media */static int ncorrupt = 0; /* number corrupted by media*/static int expectedseqnum = 0; /* expected sequence number at receiver side */static int nextseqnum; /* next sequence number to use in sender side */static int base; /* the head of sender window */struct pkt winbuf[WINDOWSIZE]; /* window packets buffer */static int winfront,winrear; /* front and rear points of window buffer */static int pktnum; /* packet number of window buffer */struct msg buffer[MAXBUFSIZE]; /* sender message buffer */int buffront,bufrear; /* front and rear pointers of buffer */ static int msgnum; /* message number of buffer */int packet_lost =0;int packet_corrupt=0;int packet_sent =0;extern int packet_correct=0;extern int packet_resent =0;int packet_timeout=0;extern struct event *evlist = NULL; /* the event list *///计算校验和void ComputeChecksum( struct pkt *packet){int checksum;int i;checksum = packet->seqnum;checksum = checksum + packet->acknum;for ( i=0; i<20; i++ )checksum = checksum + (int)(packet->payload[i]);checksum = 0-checksum;packet->checksum = checksum;}//检查是否出错int CheckCorrupted(struct pkt packet){int checksum;int i;checksum = packet.seqnum;checksum = checksum + packet.acknum;for ( i=0; i<20; i++ )checksum = checksum + (int)(packet.payload[i]);if ( (packet.checksum+checksum) == 0 )return (FALSE);elsereturn (TRUE);}//A端向外发送数据/* called from layer 5, passed the data to be sent to other side */ void A_output(struct msg message){int i;struct pkt sendpkt;/* if window is not full */if ( nextseqnum < base+WINDOWSIZE ){printf("----A: New message arrives, send window is not full, send new messge to layer3!\n"); /* create packet */sendpkt.seqnum = nextseqnum;sendpkt.acknum = NOTUSED;for ( i=0; i<20 ; i++ )sendpkt.payload[i] = message.data[i];/* computer checksum */ComputeChecksum (&sendpkt);/* send out packet */tolayer3 (A, sendpkt);/* copy the packet to window packet buffer */winrear = (winrear+1)%WINDOWSIZE;pktnum ++;winbuf[winrear] = sendpkt;for (i=0; i<20; i++)winbuf[winrear].payload[i]= sendpkt.payload[i];/* update state variables */nextseqnum = nextseqnum+1;starttimer(A,RTT);B_input(sendpkt);A_input(sendpkt);}/* if window is full */else{printf("----A: New message arrives, send window is full,");/* if buffer full, give up and exit*/if ( msgnum == MAXBUFSIZE){printf (" Error: Sender buffer is full! \n");exit (1);}/* otherwise, buffer the message */else{printf("buffer new message!\n");bufrear = (bufrear+1) % MAXBUFSIZE;for (i=0; i<20; i++)buffer[bufrear].data[i] = message.data[i];msgnum ++;}}}//B端向外发送数据/* called from layer 5, passed the data to be sent to other side */ void B_output(struct msg message) {int i;struct pkt sendpkt;/* if window is not full */if ( nextseqnum < base+WINDOWSIZE ){printf("----A: New message arrives, send window is not full, send new messge to layer3!\n");/* create packet */sendpkt.seqnum = nextseqnum;sendpkt.acknum = NOTUSED;for ( i=0; i<20 ; i++ )sendpkt.payload[i] = message.data[i];/* computer checksum */ComputeChecksum (&sendpkt);/* send out packet */tolayer3 (A, sendpkt);A_input(sendpkt);/* copy the packet to window packet buffer */winrear = (winrear+1)%WINDOWSIZE;pktnum ++;winbuf[winrear] = sendpkt;for (i=0; i<20; i++)winbuf[winrear].payload[i]= sendpkt.payload[i];/* if it is the first packet in window, start timeout */ //if ( base == nextseqnum ) //{//starttimer(A,RTT);//printf("----A: start a new timer!\n");// }/* update state variables */nextseqnum = nextseqnum+1;}/* if window is full */else{printf("----A: New message arrives, send window is full,");/* if buffer full, give up and exit*/if ( msgnum == MAXBUFSIZE){printf (" Error: Sender buffer is full! \n");exit (1);}/* otherwise, buffer the message */else{printf("buffer new message!\n");bufrear = (bufrear+1) % MAXBUFSIZE;for (i=0; i<20; i++)buffer[bufrear].data[i] = message.data[i];msgnum ++;}}}//A端接收数据void A_input(struct pkt packet){struct pkt sendpkt;int i;/* if received packet is not corrupted and ACK is received */if ( (CheckCorrupted(packet) == FALSE) && (packet.acknum != NACK) ) {printf("----A: ACK %d is correctly received,",packet.acknum);packet_correct++;/* delete the acked packets from window buffer */winfront = (winfront+(packet.acknum+1-base)) % WINDOWSIZE; pktnum = pktnum - (packet.acknum+1-base); /* move window base */base = packet.acknum+1;stoptimer(A);if ( base < nextseqnum){//starttimer(A,RTT);printf ("\n\n\nsend new packets!");}/* if buffer is not empty, send new packets */while ( (msgnum!=0) && (nextseqnum/* create packet */sendpkt.seqnum = nextseqnum;sendpkt.acknum = NOTUSED;buffront = (buffront+1) % MAXBUFSIZE;for ( i=0; i<20 ; i++ )sendpkt.payload[i] = buffer[buffront].data[i];/* computer checksum */ComputeChecksum (&sendpkt);/* if it is the first packet in window, start timeout */ if ( base == nextseqnum ){//starttimer(A,RTT);printf ("send new packets!\n");}/* send out packet */tolayer3 (A, sendpkt);/* copy the packet to window packet buffer */winrear = (winrear+1)%WINDOWSIZE;winbuf[winrear] = sendpkt;pktnum ++;/* update state variables */nextseqnum = nextseqnum+1;/* delete message from buffer */msgnum --;}}elseprintf ("----A: NACK is received, do nothing!\n");}//B端接收数据*****************************************************⼀定要调⽤这个/* Note that with simplex transfer from a-to-B, there is no B_output() */ /* called from layer 3, when a packet arrives for layer 4 at B*/void B_input(struct pkt packet){struct pkt sendpkt;int i;/* if not corrupted and received packet is in order */if ( (CheckCorrupted(packet) == FALSE) && (packet.seqnum == expectedseqnum)){printf("\n----B: packet %d is correctly received, send ACK!\n",packet.seqnum);/* send an ACK for the received packet *//* create packet */sendpkt.seqnum = NOTUSED;sendpkt.acknum = expectedseqnum;for ( i=0; i<20 ; i++ )sendpkt.payload[i] = '0';/* computer checksum */ComputeChecksum (&sendpkt);/* send out packet *///tolayer3 (B, sendpkt);/* update state variables */expectedseqnum = expectedseqnum+1;printf("----B:expectedseqnum = %d\n",expectedseqnum);/* deliver received packet to layer 5 *///tolayer5(B,packet.payload);}/* otherwise, discard the packet and send a NACK */else{printf("----B: packet %d is corrupted or not I expects, send NACK!\n",packet.seqnum); /* create packet */sendpkt.seqnum = NOTUSED;sendpkt.acknum = NACK;for ( i=0; i<20 ; i++ )sendpkt.payload[i] = '0';/* computer checksum */ComputeChecksum (&sendpkt);/* send out packet */tolayer3 (B, sendpkt);}}//A计时器超时/* called when A's timer goes off */void A_timerinterrupt(){int i;printf("----A: time out,resend packets!\n");/* start timer */starttimer(A,RTT);/* resend all packets not acked */for ( i=1; i<=pktnum; i++ ){packet_resent++;tolayer3(A,winbuf[(winfront+i)%WINDOWSIZE]);}}//B计时器超时/* called when B's timer goes off */void B_timerinterrupt(){int i;printf("----B: time out,resend packets!\n");/* start timer */starttimer(B,RTT);/* resend all packets not acked */for ( i=1; i<=pktnum; i++ ){packet_resent++;tolayer3(B,winbuf[(winfront+i)%WINDOWSIZE]);}}//A端初始化/* entity A routines are called. You can use it to do any initialization */ void A_init(){base = 0;nextseqnum = 0;buffront = 0;bufrear = 0;msgnum = 0;winfront = 0;winrear = 0;pktnum = 0;}//B端初始化/* entity B routines are called. You can use it to do any initialization */ void B_init(){expectedseqnum = 0;}//初始化仿真器void init() /* initialize the simulator */{int i;float sum, avg;float jimsrand();FILE *fp;fp = fopen ("parameter.txt","r");printf("----- Stop and Wait Network Simulator Version 1.1 -------- \n\n");printf("Enter the number of messages to simulate: ");//fscanf(fp,"%d",&nsimmax);scanf("%d",&nsimmax);printf("\nEnter packet loss probability [enter 0.0 for no loss]: "); //fscanf(fp, "%f",&lossprob);scanf("%f",&lossprob);printf("\nEnter packet corruption probability [0.0 for no corruption]: "); //fscanf(fp,"%f",&corruptprob);scanf("%f",&corruptprob);printf("\nEnter average time between messages from sender's layer5 [ > 0.0]: ");//fscanf(fp,"%f",&lambda);scanf("%f",&lambda);printf("\nEnter TRACE: ");//fscanf(fp,"%d",&TRACE);scanf("%d",&TRACE);printf("\n\n");srand(9999); /* init random number generator */sum = 0.0; /* test random number generator for students */for (i=0; i<1000; i++)sum=sum+jimsrand(); /* jimsrand() should be uniform in [0,1] */avg = sum/1000.0;/*if(avg < 0.25 || avg > 0.75){printf("It is likely that random number generation on your machine\n" ); printf("is different from what this emulator expects. Please take\n"); printf("a look at the routine jimsrand() in the emulator code. Sorry. \n");exit(0);}*/printf("%f",avg);ntolayer3 = 0;nlost = 0;ncorrupt = 0;time=0.0; /* initialize time to 0.0 */generate_next_arrival(); /* initialize event list */}//随机数发⽣器float jimsrand(){double mmm = 2147483647; /* largest int - MACHINE DEPENDENT */ float x; /* individual students may need to change mmm */x = rand()/mmm; /* x should be uniform in [0,1] */return(x);}//**************************************************************************************//*******************************事件处理部分*******************************************void generate_next_arrival(){double x,log(),ceil();struct event *evptr;float ttime;int tempint;//if (TRACE>2)//printf("-----------------GENERATE NEXT ARRIVAL: creating new arrival\n"); x = lambda*jimsrand()*2; /* x is uniform on [0,2*lambda] *//* having mean of lambda */evptr = (struct event *)malloc(sizeof(struct event));evptr->evtime = time + x;evptr->evtype = FROM_LAYER5;if (jimsrand()<0.5){evptr->eventity = A;}elseevptr->eventity = B;insertevent(evptr);}//向事件列表中插⼊⼀条新的事件void insertevent(struct event *p){struct event *q,*qold;if (TRACE>2){//printf(" INSERTEVENT: time is %lf\n",time);//printf(" INSERTEVENT: future time will be %lf\n",p->evtime);}q = evlist; /* q points to front of list in which p struct inserted */if (q==NULL)/* list is empty */{evlist=p;p->next=NULL;p->prev=NULL;}else{for (qold = q; q !=NULL && p->evtime > q->evtime; q=q->next) qold=q; if (q==NULL)/* end of list */{qold->next = p;p->prev = qold;p->next = NULL;}else if (q==evlist)/* front of list */{p->next=evlist;p->prev=NULL;p->next->prev=p;evlist = p;}else /* middle of list */{p->next=q;p->prev=q->prev;q->prev->next=p;q->prev=p;}}}//打印事件列表void printevlist(){struct event *q;int i;printf("--------------\nEvent List Follows:\n");for(q = evlist; q!=NULL; q=q->next){printf("Event time: %f, type: %d entity: %d\n",q->evtime,q->evtype,q->eventity); }printf("--------------\n");}//启动计时器void starttimer(int AorB,float increment){struct event *q;struct event *evptr;。

《计算机网络实验》实验报告-软件实验7

《计算机网络实验》实验报告-软件实验7

《计算机网络实验》实验报告-软件实验7浙江大学城市学院实验报告课程名称计算机网络实验实验项目名称实验七应用层网络编程(一)学生姓名专业班级学号实验成绩指导老师(签名)日期一. 实验目的和要求1. 通过实现使用Java应用层客户端和服务器来获得关于使用Java Socket网络编程的经验(SMTP、POP3)。

二. 实验内容、原理及实验结果与分析1. SMTP编程(参考电子讲义“网络编程参考资料-应用层.pdf”及教材“第2章 Socket编程”)阅读“网络编程参考资料-应用层.pdf”中 8.3.1部分,实现“SMTP客户机实现”的源代码(SMTPClientDemo.java),并在机器上编译运行通过。

(注:可输入城院SMTP邮件服务器或其他邮件服务器作为SMTP服务器)【程序源代码】【实验结果与分析】2. POP3编程(参考电子讲义“网络编程参考资料-应用层.pdf”及教材“第2章 Socket编程”)阅读“网络编程参考资料-应用层.pdf”中 8.3.2部分,实现“POP3客户实现”的源代码(Pop3ClientDemo.java),并在机器上编译运行通过。

(注:可输入城院POP3邮件服务器或其他邮件服务器作为POP3服务器)【程序源代码】【实验结果与分析】3. Ethereal抓包分析用Ethereal软件截获上面两个程序运行时客户机和服务器之间发送的数据包,并且根据截获的数据包内容进行分析。

【实验结果与分析】三. 讨论、心得记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。

感谢您的阅读,祝您生活愉快。

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

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

实验4_北航研究生计算机网络实验第一部分:实验目的本实验旨在帮助研究生理解和掌握计算机网络的基本概念和原理,通过实际操作加深对计算机网络的理解。

通过完成实验,研究生将能够熟练地使用各种网络工具和协议进行网络配置和故障排除,提高其网络管理和维护的能力。

第二部分:实验原理本实验有三个主要的实验内容。

首先,研究生将使用Wireshark软件捕获并分析TCP/IP协议的传输过程,以加深对协议的了解。

然后,研究生将配置并测试一个简单的局域网,了解网络拓扑和设备间的通信方式。

最后,研究生将使用路由器和交换机的配置命令进行网络配置和故障排除。

第三部分:实验步骤2. 在捕获窗口中,选择“Start”按钮开始捕获数据包。

3. 打开一个浏览器窗口,输入一个网址并访问。

在Wireshark软件中可以看到捕获到的数据包。

4. 在Wireshark软件中的数据包列表中,选择一条数据包并点击右键,然后选择“Follow TCP Stream”选项,可以查看这个TCP流的内容。

5.配置一个简单的局域网,使用至少两台计算机和一个交换机。

连接计算机和交换机,并使用交换机上的端口连接计算机。

6. 配置计算机的IP地址和子网掩码,确保两台计算机在同一子网中。

测试两台计算机是否能够互相ping通,以验证配置的正确性。

7. 配置一个路由器,将两个子网连接起来。

配置路由器的IP地址、子网掩码和默认网关。

测试两个子网的计算机是否能够互相ping通,以验证配置的正确性。

8. 配置一个交换机,将多个子网连接起来。

使用交换机的端口连接路由器和各个子网的计算机。

测试各个子网的计算机是否能够互相ping 通,以验证配置的正确性。

第四部分:实验总结通过完成本实验,研究生将对计算机网络的基本原理和概念有更深入的了解。

研究生能够熟练地使用Wireshark软件进行数据包捕获与分析,了解TCP/IP协议的传输过程。

研究生还能够独立配置和维护一个简单的局域网,使用路由器和交换机的命令进行网络配置和故障排除。

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

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

实验2_北航研究生计算机网络实验引言:计算机网络实验是计算机网络课程中非常重要的一部分。

通过实验,可以加深对计算机网络原理和协议的理解,并且提高实践能力。

在北航研究生计算机网络实验中,实验2是一个关于网络通信的实验,本文将对该实验进行详细描述和分析。

一、实验目的1.通过实验深入了解网络通信原理和实现;2.熟悉并掌握网络通信调试工具的使用方法;3.通过实验提高网络故障排查和修复的能力。

二、实验内容本次实验的内容是使用网络通信技术完成一个具体任务。

实验使用的工具是Wireshark,这是一款常用的网络抓包分析软件。

学生需要在虚拟机上模拟网络环境,并且使用Wireshark工具对网络通信进行抓包和分析。

实验的具体步骤如下:1.准备实验环境:使用虚拟机软件搭建网络环境,一般使用VMware Workstation或VirtualBox软件;2.配置网络参数:为虚拟机配置IP地址、网关地址、子网掩码等网络参数;3.设置Wireshark:在虚拟机上安装Wireshark软件,并进行基础的配置;4.抓包分析:使用Wireshark对网络通信进行抓包,并对抓包结果进行分析;5.故障排查和修复:根据抓包结果分析,定位网络故障的原因,并进行相应的修复。

三、实验结果与分析进行实验后,我们得到了一份Wireshark的抓包结果。

通过对抓包结果的分析,我们可以得到以下结论:1.网络通信存在问题,通信过程中有大量的丢包和重传;2.网络延迟较高,造成通信速度较慢;3.一些数据包在传输过程中被篡改。

根据以上结论,我们可以推断网络通信存在以下问题:1.网络链路质量差,导致数据包丢失和重传;2.网络带宽不足,导致通信速度较慢;3.网络安全问题,导致数据包被篡改。

为了解决以上问题,我们可以尝试以下解决方案:1.改善网络链路质量,可以通过替换网线、调整网络设备位置等方式改善网络信号质量;2.增加网络带宽,可以通过升级网络设备或增加网络带宽来提高通信速度;3.加强网络安全防护,可以使用防火墙软件、数据包加密等方式来防止数据包被篡改。

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

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

实验2_北航研究⽣计算机⽹络实验实验⼆数据链路层在线实验1.在⽹络课程学习中,802.3和ETHERNETII规定了以太⽹MAC层的报⽂格式分为7字节的前导符、1字节的起始符、6字节的⽬的MAC地址、6字节的源MAC地址、2字节的类型、数据字段和4字节的数据校验字段。

对于选中的报⽂,缺少哪些字段,为什么?答:缺少前导符和起始符,和数据校验字段,这两个字段和校验字段在⽹卡接收MAC帧时被去掉了,因此实验抓包软件的报⽂中没有这些字段。

2.查看交换机的MAC地址表,结果为:答:MAC ADDR VLAN ID STATE PORT INDEX AGING TIME000c-2919-8388 1 Learned Ethernet0/1 99B499-bab9-1336 1 Learned Ethernet0/1 292000c-2940-2cbe 1 Learned Ethernet0/2 281B499-bab9-1338 1 Learned Ethernet0/2 301)、解释MAC地址表中各字段的含义?答:MAC ADDR为设备的MAC 地址VLAN ID为端⼝所在的VLAN编号PORT INDEXT 表⽰源MAC地址为由该端⼝号学习来的STATE 表⽰该记录怎么得来的(学习/配置)AGING TIME 表⽰该记录的⽣命时间2)、这个实验能够说明MAC地址表的学习是来源于数据帧的源MAC地址⽽⾮⽬的MAC地址吗?如果能,为什么?如果不能,试给出⼀个验证⽅法。

答:不能。

⽅法:清空交换机的MAC地址表,断开交换机与PCB的连线,然后ping PCB,查看交换机的MAC地址表,这时MAC 中只有PCA的MAC地址学习记录。

3.在VLAN实验中,实验中的计算机能否通讯,请将结果填⼊下表:4.交换机在没有配置VLAN时,冲突域和⼴播域各有哪些端⼝?配置了VLAN以后呢?答:没有配置VLAN时⼴播域:交换机所有的端⼝是⼀个⼴播域冲突域:每个端⼝是⼀个冲突域配置VLAN:⼴播域:同⼀个VLAN属于⼀个⼴播域冲突域:每个端⼝是⼀个冲突域【本⽂档内容可以⾃由复制内容或⾃由编辑修改内容期待你的好评和关注,我们将会做得更好】。

北航专业综合实验报告

北航专业综合实验报告

实验名称:网络安全综合实验实验时间: 2023年11月15日实验地点:北京航空航天大学计算机学院实验室实验人员: [姓名]一、实验目的1. 深入理解网络安全的基本概念和原理。

2. 掌握网络安全设备的配置与调试方法。

3. 熟悉网络安全攻防技术,提高安全意识。

4. 培养动手实践能力和团队合作精神。

二、实验内容本次实验主要包括以下内容:1. 路由器配置实验:学习路由器的基本配置,包括IP地址、子网掩码、默认网关等,并实现网络的互连互通。

2. APP欺骗攻击与防御实验:学习APP欺骗攻击的原理,并尝试防御此类攻击。

3. 源IP地址欺骗攻击防御实验:学习源IP地址欺骗攻击的原理,并尝试防御此类攻击。

4. DHCP欺骗攻击与防御实验:学习DHCP欺骗攻击的原理,并尝试防御此类攻击。

5. 密码实验:学习密码学的基本原理,并尝试破解简单的密码。

6. MD5编程实验:学习MD5算法的原理,并实现MD5加密程序。

7. 数字签名综合实验:学习数字签名的原理,并尝试实现数字签名程序。

8. RIP路由项欺骗攻击实验:学习RIP路由项欺骗攻击的原理,并尝试防御此类攻击。

9. 流量管制实验:学习流量管制的原理,并尝试实现流量控制。

10. 网络地址转换实验:学习网络地址转换的原理,并尝试实现NAT功能。

11. 防火墙实验:学习防火墙的配置与调试方法,并尝试设置防火墙规则。

12. 入侵检测实验:学习入侵检测的原理,并尝试实现入侵检测系统。

13. WEP配置实验:学习WEP加密协议的配置方法,并尝试破解WEP加密。

14. 点对点IP隧道实验:学习点对点IP隧道的配置方法,并尝试实现VPN功能。

三、实验步骤1. 路由器配置实验:- 搭建实验环境,连接路由器。

- 配置路由器的IP地址、子网掩码、默认网关等。

- 通过ping命令测试网络连通性。

2. APP欺骗攻击与防御实验:- 利用欺骗软件模拟APP欺骗攻击。

- 分析欺骗攻击的原理,并尝试防御此类攻击。

计算机网络技术实训七

计算机网络技术实训七

计算机网络技术实训(七)实训七交换机基本配置【实训目的】(1)掌握访问交换机的常用几种方式。

(2)掌握Cisco packet tracer软件的基本使用。

(3)熟悉Cisco交换机不同的命令行操作模式以及各种模式之间的切换。

(4)掌握Cisco交换机的基本配置命令。

(5)了解什么时候需要将交换机恢复成出厂设置。

【实训设备与环境需求】(1)安装有windows xp操作系统和Cisco packet tracer软件的PC机一台。

(2)交换机与PC机IP地址表表7-1 IP信息表(1)了解交换机的基本访问方式(2)Cisco packet tracer软件安装(3)熟悉Cisco packet tracer环境(3)利用Cisco packet tracer软件搭建虚拟网络环境(4)对交换机进行简单配置,例如交换机IP地址、交换机名称、交换机与PC机是否连通等。

【实验步骤一】Cisco packet tracer软件的认识图7-1 软件安装包的下载图7-2软件安装包图7-3软件安装步骤图7-4软件安装步骤图7-5软件安装步骤图7-6软件安装步骤图7-7软件安装步骤图7-8软件安装步骤图7-9 虚拟机安装完成【实验步骤二】第一步使用Cisco packet tracer将一台交换机和一台PC机连接好,交换机选择2950-24,PC机选择PC-PT PC0,利用直通双绞线将两端端口连接。

如下图5-19所示:图7-10 交换机配置基本连接图第二步配置PC机的IP地址等信息。

双击PC机,选择desktop如下图5-20所示图7-11 PC机配置界面双击IP configuration进入IP地址配置界面如下图5-21所示图7-12 PC机IP地址配置第三步为交换机配置IP地址和网关配置交换机首先进入特权配置模式SW>enableSW#configSW(config)#interface vlan1进行IP地址和子网掩码设置SW(config-if)#ip address 192.168.1.102 255.255.255.0激活IP地址SW(config-if)#no shutdown配置过程如下图5-22图7-13 交换机配置界面图7-14 交换机IP地址查看配置网关语句:SW(config)#ip default-gateway 192.168.0.10 SW(config)#exit第四步对交换机进行一些基本配置(1)为交换机定制新的名称为SW如下图5-23图7-15 交换机改名(2)为特权模式指定新的密码为123456 enable password 123456(3)进入line配置模式 line vty 0 15第五步验证配置:SW#show run第六步:验证主机与交换机是否连通。

北航计算机网络实验实验6应用层实验2024秋

北航计算机网络实验实验6应用层实验2024秋

北航计算机网络实验实验6应用层实验2024秋实验名称:应用层实验实验时间:2024秋实验目的:通过实验了解应用层的工作原理和常见应用协议的使用一、实验背景应用层是TCP/IP协议栈中的最高层,负责为用户提供各种应用服务。

应用层协议有很多种,如HTTP、DNS、FTP等。

本实验将重点学习HTTP协议和DNS协议。

二、实验原理1.HTTP协议HTTP协议是用于Web网络应用的协议,通过在客户端和服务器之间传输超文本数据来进行通信。

HTTP协议的数据传输是基于TCP的,它使用80端口进行通信。

HTTP协议的请求和响应由头部和主体组成,头部包含请求或响应的信息,主体包含实际的数据内容。

2.DNS协议DNS协议用于将域名解析为IP地址,以实现互联网上各个服务器之间的通信。

DNS协议使用53端口进行通信,是一个分布式数据库系统。

DNS协议包含两种类型的消息:查询消息和响应消息,其中查询消息用于向DNS服务器发出查询请求,响应消息用于回答查询请求。

三、实验过程1.HTTP实验在该实验中,首先需要在本地搭建一个简单的HTTP服务器,可以使用Python的SimpleHTTPServer模块来实现。

具体步骤如下:- 在终端中输入命令`python -m SimpleHTTPServer 8000`来启动HTTP服务器,服务器将监听8000端口并提供文件服务。

2.DNS实验在该实验中,需要使用Python的socket模块来实现DNS查询功能。

具体步骤如下:-构造DNS查询消息,包含查询的域名。

- 使用socket模块发送DNS查询消息到指定的DNS服务器。

-接收DNS服务器返回的响应消息,提取出查询结果并显示。

四、实验结果1.HTTP实验结果通过对HTTP服务器的搭建和访问,成功在浏览器中显示了服务器上的文件列表,并且可以通过指定文件名来访问文件。

2.DNS实验结果构造了DNS查询消息,并通过Python的socket模块成功发送到了指定的DNS服务器。

计算机网络实验7-bnu

计算机网络实验7-bnu

实验七动态路由配置
实验要求
⏹本实验以cisco2621为例,为了简化配置,我们全部采用快速以太网口
⏹复习Cisco2600系列路由器配置的基本方法,包括:
⏹给路由器命名
⏹设置路由器密码
⏹设置接口地址
⏹验证设备间的连通性并分析连通的结果
⏹学会动态路由协议Rip的配置方法
所用软件:Boson NetSim for CCNP
实验的大致步骤
⏹验证Boson NetSim for CCNP软件是否已经正确安装,如果没有,请安装
⏹打开Boson NetSim for CCNP软件,使用File-New netmap命令打开Boson Net Designer
⏹用2个2621路由器和2台PC机构成右边的拓扑结构,两个路由器都用fe0/1接口
相连,保存该拓扑。

拓扑图如下
在Boson NetSim for CCNP中打开前面设计的拓扑结构,完成以下配置。

其中对于pc机使用kinipcfg命令进行设置,对路由器1进行如下的配置
对路由器2进行如下的配置
分析并验证当前两台PC机之间,PC机路由器接口之间的连通情况在pc1中进行的测试为
结果发现:pc1只能和路由器1连通,不能与路由器二的连通,也不能与pc2连通
⏹在路由器R1,R2上执行以下命令:
⏹过一段时间以后,用show ip route查看当前的路由表,如r1的路由表结果如下,证
明动态路由已经发挥作用:
⏹分析并验证当前各pc机之间的连通情况,并理解配置的作用
结果如下了
结论:对路由器进行了设置之后,两个路由器之间连通了,并且它们之间的pc机也是连通的。

计算机网络Lab7

计算机网络Lab7


Apache的认证与操作系统、Web应用系统、 MySQL服务器的认证有什么相同点和不同点?

当网络用户首次访问该目录的某个文件时,浏览器 会弹出一个对话框,要求输入用户名和密码,进行 用户身份的确认
◦ 若是合法用户,则显示所访问的页面内容,此后访问该目 录的每个页面,浏览器自动送出用户名和密码,不用重复 输入,直到关闭浏览器为止

这里以文本文件储存用户密码信息形式为例,说明 配置Apache用户认证的基本过程
生成用户密码的htpasswd.exe在
/xampp/apache/bin下,必须进入 DOS状态进行操作 读者在做实验时,需要把生成的用户 密码文件(doglookgate),转移到 /xampp/phpmyadmin/下,以便与 htaccess文件的配置对应


用户访问Apache Friends测试页面时,浏览会弹 出用户认证对话框 用户输入正确的用户名和口令,就可以访问到 Apache Friends的数据库操作界面 (phpmyadmin),否则将被拒之门外

2、在限制访问的目录/xampp/phpmyadmin下, 建立一个名为htaccess的文件,其内容如下 :
AuthName "Database" AuthType basic AuthUserFile /xampp/phpmyadmin/doglookgate Require valid-user


1、对Apache配置文件 httpd.conf进行两处修改 第一处内容为: ◦ allowoverride authconfig ◦ 表示允许对/xampp/phpmyadmin目录下的文 件进行用户认证 第二处修改内容,因为是在Windows下进行实验, 所以需要把: AccessFileName .htaccess 改为: AccessFileName htaccess

北航计算机网络实验网络层、传输层实验共46页

北航计算机网络实验网络层、传输层实验共46页
11、越是没有本领的就越加自命不凡。——邓拓 12、越是无能的人,越喜欢挑剔别人的错儿。——爱尔兰 13、知人者智,自知者明。胜人者有力,自胜者强。——老子 14、意志坚强的人能把世界放在手中像泥块一样任意揉捏。——歌德 15、最具挑战性的挑战莫过于提升自我。——迈克尔·F·斯特利
北航计算机网络实验网络层、传输层实 验
56、死去何所道,托体同山阿。 57、春秋多佳日,登高赋新诗。 58、种豆南山下,草盛豆苗稀。晨兴 理荒秽 ,带月 荷锄归 。道狭 草木长 ,夕露 沾我衣 。衣沾 不足惜 ,但使 愿无违 。 59、相见无杂言,但道桑麻长。 6

计算机网络安全技术实验七

计算机网络安全技术实验七

计算机网络安全技术实验七2010/6/8第1、2节课上机内容以下实验在主机里面完成。

(本实验的工具和程序代码在ftp://219.222.171.9/资源共享/计算机网络安全教程/第九章的相应案例的压缩包里)。

声明:本实验内容为研究学习之用,若有人根据本实验之技术和工具做出危害社会之事,一切后果由实施破坏者承担。

案例9-1 DES算法的程序实现根据DES算法的原理,可以方便的利用C语言实现其加密和解密算法。

在VC++6.0中新建基于控制台的Win32应用程序,算法如程序proj8_1.cpp所示。

设置一个密钥匙为数组char key[8]={1,9,8,0,9,1,7,2},要加密的字符串数组是str[]="Hello",利用Des_SetKey(key)设置加密的密钥,调用Des_Run(str, str, ENCRYPT)对输入的明文进行加密,其中第一个参数str是输出的密文,第二个参数str是输入的明文,枚举值ENCRYPT设置进行加密运算。

程序执行的结果如图8-7所示。

案例9-2 RSA算法的程序实现根据RSA算法的原理,可以利用C语言实现其加密和解密算法。

RSA算法比DES算法复杂,加解密的所需要的时间也比较长。

本案例利用RSA算法对文件的加密和解密。

算法根据设置自动产生大素数p和q,并根据p和q的值产生模(n)、公钥(e)和密钥(d)。

利用VC++6.0实现核心算法,如图8-8所示。

件进行加密,并可以对已经加密的文件进行解密。

在图8-9中点击按钮“产生RSA密钥对”,在出现的对话框中首先产生素数p和素数q,如果产生100位长度的p和q,大约分别需要10秒左右,产生的素数如图8-10所示。

利用素数p和q产生密钥对,产生的结果如图8-11所示。

必须将生成的模n、公密e和私密d导出,并保存成文件,加密和解密的过程中要用到这三个文件。

其中模n和私密d用来加密,模n 和公密e用来解密。

计算机网络实验7报告

计算机网络实验7报告

宁波工程学院电信学院计算机教研室实验报告实验名称:网络管理实验实验项目:综合路由交换实验实验人员:班级:指导老师:试验位置:网络实验室—实验时间:一、实验目的及要求(一)实验目的1、综合理解交换和路由的相关知识2、学习运用Cisco模拟器3、综合运用交换和路由配置命令(二)实验要求按要求完成命令操作使用,将结果和分析记录在实验报告中。

二、实验设备及软件WINDOWS环境的PC机3台、路由器2台、交换机3台,跳线若干。

三、实验内容某单位有两台接入交换机SW1、SW2,这2台交换机接入三层核心交换机SW3,并通过路由器R1上internet。

SW1接入财务部、总经理、技术部、办公室这4个部门;SW2接入技术部、办公室、业务部、销售部这4个部门;SW3接入若干台服务器,要求:1、按部门划分VLAN,部门内电脑可以互相访问,但不同部门间电脑不能互相访问;(注意技术部和办公室分布于2个交换机)2、总经理电脑可以访问各部门的电脑;3、各部门电脑可以访问服务器;4、通过静态路由让所有电脑可通过SW3到达R1,从而可以上Internet;5、画出拓扑图,完成IP地址、子网掩码、网段、VLAN以及接口等的规划部署;6、利用Cisco模拟器,在其上进行配置实现,实现1到4的功能;7、show命令显示配置结果并进行分析思维:财务部 vlan10总经理和服务器 vlan20技术部 vlan30办公室 vlan40业务部vlan50销售部 vlan60sw1 1-6端口财务 7-12总经理和服务器 13-18技术部 19-24办公室(直通线)sw2也依次分配sw1---g1/1----g0/1--->sw3-----g0/2----g1/1---->sw2(这就是连线的规则)下面我说一下简要的方法吧:1,先在sw1和sw2上建立对应的vlan并把端口分配到对应的vlan下2,打开所有的中继( sw3上的中继是要封装了后才能开启的)3,配置三层交换机sw3的路由(这一步完成就可以实现不同vlan通信了)关键点三层交换机的路由现在三层交换机上新建vlan10~vlan60然后用8.02E封装vlan20 再为每个vlan配一个对应vlan内的ip同时开启那个vlan四、实验步骤1.根据题意画出的拓扑图如下:2.之后再在思科模拟软件中做如下操作:(1)创建Vlan;Sw0:Switch>enaSwitch#conf terEnter configuration commands, one per line. End with CNTL/Z.Switch(config)#vlan 2Switch(config-vlan)#name VLAN2Switch(config-vlan)#vlan 3Switch(config-vlan)#name VLAN3Switch(config-vlan)#vlan 4Switch(config-vlan)#name VLAN$Switch(config-vlan)#vlan 5Switch(config-vlan)#name VLAN5Switch(config-vlan)#exitSwitch(config)#Sw1:Switch>Switch>enaSwitch#conf tEnter configuration commands, one per line. End with CNTL/Z.Switch(config)#vlan 4Switch(config-vlan)#name VLAN4Switch(config-vlan)#vlan 5Switch(config-vlan)#name VLAN5Switch(config-vlan)#vlan 6Switch(config-vlan)#name VLAN6Switch(config-vlan)#vlan 7Switch(config-vlan)#name VLAN7(2)将交换机端口划入Vlan;Sw0:Switch(config)#int f0/1Switch(config-if)#switchport access vlan 2Switch(config-if)#int f0/2Switch(config-if)#switchport access vlan 3Switch(config-if)#int f0/3Switch(config-if)#switchport access vlan 4Switch(config-if)#int f0/4Switch(config-if)#switchport access vlan 5Sw1:Switch(config)#int f0/1Switch(config-if)#switchport access vlan 4Switch(config-if)#int f0/2Switch(config-if)#switchport access vlan 5Switch(config-if)#int f0/3Switch(config-if)#switchport access vlan 6Switch(config-if)#int f0/4Switch(config-if)#switchport access vlan 7(3)配置三层交换;三层交换机Sw0:Switch>Switch>enaSwitch#conf tEnter configuration commands, one per line. End with CNTL/Z.Switch(config)#int vlan 2Switch(config-if)#ip address 192.168.1.1 255.255.255.0Switch(config-if)#exitSwitch(config)#int vlan 3Switch(config-if)#ip address 192.168.2.1 255.255.255.0Switch(config-if)#exitSwitch(config)#int vlan 4Switch(config-if)#ip address 192.168.3.1 255.255.255.0Switch(config-if)#int vlan 5Switch(config-if)#ip address 192.168.4.1 255.255.255.0Switch(config-if)#int vlan 6Switch(config-if)#ip address 192.168.6.1 255.255.255.0Switch(config-if)#int vlan 6Switch(config-if)#ip address 192.168.7.1 255.255.255.0配置Trunk:Switch(config)#int f0/1Switch(config-if)#switchport trunk encapsulation dot1qSwitch(config-if)#switch mode trunkSwitch(config-if)#int f0/2Switch(config-if)#switchport trunk encapsulation dot1qSwitch(config-if)#switch mode trunk(4)配置ACL表:给总经理的电脑配ACL如下:(采用自反ACL)Switch(config)#ip access-list extended VLAN2Switch(config-ext-nacl)#deny icmp 192.168.1.0 0.0.0.255 any echo-replySwitch(config-ext-nacl)#permit icmp 192.168.1.0 0.0.0.255 any echoSwitch(config-ext-nacl)#exitSwitch(config)#int vlan 2Switch(config-if)#ip access-group VLAN2 inSwitch(config-if)#exit这一步可以实现总经理部门不能被其它部门访问的功能财务部ACL:Switch(config)#ip access-list extended VLAN3Switch(config-ext-nacl)#deny icmp 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.225Switch(config-ext-nacl)#deny icmp 192.168.2.0 0.0.0.255 192.168.4.0 0.0.0.225Switch(config-ext-nacl)#deny icmp 192.168.2.0 0.0.0.255 192.168.6.0 0.0.0.225Switch(config-ext-nacl)#deny icmp 192.168.2.0 0.0.0.255 192.168.7.0 0.0.0.225Switch(config-ext-nacl)#permit ip any anySwitch(config-ext-nacl)#exitSwitch(config)#int vlan 3Switch(config-if)#ip access-group VLAN3 inSwitch(config-if)#exit这一步能实现财务部不能被其它部门访问,但允许总经理访问,实现其它部门的相同功能同上。

计算机网络原理实验七

计算机网络原理实验七

云南大学软件学院实验报告课程:计算机网络原理实验任课教师:刘春花,刘宇姓名:学号:专业:成绩:实验七、UDP 协议分析实验报告序号:姓名:学号:成绩1.实验目的:分析UDP协议报文格式.2.实验环境:局域网环境,或者是联网的单机。

3.实验步骤:(1)启动ethereal软件,开始报文捕获。

(2)捕获UDP的数据包(3)停止捕获报文。

4.实验分析,回答下列问题(1)请说明你是如何获得UDP的捕获文件,并附上捕获的截图。

答:(1)清空浏览器历史记录及缓存。

(2)启动Etherel协议分析软件,并开始抓包。

(3)启动某个基于UDP的应用程序:通过浏览器访问某个网页。

(4)等出现浏览的网页后停止数据包的捕获。

(5)出现协议分析界面,将filter 一栏填入udp,则只显示UDP协议信息。

UDP的捕获文件的截图:(2)通过捕获的数据包分析UDP的报文结构,将UDP协议树中各名字字段,字段长度,字段信息填入下表。

字段名字段长度字段值字段表达信息Source port 16bits 53 UDP报文源端口号为53Destination port 16bits 58262 UDP报文目的端口号为58262Length 16bits 399 包括首部在内的报文长度(以字节为单位)Checksum 16bits 0*84db UDP报文从源到目的时,其中的比特位未改变Data 32bits 应用数据报文(3)通过和实验五的结果比较,UDP报文和TCP报文结构有何区别?答:UDP报文由源端口号、目的端口号、长度、检验和、应用数据报文五个部分组成。

而TCP报文结构除此之外还有(1)32比特的序号字段(2)32比特的确认号字段 (3)16比特的接收窗口字段,用于流量控制(4)4比特的首部长度字段(5)可选与变长字段,用于发送方与接收方协商最大报文段长度(6)比特的标志字段,用于对已被成功接收报文段的确认。

(4)通过实验五和实验六,分析TCP协议和UDP协议的不同之处。

(完整版)计算机网络实验报告

(完整版)计算机网络实验报告

《计算机通信网络》实验报告姓名班级实验一网络基本概念及应用【实验目的】1.掌握网络的基本概念和术语。

2.熟练掌握电子邮件E-mail的使用。

3.了解Internet的发展过程,掌握获取Internet资源的方法。

熟练掌握Internet搜索引擎Google、Y ahoo等的使用。

【实验环境】Windows 操作系统的计算机,具备Internet环境。

【实验重点及难点】重点学习掌握E-mail的使用以及通过Internet获取资源的方法。

【实验内容】1、记录下局域网结构(1)画出局域网的网络拓扑结构示意图并详细标注各设备类型。

其中的方框代表诸如计算机和打印机之类的部件,并且用直线连接这些部件。

(2)在图表上用字母“S”标记服务器.用字母“W”标记工作站,用字母“P”标记打印机。

如不能确定其中的某个部件,就用字母“O”把它们标记为“其他”。

(3)记录下网络操作系统的类型和版本。

NetWare网络操作系统Windows2000网络操作系统UNIX网络操作系统Linux网络操作系统(4)记录下网络接口卡的类型光纤分布式数据接口。

5、记录下网络的协议。

TCP/IP2、在因特网上创建一个免费的E-mail帐号(以雅虎网站为例)(1)打开因特网浏览器(2)登录到,然后主页出现在屏幕上(3)选中“电邮”图标(4)仔细阅读“雅虎服务协议条款”,选定“接受条款并注册”(5)填写用户名、密码及其它用户信息,然后选择“提交”(6)如果出现“注册成功”信息,则表示创建成功,你的E-mail地址即为用户名@。

如果提示错误,则根据提示重新填写信息。

(7)(8)记录下你的电子邮件ID。

现在就可以在世界上任何地方使用你的Y ahoo电子邮件ID来收发由电子邮件服务提供商提供的电子邮件。

lidegao@(9)3、使用因特网百科全书(1)打开因持网浏览器(2)登录到(3)在搜索对话框中,输入Client,然后选中Go!。

则webopedia屏幕显示出client的定义则屏幕显示NIC(网络接口卡)的定义(5)从weboPedia中退出,并且关闭因特网浏览器实验二网络标准和OSI模型的理解【实验目的】1. 了解网络标准化组织。

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

实验九 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报文的接口的链路层地址。

相关文档
最新文档