《圖解TCP/IP》學習——第二章TCP/IP基礎知識
一、TCP/IP出現的背景及其歷史
1.從軍用技術的應用談起
下面是容災性較弱的中央集中式網路
下面的是容災性較強的分組網路
2.ARPANET的誕生
3.TCP/IP的誕生
4.UNIX系統的普及與網際網路的擴張
5.商用網際網路服務的啟蒙
二、TCP/IP的標準化
TCP/IP為網路協議族
三、網際網路基礎知識
1.網際網路的定義
2.網際網路與TCP/IP的關係
3.網際網路的結構
網際網路中的每個網路都是由骨幹網(BackBone)和末端網(Stub)組成的。
每個網路之間通過NOC相連。
如果網路的運營商不同,它的網路連線方式和使用方法也會不同,連線這種異構網路需要有IX
網際網路就是眾多異構的網路通過IX互聯的一個巨型網路。
4.ISP和區域網
四、TCP/IP協議分層模型
OSI參考模型注重:通訊協議必要的功能是什麼
TCP/IP則更加強調:在計算機上實現協議應該開發哪種程式
2.硬體(物理層)
CP/IP的最底層是負責資料傳輸的硬體,這種硬體就相當於乙太網或電話線路等物理層的額裝置
3.網路介面層(資料鏈路層)
網路介面層利用乙太網中的資料鏈路層進行通訊,因此屬於介面層。
驅動程式是在作業系統與硬體之間起橋樑作用的軟體。計算機的外圍裝置或擴充套件卡,不是直接插到電腦上或者電腦的擴充套件槽上就能馬上使用的,還需要有相應驅動程式的支援。
4.網際網路層(網路層)
網際網路層使用IP協議,相當於OSI模型中的第3層網路層。
IP協議基於IP地址轉發分包資料。
TCP/IP分層中的網際網路層與傳輸層的功能通常由作業系統提供。
尤其是是路由器,他必須得實現通過網際網路層轉發分組資料包的功能。
1)IP地址
IP是分組交換的一種協議,通過IP地址,相互通訊的主機之間不論經過怎樣的底層資料鏈路都能實現通訊,但是它不具有重發機制,即使分組資料包未能夠達到對端主機也不會重發,因此,它屬於非可靠性傳輸協議。
2)ICMP協議
當IP資料包在傳送途中一旦發生異常,導致無法到達對端目標地址時,需要給傳送端傳送一個發生異常的通知。
有時候也被用來診斷網路的健康狀況。
3)ARP協議
從分組資料包的IP地址中解析出MAC地址的一種協議
5.傳輸層
傳輸層最重要的功能就是能夠讓應用程式之間進行通訊。
計算機內部,通常同一時間執行著多個程式,為此,必須分清是哪些程式與哪些成雪進行通訊,識別這些應用程式的是埠號
1)TCP
TCP是一種面向有連線的傳輸層協議。可以保證兩端主機之間的通訊可達。
優點:
TCP能夠正確處理在傳輸過程中丟包、傳輸順序亂掉等異常情況;
TCP還能夠有效利用頻寬、緩解網路擁堵;
缺點:
為了建立與斷開連線,有時候需要至少7次的發包收包,導致網路流量的浪費;
不利於視訊會議,是由於TCP協議中定義了各種各樣複雜的規範
2)UDP
UDP是一種面向無連線的傳輸層協議。
特點:
不會關注對端是否是真的收到了傳送過去的資料,如果需要檢查對端是否收到分組資料包,或者對端是否連線到網路,則需要在應用程式中實現
UDP常用於分組資料較少或多播,廣播通訊以及視訊通訊等多媒體領域。
6.應用層(會話層以上的分層)
在TCP/IP的分層中,將OSI參考模型中的會話層、表示層和應用層的功能都集中到了應用程式中實現,這些功能可以是由一個單一的程式實現,也可以由多個程式實現。
TCP/IP的應用程式功能,不僅可以實現OSI模型中應用層的內容,還可以實現會話層與表示層的功能。
TCP/IP應用的架構絕大多數屬於客戶端/服務端模型。
提供服務的程式叫服務端;
接受服務的程式叫客戶端;
在這種通訊模式中,提供服務的程式會預先被部署在主機上,等待接收任何時刻客戶可能傳送的請求;客戶端可以隨時傳送請求給服務端,若服務端正在處理異常,那麼客戶端可在等待片刻後重發一次請求。
1)WWW
2)電子郵件E-mail
傳送電子郵件用到的協議是:SMTP(Simple Mail Tranfer Protocol)
電子郵件的格式由MIME協議擴充套件以後,就可以傳送聲音、影象等各式各樣的資訊,MIME屬於OSI的表示層。
3)檔案傳輸FTP
FTP:File Transfer Prototol,傳輸過程中可以選擇用二進位制方式還是文字方式
在FTP中進行檔案傳輸會建立兩個TCP連線,
其一是:發出傳輸請求時所用到的控制連線;
其二是:實際傳輸資料時所要用到的資料連線;
4)遠端登陸TELNET與SSH
Telnet:Teletypewriter network
SSH:Secure shell
5)網路管理(SNMP)
在TCP/IP中,SNMP屬於應用層協議,MIB屬於表示層協議
五、TCP/IP分層模型與通訊示例
從應用層到物理媒介位置資料處理的流程是如何的?
1.資料包的首部
為協議提供的資訊為包首部,所要傳送的內容為資料。
在下一層的角度看,從上一層收到的包全部都被認為是本層的資料。
五個用來表述資料的單位:
包:是全能型述語;
幀:表示資料鏈路層中包的單位;
資料包:是IP和UDP等網路層以上的分層中包的單位;
段:是TCP資料流中的資訊;
訊息:是應用協議中資料的單位;
包首部就是協議的臉?
網路傳輸的資料包=協議所要用到的首部+上層傳過來的資料;
首部的結構由協議的具體規範詳細定義,相互通訊的兩端計算機如果在識別協議的序號以及校驗和的計算方法上不一樣,就根本無法實現通訊。
2.傳送資料包
對於主機A的傳送端而言:
1)應用程式的處理
應用程式將“早上好”進行編碼處理,egUTF-8等,相當於OSI的表示層功能。
應用在傳送郵件的那一刻建立TCP連線,然後利用TCP連線傳送資料,它的過程首先是將應用的資料傳送給下一層的TCP,再做實際的轉發處理。
2)TCP模組的處理
TCP根據應用的指示,負責建立連線、傳送資料以及斷開連線,提供端對端的額可靠傳輸。
需要給應用層資料的前端加上一個TCP首部,TCP首部包括的內容是:
源埠號,目的埠號:用於識別傳送主機跟接收主機上的應用程式;
序號:用以傳送的包中哪部分是資料;
校驗和:用以判斷資料是否被損壞。
3)IP模組的處理
IP將TCP傳過來的TCP首部和TCP資料合起來當作自己的資料,並在TCP首部的前端加上自己的IP首部。
IP首部中包含接收端IP地址以及傳送端UP地址,並且還可以判斷後面的資料是TCPorUDP。
IP包生成後,參考路由表決定接收此IP包的路由或主機(IP包是傳送給路由器或者主機網路介面的驅動程式)。並且利用ARP協議知道對端的MAC地址,將MAC地址和IP地址交給乙太網的驅動程式,實現資料的傳輸。
4)網路介面(乙太網驅動)的處理
IP包+乙太網首部來進行處理。
乙太網的首部包含:接收端MAC地址、傳送端MAC地址以及標誌乙太網型別的乙太網資料的協議,尾部再新增FCS(目的是為了判斷資料包是否由於被破壞)。
FCS:Frame Check Sequence
經過資料鏈路的包
總結一下:
a)每個包首部至少有2個資訊:其一是,傳送端和接收端地址;其二是上一層的協議型別。
b)乙太網(物理層+資料鏈路層)用MAC地址,IP用IP地址,TCP/UDP會用埠號識別兩端主機的地址。
c)每個分層的包首部中還包含一個識別為,是用來識別上一層協議的種類資訊,eg:乙太網首部中的乙太網型別,IP中的協議型別以及TCP/UDP中兩個埠號都起著識別協議型別的作用。
對於主機B的接收端而言:
5)網路介面(乙太網驅動)的處理
6)IP模組的處理
7)TCP模組的處理
8)應用程式的處理
當代網際網路中的一個應用