当前位置:文档之家› TCPIP实验报告

TCPIP实验报告

TCPIP实验报告
TCPIP实验报告

TCP/IP技术实验报告

专业:[通信工程]

学生姓名:[张世超]

完成时间:9:28 AM

实验一网络应用程序基础

实验目得:

通过实验,使学生熟悉并掌握运用TCP/IP技术进行网络编程得基本知识,加深对课堂教学内容得理解,掌握套接字网络通信编程技术,能够运用VC++为开发工具编程解决网络通信中得实际问题,进行一些简单得网络应用程序设计。实验内容:

1,Winsock得启动与终止。

2,Winsock得创建及绑定与关闭。

3,建立通信连接listen及accept与connect。

4,数据得传输。

5,简单得客户机/服务器之间得通信。

要求:通过在SDK模式下完成数据通信得过程,掌握Windows Socket得常用函数得形式与使用方法,理解数据通信得过程。

实验步骤:

1,打开VC环境

1,使用向导为客户端创建工程:选择可执行程序,选择使用wsa环境,单文档环境,其她得选择默认设置

2,在文件中添加代码

3,编译调试

4,使用向导为服务器端创建工程:选择可执行程序,选择使用wsa环境,单文档环境,其她得选择默认设置

5,在文件中添加代码

6,编译调试

7,分别打开两个系统命令窗口中,并分别在其中运行客户端与服务器端程序。

8,在客户端侧输入字符,可以瞧到服务器收到字符串

参考代码:课本156页--160页

实验结果:

Client:

#include<Winsock2、h>

#include<stdio、h>

//服务器端口号为5050

#define DEFAULT_PORT 5050

#define DATA_BUFFER 1024

void main(int argc,char *argv[])

{

?WSADATA wsaData;

SOCKET sClient;

?int iPort=DEFAULT_PORT;

//从服务器端接收得数据长度

int iLen;

?//接收数据得缓冲

char buf[DATA_BUFFER];

?//服务器端地址

?struct sockaddr_in ser;

?//判断输入得参数就是否正确

if(argc<2)

{

//提示在命令行中输入服务器IP地址

??printf("Usage:client [server IP address]\n");

return;

}

?//接收数据得缓冲区初始化

?memset(buf,0,sizeof(buf));

?if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)

?{

printf("Failed to load Winsock、\n");

??return;

?}

?//填写要连接得服务器地址信息

?ser、sin_family=AF_INET;

ser、sin_port=htons(iPort);

//inet_addr()函数将命令行得点分IP地址转换为用二进制表示得网络字节顺序得IP地址

?ser、sin_addr、s_addr=inet_addr(argv[1]);

?//建立客户端流式套接口

?sClient=socket(AF_INET,SOCK_STREAM,0);

if(sClient==INVALID_SOCKET)

?{

??printf("socket()Failed:%d\n",WSAGetLastError());

?return;

?}

//请求与服务器端建立TCP连接

?if(connect(sClient,(struct sockaddr*)&ser,sizeof(ser))==INVALID_SOCKET)

{

printf("connect() Failed:%d\n",WSAGetLastError()); ??return;

else

?//从服务器端接收数据

?iLen=recv(sClient,buf,sizeof(buf),0);

??if(iLen==0)

?return;

else if(iLen==SOCKET_ERROR)

?{

??printf("recv() Failed:%d",WSAGetLastError());?return;

?}

?printf("recv() datafrom server:%s\n",buf);

}

closesocket(sClient);

?WSACleanup();

Server:

#include<Winsock2、h>

#include

#include<stdlib、h>

#pragma ment(lib,"ws2_32、lib")

//服务器使用得端口号为5050

#define DEFAULT_PORT 5050

void main()

?int iPort=DEFAULT_PORT;

WSADATA wsaData;

?SOCKET sListen,

??sAccept;

?//客户端地址长度

int iLen;

//发送得数据长度

?int iSend;

//要发送给客户端得信息

?char buf[]="I am a server、";

//服务器与客户端得IP地址

struct sockaddr_in ser,

??cli;

printf("---------------------------\n");

?printf("Serverwaiting\n");

?printf("---------------------------\n");

?if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)

printf("Failed to load Winsock、\n");

?return;

?}

?//创建服务器端套接口

?sListen=socket(AF_INET,SOCK_STREAM,0);

if(sListen==INVALID_SOCKET)

?{

??printf("socket() Failed:%d\n",WSAGetLastError());

?return;

?}

//以下建立服务器端地址

?ser、sin_family=AF_INET;

//htons()函数把一个双字节得主机直接顺序得数据转换为网络直接顺序得数

?ser、sin_port=htons(iPort);

?//htonl()函数把一个四字节得主机直接顺序得数据转换为网络直接顺序得数

?//使用系统制定得IP地址INADDR_ANY

ser、sin_addr、s_addr=htonl(INADDR_ANY);

if(bind(sListen,(LPSOCKADDR)&ser,sizeof(ser))==SOCKET_ER ROR)

{

?printf("bind() Failed: %d\n",WSAGetLastError());

?return;

?}

?//进入监听状态

?if(listen(sListen,5)==SOCKET_ERROR)

?{

?printf("listen() Failed:%d\n",WSAGetLastError());

??return;

}

?//初始化客户端地址长度参数

iLen=sizeof(cli);

?//进入一个无限循环,等待客户得连接请求

while(1)

??sAccept=accept(sListen,(struct sockaddr*)&cli,&iLen);

?if(sAccept==INVALID_SOCKET)

{

??printf("accept() Failed: %d\n",WSAGetLastError());

?break;

??}

?//输出客户IP地址与端口号

?printf("Acceptedclient IP:[%s],port:[%d]\n",ine t_ntoa(cli、sin_addr),ntohs(cli、sin_port));

?//给建立连接得客户发送信息

??iSend=send(sAccept,buf,sizeof(buf),0);

if(iSend==SOCKET_ERROR)

?{

??printf("send() Failed:%d\n",WSAGetLastError());

?break;

?}

??else if(iSend==0)

?break;

??else

?{

printf("send() byte:%d\n",iSend);

printf("---------------------------\n");

?}

?closesocket(sAccept);

?}

closesocket(sListen);

?WSACleanup();

}

实验截图:

实验二基于TCP协议得客户/服务器通信程序

实验目得:

通过实验,使学生熟悉并掌握运用TCP/IP技术进行网络编程得基本知识,加深对课堂教学内容得理解,掌握套接字网络通信编程技术,能够运用VC++为开发工具编程解决网络通信中得实际问题,进行一些简单得网络应用程序设计。

实验内容:

1,主机间TCP得性能测试之一:回程时延。

2,服务器端能从客户端接收数据并立即将接收到得数据原样返回给客户方。

3,客户端能往服务器端发送数据,然后立即接受从服务器端原样返回得数据。

理解TCP通信程序设计过程,并结合特定应用场景(如创建留言板程序、创建多客户端服务器/客户通信程序等)完成程序开发。掌握TCP服务器程序与客户程序得创建过程,熟悉单播通信程序中用到得Winsock接口,培养学生将所学知识进行灵活运用得能力。

实验步骤:

1,打开VC环境

2,使用向导为客户端创建工程:选择可执行程序,选择使用wsa环境,单文档环境,其她得选择默认设置

3,在文件中添加代码

4,编译调试

5,使用向导为服务器端创建工程:选择可执行程序,选择使用wsa环境,单文档环境,其她得选择默认设置

6,在文件中添加代码

7,编译调试

