計算機網路中,為什麼要把待傳輸的資料分成資料塊後再進行傳輸

時間 2021-05-30 18:16:56

1樓:

我覺得這個問題和屎為什麼不是一整根差不多…拉了十分之九斷了怎麼辦?要不要接上繼續拉完那十分之一?

估計設計之初,由於網速限制,怕傳一半斷了,對資料進行了拆分,現在其實有一些巨型幀,一次能拉一大根…沒詳細看過資料,大概是為了減少對資料的處理次數,從而提公升效率…

另外,資料傳輸的本質還是01變化,它本身就是不連續的,沒有必要非得讓資料傳輸連續…

個人胡扯,不喜輕噴

2樓:Chaos

資料分塊就不說了,小胖大神已經說的很好了。就說說接收方是怎麼重組資料的吧。重組資料一般依靠一串有規則數字(如,序號)比如tcp協議欄位中的sequence number。

打個比方,你去吃飯排隊,服務員給了你乙個排號單,按順序一次進去餐廳就餐。如果有拿著靠後號碼的人來了,服務員看到了,就會想:咦?

怎麼小號碼的顧客還沒來就餐呢?這樣,拿著大號碼的顧客就只能暫時先等著,等前面的顧客來了,他才能進去餐廳。這樣不就達到了按順序組報的效果嗎?

3樓:「已登出」

在計算機中,經常需要傳輸大檔案,這些大檔案不可能一下子傳輸過去,這就涉及到MTU和視窗的問題,這部分是TCP協議幹的事情,並且TCP和UDP最大的區別就在於對資訊的重傳校驗機制,這個重傳校驗機制是保證資料在網路中有效且正確傳輸的重要保障。

先說為什麼要分塊,設想一下,乙個上G的檔案在網路中傳輸,中間要經過很多的路由器和交換機,還有物理鏈路,這些過程難免會發生資料的丟失和錯亂,一旦發生丟失,要麼接收方接收的是乙個錯誤的檔案,要麼將這個大檔案整體重傳,對於網路是乙個很大的開銷,甚至會導致網路崩潰,因此,在網路傳輸中,需要將檔案分成若干個部分進行傳輸。

這裡就涉及到乙個叫做MTU的概念,最大傳輸單元。MTU的範圍是64Byte~1546Byte,在網路傳輸的過程中,資料不可能不發生錯誤,雖然發生錯誤的概率是億分之一,但是不可能為零,因此,在發生錯誤之後一定需要重傳。在資料傳輸之前,TCP需要對資料進行封裝,TCP頭包含了源目IP位址、資料長度等等,這些資訊加起來總共是46Byte。

試想,如果資料過短,資料還沒到達下一跳路由器,資料就已經傳送完了,假若資料傳送完畢,發射路由器沒有接收到報錯資訊,路由器就會認為這乙個資料報已經正確傳送,就會處理下乙個資料報,因此,必須在上乙個資料報沒有傳送完畢之前,到達目的路由器,因此資料報的長度不能過短,規定至少64Byte,也就是說,除去46Byte的TCP報頭,至少要包含16Byte的資料。MTU最大1546Byte,也就是說,資料最長1500Byte,這是防止資料長時間占用鏈路,以及避免需要重傳的資料過大規定的。

好了,現在,我要通過網路給對方傳輸乙個大小為1GB的檔案,那麼,這個檔案在我的機子上會被切割成乙個個大小為16~1500Byte的資料塊,TCP協議的最大好處是會對資料進行校驗和排序,切割完成後,TCP給每乙個資料塊新增TCP報頭,包含了源目IP位址,資料報長度,等等,按照檔案順序給每個資料報編號,1,2,3等等,編號完成之後,雙方經過三次握手建立連線,之後檢視視窗大小,視窗大小一般是3,意思是你一次性最多傳遞3個資料報。對方告訴我,我需要編號為1,2,3的三個資料報,傳送方將編號為1,2,3的三個資料報給對方傳過去,對方收到之後,按照編號的順序將這個三個資料報排序,因為由於網路的原因,有可能網路不穩定,傳送方是按照1,2,3的順序傳出去的,但是接收方接收的順序可能是2,3,1,這樣一來顯然會打亂檔案順序,造成檔案損壞,因此,TCP會在接收方按照1,2,3的順序將這三個資料報按順序排列好。好了,現在,接收方告訴傳送方,我需要編號4,5,6的資料報,傳送方將這三個資料報發給對方,可是由於網路的原因,接收方只接收到4和6,沒有5,接收方發現了這個問題,跟傳送方說,我需要編號為5的資料報,這次,傳送方會單獨傳送5。

