⑴ 计算机网络谢希仁第六版课后习题答案
http://wenku..com/view/1a91cd82b9d528ea81c779e5.html
⑵ 计算机网络第七版谢希仁着课后习题答案!!!!跪求
详细请见:网页链接
⑶ 那位给发一下计算机网络(谢希仁,第四版)第六章,28题:简述RIP,OSPF,和BGP路由选择协议的特点
1、RIP现在基本不用,就算是小型网络,也可执行OSPF,如果网络太小,比如几台路由器,可用静态路由;
2、OSPF适合中大型网络,一般路由器在1000台以下的都行,只要规划合理;
3、BGP自治系统外部路由,目前唯一使用的EGP路由。
RIP协议工作在网络层,ospf也会也是工作在网络层,但是BGP就不是,工作在传输层,利用TCP的179端口,因为BGP主要用在运营商,概念和RIP,ospf完全不同,是距离矢量但又有链路状态的特性的混合协议。因为他是AS by AS的传递路由信息。比其他协议更稳定,而且安全的以后总协议。
(3)计算机网络谢希仁题目答案扩展阅读:
RIP很早就被用在Internet上,主要传递路由信息,通过每隔30秒广播一次路由表,维护相邻路由器的位置关系,同时根据收到的路由表信息计算自己的路由表信息。
最大跳数为15跳,超过15跳的网络则认为目标网络不可达。此协议通常用在网络架构较为简单的小型网络环境。分为RIPv1和RIPv2两个版本,后者支持VLSM技术以及一系列技术上的改进。RIP的收敛速度较慢。
路由协议主要运行于路由器上,路由协议是用来确定到达路径的,它包括RIP,IGRP(Cisco私有协议),EIGRP(Cisco私有协议),OSPF,IS-IS,BGP。起到一个地图导航,负责找路的作用。它工作在网络层。路由选择协议主要是运行在路由器上的协议,主要用来进行路径选择。
⑷ 求解CSMA/CD的一道题!计算机网络第五版(谢希仁) 第3章25题!!高手救我啊!!!
在书的第83页有图3-18。在此题中总线被占用时间为Tau+Tj(48)+Tau
⑸ 计算机网络谢希仁编着的第六版第四章课后习题答案
第4 章 网络层
4-01网络层向上提供的服务有哪两种?试比较其优缺点。
答案:虚电路服务和数据报服务。
虚电路的优点:虚电路服务是面向连接的,网络能够保证分组总是按照发送顺序到达目的站,且不丢失、不重复,提供可靠的端到端数据传输;目的站地址仅在连接建立阶段使用,每个分组使用短的虚电路号,使分组的控制信息部分的比特数减少,减少了额外开销;端到端的差错处理和流量控制可以由分组交换网负责,也可以由用户机负责。虚电路服务适用于通信信息量大、速率要求高、传输可靠性要求高的场合。
虚电路的缺点:虚电路服务必须建立连接;属于同一条虚电路的分组总是按照同一路由进行转发;当结点发生故障时,所有通过出故障的结点的虚电路均不能工作。
数据报的优点:数据报服务不需要建立连接;每个分组独立选择路由进行转发,当某个结点发生故障时,后续的分组可以另选路由,因而提高了通信的可靠性。数据报服务的灵活性好,适用于传输可靠性要求不高、通信子网负载不均衡、需要选择最佳路径的场合。
数据报的缺点:数据报服务是面向无连接的,到达目的站时不一定按发送顺序,传输中的分组可能丢失和重复,提供面向无连接的、不可靠的数据传输;每个分组都要有目的站的全地址;当网络发生故障是,出故障的结点可能会丢失数据,一些路由可能会发生变化;端到端的差错处理和流量控制只由主机负责。
答案太多传不上来,留下邮箱可以发给你..........
⑹ 求解CSMA/CD的一道题!计算机网络第五版(谢希仁) 第3章25题!!
t=0时,A,B开始传输数据; t=225比特时间,A和B同时检测到发生碰撞; t=225+48=273比特时间,完成了干扰信号的传输; 开始各自进行退避算法: A: 因为rA=0,则A在干扰信号传输完之后立即开始侦听 t=273+225(传播时延)=498比特时间,A检测到信道开始空闲 t=498+96(帧间最小间隔)=594比特时间,A开始重传数据 -----第一问A的重传时间 t=594+225 (传播时延)=819比特时间,A重传完毕 ----第二问A重传的数据帧到达B的时间 B: 因为rB=1,则B在干扰信号传输完之后1倍的争用期,即512比特时间才开始侦听 t=273+512=785比特时间,B开始侦听 若侦听空闲,则 t=785+96(帧间最小间隔)=881比特时间,B开始重传数据 若侦听费空闲,则继续退避算法 又因为t=819比特时间的时候,A才重传数据完毕,所以B在785比特时间侦听的时候,肯定会侦听信道非空闲,即B在预定的881比特时间之前侦听到信道忙, 所以,第四问的答案:B在预定的881比特时间是停止发送数据的。 即第三问A重传的数据不会和B重传的数据再次发生碰撞。
⑺ 谢希仁《计算机网络》(第4版)第3-08题答案是什么呀
算法流程:
发送方:
1)从主机去一个数据帧,送交发送缓存.
2)V(S) 0{发送状态变量初始化}
3)N(S) V(S){将发送状态变量值写入数据帧中的发送序号}
4)应答序号初始化
5)判断发送缓冲区以满,却未收到应答帧.是则到(6),否则到(8)
6)出现差错,唤醒超时计数器,将所有帧重新全部发送到缓存
7)若收到应答帧,则到(9);再次超时并未收到应答帧,则返回(6)
8)收到应答帧后,从上层获取数据,并写入发送缓冲区当前位置
9)组装发送帧编码
10)发送数据帧,并加发送序号加1
11)设置超时计数器
12)在所设置的超时时间收到确认帧,则转到(8);若出现差错,则转到(13)
13)超时计数器往回走,将未收到的第n个帧及以后的所有帧全部进行重传
14)若仍产生差错则继续(13),若受到确认帧则继续传数据帧,则转到(15)
15)接受帧,取得接收方希望接受的帧编号,返回(1)
接收方:
1)V(R) 0{接受状态变量初始化,其数值等于与接收的数据帧的发送序号}
2)等待
3)收到一个数据帧,若N(S)= V(R),则执行(4),否则,丢弃此数据帧
4)发送确认帧ACKn
5)检查收到的帧是否按序,进行V(R)'=(V(R)+1)mod 8检验.若不按序则丢弃第n-1帧后的所有帧,重新发送ACKn
6)重新接收未收到的帧
7)将收到的数据帧中的数据部分送交上层软件
8)更新接受状态变量V(R) [V(R)+1]mod 8,转到2)
算法代码:
#define MAX_SEQ 7 /* 应该为2^n-1 */
typedef enum {frame_arrival, cksum_error, timeout, network_layer_ready} event_type;
#include protocal.h
static boolean between(seq_nr a, seq_nr b, seq_nr c)
{ /* 如果b落在a和c之间(含a不含c)返回true,否则返回false. */
if (((a<=b) && (b<c)) || ((c<a) && (a<=b)) || ((b<c) && (c<a)))
return(true); else return(false); }
static void send_data(seq_nr frame_nr, seq_nr frame_expected, packet buffer[])
{/* 构造和发送数据帧
frame s; /* 起始变量 */
s.info=buffer[frame_nr]; /* 插入分组到帧中 */
s.seq=frame_nr; /* 插入序号到帧中 */
s.ack=(frame_expected+MAX_SEQ) % (MAX_SEQ+1) /* 捎带应答 */
to_physical_layer(&s); /* 传送该帧 */
start_timer(frame_nr); }
/* 启动定时器 */
void protocal5(void)
{seq_nr next_frame_to_send; /* MAX_SEQ>1; 用于外出流 */
seq_nr ack_expected; /* 还没有得到应答的最早的帧 */
seq_nr frame_expected; /* 进入流期望的下一帧 */
frame r; /* 初始变量 */
packet buffer[MAX_SEQ+1] /* 外出流的缓存 */
seq_nr nbuffered; /* 当前正在使用的输出缓存 */
event_type event;
enable_network_layer(); /* 允许 network_layer_ready 事件 */
ack_expected = 0; /* 下一个期望进入的应答 */
next_frame_to_send = 0; /* 下一个要送出的帧 */
frame_expected = 0; /* 期望进入的帧的序号 */
nbuffered = 0; /* 初始没有分组被缓存 */
while (true) {
wait_for_event ( &event); /* 四种可能的事件,见上面event_type定义 */
switch (event) {
case network_layer_ready; /* 网络层有一个分组要发送 */
/* 接收, 保存, 以及发送一个新的帧 */
from_network_layer(&buffer[next_frame-to_send]); /* 获得一个新的分组 */
nbuffered = nbuffered + 1; /* 增加发送方的窗口 */
send_data(next_frame_to_send, frame_expected, buffer); /* 发送帧 */
inc(next_frame_to_send); /* 发送方的窗口上界向前移动 */
break;
case frame_arrival: /* 一个数据帧或控制帧到达 */
from_physical_layer(&r); /* 从物理层得到一个进入的帧 */
if (r.seq == frame_expected) {
/* 所有的帧只能按序接收. */
to_network_layer(&r.info); /* 传递分组到网络层 */
inc(frame_expected); /* 接收方的窗口下界向前移动 */ }
/* Ack n 意味着n-1,n-2,
while (between(ack_expected, r.ack, next_frame_to_send))
{ /* 处理捎带应答 */
nbuffered = nbuffered + 1; /* 减少一个缓存的帧 */
stop_timer(ack_expected); /* 帧完好到达, 停止定时器 */
inc(ack_expected); /* 压缩发送窗口 */
}
break;
case cksum_err: break; /* 丢弃坏帧 */
case time_out: /* 重传所有超时的帧 */
next_frame_to_send = ack_expected; /* 开始重传 */
for (i = 1; i <= nbuffered; i ++) {
send_data(next_frame_to_send, fram_expected, buffer); /* 重发1帧 */
inc(next_frame_to_send); /* 准备发送下一帧 */
if (nbuffered < MAX_SEQ)
enable_network_layer();
else
disable_network_layer();
注: 算法中所有调用的未说明的过程和函数在protocal.h中定义。
⑻ 求解一道计算机网络试题
这个题目是计算机网络(第5版)谢希仁 编着 里面的课后问答题。
主要是考【传播时延】和【时延带宽积】这两个知识点。
传播时延是电磁波在信道中传播一定的距离需要花费的时间。
传播时延的计算机公式是:
传播时延=信道长度(m)/电磁波在信道上的传播速率(m/s)
时延带宽积=传播时延*带宽(就是我们要求的正在传播的比特数)
发送的第一个比特数即将达到终点时,发送端就已经发送了多少比特(正在发送的比特数)
长度0.1m 传播时延4.35*10^-10s
数据率=1Mb/s 正在传输的比特数 4.35*10^-4
数据率=10Gb/s 正在传输的比特数 4.35
长度100m 传播时延4.35*10^-7s
数据率=1Mb/s 正在传输的比特数 0.435
数据率=10Gb/s 正在传输的比特数 4.35*10^3
长度100km 传播时延4.35*10^-4s
数据率=1Mb/s 正在传输的比特数 4.35*10^2
数据率=10Gb/s 正在传输的比特数 4.35*10^6
长度5000km传播时延0.0217s
数据率=1Mb/s 正在传输的比特数 2.17*10^4
数据率=10Gb/s 正在传输的比特数 2.17*10^8