兩節結束,為網路底層系列做鋪墊。
首先來看一張圖:
ios有七層,但是我們可以簡化層4層,ip屬於傳輸層,可以說是非常重要,下面簡單的做乙個介紹。
ip的介紹:
1.ip是tcp/ip 協議族中最為核心的協議。所以的tcp、udp、icmp及icmp資料都用ip資料報傳輸。
2.ip提供不可靠、無連線的資料報傳輸服務。
兩個特徵:
1.不可靠
2.無連線
不可靠就是說它不能保證ip包一定到目的地,比如在某個路由就丟了,這中可能性還是挺大的,但是會通知源目的位址,icmp告訴它這個ip資料報是怎麼丟的,至於後面怎麼處理就看自己了。
無連線很好理解,是這樣子的,無連線表示它不維護任何狀態,每個資料報都是獨立的,他們的到達順序和傳送順序不一定一致。比如說源位址傳送了10個包,它的目的就是到達目的地,目的地都不知道源位址要不要來,啥時候來。
同樣源位址發完後也不知道啥情況。
來看下ip頭部吧。
首先看下紅框這個:
ip版本號,這個現在有4和6,一般現在是ip4。
這個是首部長度,4位,最大為1111,也就是15,但是這裡的1表示1個位元組的,所以最大為60個位元組,所以可選項最大為40個位元組。
tos是什麼呢?
來看下這8位是啥?
前面3個位是ip優先順序。
看下後面4位是啥。
分別代表了最小延遲、最大吞吐量、最高可靠性、和最小費用。
其實設定了也沒啥用,因為經過這麼多路由,有些路由器不搭理是設定的,一般是自定義路由來用。
最後一位是用來補差的,沒啥用。
然後看一下16位總長度,這個是啥意思呢?
也很好理解,就是指這個ip的總長度唄,16位代表最大為65535,所以乙個ip包最大為65535,當然了會經過分片的。
這個16位的標識位是這樣子的,比如說作業系統發乙個包把這個包標識為1,下乙個ip包標識為2,每次加1作為標識。
這個有什麼作用呢?因為ip會分片,這個ip不管分為多少片,這個標識都是1這樣就好組裝。
這個顯示是3個位,其實用到的就兩個位。分別是df和mf。
這兩個代表什麼意思呢?比如ip包為2000,乙個路由分片規則是1500,這時候乙個路由器要分包。
如果設定df為1,那麼是什麼意思呢?就是告訴這個路由器不能分包,如果分包的話,就把這個包丟了吧,然後用icmp進行通知。
mf如果設定為1的話,代表的意思是這樣子的,比如乙個包分了10個,那麼最後乙個標識為mf表示分包結束。
再來看下13位偏移量,這個是啥子呢?
我們常常說吧ip包分為1、2、3、4包,但是呢ip包那樣這些啊。
是這樣來的,比如乙個包5000分為5個包,第乙個包偏移為0、第二個包偏移1000。。。。是這樣來的。
看下這個ttl,是這樣子的,假設設定為20,每經過乙個路由就減一如果到0就丟棄,這個作用是怕出現環形。
8位協議位,這個是什麼呢?就是這些tcp、udp、icmp的標識。1是icmp、tcp是6。
16位是檢驗位,就是用來檢驗的包是否完整的。
32位源位址和目的位址沒啥好說的。
為什麼說ip協議是無連線協議
面向無連線是通訊技術之一。是指通訊雙方不需要事先建立一條通訊線路,二是把每個帶有目的位址的包 報文分組 送到線路上,由系統自主選定路線進行傳輸。在發包之前,不需要建立與對端目標位址之間的連線。上層如果有傳送給ip的資料,該資料會立即被壓縮成ip包傳送出去。1 為了簡化 2 為了提速 面向連線與無連線...
什麼是http協議 一
http協議是大家在網際網路中最為熟悉的協議,只要上網大家都會遇到,但是,很多人被問道什麼是http協議,http協議的內容是什麼就懵了。這裡,我們隨便聊聊http協議。首先,我們說說協議。我一直覺得 協議 這詞不是很好理解,協商以後達成的決議,其實,就是規定,輪不到使用者協商的規定,就像本朝的法律...
什麼是HTTP協議?什麼是HTTPS協議?
什麼是http協議?什麼是https協議?1.http和https的區別 區別 2.對稱加密和非對稱加密 對稱加密 非對稱加密 3.建立連線 4.三次握手和四次分手 5.一次完整的http事務流程 6.dns網域名稱解析 解析過程 7.tcp協議如何來保證傳輸的可靠性 對於可靠性,tcp通過以下方式...