8,分别打开两个系统命令窗口中,并分别在其中运行客户端与服务器端程序。

9,在客户端着输入字符,可以瞧到服务器收到字符串

注:可以再实验一得代码上修改,自己增加额外得功能,比如取系统时间,计算往返时间等

作完之后,修改通信代码使用UDP来实现网络通信

实验结果:

Client:

#include

#include

#include

#define DEFAULT_PORT 5050

#define DATA_BUFFER 1024

#pragma ment(lib,"WS2_32、lib")

void main(int argc,char* argv[])

{

WSADATA wsaData;

SOCKET sClient;

?int iPort=5050;

int iLen;

intisend,iRecv;

char send_buf[]="Hello! I ama client";

char recv_buf[DATA_BUFFER];

?structsockaddr_inser;

if(argc<2)

?{

printf("输入服务器得IP地址:\n");

return;

?}

else

memset(recv_buf,0,sizeof(recv_buf));

?if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)

?{

? printf("Winsock环境初始化失败:\n");

? return;

?}

sClient=socket(AF_INET,SOCK_DGRAM,0);

if(sClient==INVALID_SOCKET)

?{

printf("socket()函数调用失败:%d\n",WSAGetLastError());

?? return;

}

ser、sin_family=AF_INET;

ser、sin_port=htons(iPort);

ser、sin_addr、s_addr=inet_addr(argv[1]);

iLen=sizeof(ser);

isend=sendto(sClient,send_buf,sizeof(send_buf),0,(struct sockaddr*)&ser,iLen);

?if(isend==SOCKET_ERROR)

?{

? printf("sendto()函数调用失败:%d\n",WSAGetLastError());

? return;

?}

else if(isend==0)

return;

?else

?printf("sendto()调用成功:\n");

iRecv=recvfrom(sClient,recv_buf,sizeof(recv_buf),0,(struct sockaddr*)&ser,&iLen);

if(iRecv==SOCKET_ERROR)

? printf("recvfrom()函数调用失败:%d\n",WSAGetLastError());

? return;

?}

?else if(iRecv==0)

return;

else

{

??printf("sendto():%s\n",recv_buf);

printf("-------------------------------\n");

}

closesocket(sClient);

WSACleanup();

}

Server:

#include

#include

#include

#defineDEFAULT_PORT 5050

#define BUFFER_LENGTH 1024

#pragmament(lib,"WS2_32、lib")

void main()

{

int iPort=DEFAULT_PORT;

WSADATA wsaData;

SOCKET sSocket;

?int iLen,iRecv,iSend;

?struct sockaddr_in ser,cli;

?char send_buf[]="Hollo!I am aserver";

?char recv_buf[BUFFER_LENGTH];

printf("--------------------");

printf("Serverwaiting");

printf("--------------------");

if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)

?{

?printf("环境初始化错误:\n");

??return;

sSocket=socket(AF_INET,SOCK_DGRAM,0);

if(sSocket==INVALID_SOCKET)

?{

?printf("socket()函数调用失败:\n",WSAGetLastError ());

?return;

}

ser、sin_family=AF_INET;

?ser、sin_port=htons(iPort);

ser、sin_addr、s_addr=htonl(INADDR_ANY);

if(bind(sSocket,(LPSOCKADDR)&ser,sizeof(ser))==SOCKET_E RROR)

?{

printf("bind()函数调用失败:\n",WSAGetLastError()); ??return;

iLen=sizeof(cli);

memset(recv_buf,0,sizeof(recv_buf));

?while(1)

?{

iRecv=recvfrom(sSocket,recv_buf,BUFFER_LENGTH,0,(SOCKADDR*)&cli,&iLen);

if(iRecv==SOCKET_ERROR)

? {

printf("recvfrom()函数调用失败:\n",WSAGetLastError());

??break;

? }

? else if(iRecv==0)

?break;

else

{

printf("recvfrom():%d\n",recv_buf);

printf("客户端得IP地址、端口号:%d\n",inet_ntoa(cli、sin_addr),ntohs(cli、sin_port));

? }

? iSend=sendto(sSocket,send_buf,sizeof(send_buf),0,(SOCK ADDR*)&cli,sizeof(cli));

if(iSend==SOCKET_ERROR)

printf("sendto()函数调用失败:\n",WSAGetLastError());?break;

}

else if(iSend==0)

?break;

else

? printf("sendto():调用成功!\n");

? }

?}

closesocket(sSocket);

?WSACleanup();

}

实验截图:

实验三简易聊天系统得实现实验目得:

通过实验,使学生熟悉并掌握运用TCP/IP技术进行网络编程得基本知识,加深对课堂教学内容得理解,掌握套接字网络通信编程技术,能够运用VC++为开

发工具编程解决网络通信中得实际问题,进行一些简单得网络应用程序设计。

实验内容:

设计实现包括客户端与服务器端得简单聊天系统。

通过编写简单得聊天程序,理解MFC得Socket类同Socket API之间得区别以及MFC得两种类之间得联系与区别。

实验步骤:

1,打开VC环境

2,使用向导为客户端创建工程:选择FMC可执行程序,选择使用wsa环境,选择单文档环境,其她得选择默认设置

3,为对话窗添加控件:右击工具栏选择控件,拖拽某个控件到对话框

4,为控件添加变量:使用类向导,选择要操作得对话窗类,选择变量Tab,点击添加变量按钮,为变量命名并选择变量类型。

5,为控件添加代码:右击控件添加事件,如点击,双击,右击。为事件添加代码,根据教科书添加代码

6,添加新得对话窗:单机rousource Tab, 在对话窗出右击,选择添加对话窗,

7,为对话窗添加类:右键点击新对话窗,选择添加类,出现向导,为类命名并选择父类

8,为心对话窗添加控件与变量

9,为新对话窗添加代码

10,编译调试

参考代码:课本224页--229页

实验结果:

CsockClient:

#include "stdafx、h"

#include "CSockClient、h"

#include "CSockClientDlg、h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_ char THIS_FILE[] =__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//CCSockClientApp

BEGIN_MESSAGE_MAP(CCSockClientApp, CWinApp)

//{{AFX_MSG_MAP(CCSockClientApp)

// NOTE - the ClassWizard will addand remove mapping

macros here、

?// DO NOT EDIT what you see in these blocks of generated code!

//}}AFX_MSG

ON_MAND(ID_HELP, CWinApp::OnHelp)

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

// CCSockClientApp construction

CCSockClientApp::CCSockClientApp()

// TODO: add construction code here,

?// Place all significant initializationin InitInstance }

/////////////////////////////////////////////////////////////////////////////

// The one andonly CCSockClientApp object

CCSockClientApp theApp;

/////////////////////////////////////////////////////////////////////////////

// CCSockClientApp initialization

BOOLCCSockClientApp::InitInstance()

