《TCP/IP协议与网络编程》实验教学大纲
课程名称:
| TCP/IP协议与网络编程
|
|
|
课程编号:
| 420018
|
|
|
适用专业:
| 网络工程
|
|
|
课程类别:
| 专业必修课
|
|
|
课程学分:
| 2.5
|
|
|
总学时:
| 48
|
|
|
实验学时
| 12
|
|
|
一、实验课程性质、目的与任务
《TCP/IP协议与网络编程》是为网络工程专业开设的一门专业必修课,通过本课程的学习,学生应该能够了解多个物理网络为什么能够互连成一个协调很好的系统,互连网络协议是怎样工作的,应用程序怎么使用互连网络系统。本课程属于实践环节,教学的主要任务是从应用和实践的角度出发,使学生通过上机操作掌握本课程所讲述的TCP/IP协议中的主要协议,并能独立编写简单应用程序,进一步加深学生对网络协议的理解、认识与掌握。
二、实验教学基本要求
学生还可以了解到TCP/IP中常用协议的程序设计思想,特别是WinSock中相关函数的使用技术细节。从而培养学生的internet编程能力。
1、学会使用各类网络协议分析仪,可以进行网络监测与管理、监测网络流量、分析网络性能;
2、学会跟踪并分析TCP/IP协议族的主要协议,建立网络通信模型的系统概念,为日后从事计算机网络的研究打下坚实的基础。
三、实验项目与类型:
序号
| 实验项目
| 学时
| 实验性质
| 备注
|
验证
| 综合
| 设计
| 研究
探索
| 必做
| 选做
|
1
| Wirechark使用
| 2
| √
|
|
|
|
| √
|
2
| 以太帧格式捕获与分析
| 2
| √
|
|
|
| √
|
|
3
| ICMPv4协议分析
| 2
| √
|
|
|
|
| √
|
4
| ARP数据报捕获与分析
| 2
| √
|
|
|
| √
|
|
5
| HTTP协议分析
| 2
|
| √
|
|
| √
|
|
6
| FTP协议分析
| 2
|
| √
|
|
|
| √
|
7
| TCP协议分析
| 2
| √
|
|
|
|
| √
|
8
| PING程序设计
| 2
|
|
| √
|
| √
|
|
9
| UDP通信程序的编制
| 2
|
|
| √
|
| √
|
|
10
| TCP通信程序的编制
| 2
|
|
| √
|
| √
|
|
11
| 网络文件传输程序的编制
| 2
|
|
| √
|
|
| √
|
12
| 聊天室程序的编制
| 2
|
|
| √
|
|
| √
|
四、实验教学内容
实验一:Wireshark使用
1、实验目的
1)学习使用Wireshark协议分析工具进行数据报的抓取、过滤。
2)对报文进行分析
2、方法原理
使用Wireshark协议分析工具进行数据报的抓取、过滤
3、主要实验仪器及材料
计算机,软件平台
4、实验内容
在成功运行Wireshark之后,我们就可以进入下一步,更进一步了解这个强大的工具。 下面是一张地址为192.168.1.2的计算机正在访问“openmaniak.com”网站时的截图。
实验二:以太帧格式捕获与分析
1、实验目的
1) 学会用嗅探器捕获以太帧。
2) 解析以太帧格式。
2、方法原理
通过嗅探器将计算机网卡修改为混杂模式,来捕获所有到达本网卡的数据包(即使不是发送给本计算机的数据一并接收)。
3、主要实验仪器及材料
计算机,软件平台
4、实验内容
实验三:ICMPv4协议分析
1、实验目的
1) 学会用嗅探器捕获IP ICMP数据包。
2) 解析IP ICMP数据包格式。
3) 分析用TRACERT命令分析ICMP差错控制报文
2、方法原理
通过嗅探器将计算机网卡修改为混杂模式,来捕获所有到达本网卡的数据包(即使不是发送给本计算机的数据一并接收)。并分析不同层次的数据构成。
3、主要实验仪器及材料
计算机,软件平台
4、实验内容
1)用上述方法捕获常用的IP数据包和ICMP数据包并分析数据包格式。
2)过滤器选择ICMP协议,点击Start Capture按钮,开始捕获数据包。
3)使用TRACERT命令查看到目的主机路由:
实验四:ARP数据报捕获与分析
1、实验目的
1)掌握ARP协议的作用和工作原理。
2)掌握ARP包的格式。
3)掌握ARP协议在同一网段内和不同网段间的解析过程。
4)理解ARP缓存的作用。
2、方法原理
ARP协议的作用和工作原理是通过查表、广播、响应、数据发送四个步骤实现与网络中其他的只知道IP地址而不知道MAC地址的计算机进行通信。
3、主要实验仪器及材料
计算机,软件平台
4、实验内容
1)在同一网段内的两台机器间执行ping命令,截获报文,分析ARP协议报文结构。
2)分析ARP协议在同一网段内的解析过程。
3)分析ARP协议在不同网段内的解析过程。(思考一下如何来验证在不同网段内ARP协议的解析?)
实验五:HTTP协议分析
1、实验目的
1)分析HTTP报头结构;
2)理解HTTP请求报文和响应报文的首部含义。
2、方法原理
3、主要实验仪器及材料
计算机,软件平台
4、实验内容
(1)在学生机上启动Wireshark软件进行报文截获,然后在IE浏览器上输入www.hebau.edu.cn,分析截获的HTTP报文、TCP报文,分析HTTP协议请求报文格式:分析(1)中选择的HTTP请求报文(即get报文)中各字段的实际值并填写表
实验六:FTP协议分析
1、实验目的
1)分析FTP客户机和服务器交互过程;
2)学习掌握通过FTP方式下载分享网络资源的方法;
3)学习FTP的常用命令的使用。
2、方法原理
通过嗅探器将计算机网卡修改为混杂模式,来捕获所有到达本网卡的数据包(即使不是发送给本计算机的数据一并接收)。并分析FTP数据通信原理。
3、主要实验仪器及材料
计算机,软件平台
4、实验内容
安装FlashFXP,并进行如下图所示的配置,选中菜单“站点”à“站点管理器”à新建站点
(1)确认FTP服务器工作正常,记录FTP服务器的IP地址
(2)在实验主机上启动网络协议分析仪,设置过滤条件并进行数据捕获。
(3)登录FTP服务器
(4)暂停协议分析器的捕获,可以通过捕获的数据报文看到刚才的交互过程中,FTP客户端和服务器端的工作详细情况,FTP报文的格式和命令的使用,以及服务器端的响应代码。
(5)记录这个过程中客户端和服务器端的TCP报头和数据信息,填写表3-1:
(6)根据标志字段分析FTP的两个端口的连接建立、会话和断开连接的全部过程,分析该过程中的源、目的端口号。
实验七:TCP协议分析
1、实验目的
分析TCP协议协议
2、方法原理
1)TCP协议报文结构,
2)连接的建立和释放
重复实验3中连接FTP服务器的操作。找到一组数据,你会发现,它有[SYN], [SYN,ACK],[ACK],这就是TCP地三次握手。源主机先向目的主机发送SYN同步请求,再由目的主机收到后向源主机发送SYN+ACK同步确认请求,源主机收到后向目的主机发送ACK确认请求。连接建立完成。
3、主要实验仪器及材料
计算机,软件平台
4、实验内容
分析TCP协议三次握手协议进行连接的建立和四次释手进行连接的断开
实验八:PING程序设计
1、实验目的
(1)熟悉原始套接字编程。
(2)了解网络的结构。
(3)了解网络传输底层协议。
2、方法原理
ping程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping使用的是ICMP协议,它发送ICMP回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。
ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。因此,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。
当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前16bit就组成了ICMP所要传递的信息。
PING利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0的ICMP发请求,受到请求的主机则用类型码为8的ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。
3、主要实验仪器及材料
计算机,软件平台
4、实验内容
实验步骤和注意事项
1) 熟悉IP以及ICMP协议的工作机制
2) 熟悉RAW模式的SOCKET编程
3)编写PING的实现程序
4)编译环境中需要包括SOCKET库WS2_32.lib
5) 在模拟实现环境下调试并运行自己编写的PING程序
6)最后提交源程序,撰写实验报告
实验九:UDP通信程序的编制
1、实验目的
了解UDP协议基础,学习使用WinSock进行无连接的通信的方法
2、方法原理
UDP协议是英文UserDatagramProtocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。
与我们所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。
UDP协议的主要作用是将网络数据流量压缩成数据报的形式。一个典型的数据报就是一个二进制数据的传输单位。每一个数据报的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。
UDP协议使用端口号为不同的应用保留其各自的数据传输通道。UDP和TCP协议正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。有的网络应用只能使用预先为其预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为UDP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。一般来说,大于49151的端口号都代表动态端口。
数据报的长度是指包括报头和数据部分在内的总的字节数。因为报头的长度是固定的,所以该域主要被用来计算可变长度的数据部分(又称为数据负载)。数据报的最大长度根据操作环境的不同而各异。从理论上说,包含报头在内的数据报的最大长度为65535字节。不过,一些实际应用往往会限制数据报的大小,有时会降低到8192字节。
UDP协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测是否出错。这与TCP协议是不同的,后者要求必须具有校验值。
3、主要实验仪器及材料
计算机,软件平台
4、实验内容
编写UDP通信程序
实验十:TCP通信程序的编制
1、实验目的
了解TCP协议基础,学习使用WinSock进行有连接的通信的方法
2、方法原理
TCP(Transfer Control Protocol)是传输控制协议的简称,是基于连接的协议,在数据传输之前必须先建立连接,通信双方是基于客户/服务器模型,必须分别建立客户应用程序和服务器应用程序。
TCP协议主要为了在主机间实现高可靠性的包交换传输协议。TCP是面向连接的端到端的可靠协议。它支持多种网络应用程序。TCP对下层服务没有多少要求,它假定下层只能提供不可靠的数据报服务,它可以在多种硬件构成的网络上运行。下面的图是TCP在层次式结构中的位置,它的下层是IP协议,TCP可以根据IP协议提供的服务传送大小不定的数据,IP协议负责对数据进行分段,重组,在多种网络中传送。
TCP的上面就是应用程序,下面是IP协议,上层接口包括一系列类似于操作系统中断的调用。对于上层应用程序来说,TCP应该能够异步传送数据。下层接口假定为IP协议接口。为了在并不可靠的网络上实现面向连接的可靠的传送数据,TCP必须解决可靠性,流量控制的问题,必须能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,同时TCP必须解决连接问题,这样TCP才能称得上是面向连接的,最后,TCP也必须能够解决通信安全性的问题。
进程为了传送数据会调用TCP,将数据和相应的参数传送给TCP,于是TCP会将数据传送到目的TCP那里,当然这是通过将TCP包打包在IP包内在网络上传送达到的。接收方TCP在接收到数据后会通信上层应用程序,TCP会保证接收数据顺序的正确性。
在实现TCP的主机上,TCP可以被看成是一个模块,和文件系统区别不大,TCP也可以调用一些操作系统的功能,TCP不直接和网络打交道,控制网络的任务由专门的设备驱动模块完成。TCP只是调用IP接口,IP向TCP提供所有TCP需要的服务。通过下图可以更清楚地看到TCP协议的结构。
3、主要实验仪器及材料
计算机,软件平台
4、实验内容
编写TCP通信程序
实验十一:网络文件传输程序的编制
1、实验目的
了解网络文件传输的方法,学习使用WinSock实现网络文件的传输。
2、方法原理
网络文件传输编程原理
在通信的时候主要可以分为两个部分,一个部分是用于传送控制信息,例如发送文件的请求,文件的名称、大小等,采用MFC所提供的CSocket类的串行化技术来实现;而另一个部分就是文件的传输部分,对于文件的传输,由于数据量相对来说比较大,使用两个线程,一个用于发送,一个用于接收。这两个部分在具体实现的时候分别建立有自己的套接字。
3、主要实验仪器及材料
计算机,软件平台
4、实验内容
编写网络文件传输程序
实验十二:聊天室程序的编制
1、实验目的
了解聊天室程序实现方法,学习使用WinSock实现聊天室程序。
2、方法原理
在Internet上的聊天室程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。
(2)服务器端工作流程:服务器端通过socket()系统调用创建一个Socket数组后(即设定了接受连接客户的最大数目),与指定的本地端口绑定bind(),就可以在端口进行侦听listen()。如果有客户端连接请求,则在数组中选择一个空Socket,将客户端地址赋给这个Socket。然后登录成功的客户就可以在服务器上聊天了。
(3)客户端工作流程
客户端程序相对简单,只需要建立一个Socket与服务器端连接,成功后通过这个Socket来发送和接收数据就可以了。
3、主要实验仪器及材料
计算机,软件平台
4、实验内容
编程实现聊天室服务器端和客户器端的程序。
五、考核方法
1.教师对学生实验过程完成情况进行详细登记,记入实验成绩中。
2.学生完成实验后按要求撰写实验报告,根据实验报告确定每次实验的等级。
3.实验成绩按20%比例计入课程期评总成绩中。
六、实验指导书及主要参考书目
1、实验指导书
[1]自编《TCP/IP协议与网络编程实验指导书》
2、主要参考书
[1]李峰编著.《TCP/IP--协议分析与应用编程》.北京:人民邮电出版社,2008
[2]任泰明编著.《TCP/IP协议与网络编程》.西安:电子科技大学出版社,2004
[3]赖特(Wright),史蒂文斯(Stevens)主编.《TCP/IP详解?卷1原理》.北京:机械工业出版社,2000
[4]赖特(Wright),史蒂文斯(Stevens)主编.《TCP/IP详解?卷2实现》.北京:机械业业出版社,2004
主 撰 人:彭智朝
审 核 人:彭智朝
2012.6