最近讀完了《圖解TCP/IP》,做一下總結加深記憶,後續會寫幾篇關於TCP/IP的文章。
一.網絡基礎知識
1.1計算機與網絡發展的7個階段
- 批處理:指事先將用戶程序和數據裝入卡帶或磁帶,並由計算機按照一定的順序讀取,使用戶所執行這些程序和數據能夠一併批量得到處理的方式。
- 分時系統時代:指多個終端與同一個計算機相連接,允許多個用戶同時使用一臺計算機系統。
- 計算機間通信時代:在分時系統中,計算機與每個終端之間用通信線路連接,這並不意味着計算機與計算之間已相互連接。
- 計算機網絡時代:人們開始實驗基於分組交換技術的計算機網絡,並着手研究不同廠商的計算機之間相互通信的技術。
- 互聯網普及時代:“瘦身”與“多供應商連接”,構建更低成本的網絡環境,連接異構型計算機的通信網絡技術就是現在我們所看的互聯網技術。
- 以互聯網爲中心的時代:許多發展道路各不相同的網絡技術正在向互聯網靠攏。
- 無論何時何地一切皆TCP/IP的網絡時代:TCP/IP是通信協議的統稱。
1.2協議
簡介:計算機網絡體系結構將這些網絡協議進行了系統歸納,TCP/IP就是IP、TCP、HTTP等協議的集合。
分組交換協議:分組交換是指將大數據分割成一個個叫做包(Packet)的較小單位進行傳輸的方法。
標準化:ISO(國際標準化組織)制定了一個國際標準OSI。
OSI參考模型:
- 應用層:爲應用程序提供服務並規定應用程序中通信相關細節。包括文件傳輸、電子郵件、遠程登錄(虛擬終端)等協議。
- 表示層:將應用處理的信息轉換爲適合網絡傳輸的格式,或將來自下一層的數據轉換爲上層能夠處理的格式。因此它主要負責數據格式的轉換。具體來說,就是將設置固有的數據格式轉換爲網絡標準傳輸格式。不同設備對同一比特流解釋可能會不同。主要作用格式保持一致。
- 會話層:負責建立和斷開通信連接(數據流動的邏輯通路),以及數據的分割等數據傳輸相關的管理。
- 傳輸層:起着可靠傳輸的作用。只在通信雙方節點上進行處理,而無需在路由器上處理。
- 網絡層:將數據傳輸到目標地址。目標地址可以是多個網絡通過路由器連接而成某一個地址。因此這一層主要負責尋址和路由選擇。
- 數據鏈路層:負責物理層面上互聯的、節點之間的通信傳輸。例如與1個以太網相連2個節點之間的通信。將0、1序列劃分具有意義的數據幀傳送給對端(數據幀的生成與接收)。
- 物理層:負責0、1比特流(0、1序列)與電壓高低、光的閃滅之間的互換。
通信處理:
網絡通信:
- 單播:1對1通信。
- 廣播:消息從1臺主機發送給與之相連的所有其他主機。(所有主機限同一個數據鏈路內)。典型例子電視播放。
- 多播:多播與廣播相似,將消息發給多個接收主機。不同之處在於多播要限定某一組主機作爲接收端。例子:電視會議。
- 任播:在特定的多臺主機中選出一臺作爲接收端的一種通信方式。
網絡構成元素:
- 網卡:網絡接口卡(NIC),網絡適配器、網卡、LAN卡。
- 中繼器:識別0、1序列調整波形進行相應放大與轉發。可以在雙絞線電纜與光纖電纜之間轉換。
- 網橋/2層交換機:數據鏈路層面上連接兩個網絡設備。它能夠識別數據鏈路層中的數據幀,數據鏈路的數據幀中有一個數據位叫做FCS,檢驗數據。有些網橋能夠判斷是否將數據報文轉發給相鄰的網段,這種網橋叫做自學網橋。會記住曾經通過自己轉發的所有數據幀的MAC地址,並保存到自己的內存表中。交換集線器(Hub)屬於網橋的一種。
- 路由器/3層交換機:網絡層面上兩個網絡、並對分組報文進行轉發的設備。網橋是根據MAC地址進行處理。而路由器/3層交換機則根據IP地址進行處理。路由器還有分擔網絡負荷的作用。具有一定網絡安全作用。
- 4-7層交換機:負責處理OSI模型中從傳輸層至應用層的數據。前端訪問分發到後臺多個服務器上,前端加一個負載均衡器。這種負載均衡器是4-7層交換機的一種。通信處理的優先級,帶寬控制。
- 網關:負責將從傳輸層到應用層的數據進行轉換和轉發的設備。它與4-7層一樣都是處理傳輸層及以上的數據,但是網關不僅轉發數據還負責對數據進行轉換,通信協議翻譯。
- 數據傳輸中,兩個設備之間數據流動的物理速度稱爲傳輸速率。又稱爲帶寬。衡量帶寬,cpu處理能力,網落擁堵狀況。
二.tcp/ip基礎知識
2.1背景及歷史
軍用技術
保證通信不中斷,分佈式通信誕生,分組交換技術誕生。
容災性較弱的中央集中式網絡:
容災性較強的分組網絡:
ARPANET誕生
1969年,驗證分組交換技術的實用性,搭建一套網絡。該網絡被稱做ARPANET(阿帕網)。
TCP/IP的誕生
1982年,TCP/IP具體規範最終定下來,並於1983年成爲ARPANET網絡唯一指定協議。
UNIX系統普及與互聯網的擴張。
商用互聯網服務
研發互聯網最初的目的是用於實驗和研究,到了1990年逐漸被引入公司企業及一般家庭。也出現專門提供互聯網接入服務的公司(稱作ISP),這些都使互聯網得到了更廣泛的普及。
2.2標準化
簡介:TCP/IP 是利用IP進行通信時所必須用到的協議羣的統稱。
TCP/IP 是先開發程序,後寫規格標準。
2.3互聯網基礎
“互聯網”是指由ARPANET發展而來、互連全世界的計算機網絡。互聯網的協議就是TCP/IP。
結構: 互聯網中的每個網絡都是骨幹網(BackBone)和末端網(Stub)組成的。每個網絡之間通過NOC(網絡操作中心)相連。如果網絡運營商不同,它的網絡連接方式和使用方法也會不同。連接這種異構網絡需要IX的支持。總之,互聯網就是衆多異構的網絡通過IX互連的一個巨型網絡。
連接互聯網需要向ISP或區域網提出申請。
2.4TCP/IP分層模型
TCP/IP與OSI參考模型:
硬件(物理層)
簡介:TCP/IP最底層負責數據傳輸的硬件。
網絡接口層(數據鏈路層)
簡介:網絡接口層利用以太網中數據鏈路層進行通信,因此屬於接口層。
互聯網層(網絡層)
簡介:互聯網層使用IP協議,它相當於OSI模型中的第3層網絡層。IP協議基於IP地址轉發分包數據。
IP:跨越網絡傳送數據包,使整個互聯網都能收到數據的協議。IP還隱含着數據鏈路的功能。通過IP,相互通信的主機之間不論經過怎樣的底層數據鏈路都能實現通信。雖然IP也是分組交換的一種協議,但是它不具有重發機制。即使分組數據包未能到達對端主機也不會重發。因此屬於非可靠性傳輸協議。
ICMP:IP數據包在發送途中一旦發生異常導致無法到達對端目標地址時,需要給發送一個異常的通知。ICMP就是爲這一功能而制定的。診斷網絡健康。
ARP:分組數據包的IP地址解析出物理地址(MAC)的一種協議。
傳輸層
簡介:傳輸層最主要的功能就是能夠讓應用程序之間實現通信。
TCP:
TCP是一種面向連接的傳輸層協議。它可以保證兩端通信主機之間的通信。
TCP能夠正確處理在傳輸過程中丟包、傳輸順序亂掉等異常情況。
還能有效利用帶寬,緩解網絡擁堵。
爲了建立與斷開連接,有時它需要至少7次的發包收包,導致網絡流量浪費。
爲了提高網絡的利用率,TCP協議中定義了各種各樣複雜的規範,因此不利於視頻會議(音頻、視頻的數據量既定)等場合使用。
UDP:
UDP有別於TCP,它是一種面向無連接傳輸層協議。UDP不會關注對端是否真的收到了傳送過去的數據,如果需要檢查對端是否收到分組數據包,或者對端是否連接網絡,則需要在應用程序中實現。
UDP常用於分組數據較少或多播、廣播通信以及視頻通信等多媒體領域。
應用層(會話層以上的分層)
簡介:TCP/IP的分層中,將OSI參考模型中的會話層、表示層和應用層的功能都集中到了應用程序中實現。
TCP/IP應用的架構絕大多數屬於客戶端/服務端模型。
提供服務的程序叫服務端,接受服務的程序叫客戶端。
www中文叫萬維網,是一種互聯網上數據讀取的規範。有時也叫Web、WWW或W3。
2.5通信示例
數據包
首部:
包、幀、數據報、段、消息:以上5個術語都用來表述數據單位,大致區分如下:包可以說是全能性術語。幀用於表示數據鏈路層中包的單位。而數據報IP和UDP等網絡層以上的分層中包的單位。段則則表示TCP數據流中的信息。最後,消息是指應用協議中數據的單位。
網絡傳輸的數據包由兩部分組成:一部分是協議所要用到的首部,另一部分是上層傳過來的數據。首部的結構由協議的具體規範詳細定義。
發送數據包
示例
- 應用程序處理:發送請求,編碼,會話層管理。
- TCP模塊的處理:TCP根據應用指示(會話層連接),負責建立連接、發送數據以及斷開連接。TCP提供將應用層發來的數據順利發送至對端的可靠傳輸。
- IP模塊處理
- 網絡接口(以太網驅動)處理
經過數據鏈路的包
數據包接收處理
- 網絡接口(以太網驅動)處理:主機收到以太網包以後,首先從以太網的包首部找到MAC地址判斷是否爲發給自己的包。如果不是發給自己的包則丟棄數據。
- IP模塊的處理
- TCP模塊的處理:首先會計算一下校驗和,判斷數據是否被破壞。然後檢查是否在安裝序號接收數據。最後檢查端口號,確定具體應用程序。
- 應用程序的處理
未完待續!----------------------------------------------------------------------------------------