{

?if (!AfxSocketInit())

?{

AfxMessageBox(IDP_SOCKETS_INIT_FAILED);

??return FALSE;

}

?AfxEnableControlContainer();

// Standard initialization

//If you are not using these features and wish to red uce the size

?// of your final executable, you should remove from the following

// the specific initialization routines you do not ne ed、

#ifdef _AFXDLL

Enable3dControls(); ??// Call this when using MFC in a shared DLL

#else

Enable3dControlsStatic();?// Call this when linking

to MFC statically

#endif

CCSockClientDlg dlg;

?m_pMainWnd = &dlg;

intnResponse = dlg、DoModal();

?if (nResponse == IDOK)

?{

// TODO: Place code here to handle when the dialog is ??//dismissed with OK

?}

else if (nResponse == IDCANCEL)

?{

?// TODO: Place codehere to handle when the dialog is ?//dismissed with Cancel

// Since the dialog hasbeenclosed, return FALSE so that we exit the

?// application, rather than start theapplication'smessagepump、

return FALSE;

}

CsockServer:

#include"stdafx、h"

#include"CsockServer、h"

#include "CsockServerDlg、h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_ charTHIS_FILE[] = __FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

// CCsockServerApp

BEGIN_MESSAGE_MAP(CCsockServerApp, CWinApp)

//{{AFX_MSG_MAP(CCsockServerApp)

?// NOTE - the ClassWizard will add and remove mapping macros here、

?// DO NOT EDIT what you see in these blocks of generated code!

//}}AFX_MSG

?ON_MAND(ID_HELP, CWinApp::OnHelp)

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

// CCsockServerApp construction

CCsockServerApp::CCsockServerApp()

{

// TODO: add construction code here,

// Place all significant initialization in InitInstance

}

/////////////////////////////////////////////////////////////////////////////

// The oneandonly CCsockServerApp object

CCsockServerApp theApp;

/////////////////////////////////////////////////////////////////////////////

// CCsockServerApp initialization

BOOLCCsockServerApp::InitInstance()

if (!AfxSocketInit())

{

?AfxMessageBox(IDP_SOCKETS_INIT_FAILED);

?return FALSE;

?}

AfxEnableControlContainer();

// Standard initialization

?// If you are notusing these features and wish toreduc e the size

?// of your final executable, you should remove from the following

// thespecificinitialization routinesyou donot need、

#ifdef _AFXDLL

?Enable3dControls();?// Call this when using MFC in a s haredDLL

#else

Enable3dControlsStatic(); // Call this when linking to MFC statically

#endif

?CCsockServerDlg dlg;

m_pMainWnd = &dlg;

int nResponse=dlg、DoModal();

if (nResponse== IDOK)

?{

??// TODO: Place code here to handle when the dialog is ?// dismissedwithOK

}

?else if (nResponse == IDCANCEL)

{

??//TODO: Place code here to handlewhen the dialog is // dismissed with Cancel

?// Since the dialog has been closed, return FALSEso that we exitthe

?// application, rather than startthe application's mes sage pump、

?return FALSE;

}

实验截图:

实验四WinInet实现FTP客户端

实验目得:

通过实验,使学生熟悉并掌握运用TCP/IP技术进行网络编程得基本知识,加深对课堂教学内容得理解,掌握套接字网络通信编程技术,能够运用VC++为

开发工具编程解决网络通信中得实际问题,进行一些简单得网络应用程序设计。实验内容:

1,写出完整得软件需求说明书。

2,开发FTP得客户端。

3,完成在局域网内得测试,并记录测试结果。

本实验涵盖了C/S体系结构与Socket编程。通过本实验深入地了解FTP 得工作原理以及服务器端与客户端得工作流程,学习Socket在网络编程中得各种应用,掌握WinInet得套接字编程。

实验步骤:

1,打开VC环境

2,使用向导为客户端创建工程:选择MFC可执行程序,单文档环境,其她得选择默认设置

3,为对话窗添加控件:右击工具栏选择控件,拖拽某个控件到对话框

4,为控件添加变量:使用类向导,选择要操作得对话窗类,选择变量Tab,点击添加变量按钮,为变量命名并选择变量类型。

5,为控件添加代码:右击控件添加事件,如点击,双击,右击。为事件添加代码,根据教科书添加代码

6,编译调试

实验结果:

Scan:

#include "stdafx、h"

#include "scan、h"

#include "scanDlg、h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_ char THIS_FILE[] = __FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

// CScanApp

BEGIN_MESSAGE_MAP(CScanApp, CWinApp)

?//{{AFX_MSG_MAP(CScanApp)

// NOTE - theClassWizard will add and remove mapping macros here、

?// DONOT EDIT what you seein these blocks of gene ratedcode!

?//}}AFX_MSG

?ON_MAND(ID_HELP, CWinApp::OnHelp)

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

// CScanApp construction

CScanApp::CScanApp()

{

?// TODO: add construction code here,

?// Place all significant initialization in InitInstance }

/////////////////////////////////////////////////////////////////////////////

// Theone and only CScanApp object

CScanApp theApp;

/////////////////////////////////////////////////////////////////////////////

//CScanAppinitialization

BOOL CScanApp::InitInstance()

{

?// Standard initialization

?//If you are not using thesefeatures andwish to re duce the size

?// of your final executable,youshould remove fromthe following

?// the specific initialization routines you do not need、

#ifdef _AFXDLL

Enable3dControls(); ??// Call this when usingMFCin ashared DLL

#else

Enable3dControlsStatic();?// Call thiswhen linking to MFC statically

#endif

CScanDlgdlg;

m_pMainWnd = &dlg;

?int nResponse=dlg、DoModal();

?if(nResponse == IDOK)

{

// TODO: Place code here to handle when the dialog is

// dismissed with OK

}

?else if (nResponse ==IDCANCEL)

{

// TODO:Place code here to handle when the dialog is

// dismissed with Cancel

}

?// Since the dialog has been closed, return FALSE so that we exit the

// application,rather than start the application's message pump、

?return FALSE;

实验截图:

TCPIP实验指导书

TCP/IP协议分析与编程实践实验提要 本学期实验课程为24学时,必做实验6个,具体内容如下介绍。除实验5要求采用winpcap,其他实验不限定实现的编程语言和平台。 实验1-1 系统时间同步程序 要求:(1)TCP (2)C/S 摘要:设计简单的客户/服务器程序实现客户系统时间和服务器系统时间同步。 具体: 客户:(1)客户创建流套接字,向服务器发起TCP连接。 (2)连接创建成功后,接收服务器返回的时间,更新客户系统时间。 (3)断开与服务器的连接。 服务器:(1)服务器创建监听套接字,监听客户TCP连接请求。 (2)当收到一个客户TCP连接请求,创建连接套接字同意与其创建连接。 (3)获取系统时间,通过连接套接字返回给客户。 实验1-2 系统时间同步程序 要求:(1)UDP (2)C/S 摘要:设计简单的客户/服务器程序实现客户系统时间和服务器系统时间同步。 具体: 客户:(1)客户创建数据报套接字,通过该套接字向服务器发出”time”命令获取服务器系统时间。 (2)接收服务器返回的时间,更新客户系统时间。 (3)断开与服务器的连接。 服务器:(1)服务器创建数据报套接字,等待接收客户数据。 (2)接收客户发来的“time”命令,获取系统时间,通过套接字返回给客户。实验2 聊天程序设计 要求:(1)TCP/UDP (2)C/S 摘要:设计简单的客户/服务器程序实现客户和服务器相互收发数据直到一端输入“end”结束。 具体: 客户:(1)客户创建流套接字,向服务器发起TCP连接。(或是客户创建数据报套接字)

(2)连接创建成功后,通过套接字向服务器持续发送或是接收数据。 (3)输入或是收到命令”end”,结束收发数据,并断开与服务器的连接。 服务器:(1)服务器创建监听套接字,监听客户TCP连接请求。(或是创建数据报套接字)(2)当收到一个客户TCP连接请求,创建连接套接字同意与其创建连接。 (3)通过套接字与客户持续发送或是接收数据。 (4)输入或是收到”end“命令,结束与该客户的收发数据,断开连接。 实验3 TCP和UDP套接字综合应用 要求:(1)TCP、UDP (2)C/S (3)多线程编程 摘要:设计简单的客户/服务器,服务器实现并发同时响应客户的UDP通信要求,也能响应客户端发过来的TCP通信要求。 TCP客户: (1)客户创建流套接字,向服务器发起TCP连接。 (2)连接创建成功后,通过套接字向服务器持续发送或是接收数据。 (3)输入或是收到命令”end”,结束收发数据,并断开与服务器的连接。 UDP客户: (1)客户创建数据报套接字,通过该套接字向服务器发出”time”命令获取服务器系统时间。 (2)接收服务器返回的时间,更新客户系统时间。 (3)断开与服务器的连接。 服务器: 针对TCP客户,提供的服务如下: (1)服务器创建监听套接字,监听客户TCP连接请求。 (2)当收到一个客户TCP连接请求,创建连接套接字同意与其创建连接。 (3)通过套接字与客户持续发送或是接收数据。 (4)输入或是收到”end“命令,结束与该客户的收发数据,断开连接。 针对UDP客户,提供的服务如下: (1)服务器创建数据报套接字,等待接收客户数据。 (2)接收客户发来的“time”命令,获取系统时间,通过套接字返回给客户。 实验4 Web服务器 要求:(1)TCP (2)C/S (3)http 摘要:设计一个简单的web服务器,它仅能处理一个请求。 具体: Web服务器:

最新西华大学机器人创新设计实验报告(工业机械手模拟仿真)

实验报告 (理工类) 课程名称: 机器人创新实验 课程代码: 6003199 学院(直属系): 机械学院机械设计制造系 年级/专业/班: 2010级机制3班 学生姓名: 学号: 实验总成绩: 任课教师: 李炜 开课学院: 机械工程与自动化学院 实验中心名称: 机械工程基础实验中心

一、设计题目 工业机器人设计及仿真分析 二、成员分工:(5分) 三、设计方案:(整个系统工作原理和设计)(20分) 1、功能分析 工业机器人由操作机(机械本体)、控制器、伺服驱动系统和检测传感装置构成,是一种仿人操作、自动控制、可重复编程、能在三维空间完成各种作业的机电一体化自动化生产设备。特别适合于多品种、变批量的柔性生产。它对稳定、提高产品质量,提高生产效率,改善劳动条件和产品的快速更新换代起着十分重要的作用。机器人技术是综合了计算机、控制论、机构学、信息和传感技术、人工智能、仿生学等多学科而形成的高新技术,是当代研究十分活跃,应用日益广泛的领域。机器人应用情况,是一个国家工业自动化水平的重要标志。机器人并不是在简单意义上代替人工的劳动,而是综合了人的特长和机器特长的一种拟人的电子机械装置,既有人对环境状态的快速反应和分析判断能力,又有机器可长时间持续工作、精确度高、抗恶劣环境的能力,从某种意义上说它也是机器的进化过程产物,它是工业以及非产业界的重要生产和服务性设备,也是先进制造技术领域不可缺少的自动化设备。 本次我们小组所设计的工业机器人主要用来完成以下任务: (1)、完成工业生产上主要焊接任务; (2)、能够在上产中完成油漆、染料等喷涂工作; (3)、完成加工工件的夹持、送料与转位任务; (5)、对复杂的曲线曲面类零件加工;(机械手式数控加工机床,如英国DELCAM公司所提供的风力发电机叶片加工方案,起辅助软体为powermill,本身为DELCAM公司出品)

TCPIP第二次作业

一、选择题:(写出答体要点!) 1.一个设备的IP地址是190.1. 2.3,它的子网号是什么? a) 1 b) 2 c) 3 d)回答这个问题的信息还不够 2.掩码255.255.255.248可以使每个子网最多容纳多少个主机地址? a) 3 b) 6 c)8 d)248 3.一个超网掩码是255.255.25 4.0,有多少C类网络可以合并成为这个超网? a) 1 b) 2 c) 3 d) 4 4.由16个C类地址组成的超网的超网掩码是什么? a)255.255.240.16 b)255.255.16.0 c)255.255.248.0 d)255.255.240.0 二、一个组织有6个C类地址块,以X.Y.80.0开始,请设计至少2种超网方案 三、一个C类网络划分了4个定长子网,其中一个子网上的一个主机的IP地址是198.123.46.237。 试问子网掩码是什么?并写出每个子网的子网地址和子网广播地址。 四、根据下图所示网络拓扑进行IP地址规划。

