網絡編程試題答案_第1頁
網絡編程試題答案_第2頁
網絡編程試題答案_第3頁
網絡編程試題答案_第4頁
網絡編程試題答案_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一:選擇題(共10小題,每小題3分)1) 路由器工作在哪一層(B)A:鏈路層B:網絡層C:傳輸層D:應用層2) 一臺主機要實現通過局域網與另一個局域網通信,需要做的工作是 (C) 。A: 配置域名服務器B :定義一條本機指向所在網絡的路由C :定義一條本機指向所在網絡網關的路由D :定義一條本機指向目標網絡網關的路由3) 下列提法中,不屬于ifconfig命令作用范圍的是 (D )。A: 配置本地回環地址 B :配置網卡的IP地址C :激活網絡適配器 D: 加載網卡到內核中4) 下面的網絡協議中,面向連接的的協議是: (A) 。A:傳輸控制協議B :用戶數據報協議 C :網際協議 D: 網際控

2、制報文協議5) 在局域網絡內的某臺主機用ping命令測試網絡連接時發現網絡內部的主機都可以連同,而不能與公網連通,問題可能是(C)A 主機IP設置有誤B 沒有設置連接局域網的網關C 局域網的網關或主機的網關設置有誤D 局域網DNS服務器設置有誤6) DHCP是動態主機配置協議的簡稱,其作用是可以使網絡管理員通過一臺服務器來管理一個網絡系統,自動地為一個網絡中的主機分配_D_地址。A :UDP B :MAC C: TCP D: IP7) 在TCP/IP模型中,應用層包含了所有的高層協議,在下列的一些應用協議中,(B)是能夠實現本地與遠程主機之間的文件傳輸工作。A telnetB FTPC: SN

3、MPD: NFS8) 當我們與某遠程網絡連接不上時,就需要跟蹤路由查看,以便了解在網絡的什么位置出現了問題,滿足該目的的命令是(C)。A :pingB: ifconfigC :tracerouteD: netstat9) 關于代理服務器的論述,正確的是(A)。A :使用internet上已有的公開代理服務器,只需配置客戶端。B :代理服務器只能代理客戶端http的請求。C :設置好的代理服務器可以被網絡上任何主機使用。D :使用代理服務器的客戶端沒有自己的ip地址。10) 公司需要把 /255.255.255 網段劃分成10個子網,子網掩碼應該是? (C)A:255.25

4、5.255.5B:C:40D:48二:填空題(本題共5小題,每空1分 共10分)1) 網絡/24 定向廣播地址是(55),受限的廣播地址為(55),定向廣播和受限廣播的區別(只要路由器可以轉發定向廣播信息可以向其它子網廣播信息,而路由器從來不轉發受限的廣播信息);2) 在tcp/ip模型中進程到進程之間通信屬于(傳輸)層,主機到主機屬于(網絡)層,設備到設備屬于(數據鏈路)層,程序到程序屬于(應用)層。3) Ping命令的功能為(可以測試網

5、絡中本機系統是否能到達 一臺遠程主機 ,所以常常用于測試網絡的 連通性)。 4) 進行遠程登錄的命令是 (telnet)5) DNS 域名系統的作用是(主機用戶名和IP地址之間相互轉化)。三:問答題(本題共4小題,每題6分共24分)1) 簡述TCP/IP協議中各層的主要功能,各有哪些主要協議。答:網絡接口層:實現設備與設備之間的通信網絡層:實現主機與主機之間的通信 IP,ARP,RARP,ICMP傳輸層:實現進程與進程之間的通信 TCP,UDP應用層:實現應用程序 HTTP,SMTP,DNS,SNMP,FNS,FTP2) 什么是TCP 、UDP ?協議優缺點,應用場合?1:用戶數據報協議UDP

6、(User Datagram Protocol)UDP協議是面向無連接的用戶數據報協議,在傳輸數據之前不需要先建立連接。遠地主機的運輸層收到UDP報文后,不需要給出任何確認。2:傳輸數據報協議TCP(Transmission Control Protocol)TCP 則提供面向連接的服務。在傳輸數據前必須先建立連接,數據傳輸完畢后要釋放連接。區別:是否面向連接:Tcp 面向連接 ,udp是面向無連接是否可靠: Tcp 可靠,udp不可靠應用場合: Tcp應用于傳輸大量數據 ,udp用于傳輸少量數據 速度: Tcp的速度慢,udp的速度快 是否能夠廣播:tcp不能,udp能廣播tcp是基于連接的

7、,速度慢,有校驗等,所以傳送相同的數據,要比UDP發送的包多很多3) 簡述TCP/IP協議中三次握手的過程及涵義第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;三次握手:客戶端收到服務器的SYNACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手4) 簡述TCP/IP模型中,利用傳輸控制協議發送

8、數據,應用層數據從主機A發送到主機B的整個過程。答: 1、首先是主機A通過connect()函數發送連接請求,主機B的accept()函數接受到請求。 此時建立了連接。 2、主機A將數據寫如套接口。 3、主機B從套接口讀取數據,并保存。 4、數據發送完畢后,主機A關閉套接口。 5、主機B關閉套接口。四:程序題(共三小題,第一題16分,二三題10分 共36分)1) 利用setsocketopt()使用嵌套字支持廣播,并編寫兩個程序,其中一個發送廣播數據,另一個接收廣播數據。#include <stdio.h>#include <stdlib.h>#include <

