演算法流程:
發送方:
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中定義。
② 計算機網路謝希仁編著的第六版第四章課後習題答案
第4 章 網路層
4-01網路層向上提供的服務有哪兩種?試比較其優缺點。
答案:虛電路服務和數據報服務。
虛電路的優點:虛電路服務是面向連接的,網路能夠保證分組總是按照發送順序到達目的站,且不丟失、不重復,提供可靠的端到端數據傳輸;目的站地址僅在連接建立階段使用,每個分組使用短的虛電路號,使分組的控制信息部分的比特數減少,減少了額外開銷;端到端的差錯處理和流量控制可以由分組交換網負責,也可以由用戶機負責。虛電路服務適用於通信信息量大、速率要求高、傳輸可靠性要求高的場合。
虛電路的缺點:虛電路服務必須建立連接;屬於同一條虛電路的分組總是按照同一路由進行轉發;當結點發生故障時,所有通過出故障的結點的虛電路均不能工作。
數據報的優點:數據報服務不需要建立連接;每個分組獨立選擇路由進行轉發,當某個結點發生故障時,後續的分組可以另選路由,因而提高了通信的可靠性。數據報服務的靈活性好,適用於傳輸可靠性要求不高、通信子網負載不均衡、需要選擇最佳路徑的場合。
數據報的缺點:數據報服務是面向無連接的,到達目的站時不一定按發送順序,傳輸中的分組可能丟失和重復,提供面向無連接的、不可靠的數據傳輸;每個分組都要有目的站的全地址;當網路發生故障是,出故障的結點可能會丟失數據,一些路由可能會發生變化;端到端的差錯處理和流量控制只由主機負責。
答案太多傳不上來,留下郵箱可以發給你..........
③ 計算機網路謝希仁第六版課後習題答案
http://wenku..com/view/1a91cd82b9d528ea81c779e5.html
④ 計算機網路第一章課後答案
1-01 計算機網路向用戶可以提供那些服務?
答: 連通性和共享
1-02 簡述分組交換的要點。
答:(1)報文分組,加首部
(2)經路由器儲存轉發
(3)在目的地合並
1-03 試從多個方面比較電路交換、報文交換和分組交換的主要優缺點。
答:(1)電路交換:端對端通信質量因約定了通信資源獲得可靠保障,對連續傳送大量數據效率高。
(2)報文交換:無須預約傳輸帶寬,動態逐段利用傳輸帶寬對突發式數據通信效率高,通信迅速。
(3)分組交換:具有報文交換之高效、迅速的要點,且各分組小,路由靈活,網路生存性能好。
1-04 為什麼說網際網路是自印刷術以來人類通信方面最大的變革?
答: 融合其他通信網路,在信息化過程中起核心作用,提供最好的連通性和信息共享,第一次提供了各種媒體形式的實時交互能力。
1-05 網際網路的發展大致分為哪幾個階段?請指出這幾個階段的主要特點。
答:從單個網路APPANET向互聯網發展;TCP/IP協議的初步成型
建成三級結構的Internet;分為主幹網、地區網和校園網;
形成多層次ISP結構的Internet;ISP首次出現。
1-06 簡述網際網路標准制定的幾個階段?
答:(1)網際網路草案(Internet Draft) ——在這個階段還不是 RFC 文檔。
(2)建議標准(Proposed Standard) ——從這個階段開始就成為 RFC 文檔。
(3)草案標准(Draft Standard)
(4) 網際網路標准(InternetStandard)
1-07小寫和大寫開頭的英文名字 internet 和Internet在意思上有何重要區別?
答:(1) internet(互聯網或互連網):通用名詞,它泛指由多個計算機網路互連而成的網路。;協議無特指
(2)Internet(網際網路):專用名詞,特指採用 TCP/IP 協議的互聯網路
區別:後者實際上是前者的雙向應用
1-08 計算機網路都有哪些類別?各種類別的網路都有哪些特點?
答:按范圍:(1)廣域網WAN:遠程、高速、是Internet的核心網。
(2)城域網:城市范圍,鏈接多個區域網。
(3)區域網:校園、企業、機關、社區。
(4)個域網PAN:個人電子設備
按用戶:公用網:面向公共營運。專用網:面向特定機構。
1-09 計算機網路中的主幹網和本地接入網的主要區別是什麼?
答:主幹網:提供遠程覆蓋\高速傳輸\和路由器最優化通信
本地接入網:主要支持用戶的訪問本地,實現散戶接入,速率低。
1-10 試在下列條件下比較電路交換和分組交換。要傳送的報文共x(bit)。從源點到終點共經過k段鏈路,每段鏈路的傳播時延為d(s),數據率為b(b/s)。在電路交換時電路的建立時間為s(s)。在分組交換時分組長度為p(bit),且各結點的排隊等待時間可忽略不計。問在怎樣的條件下,分組交換的時延比電路交換的要小?(提示:畫一下草圖觀察k段鏈路共有幾個結點。)
答:線路交換時延:kd+x/b+s, 分組交換時延:kd+(x/p)*(p/b)+ (k-1)*(p/b)
其中(k-1)*(p/b)表示K段傳輸中,有(k-1)次的儲存轉發延遲,當s>(k-1)*(p/b)時,電路交換的時延比分組交換的時延大,當x>>p,相反。
1-11 在上題的分組交換網中,設報文長度和分組長度分別為x和(p+h)(bit),其中p為分組的數據部分的長度,而h為每個分組所帶的控制信息固定長度,與p的大小無關。通信的兩端共經過k段鏈路。鏈路的數據率為b(b/s),但傳播時延和結點的排隊時間均可忽略不計。若打算使總的時延為最小,問分組的數據部分長度p應取為多大?(提示:參考圖1-12的分組交換部分,觀察總的時延是由哪幾部分組成。)
答:總時延D表達式,分組交換時延為:D= kd+(x/p)*((p+h)/b)+ (k-1)*(p+h)/b
D對p求導後,令其值等於0,求得p=[(xh)/(k-1)]^0.5
1-12 網際網路的兩大組成部分(邊緣部分與核心部分)的特點是什麼?它們的工作方式各有什麼特點?
答:邊緣部分:由各主機構成,用戶直接進行信息處理和信息共享;低速連入核心網。
核心部分:由各路由器連網,負責為邊緣部分提供高速遠程分組交換。
1-13 客戶伺服器方式與對等通信方式的主要區別是什麼?有沒有相同的地方?
答:前者嚴格區分服務和被服務者,後者無此區別。後者實際上是前者的雙向應用。
1-14 計算機網路有哪些常用的性能指標?
答:速率,帶寬,吞吐量,時延,時延帶寬積,往返時間RTT,利用率
1-15 假定網路利用率達到了90%。試估計一下現在的網路時延是它的最小值的多少倍?
解:設網路利用率為U。,網路時延為D,網路時延最小值為D0
U=90%;D=D0/(1-U)---->D/D0=10
現在的網路時延是最小值的10倍
1-16 計算機通信網有哪些非性能特徵?非性能特徵與性能特徵有什麼區別?
答:征:宏觀整體評價網路的外在表現。性能指標:具體定量描述網路的技術性能。
1-17 收發兩端之間的傳輸距離為1000km,信號在媒體上的傳播速率為2×108m/s。試計算以下兩種情況的發送時延和傳播時延:
(1) 數據長度為107bit,數據發送速率為100kb/s。
(2) 數據長度為103bit,數據發送速率為1Gb/s。
從上面的計算中可以得到什麼樣的結論?
解:(1)發送時延:ts=107/105=100s
傳播時延tp=106/(2×108)=0.005s
(2)發送時延ts=103/109=1µs
傳播時延:tp=106/(2×108)=0.005s
結論:若數據長度大而發送速率低,則在總的時延中,發送時延往往大於傳播時延。但若數據長度短而發送速率高,則傳播時延就可能是總時延中的主要成分。
1-18 假設信號在媒體上的傳播速度為2×108m/s.媒體長度L分別為:
(1)250px(網路介面卡)
(2)100m(區域網)
(3)100km(城域網)
(4)5000km(廣域網)
試計算出當數據率為1Mb/s和10Gb/s時在以上媒體中正在傳播的比特數。
解:(1)1Mb/s:傳播時延=0.1/(2×108)=5×10-10
比特數=5×10-10×1×106=5×10-4
1Gb/s: 比特數=5×10-10×1×109=5×10-1
(2)1Mb/s: 傳播時延=100/(2×108)=5×10-7
比特數=5×10-7×1×106=5×10-1
1Gb/s:比特數=5×10-7×1×109=5×102
(3) 1Mb/s: 傳播時延=100000/(2×108)=5×10-4
比特數=5×10-4×1×106=5×102
1Gb/s:比特數=5×10-4×1×109=5×105
(4)1Mb/s:傳播時延=5000000/(2×108)=2.5×10-2
比特數=2.5×10-2×1×106=5×104
1Gb/s:比特數=2.5×10-2×1×109=5×107
1-19 長度為100位元組的應用層數據交給傳輸層傳送,需加上20位元組的TCP首部。再交給網路層傳送,需加上20位元組的IP首部。最後交給數據鏈路層的乙太網傳送,加上首部和尾部工18位元組。試求數據的傳輸效率。數據的傳輸效率是指發送的應用層數據除以所發送的總數據(即應用數據加上各種首部和尾部的額外開銷)。
若應用層數據長度為1000位元組,數據的傳輸效率是多少?
解:(1)100/(100+20+20+18)=63.3%
(2)1000/(1000+20+20+18)=94.5%
1-20 網路體系結構為什麼要採用分層次的結構?試舉出一些與分層體系結構的思想相似的日常生活。
答:分層的好處:
①各層之間是獨立的。某一層可以使用其下一層提供的服務而不需要知道服務是如何實現的。
②靈活性好。當某一層發生變化時,只要其介面關系不變,則這層以上或以下的各層均不受影響。
③結構上可分割開。各層可以採用最合適的技術來實現
④易於實現和維護。
⑤能促進標准化工作。
與分層體系結構的思想相似的日常生活有郵政系統,物流系統。
1-21 協議與服務有何區別?有何關系?
答:網路協議:為進行網路中的數據交換而建立的規則、標准或約定。由以下三個要素組成:
(1)語法:即數據與控制信息的結構或格式。
(2)語義:即需要發出何種控制信息,完成何種動作以及做出何種響應。
(3)同步:即事件實現順序的詳細說明。
協議是控制兩個對等實體進行通信的規則的集合。在協議的控制下,兩個對等實體間的通信使得本層能夠向上一層提供服務,而要實現本層協議,還需要使用下面一層提供服務。
協議和服務的概念的區分:
1、協議的實現保證了能夠向上一層提供服務。本層的服務用戶只能看見服務而無法看見下面的協議。下面的協議對上面的服務用戶是透明的。
2、協議是「水平的」,即協議是控制兩個對等實體進行通信的規則。但服務是「垂直的」,即服務是由下層通過層間介面向上層提供的。上層使用所提供的服務必須與下層交換一些命令,這些命令在OSI中稱為服務原語。
1-22 網路協議的三個要素是什麼?各有什麼含義?
答:網路協議:為進行網路中的數據交換而建立的規則、標准或約定。由以下三個要素組成:
(1)語法:即數據與控制信息的結構或格式。
(2)語義:即需要發出何種控制信息,完成何種動作以及做出何種響應。
(3)同步:即事件實現順序的詳細說明。
1-23 為什麼一個網路協議必須把各種不利的情況都考慮到?
答:因為網路協議如果不全面考慮不利情況,當情況發生變化時,協議就會保持理想狀況,一直等下去!就如同兩個朋友在電話中約會好,下午3點在公園見面,並且約定不見不散。這個協議就是很不科學的,因為任何一方如果有耽擱了而來不了,就無法通知對方,而另一方就必須一直等下去!所以看一個計算機網路是否正確,不能只看在正常情況下是否正確,而且還必須非常仔細的檢查協議能否應付各種異常情況。
1-24 論述具有五層協議的網路體系結構的要點,包括各層的主要功能。
答:綜合OSI 和TCP/IP 的優點,採用一種原理體系結構。各層的主要功能:
物理層物理層的任務就是透明地傳送比特流。(注意:傳遞信息的物理媒體,如雙絞
線、同軸電纜、光纜等,是在物理層的下面,當做第0 層。)物理層還要確定連接電纜插頭的定義及連接法。
數據鏈路層數據鏈路層的任務是在兩個相鄰結點間的線路上無差錯地傳送以幀(frame)為單位的數據。每一幀包括數據和必要的控制信息。
網路層網路層的任務就是要選擇合適的路由,使發送站的運輸層所傳下來的分組能夠
正確無誤地按照地址找到目的站,並交付給目的站的運輸層。
運輸層運輸層的任務是向上一層的進行通信的兩個進程之間提供一個可靠的端到端
服務,使它們看不見運輸層以下的數據通信的細節。
應用層應用層直接為用戶的應用進程提供服務。
1-25 試舉出日常生活中有關「透明」這種名詞的例子。
答:電視,計算機視窗操作系統、工農業產品
1-26 試解釋以下名詞:協議棧、實體、對等層、協議數據單元、服務訪問點、客戶、伺服器、客戶-伺服器方式。
答:實體(entity)表示任何可發送或接收信息的硬體或軟體進程。
協議是控制兩個對等實體進行通信的規則的集合。
客戶(client)和伺服器(server)都是指通信中所涉及的兩個應用進程。客戶是服務的請求方,伺服器是服務的提供方。
客戶伺服器方式所描述的是進程之間服務和被服務的關系。
協議棧:指計算機網路體系結構採用分層模型後,每層的主要功能由對等層協議的運行來實現,因而每層可用一些主要協議來表徵,幾個層次畫在一起很像一個棧的結構.
對等層:在網路體系結構中,通信雙方實現同樣功能的層.
協議數據單元:對等層實體進行信息交換的數據單位.
服務訪問點:在同一系統中相鄰兩層的實體進行交互(即交換信息)的地方.服務訪問點SAP是一個抽象的概念,它實體上就是一個邏輯介面.
1-27 試解釋everything over IP 和IP over everthing 的含義。
TCP/IP協議可以為各式各樣的應用提供服務 (所謂的everything over ip)
答:允許IP協議在各式各樣的網路構成的互聯網上運行(所謂的ip over everything)
⑤ 計算機網路第七版謝希仁著課後習題答案!!!!跪求
詳細請見:網頁鏈接
⑥ 求解CSMA/CD的一道題!計算機網路第五版(謝希仁) 第3章25題!!高手救我啊!!!
在書的第83頁有圖3-18。在此題中匯流排被佔用時間為Tau+Tj(48)+Tau
⑦ 計算機網路第五版(謝希仁編著)的概論部分的習題解答
我的解答如下:
所需要的分組總數為x/p,則總的數據加上控制信息為(p+h)x/p (bit)。
源端發送這些數據需用時:(p+h)x/(pb)。
中間的路由器重傳最後一個分組所花的總時間:(k-1)(p+h)/b。
則總延遲為:(p+h)x/(pb)+ (k-1)(p+h)/b。
求該函數對p的導數,可得:-hx/(b*p^2)+(k-1)/b。
令導數為0,得:p=(hx/(k-1))^(1/2)。
則當p=(hx/(k-1))^(1/2)時能使總時延最小。
解答應該沒錯的,你可以檢查下。
⑧ 謝希仁計算機網路答案
答:a=τ/T0=τC/L=100÷(2×108)×1×109/L=500/L,信道最大利用率Smax =1/(1+4.44a),最大吞吐量Tmax=Smax×1Gbit/s幀長512位元組時,a=500/(512×8)=0.122, Smax =0.6486,Tmax=648.6 Mbit/s幀長1500位元組時,a=500/(1500×8)=0.0417,Smax =0.8438 ,Tmax=843.8 Mbit/s幀長64000位元組時,a=500/(64000×8)=0.000977,Smax =0.9957,Tmax=995.7 Mbit/s可見,在端到端傳播時延和數據發送率一定的情況下,幀長度越大,信道利用率越大,信道的最大吞吐量月越大。