A C B D E0 E0 E0 E0 E1 S0 S0 S1 S2 S0 S0 E1 (1)IP地址总空间是10.1.0.0/16,请按照图中所示网络大小为每个IP网络分配适当的IP地址空间,写出每个IP网络的网络地址、掩码和直接广播地址,并写出路由器每个网络接口的IP地址。 (2)如果IP地址总空间是10.1.1.0/24,还能否根据图中所示网络大小为每个IP网络分配适当的IP地址空间?如果可以,应如何编址? (3)请根据第1小题的IP地址分配方案,按表1的格式分别写出路由器B和C的路由选择表。如果该网络的IP地址分配方案采用聚合设计,路由器B和C的路由选择表最少分别会有几个条目? 表1

tcpip实验报告

网络协议分析实验 一、实验目的 通过使用协议分析软件,对通信系统的通信过程进行监控、分析,以了解通信协议的工作过程。 二、实验内容 利用协议分析软件(如:Wireshark)跟踪局域网报文(如条件允许也可跟踪多种局域网协议报文),实验内容如下: 将安装协议分析软件的PC接入以太网中,跟踪PC之间的报文,并存入文件以备重新查。 设置过滤器过滤网络报文以检测特定数据流。 利用协议分析软件的统计工具显示网络报文的各种统计信息。 三、实验步骤 1、在PC中安装协议分析软件(如:Wireshark)。具体安装过程详见附录:Wireshark用户指南。 2、启动Wireshark协议分析软件,选择抓包菜单项启动实时监视器,开始实时跟踪显示网络数据报文。可根据系统提示修改显示方式,详见附录:Wireshark用户指南。 3、调出跟踪存储的历史报文,选择有代表性的ETHERNET,IEEE802.3,IP,ICMP,TCP,UDP报文,对照有关协议逐个分析报文各字段的含义及内容。 EHERNET报文格式 IEEE802.3报文格式 IP报文格式

4、设置过滤器属性,如目的地址,源地址,协议类型等。如过滤不需要的网络报文,过滤器允许设置第二层,第三层或第四层的协议字段。 过滤器有两种工作方式: 1)捕获前过滤:协议分析软件用过滤器匹配网络上的数据报文,仅当匹配通过时才捕获报文。 2)捕获后过滤:协议分析软件捕获所有报文,但仅显示匹配符合过滤条件的报文。选择统计菜单项可以显示网络中各种流量的统计信息,如:关于字节数,广播中报文数,出错数等。

UDP 客户/服务器实验 一、实验目的 本实验目的是使用因特网提供的UDP 传输协议,实现一个简单的UDP 客户/服务器程序,以了解传输层所提供的UDP 服务的特点,应用层和传输层之间的软件接口风格,熟悉socket 机制和UDP 客户端/服务器方式程序的结构。 二、实验内容 本实验为UDP 客户/服务器实验。实验内容:UDP echo 客户/服务器程序的设计与实现。UDP echo 客户/服务器程序完成以下功能: 客户从标准输入读一行文本,写到服务器上;服务器从网络输入读取此行,并回射(echo )给客户;客户读此回射行,并将其写到标准输出。 三、实验步骤 1、 总体设计 客户程序从标准输入读一行文本,写到服务器程序上;服务器程序从网络输入读取此行,并回射给客户程序;客户程序读此回射行,并将其写到标准输出。 2、 详细设计 U D P 客户-服务器程序所用套接口函数 1)服务器main 函数 2)服务器str_echo 函数

