㈠ 计算机网络(谢希仁)第四版与第五版哪个好
我最近也关心了这个问题,我也有困惑,也想问问。
可是,我只能说各有内各的不同,四和五光从容目录来说确实有相当大的差别,但是仔细看了后你会基本内容发现差别不大,只是计算机网络现在发展太快,教材也要跟上潮流。比如,可能到了2010年我们就要用新的IP协议,IPv6。现有的IPv4已经不能满足人们的需求了,IPv4只是32位的地址表示,数量及其有限,而IPv6采用的是128位,可以说有用不完的地址可以分配,科学家们设想给每一个家用电器都设置IP,从而使得主人可以在外地就可以对其进行操作,使生活更加方便。
而,第五版最后一章,好像是什么下一代计算机网络就讲了些这个问题。所以说五版更有发展性。但四版中你又可以了解以前或者更多的知识,如果可以你就两者兼顾,还是以新的为主吧。
另一方面,Microsoft现在已经放慢对XP的更新维护,到使用了IPv6协议后XP就要被真正淘汰的,而现在的VISTA确可以胜任!
呵呵
㈡ 关于谢希仁著《计算机网络》(第四版)的两个问题
1。连接简单;在小规模的网络中不需要专用的网络设备;总线结构省线。星型结构比较稳定,任何一个线出问题了都不会影响其他端口;不使用共享总线,所以不会有总线拥塞问题;可扩展性好,可以通过级联扩展网络。
2.
1)首先强调关于HDLC的定义问题:
约束通信双方按一定规则进行通信的体系为数据链路控制规程(DLCP),也叫数据通信控制规程(DCCP)。自上世纪六十年代开始,世界上许多国家组织和大财团都在研究制定此类规程。从发布的规程体系看,共包括两类——面向字符的控制规程和面向比特的控制规程。
面向字符的规程,典型代表有美国标准协会ANSI的X3.28,ISO的ISO1745、DEC公司的DDCMP、中国的GB3453-82、IBM公司的BSC。
后来,IBM公司在同步数据链路控制规程(SDLC)基础上发展出面向比特的规程。再后来,ANSI和ISO两组织以IBM的SDLC为基础发展了两个类似的规程,一个是ANSI的高级数据通信控制规程(ADCCP),另一个就是ISO的高级数据链路控制规程,即HDLC。
(2)一般情况下,HDLC规程帧格式中的8位地址码段已经足够(256个地址),若实在不够,则该8位地址是可以扩展的(按8位扩展),并且可以许循环扩展下去,具体扩展方式是将地址的首8比特的第一位置0,表示下一个8比特是基本地址的扩展(没有扩展时则表示是控制码段)。
(3)地址的命名规则以实际系统构造方式为前提,是可以设计的。不同的系统,对规则的定义是不同的,应结合具体系统来理解。例如,基本地址方式下,256个地址是等同的,扩展后,前128位可以是主系统,后256位可以是子系统。也可以是128位与256位的组合形成新的独立地址码(但在解码时需要设计具体进程)。还可以是其它解释,一切看自己的系统规程设计。
(4)如第(2)点所说的地址扩展方式,一切以具体系统的具体规程为原则,不存在绝对的“网络层向链路层提供的是网络层地址”(此情况仅指你目前正在认识的系统),另一方面,在地址扩展方式下,很容易区分网络层地址和接入系统地址。
(5)MAC是和网络拓扑及具体互联媒质相关的协议规程。但是,仅仅适合于局域网的规定结构方式(不能与网络拓扑重构概念混淆)。在许多网络中,其互联媒质通常是按照一定的技术要求有所规定,因此不存在MAC问题,但在局域网中,由于结构形式、联结媒质可以多样化,因此相关规程中作了一些定义,试图全方位适应各种情况的规程协议(也是目前流行规程),将MAC接入控制作为规程要点之一。当然,目前一些局域网技术规程有扩大化应用趋势(包括MAC方面),但MAC的重点是根据具体媒质和具体拓扑结构来选择不同的数据传输进程控制方式或规程,是比地址码概念更外围的规程,一旦选定具体MAC规程(可以是动态选择),通信进程便按照设计的HDLC规程约定完成
3.交换机应该用在局域网负荷重的那个网络。
4.因为无线网可靠性比较差,丢包率高,在底层协议做完整性检查比较划算。以太网物理介质可靠性高,在高层协议做完整性检查更划算。
㈢ 求助!!关于谢希仁计算机网络第四版和第五版的区别
数据链路层部分,第五版删去了第四版过时的内容,加入了新内容,但2009,2010年的大纲内计算机网络部分容的数据链路层依旧是老的内容,不知道2011年的大纲是否有变化,其实2010年编写大纲的时候,谢希仁的第五版书已经有了,但2010年的大纲网络部分还是老内容,不能说大纲计算机网络部分是按照谢希仁的书编的,但也应该与时俱进啊,大纲计算机网络部分确实太老了,过时了。
㈣ 关于计算机网络方面的书籍
1. 计算机网络常识书籍
计算机网络常识书籍 1.计算机网络入门需要看那些书籍
1)编码:隐匿在计算机软硬件背后的语言,此书从信息的编码,数字的不同进制表示,到计算机采用的二进制机器级表示开始,到用电路构建一个简单的加法器,触发器,计数器,存储器,甚至一个具有控制器,运算器,存储器的简易CPU,娓娓道来,真是醍醐灌顶。最后还谈到了图形界面的原理。此书作者更是被传为圣经的《Windows程序设计》的作者Charles Petzold。读完此书可对计算机硬件的原理与设计有一全面深入之认识,犹如身处群山之巅,一览无余。
2)深入理解计算机系统 上一本《编码》通俗易懂,即使没有计算机相关知识也能懂,但缺乏一些计算机机制的介绍。此书是国外著名的介绍计算机系统方面的书,从程序员的角度带你畅游计算机系统架构。涉及程序的机器级表示(机器码,汇编),处理器体系结构,存储器结构,系统IO,网络编程,并发编程,以及程序性能的优化。读完此书可对计算机系统,程序设计有一深层次了解。
3)就C语言而言,K&R的 C程序设计语言 的无疑是最好的参考书,不过对初学者来说还是有一定难度,辅以诸如 C和指针 ,C陷阱与缺陷 会有更好的效果。当然多写程序才是王道,多写才能发现问题,加深认识。
4)Debug Hacks 此书介绍GDB调试工具及调试技巧,本人现在主要就是使用gcc gdb啦。此书助你更好的找出臭虫。
6)数据结构与算法分析 介绍算法和数据结构的书籍很多,但本人就是用这本书学习的,所以推荐。此书的前3章和第7章就介绍了题主要求的一些数据结构和算法,后面几张介绍树,排序,图论算法,及一些高级数据结构。读完此书将助你设计更优美的程序。
2.计算机网络经典书籍
《tcpip详解》分三卷,国外经典计算机教材,有中文译版,不过不适合你的。
《计算机网络》也分很多种,如果你要考网工的话或者你想学习网络推荐你看以下的书籍:
网络工程教程(第二版) 雷震甲 主遍 清华大学出版 (这本太深了,不过内容全)网工指定教材
网络工程必读系列 王达 这套书我看了两遍,实在不错。。。
计算机网络第五版 谢希仁 主遍 谢希仁同时还出了很多书都关于TCP/IP的书籍,具体书名我忘记,我觉得他讲解得思路清晰,易理解,适合基础旅岩差的。
计算档散机网络第四版,这是国外经典计算机网络经典教程,作者都是英文名字(具体我忘记了) ,我以前我学时很喜欢看这本。
3.计算机网络方面有哪些书籍值得推荐
计算机网络第五版,谢希仁的,个人感觉是国内最好的初级书籍。
如果想对网络有个清晰、全面的认识,可以阅读下面三本书籍: 第一本就是潘爱民翻译的Andrew S.Tanenbaum的《计算机网络》,此书讲明白了网络之道,即计算机网络通信的主要原理; 第二本是W.Richard Stevens的《TCP/IP详解卷一:协议》,此书讲明白了网络之术,即TCP/IP协行镇氏议簇的工作过程; 第三本是Douglas E.er的《计算机网络与因特网》,此书尝试在更广泛意义上解答“计算机网络和因特网是如何工作的”这一基本问题,解释了协议是如何使用硬件和应用是如何使用协议来满足用户的需求。
4.有关计算机编程,网络基础知识的书籍
建议你从C语言开始学,学好了它以后学其他语言会很容易上手
推荐你先看谭浩强的《C语言程序设计》先,这是一部非常好的C语言书籍,慢慢来学习程序设计是一个非常漫长的过程,不要着急,一本书多看两遍三遍,学会交叉学习法,在学习C的过程中,可以看看数据结构,编译原理,操作系统等书籍,对编成都是很有帮助的。最开始学习的时候,先不要编一些比较大的程序,多编一些小程序,比如数组运算,字符组合等等,指针是C语言的精华,是比较复杂的部分。如果指针这部分都可以熟练的应用,那么C语言里你还有什么不明白的吗,我相信你,你一定能学习好C语言的。
可以按照C——C++——JAVA的顺序学习,C++的学习是很有难度的,类,标准库,多态,继承等等比较抽象难道懂的概念,虽然他秉承了C语言的风格,但是有很多很多是C语言不具备的,要多看书,上机实践也是必不可少的。《C++编程思想》,《C++标准库》,这些书都非常好,内容也很全面,例程书籍也是必不可少的,多看源代码对编程是很有帮助的,也会少走很多弯路。总之,C++的学习是一个比较漫长的过程,大概需要两年的时间,这只是底限,如果想学通,学精,还需要更多的时间。
我向你推荐一些C++经典书籍:
c++程序设计教程
c++编程思想
c++大学教程
c++程序设计语言
数据结构算法与应用c++语言描述
c++标准模板库------自修教程与参考手册
泛型编程与STL
深度探索c++对象模型
设计模式---可复用面向对象软件的基础
重构---改善既有代码的设计
Essential c++
Effective c++
More Effctive c++
C++ primer
前五本应该属于入门书籍,后面的属于学习难度比较大的,想提高C++的编程能力,看看这些书籍有好处。建议你把编程思想这本书多看看。多做练习题,对提高编程水平的帮助是很大的。
其实语言是相通的,一门语言学会了,学习其他语言就比较容易了。
业界有这样一种说法,因为JAVA这门语言包含了C++的一些特性,掌握了C++,就等于掌握了JAVA的80%,
在掌握了C++之后(我说的掌握指的是,可以熟练用C++编程序了,并没有要求你完全掌握C++的所有部分,没有人能达到这一点,因为C++太庞大了,如果能坚持不懈的学习C++两年到三年的时间了,你就可以学习其他的语言了)可以试着学习一些其他的语言,如JAVA,VC++等等比较复杂的语言.
这时候可以说你已经对程序设计语言有个大体的认识了,可以明确自己学习的方向,根据自己的学习情况而定,是学习一些自己比较感兴趣的语言啊(从兴趣出发),还是为了找工作啊,开始进行更深入的学习.比如学习windows下的框架编程和编程等等比较复杂的语言.
如果是为了找工作的话你一定学好C,C++,JAVA三门语言.
在我国目前的软件开发行业中,C,C++,JAVA的需求量是非常大的.
好了,说了这么多,可以参考一下,为自己做个学习计划,要对自己有信心,最后祝你在学习编程的道路上走的更好更远,祝你学有所成!!
5.计算机网络技术的推荐书籍
如果想对网络有个清晰、全面的认识,可以阅读三本书籍:
第一本就是潘爱民翻译的Andrew S.Tanenbaum的《计算机网络》,此书讲明白了网络之道,即计算机网络通信的主要原理;
第二本是W.Richard Stevens的《TCP/IP详解卷一:协议》,此书讲明白了网络之术,即TCP/IP协议簇的工作过程;
第三本是Douglas E.er的《计算机网络与因特网》,此书尝试在更广泛意义上解答“计算机网络和因特网是如何工作的”这一基本问题,解释了协议是如何使用硬件和应用是如何使用协议来满足用户的需求。
6.推荐计算机基础知识学习的书籍
1、《计算机基础(第二版)》——姜岩、王秀玲
本书介绍了信息与计算机的基础知识、Windows XP操作系统的基本操作和基本使用知识、Word
2003文字处理软件的基本知识、Excel 2003电子表格处理软件的基本知识和PowerPoint 2003文档
演示软件等知识做了简单的介绍。
2、《计算机应用基础》 ——刘锡轩、丁恒、侯晓音
本书是为非计算机专业类学生提供计算机一般应用所必需的基础知识、能力和素质的课程。本书满
足普通高等院校培养“应用型人才”的教学宗旨,内容丰富,与时俱进,实用性强。
3、《计算机应用基础》——杨飞宇,孙海波
本书主要介绍了计算机组装与维护、计算机网络技术、电子文档制作、电子报表制作和演示文稿制
作。
4、《计算机应用基础》——张 明、王 翠、张和伟
本书采用任务驱动的方式进行编写,内容强调操作性和实用性。全书涵盖计算机基础知识、
Windows XP操作系统、Word 2003文字处理软件、Excel 2003电子表格处理软件和PowerPoint
2003演示文稿制作软件等内容。
5、《深入理解计算机系统》————布赖恩特
本书主要介绍了计算机系统的基本概念,包括最底层的内存中的数据表示、流水线指令的构成、虚
拟存储器、编译系统、动态加载库,以及用户应用等。书中提供了大量实际操作,可以帮助读者更
好地理解程序执行的方式,改进程序的执行效率。
6、《计算机应用基础》——武马群
本书主要介绍了计算机基础知识、操作系统Windows XP、因特网(Inter)应用、文字处理软件
Word 2003应用、电子表格处理软件Excel 2003应用、多媒体软件应用、演示文稿软PowerPoint
2003应用等内容。
㈤ 计算机网络看哪本书比较好
《计算机网络》也分很多种,如果你想学习网络推荐你看以下的书籍:
计算机网络第五版 谢希仁 主遍 谢希仁同时还出了很多书都关于TCP/IP的书籍,具体书名我忘记,我觉得他讲解得思路清晰,易理解,适合基础差的。
计算机网络第四版,这是国外经典计算机网络经典教程,作者都是英文名字(具体我忘记了) ,我以前我学时很喜欢看这本。。
㈥ 那位给发一下计算机网络(谢希仁,第四版)第六章,28题:简述RIP,OSPF,和BGP路由选择协议的特点
1、RIP现在基本不用,就算是小型网络,也可执行OSPF,如果网络太小,比如几台路由器,可用静态路由;
2、OSPF适合中大型网络,一般路由器在1000台以下的都行,只要规划合理;
3、BGP自治系统外部路由,目前唯一使用的EGP路由。
RIP协议工作在网络层,ospf也会也是工作在网络层,但是BGP就不是,工作在传输层,利用TCP的179端口,因为BGP主要用在运营商,概念和RIP,ospf完全不同,是距离矢量但又有链路状态的特性的混合协议。因为他是AS by AS的传递路由信息。比其他协议更稳定,而且安全的以后总协议。
(6)计算机网络谢希仁第四版扩展阅读:
RIP很早就被用在Internet上,主要传递路由信息,通过每隔30秒广播一次路由表,维护相邻路由器的位置关系,同时根据收到的路由表信息计算自己的路由表信息。
最大跳数为15跳,超过15跳的网络则认为目标网络不可达。此协议通常用在网络架构较为简单的小型网络环境。分为RIPv1和RIPv2两个版本,后者支持VLSM技术以及一系列技术上的改进。RIP的收敛速度较慢。
路由协议主要运行于路由器上,路由协议是用来确定到达路径的,它包括RIP,IGRP(Cisco私有协议),EIGRP(Cisco私有协议),OSPF,IS-IS,BGP。起到一个地图导航,负责找路的作用。它工作在网络层。路由选择协议主要是运行在路由器上的协议,主要用来进行路径选择。
㈦ 谢希仁《计算机网络》(第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中定义。