免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      TCP/IP協(xié)議-IP協(xié)議

      TCP/IP協(xié)議-IP協(xié)議

      引言

      IP協(xié)議是TCP/IP協(xié)議族中最核心的協(xié)議,所有的TCP,UDP、ICMP以及IGMP等協(xié)議都以IP數(shù)據(jù)報的格式傳輸。IP協(xié)議提供最好的傳輸服務(wù),其提供無連接、不可靠的數(shù)據(jù)傳輸?;蛟S這句話讀起來很矛盾,為什么說是最好的傳輸服務(wù),但同時又是不可靠的呢。

      最好的傳輸可以認為IP協(xié)議會盡一切能力到達目的主機,若中途發(fā)生錯誤無法到達目的主機,也會返回一個ICMP錯誤報文。收到IP協(xié)議返回的錯誤報文后,本機就知道報文沒有成功到達目的主機。而接下來的傳輸可靠性,即重傳,則不屬于IP協(xié)議的范疇,而是通過TCP協(xié)議(或者自己實現(xiàn)的應(yīng)用層協(xié)議)來保證。

      不可靠是指即使傳輸過程中出現(xiàn)錯誤,IP協(xié)議并不負責處理報文重傳的工作,而是交給上層協(xié)議。

      無連接是指IP協(xié)議的首部中不保存維護任何關(guān)于后續(xù)數(shù)據(jù)報的相關(guān)狀態(tài)信息。

      3.2.IP首部

      IP數(shù)據(jù)報的格式如圖3-1:

      3-1

      版本:IP協(xié)議的版本號,IPV4即為4

      首部長度:包含任意選項,以32位字為單位的長度。由于是一個4比特字段,可知IP首部最長為16*4字節(jié),即64字節(jié)

      服務(wù)類型:包括一個3 bit的優(yōu)先權(quán)子字段(現(xiàn)在已被忽略),4 bit的TOS子字段和1 bit未用位但必須置0。4 bit的TOS分別代表:最小時延、最大吞吐量、最高可靠性和最小費用。4 bit中只能置其中1 bit。如果所有4 bit均為0,那么就意味著是一般服務(wù)。

      總長度:代表IP數(shù)據(jù)包的總長(包括其后承載的協(xié)議首部與用戶數(shù)據(jù)),由于其有16bit,單位為字節(jié)數(shù),可知IP數(shù)據(jù)報的總長度為65536字節(jié)。不過盡管IP首部允許其傳輸如此大的字節(jié)數(shù),以太網(wǎng)封裝的鏈路層也是不允許的,以太網(wǎng)封裝的鏈路層,最大允許承載的IP數(shù)據(jù)報長度為1500字節(jié)。并且主機也要求不能接收超過576字節(jié)的數(shù)據(jù)報。該限制不會影響到TCP協(xié)議,因為TCP協(xié)議會主動將數(shù)據(jù)包分段傳輸。

      標識:唯一的標識主機發(fā)送的每一份數(shù)據(jù)報,通常每發(fā)送一份數(shù)據(jù)報就會加1,在IP分片中起到順序重組的作用。

      標志:標志該報文類型,在IP分片中代表該報文是否是分片報文

      片偏移:分片報文中指明偏移量

      生存時間TTL:設(shè)置數(shù)據(jù)報可以經(jīng)過的路由跳數(shù),每經(jīng)過一個路由則減1,減到0仍為到達目的主機則丟棄該報文??山鉀Q黑洞路由,報文一直占用帶寬的問題。TTL最大值為255.

      協(xié)議:即指明IP首部后承載的協(xié)議類型,如ICMP/IGMP/TCP/UDP等,前文曾提到該字段。

      首部檢驗和:僅包括IP數(shù)據(jù)報首部的檢驗和,檢驗和的計算不包含其承載的IGMP/ICMP等協(xié)議的報文內(nèi)容。檢驗和可以檢驗IP數(shù)據(jù)報在傳輸過程中,首部是否出現(xiàn)的錯誤。RFC 1071包含了如何計算檢驗和的方法,感興趣可以了解。

      源IP地址:即前文所述的32位互聯(lián)網(wǎng)地址,代表報文的始發(fā)主機。

      目的ip地址:代表報文的目的主機。

      選項:是一個任選項,可以用作以下領(lǐng)域,但很少被使用。

      • 安全和處理限制(詳細內(nèi)容可參考RFC 1108)
      • 記錄路徑(即報文傳輸過程中,讓經(jīng)過的路由器記錄其地址)
      • 時間戳(即報文傳輸過程中,讓經(jīng)過的路由器記錄其時間與地址)
      • 寬松的源站選路(為數(shù)據(jù)報選定一系列必須經(jīng)過的IP地址)
      • 嚴格的源站選路(與寬松的源站選路類似,但是要求只能經(jīng)過指定的這些地址,不能經(jīng)過其他的地址)

      很少被使用且并不是所有的主機與路由器都實現(xiàn)了這些選項。值得注意的是選項字段必須是32位的整數(shù)倍,因為首部長度是32bit的整數(shù)倍。若未達到32位的整數(shù)倍,可以用0填充。

      3.3.IP路由選路

      IP協(xié)議提供的最本質(zhì)的服務(wù)之一就是為報文提供選路功能。

      IP層的路由功能存在兩種模式,一種是路由器模式,一種是主機模式。一般來說,主機是不作為路由器模式使用。

      路由器模式與主機模式的本質(zhì)區(qū)別在于系統(tǒng)是否轉(zhuǎn)發(fā)從網(wǎng)絡(luò)口接收進來的報文。若配置為主機模式,則對目的ip非本機的報文,系統(tǒng)做丟棄處理,而路由器則會去查找路由表(提供選路信息的轉(zhuǎn)發(fā)表),若查找到則將該報文從對應(yīng)的網(wǎng)絡(luò)接口轉(zhuǎn)發(fā)出去,轉(zhuǎn)發(fā)之前需要更改報文的源目MAC地址,且TTL-1(如前文所述,為了防止黑洞路由占用帶寬),若TTL被減為0,則做丟棄處理不轉(zhuǎn)發(fā)。兩種模式對于目的ip屬于本機或者為廣播地址(廣播地址即前文所述的5類互聯(lián)網(wǎng)地址中主機號為全1的互聯(lián)網(wǎng)地址)的報文,數(shù)據(jù)報就被送到由I P首部協(xié)議字段所指定的協(xié)議模塊進行處理。

      包含選路信息的路由表中,一般都包含以下這些信息:

      目的IP地址:可以是一個主機地址(即全掩碼的IP地址,主機號包含非0值,這種稱為主機路由),也可以是一個網(wǎng)絡(luò)地址(即非全掩碼的IP地址,主機號為全0,這種稱為網(wǎng)絡(luò)路由)

      下一跳路由器的IP地址或直連IP的網(wǎng)絡(luò)地址:下一跳路由器的IP地址即報文需要轉(zhuǎn)發(fā)到的下一個網(wǎng)絡(luò)接口的IP地址(這個網(wǎng)絡(luò)接口與當前的路由器直連);而直連IP的網(wǎng)絡(luò)地址會直接標明該網(wǎng)段IP地址的路由出口,報文直接從該出口轉(zhuǎn)發(fā)(前提是該報文的目的IP必須存在,可通過ARP報文探測驗證)。

      標志:指明路由的類型,例如路由是直連網(wǎng)絡(luò)地址還是真正的下一跳地址,路由時OSPF協(xié)議計算地址還是BGP協(xié)議學習地址等。

      網(wǎng)絡(luò)接口:為數(shù)據(jù)報傳輸指定一個網(wǎng)絡(luò)接口。

      IP路由選擇是逐跳地(hop-by-hop)進行的。從這個路由表信息可以看出,IP并不知道到達任何目的的完整路徑(當然,除了那些與主機直接相連的目的)。所有的I P路由選擇只為數(shù)據(jù)報傳輸提供下一站路由器的IP地址。它假定下一站路由器比發(fā)送數(shù)據(jù)報的主機更接近目的,而且下一站路由器與該主機是直接相連的。

      IP路由選擇主要完成以下這些功能:

    1. 搜索路由表,尋找能與目的IP地址完全匹配的表目(網(wǎng)絡(luò)號和主機號都要匹配)。如果找到,則把報文發(fā)送給該表目指定的下一站路由器或直接連接的網(wǎng)絡(luò)接口(取決于標志字段的值)。
    2. 搜索路由表,尋找能與目的網(wǎng)絡(luò)號相匹配的表目。如果找到,則把報文發(fā)送給該表目指定的下一站路由器或直接連接的網(wǎng)絡(luò)接口(取決于標志字段的值)。目的網(wǎng)絡(luò)上的所有主機都可以通過這個表目來處置。例如,一個以太網(wǎng)上的所有主機都是通過這種表目進行尋徑的。這種搜索網(wǎng)絡(luò)的匹配方法必須考慮可能的子網(wǎng)掩碼。關(guān)于這一點我們在下一節(jié)中進行討論。
    3. 搜索路由表,尋找標為“默認(default)”的表目。如果找到,則把報文發(fā)送給該表目指定的下一站路由器。
    4. 如果上面這些步驟都沒有成功,那么該數(shù)據(jù)報就不能被傳送。如果不能傳送的數(shù)據(jù)報來自本機,那么一般會向生成數(shù)據(jù)報的應(yīng)用程序返回一個“主機不可達”或“網(wǎng)絡(luò)不可達”(即IP協(xié)議附屬ICMP協(xié)議報文)的錯誤。

      圖3-2,是我在一個路由器查看路由表的結(jié)果:

      3-2

      S代表該路由時靜態(tài)配置,不是通過協(xié)議生成。重點關(guān)注標注的三條路由,分別是主機路由、網(wǎng)絡(luò)路由和默認路由。查表時,優(yōu)先查找主機路由表,若能匹配中,則報文直接按照查表結(jié)果轉(zhuǎn)發(fā)。若無法匹配中,則繼續(xù)查找網(wǎng)絡(luò)路由表,若匹配中網(wǎng)絡(luò)路由則按照查表結(jié)果轉(zhuǎn)發(fā)。若仍無法匹配中,查找是否存在默認路由,存在的話匹配默認路由轉(zhuǎn)發(fā)。若所有的都無法匹配中,那么丟棄該報文。

      舉個例子,一個目的IP是200.1.1.2的報文進來,那么直接命中主機路由表,報文直接按照查表結(jié)果,往下一跳網(wǎng)絡(luò)接口IP為192.168.3.1的路由器轉(zhuǎn)發(fā)。若進來的報文目的IP為200.1.1.3,那么無法命中主機路由表,而命中了網(wǎng)絡(luò)路由表,那么就往下一跳網(wǎng)絡(luò)接口IP為192.168.4.1的路由器轉(zhuǎn)發(fā)。若進來的報文目的IP為100.1.1.2,那么既不能命中主機路由表,也不能命中網(wǎng)絡(luò)路由表,只能命中默認路由,那么就往下一跳網(wǎng)絡(luò)接口IP為101.0.0.1的路由器轉(zhuǎn)發(fā).

      這里有人可能會疑問,明顯主機路由能更精確匹配,直接全部使用主機路由就完事了,為什么還需要網(wǎng)絡(luò)路由的存在。這里主要考慮的是資源容量問題,硬件資源是有限的,一個路由表不可能無限大,能讓你容納那么多的主機路由。因此,網(wǎng)絡(luò)路由是很有必要的,網(wǎng)絡(luò)路由的存在大大縮減了對路由表容量的要求。

      值得注意的是,在這個轉(zhuǎn)發(fā)過程中,報文中的目的IP地址始終都未修改(使用源路由選項時會修改,但這種情況很少出現(xiàn)),所有的路由決策都是通過這個目的IP來決策。

      3.4.子網(wǎng)尋址與子網(wǎng)掩碼

      現(xiàn)在所有的主機都要求支持子網(wǎng)尋址(RFC 950規(guī)定)。不再把一個互聯(lián)網(wǎng)IP地址單純的認作由網(wǎng)絡(luò)號與主機號組成,而是將主機號再次進行劃分,主機號分為子網(wǎng)號和主機號兩部分。這么做的主要好處在于使得互聯(lián)網(wǎng)地址的使用更加靈活,因為往往一個網(wǎng)絡(luò)號后是用不了這么多主機的,例如B類的互聯(lián)網(wǎng)地址,有16位的主機號,即可以包含2^16的主機數(shù)量,而往往這一個網(wǎng)絡(luò)號下不會存在這么多主機,存在極大的浪費。圖3-3展示了B類地址的一種子網(wǎng)編址方式。

      3-3

      這種對B類地址的子網(wǎng)劃分是比較典型的劃分方法,這種方式在利用點分十進制的方式表示IP地址時,可以很容易的區(qū)分子網(wǎng)號和主機號。大部分對互聯(lián)網(wǎng)地址的劃分都是對B類互聯(lián)網(wǎng)地址的劃分,其實對C類地址也是可以劃分的,只是C類地址的主機號本身只有8位,可用來劃分的位數(shù)較少。不止C類地址,A類地址也是經(jīng)常會被劃分。

      總結(jié)一句,這種劃分子網(wǎng)的方式非常靈活,不一定需要8位一個整體的劃分,可以通過子網(wǎng)掩碼來精確劃分到具體的位。例如一個A類地址表示成40.40.40.2/24,那么24就標識前24位屬于網(wǎng)絡(luò)號+子網(wǎng)號,而我們知道A類地址的網(wǎng)絡(luò)號只有8位,可以知道該地址的網(wǎng)絡(luò)號為前8位,即40,而子網(wǎng)號有16位,即40.40,主機號為2。掩碼有一種經(jīng)常使用的表示方法,40.40.40.2/24這個也可以等價表示為40.40.40.2 255.255.255.0,其中255.255.255.0就是我們所說的真正的子網(wǎng)掩碼。

      3.5.ifconfig命令與netstat命令

      既然我們已經(jīng)了解了所謂的IP地址與子網(wǎng)掩碼,那么在我們的主機上可以如何查看自己的網(wǎng)絡(luò)接口所屬的IP地址與相應(yīng)的子網(wǎng)掩碼呢。

      在unix系統(tǒng)與類unix系統(tǒng)(linux)上可以使用ifconfig命令查看相應(yīng)的ip地址,圖3-4是我在一個linux系統(tǒng)上用命令查看的結(jié)果

      3-4

      可以看到存在多個網(wǎng)絡(luò)接口,分別分配有B類地址,C類地址與環(huán)回地址,其中netmask即子網(wǎng)掩碼,可以發(fā)現(xiàn)在這臺主機上,子網(wǎng)掩碼與互聯(lián)網(wǎng)地址的網(wǎng)絡(luò)號位數(shù)相同。同時可以發(fā)現(xiàn),各個網(wǎng)絡(luò)接口的MTU最大值為1500(前文鏈路層所述,以太網(wǎng)接口的IP數(shù)據(jù)報MTU范圍為46-1500),而環(huán)回接口的MTU為65536,是IP首部所能承載的最大數(shù)據(jù)報字節(jié)數(shù)。這是因為環(huán)回接口接收的包是由本機發(fā)出,不需經(jīng)過網(wǎng)絡(luò)傳輸(前文TCP/IP簡介所述,MTU的限制與傳輸時延相關(guān)),因此可以發(fā)最大的IP數(shù)據(jù)報。

      除了ifconfig可以查詢本機網(wǎng)絡(luò)接口的信息,也可以通過netstat -in來查看主機的網(wǎng)絡(luò)接口與IP地址。

      3.6.小結(jié)

      本篇主要講述了

    5. IP首部的具體格式,并初步講述了各個字段的用途。
    6. IP的重要功能選路,講述了選路的原理,即根據(jù)報文的目的IP來查路由表,決策最終的報文出口。也大概講述了主機與路由器在處理報文時的差別。
    7. 介紹了子網(wǎng)以及子網(wǎng)掩碼的概念
    8. 講述了在系統(tǒng)上查閱主機網(wǎng)絡(luò)接口的兩條重要命令,ifconfig與netstat
    9. 鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      (0)
      用戶投稿
      上一篇 2022年6月17日 06:19
      下一篇 2022年6月17日 06:19

      相關(guān)推薦

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時間:周一至周五,10:30-18:30,節(jié)假日休息