实验一TCPIP配置与测试

实验一TCP/IP配置与测试 一、实验目的及任务 1、熟悉并掌握TCP/IP的基本配置。 2、掌握TCP/IP的基本测试方法。 二、实验环境 与因特网连接的计算机局域网; 主机操作系统为windows 2000; 三、预备知识 从某种程度上说,Internet/Intranet与传统网络的主要区别在于它采用了TCP/IP协议,TCP/IP通信协议是目前最完整的、被普遍接受的通信协议标准。它可以使不同的硬件结构、不同软件操作系统的计算机之间相互通信。TCP/IP 是一个广泛发布的公开标准,完全独立于任何硬件或软件厂商,可以运行在不同体系的计算机上。它采用通用寻址方案,一个系统可以寻址到任何其他系统,即使在Internet这样庞大的全球网络内,寻址也是游刃有余。 主流的操作系统都支持TCP/IP协议。微软公司的操作系统平台对TCP/IP提供了强有力的支持,其安装和配置管理都是基于图形化窗口的,只要对TCP/IP 基本知识有所了解,即使是初学者按照提示也能够很轻易地进行基本的安装配置。 TCP/IP配置完毕后,即可利用测试工具进行测试。Windows提供了许多测试工具软件,常用的有: .Ping ,检测网络是否连通。 .Ipconfig ,显示目前TCP/IP的配置。 .Netstat ,显示目前TCP/IP网络连接与每一种协议的统计数据。 .Route ,显示路由配置信息。 .Tracert ,根踪由本机将数据包传送到目的主机所经的路由器及时间。 四、实验步骤 1、在Windows2000 Server中配置TCP/IP。

(1)选择[开始]>[设置]>[控制面板]>[网络和拨号连接],打开网络和拨号连接对话框。 (2)选择[本地连接],单击鼠标右键,从弹出的快捷菜单中选择[属性]、从组件列表中选择[1nternet协议(TCP/IP)] ,单击[属性]按钮打开如图 1.1所示的对话框。 图1.1 [Internet协议(TCP/IP)属性]对话框 (3)选择1P地址分配方式,这里有两种情况: ●如果要通过动态分配的方式获取IP地址,请选择[自动获得IP地址选 项] 。这样计算机启动时自动向DHCP服务器申请IP地址,除了获取 IP地址外,还能获得子网掩码、默认网关、DNS服务器等信息,自动 完成TCP/IP协议配置。对于服务器一般不让DHCP服务器指派地址, 而应设置固定的IP地址。 ●如果要分配一个静态地址,请选择[使用下面的IP地址]选项,接着在 下面的区域输入指定的IP地址、子网掩码以及默认的网关地址,必须 为不同的计算机设置不同的IP地址,同一网段内的子网掩码必须相同。(4)选择DNS服务器地址分配方式,一般要使用DNS域名服务,如果要通过动态分配的方式获取IP地址,请选择[自动获得DNS服务器地址]选 项:如果要分配一个静态地址,请选择[使用下面的DNS服务器地址] 选项,接着在下面的区域输入指定的首选DNS服务器地址和备用DNS

机器人实验报告

一、机器人的定义 美国机器人协会(RIA)的定义: 机器人是一种用于移动各种材料、零件、工具或专用的装置,通过可编程序动作来执行种种任务的、并具有编程能力的多功能机械手。 日本工业机器人协会(JIRA—Japanese Industrial Robot Association):一种带有存储器件和末端执行器的通用机械,它能够通过自动化的动作替代人类劳动。(An all—purpose machine equipped with a memory device and an end—effector,and capable of rotation and of replacing human labor by automatic performance of movements.) 世界标准化组织(ISO):机器人是一种能够通过编程和自动控制来执行诸如作业或移动等任务的机器。(A robot is a machine which can be programmed to perform some tasks which involve manipulative or locomotive actions under automatic control.) 中国(原机械工业部):工业机器人是一种能自动定位控制、可重复编程、多功能多自由度的操作机,它能搬运材料、零件或夹持工具,用以完成各种作业。 二、机器人定义的本质: 首先,机器人是机器而不是人,它是人类制造的替代人类从事某种作业的工具,它能是人的某些功能的延伸。在某些方面,机器人可具有超越人类的能力,但从本质上说机器人永远不可能全面超越人类。

2017福师TCP-IP协议原理与编程在线作业(含答案)

201710TCPIP协议原理与编程作业 1.( 2.0分)下列说法正确的是 A、TCP伪头部和长度补足部分要进行传输 B、RARP是传输层的协议 C、TCP连接的三次握手目的是为了同步连接双方发送数据的初始序列号 D、IP协议提供可靠的数据传输服务 我的答案:C 2.(2.0分)IP头部中,“头部长”字段的度量单位是 A、8位 B、16位 C、32位 D、64位 我的答案:C 3.(2.0分)关于ARP的说法错误的是 A、ARP使用询问/回答机制 B、ARP缓存用于减少地址解析需要的通信 C、ARP实现从物理地址到IP地址的映射 D、ARP只能在同一个物理网络中使用 我的答案:C 4.(2.0分)下列说法错误的是 A、OSI的发展比TCP/IP早10年左右 B、OSI具有完整的七层结构 C、OSI架构很少有实际运行的系统 D、TCP/IP现已成为Internet的主流协议

我的答案:A 5.(2.0分)RIP路由算法所支持的最大Hop数为 A、10 B、15 C、16 D、32 我的答案:B 6.(2.0分)以下哪个IP地址可以在Internet上使用 A、/ B、/ C、/ D、/ 我的答案:A 7.(2.0分)滑动窗口协议是一种 A、超时判断机制 B、差错纠正机制 C、差错检测机制 D、确认重发机制 我的答案:D 8.(2.0分)OSPF采用( )方式进行路由通告 A、单播 B、组播 C、广播 D、以上皆是 我的答案:B 9.(2.0分)以下不属于网络层协议的是

A、ARP B、IGMP C、ICMP D、FTP 我的答案:D 10.(2.0分)负责电子邮件传输的应用层协议是 A、SMTP B、PPP C、IP D、FTP 我的答案:A 11.(2.0分)对已经是分片的IP数据包再进行分片后得到的每个分片中的标志位是 A、一定是1 B、一定是0 C、可能是0 D、以上皆错 我的答案:A 12.(2.0分)TCP协议利用()来提供可靠服务 A、三次握手协议 B、建立连接 C、流量控制 D、超时重发机制 我的答案:A 13.(2.0分)ICMP的类型字段中,字段值为0表示的是 A、超时

TCPIP实验报告

TCP/IP技术实验报告 书 专业:[通信工程] 学生姓名:[张世超] 完成时间:9:28 AM

实验一网络应用程序基础 实验目得: 通过实验,使学生熟悉并掌握运用TCP/IP技术进行网络编程得基本知识,加深对课堂教学内容得理解,掌握套接字网络通信编程技术,能够运用VC++为开发工具编程解决网络通信中得实际问题,进行一些简单得网络应用程序设计。实验内容: 1,Winsock得启动与终止。 2,Winsock得创建及绑定与关闭。 3,建立通信连接listen及accept与connect。 4,数据得传输。 5,简单得客户机/服务器之间得通信。 要求:通过在SDK模式下完成数据通信得过程,掌握Windows Socket得常用函数得形式与使用方法,理解数据通信得过程。 实验步骤: 1,打开VC环境 1,使用向导为客户端创建工程:选择可执行程序,选择使用wsa环境,单文档环境,其她得选择默认设置 2,在文件中添加代码 3,编译调试 4,使用向导为服务器端创建工程:选择可执行程序,选择使用wsa环境,单文档环境,其她得选择默认设置 5,在文件中添加代码 6,编译调试 7,分别打开两个系统命令窗口中,并分别在其中运行客户端与服务器端程序。 8,在客户端侧输入字符,可以瞧到服务器收到字符串 参考代码:课本156页--160页 实验结果: Client: #include<Winsock2、h> #include<stdio、h> //服务器端口号为5050 #define DEFAULT_PORT 5050 #define DATA_BUFFER 1024 void main(int argc,char *argv[]) { ?WSADATA wsaData; SOCKET sClient; ?int iPort=DEFAULT_PORT;

实验1TCPIP属性设置(参考答案)

实验一TCP/IP属性设置与测试 【一】实验目的 1. 通过实验学习局域网接入Internet时的TCP/IP属性的设置; 2. 掌握ping、ipconfig等命令的使用; 3. 熟悉使用相关命令测试和验证TCP/IP配置的正确性及网络的连通性。 【二】实验要求 1. 设备要求:计算机2台以上(装有Windows 2000/XP/2003操作系统、装有网卡已联网); 2. 分组要求:2人一组,合作完成。 【三】实验预备知识 1. IP地址、子网掩码、默认网关、DNS服务器 (1)IP地址 IP地址(IP Address)就是给每个连接在Internet上的主机分配的一个32bit二进制地址,为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节,IP地址它就像一个人可以合法的在社会上办理银行卡、移动电话等社会活动所需要一个身份证号标识一样。 所有的IP地址都由国际组织NIC(Network Information Center)负责统一分配,目前全世界共有三个这样的网络信息中心:InterNIC(负责美国及其他地区)、ENIC(负责欧洲地区)、APNIC(负责亚太地区),我国申请IP地址要通过APNIC,APNIC的总部设在澳大利亚布里斯班。申请时要考虑申请哪一类的IP地址,然后向国内的代理机构提出。 (2)子网掩码 子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。 (3)默认网关 默认网关(Default Gateway)是一个可直接到达的IP 路由器的IP 地址,配置默认网关可以在IP 路由表中创建一个默认路径,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包,它就好像一所学校有一个大门,我们进出学校必须经过这个大门,这个大门就是我们出入的默认关口。现在主机使用的网关,一般指的是默认网关。一台主机的默认网关是不可以随随便便指定的,必须正确地指定,否则一台主机就会将数据包发给不是网关的主机,从而无法与其他网络的主机通信。 (4)DNS服务器 DNS服务器(Domain Name System或者Domain Name Service) 是域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址。用户使用域名地址,该系统就会自动把域名地址转为IP地址。域名服务是运行域名系统的Internet工具。执行域名服务的服务器称之为DNS服务器,通过DNS服务器来应答域名服务的查询。TCP/IP属性设置中填入的是DNS服务器的IP地址。 2. Ping命令 Ping命令是最常用的一种网络命令,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,可以推断TCP/IP参数是否设置正确以及运行是否正常。按照缺省设置,Windows上运行的Ping命令发送4个ICMP(互联网控制报文协议)回送请求,每个32字节数据,

2011级tcpip作业答案及复习实例

网络协议分析(作业答案) 一、某单位有5个局域网,并由一台路由器实现5个局域网的互联,每个局域网最多不超过20台主机,现准备用一个内部的C类地址192.168.5.0~192.168.5.255,对该网络进行规划,每个局域网定义为一个子网,请将各子网的IP地址范围及子网掩码和可分配的地址数填于下表。 更节省地址分配的网络地址。 二、拥塞控制与流量控制分别用在什么地方?两种控制如何配合使用? 答: 流量控制: tcp是面向连接的传输过程,为了协调发送方和接收方在发送报文时候的速率方面一致,并解解每发送一个报文都等对方确认后方可发送的低效率机制,使得网络的资源得不到充分的利用而制定了tcp流量控制(滑动窗口协议)。通过动态控制滑动窗口的大小,可以实时控制好发送方的传输速度,使得接收方不会因为来不及处理数据而造成信息丢失。滑动窗口打大小设置在ip数据报文当中。 拥塞控制: 拥塞控制是为了解决网络中的路由器超载而引起的严重延迟现象。在拥塞控制中,仍然利用发送方的窗口来控制网络数据流的速度,减缓注入网络的数据流,从而拥塞自然就被解除了。 配合使用: 在tcp传输过程当中,如果仅仅是解决了流量控制的机制,而不考虑路由器的负担势必会造成网络拥塞。网络上不同的主机发送方在不了解网络负荷的条件下不断地向网络注入数据,造成路由负担过重,导致数据丢失,数据丢失引发重传,重传进一步导致拥塞加剧,最终导致网络瘫痪。所以,应该把流量控制和拥塞控制两者结合来考虑,通过取适合大小的发送窗口,既满足网络的要求,也满足接收方的要求。 发送窗口大小=min(接收方通告窗口大小,拥塞窗口的大小) 三、设TCP的拥塞窗口初始门限值是8个报文段。当拥塞窗口上升到12时网络发生了超时,TCP使用慢开始和拥塞避免。试分别求出第1次到第15次传输的各拥塞窗口大小。用图表示出来(参照课本图8-10)。

TCP.IP课程实验报告

TCP/IP协议族分析 课程设计

目录 第一章TCP/IP 概述 (3) 1.1 TCP/IP协议族定义 (3) 1.2 TCP/IP协议族的特点 (3) 1.3 TCP/IP协议族的分层 (3) 1.4 TCP/IP协议族的结构 (4) 第二章地址解析协议(ARP)——链路层 (5) 2.1 ARP概述 (6) 2.2 ARP的组成 (6) 2.3 ARP工作原理 (7) 2.4 ARP帧结构 (7) 第三章因特网控制消息协议(ICMP)——网络层 (13) 3.1 ICMP协议简介 (13) 3.2 ICMP消息结构 (14) 3.3 Echo Request和Echo Reply查询消息 (14) 3.4 ICMP各字段分析 (15) 第四章传输控制协议(TCP)——运输层 (18) 4.1 TCP协议简介 (18) 4.2 TCP数据包结构 (19) 4.3 TCP数据包分析 (20) 4.4 TCP三次“握手” (25) 第五章普通文件传输协议(TFTP)——应用层 (27) 5.1 TFTP数据传输模式 (27) 5.2 TFTP会话实例 (28) 总结 (31) 参考文献 (31)

