Socket詳解(二)

上一篇文章介紹了TCP/IP四層中的傳輸層,本篇文章介紹網(wǎng)絡(luò)層。

何為網(wǎng)絡(luò)層?(互聯(lián)網(wǎng)層)


網(wǎng)絡(luò)層實現(xiàn)數(shù)據(jù)包的選路和轉(zhuǎn)發(fā),網(wǎng)絡(luò)層位于傳輸層的下一層,傳輸層的數(shù)據(jù)會交由網(wǎng)絡(luò)層來處理,網(wǎng)絡(luò)層會對數(shù)據(jù)進(jìn)一步進(jìn)行處理。會在傳輸層數(shù)據(jù)包的外層再套一層,加入源IP與目標(biāo)IP。結(jié)構(gòu)大概如下:

{IP包{TCP或UDP包{Data}}}

上文已經(jīng)講到傳輸層有TCP/UDP兩大協(xié)議,而在網(wǎng)絡(luò)層中主要有IP,ICMP,RIP,OSPF,BGP,IGMP等協(xié)議,本文中主要講解IP協(xié)議。

網(wǎng)絡(luò)層-IP協(xié)議


網(wǎng)絡(luò)層最核心的協(xié)議就是IP協(xié)議(Internet Protocol)IP協(xié)議根據(jù)數(shù)據(jù)包的目標(biāo)IP,將數(shù)據(jù)傳輸給目標(biāo)主機(jī)。如果數(shù)據(jù)包不能直接發(fā)送給目標(biāo)主機(jī),那么IP協(xié)議會查找合適路由器進(jìn)行轉(zhuǎn)發(fā),最終將數(shù)據(jù)包交付給目標(biāo)主機(jī)。傳輸流程可參考之前文章以太網(wǎng)簡單介紹。

IP包的數(shù)據(jù)長度為64kb(65535)這是因為一個IP包頭用2個字節(jié)來表示報文長度,而2個字節(jié)能表示的最大長度為1111 1111 1111 1111 = 0XFF = 65535

IP協(xié)議本身是為上層協(xié)議提供分割與重組報文功能的。因此在傳輸過程中,原則上講我們沒有必要去關(guān)心一個包的大小。但是實際上因為分割的IP包要使用標(biāo)識字段來進(jìn)行區(qū)分,而IP包的標(biāo)識字段不可能無限長。

在我們的數(shù)據(jù)傳輸過程中,為了加快傳輸速度和浪費不必要的流量。我們可以在開發(fā)過程中將報文信息控制在一個包內(nèi)。使用64KB-IP包頭長度-TCP/UDP包頭長度,便是我們一個包最大可傳輸?shù)膱笪拈L度。根據(jù)業(yè)務(wù)場景我們可以假設(shè)將這個報文長度控制在40KB。這樣即可以準(zhǔn)確的將一個信令控制在一個包內(nèi),又可以方便后期的一個報文擴(kuò)展。(具體是否需要控制要看實際業(yè)務(wù)場景)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容