计算机网络实验报告.docx_第1页
计算机网络实验报告.docx_第2页
计算机网络实验报告.docx_第3页
计算机网络实验报告.docx_第4页
计算机网络实验报告.docx_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告课 程 通信网原理 实验名称 专业班级 电子信息0904 姓 名 金博文 学 号 0909092918 实验日期 2011年11月 教师审批签字 二 0一一年 十一月 日一、 实验目的和要求(实验三)(1)、实验目的1、掌握Ethereal的基本使用方法。2、进一步掌握MAC帧头部、IP数据包头部、以及TCP数据包头部各个数据位的意义。3、加深对TCP/UDP协议原理的理解,分析两种协议的区别。(2)、实验要求安装好Ethereal软件,并导入老师所给的数据包进行分析,回答实验步骤中提出的几个问题。(实验四)(1)、实验目的1、掌握WEB服务和FTP服务的基本原理。2、掌握Windows Server下WEB服务器和FTP服务器的配置过程。3、加深对应用层协议的理解。(2)、实验要求 按照实验指导书所给出的实验步骤,配置好WEB服务器和FTP服务器,并能通过静态或动态网页部署和文件上传等功能来成功演示WEB和FTP服务器的配置。(实验五)(1)、实验目的1、掌握Socket通信的基本原理和使用方法。2、能熟练运用一种高级语言编写基于Socket的C/S端通信程序。3、通过此次实验,了解TCP/UDP协议在Socket建立过程中的区别,加深对两个协议的理解。(2)、实验要求选择已有的一种高级语言,用相应的Socket通信原理来实现客户/服务器端的通信程序。此客户/服务器端的通信程序实现可以采用任何一种编程语言和编程工具。建立相应的客户、服务器端程序,在两端之间设定一个通信的端口号,实现两端之间通过此指定端口号进行相关通信。能开启多个客户端,在每一个客户端界面,能和服务器端进行通信。服务器端具有客户端的IP列表,能对所有的客户端进行信息广播,也能对指定的IP客户端进行单播。二、实验关键数据结构及算法定义(实验三 、 实验四)略(实验五)1、 使用WSAStartup函数调用Socket库:int WSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData);2、 应用程序调用socket函数来创建一个能够进行网络通信的套接字:SOCKET socket( int af, int type, int protocol );3、 创建套接字的数据结构:struct protoent *ppe; ppe=getprotobyname(tcp); SOCKET ListenSocket=socket(PF_INET,SOCK_STREAM,ppe-p_proto);4、 closesocket函数用来关闭一个描述符为s套接字:int closesocket( SOCKET s ); 5、 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据:int send( SOCKET s, const char FAR *buf, int len, int flags );6、 不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据:int recv( SOCKET s, char FAR *buf, int len, int flags );7、 一个服务程序必须调用bind函数来给其绑定一个IP地址和一个特定的端口号:int bind( SOCKET s, const struct sockaddr FAR *name, int namelen );8、 服务程序可以调用listen函数使其流套接字s处于监听状态:int listen( SOCKET s, int backlog );9、 服务程序调用accept函数从处于监听状态的流套接字s的客户连接请求队列中取出排在最前的一个客户请求:SOCKET accept( SOCKET s, struct sockaddr FAR *addr, int FAR *addrlen );10、 客户程序调用connect函数来使客户Socket s与监听于name所指定的计算机的特定端口上的服务Socket进行连接:int connect( SOCKET s, const struct sockaddr FAR *name, int namelen );三、 实验操作过程或程序的逻辑框图(实验三)导入老师所提供的捕获包后,在Ethereal的“Filter”域中输入关键字“TCP”,然后点击右边的“Apply”按钮,将捕获到的与传输无关的数据包过滤掉,剩下与本实验相关的部分,如图1所示。图1 Ethereal抓取的TCP协议数据包在过滤后的数据包捕获窗口中,看到的是4和2之间的一系列TCP和HTTP通讯信息,其中有初始化连接的含有“SYN”信息的3次TCP握手,一个HTTP POST信息和一系列的从4发往2的TCP包和HTTP。(实验四)1.安装FTP服务2.在IIS控制面板里添加FTP站点 3.配置FTP站点4. 测试站点是否正常工作3 5.配置web服务器测试web网站是否工作: localhost(实验五)Socket通信逻辑图:1、客户端逻辑框图:2、服务器端逻辑框图:四、程序源代码 (实验3)无代码(实验4)无代码(实验5)客户端#include stdafx.h#include #include int _tmain(int argc, _TCHAR* argv) WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested=MAKEWORD(1,1); err = WSAStartup(wVersionRequested,&wsaData); if(err!=0)return 0; if(LOBYTE(wsaData.wVersion)!=1|HIBYTE(wsaData.wVersion)!=1)WSACleanup(); return 0; /定义socket SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=inet_addr(0); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6000);/建立连接err = connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR);if (err = SOCKET_ERROR) if (WSAGetLastError() = WSAECONNREFUSED) printf(服务器未开启); else int Cuowu=WSAGetLastError(); printf(%dn,Cuowu);return 0;while(1) int ret = 0; char sendBuf100 = 0;memset(sendBuf, 0x00, sizeof(sendBuf);gets(sendBuf);if(sendBuf0 = o & sendBuf1= u & sendBuf2 = t)return 0;send(sockClient,sendBuf,100,0);char recvBuf100;memset(recvBuf, 0x00, sizeof(recvBuf);ret=recv(sockClient,recvBuf,100,0); if (ret = SOCKET_ERROR) printf(失去连接); break; printf(%sn,recvBuf); closesocket(sockClient); WSACleanup();return 0;服务器#include stdafx.h#include /加裁头文件#include /加载标准输入输出头文件#define BUF_SIZE 255#define MAX_THREADS 10 typedef struct MyData SOCKET socklp; SOCKADDR_IN sockaddrlp;int p; MYDATA, *PMYDATA; typedef struct _THREAD_INFO HANDLE handle;BOOL flag; THREAD_INFO; THREAD_INFO hThreadMAX_THREADS; DWORD WINAPI MyThread( LPVOID lpParam ) int ret = 0;char buff100; PMYDATA pData; pData = (PMYDATA)lpParam;while(1) memset(buff, 0x00, sizeof(buff); ret = recv(pData-socklp,buff,100,0); if (ret = SOCKET_ERROR) printf(client: %dn, ret); break; printf(%sn,buff); send(pData-socklp,buff,100,0);hThreadpData-p.flag = FALSE; return 0; int _tmain(int argc, _TCHAR* argv) WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested=MAKEWORD(1,1); err = WSAStartup(wVersionRequested, &wsaData); if(err!=0) return 0; if (LOBYTE(wsaData.wVersion) != 1 | HIBYTE(wsaData.wVersion) != 1) WSACleanup(); return 0; /定义socket SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6000); /建立连接 bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR); listen(sockSrv,5); SOCKADDR_IN addrClient; int len =sizeof(SOCKADDR); PMYDATA pData; DWORD dwThreadIdMAX_THREADS; int i=0; int j=0;for (int idx = 0; idx MAX_THREADS; +idx) hThreadidx.handle = NULL;hThreadidx.flag = TRUE; while(1) SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);i = -1;for (int idx = 0; idx socklp = sockConn;pData- p = i;memcpy(&(pData-sockaddrlp),&addrSrv, sizeof(addrSrv); hThreadi.handle = CreateThread( NULL, / default security attributes 0, / use default stack size MyThread, / thread function pData, / argument to thread function 0, / use default creation flags &dwThreadIdi); / returns the thread identifier if (hThreadi.handle = NULL) CloseHandle(hThreadi.handle); HeapFree(GetProcessHeap(), 0, pData); ExitProcess(i); else hThreadi.flag = TRUE; HANDLE hthreadMAX_THREADS; for(int idx=0;idxMAX_THREADS;+idx) hthreadidx=hThreadidx.handle; WaitForMultipleObjects(MAX_THREADS,hthread , TRUE, INFINITE); for(j=0; jMAX_THREADS; j+) CloseHandle(hThreadj.handle); HeapFree(GetProcessHeap(), 0, pData); return 0;五、实验数据、结果分析(实验3) 查看捕获的数据包,回答以下问题:(1)4通讯使用的TCP端口号是多少?4898(2)2使用哪个端口发送和接收TCP数据包?80点击“Analyze”菜单中的“Enable Protocols”,在弹出的如图2所示的“Enable Protocols”对话框中将“HTTP”的勾去掉。点击“确定”按钮后,将会只看到4和2之间通讯的TCP数据包。图2 屏蔽HTTP信息分析查看这些TCP数据包,回答以下问题:(1) 用于初始化连接的TCP SYN数据包中的sequence号是多少?0;在该数据包中哪部分表明了该数据包是否为一个SYN数据包?tcp协议中的SYN是否设置为1,若设置为1则为SYN包,否不为SYN包。(2) 包含HTTP POST指令的TCP数据包中的sequence号是多少?152933(3) 前6个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论