第一章 TCP/IP 协议族概述 1.1 TCP/IP协议族定义 TCP/IP协议族是指一整套数据通信协议, 其名字是由这些协议中的两个协议组成的,即传输控制协议(Transmission Control Protocol ——TCP)和网间协议(Internet Protocol——IP)。虽然还有很多其他协议,但是TCP和IP显然是两个最重要的协议。 1.2 TCP/IP协议族的特点 TCP/IP协议族有一些重要的特点,以确保在特定的时刻能满足一种重要的需求,即世界范围内的数据通信。其特点包括: ●开放式协议标准。可免费使用,且与具体的计算机硬件或操作系统无关。由于它受到如此广泛的支持,因而即使不通过Internet 通信,利用TCP/IP来统一不同的硬件和软件也是很理想的。 ●与物理网络硬件无关。这就允许TCP/IP可以将很多不同类型的网络集成在一起,它可以适用于以太网、令牌环网、拨号线、X.25网络以及任何其它类型的物理传输介质。 ●通用的寻址方案。该方案允许任何TCP/IP设备唯一的寻址整个网络中的任何其他设备,该网络甚至可以像全球Internet那样大。 ●各种标准化的高级协议。可广泛而持续地提供多种用户服务。 1.3 TCP/IP协议族的分层 图1-1 TCP/IP协议族中不同层次的协议

机器人课程设计报告范例.

**学校 机器人课程设计 名称___________________________________ 院系电子信息工程系 班级10电气3 _____ 姓名_______ 学号107301336 指导教师 _________ 宋佳______

目录 第一章绪论 (2) 1.1课程设计任务背景 (2) 1.2课程设计的要求 (2) 第二章硬件设计 (3) 2.1结构设计 (3) 2.2电机驱动 (4) 2.3传感器 (5) 2.3.1光强传感器 (5) 2.3.2光强传感器原理 (6) 2.4硬件搭建 (6) 第三章软件设计 (8) 3.1 步态设计 (8) 3.1.1 步态分析: (8) 3.1.2程序逻辑图: (9) 3.2用NorthStar 设计的程序 (9) 第四章总结 (11) 第五章参考文献 (12)

第一章绪论 1.1课程设计任务背景 机器人由机械部分、传感部分、控制部分三大部分组成.这三大部分可分成驱动系统、机械结构系统、感受系统、机器人一环境交互系统、人机交互系统、控制系统六个子系统现在机器人普遍用于工业自动化领域,如汽车制造,医疗领域,如远程协助机器人,微纳米机器人,军事领域,如单兵机器人,拆弹机器人,小型侦查机器人(也属于无人机吧),美国大狗这样的多用途负重机器人,科研勘探领域,如水下勘探机器人,地震废墟等的用于搜查的机器人,煤矿利用的机器人。如今机器人发展的特点可概括为:横向上,应用面越来越宽。由95% 的工业应用扩展到更多领域的非工业应用。像做手术、采摘水果、剪枝、巷道掘进、侦查、排雷,还有空间机器人、潜海机器人。机器人应用无限制,只要能想到的,就可以去创造实现;纵向上,机器人的种类会越来越多,像进入人体的微型机器人,已成为一个新方向,可以小到像一个米粒般大小;机器人智能化得到加强,机器人会更加聪明 1.2课程设计的要求 设计一个机器人系统,该机器人可以是轮式、足式、车型、人型,也可以是仿其他生物的,但该机器人应具备的基本功能为:能够灵活行进,能感知光源、转向光源并跟踪光源;另外还应具备一项其他功能,该功能可自选(如亮灯、按钮启动、红外接近停止等)。 具体要求如下: 1、根据功能要求进行机械构型设计,并用实训套件搭建实物。 2、基于实训套件选定满足功能要求的传感器; 3、设计追光策略及运动步态; 4、用NorthStar 设计完整的机器人追光程序; 5、调试; 6、完成课程设计说明书,内容:方案设计、硬件搭建过程(附照片)、控制算法流 程、程序编写、调试结果、心得体会。

TCPIP协议-2012级作业3-4

作业3:ARP、IP、ICMP 1、路由器A的一个网络接口的IP地址为195.23.67.3,掩码是255.255.255.0,以太网物理 地址是0x2345AB4F67CD。路由器收到一个目的IP地址是185.11.78.10的IP分组,当路由器检查路由表时,它找出该分组应交付给下一跳路由器B,其IP地址是195.23.67.9,掩码是255.255.255.0,请写出路由器A发出的ARP请求分组和收到的ARP响应分组的内容,以及封装这两个分组的数据帧的首部字段。假设:195.23.67.9对应的MAC地址是0x154983AF6CD2,185.11.78.10对应的MAC地址是0x94EF65A3B2D7。 答:从A到B: 从B到A:

2、分析RFC826中“Packet Reception”一节关于ARP分组的接收处理,指出教材8.4.4节 的“表8.3 输入模块”中对ARP分组接收处理的不正确或不准确描述。 答: A、没有先检查协议,协议地址长度,以及自己是否是目的协议地址就开始进行操作。 B、没有判断自己是否是目的地址,只判断是否是请求分组,如果是就发送arp回答, 这与arp定义相左,每个主机都向发送主机回答arp报文,这会引起发送主机的瘫痪。 C、课本中默认即使不是目的地址也应将收到的arp分组中的物理地址和逻辑地址信息 记录,但RFC826中要求条件不成立即丢弃包,不进行储存。 3、一个IP数据报到达时其首部信息如下: 45 00 00 5400 0300 00200600 007C 4E 03 02 B4 0E 0F 02 试回答以下问题: a)该数据报有无选项字段?

TCP实验报告 计算机网络

计算机网络实验报告——TCP客户/服务器应用程序设计 姓名: 班级:

一.实验目的 实现在TCP方式下客户端和服务器端的数据传输过程。 二.实验要求 编程实现一个聊天室系统。该系统首先必须设立服务器,建立完成后必须建立与服务器的连接。建立成功后可以接收客户端输入的信息。该系统包括客户端和服务器端两部分。用户通过客户端发送消息。服务器端在收到消息后,显示在主界面上 实验报告要求有实现过程的流程图,对主要的函数及其参数给予说明,要有实现过程的主要程序段,并对各段程序的功能及作用进行说明。 三.程序实验原理及流程图 在TCP/IP协议下,通讯是建立在服务器与客户端之间的。由客户端想服务器发送连接请求,服务器响应后建立连接,然后才能开始进行通讯。一下是实现的流程图。 系统工作流程:

四.节目设计 在VC++的MFC下创建基于对话框模式的TCP服务器端和TCP客户端,设置控件并调整相应的属性。下面是初始化的效果:

五.主要函数及其参数说明 1、服务器端 1)BOOL CCSocketDlg::OnInitDialog() 用于初始化对话框。在这个这个系统自动生成的函数中添加对进程的控制。 count=0; m_list.InsertColumn(0,"消息");

m_list.SetColumnWidth(0,435); m_edit.SetLimitText(99); for (int i=0;i<50;i++) msgsock[i]=NULL; //设定地址 serv.sin_addr.s_addr=htonl(INADDR_ANY); serv.sin_family=AF_INET; serv.sin_port=5000;//htons(5000); addlen=sizeof(serv); m_button.EnableWindow(FALSE); //创建socket sock=socket(AF_INET,SOCK_STREAM,0); //绑定 if (bind(sock,(sockaddr*)&serv,addlen)){ m_edit.SetWindowText("绑定错误"); } else{ //m_list.InsertItem(count++,inet_ntoa(serv.sin_addr)); m_edit.SetWindowText("服务器创建成功"); //开始侦听 listen(sock,5); //调用线程 AfxBeginThread(&thread,0); 2)getcount() 用于获得还没有使用的socket数组号int CCSocketDlg::getcount(){ for (int i=0;i<50;i++){ if (msgsock[i]==NULL) return i;} return -1;

TCPIP实验之IP数据包分析--

