东北大学计算机网络思考题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机网络实验报告

软件学院

实验一思考与练习

一、选择

1)B

2)C

3)B

4)A

5)B

6)D

7)B

8)B

9)A

10)C

二、问答题

1)简述ARP协议工作原理

ARP是Address Resolution Protocol(地址转换协议)的简称,是TCP IP协议中最底层的协议之一。它的作用是完成IP地址到MAC(物理地址)的转换。

比如a机要与b机通讯,在局域网中处在数据链路层,这个层之间的主机互相通讯是通过mac地址互相区分的。所以主机a与主机b通讯,主机a 知道主机b的ip地址是不能通讯的。那么,主机a就要用arp 协议,通过广播的方式去寻找主机b的mac地址。当主机b 接收到arp的广播后就会主动与主机a。联系并告知主机a主机b的mac地址是什么。这样主机a知道了主机b的mac地址后就可以顺利的与主机b通讯了。

2)简述如何使用ping命令来判断网络的联通性

①使用ipconfig /all观察本地网络设置是否正确;

②. Ping 127.0.0.1,127.0.0.1 回送地址Ping回送地址是为了检查本地的TCP/IP协议有没有设置好;

③. Ping本机IP地址,这样是为了检查本机的IP地址是否设置有误;

④. Ping本网网关或本网IP地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略)

⑤. Ping远程IP地址,这主要是检查本网或本机与外部的连接是否正常

3)简述常用的网络命令有哪些?各自功能是什么?

Ping命令

Ipconfig命令

Arp命令

Netstat命令

Tracert命令

Route命令

实验二程序设计

实验1编写Tcp服务器与客户端程序,服务器程序在客户端连接后输出客户端信息(IP,端口号)

客户端

#include

#include

#pragma comment(lib,"ws2_32.lib")

void main()

{

WORD wVersionRequested;

WSADATA wsaData;

int err;

SOCKET sockC;

SOCKADDR_IN addrC;

int len;

wVersionRequested=MAKEWORD(2,2);

if((err=WSAStartup(wVersionRequested,&wsaData))!=0)

return;

if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=2) {

WSACleanup();

return;

}

sockC=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

addrC.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

addrC.sin_family=AF_INET;

addrC.sin_port=htons(6000);

len=sizeof(SOCKADDR);

connect(sockC,(SOCKADDR *)&addrC,sizeof(addrC));

closesocket(sockC);

WSACleanup();

}

服务端

#include

#include

#pragma comment(lib,"ws2_32.lib")

void main()

{

WORD wVersionRequested;

WSADATA wsaData;

int err;

SOCKET sockSrv;

SOCKET sockConn;

SOCKADDR_IN addrSrv;

SOCKADDR_IN addrClient;

int len;

wVersionRequested=MAKEWORD(2,2);

if((err=WSAStartup(wVersionRequested,&wsaData))!=0) return;

if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=2) {

WSACleanup();

return;

}

sockSrv=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); 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);

len=sizeof(SOCKADDR);

while(1)

{

sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len); printf("IP:%s\nPort:%d\n",inet_ntoa(addrClient.sin_addr),ntohs(addr

相关文档
最新文档