计算机网络复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011计算机网络复习课
形式:开卷
题型:
1.名词解释题(5个,20分)
基于书本
2.简答题(5分,30分)
课后复习题
3.分析题50分
7选5
4.扩展题5分
其中分析题知识点分布
(程序设计, DNS查询(递归,迭代过程),选择重传算法,拥塞控制,checksum,3次握手(连接,拆除),IP地址(子网划分,NAT)),IP数据包分片与组装,路由算法(2种),CRC校验,CSMA/CD,退避算法,ARP,帧格式,曼彻思特)
5个(7选5)1,2,3,4,5一章一个
分章节复习、知识点复习
程序设计
TCP与UDP套接字编程
流程如下:
服务器:创建套接字—>绑定—>监听—>接受连接—>收发数据—>关闭
客户端:创建套接字—>连接—>收发数据—>关闭
基于TCP (面向连接)的socket 编程
服务器端程序:
1. 创建套接字(socket);
2. 将套接字绑定到一个本地地址和端口上(bind);
3. 将套接字设为监听模式,准备接收客户端请求(listen);
4. 等待客户端请求,当请求到达后,接受连接请求,返回一个新的对应于此次连接的套接字(accept);
5. 用返回的套接字和客户端进行通信(send/recv);
6. 返回,等待另一客户请求;
7. 关闭套接字;
客户端程序:
1. 创建套接字(socket);
2. 向服务器端发出连接请求(connect);
3. 和服务器端进行通信(send/recv);
4. 关闭套接字;
基于UDP (面向无连接)的socket 编程
服务器端(接收端)程序:
1. 创建套接字(socket);
2. 将套接字绑定到一个本地地址和端口上(bind);
3. 等待接收数据(recvfrom);
4. 关闭套接字;
客户端(发送端)程序:
1. 创建套接字(socket);
2. 向服务器端发送数据(sendto);
3. 关闭套接字;
DNS 工作过程中的两种查询算法
P89
递归查询的工作方式
递归查询是最常见的查询方式,域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。
默认情况下,DNS服务器使用递归方式来解析名字。递归方式的含义就是DNS服务器作为DNS客户端向其他DNS服务器查询此解析请求,直到获得解析结果,在此过程中,原DNS客户端则等待DNS服务器的回复。
迭代查询的工作方式
迭代查询又称重指引,当服务器使用迭代查询时能够使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,直到服务器给出的提示中包含所需要查询的主机地址为止,一般的,每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。从上节的图中可以知道,B访问C、D、E、F、G,都是迭代查询,首先B访问C,得到了提示访问D的提示信息后,开始访问D,这时因为是迭代查询,D又返回给B提示信息,告诉B应该访问E,依次类推。
说明:假设你要寻找一家你从未去过的公司,你会有2种解决方案,1是找一个人替你问路,那可能是你的助手,2是自己问路,每走过一个路口,就问一个人,这就好比递归查询和迭代查询,递归查询在这里代表你的第1种解决方案,而迭代则是第2种解决方案。
C.选择重传算法(回退N步,滑动窗口)
停等协议—流水线----?序号范围?发送方和接收方的缓存分组多大?出错后差错恢复?1.回退N步(go back N )GBN算法也叫滑动窗口算法
滑动窗口协议,也称为回退N步协议(Go-Back-N,GBN)中,允许发送方发送多个分组(当有多个分组可用时)而不需等待确认,但它受限于在流水线中为未确认的分组数不能超过某个最大允许数N。滑动窗口协议是TCP使用的一种流量控制方法,此协议能够加速数
据的传输。只有在接收窗口向前滑动时(与此同时也发送了确认),发送窗口才有可能向前滑动。收发两端的窗口按照以上规律不断地向前滑动,因此这种协议又称为滑动窗口协议。
当发送窗口和接收窗口的大小都等于1时,就是停止等待协议。
当发送窗口大于1,接收窗口等于1时,就是回退N步协议。
当发送窗口和接收窗口的大小均大于1时,就是选择重发协议。
协议中规定,对于窗口内未经确认的分组需要重传。这种分组的数量最多可以等于发送窗口的大小,即滑动窗口的大小n减去1(因为发送窗口不可能大于(n-1),起码接收窗口要大于等于1)。
工作原理
TCP滑动窗口用来暂存两台计算机间要传送的数据分组。每台运行TCP协议的计算机有两个滑动窗口:一个用于数据发送,另一个用于数据接收。发送端待发数据分组在缓冲区排队等待送出。被滑动窗口框入的分组,是可以在未收到接收确认的情况下最多送出的部分。滑动窗口左端标志X的分组,是已经被接收端确认收到的分组。随着新的确认到来,窗口不断向右滑动。
TCP协议软件依靠滑动窗口机制解决传输效率和流量控制问题。它可以在收到确认信息之前发送多个数据分组。这种机制使得网络通信处于忙碌状态,提高了整个网络的吞吐率,它还解决了端到端的通信流量控制问题,允许接收端在拥有容纳足够数据的缓冲之前对传输进行限制。在实际运行中,TCP滑动窗口的大小是可以随时调整的。收发端TCP协议软件在进行分组确认通信时,还交换滑动窗口控制信息,使得双方滑动窗口大小可以根据需要动态变化,达到在提高数据传输效率的同时,防止拥塞的发生。
称窗口左边沿向右边沿靠近为窗口合拢,这种现象发生在数据被发送和确认时。当窗口右边沿向右移动时将允许发送更多的数据,称之为窗口张开。这种现象发生在另一端的接收进程读取已经确认的数据并释放了TCP的接收缓存时。
当右边沿向左移动时,称为窗口收缩。Host Requirements RFC强烈建议不要使用这种方式。但TCP必须能够在某一端产生这种情况时进行处理。如果左边沿到达右边沿,则称其为一个零窗口。
(1)停止等待协议
(2)回退N步协议
(3)选择重传
GBN协议(Go-Back-N,GBN)允许发送方用多个分组“填充流水线”,因此避免了停等协议中所提到的信道利用率的问题。然而,GBN协议也存在性能上的问题。尤其是当窗口的长度和带宽时延积都很大,在流水线中会有很多分组时更是如此。一个单个分组的差错