TCP/IP协议与编程实验 姓名: 班级: 学号: 实验题目用Wireshark抓包分析ip数据包 一、实验目的 1、了解并会初步使用Wireshark,能在所用电脑上进行抓包 2、了解IP数据包格式,能应用该软件分析数据包格式 3、查看一个抓到的包的内容,并分析对应的IP数据包格式 二、实验内容 Wireshark 是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。 实验步骤: 1、打开wireshark,选择接口选项列表。或单击“Capture”,配置“option” 选项。

2、设置完成后,点击“start”开始抓包: 3、显示结果: 3、选择某一行抓包结果,双击查看此数据包具体结构。

4、捕捉IP数据报。 ① 写出IP数据报的格式。 IP数据报首部的固定部分中的各字段含义如下: (1)版本占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。 (2)首部长度占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60 字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部

3)区分服务占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务 DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。 (4)总长度总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。长度就是20字节(即首部长度为0101),这时不使用任何选项。 (5)标识(identification) 占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。 (6)标志(flag) 占3位,但目前只有2位有意义。 标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。 标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。 7)片偏移占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8 个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。 (8)生存时间占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。 #TTL通常是32或者64,scapy中默认是64 (9)协议占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。(在scapy中,下层的这个protocol一般可以从上曾继承而来,自动填充,我们一般可以省略不填此项) (10)首部检验和占16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和

《工业机器人》实验报告

北京理工大学珠海学院实验报告 实验课程:工业机器人实验名称:实验一:工业机器人认识 教师:时间:班级:姓名:学号: 一、实验目的与任务 了解6自由度工业机器人的机械结构,工作原理,性能指标、控制系统,并初步掌握操作。了解6自由度工业机器人在柔性制造系统中的作用。 二、实验设备 FMS系统(含6-DOF工业机器人) 三、实验内容与步骤 1、描述工业机器人的机械结构、工作原理及性能指标。 2、描述控制系统的组成及各部分的作用。

3、描述机器人的软件平台及记录自己在进行实际操作时的步骤及遇到的问题以及自己的想法。教师批阅:

北京理工大学珠海学院实验报告 实验课程:工业机器人实验名称:实验二:机器人坐标系的建立 教师:时间:班级:姓名:学号: 一、实验目的与任务 了解机器人建立坐标系的意义;了解机器人坐标系的类型;掌握用D-H方法建立机器人坐标系的方法与步骤。 二、实验设备 FMS系统(含6-DOF工业机器人) 三、实验内容与步骤 1、描述机器人建立坐标系的意义以及机器人坐标系的类型。 2、深入研究机器人机械结构,建立6自由度关节型机器人杆件坐标系,绘制机器人杆件坐标系图。

教师批阅:

实验课程:工业机器人实验名称:实验三:机器人示教编程与再现控制 教师:时间:班级:姓名:学号: 一、实验目的与任务 了解机器人示教编程的工作原理,掌握6自由度工业机器人的示教编程与再现控制。 二、实验设备 FMS系统(含6-DOF工业机器人) 三、实验内容与步骤 1、描述机器人示教编程的原理。 2、详细叙述示教编程与再现的操作步骤,记录每一个程序点,并谈谈实验心得体会。教师批阅:

TCPIP大作业-基于TCP的网络通信编程C语言版(江南大学)

TCP/IP协议编程大作业课题名称基于TCP的网络通信 专业计算机科学与技术 班级计算机1206 学号1030412612 学生姓名王成义 物联网工程学院

摘要 此TCP/IP课程设计实现了基于TCP的客户/服务器通信程序,具体实验过程通过有连接服务为主体,无连接服务为辅并利用事件对象I/O管理来实现。客户机具有注册,登陆,单聊,私聊,在线人数列表,退出等功能。

目录 一、总体设计 (4) 1、基本通信协议选取 (4) 2、通信过程设计 (4) 3、通信过程数据包设计 (4) 4、程序流程图 (5) 二、客户端程序 (6) 1、功能: (6) 2、原理: (6) 3、程序清单 (6) 三、服务器端程序 (19) 1、功能: (19) 2、原理: (19) 3、程序清单: (19) 四、运行结果 (35) 1、服务器端截图 (35) 2、客户端截图 (37)

一、总体设计 1、基本通信协议选取 TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。TCP提供IP环境下的数据可靠传输,它提供的服务包 括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、 端到端和可靠的数据包发送。而UDP则不为IP提供可靠性、流控或差错恢 复功能。TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求 低、传输经济的应用。 本次实验基于TCP/IP协议利用事件对象I/O管理实现基本的聊天功能,包括注册,登录,群聊,私聊及在线人数统计。 2、通信过程设计 2.1客户端设计 a.本地服务器 主要功能: 1)接收远程服务器转发的消息并显示消息。 b.本地客户端 主要功能: 1)发送建立TCP连接的请求操作; 2)发送注册信息,登陆消息及退出请求; 3)发送群聊消息,私聊消息,在线人数统计及退出请求。 2.2服务器端设计 a.远程服务端 主要功能: 1)监听客户端的连接请求; 2)提供注册服务,验证登陆请求和验证功能; 3)查看在线人数,发送在线状态; 4)发送群聊消息及私聊消息。 3、通信过程数据包设计 3.1客户端数据包设计: a.注册: ‘0’user(用户名) ‘@’password(密码) b.登陆: ‘1’user(用户名) ‘@’password(密码) c.聊天: 0)群聊: ‘2’user(用户名) ‘@’str(内容) 1)单聊: ‘5’str1(单聊对象名) ‘@’user(用户名) ‘*’str(内容) 2)在线用户 ‘4’user(用户名) ‘@’str(内容) 3)退出(登录):

TCP协议实验报告

学生实验报告 姓名:_________ 学号:____________ 班级:________________ 指导老师:_______________ 内容摘要 该实验报告了TCP协议分析实验相关分析; TCP协议分析是通过Wireshark分析TCP协议的报文格式,如理解TCP报文段首部各字段的含义,理解TCP建立连接的三次握手机制,了解TCP的确认机制,了解TCP的流量控制和拥塞控制 实验目的 1. 通过协议分析软件掌握TCP协议的报文格式; 2. 理解TCP报文段首部各字段的含义; 3. 理解TCP建立连接的三次握手机制; 4. 了解TCP的确认机制,了解TCP的流量控制和拥塞控制; 实验原理 连上in ternet的PC机,并且安装有协议分析软件Wireshark 实验原理及概况 TCP是因特网中最主要的运输层协议,它能够在两个应用程序章提供可靠的、有序的数据流传输,能够检测传输过程中分组是否丢失、失序和改变,并利用重传机制保证分组可 靠地传输到接收方; TCP首部格式如下图所示: 位U 3 16 24 31 首先是源端口和目的端口,服务器提供服务的端口号是固定的,比如:Web服务端口 号是80,而客户端的端口号是由操作系统随机分配一个用户端口号。TCP提供字节流服务, 它为分组中的每个字节编号,首部中的序号表示分组中第一个字节的编号。接收方用确认号 表示它期望接收的数据流中下一个字节编号,表明确认号之前的字节接收方都已经正确接收 了。数据偏移字段表示报文段的首部长度。标志部分包含6个标志位,ACK位表明确认号 字段是否有效;PUSH位表示发送端应用程序要求数据立即发送;SYN、FIN、RESET三位 用来建立连接和关闭连接;URG和紧急指针通常较少使用。接收端利用窗口字段通知发送 方它能够接收多大数据量。检验和字段是接收方用来检验接收的报文是否在传输过程中出

相关主题
文本预览
相关文档 最新文档