計算機經過網絡接口設備好比網絡適配器與網絡進行通訊,網絡接口設備具備惟一的物理地址,用於接收發向該地址的數據。像以太網網卡這樣的設備對於上層協議層的細節是一點也不瞭解的,它不知道IP地址,它只是監聽是否收到了數據幀,發現其中目標地址與本身物理地址相符的幀,並把這個幀傳遞給上層協議棧。緩存
這種物理尋址方式適合單個局域網網段。由不間斷介質鏈接在一塊兒的若干臺計算機利用物理地址就能夠實現所需的功能。網絡
可是,在路由式網絡中,不能利用物理地址實現數據傳輸,由於根據物理地址進行傳輸所需的過程不能跨越路由接口來運行。即便這樣是可行的,根據物理地址傳輸數據也是很是麻煩的,由於內置在網卡里的固定物理地址不能在地址空間上引入邏輯結構測試
所以,TCP/IP隱藏了物理地址,以一種邏輯化的尋址方式對網絡進行組織。這個邏輯尋址方案由網際層的IP協議維護。ARP是另外一種網際層協議,它維護一個表格,用於把IP地址映射到物理地址。這個ARP錶鏈接了IP地址與網卡物理地址。調試
發送數據的過程:排序
IP協議提供了一種分層的、與硬件無關的尋址系統,具備在複雜的路由式網絡中傳遞數據所需的服務。每一個網絡適配器都有一個惟一的IP地址接口
IP地址分爲兩個部分:ip
主機ID內存
C類地址使用前24位做爲網絡ID路由
每一個IP數據報都以一個IP報頭開始。源計算機構造這個報頭的目的是TCP軟件利用IP報頭中封裝的信息處理數據。IP報頭的最小長度是20字節。報頭字段以下:同步
IP地址是一個32位的地址,被分爲4個8位段(八位組)。人們不習慣使用32位的二進制地址或8位的二進制八位組,因此IP地址最經常使用的表達形式是「點分十進制形式」。在這種形式裏,每一個八位組都以相應的十進制數值表示,4個十進制數值以句號分割。
IP地址一部分是網絡ID,另外一部分是主機ID。劃分網絡ID和主機ID最初方案是使用地址分類。最近出現的CIDR無類別尋址下降了地址分類的重要性,但做爲理解TCP/IP尋址的一個出發點,地址分類仍是值得討論的。
地址分類系統把IP地址劃分到不一樣的地址類。絕大多數IP地址屬於如下幾類
關於D類和E類地址:
怎麼判斷二進制地址的前幾個位說明了地址屬於哪一類?
全0的主機ID表示網絡自己。好比IP地址129.152.0.0是指網絡ID爲129.152的B類網絡。
全1的主機ID表示廣播。廣播是向網絡中所有主機發送的消息。IP地址129.152.255.255就是網絡ID爲129.152的B類網絡的廣播地址
以十進制127開頭的地址是環回地址。目的地址爲環回地址的消息是由本地軟件發送的,其目的在於測試TCP軟件是否工做正常
RFC1597保留了一些IP地址範圍用於私有網絡,其設想是,這些私有網絡不會鏈接到internet,因此沒必要要求是惟一的。目前,這些私有地址範圍常常用於「網絡地址轉換」設備背後的受保護網絡。
因爲私有地址範圍沒必要與其他地址同步,因此整個地址範圍對於任何網絡都是可用的,網絡管理員利用這些私有地址能夠得到更大的子網空間和可用地址範圍。
網段上每臺主機在內存中都保存着一個被稱爲ARP表或ARP緩存的表格,其中包含網段上其餘主機IP與其物理地址對應關係。當主機須要向網段上的其餘主機發送數據時,它會查看ARP緩存來得到目的的物理地址。若是要接收數據的地址當前並不存在於ARP緩存,主機就會發送一個名爲ARP請求幀的廣播。
ARP請求幀包含未解析的IP地址,還包含發送這個請求的主機IP和物理地址。網段上的其餘主機接收到這個ARP請求,未解析IP地址的主機會向發出請求的主機發送主機的物理地址。這個新的IP地址與物理地址的對應關係就會添加到請求主機的ARP緩存裏。
通常來講,ARP緩存裏的條目在必定時間以後會過時,條目就會被從表裏刪除。當主機須要向這個條目所包含的IP地址發送數據時,解析過程會再次重複
RARP的含義是逆向ARP,也就是ARP的逆過程。當咱們知道IP地址而不是物理地址時,可使用ARP;而在知道物理地址而不知道IP地址時,則應使用RARP。
發送到遠程計算機的數據一般會通過一個或多個路由器,這些路由器在把數據傳輸到最終目的地的過程當中可能發生多種問題。路由器利用Internet控制消息協議(ICMP)消息把問題通知給源IP。ICMP還有用於其餘調試和排錯的功能。
下面列出了最多見的ICMP消息: