一.引言:
IP是TCP/IP協議族中最為核心的協議,所有的TCP,UDP,ICMP和IGMP資料都以IP資料報格式傳輸。要注意的是,IP不是可靠的協議,這是說,IP協議沒有提供一種資料未傳達以後的處理機制--這被認為是上層協議--TCP或UDP要做的事情。所以這也就出現了TCP是一個可靠的協議,而UDP就沒有那麼可靠的區別。
二.IP首部:
IP資料報格式如下,普通的IP首部長為20個位元組,除非含有選項欄位
四個位元組的32bit,首先是0-7bit,8-15,16-23,24-31
服務類型TOS,其中3位是優先權欄位(已經忽略),4bit的TOS分別代表最小延時,最大輸送量,最高可靠性和最小費用。
Te l n e t和R l o g i n這兩個互動應用要求最小的傳輸時延,因為人們主要用它們來傳輸少量的互動資料。另一方面, F T P檔案傳輸則要求有最大的輸送量。最高可靠性被指明給網路管理(S N M P)和路由選擇協議。使用者網路新聞( Usenet news, NNTP)是唯一要求最小費用的應用。
ICMP,IGMP,UDP,TCP在它們格子的首部中均含有同時覆蓋首部和資料檢驗和碼。
I C M P、I G M P、U D P和T C P都採用相同的檢驗和演算法,儘管T C P和U D P除了本身的首部和資料外,在I P首部中還包含不同的欄位。在RFC中有關於如何計算I n t e r n e t檢驗和的實現技術。由於路由器經常只修改 T T L欄位(減1) ,因此當路由器轉寄一份報文時可以增加它的檢驗和,而不需要對 I P整個首部進行重新計算。 R F C為此給出了一個很有效方法。
三IP路由選擇:
當一個IP資料包準備好了的時候,IP資料包(或者說是路由器)是如何將資料包送到目的地的呢?它是怎麼選擇一個合適的路徑來"送貨"的呢?
最特殊的情況是目的主機和主機直連,那麼主機根本不用尋找路由,直接把資料傳遞過去就可以了。至於是怎麼直接傳遞的,這就要靠ARP協議了,後面會講到。
稍微一般一點的情況是,主機通過若干個路由器(router)和目的主機串連。那麼路由器就要通過ip包的資訊來為ip包尋找到一個合適的目標來進行傳遞,比如合適的主機,或者合適的路由。路由器或者主機將會用如下的方式來處理某一個IP資料包
- 如果IP資料包的TTL(生命週期)以到,則該IP資料包就被拋棄。
- 搜尋路由表,優先搜尋匹配主機,如果能找到和IP地址完全一致的目標主機,則將該包發向目標主機
- 搜尋路由表,如果匹配主機失敗,則匹配同子網的路由器,這需要“子網路遮罩(1.3.)”的協助。如果找到路由器,則將該包發向路由器。
- 搜尋路由表,如果匹配同子網路由器失敗,則匹配同網號(第一章有講解)路由器,如果找到路由器,則將該包發向路由器。
- 搜尋陸遊表,如果以上都失敗了,就搜尋預設路由,如果預設路由存在,則發包
- 如果都失敗了,就丟掉這個包。
這再一次證明了,ip包是不可靠的。因為它不保證送達。
路由表中的每一項都包含下面這些資訊。
1目的IP地址
2下一站路由器
3標誌是網路地址還是主機地址,標誌下一站路由器是否為真正的下一站路由器
4為資料報的傳輸指定一個網路介面
四.子網定址:
IP地址的定義是網路號+主機號。但是現在所有的主機都要求子網編址,也就是說,把主機號在細分成子網號+主機號。最終一個IP地址就成為 網路編號+子網號+主機號
五.子網路遮罩:
C類地址的子網路遮罩是255.255.255.0
B類地址的子網路遮罩是255.255.0.0
...以此類推
子網路遮罩轉化為二進位,為一的代表網路位,以零的代表主機位
IP AND 子網路遮罩=網路號
IP AND 子網路遮罩取非=主機號
2的主機號位(0的部分)=主機數
下面是兩個具體的例子:
a.欲將B類IP地址168.195.0.0劃分成27個子網
解1)27化成二進位=11011
2)該二進位為5位元,所以N=5
3)將B類地址的子網路遮罩的255.255.0.0的主機地址前5位置1,得到255.255.248.0.即為劃分27個子網的B類IP地址168.195.0.0的子網路遮罩
b.欲將IP地址168.195.0.0劃分為若干子網,每個子網有700台主機
解1)700化為二進位=1010111100
2)該二進位位元=10,即N=10
3)將B類地址的子網路遮罩255.255.0.0的後面10位變成0,得255.255.252.0,即為劃分成主機700台的B類IP地址168.195.0.0的子網路遮罩
六.兩個命名
1ipconfig/all(windows),ifconfig(linux)
2netstat
小結:
如果目的主機在直接相連的網路上,那麼就把資料報直接傳給目的主機,否則傳給預設路由器。在進行路由選擇決策時,主機和路由器都使用路由表。在表中有三種類型的路由:特定主機型、特定網路型和預設路由型。路由表中的表目具有一定的優先順序。在選擇路由時,主機路由優先於網路路由,最後在沒有其他可選路由存在時才選擇預設路由。
I P路由選擇是通過逐跳來實現的。資料報在各站的傳輸過程中目的 I P地址始終不變,但是封裝和目的鏈路層地址在每一站都可以改變。大多數的主機和許多路由器對於非本網的資料報都使用預設的下一站路由器。
兩個小題:
202.105.192.0/24沒有劃分子網,C類IP地址,子網路遮罩為255.255.255.0,/24為掩碼位元
問題:分配給某校園網的地址塊是202.105.192.0/18,該校園網包含多少個C類網路?
解,因為次IP是C類IP地址,且掩碼位元不為24,則劃分了子網。
1.IP地址=網路號+子網號+主機號
2.網路號和子網號全是1,主機號全是0
3.因為子網路遮罩位元代表的全是1
4.所以子網位元=子網路遮罩位元(24)-子網路遮罩位元(18)=6
5.所以包含了2的6次方-2個網路,除去一個全0和全1的情況。
補充:
屬於同一個網段的兩台主機進行通訊是不需要通過路由器的,除了一種情況,使用了VLAN,虛擬區域網路。
以C類IP地址為例:C類IP地址的子網路遮罩為255.255.255.0
IP地址=網路號+主機號------》IP地址=網路號+網路ID+主機ID這個時候就是劃分了子網,使用VLAN,這個時候的,兩台主機通訊的時候,是要通過路由器的。
當掩碼為24的時候,沒有劃分子網。
當掩碼為26的時候,劃分了2的2次方,劃分了4個子網,此時主機數為2的6次方-2台
當掩碼為22的時候,劃分了C類網路,劃分了2的2次方,即4個C類網路(這個並不是虛擬)。