TCP/IP筆記

TCP/IP學習筆記

1. TCP/IP概述

互聯網的目的就是要隱藏底層網絡的硬件細節,同時提供一般的服務通信。

網際互連的方式

應用級互聯

實質:

應用程序完全瞭解本機器網絡連接的內部細節,並直接通過網絡連接與其它應用程序通信。應用程序直接建立在物理網絡上,無任何中間協議。

應用級別互聯

缺陷:

  1. 每臺計算機上都要有所需的應用程序
  2. 硬件變動後,應用程序要做出相應的修改
  3. 每個應用程序都要了解本機的所有網絡連接,造成代碼重複

網絡級互聯

思想:把通信部分獨立出來

方法:在低層網絡技術與高層應用程序之間增加一箇中間層軟件,以便抽象和屏蔽硬件細節,向用戶提供通用網絡服務。

網絡級互聯

優勢:

  1. 把數據通信活動從應用程序中分離出來,允許中間的計算機直接處理網絡通信,而不必瞭解發送雙方 的應用程序
  2. 系統更加靈活,因此可以建立通用的通信工具
  3. 如果出現新的網絡技術,只要修改或者增加新的網絡層軟件而不需要修改上層應用程序

TCP/IP 的引入

問題? 數據格式不同,地址不同如何進行通訊。

解決辦法:引入IP層,屏蔽不同物理網絡技術的差別;引入IP路由器

IP層
在這裏插入圖片描述

有了IP層和路由器之後又有了三個問題:選路,控制和可靠性。

  • 解決辦法:路由協議:(RIP、OSPF、BGP等)
  • ICMP:Internet控制報文協議
  • TCP/UDP:傳輸層協議(傳輸控制協議和用戶數據報協議)

在上述協議的基礎上,實現了多種網絡應用:FTP、HTTP、TELNET、POP3、SMTP、SNMP、DNS等等

TCP/IP協議族:上述各個協議的統稱。

TCP/IP是網間互連的一個重要協議,是一個被廣泛採用的互連協議標準。
TCP/IP是一個協議族,TCP和IP是其中兩個最重要的且必不可少的協議,故用它們作爲代表命名。

TCP/IP 的分層模型

分層的優勢:簡化問題,分而治之,有利於軟件升級換代。

TCP/IP協議

分層的缺點:效率低

  1. 各層之間相互獨立,都要對數據進行處理
  2. 每層處理完畢都要加一個頭結構,增加了通信數據量

在這裏插入圖片描述

TCP/IP 的分層原則:信宿機第n層收到的數據與信源機第n層發出的數據完全一致 。

分層原則

協議分層的兩個邊界:操作系統邊界、協議地址邊界。

協議邊界

IP位於所有通信的中心,是唯一被所有應用程序所共有的協議。

TCP/IP沙漏模型

總結: TCP/IP模型是在一個硬件層上構建的4個軟件層

  1. 應用層:提供通訊用的應用程序,如電子郵件,文件傳輸。
  2. 傳輸層:提供應用程序間端到端的通信。(格式化信息流、提供可靠傳輸、識別不同 的應用程序)
  3. IP層:負責點到點通信。(處理TCP分層發送請求、爲進入的數據報尋徑、處理ICMP報文:控流和擁塞控制、組播服務)。
  4. 網絡接口層:接收IP數據並通過選定的網絡發送。

