- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TCP/IP协议及网络编程技术
填空
1、IP的主机位全为零的时候表示为整个网络,全为一的时候表示网内广播,网络号全为零的时候表示本网络中的主机?P17
2、ICMP用来探测并报告IP数据包传输中产生的各种错误的,(差错检测),互联网控制消息协议P35, 主要基于查询和响应机制来完成对组播组成员的管理ARP是用来查找同一个物理网络中与一个IP地址相关联的物理地址的, 地址解析协议 P31,RARP实现为物理地址分配对应的IP地址的作用 反向地址解析协议P33UDP是参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议IRSG研究指导小组、IESG小组 滑动窗口协议:该协议允许发送方在停止并等待确认前可以连续发送多个分组。
基本思想是:所有路由器都会把它所知道的(不管是自己产生的还是从其他地方获得的)网络和到达该网络的距离等方面的信息告诉与其相邻的路由器。
D,T,R,C四位分别代表最小延时,最大吞吐量,最高可靠性和最小费用。这四位要不都设为0要么都设为1.设置这四个标志位只是让路由器尽可能地按照数据包的性质提供相应的传输质量,这并不保证要求的传输质量能够得到满足。标识(16bit)、标识(3bit)、段偏移(13bit)
与距离向量路由算法相比,链路状态路由算法具有以下特点:
1,更快的收敛速度
2,更小的网络开销
3,扩展性更好
4,更容易升级
Select,WSAAsyncSelect,WSAEventSelect,重叠I/O以及I/O完成端口。
编程题
25、采用UDP服务端客户端一个大致流程的伪代码
①、写出采用UDP协议进行通信的服务器端和客户端大致流程的伪代码。
答:
UDP编程的服务器端一般步骤是:
1、创建一个socket,用函数socket();
2、设置socket属性,用函数setsockopt();* 可选
3、绑定IP地址、端口等信息到socket上,用函数bind();
4、循环接收数据,用函数recvfrom();
5、关闭网络连接;
UDP编程的客户端一般步骤是:
1、创建一个socket,用函数socket();
2、设置socket属性,用函数setsockopt();* 可选
3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选
4、设置对方的IP地址和端口等属性;
5、发送数据,用函数sendto();
6、关闭网络连接
26、P223 29-99错误的不考
WSAEVENT ev=WSACreateEvent();
if(ev==WSA_INVALID_EVENT){
prinf(“WSACreateEvent:%d\n”,WSAGetLastError());
closesocket(sockListen);
WSACleanup();
}
WSANETWORKEVENTS evInfo;
while(1){//
//
sockSvr=accept(sockListen,NULL,NULL);
if(sockSvr==INVALID_SOCKET){//
prinf(“accept:%d\n”,WSAGetLastError());
break;
}
//
ret=WSAEventSelect(sockSvr,ev,FD_READ|FD_CLOSE);
if(ret==SOCKET_ERROR){//
prinf(“WSAEventSelect:%d\n”,WSAGetLastError());
closesocket(sockSvr);
break;
}
bool bClosed=false;
while(!bClosed){//
//
WSAResetEvent(ev);
//
ret=WSAWaitForMultipleEvents(1,ev,false,8000,FALSE);
if(ret==WSA_WAIT_FAILED){//
prinf(“WSAWaitForMultipleEvents:%d\n”,WSAGetLastError());
bClosed=true;
break;
}
if(ret==WSA_WAIT_TIMEOUT){//
bClosed=true;
break;
}
if(ret!=WSA_WAIT_EVENT_0){//
bClosed=true;
break;
}
//
memset(evInfo,0,sizeof(evInfo));
ret=WSAEnumNetworkEvents(sockSvr,(ev)[ret-WSA_WAIT_EVENT_0], evInfo);
if(ret==S
文档评论(0)