tcp/ip系列--tcp/ip基礎知識

  最近讀完了《圖解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模塊的處理:首先會計算一下校驗和,判斷數據是否被破壞。然後檢查是否在安裝序號接收數據。最後檢查端口號,確定具體應用程序。
  • 應用程序的處理

 

未完待續!----------------------------------------------------------------------------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章