TCP/IP Internet的發展歷史

  1. 1958年1月,ARPA (Advanced Research Projects Agency)成立。旨在研究對國防有重大意義的高新技術。其中研究的重要任務之一是:在戰爭期間保證不間斷、高可靠性通信的通信網絡系統。
  2. 1969年10月,ARPA建立了第一個分組交換網絡ARPANET。
  3. 1973年,ARPA啓動互聯網研究項目(Internetting),並導致了TCP/IP的出現與發展。
  4. 1977-1979,推出目前形式的TCP/IP體系結構和協議規範(基本定型)。
  5. 1980年前後,ARPA上的所有機器開始轉向TCP/IP,並以ARPANET爲主幹逐步建立Internet。
  6. 1983年初,向TCP/IP的轉換全部結束。
  7. 1975年起ARPANET的網控與管理者將ARPANET一分爲二:
    ARPANET:用於進一步的研究。
    MILNET:用於軍方的非機密通信。
  8. 1983年,伯克利加州大學推出內含TCP/IP的第一個BSD UNIX (Berkeley Software Distribution UNIX)。此舉使ARPANET覆蓋了當時美國90%的計算機科學系。
  9. 1984年,Internet基本形成。
  10. 1985年,NSF (National Scientific Foundation)開始資助TCP/IP和互聯網的研究。
  11. 1986年,建立NSFNET,使全美的主要院校、科研機構聯入NSFNET,並與ARPANET相聯。
  12. 此後,NSF不斷髮展並逐步取代ARPANET成爲Internet的新主幹,ARPANET逐漸退出歷史舞臺。
  13. 1991年起,美國政府決定把主幹網交給私人公司。
  14. 1993年,高級網絡和服務公司ANS (AdvancedNetworks and Services)建立了ANSNET,並準備取代NSFNET。
  15. 1995年,NSF不再對NSFNET提供資助,各種商業網絡代替NSFNET提供主幹通信服務,Internet進入商業化時代。
  16. 1995年,VBNS (Very High Speed Backbone Network Service)建設並取代ANSNET。
  17. 1996年,美國啓動NGI (Next Generation Internet),並從1998年開始研究建設NGI的主幹網Abilene。
  18. 目前的TCP/IP是第4版,稱作IPv4。
  19. 1998年,IPv6協議標準於基本制定完成,進入實用化階段。

1995年10月24日,美國聯邦網絡委員會爲Internet作了如下定義:

Internet是一個全球性的信息系統,系統中的每臺主機都有一個全球唯一的主機地址,地址格式通過IP協議定義。系統中主機與主機間的通信遵守TCP/IP協議標準,或是其它與IP兼容的協議標準來交換信息。在以上描述的信息基礎設施上,利用公網或專網的形式,向社會大衆提供資源和服務。

TCP/IP形成的主要原因

1.TCP/IP是最早出現的互聯網協議,它的成功得益於順應了社會的需求。

  1. DARPA採用開放策略推廣TCP/IP,鼓勵廠商、大學開發TCP/IP產品 。

  2. TCP/IP與流行的UNIX系統結合是其成功的主要源泉。

  3. TCP/IP技術來自於實踐,並在實踐中不斷改進。

Standford大學的Vint Cerf因在TCP/IP上作出的突出貢獻,而被人們稱爲“Internet之父”。

2. 點到點協議PPP

PPP簡介

PPP (Point to Point Protocol)屬於網絡接口層,主要用於撥號接入Internet的場合。

早在1974年7月,IETF就以RFC1661的形式推出了PPP標準。

至今仍然被廣泛應用,並隨着新型寬帶技術的推出而衍生出新的形式,如符合ADSL接入要求的PPPoE。

PPP協議的對等段是客戶和ISP,它們通過Modem和電話網絡連接。

PPP協議流程:

  1. 在建立PPP鏈路前,發起方必須通過電話網絡呼叫回應方。呼叫成功後雙方建立了一條物理連接。
  2. 利用LCP創建PPP鏈路。
  3. 用PAP或CHAP驗證客戶身份。
  4. 用IPCP配置IP層參數(主要是配置IP地址)。
  5. 通信完成後,雙方利用LCP斷開PPP鏈路。
  6. 之後,斷開物理連接。

上述流程中各個報文段的含義如下:

  1. 發起方發送LCP配置請求報文,其中包括各項配置參數,比如
    使用的認證協議、最大接收單元和壓縮協議等
  2. 迴應方若同意各項配置參數,則返回確認報文
  3. 發起方提供賬號和口令,以便驗證自己的身份
  4. 迴應方驗證發起方的身份成功後,向其返回確認報文
  5. 發起方發出IPCP配置請求
  6. 迴應方返回確認,其中包含了分配給發起方的IP地址
  7. 發起方發回LCP終止鏈路請求
  8. 迴應方返回確認,鏈路終

PPP鏈路操作的5個階段

在這裏插入圖片描述

  • Dead:初態和終態,表明物理層尚未準備好;
  • Establish:使用LCP建立和配置鏈路;
  • Authentication:身份認證階段;
  • Network:使用相應的NCP配置網絡層議;
  • Terminate:終止鏈路。

PPP協議滿足條件和組成

PPP

  1. PPP是使用串行線路通信的面向字節協議
  2. PPP可以在同步和異步線路上使用
  3. 由於流量控制、差錯控制已在TCP中實現,因此PPP 沒有糾錯功能不進行流量控制不需要幀序號不支持多點鏈路使用全雙工方式傳輸數。

PPP協議應滿足的條件

  1. 簡單:不需要複雜的流量控制、差錯控制等功能,也不需要序號,只需要實現最基本的功能。
  2. 封裝成幀:規定特殊的字符作爲幀的開始和結束標誌,同時保證能正確地區分數據與幀的定界標誌,保證數據的透明傳輸。
  3. 支持多種網絡層協議:能支持多種網絡層協議。
  4. 支持多種類型鏈路:能在多種鏈路上運行,如同步或異步、高速或低速、電或光等鏈路。
  5. 差錯檢測:可進行差錯檢測,丟棄錯幀。
  6. 檢測連接狀態:能及時自動檢測鏈路工作狀態。
  7. 可設置最大傳送單元:可針對不同的鏈路設置最大傳送單元MTU的值(幀中數據部分的長度)。
  8. 支持網絡層地址協商:支持網絡層通過協商配置並識別網絡地址。
  9. 支持數據壓縮協商:提供協商使用數據壓縮算法的方法。

PPP協議的組成

  1. 幀格式及成幀方法(HDLC封裝)
  2. 用於建立、配置和測試PPP鏈路的LCP(Link Control Protocol ,鏈路控制協議)
  3. 用於建立和配置網絡層協議的NCP(Network Control Protocol,網絡控制協議)。對於IP網絡而言,使用IPCP(IP控制協議)。

此外,當客戶撥入ISP時,ISP需要驗證客戶身份,此時可以使用2個認證協議,即PAP和CHAP。

相關協議

DHLC

DHCL是一種成幀方法。

  • 定義了將IP數據報封裝到串行鏈路的方法,明確的界定一個幀的結束和下一個幀的開始,其幀格式允許進行錯誤檢測。
  • PPP既支持異步鏈路,也支持面向位串的同步鏈路。
  • IP數據報是PPP中信息部分,其長度受最大傳送單元MTU的限制。MTU的默認值是1500字節。

LCP

LCP是一個鏈路控制協議

  • 鏈路控制協議負責線路建立、配置、測試和選項協商,並在它們不再需要時,穩定地把他們釋放。

NCP

NCP是一套網絡控制協議

  • 網絡控制協議可以支持不同地網絡層協議,如IP、Appletalk等,對於所支持的每一個網絡層協議都有一個不同的 網絡控制協議,用來建立和配置不同的網絡層協議。提供了協商網絡層選項的方式。

PPP協議的幀格式

PPP協議幀格式

  1. 標誌域:標誌爲0x7E,即“01111110”,與HDLC相同。
  2. 地址域:固定爲0xFF,即“11111111”,表示所有站都可以接收這個幀。因爲PPP只用於點對點鏈路,地址域實際上不起作用。
  3. 控制域:
    • 置爲0x03,即“00000011”,表示PPP幀不使用編號。PPP幀有三種類型:信息幀、監督幀、無編號幀
    • 缺省值:PPP不提供使用序列號和確認應答的可靠傳輸。
    • 在有噪音的環境中,如無線網絡中,通過LCP確定可以使用編號方式的可靠傳輸。
  4. 協議域:說明信息域中承載分組的種類。PPP爲LCP、NCP、AppleTalk和其他協議定義了相應的代碼。缺省長度是2字節,通過LCP協商變成1個字節。常用的有:
    • 0x0021:IP數據報。
    • 0x002b:IPX數據。
    • 0x0029:AppleTalk數據。
    • 0xc021:PPP鏈路控制數據(LCP)。
    • 0x8021:IP控制協議(IPCP)。
    • 0x802b:IPX控制協議。
    • 0x8029:AppleTalk控制協議。
  5. 信息域:信息域是網絡層傳送過來分組,長度可變,可以協商一個最大值(MTU)。缺省1500字節。
    • 字節填充法:當PPP使用異步傳輸時(面向字符),使用字節填充法來(0x7D)消除信息中可能出現的0x7E字符。
    • 位填充法:PPP協議用在SONET/SDH鏈路時,使用同步傳輸而不是異步傳輸。
  6. 校驗和:
    • 校驗和字段通常是2個字節,但也可以通過協商使用4個字節的檢驗和。
    • PPP協議對收到的每一個幀,使用硬件進行CRC檢驗。若發現有差錯,則丟棄該幀。因此,PPP協議可保證鏈路級無差錯接收。

