Re: [課業] 網路概論 Layer 2 與 Layer 4 疑問

作者: fcouple (盲人騎瞎馬,夜半臨深池)   2015-02-03 10:31:23
註:用手機看,版面會跑掉哦,不好意思,已經盡量縮小了。
各位神人,大家早:
填鴨式教育,造就今天的結果,我的疑問,就是在反抗填鴨。
老師是這樣教的:
Layer 2:
切成 frame
Point to Point
Error Check
Congestion Control
Layer 4:
切成 segment
End to End
Error Check
Flow Control using Sliding Window,有用 ARQ 沒明講
所以刻板印象中,Sliding Window 就是在 Layer 4,ARQ 也在
Layer 4。
昨天在讀 Layer 2 時,看到三組 ARQ 是歸類在第二層,起初懷
疑自己筆記有錯,去查聖經,它也是歸在 Layer 2 (我的筆記是
讀聖經本的心得整理)。
於是,疑問就來了:
Layer 2 有用到 ARQ?
sliding window 第二層也有囉?
順便帶出第三個問題,Layer 4 Sliding window 中指的「封包」
到底原文是什麼? packet 還是 segment
以上是解釋為什麼我會這樣問。
================== 分隔線 ==================
底下,統整神人們的知識 + 自己查證。
sliding window 第二層也有囉?
答:有。
sliding window 事實上就是程式中的動態長度陣列區塊罷了,就像
Queue、Stack 通常在程式中,也是用陣列來實作。
我的大學專題是在 Linux 底下用 SCTP/IPv6 寫通訊程式,socket
programming 就那幾個步驟,錯不了。
專業的說法,底層的東西不會講「socket programming」,通常以
「stack、驅動程式」去稱呼它。
透過 sliding window 的緩衝機制,讓原本 TCP 的 segment 雖然
「不是依序到達 Receiver」,經過 sliding window 的幫忙,可以
「等到完整連續 segment 都收到後,往上層送」,造成依序到達
的效果。
沒有人規定 Layer 4 才能有 buffer,就像燒錄機,燒錄程式也有
用到 buffer,整個電腦世界到處都可見到 buffer 的蹤跡。
所以 Layer 2 也有使用。
Layer 2 有用到 ARQ?
答:有,且 Layer 4 應該也有。
Sliding Window 沒辦法處理掉包,通知 Sender 我沒有收到、遺失
所以必須靠 ARQ
Sliding Window 與 ARQ 就像手機與電池,各有各的功能,但通常
合在一起使用。
更精確的說:
ARJ、ARQ 是送、收二端偵測到錯誤後,協調重傳的協定。
Automatic Request reJect (ARJ)
Receiver 沒看到封包,告訴 Sender 我沒收到。
如果線路是斷的,會造成 Receiver、Sender 不停的在傳資料
,浪費系統資源。(很大的缺失)
Automatic Request reQuest (ARQ)
Receiver 收到封包,告訴 Sender 請傳下一個封包。
線路是斷的,不會像 ARJ 那般有缺失。
由於 ARJ 有缺失,所以通常我們只常看到 ARQ
塔配上 Sliding Window 後,就衍生出三種 ARQ
stop and wait ARQ
go back N ARQ
selective repeat ARQ
老生常談,不講這三種裡面運作。
另外,我所說的「Layer 4 不敢明講有用到」
stop and wait ARQ
go back N ARQ
selective repeat ARQ
可能是我的書是這樣,讀電資系的大神,就別生氣了。
但我讀的不止一本,至少三本有了吧。
真的遇到不敢明講。
Layer 4 Sliding window 中指的「封包」到底原文是什麼? packet 還是 segment
答:segment
根據 nobunagaoda 大神的說法,起初我不太相信,不過別急著爭,查查
http://www.rhyshaden.com/tcp.htm
At the Transport Layer (equivalent to Layer 4 in the OSI model), two
protocols exist:
TCP (Transfer Control Protocol) -
breaks information into datagrams and sends them, carrying out resends,
if required, and reassembles received datagrams, it gives 'reliable'
delivery,
a connection-oriented service between applications.
UDP (User Datagram Protocol) -
does the same as TCP but it does not carry out any
checking or resending of datagrams, so it is described as 'unreliable', a
connectionless service (See UDP).
IP Datagrams are 'connectionless', however the TCP segment is
'connection-oriented'.
這裡只是要順便講我口中「不敢明講」的意思
「TCP:breaks information into datagrams」
所以他的 datagram 想指誰? Packet? Segment? 這篇看不出來。
再查
http://repo.hackerzvoice.net/depot_madchat/ebooks/TCP-IP_Illustrated/
tcp_bulk.htm
裡面就清清楚楚講「segment」。
nobunagaoda 大,跌破眼鏡,我有好長一段時間以為 Layer 4 Sliding window
是切 packet
附帶一提:
Sliding Window 有沾到流量控制一點點的邊,比較主要是由 slow start 那段
機制在處理
註:
通常英文中會以 datagram 統稱 frame、packet、segment,不過,當你遇到
UDP 的 datagram 與 統稱的 datagram 時,就要靠前後文去解決,不然會搞
混。
中文常以「封包」來做統稱,一樣會有搞混的問題。
註:
我可以自己弄懂就好,默不作聲。
也可以丟句謝謝就好,走人。
但我花了三個小時,打這篇,統整一下,想用這種方式,謝謝神人。
順便幫助路過的同學,做做功德,打趴一個算一個,增加上榜機會,這心態
不可取。
註:
我做筆記方法:一本書主義,疑問時,輔以多本書、查網路、問人
註:
弓大、malowda,我一直以為 window size = 1 是「stop and wait ARQ」耶
window size = 1 也可以 go back N ARQ 還沒弄懂,想辦法中。
註:
上榜者經驗說,我們在考試,不是在做研究。
我還記得那個人比喻:把國考當研究所在讀,年年考不上。
分寸很難拿捏,不過我想應該差不多了吧,我不會再拿 RFC 出來啃,也不
會再去翻 OSI 原文 ....
老話一句:
祝大家都上榜。祝上榜的工作順利,年終拿甲。謝謝。
作者: gary22204 (大頭蛇)   2015-02-03 10:40:00
剛剛打到一半斷線,結果你手腳很快已經查了XDDD第二層其實有協定直接用到ARQ,好像是HDLC家族之類,早期的第二層點對點協定有,其實無線網路也有類似的模式TCP是介於SR跟GBN中間的ARQ,這幾種都要分開背,說不定會問你TCP跟哪個比較像要你解釋這樣我是覺得如果連英文維基都查不到的話,其實就可以不用查了,這是唸到最後的心得,畢竟有些題目也是亂出的XDD對了,window size的大小傳送端跟接收端是不一樣的每一種的兩方大小都不一樣,都要整理起來背喔!! 加油
作者: fcouple (盲人騎瞎馬,夜半臨深池)   2015-02-03 10:55:00
啊,對吼,兩邊分開。冏了。等等,window size「通常」是由 receiver 決定大小若 receiver 決定 size=1,應該是 stop and wait 吧
作者: gary22204 (大頭蛇)   2015-02-03 11:26:00
GBN的傳送端size是n,接收端好像是1,總之都不一樣喔
作者: nobunagaoda (清華必勝)   2015-02-03 23:53:00
Go Back N的接收跟傳送端的window size的確不同

Links booklink

Contact Us: admin [ a t ] ucptt.com