- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络编程资料1
简答
当TCP连接的两端都已关闭了TCP连接时,为什么TCP主动关闭的一端还要在状态TIME_WAIT下等待一段时间才删除原来的连接记录,并返回到初始的CLOSED状态。
答:执行主动关闭的一端进入TIME_WAIT状态,并且留在该状态的持续时间是报文最长生命周期的两倍,有时称为2MSL。存在这样一个超时间有两个理由:(1)实现终止TCP连接的可靠性,如果终止连接的第4个分节ACK丢失了,那么客户端必须重发;(2)、保证原来连接上的重复分节的网络中消失。
简述通用套接字地址结构的作用?
答:套接字地址结构作为参数传递给任一个套接字函数时,通常通过指针来传递。当套接字函数取得此参数时,参数中可能存放的是来自所支持的任何协议族的地址结构。因此的调用套接字函数时,需要将指向特定于协议的地址结构指针类型转换成指向通用地址结构的指针。通用套接字地址结构定义在文件SYS/SOCKET.H中。
为什么在fork的子进程中返回的是0,而不是父进程ID呢?
答:原因在于:每个子进程都只有一个父进程,它可以通过调用getppid函数来得到父进程的ID;而对于父进程,它有很多个子进程,它没有办法通过一个函数得到各子进程的ID。如果父进程想跟踪所有子进程的ID,它必须记住fork的返回值。
4、(1)、多进程并发服务器的原理?
当服务器调用accept()函数时,连接请求从客户到达服务器时双方的状态:
服务器 连接请求 客户
(2)、客户的连接请求被服务器接收后,新的已连接套接字即confd被创建,可通过此描述符写数据。此时双方的状态:
服务器 连接建立 客户
(3)、服务器的下一步就是调用fork函数,给了从fork()函数返回后的状态,此时描述符listenfd和connfd在父、子进程间共享。
服务器(父进程) 连接建立 客户
Fork
(4)、接下来就由父进程关闭已连接描述符,由子进程关闭监听描述符,当前双方的状态如下,至此就是套接字的最终状态,子进程处理与客户的连接。父进程可以对监听描述符再次调用accept,继续处理下一个客户的连接请求。
服务器(父进程) 连接建立 客户
服务器(子进程)
MX记录方式?
答:MX.MX记录用于指定一台主机的域名,所有发送到本域名的电子邮件都由这台主机接收。比如: IN MX
NET IN MX NET
IN MX
前一条记录的意思是指定由主机来接收发送到这个域的电子邮件;后两条记录的意思是发送到NET.的电子邮件首先由自己接收,如果失败再由主机接收。
画图并解释?
答:用原始套接字创建一个简单的DOS攻击程序,DOS攻击的类型很多,最常见的是SYN泛红攻击。其原理如图所示:
SYN
正常ACK
SYN+1
ACK
客户机 服务器
根据TCP/IP协议,正常的ACK应回送给客户机。但由于客户
文档评论(0)