LCP

LCP報文

在這裏插入圖片描述
報文格式

報文格式

鏈路配置報文

在這裏插入圖片描述

  1. Configure-Request:發起方發送的第一個報文;
  2. Configure-Ack:如果Configure-Request中的每個選項都能被接收端識別,而且都被接受;
  3. Configure-Nak:如果每個選項都能識別,但是隻有部分能接受;
  4. Configure-Reject:如果Confiure-Request有部分選項不能被識別,或者不能被接受。

鏈路配置報文中選項的格式:

Options字段:包含0個或多個要協商的選項,同時協商;

選項的格式:

在這裏插入圖片描述
類型:
在這裏插入圖片描述

鏈路終止報文
在這裏插入圖片描述

PAP- Password Authentication Protocol

PAP全稱爲:Password Authentication Protocol(口令認證協議),是PPP中的基本認證協議。PAP就是普通的口令認證,要求將密鑰信息在通信信道中明文傳輸,因此容易被sniffer監聽而泄漏。

發生時機:僅在建立連接的階段發生;

認證方式:一端發送明文口令至對等端,由對方認證;

特性:無法防止重放(playback)、窮舉(repeated trial)等攻擊;

封裝:PPP幀的數據字段;

在這裏插入圖片描述
在這裏插入圖片描述

CHAP: Challenge-Handshake Authentication Protocol

發生時機:建立連接時和連接建立之後的任何時間

在這裏插入圖片描述

CHAP全稱爲:Challenge Handshake Authentication Protocol(挑戰握手認證協議),主要就是針對PPP的,除了在撥號開始時使用外,還可以在連接建立後的任何時刻使用。

CHAP 協議基本過程是認證者先發送一個隨機挑戰信息給對方,接收方根據此挑戰信息和共享的密鑰信息,使用單向HASH函數計算出響應值,然後發送給認證者,認證 者也進行相同的計算,驗證自己的計算結果和接收到的結果是否一致,一致則認證通過,否則認證失敗。這種認證方法的優點即在於密鑰信息不需要在通信信道中發 送,而且每次認證所交換的信息都不一樣,可以很有效地避免監聽攻擊。

3. Internet地址及地址解析

Internet地址

幾個問題

爲啥要進行編址:統一的思想,屏蔽物理地址。

什麼是地址:標識符

標識哪些東西:名字、地址、路徑

Internet地址應該具備哪些性質:能定位、要唯一、好計算

物理地址能作爲Internet地址嗎:不能(多樣性、多義性)

TCP/IP Internet編址方式如何:IP地址

Internet的概念層次

在這裏插入圖片描述
地址 類型

  • A類:0——8位網絡號,首字節1-126
  • B類:10——16位網絡號,首字節128-191
  • C類:110——24位網絡號,首字節192-223
  • D類:1110——組播地址,首字節224-239
  • E類:11110——保留未用,首字節240——247

特殊IP地址

網絡地址:主機號全0;

廣播地址:主機號全1;

有限廣播地址:32位全1;

回送地址:127...* , 網絡軟件測試及本機進程間的通信。該類地址用於本機進程間的通訊或者協議軟件測試,通常爲127.0.0.1

IP地址的實質

IP地址標識的不一定是一臺主機,實質上標識的是到一個網絡的一條連接。

網絡字節順序:同樣的數據在內存中存儲方式不同

在計算機中數據以小端大端方式存儲。規定:首先發送整數中的高字節。

IP編址的缺陷

  1. 限制網絡的平滑升級
    如果號碼空間不足的話,必須要升位,並改變號碼的位長,這是任何號碼升位中都必須要遇到的。升位後的號碼是否兼容原號碼取決於編號規則號碼分配,而不是號碼長度
  2. 對主機的移動性支持不夠
    標識設備的IP僅僅表示了設備的位置,並未有標識設備本身

Internet編址管理機構

在這裏插入圖片描述

子網編址技術

在這裏插入圖片描述
可以讓一個網絡號跨越多個物理網絡

雖然128.10.0.0這個網絡號中可以包含多個物理網絡,但是互聯網絡的其餘部分都只能看到128.10.0.0
這個大網。

問題:如何指示網絡部分

解決:使用子網掩碼。

具體方法:

每一個使用子網的網點都選擇一個32位的位模式。若位模式中的某位爲1,則對應IP地址中的某位位網絡中的一位,否則位主機號的一位。

子網掩碼:網絡號部分全爲1,主機號部分全爲0.

子網選路

  1. 路由表:(網絡地址,子網掩碼,下一跳)
  2. 統一的選路算法:Route_IP_Fatagram(datagram,routing_table)
    從數據報中提取出目的IP地址D;
    if(D 的前綴匹配某直接相連的網絡地址){
    	通過該網絡把該數據報發送到目的站
    }else{
    	for(路由表中的每一項){
    		N = D逐比特與子網掩碼相與
    		if(N等於表項中的網路地址段)
    			將本數據報發往表項中下一條地址所指定的路由器
    	}
    }
    if(沒有找到匹配的表項){
    	宣佈選路出錯;
    }
    

特殊掩碼:

  • 全0掩碼,對應默認路由
  • 全1掩碼,對應特定主機路由

子網劃分舉例

例1:等長子網劃分

假設已分配C類網絡182.28.61.0,且需要4個子網,每個子網最多25臺機器。

**RFC950規定:**不允許使用全0或全1的子網(RFC1812取消了該限制)

子網位數 掩碼 掩碼後八位 子網數 主機數
2 255.255.255.192 11000000 2 64
3 255.255.255.224 11100000 6 30
4 255.255.255.240 11110000 14 14
5 255.255.255.248 11111000 30 6
6 255.255.255.252 11111100 62 2

劃分方法:使用2位子網號,掩碼爲:255.255.255.224

掩碼後八位 子網號
001 00000 192.28.61.32
010 00000 192.28.61.64
011 00000 192.28.61.96
100 00000 192.28.61.128
101 00000 192.28.61.160
110 00000 192.28.61.192

從以上6個子網中任意選擇3個即可。

例2:變長子網劃分

假設已給C類網址202.18.6.0,設計符合下列要求的子網劃分方案:

  1. 4個網絡,每臺最多26臺主機
  2. 3個網絡,每個最多10臺主機
  3. 4個點到點串行鏈路

劃分方法:採用不等長的子網掩碼。先按最多主機數選擇符合要求的子網位,然後對子網再繼續劃分。

在這裏插入圖片描述

地址轉換- ARP協議

ARP:Address Resolution Protocol
RARP:Reverse Address Resolution Protocol

在這裏插入圖片描述
問題:

爲什麼要進行地址轉換:必須根據IP地址找到物理地址才能進行實際的數據傳送。

如何進行地址轉換:直接映射 或者 動態綁定

兩種地址類型:

  1. 空間較小且容易配置的物理地址(直接映射)
  2. 空間巨大且固定的物理地址(動態綁定)

直接映射:IP地址 \leftarrow \rightarrow 物理地址
動態綁定:用協議獲取

基本步驟

  1. 遠端A廣播包含目標B的IP地址IPb的ARP請求報文,請求B回答自己的物理地址PAb;
  2. 網絡上的主機將IPb與自身的IP地址比較,若相同,則轉步驟三,否則忽略。
  3. B將PAb封裝在ARP應答報文中,之後發送給A;
  4. A從應答報文中提取IPb和PAb,從而獲得IPb和PAb之間的映射關係。

總結:廣播請求,單播迴應。

提高ARP的效率

  1. 設置ARP cache,存放最近解析出來的IP/MAC對;
  2. 請求解析時,把自己的IP/MAC地址也放在報文中;
  3. 收到ARP請求的所有主機都緩存其中的IP/MAC;
  4. 主機入網時,主動廣播它的IP/MAC。

ARP中軟狀態使用(緩存信息失效問題)

問題:一條IP/MAC映射記錄失效怎麼辦?

使用超時機制,一般爲20分鐘,如果在超過規定的超時時間內沒有使用某條記錄,那麼就刪除該記錄。

優勢:

  1. 無需專門的通知機制;
  2. 對硬件可靠性要求低。

缺陷:可能會’反應遲鈍‘。

不同網絡間地址轉換:路由器轉發:

在這裏插入圖片描述
轉換步驟

  1. A利用ARP獲得路由器R接口1的物理地址’
  2. A把報文發給路由器R的接口1
  3. R從接口2使用ARP獲得B的物理地址
  4. R把報文從接口2轉發給B

ARP的封裝與標識

ARP必須封裝到一個幀中

在這裏插入圖片描述

反向地址轉換-RARP協議

問題:無盤工作站啓動時,如何確定它的IP地址?

用它的物理地址在網上廣播,請求服務器告訴IP地址。

在這裏插入圖片描述

  1. A發出RARP關播請求報文(MAC_A,0,MAC_A,0)
  2. RARP服務器給A發應答報文(MAC_S,I_S,MAC_A,I_A)

注意
3. 無盤工作站所在的網絡必須有RARP服務器
4. 有多臺RARP服務器,可採用主、備份服務器技術

- 一主服務器,其餘位備份服務器
- 主服務器先響應,備份服務器有兩種響應方式
	+ 只有在收到重複的RARP請求時才響應
	+ 隨機延遲一段時間後再響應
  1. 封裝RARP的以太網幀類型爲8035H

課後作業

題目:
1、第一章第1部分:網絡協議分層的優缺點。

分層的優勢:**簡化問題,分而治之**,有利於軟件升級換代。
分層的缺點:**效率低**

	1. 各層之間相互獨立,都要對數據進行處理
	2. 每層處理完畢都要加一個頭結構,增加了通信數據量

2、第一章第1部分:你認爲一個路由器最基本的功能應該包括哪些?

第一,網絡互連:路由器支持各種局域網和廣域網接口,主要用於互連局域網和廣域網,實現不同網絡互相通信;
第二,數據處理:提供包括分組過濾、分組轉發、優先級、複用、加密、壓縮和防火牆等功能;
第三,網絡管理:路由器提供包括路由器配置管理、性能管理、容錯管理和流量控制等功能。

3、第一章第2部分:分析PAP和CHAP的優缺點。

PAP
            優點:簡單,僅在建立連接時驗證,認證速度快
            缺點:密匙信息使用明文傳輸,不安全
CHAP

          優點:不傳輸密匙信息,可以有效避免監聽攻擊,相比PAP更安全
          缺點:三次握手協議,驗證更復雜,在建立連接後依然需要隨機驗證,速度慢。

4、第一章第3部分:在理想情況下,可以有多少個A類地址,每個A類地址中包含多少個可以配置給主機的IP地址?

有126個A類地址。
每個A類網絡理論上可連接$2^24-2=16777214$臺主機(減2的原因是:全0表示主機地址,全1表示廣播地址)。

5、結合課堂中的例子,分析跨越2個或3個路由器轉發IP數據報時ARP的使用步驟,以及經過每個步驟後通信雙方及中間路由器ARP緩存的變化情況。

假設:有主機A和主機B,主機A經過路由器R1和R2連接到B

步驟:

1. A向路由器R1發送ARP請求報文,路由器R1獲得報文後返給A一個IP地址,並保存A的IP/MAC地址映射。
2. A將包含B的IP地址的數據幀發送給R1,
3. R1根據B的IP地址查詢路由表並進行路由選擇,將數據報轉發給路由器R2
4. R2根據自己緩存的IP/MAC地址映射,將數據報發送給B。
發佈了88 篇原創文章 · 獲贊 16 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章