计算机网络试卷及答案(硕士研究生) - 图文

发布时间 : 星期一 文章计算机网络试卷及答案(硕士研究生) - 图文更新完毕开始阅读

《计算机网络与通信》试题

(学术型)

学号 姓名

1. HTTP协议中定义了哪些加密服务?请使用分析http://wiki.wireshark.org/SampleCaptures

中http_with_jpegs.cap.gz A simple capture containing a few JPEG pictures one can reassemble and save to a file. 对话过程。(10分)

(1) SSH服务:为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,

专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

(2) SSL服务:用以保障在Internet上数据传输之安全,利用数据加密(Encryption)

技术,可确保数据在网络上之传输过程中不会被截取及窃听。

(3) TLS服务:用于在两个通信应用程序之间提供保密性和数据完整性。该协议由

两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面,与具体的应用无关。

Tcp通过三次握手,建立连接

上图中48、50是向服务器请求.jpg的文件

58、59服务器发送分组后的数据,60客户机回应,61图片发送成功。

2. TCP传输层具有哪些功能?评价传输层性能指标是什么?(10分) (一)TCP功能:1、完成对数据报的确认、流量控制和网络拥塞; 2、自动检测数据报,并提供错误重发的功能;

3、将多条路径传送的数据报按照原来的顺序进行排列,并对重复数据进行择取; 4、控制超时重发,自动调整超时值;提供自动恢复丢失数据的功能。 (二)传输层性能指标:1、传输层端到端(TCP)吞吐率.

2、负载:信道或设备在单位时间内所承受的通信流量。

3、转发速率:在某个特定负载下,一台网络设备在单位时间内向目标端口成功转发的帧数。交换机的转发速率与交换机的体系结构、端口带宽、转发模式、设备的负载状况等因素有关。

4、丢帧率:传输过程中丢失的数据帧占应转发帧的比例。 5、突发(Burst):在某个时间段内,一组以合法最小帧间隔传输的以太网帧。

3. 计算机A有一个10G大小文件要通过UDP协议传输给计算机B,请设计文件可靠传输

协议(注意考虑断点续传),保证计算机A上的文件可靠传输到计算机B上。(15分)

(一)将A作为服务器,B作为客户机,进行文件传输。断点续传是基于socket编程实现。

a) 传输起自一个读取或写入文件的请求,这个请求也是连接请求。如果服务器批准此

请求,则服务器打开连接,数据以定长512字节传输。 b) 每个数据包包括一块数据,服务器发出下一个数据包以前必须得到客户对上一个数

据包的确认(停等协议)。如果一个数据包的大小小于512字节,则表示传输结束。 c) 如果数据包在传输过程中丢失,发出方会在超时后重新传输最后一个未被确认的数

据包(丢包处理)。

d) 初始连接时候需要发出WRQ(请求写入)或RRQ(请求读取),收到一个确定应

答,一个确定可以写出的包或应该读取的第一块数据。通常确认包包括要确认的包的包号,每个数据包都与一个块号相对应,块号从1开始而且是连续的。因此对于写入请求的确定是一个比较特殊的情况,因此它的包的包号是0。如果收到的包是一个错误的包,则这个请求被拒绝。

e) 在断点续传时,当发送方发出数据包后,网络中断后,无论接受方接收到数据包没

有,发送方都不会接收到确认帧,此时发送方会重复的发送未被确认的数据包,接收方也会等待这一个或者下一个数据包的来临。这样故障恢复后,接收方可能会接收到两个相同的数据包(确认帧丢失情况),所以接收会判断接收到的新数据包的编号是否与上一个相同,不相同则写入文件,但无论是否相同,都会发送确认帧,使发送方发送下一个数据包。系统设置了超时结束机制,这与断点续传是一对矛盾。当把超时时间设置的比路由重启的时间和网线滑落手动接上的时间略长就能很好的解决这个矛盾了。

(二)部分源程序

服务器端(SERVER): 主函数部分: #define _VC

#include #include #include #include #include #ifdef _VC

#pragma comment( lib, \#endif

#include \#include \#include \#include \

void download(struct sockaddr_in sour_addr,char buffer[]); void upload(struct sockaddr_in sour_addr,char buffer[]);

SOCKET sock = INVALID_SOCKET;

char desthost[256] = \/*目的主机地址,默认为本机*/ int filemode = TFTP_OCTET; /*发送模式设置为octet*/

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

int ret = 0; sockaddr_in addr; WSADATA stWSAData; if(WSAStartup(WSA_VERSION, &stWSAData)!=0){ /*启用winsock*/ printf(\ exit(0); }

sock = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); /*#define AF_INET 2 (internetwork: UDP)*/ /*#define SOCK_DGRAM 2(datagram socket)*/ if(sock==INVALID_SOCKET){ printf(\ exit(0); } /*初始化地址信息*/ addr.sin_family = AF_INET; addr.sin_port = htons(69); addr.sin_addr.s_addr = INADDR_ANY; if(bind(sock,(struct sockaddr *)&addr,sizeof(addr))!=0){ printf(\ exit(0); } //初始化远程地址信息 struct sockaddr_in sour_addr; sour_addr.sin_family = AF_INET; sour_addr.sin_port = htons(INADDR_ANY); sour_addr.sin_addr.s_addr = inet_addr(desthost); // IP地址 while(true) { //定义TFTP首部缓冲区 char recv_buffer[1024] = {0}; // 接收的数据缓冲区 int sour_len = 0; char *fi=NULL; fd_set fdr; FD_ZERO(&fdr); FD_SET(sock, &fdr); ret = select(sock, &fdr, NULL,NULL, NULL); if(SOCKET_ERROR==ret){ /*#define SOCKET_ERROR (-1)*/

printf(\ return 0; } else{ if(FD_ISSET(sock,&fdr)){ sour_len = sizeof(sockaddr); ret = recvfrom(sock,recv_buffer,sizeof(recv_buffer),0,(sockaddr *)&sour_addr,&sour_len); fi=&recv_buffer[2]; if(recv_buffer[1]==TFTP_RRQ){ //读请求 printf(\收到%s下载文件请求\\n\ record(3,&sour_addr,fi); download(sour_addr,recv_buffer); } if(recv_buffer[1]==TFTP_WRQ){ //写请求 printf(\收到%s上传文件请求\\n\ record(1,&sour_addr,fi); upload(sour_addr,recv_buffer); } }//end if }//end else }//end while return 0; }

void download(struct sockaddr_in sour_addr,char buffer[]) { char send_buffer[1024] = {0}; char recv_buffer[1024] = {0}; char data_buffer[1024] = {0}; sockaddr_in dest_addr; fd_set fdr; int retry = 0; int sour_len = 0; int ret = 0; int len = 0 ; int flen = 0; struct timeval timeout = {10,0}; int stat = TFTP_WSTAT_NEXTACK; unsigned short lastack= 0; unsigned short blocknum = 0; size_t rlen = 0; FILE *file;

联系合同范文客服:xxxxx#qq.com(#替换为@)