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

看板Examination作者 (皇家典藏20年禮炮)時間11年前 (2015/02/03 10:31), 11年前編輯推噓3(3011)
留言14則, 3人參與, 最新討論串4/5 (看更多)
註:用手機看,版面會跑掉哦,不好意思,已經盡量縮小了。 各位神人,大家早: 填鴨式教育,造就今天的結果,我的疑問,就是在反抗填鴨。 老師是這樣教的: 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 原文 .... 老話一句: 祝大家都上榜。祝上榜的工作順利,年終拿甲。謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.76.33.33 ※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1422930689.A.658.html ※ 編輯: fcouple (211.76.33.33), 02/03/2015 10:34:45

02/03 10:40, , 1F
剛剛打到一半斷線,結果你手腳很快已經查了XDDD
02/03 10:40, 1F

02/03 10:41, , 2F
第二層其實有協定直接用到ARQ,好像是HDLC家族之類,早
02/03 10:41, 2F

02/03 10:42, , 3F
期的第二層點對點協定有,其實無線網路也有類似的模式
02/03 10:42, 3F

02/03 10:43, , 4F
TCP是介於SR跟GBN中間的ARQ,這幾種都要分開背,說不定
02/03 10:43, 4F

02/03 10:44, , 5F
會問你TCP跟哪個比較像要你解釋這樣
02/03 10:44, 5F

02/03 10:46, , 6F
我是覺得如果連英文維基都查不到的話,其實就可以不用
02/03 10:46, 6F

02/03 10:46, , 7F
查了,這是唸到最後的心得,畢竟有些題目也是亂出的XDD
02/03 10:46, 7F

02/03 10:51, , 8F
對了,window size的大小傳送端跟接收端是不一樣的
02/03 10:51, 8F

02/03 10:51, , 9F
每一種的兩方大小都不一樣,都要整理起來背喔!! 加油
02/03 10:51, 9F

02/03 10:55, , 10F
啊,對吼,兩邊分開。冏了。
02/03 10:55, 10F

02/03 10:56, , 11F
等等,window size「通常」是由 receiver 決定大小
02/03 10:56, 11F

02/03 10:57, , 12F
若 receiver 決定 size=1,應該是 stop and wait 吧
02/03 10:57, 12F

02/03 11:26, , 13F
GBN的傳送端size是n,接收端好像是1,總之都不一樣喔
02/03 11:26, 13F

02/03 23:53, , 14F
Go Back N的接收跟傳送端的window size的確不同
02/03 23:53, 14F
文章代碼(AID): #1Kq3C1PO (Examination)
討論串 (同標題文章)
文章代碼(AID): #1Kq3C1PO (Examination)