這就是校驗和重傳的機制。直到對方收到5為止,假若請求了三次都沒收到5,那麼,這次傳輸失敗。收到5之後,接收方會要求7,8,9等等。

到達接收方,會順著OSI模型將資料報一層層分解,然後到達應用層,重新組裝成為乙個完成的檔案。

4樓:愛吃棉花糖

乙太網在物理層就是根管子,姑且認為就一條管子,聯著所有計算機的乙太網卡

這根管子被規定為同一時間只能有乙個計算機的網絡卡傳送資料,那麼在大家都是平等的前提下,乙太網在通訊鏈路裡使用了一種比較謙虛的約定,類似如果發現網絡卡要使用,就讓它先用,如果使用過程中發現不止自己在用,那大家都回家坐冷板凳讓別人用,這種模式要很好的落實,就得規定每次使用的最大時長,而且這個時長得足夠小,這樣才能讓大家在單位時間裡都可以使用到,通道使用的時長是跟資料大小有直接關係,科學家們在隨後的探索中發現最佳時長的資料(幀)大小為1500個位元組,加上以太幀的頭尾實際是1518byte

通道、 鏈路,再上面的就是網路層協議,它們所承載的資料會在鏈路層分為一塊塊的幀,同理,鏈路層接受到的幀也會乙個個交給對應的協議,合併為報文,然後再往上,乙個或多個報文會合併為乙個訊息,這個訊息就是傳送或接受的資料了

十二年前工作接觸過,不一定對

5樓:八里土人

就網路層來說,2個原因:

IP網路(或其他資料網路),是非連線的。傳輸路徑不固定,且不預留,需要時幫忙傳一下。

網路是共享的。網路裡有很多人互相傳資料,你乙個人占用太長時間,別人怎麼辦

如果想連續一次傳完,可以用專線的方法,或者撥號(例如傳真)。

如果算上其他層,那麼乙個原因就是出錯成本問題。

如果不分塊,意味著整個資料只要乙個bit出錯,就會毀掉整個系統,整個重傳。你說可以做校驗,每個校驗都是分了塊的,最小也是分8bit的塊了。分塊以後,每次出錯可以只重傳乙個小塊。

物理層有bit或byte的校驗,MAC層有幀校驗,網路層有包校驗。

6樓:哲楊

分塊是TCP協議屬於資料傳輸層的內容分塊的乙個考慮是網路擁堵的問題 TCP是可靠傳輸分塊標記才能做到可靠傳輸(有反饋) 恢復資料檔案就是向上層提交網路是分層的物理層資料鏈路層網路層運輸層應用層應用層把資料給運輸層運輸層封裝後給網路層接收後則相反提取出來可以了還涉及套接字等內容

計算機網路該怎麼學?

安陽 首先先想想怎麼ping通網路,那麼每次開啟網頁之後,為什麼使用者從來都不用ping什麼內容,是不是因為中間有伺服器幫咱們做了這一步的內容。而伺服器用的是什麼樣的協議,不同的協議代表著什麼不同的伺服器處理?如果是網頁的話,是不是會有http和https 的區別,然後用WEB伺服器解析。而瀏覽器如...

計算機網路面試中常考什麼?

小麥1212 看了下,好像很多面試都喜歡問tcp,問題是你讓面試官系統的講一遍tcp估計也困難,所以也只能是拿一些最基礎的問題濾一下人了 連修明 我剛剛面試完,把我遇到的網路問題說一下。1.乙個伺服器,乙個客戶端。現在客戶端用write函式給伺服器發了乙個字串,write函式成功返回,請問現在伺服器...

這個計算機網路題為什麼選B?

weiyu 子網掩碼 255.255.255.224 轉化為二進位制11111111.11111111.11111111.11100000 27 與子網掩碼相與,網路位址為00001010.01101110.00001100.00000000 即10.110.12.0 雖然A選項的位址與子網掩碼相與...