前言
兩節結束,為網絡底層系列做鋪墊。
首先來看一張圖:
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位源地址和目的地址沒啥好說的。