第一章 概述 第二章 物理層 第三章 數據鏈路層 第四章 網路層 第五章 傳輸層 第六章 應用層
『貳』 謝希仁的計算機網路
謝希仁的那本書應該是足夠應付考試了。。不過基本上都是理論只是。。基本上沒有例題。。出現的狀況是。。看完之後不會做課後的習題。。自己自學的話。不推薦。
『叄』 那位給發一下計算機網路(謝希仁,第四版)第六章,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。起到一個地圖導航,負責找路的作用。它工作在網路層。路由選擇協議主要是運行在路由器上的協議,主要用來進行路徑選擇。
『肆』 計算機網路試(謝希仁)試題
呵呵,做廣告的?呵呵,我現在不需要了!
『伍』 關於謝希仁計算機網路的一道IP地址分配的題,請大家幫忙解決,謝謝!
從字面上理解,你這個題目是一個考VLAN的題目。
主機位全1和主機位全0的地址是不能分配給主機的。如果你說lan3錯了,那你的lan1也錯了,6位主機位,有32個地址,但要去掉全1和全0的,就只剩30了,都沒有給網關的地址了。
你最好能把圖掛上來,干講不夠直觀。
『陸』 求解CSMA/CD的一道題!計算機網路第五版(謝希仁) 第3章25題!!高手救我啊!!!
在書的第83頁有圖3-18。在此題中匯流排被佔用時間為Tau+Tj(48)+Tau
『柒』 謝希仁《計算機網路》(第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中定義。