




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网络技术基础实验报告 实验环境VB 6.0实验名称实验一:熟悉VB环境及UDP通信实验程序的设计实 验 目 的1通过实验熟悉VB语言开发平台。2通过实验进一步理解UDP通信协议,掌握UDP通信协议的特点。实 验 原 理在TCP/IP模型中,UDP为网络层以上和应用层以下提供了一个简单的接口。UDP只提供数据的不可靠传递,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份(所以UDP有时候也被认为是不可靠的数据报协议)。UDP在IP数据报的头部仅仅加入了复用和数据校验(字段)。用户数据文报协议 (UDP) 是一个无连接协议。跟 TCP 的操作不同,计算机并不建立连接。另外,UDP应用程序
2、可以是客户机,也可以是服务器。 应用层UDPTCP IP 各种网络接口传输层为了传输数据,首先要设置本机的使用协议和本机端口号。然后,本机计算机只需将RemoteHost设置为需要聊天的计算机的Internet地址,并将RemotePort属性设置为跟需要聊天的计算机的LocalPort属性相同的端口,并调用SendData方法来发送信息。最后,本台计算机使用 DataArrival事件内的 GetData 方法来获取对方计算机已发送的信息。实 验 内 容实验步骤:1. 用自己的名字建立子目录。2. 进入VB6.0,双击StandardEXE。3. 出现标准窗体,调整窗体大小到适当尺寸。4.
3、工程名改为UdpTest,窗体名改为FrmMain, 窗体的caprion属性改为“聊天程序”。5. 添加TextBox控件,名字改为IPAdr,Text属性为空,用以输入聊天对象的IP地址。6. 添加两个Lable控件,一个作为背景色,一个作为前景色,属性改为对方“IP地址”,为了使文字在lable的正中央,调整两个lable的叠放位置。7. 添加CommandButton控件,Caption属性改为“确定”,用以确定IP地址。实 验 内 容8. 添加TextBox控件,名字改为TextRecieve,Text属性为空,MultiLine属性为True,ScrollBars属性为2,用以显示
4、接受聊天内容。9. 添加TextBox控件,名字改为TextSend,Text属性为空,MultiLine属性为True,Scrollballs属性为2,用以显示发送聊天内容。10. 添加CommandButton控件,Caption属性改为“发送”,用以发送聊天内容。11. 添加Winsock控件,名字改为UdpSocket.12. 存盘,存盘路径为自己建立的子目录。程序代码:Private Sub Command1_Click()UdpSocket.Protocol = sckUDPProtocol 选择UDP协议UdpSocket.RemoteHost = IPAdr 远方IP地址Udp
5、Socket.RemotePort = 2012 远方端口UdpSocket.Bind 2012 本地端口End SubPrivate Sub Command2_Click()UdpSocket.SendData TextSend.TextDim strData1 As StringDim strData2 As StringstrData1 = TextSend.TextstrData2 = 发送:TextRecieve.Text = TextRecieve & Chr(13) & Chr(10)TextRecieve.Text = TextRecieve & strData2 & strD
6、ata1 本机发送数据也显示在TextSend对话框中TextSend.Text = 清空发送文本框End SubPrivate Sub UdpSocket_DataArrival(ByVal bytesTotal As Long)Dim strData As String 定义接收数据以字符串形式显示Dim strData3 As StringUdpSocket.GetData strDatastrData3 = 接收:TextRecieve.Text = TextRecieve & Chr(13) & Chr(10) 在旧数据后加回车换行TextRecieve.Text = TextRec
7、ieve & strData3 & strData 将新数据加到旧数据之后 都在对话框中显示End Sub实 验 结 果 及 分 析1. 运行程序,分别和两个人聊天2. 聊天双方在IPAdr中输入对方IP地址,点确定,开始通信。3. 在TextSend中输入发送信息,点发送,可以在TextReceive中看到对话内容,自己发送的是“发送:”后显示的内容。4. 同理,对方收到信息后,显示在对方TextRecieve中。对方进行同种操作,将可以在本机的TextRecieve中显示,显示在“接收:”后,现在即实现了利用UDP进行双方聊天。分析: UDP协议是端到端的协议,不需要实现建立连接,只需知道
8、对方的IP地址就可发送数据,每个报文都带有完整的目的地址,协议比较简单,但是它不保证报文传输的可靠性。 IP地址知道后,就可以利用SendData发送数据,数据利用UDP协议传输数据,接收方利用GataData接收数据。至此,双方可以进行正常的聊天。总结: 通过对UDP通讯实验的学习,我们可以利用以前所学的C语言知识来完成代码的改写,起初还有点担心编程类的实验,怕自己不能够编出可运行的程序来,但真正到了自己动手开始做的时候,和以往的实验一样,通过多次的仿真,检查错误,直至运行结果出来。看着自己的实验结果,觉得自己的一番辛苦没有白费,花再多的时间也是值得。实验名称实验二:TCP通信程序的设计实
9、验 目 的1、本实验为验证性实验。2、掌握TCP协议的基本原理。3、掌握TCP协议的通信过程,加深对TCP通信协议的理解。实验原理TCP是一种面向连接的、可靠的、基于字节流的运输层(Transport layer)通信协议。TCP的服务流程:TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接3个过程。TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。 TCP提供的面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。TCP连接的建立: T
10、CP协议通过三次握手完成连接的建立TCP连接的终止:由于TCP的半关闭,需要四次握手 实验步骤:1. 用自己的名字建立子目录。2. 进入VB6.0,双击StandardEXE。3. 出现标准窗体,调整窗体大小到适当尺寸。4. 工程名改为TcpTest,窗体名改为FrmMain, 窗体的caprion属性改为“数据流通信程序”。5. 添加TextBox控件,名字改为TexrSendYourName,Text属性为空,用以输入你的汉语名字。6. 添加TextBox控件,名字改为TextRecieve,Text属性为空,MultiLine属性为True,ScrollBars属性为2,用以显示接受数据
11、。7. 添加TextBox控件,名字改为TextSend,Text属性为空,MultiLine属性为True,Scrollballs属性为3,用以显示你设计的程序。8. 添加CommandButton控件,Caption属性改为“连接”,用以连接服务器的IP地址。9. 添加CommandButton控件,Caption属性改为“发送数据”,用以发送固定格式数据。实验内容10. 添加CommandButton控件,Caption属性改为“发送姓名”,用以发送你的汉语名字。11. 添加三个Lable控件,属性分别为“发送”,“接受”,“程序”,用以显示Text控件的意义。12. 添加Winsock
12、控件,名字改为TcpSocket.存盘,存盘路径为自己建立的子目录。程序代码:Private Sub Command1_Click()TcpSocket.CloseTcpSocket.Protocol = sckTCPProtocolTcpSocket.RemoteHost = 129.9.0.XTcpSocket.RemotePort = 2012TcpSocket.ConnectEnd SubPrivate Sub Command2_Click()TcpSocket.SendData 网络通信实验与设计End SubPrivate Sub Command3_Click()TcpSocket
13、.SendData TextSendYourName.TextTextSendYourName.Text = End SubPrivate Sub Command4_Click()TcpSocket.SendData TextSend.TextEnd SubPrivate Sub TcpSocket_DataArrival(ByVal bytesTotal As Long)Dim strData As StringTcpSocket.GetData strDataTextReceive.Text = TextReceive & Chr(13) & Chr(10)TextReceive.Text
14、 = TextReceive & strDataEnd Sub运行程序:1. 点击连接。在状态栏中可看到“已建立连接,请发送数据“字样。2. 点发送数据,发送“网络通信实验与设计”到服务器,即在服务器可以显示这些文字。状态栏中出现“接收数据成功,请发送姓名”。3. 在TextSendYourName中输入自己的名字,点发送,在服务器即可显示你的名字,状态栏显示“发送姓名成功,请发送程序”。将自己的程序复制到TextRecieve中,点发送程序,服务器即可显示你发的程序,此时你的状态栏显示“程序传送成功,实验已经完成”。实验结果及分析TCP界面截图:TCP服务器显示:分析: TCP协议是面向连接
15、的传输协议,它需要先建立连接,这样保证了数据传输的可靠性。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假
16、设丢失了)将会被重传。总结: 在做实验之前,我以为并不难做,就像以前做过的实验一样,做完实验以后两下子就可以把实验报告写完。直到做完了实验以后,我才真正的认识到其实这并不容易,是一件很挑战的事情,然而学到的知识与难度却成正比,让我受益匪浅。实验名称实验三:基于FTP的文件传输程序设计实 验 目 的1、本实验为设计性实验。2、掌握FTP协议的基本原理。3、通过自主设计FTP协议通信程序,进一步学习理解FTP通信协议,掌握FTP通信协议的基本工作原理。 实验原理FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。该协议是Internet文件传送的
17、基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上传(upload)”文件。在TCP/IP协议中,FTP标准命令TCP端口号为21。FTP也是一个客户/服务器系统。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照 FTP 协议提供服务,进行文件传送的计算机就是 FTP 服务器,而连接FTP服务器,遵循FTP协议与服务器传送文件的
18、电脑就是FTP客户端。用户要连上 FTP 服务器,就要用到 FPT 的客户端软件。实验内容1.用自己的名字建立子目录。2.进入VB6.0,双击StandardEXE。3出现标准窗体,调整窗体大小到适当尺寸。4.工程名改为FtpTest,窗体名改为FrmMain, 窗体的caprion属性改为“文件传输程序”。5.添加TextBox控件,名字改为TextIP,Text属性为为服务器IP地址。6.添加TextBox控件,名字改为TextPort,Text属性为21,用以显示端口号。7.添加TextBox控件,名字改为TextUserName,Text属性为雷玉芬,用以显示服务器允许用户名。8.添加
19、TextBox控件,名字改为TextPassWord,属性为空,PassWord的属性为“*”,用以显示密码。9.添加TextBox控件,名字改为TextUpFile,Text属性为空,用以显示上传文件路径和名称。实 验 内 容10.添加TextBox控件,名字改为TextDownFile,Text属性为空,用以显示下载文件路径和名称。11.添加TextBox控件,名字改为TextState,Text属性为空,用以显示文件输出状态。12.添加CommandButton控件,Caption属性改为“连接”,用以连接服务器的IP地址。13.添加CommandButton控件,Caption属性改为
20、“上传文件”,用以向服务器发送文件。14.添加CommandButton控件,Caption属性改为“下传文件”,用以从服务器下载文件。15.添加7个Lable控件,属性分别为“服务器地址”,“端口”,“用户名”,“密码”,“上传文件”,“下传文件”,“状态”,用以显示Text控件的意义。16.添加Internet Transfer控件,名字改为FtpInt.程序代码:Private Sub Command1_Click() 初始化Internet Transfer 控件 FtpInet.Protocol = icFTP 定义协议类型 FtpInet.RemoteHost = 129.9.0.
21、X 定义FTP服务器所在IP FtpInet.RemotePort = TextPort.Text 定义服务器所用端口号 UserName = TextUserName 设置用户名为TextUserName中输入的名字 Password = TextPassWord 设置密码为TextPassWord 中输入的密码 FtpInet.Execute FTP执行End SubPrivate Sub Command2_Click() 发送文件到服务器FtpInet.Execute , SEND & TextUpFile.Text 用Execute方法传送文件,路径,源文件名和目标文件名在TextUp
22、File中输入End SubPrivate Sub Command3_Click() 下载文件FtpInet.Execute , GET & TextDownFile.Text 用Execute方法下载文件,目标文件名,存储路径和存储文件名在TextDownFile中输入End SubPrivate Sub FtpInet_StateChanged(ByVal State As Integer) 设置状态变化事件TextState.Text = FtpInet.ResponseInfo 在TextState中显示状态信息 End Sub实 验 结 果 及 分 析1. 运行程序,由于是一人使用本
23、机,为了方便,将用户名和服务器都已在属性中更改,填写密码,在服务器开启的状态下,并且都已输入用户信息后,点连接。2. 在TextUpFile中输入路径,源文件名和目标文件名,点上传文件,即可在服务器指定访问目录中找到自己上传的文件3. 在TextDownFile中输入源文件名,存储路径和目标文件名,点击下载文件,即可从服务器指定访问目录中下载源文件到自己指定的目的文件夹中,文件名为指定目标文件名。FTP窗体界面: 分析:上传文件的目的地址和下载文件的源地址,都是FTP服务器指定的目录。FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这
24、个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。总结:由于自己的理论知识基础并没有十分牢固,在实验过程中我遇到了许多难题,这也使我感到了理论知识的重要性。但是我并没有气馁,在实验中每当发现了问题,就自己看书,或者是与小组同学讨论,其他还不会的,在经过老师的讲解以后,最终解决了问题,从而也就加深了我对课本理论知识的理解,达到了“双赢”的结果。实验名称实验四:网线制作实验设备压线钳一把、测线仪一个、双绞线若干段、 RJ-45 水
25、晶头若干实 验 目 的1 了解常用网线的种类。2 掌握在各种应用环境下非屏蔽双绞线制作网线的方法及连接方法。3 掌握网线连通性测试方法。实 验 原 理双绞线可按其是否外加金属网丝套 的屏蔽层而区分为屏蔽双绞线()和非屏蔽双绞线()。从性价比和可维护性出发,大多数局域网使用非屏蔽双绞线() 作为布线的传输介质来组网。 双绞线由根不同颜色的线分成对绞合在一起, 成对扭绞是因为,发送和接收的数据均以差分方式传输,即每一对线互相扭在一起传输一路差分信号(所谓的差分信号是指一根线以正电平方式传输信号,另外一根线以负电平方式传输同一信号),当线路中出现干扰信号时,其对两根线的影响是相同的,因而在接收端还原
26、差分信号时就可以屏蔽掉该干扰信号,减少和抑制外界的干扰,从而减少和抑制外界的干扰。绞线由8很不同颜色的线分成4对绞合在一起,成对扭绞的作用是尽可能减少电磁辐射与外部电磁干扰的影响。在EIATIA568标准中,将双绞线按电气特性区分为:三类、四类、五类线。网络中最常用的是三类线和五类线,目前已有六类以上的。 做好的网线要将RJ45水晶头接入网卡等网络设备的RJ45插座内。相应地RJ45插头座也区分为三类或五类电气特性。RJ45水晶头由金属片和塑料构成,制作网线所需要的RJ一45水晶接头前端有8个凹僧,简称“SE”(Position,位置)。凹槽内的金属触点共有8个,简称“8C”( Contact
27、,触点)。特别需要注意的是RJ45水晶头引脚序号,当金属片面对我们的时候从左至右引脚序号是18,序号对于网络连线非常重要。网线制作方法有两种: ( 1 ) 直通线:双绞线两边都按照EIAT/TIA 568B 标准连接水晶头。 ( 2 ) 交叉线:双绞线一边是按照EIAT/TIA 568A 标准连接,另一边按照 EIT/TIA 568B 标准连接水晶头。 用户可根据实际需要选用直通线或交叉线,各种使用情况如下( PC :计算机、 HUB :集线器、SWITCH :交换机、ROUTER :路由器): PC PC : 交叉线; PC HUB : 直通线; HUB 普通口 HUB 普通口: 交叉线;
28、HUB 级联口 HUB 级联口:交叉线本实验使用直通线:双绞线两边都按照EIAT/TIA 568B 标准连接水晶头,线序:白橙橙白绿蓝白蓝绿白棕棕。在实际通信中,只用到双绞线八根铜线中的第1 、2 、3 、6 四条铜线。实 验 内 容 及 步 骤 1 、先用双绞线剥线器将双绞线的外皮除去3 厘米左右。 2 、将裸露的双绞线中的橙色对线拨向自己的左方,棕色对线拨向右方向,绿色 对线拨向前方,蓝色对线拨向后方,如下图所示。左:橙前:绿后:蓝右: 棕。小心的剥开每一对线,按EIA TIA 568B 的标准( 白橙橙白绿蓝 白蓝绿白棕棕) 排列好。3 、把线整齐,将裸露出的双绞线用专用钳剪下,只剩约1
29、4mm 的长度,并剪齐 线头。将双绞线的每一根线依序放入RJ45 接头的引脚内,第一只引脚内应该放 白橙色的线,其余类推。4 、确定双绞线的每根线已经放置正确,并查看每根线是否进入到水晶头的底部 位置。如到了底部就可以用RJ45 压线钳压接RJ45 接头。这样RJ45 头就制作 完成了。 5 、用RJ45 压线钳压接RJ45 接头,把水晶头里的八块小铜片压下去后,使每 一块铜片的尖角都触到一根铜线,这样制作完成了一个RJ45 头。同样完成另一 端的RJ45 接头。6 、最后用测试仪测试一下通断性。 RJ-45水晶头实 验 结 果 及 分 析1. 使用测线仪测试直通线的连接情况,选择线路测试选项
30、,先将被测网线的一个接头插入测试接口。2. 在选择确认以后,马上将网线另一头插入另一个测试端口。3. 观测线路测试结果。测试仪显示出现了交叉和X,表明制作的网线接头的线序出现了问题,此网线也就不能正常使用。究其原因主要是我们组有人将EIA TIA 568B 的标准记混了,出现了交叉,并且整理线的时候也没有注意到中间有根线是没有进入到水晶头的底部位置。重新制作以后,测线仪显示S和M都是直接相连,并且没有X出现,这样表明三条网线都能正常使用。分析: 做水晶头时,使水晶头的弹片朝外,入线口朝下,从左到右,遵循上面的线序,充分插入线(以在水晶头的顶部看到双绞线的铜心为标准),然后用网线钳夹一下,就可以
31、了。 1、同种类型设备之间使用交叉线连接,不同类型设备之间使用直通线连接; 2、路由器和PC属于DTE类型设备,交换机和HUB属于DCE类型设备; 3、RJ45网络接头做法一般有568A和568B两种标准做法,按同一标准即直通线,不同标准即交叉线。 不管如何接线,最后完成后用RJ-45测线仪测试时,8个指示灯都应依次闪烁。总结: 通过本次实验我学会了如何制作网线,同时也能熟练使用剥线/压线钳和测线仪。在实验过程中也出现了一些问题,我们已经找到原因并且解决额问题。这个实验很有意义,它让我对网线、水晶头构造有了全面的了解,而且让我增加了一门很实用的技能。实验名称实验五:路由器配置及组网实验设备路由
32、器3台,PC机3台,直通线若干实 验 目 的1、 熟悉思科VPN路由器的基本组成和功能;2、 掌握路由器的基本配置及测试;3、 使用路由器实现跨网段连接,掌握RIP的配置过程。实 验 原 理路由器工作于OSI七层协议中的第三层,是用于网络互连的计算机设备,其主要任务是接收来自一个网络接口的数据包,根据其中所含的目的地址,决定转发到下一个目的地址。因此,路由器首先得在转发路由表中查找它的目的地址,若找到了目的地址,就在数据包的帧格前添加下一个MAC地址,同时IP数据包头的TTL(Time To Live)域也开始减数,并重新计算校验和。当数据包被送到输出端口时,它需要按顺序等待,以便被传送到输出
33、链路上。因此路由器也就必须有多个三层接口连接不同的网络,协议也至少向上实现到网络层,具有存储、转发、寻径功能。路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据路径表(Routing Table),供路由选择;时使用。路径表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。路径表可以是由系统管理员固定设置好的,也可以由系统动态修改,可以由路由器自动调整,也可以由主机控制。路由器为了获得路由表,通常使用RIP.RIP的
34、特点:(1)仅和相邻的路由器交换信息。(2)路由器交换的信息是当前本路由器所知道的全部信息。 (3)按固定时间交换路由信息。实 验 内 容实验步骤:(一)路由器的基本配置实验1.组建网络Router1 PC机1Router2PC机1 Wan1 Wan2用已经做好的直通网线按上图进行连接,两个路由器都选择Wan1口于各自的PC机相连。1.配置好本地连接的IP地址,Router1和Router2分别选择3和0。默认网关分别设为和,对两台路由器进行复位操作。2.配置路由器11)在网2的PC机打开浏览器,在地址栏中
35、键入,输入用户名“admin”,密码“admin”进行登录。2)登录后观测“Port Statistics”端口状态显示是否正确,如不正确,再次进行复位操作。3)进入“setup”配置页面中的“Network”子页面开始进行配置。配置参数如下:Device IP Address: (设置Wan2路由器IP)Subnet mask:DualWAN/DMZ Setting选择“Duanl Wan”Wan1设置 static IPSpecify Wan IP Address:Subnet Mas
36、k:Default Gateway Address:DNS Server:4)“setup“配置页面的“advanced”子页面配置如下:Working Mode 选择“Router“模式RIP选择“Enabled“5)进入“firewall“页面关闭防火墙,修改路由器密码6)Router1的配置过程相同,仅需将路由器IP地址换为Router1的IP,Specify Wan IP Address 改为Router2的IP,默认网关和DNS服务器地址改为router3的IP地址7)至此,两台PC机的配置已经完成,可以使用“
37、ping“命令进行测试实 验 内 容(二)环网RIP实验PC3PC2Router3Router2Router1PC1Wan1 Wan2Wan1 Wan2Wan2 Wan11.按照上图组建网络2.对路由器和PC机逐一进行配置,配置过程和上一环节路由器的基本配置实验相同。Router1的网络配置:1)进入Setup配置页面的Network子页面进行设置:Device IP Address: (设置Wan1路由器IP)Subnet mask:Wan1:static IPSpecify Wan IP Address:Subnet
38、Mask:Default Gateway Address:DNS Server:Wan2:static IPSpecify Wan IP Address:Subnet Mask:Default Gateway Address:DNS Server:2)Router2和Router3的配置和Router1的类似3)关闭3个路由器的防火墙4)将3个路由器的system management配置页面中的DaulWAN设置为“Loa
39、d Balance“5)对PC机进行网络配置,配置按照所连接的路由器进行配置,配置方式与上一环节相同。实 验 结 果 及 分 析路由器的基本配置图:1.实 验 结 果 及 分 析路由器的基本配置图:执行PING操作:PC1 PING PC3实 验 结 果 及 分 析分析:动态路由是指路由协议可以自动根据实际情况生成的路由表的方法。动态路由的主要优点是,如果存在到目的站点的多条路径,运行了路由选择协议,比如RIP之后,而正在进行数据传输的一条路径发生了中断的情况下,路由器可以自动的选择另外一条路径传输数据。RIP使用距离向量算法(DVA)计算路由选择路径。在DVA中,路由选择的确是基于到一个目的
40、站中最少路由中继(hop)数或到一个相邻路由器路径的费用计算出来的一个总的费用。RIP路由选择表与其它路由器大约每30秒钟交换一次,路由器就是基于新的消息来重新生成它们的路由选择信息表。如果一个路由器连到低吞吐量的WAN链路,那么它在重新生成路由选择表时就会落后。另外,交换路由选择信息表要增加网络额外开销,它会引起许多拥塞,进一步推迟路由选择表的更新。如果一条路由失败了,重新建立路由选择表所需的延迟将会推迟一条新的路由尽快地建立。在直通线发生断路的情况下,一段时间过后,都能有数据接收,即表明连接又重新建立起来,这对于建立一个大型的网络是一个优点。总结: 本次实该没有难度,但是还是出现了不少问题
41、,可能是在模拟器上做和真机上做有些差异吧。要做一个网络,首先要把子网划分好要联通整个网络,需要一步一步把单个网联通,最后通过交换机或路由把不同的子网连起来,这在模拟器上操作起来比较简单,但是真机上就不那么容易了,所以过程中遇到了一些问题,通过查找资料和询问同学也都基本解决了,通过本次试验我相信我对计算机网络有了更深一步的了解。实验名称实验六:网络通信综合实验实验设备C8051F单片机、PC机实 验 目 的熟悉C8051硬件结构及软件编程方法,掌握TCP、IP、HTTP、UDP和ARP等协议的内容及用单片机实现TCP/IP协议的基本方法实 验 原 理TCP/IP 工作原理在源主机上应用层将一串字
42、节流传给传输层; 传输层将字节流分成 TCP 段, 加TCP 包头交给 IP 层; IP 层生成一个包, 将 TCP 段放入其数据域, 并加上源和目的主机的 IP 地址后, 交给网络接口层, 再交数据链路 层, 数据链路层在其帧的数据部分装上IP 包, 发往目的主机或 IP 路由器处理. 在目的主机处, 数据链路层将数据链路层帧头去掉, 将 IP 包交给网络接口层再交 IP 层, IP 层检查IP 包头, 如果包头中的检查和计算出来的不一致, 则丢弃该包; 如果检查一致, IP 层去掉 IP 头, 将 TCP 段交给 TCP 层, TCP 层检查顺序号来判断是否为正确的TCP 段; TCP 层
43、检查 TCP 包头, 如果不正确就抛弃, 若正确就向 主机发送确认; 目的主机在传输层去掉 TCP 头, 将字节流传给应用程序.单片机实现流程图:实 验 原 理HTTP协议是基于请求/响应范式的。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。相对于TCP协议,UDP协议的另外一个不同之处在于如何接收突发性的多个数据报。在局域网中,网
44、络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。它就是通过地址解析协议获得MAC地址。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。实验程序参考框图:实 验 内 容实验步骤:1.双击实验所给的中的文件Web51.Uv2,进入到Keil uVision3的编辑界面。2.进入到Keil uVision3编辑界面后,看到12个子函数,选择CKSUM,完成校验和函数的编译。3.选择IP子函
45、数,根据提示编写相关的语句编程。4.选择UDP子函数,完成UDP的编译工作。5.选择WEBDOC1子函数,按照要求编写网页的HTML语句。将网页的标题改成“大学网络技术基础实验”,并在网页里面把所有的组员名字与学号添加上去。6.实验成功时,要求把网页抓图保存下来。7.进行编译,编译成功之后,将板子和电脑相连,后点击LOAD按钮将编译成功生成的Web51.hex文件下载到板子里面。8.手动将电脑 IP 改为 192.168.208.Y,将子网掩码改成,然后使用交叉网线将电脑和开发板直接相连,在浏览器中输入 192.168.208.X,(Y不等于X)即可访问单片机编程的服
46、务器,在浏览器中看到编译好的网页内容。编程:MAIN函数部分ULONG code my_ipaddr=0xC0A8D025L; /IP地址:192.168.208.XIP部分ip-ver_len = 0x45 ; / 4代表:采用IPv4,5:首部长度为5个32 bit,/包含20 byte 的IP头部 ip-type_of_service = 0; / 不使用该字段 ip-total_length = len+20 ; / 包括 len 和 IP头部长度 两个部分 ip-identifier = ip_ident+; / 标识 ip-fragment_info = 0; / not frag
47、mented ip-time_to_live = 32 ; / 要求最大跳数为32 ip-protocol_id = proto_id; / type of payload ip-header_cksum = 0 ; / 首部校验和初始化 ip-source_ipaddr =my_ipaddr ; / 源IP地址 ip-dest_ipaddr = ipaddr ; / 目的IP地址 / Compute and insert complement of checksum of ip header ip-header_cksum = cksum( outbuf+14 , 20 );实 验 结 果
48、及 分 析1.程序编写完成,浏览器访问单片机:2.双击桌面上的图标,打开CommView软件。接着点击软件中的“开始捕获”键,将实验板通过网线和电脑连接,打开实验板的电源。在浏览器中输入IP地址:192.168.208.X,访问单片机Web服务器,CommView中的“最近IP连接”窗口会产生相关信息。点击旁边的“封包“键,即可进行数据包的协议头分析:实 验 结 果 及 分 析抓包截图实 验 结 果 及 分 析1.ARP当一个基于TCP/IP的应用程序需要从一台主机发送数据给另一台主机时,它把信息分割并封装成包,附上目的主机的IP地址。然后,寻找IP地址到实际MAC地址的映射,这需要发送ARP
49、广播消息。当ARP找到了目的主机MAC地址后,就可以形成待发送帧的完整以太网帧头。最后,协议栈将IP包封装到以太网帧中进行传送。单片机 IP:192.168.208.XMAC主机IP:192.168.208.YMACARP应答单播数据包ARP请求广播数据包当主机要和单片机通信时,主机会先检查其ARP缓存内是否有单片机的MAC地址。如果没有,主机会发送一个ARP请求广播包,此包内包含着其欲与之通信的主机的IP地址,也就是单片机的IP地址。当单片机收到此广播后,会将自己的MAC地址利用ARP协议响应包传给主机,并更新自己的ARP缓存,也就是同时将主机的IP地址/MAC地址对保存起来,以供后面使用。
50、主机在得到单片机的MAC地址后,就可以与单片机通信了。同时,主机也将单片机的IP地址/MAC地址对保存在自己的ARP协议缓存内。2.IPIP层接收TCP报文后,它把所有的TCP报文都当成一段数据加载在自己的数据段,然后加上IP报头,IP报头内容就是目的和源IP地址。所以在IP层又有一个可以实现跟对方IP点的通讯链路。然后IP报文传到网际层,加上帧头,也就是MAC地址变成帧然后再变成2进制在物理链路上进行真实传输.3.UDP使用UDP进行程序设计可以分为客户端和服务器端两部分。服务器端主要包含建立套接字、将套接字与地址结构进行绑定、读写数据、关闭套接字几个过程。客户端包括建立套接字、读写数据、关
51、闭套接字几个过程。4.TCP服务器(单片机)程序流程:1程序初始化 ;2填写本机地址信息;3定并监听一个固定的端口 ;4收到Client的连接后建立一个socket连接 ;5产生一个新的进程与Client进行通信和信息处理 ;6子通信结束后中断与Client的连接 。客户端程序流程:1程序初始化 ;2填写服务器地址信息 ;3连接服务器 ;4与服务器通信和信息处理 ;5通信结束后断开连接 实 验 结 果 及 分 析5.CKSUMIP数据报的首部校验和,在首部校验和字段只检验数据报的首部,不包含数据部分。为了减小计算检验和的工作量,在发端,先将IP数据报首部划分为许多的16bit字的序列,并将检验
52、和字段置零,用反码计算方法将所有的16bit字相加后,将得到的和反码写入检验和字段。接收端收到数据报之后,将首部的所有16bit字在使用反码计算方法相加一次。将得到的和取反码,若首部正确,无误码,则此结果必定为零,于是保留,否则,丢弃。UDP的首部校验和的计算流程和IP的相类似,但不同的是:UDP的校验和是将首部和数据部分一起都检验。 在发送端,首先是将全零放入检验和字段。再将伪首部以及UDP用户数据报看成是由许多16bit的字串接起来。 若UDP用户数据报的数据部分不是偶数个字节,则要填入一个全零字节(但此字段不发送)。 然后按二进制反码计算出这些16bit字的和(两个数进行二进制反码求和的
53、运算的规则是:从低位到高位逐列进行计算,加到下一列,若最高位相加后产生进位,则最后得到的结果要加1。 将此和的二进制反码写入校验和字段后,发送此UDP用户数据报。在接收端,将收到的UDP用户数据报连同伪首部(以及可能的填充全零字节)一起,按二进制反码求这些16bit字的和,再取反码。 当无差错时其结果应全为0。否则就表明有差错出现, 接收端就应将此UDP用户数据报丢弃。TCP的和UDP的方法相同。6.HTTP基于HTTP协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。其实任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用户请求。当浏览器是HTTP客户,向服务器(单片机)发送请求,当浏览器中一个网址
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨界合作客户关系构建-深度研究
- 2025年01月重庆市荣昌区工商业联合会公开招聘非公企业和社会组织专职党建工作指导员1人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 务合同范本版
- 农田土地翻耕合同范本
- 农村简易征地合同范本
- 企业咨讯管理合同范本
- 住建部电影合同范本
- 个人购买混泥土合同范本
- 劳务合同范本附加
- 劳务派遣精简合同范本
- 《人工智能导论》(第2版)高职全套教学课件
- 39 《出师表》对比阅读-2024-2025中考语文文言文阅读专项训练(含答案)
- 蛇胆川贝液在动物模型中的药理作用研究
- GB/T 44260-2024虚拟电厂资源配置与评估技术规范
- 中国煤炭地质总局公开招聘报名表
- AQ 1064-2008 煤矿用防爆柴油机无轨胶轮车安全使用规范(正式版)
- 电子商务数据分析基础(第二版) 课件 模块1、2 电子商务数据分析概述、基础数据采集
- YB-T+4190-2018工程用机编钢丝网及组合体
- 高大模板安全施工施工安全保证措施
- 比亚迪公司应收账款管理的问题及对策分析
- 【高考真题】2024年新课标全国Ⅱ卷高考语文真题试卷(含答案)
评论
0/150
提交评论