9、string.h>/ bzero#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>/ inet_ntop#include <signal.h>#include <fcntl.h>/#define MAX 1024*1024int main(int argc, char *argv)struct sockaddr_in srvAddr;int socked = socket(AF_INET, SO

10、CK_DGRAM, 0);unsigned short port = 8000;char sendbuf1024=" ",recvbuf1024=""int broadcast_en=1;socklen_t broadcast_len=sizeof(broadcast_en);size_t len=sizeof(srvAddr);bzero(&srvAddr, sizeof(srvAddr);srvAddr.sin_family = AF_INET;srvAddr.sin_port = htons(port);srvAddr.sin_addr.s

11、_addr =inet_addr("55");if(socked < 0)perror("socket");exit(1);printf("UDP Server Started at port %d!n", port);if ( (setsockopt(socked,SOL_SOCKET,SO_BROADCAST,&broadcast_en,broadcast_len)<0 )perror("setsockopt");exit(1);while(1)printf(&qu

12、ot;輸入數據:");fgets(sendbuf,1024,stdin);sendbufstrlen(sendbuf)-1='0'sendto(socked,sendbuf,strlen(sendbuf),0,(struct sockaddr *)&srvAddr,(socklen_t)len);#include <stdio.h>#include <stdlib.h>#include <string.h>/ bzero#include <unistd.h>#include <sys/socket.h>

13、;#include <netinet/in.h>#include <arpa/inet.h>/ inet_ntop#include <signal.h>#include <fcntl.h>/#define MAX 1024*1024int main(int argc, char *argv)struct sockaddr_in srvAddr;int socked = socket(AF_INET, SOCK_DGRAM, 0);unsigned short port = 8000;char recvbuf1024=""int

14、 broadcast_en=1;socklen_t broadcast_len=sizeof(broadcast_en);size_t len=sizeof(srvAddr);bzero(&srvAddr, sizeof(srvAddr);srvAddr.sin_family = AF_INET;srvAddr.sin_port = htons(port);srvAddr.sin_addr.s_addr =inet_addr("55");if(socked < 0)perror("socket");exit(1);

15、printf("UDP Server Started at port %d!n", port);printf("Binding server to port %dn", port);if( (bind(socked,(struct sockaddr *)&srvAddr,(socklen_t)len)<0 )perror("bind");exit(1);while(1)if(recvfrom(socked,recvbuf,strlen(recvbuf),0,(struct sockaddr*)&srvAddr,

16、(socklen_t *)&len)<0)perror("recvfrom");exit(1);else printf("%sn",recvbuf);2) 寫一個TCP 并發的服務器,實現echo功能。#include <stdio.h>#include <stdlib.h>#include <string.h>/ bzero#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h>#include

17、 <arpa/inet.h>/ inet_ntop/=/ 語法格式:void main(void)/ 實現功能:主函數,建立一個TCP Echo Server/ 入口參數:無/ 出口參數:無/=int main(int argc, char *argv)char recvbuf2048;/ 接收緩沖區int sockfd;/ 套接字struct sockaddr_in servAddr;/ 服務器地址結構體unsigned short port = 8000;/ 監聽端口if(argc > 1)/ 由參數接收端口port = atoi(argv1);printf("

18、TCP Server Started at port %d!n", port);sockfd = socket(AF_INET, SOCK_STREAM, 0);/ 創建TCP套接字if(sockfd < 0)perror("Invalid socket");exit(1);bzero(&servAddr, sizeof(servAddr);/ 初始化服務器地址servAddr.sin_family = AF_INET;servAddr.sin_port = htons(port);servAddr.sin_addr.s_addr = htonl(I

19、NADDR_ANY);printf("Binding server to port %dn", port);if(bind(sockfd, (struct sockaddr*)&servAddr, sizeof(struct sockaddr) != 0)close(sockfd);perror("binding err");exit(1);if(listen(sockfd, 1) != 0)close(sockfd);perror("listen err");exit(1);printf("waiting clie

20、nt.n");while(1)char cliIPINET_ADDRSTRLEN;/ 用于保存客戶端IP地址size_t recvLen;struct sockaddr_in cliAddr;/ 用于保存客戶端地址size_t cliAddrLen = sizeof(cliAddr);/ 必須初始化!int connfd = accept(sockfd, (struct sockaddr*)&cliAddr, &cliAddrLen);/ 獲得一個已經建立的連接if(connfd < 0)close(sockfd);perror("accept err

21、!");exit(1);if(fork() = 0)close(sockfd);inet_ntop(AF_INET, &cliAddr.sin_addr.s_addr, cliIP, INET_ADDRSTRLEN);printf("client ip = %sn", cliIP);while(recvLen = read(connfd, recvbuf, 2048) > 0)write(connfd, recvbuf, recvLen);printf("client closed!n");exit(0);close(connfd

22、);close(sockfd);return 0;3) 寫一個UDP echo服務器#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>/=/ 語法格式:void main(void)/ 實現功能:主函數,建立一個UDP Echo Server/ 入口參數:無/ 出口參數:無/=i

23、nt main(int argc, char *argv)int sockfd;struct sockaddr_in bindAddr;unsigned short port = 8000;if(argc > 1)port = atoi(argv1);printf("UDP Server Started!n");sockfd = socket(AF_INET, SOCK_DGRAM, 0);if(sockfd < 0)printf("Invalid socketn");exit(1);bzero(&bindAddr, sizeof(bindAddr);bindAdd

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論