16进制数用空格分开 tcp_面试时,你是否被问到过TCP/IP协议?
點擊藍字
關注我們
看到這句話,有沒有感到很熟悉呀?相信很多人在面試的時候都被要求,很多人會覺得我們在實際開發中一般用不到這些知識,所以對這些東西不屑一顧。
但是小編認為想要成為一個完美的網工,那么對這些基礎知識必須要有一定的了解,這樣你才能考慮得更加全面和完善,下面就讓我們一起來了解一下,什么是 TCP/IP。
TCP/IP協議層
圖1-1展示了TCP/IP協議簇與OSI參考模型的相互關系。在TCP/IP協議簇中,網絡接口層對應于OSI的物理和數據鏈路層,但實際上在規范中并不存在這一層。如圖1-1所示,作為對物理和數據鏈路層的表示,它已經成為事實上的一個層次。在本節中,我們將使用OSI的術語——物理和數據鏈路層來描述它。
除了少數例外,OSI協議簇本身已經成為Intemet歷史早期的遺留產物。當前OSI協議對于網絡技術的貢獻看來主要是在對學習網絡的學生講述模塊化的協議族時,可以引用它的參考模型進行說明等有限的用途。當然。IS-IS 路由選擇協議依然廣泛地應用在大型服務提供高和運營商網絡中。
物理層包含了多種與物理介質相關的協議,這些物理介質用以支撐TCP/IP 通信。物理層的協議按照正式的分類可以分為4類,這4類涵蓋了物理介質的所有方面:
電子/光學協議——描述了信號的各種特性。例如,電壓或光強度、位定時、編碼和信號波形。
機械協議——規定了連接器的尺寸或導線的金屬成分。
功能性協議——描述了做什么。例如,在EIA-232-D連接器第4管腳上的功能描述是“請求發送”。
程序性協議——描述了如何做。例如,在EIA-232-D導線上,二進制I表示電壓小于-3V。
數據鏈路層包含了控制物理層的協議:如何訪問和共享介質、怎樣標識介質上的設備,以及在介質上發送數據之前如何完成數據成幀。典型的數據鏈路協議有IEEE 802.3/以太網、幀中繼、ATM以及SONET。
Internet層與OSI的網絡層相對應,主要負責定義數據包格式和地址格式,為經過邏輯網絡路徑的數據進行路由選擇。當然,網絡層也是本書內容涉及最多的一層。
與OSI傳輸層相對應的是主機到主機層它指定了控制Intemnet層的協議,這就像數據鏈路層控制物理層一樣。主機到主機層和數據鏈路層都定義了流控和差錯控制機制。二者不同之處在于,數據鏈路層協議強調控制數據鏈路上的流量,即連接兩臺設備的物理介質上的流量;而傳輸層控制邏輯鏈路上的流量,即兩臺設備的端到端連接,這種邏輯連接可能跨越一連串數據鏈路。
應用層與OSI的會話層、表示層、應用層相對應。雖然一些路由選擇協議使用這一層,例如邊界網關協議(BGP)、路由選擇信息協議(RIP) 等,但是應用層最常用的服務是向用戶應用提供訪問網絡的接口。
對于圖1-1中所示的協議簇和其他協議簇來說,各層之間多路復用是一個通用功能。許多應用可以使用主機到主機層的一個服務,同樣許多主機到主機層的服務也可以使用Intenret層。多個協議簇(如IP、IPX、AppleTalk) 還可以通過數據鏈路協議共享一條物理鏈路。
BGP是一個應用層的協議,因為它使用TCP端口傳送它的消息:面RIP協議也是應用層協議的原因是因為使用UDP接口傳遇它的消息。其他的路由選擇協議如OSPF,稱為Intemet層的協議是因為它們直接在IP數據包中封裝它們的消息。
IP包頭
圖1-2給出了IP包頭(Packet Header)的格式,相應標準見RFC791。數據包中的大多.數字段對路由選擇都很重要。
版本(Version) 一標識了 數據包的IP版本號。這個4位字段的值設置為二進制的0100表示IP版本4 (IPv4) ,設置為0110表示IP版本6 (IPv6)。本文主要涉及的是IPv4,下一篇小編主要講述IPv6。在表1-1中列出了所有已分配的現行版本號及相關RFC.除4和6(早期提出的簡單Internet協議一即SIP協議,也使用版本號6)之外,其他的所有版本號僅作為“歷史產物”而存在,感興趣的讀者可以閱讀相關的RFC。
●報頭長度(header length)——字段長度為4 位,正如字段名所示,它表示32位字長的IP報頭長度。設計報頭長度字段是因為數據包的可選項字段(在本節后面部分將會討論)的大小會發生變化。IP 報頭最小長度為20個八位組,最大可以擴展到60個八位組一通過這個字段也可以描述32位字的最大長度。
●服務類型(Type of Service, ToS)?——字段長度為8 位,它用來指定特殊的數據包處理方式。服務類型字段實際上被劃分為兩個子字段:優先權和ToS。優先權用來設置數據包的優先級,這就像郵寄包裹一樣,可以是平信、隔日送到或兩日內送到。ToS允許按照吞吐量、時延、可靠性和費用方式選擇傳輸服務。雖然ToS字段通常不用(所有位均被設置為0),但是在開放式最短路徑優先(OSPF) 協議的早期規范中還是稱為ToS路由選擇的。優先權位偶爾在服務質量(QoS)應用中使用。圖1-3的a部分簡要地說明了8個ToS位,更詳細的信息可以參見RFC1340和RFC1349。
在最近幾年,ToS字段已經作為區分服務(Diffserv) 架構的一部分被重新定義了。區分服務架構為IP數據包所創建的處理比通過相對嚴格的ToS定義所允許的處理靈活得多。在DifServ下,我們能夠在一臺路由器上定義服務分類,將數據包歸類到這些分類中去。路由器可以根據它們的分類使用不同的優先級對數據包進行排序和轉發。每一個排序和轉發的處理稱為一個Per-Hop Behavior (PHB)。雖然DiffServ定義了這個架構或體系,但這個機制本身稱為區分服務類別或簡單地稱為服務類別(CoS)。
圖1-3中的(b)部分顯示了ToS字段是如何重新定義的,開始的6個位現在構成了區分代碼點(DifServ Code Point, DSCP)。利用這6個位,我們可以使用任意數值或根據在區分服務體系結構中預先定義的服務類別,最多可以定義64個不同的服務類別,并可整理到PHB中。請注意,在IP報頭中的這個字段保留了8位;區分服務體系結構重新定義了路由器對這個字段中數值的解釋。
●顯式擁塞通知(Explicit Congestion Notification, ECN) ——在圖 1-3中的顯式擁塞通知是某些路由器用來支持顯式擁塞通知的,當它支持該特性時,這些位可以用于擁塞信號(ECN=11)。
●總長度(Total Length)——數據包總 長度字段的長度為16位,以八位組為單位計,其中包括IP報頭。接收者用 IP數據包總長度減去IP報頭長度,就可以確定數據包數據有效載荷的大小。16位長的二進制數用十進制表示最大可以為65535,所以IP數據包的最大長度是65 535。
●標識符(ldentifier)——字段長度為I6位,通常與標記字段和分段偏移字段一起用于數據包的分段。如果數據包原始長度超過數據包所要經過的數據鏈路的最大傳輸單元(MTU),那么必須將數據包分段為更小的數據包。例如,一個大小為5000字節的數據包在穿過網絡時,如果遇到一條MTTU為1 500字節的數據鏈路,即數據幀最多容納大小為1 500字節的數據包。路由器需要在數據成幀之前將數據包分段成多個,數據包,其中每個數據包長度不得超過1 500字節;然后路由器在每片數據包的標識字段上打上相同的標記,以便接收設備可以識別出屬于一個數據包的分段。
●標記字段(Flag) ——長度為3位, 其中第1位沒有使用。第2位是不分段(DF)位。當DF位被設置為1時,表示路由器不能對數據包進行分段處理。如果數據包由于不能被分段而未能被轉發,那么路由器將丟棄該數據包并向源點發送錯誤消息。這一功能可以在網絡上用于測試MTU值。參見示例1-1所示,在I0S軟件系統中,使用擴展Ping工具可以對DF位進行設置。
示例1-1為 了測試穿越網絡的MTU值,IOS 軟件中的擴展Ping工具允許設置DF位。在ping的輸出信息中,到達目的地172.16.113.17的路徑的最大MTU為1478字節
第3位表示還有更多分段(MF)位,當路由器對數據包進行分段時,除了最后一個分段的MF位設置為0外,其他所有分段的MF位均設置為I,以便接收者直到收到MF位為0的分段為止。
●分段偏移(Fragment Offset)——字段長度為13位,以8個八位組為單位,用于指明分段起始點相對于報頭起始點的偏移量。由于分段到達時可能錯序,所以分段偏移字段可以使接收者按照正確的順序重組數據包。
請注意,如果一個分段在傳輸中丟失,那么必須在網絡中同一點對整個數據包重新分段并重新發送。因此,容易發生故障的數據鏈路會造成時延不成比例。另外,如果由于網絡擁塞而造成分段丟失,那么重傳整組分段會進一步加重網絡擁塞。
●生存時間(Time To Live, TTL)——字段長度為8 位,在最初創建數據包時TTL即被設置為某個特定值。當數據包逐個沿路由器被傳輸時,每臺路由器都會降低TTL的數值。當TTL值減為0時,路由器將會丟棄該數據包并向源點發送錯誤信息。這種方法可以防止數據包在網絡上無休止地被傳輸。
按照最初構想,TTL-值以s (秒)為單位。如果數據包在路由器上被延遲的時間超過1s,路由器將會相應地調整TTL值。然而,這種方法實施起來十分困難,從來沒有被廣泛地支持?,F代的路由器不管實際時延是多少,統統將TTL值減1,所以TTL實際上是表示跳數。雖然TTL常見的值為15和32,但是建議的缺省值是64。
像I0S軟件中的trace 命令這樣的一些追蹤工具使用的是TTL字段。如果路由器被告知需要追蹤到達主機地址為10.11.12.13 的路徑,路由器將發送3個數據包,其中TTL值被設置為1;第1臺路由器將會把TTL值減少到0,而且在丟棄數據包的同時向源點發送錯誤信息。源點路由器通過閱讀錯誤信息從而得知發送錯誤信息的路由器即為路徑上的第1臺路由器。再一次被路由器發送的3個數據包的TTL值被設置為2。
第1臺路由器將TTL值減1,第2臺路由器將TL值再減I后為0,此時源點路由器將會接收到第2臺路由器發送來的錯誤信息。第3次發送的數據包TTL值被設置為3,依此類推,直到目的地被發現。最終,沿著網絡路徑所有的路由器都會被標識出來。示例1-2 中顯示了IOS軟件中路由追蹤的輸出結果。
為了使13位長的分段偏移字段可以表示的最大數據包長度為65 535字節,所以使用8個八位組作為本字段的單位。
示例1-2追蹤工具使用 TTL字段來標識沿途路由器。星號表示超時數據包
●協議(Protocol) ——字段長度為8位,它給出了主機到主機層或傳輸層協議的“地址”或協議號,協議字段指定了數據包中信息的類型。當前已分配了100多個不同的協議號,表1-2給出了其中一些較常用的協議號。
在IPv6報頭中等價的字段己經重新命名為HopLimit,以便更加確切地反映它的真正用途。
●報頭校驗和(Header Checksum) ——是針對IP 報頭的糾錯字段。校驗和不計算被封裝的數據,UDP、TCP和ICMP都有各自的校驗和。報頭校驗和字段包含一個16 位二進制補碼和,這是由數據包發送者計算得到的。接收者將連同原始校驗和重新進行16位二進制補碼和計算。如果數據包傳輸中沒有發生錯誤,那么結果應該16位全部為1。回憶前面所述內容,由于每臺路由器都會降低數據包的TTL值,所以每臺路由器都必須重新計算校驗和。RFCI141 討論了一些簡化計算的策略。
●源地址和目的地址(Source and Destination Address) ——字段長度為 32位,分別表示發送者數據包源點和目的地的IP地址。
●可選項(Options) ——是一個長度可變的字段, 并像其名字所表示的,它是可選的。可選項被添加在包頭中,包括源點產生的信息和其他路由器加入的信息;可選項字
段主要用于測試。常用的可選項如下:
?松散源路由選擇(Loose Source Routing) ——它給出了一連串路由器接口的IP地址序列。數據包必須沿著IP地址序列傳送,但是允許在相繼的兩個地址之間跳過多臺路由器。
?嚴格源路由選擇(StrictSourceRouting)——它也給出了一系列路由器接口的IP地址序列。不同于松散源路由選擇,數據包必要嚴格按照路由轉發。如果下一跳不再列表中,那么將會發生錯誤。
?記錄路由(RecordRoute)——當數據包離開時為每臺路由器提供空間記錄數據包的出站接口地址,以便保存數據包經過的所有路由器的記錄。記錄路由選項提供了類似于路由追蹤的功能,但是不同點在于這里記錄了雙向路徑上的出站接口信息。
?時間戳(Timestamp)——除了每臺路由器還會記錄一個時間戳之外,時間戳選項十分類似于記錄路由選項,這樣數據包不僅可以知道自己到過哪里,而且還可以記錄到達的時間。
在Cisco路由器上使用擴展的Ping工具可以調用所有這些選項。示例1-1中使用了記錄路由選項,示例1-3使用了松散源路由選擇和時間戳選項,嚴格源路由選擇選項在示例1-4中被使用。
示例1-3使用Cisco的擴展Ping工具來設置IP報頭中的可選項字段的各項參數。在這個例子中,用到了松散源路由選擇選項和時間戳選項
示例1-4這里使用擴展Ping在ping數據包中設置嚴格源路由選擇選項
●填充 (Padding) ——該字段通過 在可選項字段后面添加0來補足32位,這樣保證報頭長度是32位的倍數。
示例1-5顯示了協議分析器捕獲到的IP報頭的信息。請與圖1-2中的信息作一下比較。
示例1-5在協議分 析器的窗口中,可以看到IP包頭各字段及每個字段的值
點擊
即可免費獲得3天實戰課程名額
帶你從0到1設計、搭建企業網絡
還不趕快動動你的小指頭
↓↓↓
點擊??即可免費獲得實戰課程
總結
以上是生活随笔為你收集整理的16进制数用空格分开 tcp_面试时,你是否被问到过TCP/IP协议?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CVD和ALD薄膜沉积技术应用领域
- 下一篇: fh 幅频特性曲线怎么画fl_初学者怎么