版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1网络基础实验2实验简要介绍本章实验是学生接触计算机网络的基础实验。通过本实验,实验者能够:了解常见的计算机网络设备;了解网络中心布局和规划;掌握网络基本命令的使用;掌握网线的制作和使用网线实现两台计算机通信;掌握使用交换机组建小型局域网;掌握如何组建无线网络。3实验目的了解计算机网络。熟悉相关的网络命令工具,能够实现其相应的网络测试。掌握网线(双绞线)的制作方法。掌握交换机基本配置的步骤和方法。掌握无线网络的组建。掌握主机防火墙的配置。4实验设备及软件实验所需设备:微型计算机2台,配置如下:CPU:P4或以上级别内存:512MB硬盘空余容量:512MB客户机预装WindowsXP或Windo
2、ws 7服务器预装Windows2003及以上系统无线路由器手机实验所需软件packet tracer6.25实验原理通过让学生参观学校网络中心,对网络有个初步认识,帮助学生认识计算机网络以及了解网络设备。通过网络基本工具的使用,能够使用网络工具诊断常见的网络故障,理解常见的网络传输介质双绞线,并学会网线的制作。通过交换机组建局域网,帮助学生掌握什么是计算机网络,对计算机网络有具体的认识。6实验内容说明通过参观学校的网络中心,了解网络中心的布局和规划,初步认识计算机网络设备,认识计算机网络。 通过PING命令测试网络连通性,使用Tracert命令追踪数据包路径。认识网线类别,制作网线,使用网线
3、实现两台计算机直连。利用Packet tracer配置交换机,组建小型交换网络。配置无线路由器,观察手机的无线网络。7实验步骤参观网络中心,认识常用的网络设备常用网络命令的使用制作双绞线运行Packet Tracer软件,在逻辑工作区放入一台交换机和一台工作站PC,配置交换机,组建小型交换网络配置PC的IPv4地址并验证连通性,配置PC的无线网卡,配置无线路由器,使用手机登录到无线网络配置主机PC-B的防火墙,测试防火墙是否生效,配置R1为SSH Server,在R2上远程SSH登录R1,在PC上远程SSH登录R18功能测试-网线制作把网线的一端插入测线仪的TX端,另一端放到RX端,或者放到R
4、emote端。打开测线仪的开关,如果在自动档,那么两端的红灯会从1相应的亮到8。如果觉得灯亮得太快,可以打到手动档,按中间的白色按钮,灯会一个一个的亮。9实验报告要求实验目的主要内容实验步骤测试过程实验错误或失败的原因结果分析心得体会10实验思考题通过本实验,你的体会是什么?思考如果你的计算机要连接到互联网,需要哪些网络参数?思考什么时候使用直通线,什么时候使用交叉线。什么是用户模式、特权模式和全局配置模式?根据家中的无线路由器说明和步骤,配置无线网络。配置PC-B防火墙,同时阻止PC-A访问PC-B的WEB页面和TELNET登录。11应用服务器配置实验12实验简要介绍应用服务器是指通过各种协
5、议把商业逻辑曝露给客户端的程序。它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器使用此商业逻辑就像调用对象的一个方法一样。通过本实验,实验者能够:掌握服务器操作系统的安装;掌握在服务器上安装服务并配置;掌握服务功能的测试与应用。13实验目的熟练掌握windows服务器操作系统的安装。熟练掌握在服务器上安装FTP、WEB、DHCP、DNS角色并配置。熟练掌握FTP、WEB、DHCP、DNS服务的各项功能。14实验设备及软件实验所需设备:微型计算机2台,配置如下:CPU:P4或以上级别内存:512MB硬盘空余容量:512MB客户机预装WindowsXP或Windows 7服务器预装Wi
6、ndows2003及以上系统实验所需软件FTP(windows IIS组件)WWWFTP(windows IIS组件)DNS(DNS服务端组件)DHCPDNS(DHCP服务端组件)15实验原理配置 WWW、FTP 服务器: Win2003 系统配置好 WWW、FTP 服务器后利用本机访问2003服务器的WEB网站和FTP站点。 配置 DHCP、DNS 服务器: Win2003 系统配置好 DHCP、DNS 服务器后使本机获得 IP 地址并连通外网。注意:在虚拟机中,只有设置好了虚拟网卡,才能使得2003系统利用虚拟网卡与本机通信,使得本机能访问2003中的各项服务16实验内容说明本实验将在wi
7、ndows server 2003 上安装以下服务:FTP、WWW、DHCP、DNS服务安装不必按照先后顺序2003服务器网卡设置为客户端所在网段安装好每项服务后进行功能性测试17实验步骤设置windows server 2003主机IP地址为Windows2003添加应用程序服务器角色在Windows2003下新建FTP服务器在windows2003下新建WEB站点为Windows server 2003添加DHCP角色配置DHCP服务器为Windows server 2003添加DNS角色配置DNS服务器测试各项服务器功能18功能测试-FTP完成FTP服务器角色配置后,在客户端PC的XP或
8、WIN7系统打开本地PC机浏览器,在地址栏输入32访问我们刚刚建立的服务器。19功能测试-WEB完成WEB服务器角色配置后,在客户端PC的XP或WIN7系统打开本地PC机浏览器,在地址栏输入32访问我们刚刚建立的服务器。20功能测试-DHCPXP或WIN7主机本地连接设置为自动获取后,可以看到已经从DHCP服务器成功获取到IP地址、网关、DHS服务器地址、WINS服务器地址以及获取到的这些参数的租期时间。21功能测试-DNS在命令行下面利用ping命令去探测IP地址,此时DNS服务器会自动翻译地址为对应域名,并且在浏览器里访问该域名也会直接指向的WEB站点。22实验报告要求实验目的主要内容实验
9、步骤测试过程实验错误或失败的原因结果分析心得体会23实验思考题通过本实验,你的体会是什么?如何保障服务器访问的安全性。尝试自己安装一个新的服务并测试。如果需要使用服务器,会用到哪些功能?尝试使用其它服务器系统比如windows2012、linux等24第三章网络协议分析实验使用Wireshark分析数据包使用协议分析软件分析数据包可以帮助学生理解计算机网络体系结构的实质,是学习计算机网络的必备实验本章实验贯穿整个TCP/IP协议层次,可以详细分析数据链路层、网络层、传输层和应用层的数据抓包工具种类WiresharkEtherealSnifferTcpdump(linux系统自带)协议分析工具的
10、构成与安装Winpcap.exe是Win32平台上进行包捕获和网络协议分析的开源库,含有很重要的包过滤动态链接库(packet.dll库)和wpcap.dll库,这两个动态链接库都提供有抓包工具必需的应用编程接口API。 在安装之前,必须要先安装WinPcap,否则抓包无法完成。值得一提的是,新版本的Wireshark工具已经把WinPcap库固化在Ethereal的安装程序中,只需要按照提示步骤默认安装即可。下载软件常见的网络协议分析工具包括WireShark、Sniffer和Tcpdump(linux系统自带)。WireShark是一款用来捕获网络上数据包并把这些信息通过图形用户界面显示的
11、网络分析工具,是开源代码的网络协议分析软件。可以从/#download页面下载WireShark,并在实验的计算机上进行安装。 安装熟悉软件界面说明一般PC都带有NPF拨号适配器(很少使用)和某一种有线网卡接口(网卡型号可能有不同)。因为在该PC中安装有虚拟机VMware,VMware会显示出两个虚拟机网卡接口选项,如果没有虚拟机,就无此接口选项。如果某PC(主要是笔记本计算机)装有无线网卡,就会有无线网卡接口选项。读者选择哪个网卡接口进行抓包,是选择无线网卡还是选择有线网卡,可以根据自己PC的具体情况来定。示例(1) NPF拨号适配器;(2) Intel PRO 1000MT网卡;(3) V
12、Mware虚拟机适配器1;(4) Intel PRO无线网卡;(5) VMware虚拟机适配器2。开始抓包并统计分析数据包软件窗口由三部分构成从上到下分别是(1) 各个协议的数据包列表;(2) 某一具体协议的各个层次的数据分析;(3) 帧的十六进制具体数据展示。说明可以看到,最上面的窗口为数据包的列表,显示的是捕获到的每个数据包的大概信息;中间的窗口是选定的某个数据包的层次结构和协议分析;最下面的窗口是数据包的16进制数据的具体内容,也就是数据包在物理层上传递的数据。过滤器设置 捕获过滤在抓取数据时,如果只想捕获特定的报文,可以在抓取分组前就要设置捕获过滤器,从而决定捕获数据包的类型。可以直接
13、在“应用显示对话框”输入过滤规则,则显示符合规律规则的数据包,例如,我们输入HTTP,则只显示HTTP协议的数据包,如果要捕获特定的报文,那在抓取packet前就要设置,决定数据包的类型。比如说:a.捕获 MAC地址为 00:d0:f8:00:00:04 网络设备通信的所有报文 ether host 00:d0:f8:00:00:04b.捕获 IP地址为 网络设备通信的所有报文 host c.捕获网络web浏览的所有报文 tcp port 80d.捕获除了http外的所有通信数据报文 host and not tcp port 80Capture filterFilter string 语法格
14、式src|dst host ether src|dst host gateway host src|dst net mask |len tcp|udp src|dst port less|greater ip|ether proto ether|ip broadcast|multicast relop 符号在Filter string语法中的定义 Equal: eq, = (等于)Not equal: ne, != (不等于)Greater than: gt, (大于)Less Than: lt, = (大等于)Less than or Equal to: le, = (小等于)Display
15、 filters 显示过滤 可以直接在主界面的filter上选择Analyze的下拉菜单Analyze下的Display filters正确的语法如下,和“Capture Filter”的语法有所不同:显示 以太网地址为 00:d0:f8:00:00:03 设备通信的所有报文 eth.addr=00.d0.f8.00.00.03显示 IP地址为 网络设备通信的所有报文 ip.addr=显示所有设备web浏览的所有报文 tcp.port=80显示除了http外的所有通信数据报文 ip.addr= & tcp.port!=80Analyze的下拉菜单Enable protocols 是否启用该协议
16、的解析, 点选该协议后,相关的上 层协议才能显示出来。Analyze的下拉菜单Decode As 用户定义报文协议说明User Specified Decodes 用户修改的报文编译 Analyze的Decode AsDecode As 用户定义报文协议说明 通过定义后,数据包细节的窗口解释:以前是 tcp的解释,更改就直接显示ssl格式的报文。 分析follow tcp streamTCP报文是面向字节流的,浏览 ,进行 抓包,可以看到tcp数据流抓数据包捕获数据包的时间长短要根据具体情况而定。比如,要分析HTTP协议的数据结构,只需要捕获一条HTTP数据即可;而要观察浏览器浏览服务器端网站
17、内容的详细过程,就需要详细地捕获从开始到结束的整个过程。以网站首页数据量较少的为例,假如要详细显示客户端和首页数据的详细交互过程,就需要不停地捕获数据包直到数据彻底传递完毕。 分析数据包No.列标识出Ethereal捕获的数据包的序号,Time表明在什么时间捕获到该数据包,Source和Destination标识出数据包的源端和目的端,Protocol表明该数据包使用的协议(以该数据包最上层协议名命名),Info是在列表中大概列出该数据包的信息。 数据包具体网络协议实例分析数据链路层帧网络层协议IP传输层协议TCP/IP应用层协议数据链路层数据传递两种方式点对点信道广播信道PPP帧首部结构Et
18、hernet帧首部结构某个Ethernet帧的十六进制数据显示说明当单击选择第26号帧(frame)时,打开下方的注释,显示出该帧的概要信息:帧的到达时间,帧的长度有72字节,整个帧内部各个层次所用到的协议(分别是Eth, IP, UDP和DNS)。 Ethernet帧的首部 以太网帧首部一共14个字节,6个字节的目的地址00 11 5d ac e8 00(Cisco_ac:e8:00思科网卡标识符),表明使用的是Cisco公司的设备,6个字节源地址00 16 17 ab 1e 48,也就是本主机的网卡地址,2个字节类型字段0800,表明里面的数据是IP数据报。IP数据报首部的结构 IP数据报
19、首部分析这个IP数据报的首部有20字节长,详细的数据分析如下:Version:版本4,目前使用的是IPV4。Header length:首部长度20字节(5个单位,每个单位4字节)。Differentiated Services Field:区分服务00(简称为DS,默认值是00,路由器根据DS字段不同的值来提供不同等级的服务质量,其中,前6位是区分服务码点DSCP,后面两位目前不使用,记为CU)。Total Length:1500字节。Identification:标识a6be(42686)。Flags:标志,占3比特位,分别是010。第一位是保留位,目前不使用,值为0;第二位记为DF,值为
20、1表示不能分片,值为0表示允许分片;第三位记为MF,值为1表示后面还有分片的数据报,值为0表示这已是若干数据报片中最后一个。Fragement Offset:片偏移0个单位。Time to live:生存时间51,表明这个数据报之前已经经过了13(64减去51等于13)个网关路由节点。Protocol:协议06表示内部数据是TCP报文段。Header checksum:首部检验和为768c,correct表明检验正确。Source:源IP地址3。Destination:目的地址21。 TCP/UDP报文首部TCP报文段首部分析这是一个TCP报文段,详细的数据分析如下:Source port:源
21、端口80,表明源端使用的是HTTP协议。Destination port:目的端口3251。Sequence number:序列号5841(相对序列号)。Next sequence number:下一个序列号7301(相对序列号)。Acknowledgement number:确认号1000(相对确认号)。分析Header length:首部长度20字节(5个单位)。保留位:000000,目前没有使用。Flags:标志,6个控制比特位,置1表示有效。0 紧急 1 确认(表明这是一个TCP确认报文) 0 推送 0 复位 0 同步 0 中止Window size:窗口大小6993。Checksum
22、:0abb。 UDP首部分析Source port:源端口64795。Destination:目的端口53(表明目的端使用的应用层协议是DNS)。Length:长度30(48字节)。Checksum:检验和6949(正确)。应用层协议应用层有很多协议,包括HTTP, DNS和FTP等。以DNS为例,图3.20所示为DNS询问报文,客户端询问DNS服务器的IP地址。图3.21所示为DNS应答报文,DNS服务器回答客户端关于的IP地址。可以看到,有多个IP地址,对于访问量很大的门户网站,要同时经受住大量的用户连接和访问,一般都是采用这种多IP技术。DNS报文DNS应答报文 ftp重流量数据包 ar
23、p的工作过程 浏览网页抓包过程 分析假如客户端浏览网站服务器。首先,客户端22向本地DNS服务器(8)请求得到的IP地址,本地DNS服务器(8)回复客户端,解析出的IP地址是8(大型门户网站的域名都有多个IP地址,客户端从其中选择一个连接使用);然后,客户端就开始和服务器8建立通信联系。因为浏览网页在应用层使用的是HTTP协议,在传输层使用的是TCP协议,所以客户端和服务器8需要由TCP的“三次握手”来建立连接。连接建立成功后,客户端22给服务器8发送HTTP的GET请求报文,服务器用TCP给客户端传递报文,用HTTP应答,客户端对服务器进行确认,直到数据全部传递完毕。图3.24所示为详细的浏
24、览网页的抓包过程。捕获到QQ的数据包 分析以QQ为例,QQ和外界相互传递消息,用Ethereal来捕获QQ数据包,如图所示。可以看到,QQ客户端22登录腾讯的QQ服务器3,在应用层使用的是ICQ协议。因为UDP是无连接的,即时性好、速度快、开销小,所以QQ即时通信聊天在传输层一般采用UDP协议。 分析通过抓包工具分析,QQ客户端登录服务器有三种方式,分别是(1) UDP方式。QQ的服务器端口为8000并保持不变,QQ的客户端端口为4000。如果登录两个QQ,客户端使用的端口号就分别是4000和4001;如果再登录多个QQ,其新登录的QQ端口号就依次是4002, 4003递增。这个系列的服务器最
25、多,速度也是最快的。QQ上线会向这若干个服务器发送UDP数据包,选择回复速度最快的一个作为连接服务器。 分析(2) TCP方式。服务器使用HTTP端口80,客户端端口不固定。(3) TCP方式。服务器使用HTTP安全连接443端口,主要是面向VIP会员。结合上述分析,对于部分从事网络管理的人员,当需要对某些网络软件或游戏进行控制时,就需要用Ethereal来分析其使用的协议、端口号和服务器IP地址等,然后再利用访问控制或防火墙等其他技术来达到对网络用户进行控制和管理的目的。分析如果知道QQ客户端和服务器端使用的端口分别是4000和8000,则可以在访问控制列表中设置不允许这两个端口的数据通过,
26、这样就达到了禁止QQ的目的。如果不允许使用HTTP协议来浏览网页,则可以在防火墙中禁止HTTP协议的数据包通过。如果不允许用户浏览某IP地址,则可以在防火墙中设置该IP地址过滤。如果要禁止用户使用网络游戏,则可以通过该抓包工具分析出该游戏使用的固定端口号或IP地址,然后禁用即可。 ARP协议和以太网帧分析 实验目的1. 掌握ARP协议工作原理。2. 掌握以太网帧的格式。3. 学会使用协议分析软件分析协议实验内容1. 分析ARP分组。2. 分析以太网帧。3. 设置协议分析软件过滤器。以太网帧格式 常用的以太网 MAC 帧格式有两种标准 :IEEE 的 802.3 标准DIX Ethernet V
27、2 标准最常用的 MAC 帧是以太网V2格式的帧。目的地址(6)源地址(6)类型(2)数据(46-1500)FCS(4)ARP作用ARP协议(RFC 826)实现了IP地址(逻辑地址)到MAC地址(物理地址)的动态映射,并将所获得的映射存放在ARP高速缓存表中。ARP工作过程捕获并分析以太网帧 清空浏览器缓存在浏览器的地址栏中输入网站地址:/ethereal-labs/HTTP-ethereal-lab-file3.html并按回车,停止分组捕获。找到你的主机向服务器发送的HTTP GET消息的Segment序号,以及服务器发送到你主机上的HTTP 响应消息的序号。抓取结果回答下列问题1. 你
28、的计算机的48位以太网地址(MAC地址)是多少?2. 目标MAC地址是服务器的MAC地址吗?如果不是,该地址是什么设备的MAC地址?3. 给出帧头部类型字段(2字节)的十六进制值。4. 在包含“HTTP GET”的以太网帧中,字符“G”的位置是第几个字节,假设帧头部第一个字节的顺序为1。5. 以太帧的源MAC地址是多少?该地址是你主机的MAC地址吗?是服务器的MAC地址吗?如果不是,该地址是什么设备的MAC地址?6. 以太网帧的目的MAC地址是多少?该地址是你主机的地址吗?7给出帧头部2-字节类型字段的十六进制值。8 在包含“OK”的以太网帧中,从该帧的第一个字节算起,“O”字符是第几个字节?
29、ARP协议分析 ARP命令ARP -a 显示ARP缓存表的所有内容ARP an 以IP地址显示主机名ARP a IP地址 显示计算机IP地址指定的计算机的表目ARP s IP地址 硬件地址 创建一个地址映射表目ARP d IP地址 删除缓存中IP地址所对应一个表目arp -s 12 00-aa-00-62-c6-09 添加静态地址绑定项。arp -a 显示 ARP 表。arp -d 清空ARP缓存表启动WIRESHARK,在过滤栏输入ARP。然后打开命令提示符,输入arp a 显示计算机中ARP缓存表的内容,在执行arp d 清空ARP缓存,接下来运行ping 网关IP地址,可以发现协议分析器
30、已经抓取了很多ARP数据。 ARP实验思考写下你主机ARP缓存中的内容。其中每一列的含义是什么?包含ARP请求报文的以太网帧的源地址和目的地址的十六进制值各是多少?给出帧头部类型字段的十六进制值。从/innotes/std/std37.txt处下载ARP规范说明。在http:/www.erg.abdn.ac.uk/users/gorry/course/inets/arp.html处有一个关于ARP的讨论网页。根据操作回答:1) 形成ARP响应报文的以太网帧中,ARP-payload部分opcode字段的值是多少?2) 在ARP报文中是否包含发送方的IP地址?包含ARP响应报文的以太网帧中,源地
31、址和目的地址的十六进制值各是多少?B主机捕获不到A主机发出的ARP请求分组。因为A主机发出的封装ARP请求分组的帧的源地址是A,目的地址是广播地址,不匹配捕获条件(station1B,station2any)。Address Type捕获条件设为IP,将不能捕获到ARP分组。因为设为IP则是根据IP首部中的地址信息捕获,但是ARP分组直接封装在数据帧中传输,没有IP首部,只能根据帧中的MAC地址(hardware地址)进行捕获。如果Station2的地址设置成为对方主机的地址,将只能捕获到ARP响应分组,但没有ARP请求分组。因为ARP请求分组是广播发送的,即封装该分组的数据帧的目的地址是广播
32、地址,与Station1和Station2的地址均不匹配。如果Station1和Station2的地址均设置成为any,将能捕获到同一以太网上其他实验小组内交互的ARP请求分组,但没有ARP响应分组和IP分组。因为ARP请求分组是封装在广播帧中发送的,而实验室中连接计算机的以太网交换机不阻隔广播帧,所以此时每台计算机都能收到该以太网上的ARP请求分组。但是ARP响应分组和IP分组都是单播发送的,交换机会阻隔单播帧,因而捕获不到目的不是自己的ARP响应分组和IP分组。网络层协议分析 一、实验目的1. 掌握网络层协议。2. 掌握TCP/IP体系结构3. 掌握 ping 和 tracert 命令的使
33、用方法4. 了解 ICMP 协议报文类型及作用。5. 理解IP协议报文类型和格式。6. 掌握IP协议分析的方法7. 加深网络层协议的理解8.学会使用网络分析工具二、实验内容1. 分析IP协议格式。2. 分析ICMP协议格式。3. 分析ARP协议。TCP/IP体系结构IP分组格式IP协议分析1. 打开网络分析工具软件2. 抓取浏览器数据包步骤1:截获 PC1 上 ping PC2 的报文,结果保存为 IP-学号;步骤2:任取一个数据报,分析 IP 协议的报文格式;3. 停止抓包。4. 存储所捕获的数据包。5. 分析数据包。传输层协议分析一、实验目的1. 理解UDP协议的工作原理。2. 掌握UDP
34、的数据包格式。3. 掌握TCP建立连接过程。4. 利用WireShark对TCP协议进行分析。5. 掌握TCP协议的工作原理。6. 理解TCP协议的通信过程。 二、实验内容1. 学习UDP协议的通信过程;2. 学会手工计算UDP校验和;3. 理解TCP首部中各字段的含义及作用;4. 理解三次握手的过程;5. 能够分析TCP协议的建立连接、会话和断开连接的全过程;6. 学会计算TCP校验和的方法;7. 了解TCP的标志字段的作用。TCP/IP体系结构的传输输层有两个主要协议:用户数据报协议 UDP (User Datagram Protocol)传输控制协议 TCP (Transmission
35、Control Protocol)UDP数据报格式UDP分组的伪首部 TCP报文段格式 应用层协议分析 一、实验目的1. 理解HTTP协议格式。2. 理解HTTP请求报文和响应报文的首部含义。3. 理解FTP客户机和服务器交互过程。4. 掌握FTP下载文件方法。5. 学习FTP的常用命令的使用。6. 掌握DNS工作过程。二、实验内容1. 分析HTTP报头结构。2. 分析FTP客户机和服务器交互过程。3. 分析DNS工作过程。4. 分析DNS协议。实验步骤见实验教材100第4章 网络编程实验实验16 基于TCP的套接字编程一、实验目的1. 了解套接字编程的基本步骤。2. 掌握常用的套接字API。
36、3. 掌握编写基于TCP的服务器的基本思路。4. 掌握编写基于TCP的客户端的基本流程。 5. 理解套接字编程的相关概念和数据结构。6. 理解Windows 套接字编程的函数调用。二、实验内容1. 套接字编程。2. Windows套接字编程。3. 编写TCP服务器程序。4. 编写TCP客户端网络中计算机之间进程的通信方式通常可以划分为两大类:客户服务器模式(Client/Server模式)简称C/S 模式对等模式(Peer-to-Peer模式)也即P2P 模式在客户服务器通信方式中,客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户/服务器模式描述的是进程之间服
37、务和被服务的关系。客户是服务的请求方,服务器是服务的提供方。客户服务器通信模式 理解套接字(SOCKET) SOCKET接口是基于TCP/IP体系结构网络中最常用的应用程序接口,编程人员可以通过调用各种API进行网络应用开发,SOCKET也是目前在因特网上进行网络应用开发的使用最广泛的API。 Microsoft公司联合其他计算机软硬件厂商在上个世纪90年代共同开发了一套Windows下的网络编程接口,即Windows Sockets规范。 有三种类型的套接字:流式套接字(SOCK_STREAM)数据报套接字(SOCK_DGRAM)原始套接字(SOCK_RAW)。套接字(SOCKET)库函数和
38、数据结构 初始化函数WSAStartup()初始化Winsock的示例代码:#include / 对于Winsock 2.0,应包括 Winsock2.h文件aa() WORD wVersionRequested; / 应用程序所需的Winsock版本号WSADATA wsaData; / 用来返回Winsock 实现的细节信息。Int err; / 出错代码。wVersionRequested =MAKEWORD(1,1); / 生成版本号1.1。err = WSAStartup(wVersionRequested, &wsaData ); / 调用初始化函数。if (err!=0 ) re
39、turn; / / 通知用户找不到合适的DLL文件。/ 确认返回的版本号是客户要求的1.1if ( LOBYTE(wsaData.wVersion )!=1 | HYBYTE(wsaData.wVersion )!=1) WSACleanup(); return; Winsock的注销 当程序使用完Winsock.DLL提供的服务后,应用程序必须调用WSACleanup()函数,来解除与Winsock.DLL库的绑定,释放Winsock实现分配给应用程序的系统资源,中止对Windows Sockets DLL的使用。 int WSACleanup ( void ); 创建套接字函数SOCKET
40、() SOCKET socket(int af, int type, int protocol); 第一个参数af表示协议簇,AF_INET:IPV4协议AF_INET6:IPV6协议AF_LOCAL:UNIX域协议AF_ROUTE:路由套接字AF_KEY:秘钥套接字第二个参数type表示创建的套接字类型SOCK_STREAM:字节流套接字SOCK_DGRAM:数据报套接字SOCK_RAW:原始套接字第三个参数一般取值为0创建一个流式套接字:SOCKET sockfd=socket( AF_INET, SOCK_STREAM, 0); 创建一个数据报套接字:SOCKET sockfd=sock
41、et( AF_INET, SOCK_DGRAM, 0); 将套接字绑定到指定的网络地址BIND()int bind( SOCKET s, const struct sockaddr * name, int namelen);举例:SOCKET serSock; / 定义了一个SOCKET 类型的变量。sockaddr_in my_addr; / 定义一个sockaddr_in型的结构实例变量。int err; / 出错码。 int slen=sizeof( sockaddr); / sockaddr 结构的长度。serSock = SOCKET(AF_INET, SOCK_DGRAM,0 );
42、 / 创建数据报套接字。memset(my_addr,0); / 将sockaddr_in的结构实例变量清零。my_addr.sin_family = AF_INET; / 指定通信域是Internet。my_addr.sin_port = htons(21); / 指定端口,将端口号转换为网络字节顺序。 /指定IP地址,将IP地址转换为网络字节顺序。my_addr.sin_addr.s_addr = htonl( INADDR-ANY); /将套接字绑定到指定的网络地址,对&my_addr进行了强制类型转换。if(bind(serSock, (LPSOCKADDR )&my_addr, sl
43、en) = SOCKET_ERROR )/调用WSAGetLastError()函数,获取最近一个操作的错误代码。err = WSAGetLastError();/ 以下可以报错,进行错误处理。 启动服务器监听客户端的连接请求LISTEN()int listen( SOCKET s, int backlog);接收连接请求ACCEPT()SOCKET accept( SOCKET s, struct sockaddr* addr, int* addrlen);连接目标服务器CONNECT()int connect( SOCKET s, struct sockaddr * name, int n
44、amelen); structsockaddr_insaddr; /*服务器地址*/memset(void*)&saddr,0,sizeof(saddr); /*清零*/saddr.sin_family=AF_INET; /*协议族*/saddr.sin_port=htons(6666); /*服务器端口6666*/saddr.sin_addr.s_addr=inet_addr();/*假设服务器IP地址为*/connect(ClientSocket,(structsockaddr*)&saddr,sizeof(saddr); /*连接服务器*/向一个已连接的套接口发送数据send()int
45、send( SOCKET s, char * buf, int len, int flags); 从一个已连接套接口接收数据RECV()int recv( SOCKET s, char * buf, int len, int flags);向套接字发送和接收数据 按照指定目的地向数据报套接字发送数据SENDTO()int sendto( SOCKET s, char * buf, int len, int flags, struct sockaddr * to, int tolen);接收一个数据报并保存源地址,从数据报套接字接收数据RECVFORM()int recvfrom( SOCKET
46、 s, char * buf, int len, int flags, struct sockaddr* from, int* fromlen);关闭套接字CLOSESOCKET()int closesocket( SOCKET s);禁止在一个套接口上进行数据的接收与发送SHUTDOWN()int shutdown( SOCKET s, int how); 计算机存放多字节整数的方式 htonl() 将主机的无符号长整型数本机顺序转换为网络字节顺序 (Host to Network Long),用于IP地址。htonl()返回一个网络字节顺序的值。htons() 将主机的无符号短整型数转换成
47、网络字节顺序(Host to Network Short),用于端口号。htons()返回一个网络字节顺序的值。 ntohl()将一个无符号长整型数从网络字节顺序转换为主机字节顺序。(Network to Host Long),用于IP地址。ntohl()返回一个以主机字节顺序表达的数。ntohs() 将一个无符号短整型数从网络字节顺序转换为主机字节顺序。ntohs()返回一个以主机字节顺序表达的数。 基于TCP的网络程序设计 服务器端程序执行流程主要包括:初始化创建套接字(socket()),套接字与端口的绑定(bind()),设置服务器的侦听连接(listen()),接受客户端连接(acc
48、ept()),接收和发送数据(read()、write())并进行数据处理,处理完毕的套接字关闭(close())。客户端程序执行流程 套接字初始化(socket())连接服务器(connect())读写网络数据(read()、write())并进行数据处理最后的套接字关闭(close())过程。实验17 基于UDP的套接字编程一、实验目的1. 掌握套接字编程的基本概念。2. 掌握套接字函数。3. 掌握编写基于UDP的服务器的基本流程。4. 掌握编写基于UDP的客户端的基本流程。 5. 理解如何编写基于UDP的套接字应用的过程。二、实验内容1. 进一步学习套接字编程。2. 基于UDP的套接字编
49、程。3. 编写UDP服务器程序。4. 编写UDP客户程序在UDP中进行数据收发的函数是sendto()和recvfrom()。函数原型如下:int sendto (/发送函数 SOCKET s, /套接字句柄 const char FAR * buf,/数据缓冲区 int len,/数据的长度 int flags, /一般设置为0 const struct sockaddr FAR * to,/目标地址结构信息 int tolen /目标地址结构大小 );一个UDP发送程序步骤1.用WSAStartup函数初始化Socket环境;2.用socket函数创建一个套接字;3.用setsockopt
50、函数设置套接字的属性,例如设置为广播类型;很多时候该步骤可以省略;4.创建一个sockaddr_in,并指定其IP地址和端口号;5.用sendto函数向指定地址发送数据,不需要绑定,即使绑定了,其地址也会被sendto中的参数覆盖;若使用send函数则会出错,因为send是面向连接的,而UDP是非连接的,只能使用sendto发送数据;6.用closesocket函数关闭套接字;7.用WSACleanup函数关闭Socket环境。基于UDP的网络程序流程 UDP服务器程序流程如下:创建一个socket,用函数socket(); 设置socket属性,用函数setsockopt();* 可选 绑定
51、IP地址、端口等信息到socket上,用函数bind(); 循环接收数据,用函数recvfrom(); 关闭网络连接;129网络设计模拟软件PacketTracer的使用130实验目的熟练掌握使用Packet Tracer软件搭建网络逻辑拓扑图。熟练掌握使用Packet Tracer软件搭建网络物理拓扑图。掌握Packet Tracer软件中主机与服务器的基本配置。掌握使用Packet Tracer软件中对数据进行实时抓包和分析131实验设备及软件实验所需设备:微型计算机1台,配置如下:CPU:P4或以上内存:2G或以上硬盘空余容量:2G或以上预装Windows7、8或10,实验所需软件Cis
52、co Packet Tracer 6.2或更高版本熟悉Packet Tracer软件的基本功能熟悉软件界面新建、保存和打开文件在工作区添加文本框添加和修改几何图形使用帮助132133熟悉软件界面134新建、保存和打开文件使用主工具栏,新建一个文件,保存时,命名为lab1.pkt。关闭软件,再次打开软件,使用打开按建,找到lab1.pkt文件,将其打开135在工作区添加文本框使用右侧的常用工具栏,在工作区添加一个文本框,输入字符“文本框示例”。然后将其拖动到工作区右上角。136添加和修改几何图形使用常用工具栏的添加几何图形按扭,在工作区添加一个没有边框,填充颜色为红色的矩形图形。然后使用常用工具
53、样的改变图形大小工具,将矩形放大。使用帮助单击菜单栏的的help菜单的第一选项content,会在浏览器里打开帮助文档(图1-13),其中有很多关于软件使用的说明,其中特别注意的是Modeling这一部分,这一部分给出了OSI七层的模型,以及关于各种协议数据包的处理流程图。137搭建网络逻辑拓扑图添加设备复制设备为设备添加模块、删除模块添加和删除连接显示或隐藏设备名称、设备型号与接口名称138添加设备单击设备选择窗内的1841路由器,1841路由器图标变成禁止符号,指针移动到工作区域时,变成+号,单击工作区域便添加了一台1841路由器。添加设备也可直接在设备选择窗内将设备拖动到工作区域,也可以
54、按住Ctrl键的同时点击设备,可以一次添加多台设备。在工作区增加两台1841路由器,单击设备名称,将设备名称其改为R1和R2。139复制设备按住Ctrl键的同时,拖动设备即可复制设备,如果拖动前已选择多台设备,则拖动时复制多台设备。复制一台R2设备,将其名称改为R3。140为设备添加、删除模块单击设备图标,注意不要单击设备名称,弹出设备配置对话框,此对话框有三个标签,分别为物理、配置和命令行界面(图16-2)。添加模块前,先要关闭电源,单击电源开关,绿色指示灯灭表示电源已关闭。从模块列表中选择相应的模块,拖动到对应的插槽即可为设备添加模块。删除模块时,先将电源关闭,然后将模块拖回到模块列表即可
55、。141为设备添加模块142添加、删除连接添加连接时,点击设备类型窗口中的连线图标,设备选择窗口中的设备便会切换到各种连线(下图)。可以使用自动判断类型让软件自动判断所用的线与接口(无法选择接口,软件自动选择)。点击交叉线,图标变为禁止符号,指针变成连接头符号。143添加、删除连接移动连接头,单击工作区域内的设备图标,弹出该设备的接口列表,选择一个以太网接口并单击,移动连接头,连接头与设备间就有了一根连接线。再单击右边设备,弹出该设备的接口列表,选择一个接口单击即可完成连接。删除连接时,单击常用工具栏上的删除按钮,指针变成X形状,单击要删除的线,即可删除该连接线。144显示或隐藏设备名称、设备
56、型号与接口名称可以设置在工作区域显示连接线两端的接口标签,点击Option菜单的Preferences选项,弹出Preferences对话框,在Interface选项卡下,选中Always show Port Labels前的复选框。此时,就可以在工作区域显示连接线两端的接口标签了。可以在工作区域内显示或隐藏设备名称及设备型号,只需要在Preferences对话框的Interface选项卡下,选中或者取消选中相应的复选框及可。145搭建网络物理拓扑图切换到物理视图新建城市、建筑与设备间将设备移动到指定地点查看物理视图中线缆的属性改变线缆颜色与属性查看设备指示灯146切换到物理视图单击工作区左上
57、角的视图切换按钮,切换到物理视图。147新建城市、建筑与设备间点击New City标签,新建一个城市,拖动新建的城市至原城市右边,双击城市的名称,将名称改为My City。单击新建城市图标,进入城市视图,点击New Building标签,新建两个建筑,一个为Home Building,一个为Office Building,并移动到恰当位置。148新建城市、建筑与设备间分别单击进入两个建筑,在Home Building中建立一个名为C1的布线间,在Office Building中建立一个各为C2的布线间。注意新建物体都在左上角,有时需要移动下方和右方滑块才能看到。点击NAVIGATION标签,可
58、以弹出导航窗口,导航窗口列出了所有的位置,可以点击要去的位置,然后点最下方的Jump to selected location跳转到相应的位置视图。点击一台设备名称,再点击跳转按钮,即跳到设备所在的位置。149将设备移动到指定地点点击物理视图上方的Move Object标签,指针变为十字形状,然后单击设备,弹出地点列表,选择想到移动的目的地并单击,即可将设备移动到指定位置。将R2移动到Home Building的C1设备间。以同样的步骤将R3移动到Office Building的C2设备间。移动完成后,切换到My City视图下,可以看到两栋建筑间由一根黑色的线连接起来了。150查看物理视图中
59、线缆的属性移动鼠标,将指针停留在线缆上方时,将会显示线缆的属性。151改变线缆颜色与属性如果拓扑比较复杂,可以通过改变线缆的颜色在直观上区分不同的线缆:单击线缆,弹出选项,点击Color Cable,弹出拾色器,选择所需要的颜色(蓝色)后点击OK即可。给线缆添加拐点,让其更符合实际情况。添加单击线缆,弹出选项,选择第一项Create BendPoint,线缆中间多出一个黑色的方块。移动方块到达指定位置即可。可以增加多个方块。可以通过这种方法,来查看当双绞线长度超过100米时,两端设备无法通信的现象。152查看设备指示灯进入C1设备间,点击工具栏上的放大按钮,放大设备。此时,可以查看设备背部的各
60、种指示灯的状态。153主机与服务器的基本配置在工作区添加主机与服务器将笔记本电脑的有线网卡更换成无线网卡更改主机或服务器的MAC地址配置主机与服务器的IP地址使用模拟命令行使用模拟软件使用数据包生成器154在工作区添加主机与服务器添加主机与服务器:在设备类型窗口选择终端设备,从设备窗口拖放一台PC机,一台笔记本电脑,一台服务器到工作区域,分别命名为PC1,L1和S1。155将笔记本电脑的有线网卡更换成无线网卡点击笔记本电脑,弹出设备配置对话框,先关闭电源,然后将有线网卡拖回到模块列表中。再将对应的无线网卡拖到空出来的插槽上,然后打开电源。156更改主机或服务器的MAC地址这个一般不是必须步骤,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年大数据中心机房建设工程合同
- 2024年广告媒体采购发布合同
- 2024城市公园环境卫生承包协议
- 2024年工程贷款协议模板助力项目发展
- 2024年危险品运输合同范本
- 2024年应急通信系统设备采购及安装合同
- 2024年工程质量检测居间合同
- 2024年双方共同投资建立教育咨询公司的合同
- 挑食偏食课件教学课件
- 2024婚姻关系解除后债务清偿合同
- 河北省石家庄市长安区2023-2024学年五年级上学期期中英语试卷
- 品牌经理招聘笔试题及解答(某大型国企)2025年
- 多能互补规划
- 珍爱生命主题班会
- 《网络数据安全管理条例》课件
- 消除“艾梅乙”医疗歧视-从我做起
- 第7课《回忆我的母亲》课件-2024-2025学年统编版语文八年级上册
- 八年级历史上册(部编版)第六单元中华民族的抗日战争(大单元教学设计)
- 公司研发项目审核管理制度
- 《诗意的色彩》课件 2024-2025学年人美版(2024)初中美术七年级上册
- 小学生主题班会《追梦奥运+做大家少年》(课件)
评论
0/150
提交评论