Ⅰ 02 - 數據鏈路層的詳細認識
時間有限我這里只寫了一部分內容,更詳細的內容可以直接看我的筆記 第三章數據鏈路層
數據鏈路層的任務就是將分組從一個網路中或一個鏈路上的一端傳送到另一端。數據鏈路層傳送的數據單元稱為幀(frame)。所以也可以說數據鏈路層的任務就是在一個網路(或一段鏈路上)傳送以幀為單位的數據
數據鏈路層屬於計算機網路的底層,僅在物理層的上方,在網路層的下方,網路中的主機、路由器等都必須實現數據鏈路層。數據鏈路層使用的信道主要有兩種類型,點對點信道,廣播信道
在點對點信道中最重要的是如何實現可靠傳輸(在實際中並不會在數據鏈路層實現可靠傳輸,而是交給上層)
網路層的IP數據報必須向下傳達到數據鏈路層,在數據報前後分別加上首部和尾部,封裝成為一個完整的幀。因為在數據鏈路層就是以幀為單位傳輸和處理數據,因此,數據鏈路層中的幀長就是數據部分加上首部和尾部的長度。
發送方將幀以比特流的形式發送給接收方(在物理層會轉換成電信號),接收方為了能夠處理幀數據,必須正確認識每個幀的開始和結束,這就需要進行幀定界凱雀
幀定界有很多種,比如乙太網就是在傳輸的幀與幀之間插入時間間隔來實現,只有首部有幀定界符,尾部沒有幀定界符。還有一種就是在幀的首部和尾部都加上一個幀定界符。
幀定界符:
不同類型:
幀定界符在透明傳輸中的蠢孫碰問題和解決
問題: 傳輸數據存在使用幀定界符所使用的字元或比特組合,會出現錯誤的幀定界
解決:
注意:
通信鏈路的傳輸都不會是理想的,比特在傳輸過程中可能會產生差錯,比如1變為0,0變為1,這叫做比特差錯,因此就需要在接收端進行差錯檢測。
發送方需要採用某種差錯檢測演算法,使用發送的數據計算出差錯檢測碼EDC,差錯檢測碼隨數據一起發送給接收方,接收方使用同樣的差錯檢測演算法計算出差錯檢測碼EDC',如果兩者不一致,則表示出現差錯,一般採用循環冗餘檢驗(CRC)來檢錯
差錯檢測演算法:
接收雙方需要約定好一個多項式,之後按照下圖的方式進行處理
案例說明
發送方的冗餘校驗:
說明:
接收方的冗餘校驗:
說明:
注意:
有些情況下數據鏈路層需要向上層的網路層提供「可靠傳輸」的服務,也就是發送端發送什麼,對應的接收端就必須接收什麼。帶談我們通過可靠傳輸協議來實現數據鏈路層的可靠傳輸,有三種,停止等待協議SW、回退N步協議GBN、選擇重傳協議SR。
可靠傳輸協議就是要在不可靠的信道上實現可靠的數據傳輸服務。
在計算機網路中實現可靠傳輸的基本方法就是:如果發現錯誤就重傳
使用分組確認和超時重傳機制就可以在不可靠的信道上實現可靠的數據傳輸。
解決: 可以在發送方發送完一個數據分組後,啟動一個超時計時器,若超出了設置的重傳時間,發送方仍沒有收到接收方的任何確認分組,就會重傳原來的分組。
注意: 重傳時間的選擇一般是略大於「從發送方到接收方的平均往返時間」數據鏈路層的往返時間是比較確定的,可以使用這種方式
說明:
上面也可以看到停止等待協議的信道利用率很低,所以需要採用流水線傳輸方式,發送方不間斷的發送分組來提高信道利用率。但是這種方式有可能會使接收方來不及處理這些分組,從而導致分組的丟失。因此需要限制發送方連續發送分組的個數避免這個問題,而這種方式就是回退N步協議。
簡單理解回退N步協議就是停止等待協議只能發送一個分組就等待,回退N步協議是發送多個分組才處於等待狀態
原理: 回退N步協議在流水線傳輸的基礎上利用發送窗口來限制發送方連續發送分組的個數,是一種連續的ARQ協議
注意:
選擇重傳協議是在回退N步協議的基礎上,只重傳出現差錯的分組,這時接收窗口不再為1,以便先收下失序到達但仍然處於接收窗口中的分組,等到所缺分組收齊後再一並送交上層,這就是選擇重傳協議。
注意:
Ⅱ 《計算機網路》數據交換有幾種方式,各自的優缺點是什麼
自己看
計算機網路的應用
計算機網路在資源共享和信息交換方面所具有的功能,是其它系統所不能替代的。計算機網路所具有的高可靠性、高性能價格比和易擴充性等優點,使得它在工 業、農業、交通運輸、郵電通信、文化教育、商業、國防以及科學研究等各個領域、各個行業獲得了越來越廣泛的應用。我國有關部門也已制訂了"金橋"、"金關 "和"金卡"三大工程,以及其它的一些金字型大小工程,這些工程都是以計算機網路為基礎設施,為促使國民經濟早日實現信息化的主幹工程,也是計算機網路的具體 應用。計算機網路的應用范圍實在太廣泛,本節僅能涉及一些帶有普遍意義和典型意義的應用領域。
(1)辦公自動化OA(Office Automation)
辦公自動化系統,按計算機系統結構來看是一個計算機網路,每個辦公室相當於一個工作站。它集計算機技術、資料庫、區域網、遠距離通信技術以及人工智 能、聲音、圖像、文字處理技術等綜合應用技術之大成,是一種全新的信息處理方式。辦公自動化系統的核心是通信,其所提供的通信手段主要為數據/聲音綜合服 務、可視會議服務和電子郵件服務。
(2)電子數據交換EDI(Electronic Data Interchange)
電子數據交換,是將貿易、運輸、保險、銀行、海關等行業信息用一種國際公認的標准格式,通過計算機網路通信,實現各企業之間的數據交換,並完成以貿易為中心的業務全過程。EDI在發達國家應用已很廣泛,我國的"金關"工程就是以EDI作為通信平台的。
(3)遠程交換(Telecommuting)
遠程交換是一種在線服務(Online Serving)系統,原指在工作人員與其辦公室之間的計算機通信形式,按通俗的說法即為家庭辦公。
一個公司內本部與子公司辦公室之間也可通過遠程交換系統,實現分布式辦公系統。遠程交換的作用也不僅僅是工作場地的轉移,它大大加強了企業的活力與快速反應能力。近年來各大企業的本部,紛紛採用一種被之為"虛擬辦公室"(Virtual Office)的技術,創造出一種全新的商業環境與空間。遠程交換技術的發展,對世界的整個經濟運作規則產生了巨大的影響。
(4)遠程教育(Distance Ecation)
遠程教育是一種利用在線服務系統,開展學歷或非學歷教育的全新的教學模式。遠程教育幾乎可以提供大學中所有的課程,學員們通過遠程教育,同樣可得到正規大學從學士到博士的所有學位。這種教育方式,對於已從事工作而仍想完成高學位的人士特別有吸引力。
遠程教育的基礎設施是電子大學網路EUN(Electronic University Network)。EUN的主要作用是向學員提供課程軟體及主機系統的使用,支持學員完成在線課程,並負責行政管理、協作合同等。這里所指的軟體除系統軟 件之外,包括CAI課件,即計算機輔助教學(Computer Aided Instruction)軟體。CAI課件一般採用對話和引導式的方式指導學生學習發現學生錯誤還具有回溯功能,從本質上解決了學生學習中的困難。
(5)電子銀行
電子銀行也是一種在線服務系統,是一種由銀行提供的基於計算機和計算機網路的新型金融服務系統。電子銀行的功能包括:金融交易卡服務、自動存取款作 業、銷售點自動轉帳服務、電子匯款與清算等,其核心為金融交易卡服務。金融交易卡的誕生,標志了人類交換方式從物物交換、貨幣交換到信息交換的又一次飛 躍。
圍繞金融交易卡服務,產生了自動存取款服務,自動取款機(CD)及自動存取款機(ATM)也應運而生。自動取款機與自動存取款機大多採用聯網方式工 作,現已由原來的一行聯網發展到多行聯網,形成覆蓋整個城市、地區,甚至全國的網路,全球性國際金融網路也正在建設之中。
電子匯款與清算系統可以提供客戶轉帳、銀行轉帳、外幣兌換、托收、押匯信用證、行間證券交易、市場查證、借貸通知書、財務報表、資產負債表、資金調撥 及清算處理等金融通信服務。由於大型零售商店等消費場所採用了終端收款機(POS),從而使商場內部的資金即時清算成為現實。銷售點的電子資金轉帳是 POS與銀行計算機系統聯網而成的。
當前電子銀行服務又出現了智能卡(IC)。IC卡內裝有微處理器、存儲器及輸入輸出介面,實際上是一台不帶電源的微型電子計算機。由於採用IC卡,持卡人的安全性和方便性大大提高了,
(6)電子公告板系統BBS(Bulletin Board System)
電子公告板是一種發布並交換信息的在線服務系統。BBS可以使更多的用戶通過電話線以簡單的終端形式實現互聯,從而得到廉價的豐富信息,並為其會員提供網上交談、發布消息、討論問題、傳送文件、學習交流和游戲等的機會和空間。
(7)證券及期貨交易
證券及期貨交易是由於其獲利巨大、風險巨大,且行情變化迅速,投資者對信息的依賴格外顯得重要。金融業通過在線服務計算機網路提供證券市場分析、預 測、金融管理、投資計劃等需要大量計算工作的服務,提供在線股票經紀人服務和在線資料庫服務(包括最新股價資料庫、歷史股價資料庫、股指資料庫以及有關新 聞、文章、股評等)。
(8)廣播分組交換
廣播分組交換實際上是由一種無線廣播與在線系統結合的特殊服務,該系統使用戶在任何地點都可使用在線服務系統。廣播分組交換可提供電子郵件、新聞、文 件等傳送服務,無線廣播與在線系統通過數據機,再通過電話局可以結合在一起。移動式電話也屬於廣播系統。
(9)校園網(Campus Network)
校園網是在大學校園區內用以完成大中型計算機資源及其它網內資源共享的通信網路。一些發達國家已將校園網確定為信息高速公路的主要分支。無論在國內還 是國外,校園網的存在與否,是衡量該院校學術水平與管理水平的重要標志,也是提高學校教學、科研水平不可或缺的重要支撐環節。
共享資源是校園網最基本的應用,人們通過網路更有效地共享各種軟、硬體及信息資源,為眾多的科研人員提供一種嶄新的合作環境。校園網可以提供異型機聯網的 公共計算環境、海量的用戶文件存儲空間、昂貴的列印輸出設備、能方便獲取的圖文並茂的電子圖書信息,以及為各級行政人員服務的行政信息管理系統和為一般用 戶服務的電子郵件系統。
(10)信息高速公路
如同現代信息高速公路的結構一樣,信息高速公司也分為主幹、分支及樹葉。圖像、聲音、文字轉化為數字信號在光纖主幹線上傳送,由交換技術再送到電話線或電纜分支線上,最終送到具體的用戶"樹葉"。主幹部分由光纖及其附屬設備組成,是信息高速公路的骨架。
我國政府也十分重視信息化事業,為了促進國家經濟信息化,提出個"金橋"工程--國家公用經濟信息網工程、"金關"工程--外貿專用網工程、"金卡" 工程--電子貨幣工程。這些工程是規模宏大的系統工程,其中的"金橋工程"是國民經濟的基礎設施,也是其它"金"字系列工程的基礎。
「金橋」工程包含信息源、信息通道和信息處理三個組成部分,通過衛星網與地面光纖網開發,並利用國家及各部委、大中型企業的信息資源為經濟建設服務。 「金卡」工程是在金橋網上運行的重要業務系統之一,主要包括電子銀行及信用卡等內容。「金卡」工程又稱為無紙化貿易工程,其主要實現手段為EDI,它以網 絡通信和計算機管理系統為支撐,以標准化的電子數據交換替代了傳統的紙面貿易文件和單證。其它的一些「金」字系列工程,如「金稅」工程、「金智」工程、 「金盾」工程等亦在籌劃與運作之中。這些重大信息工程的全面實施,在國內外引起了強烈反響,開創了我國信息化建設事業的新紀元。
(11)企業網路
集散系統和計算機集成製造系統是兩種典型的企業網路系統。
集散系統實質上是一種分散型自動化系統,又稱做以微處理機為基礎的分散綜合自動化系統。集散系統具有分散監控和集中綜合管理兩方面的特徵,而更將"集 "字放在首位,更注重於全系統信息的綜合管理。80年代以來,集散系統逐漸取代常規儀表,成為工業自動化的主流。工業自動化不僅體現在工業現場,也體現在 企業事務行政管理上。集散系統的發展及工業自動化的需求,導致了一個更龐大、更完善的計算機集成製造系統CIMS(Computer Integrated Manufacturing System)的誕生。
集散系統一般分為三級:過程級、監控級和管理信息級。集散系統是將分散於現場的以微機為基礎的過程監測單元、過程式控制制單元、圖文操作站及主機(上位 機)集成在一起的系統。它採用了區域網技術,將多個過程監控、操作站和上位機互連在一起,使通信功能增強,信息傳輸速度加快,吞吐量加大,為信息的綜合管 理提供了基礎。因為CIMS具有提高生產率、縮短生產周期等一系列極具吸引力的優點,所以已經成為未來工廠自動化的方向。
(12)智能大廈和結構化綜合布線系統
智能大廈(Intelligent Building)是近十年來新興的高技術建築形式,它集計算機技術、通信技術、人類工程學、樓宇控制、樓宇設施管理為一體,使大樓具有高度的適應性(柔 性),以適應各種不同環境與不同客戶的需要。智能大廈是以信息技術為主要支撐的,這也是其具有"智能"之名稱的由來。有人認為具有三A的大廈,可視為智能 大廈。所謂三A就是CA(通信自動化)、OA(辦公自動化)和BA(樓宇自動化)。概括起來,可以認為智能大廈除有傳統大廈功能之外,主要必須具備下列基 本構成要素:高舒適的工程環境、高效率的管理信息系統和辦公自動化系統、先進的計算機網路和遠距離通信網路及樓宇自動化。
智能大廈及計算機網路的信息基礎設施是結構化綜合布線系統SCS(Structure Cabling System)。在建設計算機網路系統時,布線系統是整個計算機網路系統設計中不可分割的一部分,它關繫到日後網路的性能、投資效益、實際使用效果以及日 常維護工作。結構化布線系統是指在一個樓宇或樓群中的通信傳輸網路能連接所有的話音、數字設備,並將它們與交換系統相連,構成一個統一、開放的結構化布線 系統。在綜合布線系統中,設備的增減、工位的變動,僅需通過跳線簡單插拔即可,而不必變動布線本身,從而大大方便了管理、使用和維護。
網路的分類
按照網路的類型特徵,對網路進行分類是了解網路、學習網路技術的重要基礎之一。從不同的角度對網路分類則有不同的分類方法。常見的分類方法有以下幾種:
1、按分布地理范圍分類
按分布地理范圍分類,計算機網路可以分為廣域網、區域網和城域網三種。
廣域網(Wide Area Network,簡稱WAN)又稱遠程網,其分布范圍可達數百公里乃至更遠,可以覆蓋一個地區,一個國家,更至全世界。
區域網(Local Area Network,簡稱LAN)是將小區域內的計算機及各種通信設備互連在一起的網路,其分布范圍局限在一個辦公室、一個建築物或一個企業內。
城域網(Metropolitan Area Network,簡稱MAN)的分布范圍介於區域網與廣域網之間,其目的是在一個較大的地理區域內提供數據、聲音和圖像的傳輸。
2、按交換方式分類
按網路的交換方式分類,計算機網路可以分為電路交換網,報文交換網和分組交換網三種。
電路交換(Circuit Switching)方式類似於傳統的電話交換方式,用戶在開始通信之前,必須申請建立一條從發送端到接收端的物理通道,並且在雙方通信期間始終佔用該信道。
報文交換(Message Switching)方式的數據單元是要發送一個完整報文,其長度不受限制。報文交換採用存儲轉發原理,這點像古代的郵政通信,郵件由途中的驛站逐個存儲 轉發一樣。每個報文中含有目的地址,每個用戶節點要為途徑的報文選擇適當的路徑,使其能最終達到目的端。
分組交換(Packet Switching)方式也稱包交換方式,1969年首次在ARPANET上使用,現在人們都公認ARPANET是分組交換網之父,並將分組交換網的出現 作為計算機網路新時代的開始。採用分組交換方式通信前,發送端先將數據劃分為一個個等長的單位(即分組),這些分組逐個由各中間節點採用存儲轉發方式進行 傳輸,最終達到目的端。由於分組長度有限,可以在中間節點機的內存中進行存儲處理,其轉發速度可大大提高。
3、按拓撲結構分類
按拓撲結構分類,計算機網路可分為星形網、匯流排網、環形網、樹型網和網形網。
星形網是最早採用的拓撲結構形式,其每個站點都通過連接電纜與主控機相聯,相關站點之間的通信都由主控機進行,所以要求主控機有很高的可靠性,這種結構是一種集中控制方式。
環形網中各工作站依次相互連接組成一個閉合的環形,信息可以沿著環形線路單向(或雙向)傳輸,由目的站點接收。環形網適合那些數據不需要在中心主控機上集中處理而主要在各站點進行處理的情況。
匯流排結構網中各個工作站通過一條匯流排連接,信息可以沿著兩個不同的方向由一個站點傳向另一個站點,是目前區域網中普遍採用的一種網路拓撲結構情形。
除了以上分類方法以外,還可按所採用的傳輸媒體分為雙絞線網,同軸電纜網、光纖網、無線網;按信道的帶寬分為窄帶網和寬頻網;按不同用戶分為科研網、教育網、商業網和企業網等。
計算機網路的拓撲結構和傳輸媒體
1、網路的拓撲結構
「拓撲」"這個名詞是從幾何學中借用來的。網路拓撲是指網路形狀,或者是它在物理上的連通性。下面介紹幾種最為主要的網路拓撲結構。
(1)星形拓撲
星形拓撲是由中央節點和通過點到點通信鏈路接到中央節點的各個站點組成,如圖 7.5所示。中央節點執行集中工通信控制策略,因此中央節點相當復雜,而各個站點的通信處理負擔都很小。星形網採用的交換方式有電路交換和報文交換,尤以 電路交換方式更為普遍。這種結構一旦建立通道連接,就可以無延遲地在連通的兩個站點之間傳送數據。目前流行的專用交換機 PBX( Private Branch eXchange)就是星形拓撲結構的典型實例。
星形拓撲結構有以下優點:
① 控制簡單。在星形網路中,任何一個站點只和中央節點相連接,因而媒體訪問控制方法很簡單,致使訪問協議也十分簡單。
② 故障診斷和隔離容易。在星形網路中,中央節點對網路連接線路可以逐一地隔離開來進行故障檢測和定位,單個連節點的故障隻影響一個設備,不會影響整個網路。
③ 方便服務。中央節點可方便地對各個站點提供服務和網路重新配置。
星形拓撲結構的缺點:
① 電纜長度和安裝工作量相當可觀。因為每個站點都要和中央節點直接連接,需要耗費大量的電纜、安裝、維護的工作量也劇增。
② 中央節點的負擔較重,易形成瓶頸。一旦發生故障,則全網受影響,因而對中央節點的可靠性和冗餘度方面的要求很高。
③ 各站點的分布處理能力較低。
星形拓撲結構廣泛應用於網路智能集中於某個中央站點的場合。從目前的趨勢看,計算機的發展已從集中的主機系統發展到大量功能很強的微型機和工作站,在這種形勢下,傳統的星形拓撲使用會有所減少。
(2)匯流排拓撲
匯流排拓撲結構採用一個信道作為傳輸媒體,所有站點都通過相應的硬體介面直接連到這一公共傳輸媒體上,該公共傳輸媒體即稱為匯流排。任何一個站發送的信號都沿著傳輸媒體傳播,而且能被所有的其它站點所接收。匯流排拓撲結構見圖 7.6所示。
因為所有站點共享一條公用的通信信道,所以一次只能有一個設備傳輸信號。通常採用分布式控制策略來確定哪個站點可以發送。發送時,發送站將報文分成分 組,然後逐個依次發送這些分組,有時還要與其它站來的分組交替地在傳輸媒體上傳輸。當分組經過各站時,其中的目的站會識別到分組所攜帶的目的地址,然後復 制下這些分組的內容。
匯流排拓撲結構的優點:
① 匯流排結構所需要的電纜數量少。
② 匯流排結構簡單,又無源工作,有較高的可靠性。
③ 易於擴充,增加和減少用戶比較方便。
匯流排拓撲結構的缺點:
① 匯流排傳輸距離有限,通信范圍受限制。
② 故障診斷和隔離比較困難。
③ 分布式協議不能保證信息的及時傳輸。
④ 不具有實時功能,站點必須是智能的,要有媒體訪問控制功能,從而增加了站點的硬體和軟體開銷。
(3)環形拓撲
環形拓撲網路由站點和連接站點的鏈路組成一個閉合環,如圖 7.7所示,每個站點能夠接收從一鏈路傳來的數據,並以同樣的速率串列地把該數據沿環送到另一鏈路上。這種鏈路可以是單向的,也可以是雙向的。數據以分組形式發送,如果環上 A站希望發送一個報文到 C站,就先要把報文分成若干個分組,每個分組除了數據還要加上某些控制信息,其中包括 C站的地址。 A站依次把每個分組送到環上,開始沿環傳輸, C站識別到帶有它自己地址的分組時,便將其中的數據復制下來。由於多個設備連接在一個環上,因此需要用分布式控制策略來進行控制。
環形拓撲結構的優點:
① 電纜的長度短。環形拓撲結構的網路所需的電纜長度和匯流排拓撲網路相似,但比起星形拓撲結構的網路要短得多。
② 減少或增加工作站時,僅需簡單的連接操作。
③ 可使用光纖。光纖的傳輸速度率很高,十分適合於環形拓撲的單向傳輸。
環形拓撲結構的缺點:
① 節點的故障會引起全網路的故障。這是因為環上的數據傳輸要通過接在環上的每一個節點,一旦環中某個節點發生故障就會引起全網路的故障。
② 故障檢測困難。這與匯流排拓撲結構相似,因為不是集中控制,故障檢測需要在網上各個節點進行,因此故障檢測就較為困難。
③ 環形拓撲結構的媒體訪問控制協議都採用令牌傳送的方式,在負載很輕時,信道利用率相對來說比較低。
總的來說,不管區域網或廣域網,網路的拓撲選擇,需要考慮諸多因素,網路要既利於安裝,又有利於擴展,網路的可靠性也是要考慮的重要因素,以外網路拓撲結構的選擇還會影響傳輸媒體的選擇和媒體訪問控制方法的確定。
2、傳輸媒體
傳輸媒體是通信網中發送方和接收方之間的物理通路,計算機網路中採用的傳輸媒體可以分為有線和無線兩大類。雙絞線、同軸電纜和光纖是常用的三種有線傳輸媒體,無線電通信、微波通信、紅外線通信以及激光通信的信息載體都屬於無線傳輸媒體。
傳輸媒體的特性對網路數據通信質量有很大的影響,這些特性是:
① 物理特性,說明傳輸媒體的特徵。
② 傳輸特徵,包括信號形式、調制技術、傳輸速度及頻帶寬度等內容。
③ 連通性,採用點到點連接還是多點連接。
④ 地域范圍,網上各點間的最大距離。
⑤ 抗干擾性,防止雜訊、電磁干擾對數據傳輸影響的能力。
⑥ 相對價格,以元件、安裝和維護的價格為基礎。
以下分別介紹其中最為常用的傳輸媒體的特性。
(1)雙絞線
由螺旋狀扭在一起的兩根絕緣導線組成,線對扭在一起可以減少相互間的輻射電磁干擾。雙絞線是最常用的傳輸媒體,早就用於電話通信中的模擬信號傳輸,也 可用於數字信號的傳輸。雙絞線一般是銅質的,能提供良好的傳導率。雙絞線既可用於傳輸模擬信號,也可用於傳輸數字信號。對於模擬信號來說,大約每 5 -6km需要一個放大器;對於數字信號來說,每 2 -3km使用一個中繼器。
雙絞線也可用於區域網,如 10BASE-T和 100BASE-T匯流排,可分別提供 10Mbit/s和 100Mbit/s的數據傳輸速率。通常將多對雙絞線封裝於一個絕緣套里組成雙絞線電纜,區域網中常用的 3類雙絞線和 5類雙絞線,均由 4對雙絞線組成,其中 3類雙絞線常用於 10BASE-T匯流排區域網, 5類雙絞線常用於 100BASE-T匯流排區域網。
雙絞線普遍話用於點到點的連接,雙絞線可以很容易地在 15km或更大范圍內提供數據傳輸。區域網的雙絞線主要用於一個建築物或幾個建築物間的通信,但在 10Mbit/s和 100Mbit/s傳輸速率的 10BASE-T和 100BASE-T的匯流排傳輸距離都不超過 100m。
雙絞線的抗干擾性能不如同軸電纜,但價格比同軸電纜要便宜。
(2)同軸電纜
同軸電纜也像雙絞線一樣由一對導體組成,但它們是按 "同軸 "的形式構成線對,其最里層是內芯,向外依次為絕緣層、屏蔽層,最外則是起保護作用的塑料外套,內芯和屏蔽層構成一對導體。
同軸電纜分為基帶同軸電纜和寬頻同軸電纜。基帶同軸電纜又可以分為粗纜和細纜兩種,都用於直接傳送數字信號;寬頻同軸電纜用於頻分多路復用的模擬信號傳輸,也可用於不使用頻分多路復用的高速數據通信和模擬信號的傳輸,閉路電視所使用的 CATV電纜就是寬頻同軸電纜。
同軸電纜適用於點到點連接和多點連接,基帶電纜每段可支持幾百台設備,在大系統中還可以用轉接器將各段連接起來;寬頻同軸電纜可支持數千台設備,但在高數據傳輸速率( 50Mbit/s)下使用寬頻電纜時,設備數目限制在 20-30台。
同軸電纜的傳輸距離取決於傳輸信號的形式和傳輸的速率,典型基帶電纜的電大距離限制在幾公里。在相同速率條件下,粗纜傳輸距離較細纜長。
同軸電纜的抗干擾性能比雙絞線好,但在價格上較雙絞線貴,但比光纖要便宜。
(3)光纖
光纖是光纖纖維的簡稱,它由能傳導光波的石英玻璃纖維外加保護層構成。相對於金屬導線來說具有重量輕、線徑細的特點。用光纖傳輸信號時,在發送端先要將電信號轉換成光信號,而在接收端要由光檢測器還原成電信號。
光纖在計算機網路中普遍採用點到點連接,從地域范圍來看可以在 6 -8km的距離內不用中繼器傳輸,因此光纖適合於在幾個建築物之間通過點到點的鏈路連接區域網。由於光纖具有不受電磁干擾和噪音影響的獨有特徵,適宜在長 距離內保持高速數據傳輸率,而且能提供很好的安全性。
網路除了有線媒體以外,還可以通過無線傳輸媒體進行無線傳輸,目前常用的技術有無線電波、微波、紅外線和激光。隨著攜帶型計算機的出現和普及,以及在軍事、野外等特殊場合下移動產品的通信聯網需要,促進了無線通信網路的發展,出現了無線網路產品。
計算機網路的協議及其作用
兩個計算機間通信時對傳輸信息內容的理解、信息表示形式以及各種情況下的應答信號都必需進行一個共同的約定,我們稱為協議( Protocol)。一般來說,協議要由如下三個要素組成:
(1)語義( Semantics)。涉及用於協調和差錯處理的控制信息。
(2)語法( Syntax)。涉及數據及控制信息的格式、編碼及信號電平等。
(3)定時( Timing)。涉及速度匹配和排序等。
協議本質上無非是一種網上交流的約定,由於聯網的計算機類型可以各不相同,各自使用的操作系統和應用軟體也不盡相同,為了保持彼此之間實現信息交換和資源共享,它們必須具有共同的語言,交流什麼、怎樣交流及何時交流,都必須遵行某種互相都能夠接受的規則。
目前,全球最大的網路是網際網路( Internet),它所採用的網路協議是 TCP/IP協議。它是網際網路的核心技術。 TCP/IP協議,具體的說就是傳輸控制協議( Transmission Control Protocol,即 TCP)和網際協議( Internet Protocol,即 IP)。其中 TCP協議用於負責網上信息的正確傳輸,而 IP協議則是負責將信息從一處傳輸到另一處。
TCP/IP協議本質上是一種採用分組交換技術的協議。其基本思想是把信息分割成一個個不超過一定大小的信息包來傳送。目的是:一方面可以避免單個用戶長時間地佔用網路線路;另一方面,可以在傳輸出錯時不必重新傳送全部信息,只需重傳出錯的信息包就行了。
TCP/IP協議組織信息傳輸的方式是一種 4層的協議方式。下表是一種簡化了的層次模型:
應用層 Telnet、FTP和e-mail等
傳輸層 TCP和UDP
網路層 IP、ICMP和IGMP
網路介面層 設備驅動程序及介面卡
模型中,最底層為 TCP/IP的實現基礎,主要用於訪問具體區域網,如以大網等。中間兩層為 TCP/IP協議,其中的 UDP為一種建立在 IP協議基礎上的用戶數據協議( User Data gram Protocol,即 UDP)。最上層為建立在 TCP/IP協議基礎上的一些服務: TELNET(遠程登錄),允許某個用戶登錄到網上的其它計算機上(要求用戶必須擁有該機帳號),然後像使用自己的計算機一樣使用遠端計算機: FTP( File Transfer Protocol,文件傳輸協議),允許用戶在網上計算機之間傳送程序或文件; SMTP( Simple Message Transfer Protocol,簡單郵件傳送協議),允許網上計算機之間互通信函; DNS( Domain Name Service,域名服務協議),用於將域名地址轉換成 IP地址等。
網際網路(Internet)及其應用
網際網路概述
網際網路( Internet)是一個建立在網路互連基礎上的最大的、開放的全球性網路。網際網路擁有數千萬台計算機和上億個用戶,是全球信息資源的超大型集合體。所有 採用 TCP/IP協議的計算機都可以加入網際網路,實現信息共享和互相通信。與傳統的書籍、報刊、廣播、電視等傳播媒體相比,網際網路使用更方便,查閱更快捷,內 容更豐富。今天,網際網路已在世界范圍內得到了廣泛的普及與應用,並正在迅速地改變人們的工作方式和生活方式。
網際網路起源於 20世紀 60年代中期由美國國防部高級研究計劃局( ARPA)資助的 ARPANET,此後提出的 TCP/IP協議為網際網路的發展奠定了基礎。 1986年美國國家科學基金會( NSF)的 NSFNET加入了網際網路主幹網,由此推動了網際網路的發展。但是,網際網路的真正飛躍發展應該歸功於 20世紀 90年代的商業化應用。此後,世界各地無數的企業和個人紛紛加入,終於發展演變成今天成熟的網際網路。
我國正式接入網際網路是在 1994年 4月,當時為了發展國際科研合作的需要,中國科學院高能物理研究所和北京化工大學開通了到美國的網際網路專
Ⅲ 計算機網路第三章(數據鏈路層)
3.1、數據鏈路層概述
概述
鏈路 是從一個結點到相鄰結點的一段物理線路, 數據鏈路 則是在鏈路的基礎上增加了一些必要的硬體(如網路適配器)和軟體(如協議的實現)
網路中的主機、路由器等都必須實現數據鏈路層
區域網中的主機、交換機等都必須實現數據鏈路層
從層次上來看數據的流動
僅從數據鏈路層觀察幀的流動
主機H1 到主機H2 所經過的網路可以是多種不同類型的
注意:不同的鏈路層可能採用不同的數據鏈路層協議
數據鏈路層使用的信道
數據鏈路層屬於計算機網路的低層。 數據鏈路層使用的信道主要有以下兩種類型:
點對點信道
廣播信道
區域網屬於數據鏈路層
區域網雖然是個網路。但我們並不把區域網放在網路層中討論。這是因為在網路層要討論的是多個網路互連的問題,是討論分組怎麼從一個網路,通過路由器,轉發到另一個網路。
而在同一個區域網中,分組怎麼從一台主機傳送到另一台主機,但並不經過路由器轉發。從整個互聯網來看, 區域網仍屬於數據鏈路層 的范圍
三個重要問題
數據鏈路層傳送的協議數據單元是 幀
封裝成幀
封裝成幀 (framing) 就是在一段數據的前後分別添加首部和尾部,然後就構成了一個幀。
首部和尾部的一個重要作用就是進行 幀定界 。
差錯控制
在傳輸過程中可能會產生 比特差錯 :1 可能會變成 0, 而 0 也可能變成 1。
可靠傳輸
接收方主機收到有誤碼的幀後,是不會接受該幀的,會將它丟棄
如果數據鏈路層向其上層提供的是不可靠服務,那麼丟棄就丟棄了,不會再有更多措施
如果數據鏈路層向其上層提供的是可靠服務,那就還需要其他措施,來確保接收方主機還可以重新收到被丟棄的這個幀的正確副本
以上三個問題都是使用 點對點信道的數據鏈路層 來舉例的
如果使用廣播信道的數據鏈路層除了包含上面三個問題外,還有一些問題要解決
如圖所示,主機A,B,C,D,E通過一根匯流排進行互連,主機A要給主機C發送數據,代表幀的信號會通過匯流排傳輸到匯流排上的其他各主機,那麼主機B,D,E如何知道所收到的幀不是發送給她們的,主機C如何知道發送的幀是發送給自己的
可以用編址(地址)的來解決
將幀的目的地址添加在幀中一起傳輸
還有數據碰撞問題
隨著技術的發展,交換技術的成熟,
在 有線(區域網)領域 使用 點對點鏈路 和 鏈路層交換機 的 交換式區域網 取代了 共享式區域網
在無線區域網中仍然使用的是共享信道技術
3.2、封裝成幀
介紹
封裝成幀是指數據鏈路層給上層交付的協議數據單元添加幀頭和幀尾使之成為幀
幀頭和幀尾中包含有重要的控制信息
發送方的數據鏈路層將上層交付下來的協議數據單元封裝成幀後,還要通過物理層,將構成幀的各比特,轉換成電信號交給傳輸媒體,那麼接收方的數據鏈路層如何從物理層交付的比特流中提取出一個個的幀?
答:需要幀頭和幀尾來做 幀定界
但比不是每一種數據鏈路層協議的幀都包含有幀定界標志,例如下面例子
前導碼
前同步碼:作用是使接收方的時鍾同步
幀開始定界符:表明其後面緊跟著的就是MAC幀
另外乙太網還規定了幀間間隔為96比特時間,因此,MAC幀不需要幀結束定界符
透明傳輸
透明
指某一個實際存在的事物看起來卻好像不存在一樣。
透明傳輸是指 數據鏈路層對上層交付的傳輸數據沒有任何限制 ,好像數據鏈路層不存在一樣
幀界定標志也就是個特定數據值,如果在上層交付的協議數據單元中, 恰好也包含這個特定數值,接收方就不能正確接收
所以數據鏈路層應該對上層交付的數據有限制,其內容不能包含幀定界符的值
解決透明傳輸問題
解決方法 :面向位元組的物理鏈路使用 位元組填充 (byte stuffing) 或 字元填充 (character stuffing),面向比特的物理鏈路使用比特填充的方法實現透明傳輸
發送端的數據鏈路層在數據中出現控制字元「SOH」或「EOT」的前面 插入一個轉義字元「ESC」 (其十六進制編碼是1B)。
接收端的數據鏈路層在將數據送往網路層之前刪除插入的轉義字元。
如果轉義字元也出現在數據當中,那麼應在轉義字元前面插入一個轉義字元 ESC。當接收端收到連續的兩個轉義字元時,就刪除其中前面的一個。
幀的數據部分長度
總結
3.3、差錯檢測
介紹
奇偶校驗
循環冗餘校驗CRC(Cyclic Rendancy Check)
例題
總結
循環冗餘校驗 CRC 是一種檢錯方法,而幀校驗序列 FCS 是添加在數據後面的冗餘碼
3.4、可靠傳輸
基本概念
下面是比特差錯
其他傳輸差錯
分組丟失
路由器輸入隊列快滿了,主動丟棄收到的分組
分組失序
數據並未按照發送順序依次到達接收端
分組重復
由於某些原因,有些分組在網路中滯留了,沒有及時到達接收端,這可能會造成發送端對該分組的重發,重發的分組到達接收端,但一段時間後,滯留在網路的分組也到達了接收端,這就造成 分組重復 的傳輸差錯
三種可靠協議
停止-等待協議SW
回退N幀協議GBN
選擇重傳協議SR
這三種可靠傳輸實現機制的基本原理並不僅限於數據鏈路層,可以應用到計算機網路體系結構的各層協議中
停止-等待協議
停止-等待協議可能遇到的四個問題
確認與否認
超時重傳
確認丟失
既然數據分組需要編號,確認分組是否需要編號?
要。如下圖所示
確認遲到
注意,圖中最下面那個數據分組與之前序號為0的那個數據分組不是同一個數據分組
注意事項
停止-等待協議的信道利用率
假設收發雙方之間是一條直通的信道
TD :是發送方發送數據分組所耗費的發送時延
RTT :是收發雙方之間的往返時間
TA :是接收方發送確認分組所耗費的發送時延
TA一般都遠小於TD,可以忽略,當RTT遠大於TD時,信道利用率會非常低
像停止-等待協議這樣通過確認和重傳機制實現的可靠傳輸協議,常稱為自動請求重傳協議ARQ( A utomatic R epeat re Q uest),意思是重傳的請求是自動進行,因為不需要接收方顯式地請求,發送方重傳某個發送的分組
回退N幀協議GBN
為什麼用回退N幀協議
在相同的時間內,使用停止-等待協議的發送方只能發送一個數據分組,而採用流水線傳輸的發送方,可以發送多個數據分組
回退N幀協議在流水線傳輸的基礎上,利用發送窗口來限制發送方可連續發送數據分組的個數
無差錯情況流程
發送方將序號落在發送窗口內的0~4號數據分組,依次連續發送出去
他們經過互聯網傳輸正確到達接收方,就是沒有亂序和誤碼,接收方按序接收它們,每接收一個,接收窗口就向前滑動一個位置,並給發送方發送針對所接收分組的確認分組,在通過互聯網的傳輸正確到達了發送方
發送方每接收一個、發送窗口就向前滑動一個位置,這樣就有新的序號落入發送窗口,發送方可以將收到確認的數據分組從緩存中刪除了,而接收方可以擇機將已接收的數據分組交付上層處理
累計確認
累計確認
優點:
即使確認分組丟失,發送方也可能不必重傳
減小接收方的開銷
減小對網路資源的佔用
缺點:
不能向發送方及時反映出接收方已經正確接收的數據分組信息
有差錯情況
例如
在傳輸數據分組時,5號數據分組出現誤碼,接收方通過數據分組中的檢錯碼發現了錯誤
於是丟棄該分組,而後續到達的這剩下四個分組與接收窗口的序號不匹配
接收同樣也不能接收它們,講它們丟棄,並對之前按序接收的最後一個數據分組進行確認,發送ACK4, 每丟棄一個數據分組,就發送一個ACK4
當收到重復的ACK4時,就知道之前所發送的數據分組出現了差錯,於是可以不等超時計時器超時就立刻開始重傳,具體收到幾個重復確認就立刻重傳,根據具體實現決定
如果收到這4個重復的確認並不會觸發發送立刻重傳,一段時間後。超時計時器超時,也會將發送窗口內以發送過的這些數據分組全部重傳
若WT超過取值范圍,例如WT=8,會出現什麼情況?
習題
總結
回退N幀協議在流水線傳輸的基礎上利用發送窗口來限制發送方連續發送數據分組的數量,是一種連續ARQ協議
在協議的工作過程中發送窗口和接收窗口不斷向前滑動,因此這類協議又稱為滑動窗口協議
由於回退N幀協議的特性,當通信線路質量不好時,其信道利用率並不比停止-等待協議高
選擇重傳協議SR
具體流程請看視頻
習題
總結
3.5、點對點協議PPP
點對點協議PPP(Point-to-Point Protocol)是目前使用最廣泛的點對點數據鏈路層協議
PPP協議是網際網路工程任務組IEIF在1992年制定的。經過1993年和1994年的修訂,現在的PPP協議已成為網際網路的正式標准[RFC1661,RFC1662]
數據鏈路層使用的一種協議,它的特點是:簡單;只檢測差錯,而不是糾正差錯;不使用序號,也不進行流量控制;可同時支持多種網路層協議
PPPoE 是為寬頻上網的主機使用的鏈路層協議
幀格式
必須規定特殊的字元作為幀定界符
透明傳輸
必須保證數據傳輸的透明性
實現透明傳輸的方法
面向位元組的非同步鏈路:位元組填充法(插入「轉義字元」)
面向比特的同步鏈路:比特填充法(插入「比特0」)
差錯檢測
能夠對接收端收到的幀進行檢測,並立即丟棄有差錯的幀。
工作狀態
當用戶撥號接入 ISP 時,路由器的數據機對撥號做出確認,並建立一條物理連接。
PC 機向路由器發送一系列的 LCP 分組(封裝成多個 PPP 幀)。
這些分組及其響應選擇一些 PPP 參數,並進行網路層配置,NCP 給新接入的 PC 機
分配一個臨時的 IP 地址,使 PC 機成為網際網路上的一個主機。
通信完畢時,NCP 釋放網路層連接,收回原來分配出去的 IP 地址。接著,LCP 釋放數據鏈路層連接。最後釋放的是物理層的連接。
可見,PPP 協議已不是純粹的數據鏈路層的協議,它還包含了物理層和網路層的內容。
3.6、媒體接入控制(介質訪問控制)——廣播信道
媒體接入控制(介質訪問控制)使用一對多的廣播通信方式
Medium Access Control 翻譯成媒體接入控制,有些翻譯成介質訪問控制
區域網的數據鏈路層
區域網最主要的 特點 是:
網路為一個單位所擁有;
地理范圍和站點數目均有限。
區域網具有如下 主要優點 :
具有廣播功能,從一個站點可很方便地訪問全網。區域網上的主機可共享連接在區域網上的各種硬體和軟體資源。
便於系統的擴展和逐漸地演變,各設備的位置可靈活調整和改變。
提高了系統的可靠性、可用性和殘存性。
數據鏈路層的兩個子層
為了使數據鏈路層能更好地適應多種區域網標准,IEEE 802 委員會就將區域網的數據鏈路層拆成 兩個子層 :
邏輯鏈路控制 LLC (Logical Link Control)子層;
媒體接入控制 MAC (Medium Access Control)子層。
與接入到傳輸媒體有關的內容都放在 MAC子層,而 LLC 子層則與傳輸媒體無關。 不管採用何種協議的區域網,對 LLC 子層來說都是透明的。
基本概念
為什麼要媒體接入控制(介質訪問控制)?
共享信道帶來的問題
若多個設備在共享信道上同時發送數據,則會造成彼此干擾,導致發送失敗。
隨著技術的發展,交換技術的成熟和成本的降低,具有更高性能的使用點對點鏈路和鏈路層交換機的交換式區域網在有線領域已完全取代了共享式區域網,但由於無線信道的廣播天性,無線區域網仍然使用的是共享媒體技術
靜態劃分信道
信道復用
頻分復用FDM (Frequency Division Multiplexing)
將整個帶寬分為多份,用戶在分配到一定的頻帶後,在通信過程中自始至終都佔用這個頻帶。
頻分復用 的所有用戶在同樣的時間 佔用不同的帶寬資源 (請注意,這里的「帶寬」是頻率帶寬而不是數據的發送速率)。
Ⅳ 計算機網路的一個問題.(分組交換的問題)
10、對電路交換,當t=s時,鏈路建立;
當t=s+x/b,發送完最後一bit;
當t=s+x/b+kd,所有的信息到達目的地。
對分組交換,當t=x/b, 發送完最後一bit;
為到達目的地,最後一個分組需經過k-1個分組交換機的轉發,
每次轉發的時間為p/b,
所以總的延遲= x/b+(k-1)p/b+kd
所以當分組交換的時延小於電路交換
x/b+(k-1)p/b+kd<s+x/b+kd時,
(k-1)p/b<s
-----------
11、分組個x/p,
傳輸的總比特數:(p+h)x/p
源發送時延:(p+h)x/pb
最後一個分組經過k-1個分組交換機的轉發,中間發送時延:(k-1)(p+h)/b
總發送時延D=源發送時延+中間發送時延
D=(p+h)x/pb+(k-1)(p+h)/b
令其對p的導數等於0,求極值
p=√hx/(k-1)
----------------
哈哈,課後習題哦
Ⅳ 計算機網路自學筆記:TCP
如果你在學習這門課程,僅僅為了理解網路工作原理,那麼只要了解TCP是可靠傳輸,數據傳輸丟失時會重傳就可以了。如果你還要參加研究生考試或者公司面試等,那麼下面內容很有可能成為考查的知識點,主要的重點是序號/確認號的編碼、超時定時器的設置、可靠傳輸和連接的管理。
1 TCP連接
TCP面向連接,在一個應用進程開始向另一個應用進程發送數據之前,這兩個進程必須先相互「握手」,即它們必須相互發送某些預備報文段,以建立連接。連接的實質是雙方都初始化與連接相關的發送/接收緩沖區,以及許多TCP狀態變數。
這種「連接」不是一條如電話網路中端到端的電路,因為它們的狀態完全保留在兩個端系統中。
TCP連接提供的是全雙工服務 ,應用層數據就可在從進程B流向進程A的同時,也從進程A流向進程B。
TCP連接也總是點對點的 ,即在單個發送方與單個接收方之間建立連接。
一個客戶機進程向伺服器進程發送數據時,客戶機進程通過套接字傳遞數據流。
客戶機操作系統中運行的 TCP軟體模塊首先將這些數據放到該連接的發送緩存里 ,然後會不時地從發送緩存里取出一塊數據發送。
TCP可從緩存中取出並放入報文段中發送的數據量受限於最大報文段長MSS,通常由最大鏈路層幀長度來決定(也就是底層的通信鏈路決定)。 例如一個鏈路層幀的最大長度1500位元組,除去數據報頭部長度20位元組,TCP報文段的頭部長度20位元組,MSS為1460位元組。
報文段被往下傳給網路層,網路層將其封裝在網路層IP數據報中。然後這些數據報被發送到網路中。
當TCP在另一端接收到一個報文段後,該報文段的數據就被放人該連接的接收緩存中。應用程序從接收緩存中讀取數據流(注意是應用程序來讀,不是操作系統推送)。
TCP連接的每一端都有各自的發送緩存和接收緩存。
因此TCP連接的組成包括:主機上的緩存、控制變數和與一個進程連接的套接字變數名,以及另一台主機上的一套緩存、控制變數和與一個進程連接的套接字。
在這兩台主機之間的路由器、交換機中,沒有為該連接分配任何緩存和控制變數。
2報文段結構
TCP報文段由首部欄位和一個數據欄位組成。數據欄位包含有應用層數據。
由於MSS限制了報文段數據欄位的最大長度。當TCP發送一個大文件時,TCP通常是將文件劃分成長度為MSS的若干塊。
TCP報文段的結構。
首部包括源埠號和目的埠號,它用於多路復用/多路分解來自或送至上層應用的數據。另外,TCP首部也包括校驗和欄位。報文段首部還包含下列欄位:
32比特的序號欄位和32比特的確認號欄位。這些欄位被TCP發送方和接收方用來實現可靠數據傳輸服務。
16比特的接收窗口欄位,該欄位用於流量控制。該欄位用於指示接收方能夠接受的位元組數量。
4比特的首部長度欄位,該欄位指示以32比特的字為單位的TCP首部長度。一般TCP首部的長度就是20位元組。
可選與變長的選項欄位,該欄位用於當發送方與接收方協商最大報文段長度,或在高速網路環境下用作窗口調節因子時使用。
標志欄位ACK比特用於指示確認欄位中的ACK值的有效性,即該報文段包括一個對已被成功接收報文段的確認。 SYN和FIN比特用於連接建立和拆除。 PSH、URG和緊急指針欄位通常沒有使用。
•序號和確認號
TCP報文段首部兩個最重要的欄位是序號欄位和確認號欄位。
TCP把數據看成一個無結構的但是有序的位元組流。TCP序號是建立在傳送的位元組流之上,而不是建立在傳送的報文段的序列之上。
一個報文段的序號是該報文段首位元組在位元組流中的編號。
例如,假設主機A上的一個進程想通過一條TCP連接向主機B上的一個進程發送一個數據流。主機A中的TCP將對數據流中的每一個位元組進行編號。假定數據流由一個包含4500位元組的文件組成(可以理解為應用程序調用send函數傳遞過來的數據長度),MSS為1000位元組(鏈路層一次能夠傳輸的位元組數),如果主機決定數據流的首位元組編號是7。TCP模塊將為該數據流構建5個報文段(也就是分5個IP數據報)。第一個報文段的序號被賦為7;第二個報文段的序號被賦為1007,第三個報文段的序號被賦為2007,以此類推。前面4個報文段的長度是1000,最後一個是500。
確認號要比序號難理解一些。前面講過,TCP是全雙工的,因此主機A在向主機B發送數據的同時,也可能接收來自主機B的數據。從主機B到達的每個報文段中的序號欄位包含了從B流向A的數據的起始位置。 因此主機B填充進報文段的確認號是主機B期望從主機A收到的下一報文段首位元組的序號。
假設主機B已收到了來自主機A編號為7-1006的所有位元組,同時假設它要發送一個報文段給主機A。主機B等待主機A的數據流中位元組1007及後續所有位元組。所以,主機B會在它發往主機A的報文段的確認號欄位中填上1007。
再舉一個例子,假設主機B已收到一個來自主機A的包含位元組7-1006的報文段,以及另一個包含位元組2007-3006的報文段。由於某種原因,主機A還沒有收到位元組1007-2006的報文段。
在這個例子中,主機A為了重組主機B的數據流,仍在等待位元組1007。因此,A在收到包含位元組2007-3006的報文段時,將會又一次在確認號欄位中包含1007。 因為TCP只確認數據流中至第一個丟失報文段之前的位元組數據,所以TCP被稱為是採用累積確認。
TCP的實現有兩個基本的選擇:
1接收方立即丟棄失序報文段;
2接收方保留失序的位元組,並等待缺少的位元組以填補該間隔。
一條TCP連接的雙方均可隨機地選擇初始序號。 這樣做可以減少將那些仍在網路中的來自兩台主機之間先前連接的報文段,誤認為是新建連接所產生的有效報文段的可能性。
•例子telnet
Telnet由是一個用於遠程登錄的應用層協議。它運行在TCP之上,被設計成可在任意一對主機之間工作。
假設主機A發起一個與主機B的Telnet會話。因為是主機A發起該會話,因此主機A被標記為客戶機,主機B被標記為伺服器。用戶鍵入的每個字元(在客戶機端)都會被發送至遠程主機。遠程主機收到後會復制一個相同的字元發回客戶機,並顯示在Telnet用戶的屏幕上。這種「回顯」用於確保由用戶發送的字元已經被遠程主機收到並處理。因此,在從用戶擊鍵到字元顯示在用戶屏幕上之間的這段時間內,每個字元在網路中傳輸了兩次。
現在假設用戶輸入了一個字元「C」,假設客戶機和伺服器的起始序號分別是42和79。前面講過,一個報文段的序號就是該報文段數據欄位首位元組的序號。因此,客戶機發送的第一個報文段的序號為42,伺服器發送的第一個報文段的序號為79。前面講過,確認號就是主機期待的數據的下一個位元組序號。在TCP連接建立後但沒有發送任何數據之前,客戶機等待位元組79,而伺服器等待位元組42。
如圖所示,共發了3個報文段。第一個報文段是由客戶機發往伺服器,其數據欄位里包含一位元組的字元「C」的ASCII碼,其序號欄位里是42。另外,由於客戶機還沒有接收到來自伺服器的任何數據,因此該報文段中的確認號欄位里是79。
第二個報文段是由伺服器發往客戶機。它有兩個目的:第一個目的是為伺服器所收到的數據提供確認。伺服器通過在確認號欄位中填入43,告訴客戶機它已經成功地收到位元組42及以前的所有位元組,現在正等待著位元組43的出現。第二個目的是回顯字元「C」。因此,在第二個報文段的數據欄位里填入的是字元「C」的ASCII碼,第二個報文段的序號為79,它是該TCP連接上從伺服器到客戶機的數據流的起始序號,也是伺服器要發送的第一個位元組的數據。
這里客戶機到伺服器的數據的確認被裝載在一個伺服器到客戶機的數據的報文段中,這種確認被稱為是捎帶確認.
第三個報文段是從客戶機發往伺服器的。它的唯一目的是確認已從伺服器收到的數據。
3往返時延的估計與超時
TCP如同前面所講的rdt協議一樣,採用超時/重傳機制來處理報文段的丟失問題。最重要的一個問題就是超時間隔長度的設置。顯然,超時間隔必須大於TCP連接的往返時延RTT,即從一個報文段發出到收到其確認時。否則會造成不必要的重傳。
•估計往返時延
TCP估計發送方與接收方之間的往返時延是通過採集報文段的樣本RTT來實現的,就是從某報文段被發出到對該報文段的確認被收到之間的時間長度。
也就是說TCP為一個已發送的但目前尚未被確認的報文段估計sampleRTT,從而產生一個接近每個RTT的采樣值。但是,TCP不會為重傳的報文段計算RTT。
為了估計一個典型的RTT,採取了某種對RTT取平均值的辦法。TCP據下列公式來更新
EstimatedRTT=(1-)*EstimatedRTT+*SampleRTT
即估計RTT的新值是由以前估計的RTT值與sampleRTT新值加權組合而成的。
參考值是a=0.125,因此是一個加權平均值。顯然這個加權平均對最新樣本賦予的權值
要大於對老樣本賦予的權值。因為越新的樣本能更好地反映出網路當前的擁塞情況。從統計學觀點來講,這種平均被稱為指數加權移動平均
除了估算RTT外,還需要測量RTT的變化,RTT偏差的程度,因為直接使用平均值設置計時器會有問題(太靈敏)。
DevRTT=(1-β)*DevRTT+β*|SampleRTT-EstimatedRTT|
RTT偏差也使用了指數加權移動平均。B取值0.25.
•設置和管理重傳超時間隔
假設已經得到了估計RTT值和RTT偏差值,那麼TCP超時間隔應該用什麼值呢?TCP將超時間隔設置成大於等於估計RTT值和4倍的RTT偏差值,否則將造成不必要的重傳。但是超時間隔也不應該比估計RTT值大太多,否則當報文段丟失時,TCP不能很快地重傳該報文段,從而將給上層應用帶來很大的數據傳輸時延。因此,要求將超時間隔設為估計RTT值加上一定餘量。當估計RTT值波動較大時,這個余最應該大些;當波動比較小時,這個餘量應該小些。因此使用4倍的偏差值來設置重傳時間。
TimeoutInterval=EstimatedRTT+4*DevRTT
4可信數據傳輸
網際網路的網路層服務是不可靠的。IP不保證數據報的交付,不保證數據報的按序交付,也不保證數據報中數據的完整性。
TCP在IP不可靠的盡力而為服務基礎上建立了一種可靠數據傳輸服務。
TCP提供可靠數據傳輸的方法涉及前面學過的許多原理。
TCP採用流水線協議、累計確認。
TCP推薦的定時器管理過程使用單一的重傳定時器,即使有多個已發送但還未被確認的報文段也一樣。重傳由超時和多個ACK觸發。
在TCP發送方有3種與發送和重傳有關的主要事件:從上層應用程序接收數據,定時器超時和收到確認ACK。
從上層應用程序接收數據。一旦這個事件發生,TCP就從應用程序接收數據,將數據封裝在一個報文段中,並將該報文段交給IP。注意到每一個報文段都包含一個序號,這個序號就是該報文段第一個數據位元組的位元組流編號。如果定時器還沒有計時,則當報文段被傳給IP時,TCP就啟動一個該定時器。
第二個事件是超時。TCP通過重傳引起超時的報文段來響應超時事件。然後TCP重啟定時器。
第三個事件是一個來自接收方的確認報文段(ACK)。當該事件發生時,TCP將ACK的值y與變數SendBase(發送窗口的基地址)進行比較。TCP狀態變數SendBase是最早未被確認的位元組的序號。就是指接收方已正確按序接收到數據的最後一個位元組的序號。TCP採用累積確認,所以y確認了位元組編號在y之前的所有位元組都已經收到。如果Y>SendBase,則該ACK是在確認一個或多個先前未被確認的報文段。因此發送方更新其SendBase變數,相當於發送窗口向前移動。
另外,如果當前有未被確認的報文段,TCP還要重新啟動定時器。
快速重傳
超時觸發重傳存在的另一個問題是超時周期可能相對較長。當一個報文段丟失時,這種長超時周期迫使發送方等待很長時間才重傳丟失的分組,因而增加了端到端時延。所以通常發送方可在超時事件發生之前通過觀察冗餘ACK來檢測丟包情況。
冗餘ACK就是接收方再次確認某個報文段的ACK,而發送方先前已經收到對該報文段的確認。
當TCP接收方收到一個序號比所期望的序號大的報文段時,它認為檢測到了數據流中的一個間隔,即有報文段丟失。這個間隔可能是由於在網路中報文段丟失或重新排序造成的。因為TCP使用累計確認,所以接收方不向發送方發回否定確認,而是對最後一個正確接收報文段進行重復確認(即產生一個冗餘ACK)
如果TCP發送方接收到對相同報文段的3個冗餘ACK.它就認為跟在這個已被確認過3次的報文段之後的報文段已經丟失。一旦收到3個冗餘ACK,TCP就執行快速重傳 ,
即在該報文段的定時器過期之前重傳丟失的報文段。
5流量控制
前面講過,一條TCP連接雙方的主機都為該連接設置了接收緩存。當該TCP連接收到正確、按序的位元組後,它就將數據放入接收緩存。相關聯的應用進程會從該緩存中讀取數據,但沒必要數據剛一到達就立即讀取。事實上,接收方應用也許正忙於其他任務,甚至要過很長時間後才去讀取該數據。如果應用程序讀取數據時相當緩慢,而發送方發送數據太多、太快,會很容易使這個連接的接收緩存溢出。
TCP為應用程序提供了流量控制服務以消除發送方導致接收方緩存溢出的可能性。因此,可以說 流量控制是一個速度匹配服務,即發送方的發送速率與接收方應用程序的讀速率相匹配。
前面提到過,TCP發送方也可能因為IP網路的擁塞而被限制,這種形式的發送方的控制被稱為擁塞控制(congestioncontrol)。
TCP通過讓接收方維護一個稱為接收窗口的變數來提供流量控制。接收窗口用於告訴發送方,該接收方還有多少可用的緩存空間。因為TCP是全雙工通信,在連接兩端的發送方都各自維護一個接收窗口變數。 主機把當前的空閑接收緩存大小值放入它發給對方主機的報文段接收窗口欄位中,通知對方它在該連接的緩存中還有多少可用空間。
6 TCP連接管理
客戶機中的TCP會用以下方式與伺服器建立一條TCP連接:
第一步: 客戶機端首先向伺服器發送一個SNY比特被置為1報文段。該報文段中不包含應用層數據,這個特殊報文段被稱為SYN報文段。另外,客戶機會選擇一個起始序號,並將其放置到報文段的序號欄位中。為了避免某些安全性攻擊,這里一般隨機選擇序號。
第二步: 一旦包含TCP報文段的用戶數據報到達伺服器主機,伺服器會從該數據報中提取出TCPSYN報文段,為該TCP連接分配TCP緩存和控制變數,並向客戶機TCP發送允許連接的報文段。這個允許連接的報文段還是不包含應用層數據。但是,在報文段的首部卻包含3個重要的信息。
首先,SYN比特被置為1。其次,該 TCP報文段首部的確認號欄位被置為客戶端序號+1最後,伺服器選擇自己的初始序號,並將其放置到TCP報文段首部的序號欄位中。 這個允許連接的報文段實際上表明了:「我收到了你要求建立連接的、帶有初始序號的分組。我同意建立該連接,我自己的初始序號是XX」。這個同意連接的報文段通常被稱為SYN+ACK報文段。
第三步: 在收到SYN+ACK報文段後,客戶機也要給該連接分配緩存和控制變數。客戶機主機還會向伺服器發送另外一個報文段,這個報文段對伺服器允許連接的報文段進行了確認。因為連接已經建立了,所以該ACK比特被置為1,稱為ACK報文段,可以攜帶數據。
一旦以上3步完成,客戶機和伺服器就可以相互發送含有數據的報文段了。
為了建立連接,在兩台主機之間發送了3個分組,這種連接建立過程通常被稱為 三次握手(SNY、SYN+ACK、ACK,ACK報文段可以攜帶數據) 。這個過程發生在客戶機connect()伺服器,伺服器accept()客戶連接的階段。
假設客戶機應用程序決定要關閉該連接。(注意,伺服器也能選擇關閉該連接)客戶機發送一個FIN比特被置為1的TCP報文段,並進人FINWAIT1狀態。
當處在FINWAIT1狀態時,客戶機TCP等待一個來自伺服器的帶有ACK確認信息的TCP報文段。當它收到該報文段時,客戶機TCP進入FINWAIT2狀態。
當處在FINWAIT2狀態時,客戶機等待來自伺服器的FIN比特被置為1的另一個報文段,
收到該報文段後,客戶機TCP對伺服器的報文段進行ACK確認,並進入TIME_WAIT狀態。TIME_WAIT狀態使得TCP客戶機重傳最終確認報文,以防該ACK丟失。在TIME_WAIT狀態中所消耗的時間是與具體實現有關的,一般是30秒或更多時間。
經過等待後,連接正式關閉,客戶機端所有與連接有關的資源將被釋放。 因此TCP連接的關閉需要客戶端和伺服器端互相交換連接關閉的FIN、ACK置位報文段。
Ⅵ 簡述在網路中進行數據傳輸的幾種方式
網路中常用的數據交換技術可分為兩大類:線路交換和存儲轉發交換,其中存儲轉發交換交換技術又可分為報文交換和分組交換。 線路交換 通過線路交換進行通信,就是要通過中間交換節點在兩個站點之間建立一條專業的通信線路。利用線路交換進行通信需三個階段:線路建立、數據傳輸和線路拆除。線路交換的特點是:數據傳輸可靠、迅速、有序,但線路利用率低、浪費嚴重,不適合計算機網路。 報文交換 報文交換採用"存儲-轉發"方式進行傳送,無需事先建立線路,事後更無需拆除。它的優點是:線路利用率高、故障的影響小、可以實現多目的報文;缺點是:延遲時間長且不定、對中間節點的要求高、通信不可靠、失序等,不適合計算機網路。 分組交換 分組由報文分解所得,大小固定。分組交換適用於計算機網路,在實際應用中有兩種類型:虛電路方式和數據報方式。虛電路方式類似"線路交換",只不過對信道的使用是非獨占方式;數據報方式類似"報文交換"。 報文的優點是:高效、靈活、迅速、可靠、經濟,但存在如下的缺點:有一定的延遲時間、額外的開銷會影響傳輸效率、實現技術復雜等。
Ⅶ 計算機網路第四章(網路層)
4.1、網路層概述
簡介
網路層的主要任務是 實現網路互連 ,進而 實現數據包在各網路之間的傳輸
這些異構型網路N1~N7如果只是需要各自內部通信,他們只要實現各自的物理層和數據鏈路層即可
但是如果要將這些異構型網路互連起來,形成一個更大的互聯網,就需要實現網路層設備路由器
有時為了簡單起見,可以不用畫出這些網路,圖中N1~N7,而將他們看做是一條鏈路即可
要實現網路層任務,需要解決一下主要問題:
網路層向運輸層提供怎樣的服務(「可靠傳輸」還是「不可靠傳輸」)
在數據鏈路層那課講過的可靠傳輸,詳情可以看那邊的筆記:網路層對以下的 分組丟失 、 分組失序 、 分組重復 的傳輸錯誤採取措施,使得接收方能正確接受發送方發送的數據,就是 可靠傳輸 ,反之,如果什麼措施也不採取,則是 不可靠傳輸
網路層定址問題
路由選擇問題
路由器收到數據後,是依據什麼來決定將數據包從自己的哪個介面轉發出去?
依據數據包的目的地址和路由器中的路由表
但在實際當中,路由器是怎樣知道這些路由記錄?
由用戶或網路管理員進行人工配置,這種方法只適用於規模較小且網路拓撲不改變的小型互聯網
另一種是實現各種路由選擇協議,由路由器執行路由選擇協議中所規定的路由選擇演算法,而自動得出路由表中的路有記錄,這種方法更適合規模較大且網路拓撲經常改變的大型互聯網
補充 網路層(網際層) 除了 IP協議 外,還有之前介紹過的 地址解析協議ARP ,還有 網際控制報文協議ICMP , 網際組管理協議IGMP
總結
4.2、網路層提供的兩種服務
在計算機網路領域,網路層應該向運輸層提供怎樣的服務(「 面向連接 」還是「 無連接 」)曾引起了長期的爭論。
爭論焦點的實質就是: 在計算機通信中,可靠交付應當由誰來負責 ?是 網路 還是 端系統 ?
面向連接的虛電路服務
一種觀點:讓網路負責可靠交付
這種觀點認為,應藉助於電信網的成功經驗,讓網路負責可靠交付,計算機網路應模仿電信網路,使用 面向連接 的通信方式。
通信之前先建立 虛電路 (Virtual Circuit),以保證雙方通信所需的一切網路資源。
如果再使用可靠傳輸的網路協議,就可使所發送的分組無差錯按序到達終點,不丟失、不重復。
發送方 發送給 接收方 的所有分組都沿著同一條虛電路傳送
虛電路表示這只是一條邏輯上的連接,分組都沿著這條邏輯連接按照存儲轉發方式傳送,而並不是真正建立了一條物理連接。
請注意,電路交換的電話通信是先建立了一條真正的連接。
因此分組交換的虛連接和電路交換的連接只是類似,但並不完全一樣
無連接的數據報服務
另一種觀點:網路提供數據報服務
互聯網的先驅者提出了一種嶄新的網路設計思路。
網路層向上只提供簡單靈活的、 無連接的 、 盡最大努力交付 的 數據報服務 。
網路在發送分組時不需要先建立連接。每一個分組(即 IP 數據報)獨立發送,與其前後的分組無關(不進行編號)。
網路層不提供服務質量的承諾 。即所傳送的分組可能出錯、丟失、重復和失序(不按序到達終點),當然也不保證分組傳送的時限。
發送方 發送給 接收方 的分組可能沿著不同路徑傳送
盡最大努力交付
如果主機(即端系統)中的進程之間的通信需要是可靠的,那麼就由網路的 主機中的運輸層負責可靠交付(包括差錯處理、流量控制等) 。
採用這種設計思路的好處是 :網路的造價大大降低,運行方式靈活,能夠適應多種應用。
互連網能夠發展到今日的規模,充分證明了當初採用這種設計思路的正確性。
虛電路服務與數據報服務的對比
對比的方面 虛電路服務 數據報服務
思路 可靠通信應當由網路來保證 可靠通信應當由用戶主機來保證
連接的建立 必須有 不需要
終點地址 僅在連接建立階段使用,每個分組使用短的虛電路號 每個分組都有終點的完整地址
分組的轉發 屬於同一條虛電路的分組均按照同一路由進行轉發 每個分組獨立選擇路由進行轉發
當結點出故障時 所有通過出故障的結點的虛電路均不能工作 出故障的結點可能會丟失分組,一些路由可能會發生變化
分組的順序 總是按發送順序到達終點 到達終點時不一定按發送順序
端到端的差錯處理和流量控制 可以由網路負責,也可以由用戶主機負責 由用戶主機負責
4.3、IPv4
概述
分類編制的IPv4地址
簡介
每一類地址都由兩個固定長度的欄位組成,其中一個欄位是 網路號 net-id ,它標志主機(或路由器)所連接到的網路,而另一個欄位則是 主機號 host-id ,它標志該主機(或路由器)。
主機號在它前面的網路號所指明的網路范圍內必須是唯一的。
由此可見, 一個 IP 地址在整個互聯網范圍內是唯一的 。
A類地址
B類地址
C類地址
練習
總結
IP 地址的指派范圍
一般不使用的特殊的 IP 地址
IP 地址的一些重要特點
(1) IP 地址是一種分等級的地址結構 。分兩個等級的好處是:
第一 ,IP 地址管理機構在分配 IP 地址時只分配網路號,而剩下的主機號則由得到該網路號的單位自行分配。這樣就方便了 IP 地址的管理。
第二 ,路由器僅根據目的主機所連接的網路號來轉發分組(而不考慮目的主機號),這樣就可以使路由表中的項目數大幅度減少,從而減小了路由表所佔的存儲空間。
(2) 實際上 IP 地址是標志一個主機(或路由器)和一條鏈路的介面 。
當一個主機同時連接到兩個網路上時,該主機就必須同時具有兩個相應的 IP 地址,其網路號 net-id 必須是不同的。這種主機稱為 多歸屬主機 (multihomed host)。
由於一個路由器至少應當連接到兩個網路(這樣它才能將 IP 數據報從一個網路轉發到另一個網路),因此 一個路由器至少應當有兩個不同的 IP 地址 。
(3) 用轉發器或網橋連接起來的若干個區域網仍為一個網路 ,因此這些區域網都具有同樣的網路號 net-id。
(4) 所有分配到網路號 net-id 的網路,無論是范圍很小的區域網,還是可能覆蓋很大地理范圍的廣域網,都是平等的。
劃分子網的IPv4地址
為什麼要劃分子網
在 ARPANET 的早期,IP 地址的設計確實不夠合理:
IP 地址空間的利用率有時很低。
給每一個物理網路分配一個網路號會使路由表變得太大因而使網路性能變壞。
兩級的 IP 地址不夠靈活。
如果想要將原來的網路劃分成三個獨立的網路
所以是否可以從主機號部分借用一部分作為子網號
但是如果未在圖中標記子網號部分,那麼我們和計算機又如何知道分類地址中主機號有多少比特被用作子網號了呢?
所以就有了劃分子網的工具: 子網掩碼
從 1985 年起在 IP 地址中又增加了一個「 子網號欄位 」,使兩級的 IP 地址變成為 三級的 IP 地址 。
這種做法叫做 劃分子網 (subnetting) 。
劃分子網已成為互聯網的正式標准協議。
如何劃分子網
基本思路
劃分子網純屬一個 單位內部的事情 。單位對外仍然表現為沒有劃分子網的網路。
從主機號 借用 若干個位作為 子網號 subnet-id,而主機號 host-id 也就相應減少了若干個位。
凡是從其他網路發送給本單位某個主機的 IP 數據報,仍然是根據 IP 數據報的 目的網路號 net-id,先找到連接在本單位網路上的路由器。
然後 此路由器 在收到 IP 數據報後,再按 目的網路號 net-id 和 子網號 subnet-id 找到目的子網。
最後就將 IP 數據報直接交付目的主機。
劃分為三個子網後對外仍是一個網路
優點
1. 減少了 IP 地址的浪費 2. 使網路的組織更加靈活 3. 更便於維護和管理
劃分子網純屬一個單位內部的事情,對外部網路透明 ,對外仍然表現為沒有劃分子網的一個網路。
子網掩碼
(IP 地址) AND (子網掩碼) = 網路地址 重要,下面很多相關知識都會用到
舉例
例子1
例子2
默認子網掩碼
總結
子網掩碼是一個網路或一個子網的重要屬性。
路由器在和相鄰路由器交換路由信息時,必須把自己所在網路(或子網)的子網掩碼告訴相鄰路由器。
路由器的路由表中的每一個項目,除了要給出目的網路地址外,還必須同時給出該網路的子網掩碼。
若一個路由器連接在兩個子網上,就擁有兩個網路地址和兩個子網掩碼。
無分類編址的IPv4地址
為什麼使用無分類編址
無分類域間路由選擇 CIDR (Classless Inter-Domain Routing)。
CIDR 最主要的特點
CIDR使用各種長度的「 網路前綴 」(network-prefix)來代替分類地址中的網路號和子網號。
IP 地址從三級編址(使用子網掩碼)又回到了兩級編址 。
如何使用無分類編址
舉例
路由聚合(構造超網)
總結
IPv4地址的應用規劃
給定一個IPv4地址快,如何將其劃分成幾個更小的地址塊,並將這些地址塊分配給互聯網中不同網路,進而可以給各網路中的主機和路由器介面分配IPv4地址
定長的子網掩碼FLSM(Fixed Length Subnet Mask)
劃分子網的IPv4就是定長的子網掩碼
舉例
通過上面步驟分析,就可以從子網1 ~ 8中任選5個分配給左圖中的N1 ~ N5
採用定長的子網掩碼劃分,只能劃分出2^n個子網,其中n是從主機號部分借用的用來作為子網號的比特數量,每個子網所分配的IP地址數量相同
但是也因為每個子網所分配的IP地址數量相同,不夠靈活,容易造成IP地址的浪費
變長的子網掩碼VLSM(Variable Length Subnet Mask)
無分類編址的IPv4就是變長的子網掩碼
舉例
4.4、IP數據報的發送和轉發過程
舉例
源主機如何知道目的主機是否與自己在同一個網路中,是直接交付,還是間接交付?
可以通過 目的地址IP 和 源地址的子網掩碼 進行 邏輯與運算 得到 目的網路地址
如果 目的網路地址 和 源網路地址 相同 ,就是 在同一個網路 中,屬於 直接交付
如果 目的網路地址 和 源網路地址 不相同 ,就 不在同一個網路 中,屬於 間接交付 ,傳輸給主機所在網路的 默認網關 (路由器——下圖會講解),由默認網關幫忙轉發
主機C如何知道路由器R的存在?
用戶為了讓本網路中的主機能和其他網路中的主機進行通信,就必須給其指定本網路的一個路由器的介面,由該路由器幫忙進行轉發,所指定的路由器,也被稱為 默認網關
例如。路由器的介面0的IP地址192.168.0.128做為左邊網路的默認網關
主機A會將該IP數據報傳輸給自己的默認網關,也就是圖中所示的路由器介面0
路由器收到IP數據報後如何轉發?
檢查IP數據報首部是否出錯:
若出錯,則直接丟棄該IP數據報並通告源主機
若沒有出錯,則進行轉發
根據IP數據報的目的地址在路由表中查找匹配的條目:
若找到匹配的條目,則轉發給條目中指示的嚇一跳
若找不到,則丟棄該數據報並通告源主機
假設IP數據報首部沒有出錯,路由器取出IP數據報首部各地址欄位的值
接下來路由器對該IP數據報進行查表轉發
逐條檢查路由條目,將目的地址與路由條目中的地址掩碼進行邏輯與運算得到目的網路地址,然後與路由條目中的目的網路進行比較,如果相同,則這條路由條目就是匹配的路由條目,按照它的下一條指示,圖中所示的也就是介面1轉發該IP數據報
路由器是隔離廣播域的
4.5、靜態路由配置及其可能產生的路由環路問題
概念
多種情況舉例
靜態路由配置
舉例
默認路由
舉例
默認路由可以被所有網路匹配,但路由匹配有優先順序,默認路由是優先順序最低的
特定主機路由
舉例
有時候,我們可以給路由器添加針對某個主機的特定主機路由條目
一般用於網路管理人員對網路的管理和測試
多條路由可選,匹配路由最具體的
靜態路由配置錯誤導致路由環路
舉例
假設將R2的路由表中第三條目錄配置錯了下一跳
這導致R2和R3之間產生了路由環路
聚合了不存在的網路而導致路由環路
舉例
正常情況
錯誤情況
解決方法
黑洞路由的下一跳為null0,這是路由器內部的虛擬介面,IP數據報進入它後就被丟棄
網路故障而導致路由環路
舉例
解決方法
添加故障的網路為黑洞路由
假設。一段時間後故障網路恢復了
R1又自動地得出了其介面0的直連網路的路由條目
針對該網路的黑洞網路會自動失效
如果又故障
則生效該網路的黑洞網路
總結
4.6、路由選擇協議
概述
網際網路所採用的路由選擇協議的主要特點
網際網路採用分層次的路由選擇協議
自治系統 AS :在單一的技術管理下的一組路由器,而這些路由器使用一種 AS 內部的路由選擇協議和共同的度量以確定分組在該 AS 內的路由,同時還使用一種 AS 之間的路由選擇協議用以確定分組在 AS之間的路由。
自治系統之間的路由選擇簡稱為域間路由選擇,自治系統內部的路由選擇簡稱為域內路由選擇
域間路由選擇使用外部網關協議EGP這個類別的路由選擇協議
域內路由選擇使用內部網關協議IGP這個類別的路由選擇協議
網關協議 的名稱可稱為 路由協議
常見的路由選擇協議
Ⅷ 計算機網路交換技術的數據交換
數據交換的基本概念
通常將數據在通信子網中各節點間的數據傳輸過程稱為數據交換。 (circuit switched network)
線路交換是相對於分組交換的一個概念。電路交換要求必須首先在通信雙方之間建立連接通道。在連接建立成功之後,雙方的通信活動才能開始。通信雙方需要傳遞的信息都是通過已經建立好
的連接來進行傳遞的,而且這個連接也將一直被維持到雙方的通信結束。在某次通信活動的整個過程中,這個連接將始終佔用著連接建立開始時,通信系統分配給它的資源(通道、帶寬、時隙、碼字等等),這也體現了電路交換區別於分組交換的本質特徵。
線路交換的特點是:數據傳輸可靠、迅速、有序,但線路利用率低、浪費嚴重,不適合計算機網路。 (message switched network)
是數據交換的三種方式之一,報文整個地發送,一次一跳。報文交換是分組交換的前身,是由列奧納德·克萊因饒克於1961年提出的。
報文交換的主要特點是:存儲接受到的報文,判斷其目標地址以選擇路由,最後,在下一跳路由空閑時,將數據轉發給下一跳路由。報文交換系統現今都由分組交換或電路交換網路所承載。
報文交換採用存儲-轉發方式進行傳送,無需事先建立線路,事後更無需拆除。它的優點是:線路利用率高、故障的影響小、可以實現多目的報文;缺點是:延遲時間長且不定、對中間節點的要求高、通信不可靠、失序等,不適合計算機網路。
報文的優點是:高效、靈活、迅速、可靠、經濟,但存在如下的缺點:有一定的延遲時間、額外的開銷會影響傳輸效率、實現技術復雜等。 (packet switched network)
分組交換是一種數位通信網路。它將資料組合成適當大小的區塊,稱為封包,再通過網路來傳輸。這個傳送封包的網路是共享的,每個單位都可以獨立把封包再傳送出去,而且配置自己需要的資源。
封包交換的基本原則是最佳化的使用連線負載能力,最小化回應時間,以及增進通訊的健全性。
分組交換適用於計算機網路,在實際應用中有兩種類型:虛電路方式和數據報方式。虛電路方式類似線路交換,只不過對信道的使用是非獨占方式;數據報方式類似報文交換。
Ⅸ 關於計算機網路的問題!急!!
1、簡述我國計算機網路發展的三個階段。
答: Internet在中國的發展歷程可以大略地劃分為三個階段:
第一階段為1987—1993年,也是研究試驗階段。在此期間中國一些科研部門和高等院校開始研究InternetInternet技術,並開展了科研課題和科技合作工作,但這個階段的網路應用僅限於小范圍內的電子郵件服務。
第二階段為1994年至1996年,同樣是起步階段。1994年4月,中關村地區教育與科研示範網路工程進入Internet,從此中國被國際上正式承認為有Internet的國家。之後,Chinanet、CERnet、CSTnet、Chinagbnet等多個Internet絡項目在全國范圍相繼啟動,Internet開始進入公眾生活,並在中國得到了迅速的發展。至1996年底,中國Internet用戶數已達20萬,利用Internet開展的業務與應用逐步增多。
第三階段從1997年至今,是Internet在我國快速最為快速的階段。國內Internet用戶數97年以後基本保持每半年翻一番的增長速度。據中國Internet絡信息中心(CNNIC)公布的統計報告顯示,截至2009年7月17日,我國上網用戶總人數為3.38億人,居世界第一。
//////////////////////////////////////////////////////////////////////
2、試將TCP/IP和OSI的體系結構進行比較。討論其異同處。
答:
(1)OSI和TCP/IP的相同點是二者均採用層次結構,而且都是按功能分層。
(2)OSI和TCP/IP的不同點:
①OSI分七層,自下而上分為物理層、數據鏈路層、網路層、運輸層、會話層、表示層和應用層,而TCP/IP分四層:網路介面層、網間網層(IP)、傳輸層(TCP)和應用層。嚴格講,TCP/IP網間網協議只包括下三層,應用程序不算TCP/IP的一部分。
②OSI層次間存在嚴格的調用關系,兩個(N)層實體的通信必須通過下一層(N-1)層實體,不能越級,而TCP/IP可以越過緊鄰的下一層直接使用更低層次所提供的服務(這種層次關系常被稱為「等級」關系),因而減少了一些不必要的開銷,提高了協議的效率。
③OSI只考慮用一種標準的公用數據網將各種不同的系統互聯在一起,後來認識到互聯網協議的重要性,才在網路層劃出一個子層來完成互聯作用。而TCP/IP一開始就考慮到多種異構網的互聯問題,並將互聯網協議IP作為TCP/IP的重要組成部分。
④OSI開始偏重於面向連接的服務,後來才開始制定無連接的服務標准,而TCP/IP一開始就有面向連接和無連接服務,無連接服務的數據報對於互聯網中的數據傳送以及分組話音通信都是十分方便的。
⑤OSI與TCP/IP對可靠性的強調也不相同。對OSI的面向連接服務,數據鏈路層、網路層和運輸層都要檢測和處理錯誤,尤其在數據鏈路層採用校驗、確認和超時重傳等措施提供可靠性,而且網路和運輸層也有類似技術。而TCP/IP則不然,TCP/IP認為可靠性是端到端的問題,應由運輸層來解決,因此它允許單個的鏈路或機器丟失數據或數據出錯,網路本身不進行錯誤恢復,丟失或出錯數據的恢復在源主機和目的主機之間進行,由運輸層完成。由於可靠性由主機完成,增加了主機的負擔。但是,當應用程序對可靠性要求不高時,甚至連主機也不必進行可靠性處理,在這種情況下,TCP/IP網的效率最高。
⑥在兩個體系結構中智能的位置也不相同。OSI網路層提供面向連接的服務,將尋徑、流控、順序控制、內部確認、可靠性帶有智能性的問題,都納入網路服務,留給末端主機的事就不多了。相反,TCP/IP則要求主機參與幾乎所有網路服務,所以對入網的主機要求很高。
⑦OSI開始未考慮網路管理問題,到後來才考慮這個問題,而TCP/IP有較好的網路管理。
//////////////////////////////////////////////////////////////////////
3、假定有一個長度為500MB的數據塊(1M=220bit;B是位元組,1B=8bit),在帶寬為10Mb/s的信道上(M指106)的發送時延為多少?若將數據使用光纖傳送到1000km遠的計算機需要的總時延為多少?(光在光纖中的傳播速率約為2.0X105km/s)
答:發送時延 = 數據長度/信道帶寬 = (500MB x 8)/ 10Mb/s = 40秒
傳播時延 = 傳輸距離/信號傳播速度 = 1000km/2.0X105km = 5 x 10的-3次方秒
本題中的時延 = 發送時延 + 傳播時延 約等於40秒
此外,實際情況中還存在信號排隊時延未在題中列出!
//////////////////////////////////////////////////////////////////////
電路交換、報文交換和分組交換的特點和比較
(1)電路交換:由於電路交換在通信之前要在通信雙方之間建立一條被雙方獨占的物理通路(由通信雙方之間的交換設備和鏈路逐段連接而成),因而有以下優缺點。
優點:
①由於通信線路為通信雙方用戶專用,數據直達,所以傳輸數據的時延非常小。
②通信雙方之間的物理通路一旦建立,雙方可以隨時通信,實時性強。
③雙方通信時按發送順序傳送數據,不存在失序問題。
④電路交換既適用於傳輸模擬信號,也適用於傳輸數字信號。
⑤電路交換的交換的交換設備(交換機等)及控制均較簡單。
缺點:
①電路交換的平均連接建立時間對計算機通信來說嫌長。
②電路交換連接建立後,物理通路被通信雙方獨占,即使通信線路空閑,也不能供其他用戶使用,因而信道利用低。
③電路交換時,數據直達,不同類型、不同規格、不同速率的終端很難相互進行通信,也難以在通信過程中進行差錯控制。
(2)報文交換:報文交換是以報文為數據交換的單位,報文攜帶有目標地址、源地址等信息,在交換結點採用存儲轉發的傳輸方式,因而有以下優缺點:
優點:
①報文交換不需要為通信雙方預先建立一條專用的通信線路,不存在連接建立時延,用戶可隨時發送報文。
②由於採用存儲轉發的傳輸方式,使之具有下列優點:a.在報文交換中便於設置代碼檢驗和數據重發設施,加之交換結點還具有路徑選擇,就可以做到某條傳輸路徑發生故障時,重新選擇另一條路徑傳輸數據,提高了傳輸的可靠性;b.在存儲轉發中容易實現代碼轉換和速率匹配,甚至收發雙方可以不同時處於可用狀態。這樣就便於類型、規格和速度不同的計算機之間進行通信;c.提供多目標服務,即一個報文可以同時發送到多個目的地址,這在電路交換中是很難實現的;d.允許建立數據傳輸的優先順序,使優先順序高的報文優先轉換。
③通信雙方不是固定佔有一條通信線路,而是在不同的時間一段一段地部分佔有這條物理通路,因而大大提高了通信線路的利用率。
缺點:
①由於數據進入交換結點後要經歷存儲、轉發這一過程,從而引起轉發時延(包括接收報文、檢驗正確性、排隊、發送時間等),而且網路的通信量愈大,造成的時延就愈大,因此報文交換的實時性差,不適合傳送實時或互動式業務的數據。
②報文交換只適用於數字信號。
③由於報文長度沒有限制,而每個中間結點都要完整地接收傳來的整個報文,當輸出線路不空閑時,還可能要存儲幾個完整報文等待轉發,要求網路中每個結點有較大的緩沖區。為了降低成本,減少結點的緩沖存儲器的容量,有時要把等待轉發的報文存在磁碟上,進一步增加了傳送時延。
(3)分組交換:分組交換仍採用存儲轉發傳輸方式,但將一個長報文先分割為若干個較短的分組,然後把這些分組(攜帶源、目的地址和編號信息)逐個地發送出去,因此分組交換除了具有報文的優點外,與報文交換相比有以下優缺點:
優點:
①加速了數據在網路中的傳輸。因為分組是逐個傳輸,可以使後一個分組的存儲操作與前一個分組的轉發操作並行,這種流水線式傳輸方式減少了報文的傳輸時間。此外,傳輸一個分組所需的緩沖區比傳輸一份報文所需的緩沖區小得多,這樣因緩沖區不足而等待發送的機率及等待的時間也必然少得多。
②簡化了存儲管理。因為分組的長度固定,相應的緩沖區的大小也固定,在交換結點中存儲器的管理通常被簡化為對緩沖區的管理,相對比較容易。
③減少了出錯機率和重發數據量。因為分組較短,其出錯機率必然減少,每次重發的數據量也就大大減少,這樣不僅提高了可靠性,也減少了傳輸時延。
④由於分組短小,更適用於採用優先順序策略,便於及時傳送一些緊急數據,因此對於計算機之間的突發式的數據通信,分組交換顯然更為合適些。
缺點:
①盡管分組交換比報文交換的傳輸時延少,但仍存在存儲轉發時延,而且其結點交換機必須具有更強的處理能力。
②分組交換與報文交換一樣,每個分組都要加上源、目的地址和分組編號等信息,使傳送的信息量大約增大5%~10%,一定程度上降低了通信效率,增加了處理的時間,使控制復雜,時延增加。
③當分組交換採用數據報服務時,可能出現失序、丟失或重復分組,分組到達目的結點時,要對分組按編號進行排序等工作,增加了麻煩。若採用虛電路服務,雖無失序問題,但有呼叫建立、數據傳輸和虛電路釋放三個過程。
總之,若要傳送的數據量很大,且其傳送時間遠大於呼叫時間,則採用電路交換較為合適;當端到端的通路有很多段的鏈路組成時,採用分組交換傳送數據較為合適。從提高整個網路的信道利用率上看,報文交換和分組交換優於電路交換,其中分組交換比報文交換的時延小,尤其適合於計算機之間的突發式的數據通信。
//////////////////////////////////////////////////////////////////////
模擬數據:也稱為模擬量,相對於數字量而言,指的是取值范圍是連續的變數或者數值。
模擬信號:指的是在時間和數值上都是連續變化的信號。
Ⅹ 運輸層知識要點——謝希仁《計算機網路》
為了在計算機網路中有條不紊地交換數據,就必須遵守一些事先約定好的規則。這些規則明確規定了所 交換數據的格式 以及有關的 同步 問題。
同步的含義:在一定條件下應當發生什麼事件,因而含有時序的意思。
網路協議:為進行網路中的數據交換而建立的規則、標准或約定。
網路協議由以下三個要素組成:
1)語法:即數據與控制信息的結構或格式
2)語義:即需要發出何種控制信息,完成何種動作以及做出何種反應
3)同步:即事件實現順序的詳細說明
一、運輸層協議的概述
1.1 進程之間的通信
1.2 運輸層的兩個主要協議
1.3 運輸層的埠
二、用戶數據報協議UDP
2.1 UDP概述
2.2 UDP的首部格式
三、傳輸控制協議TCP概述
3.1 TCP的最主要的特點
3.2 TCP的連接
四、可靠傳輸的工作原理
4.1 停止等待協議
4.2 連續ARQ協議
五、TCP報文段的首部格式
六、TCP可靠傳輸的實現
6.1 以位元組為單位的滑動窗口
6.2 超時重傳時間的選擇
6.3 選擇確認SACK
七、TCP的流量控制
7.1 利用滑動窗口實現流量控制
7.2 必須考慮傳輸效率
八、TCP的擁塞控制
8.1 擁塞控制的一般原理
8.2 幾種擁塞控制方法
8.3 隨機早期檢測RED
九、TCP的運輸連接管理
9.1 TCP的連接建立
9.2 TCP的連接釋放
9.3 TCP的有限狀態機
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.1 進程之間的通信
1.只有主機的協議棧才有運輸層,而網路核心部分中的路由器在轉發分組時都只用到了下三層的功能
2.兩個主機進行通信就是兩個主機中的應用進程互相通信。從運輸層的角度看,通信的真正端點並不是主機而是主機中的進程。(IP協議能把分組送到目的主機)
網路層時為主機之間提供邏輯通信,而運輸層為應用進程之間提供端到端的邏輯通信。
3.運輸層一個重要功能——復用、分用。 (應用進程復用、分用運輸層)
1.2 運輸層的兩個主要協議
1.UDP—User Datagram Protocol 用戶數據報協議(無連接):DNS/RIP/DHCP/SNMP/NFS
TCP—Transmission Control Protocol 傳輸控制協議(面向連接):SMTP/TELNET/HTTP/ FTP
1.3 運輸層的埠
問題:為了使運行不同操作系統的計算機的應用進程能夠互相通信,就必須使用統一的方法(而這種方法必須與特定操作系統無關)對TCP/IP體系的應用進程進行標識。
為什麼不用進程號來區分?(第一,不同操作系統的進程標識符不同;第二,用功能來識別,而不是進程,例如郵件服務功能,而不管具體是哪個進程)
解決方案:在運輸層使用協議埠號,即埠。軟體埠是應用層的各種協議進程與運輸實體進行層間交互的一種地址。(埠號只具有本地意義,只是為了標識本計算機應用層中各個進程在和運輸層交互時的層間介面。)
埠分為兩大類:
1)伺服器使用的埠號:熟知埠號或系統埠號(0~1023);登記埠號(1024~49151)
2)客戶端使用的埠號:49152~65535
2.1 UDP概述
1.UDP只在IP的數據報服務至上增加了很少一點功能,就是復用、分用以及差錯檢測功能
2.特點
1)無連接
2)盡最大努力交付
3)面向報文 (不合並、不拆分、保留這些報文的邊界)
4)UDP沒有擁塞控制
5)UDP支持一對一、一對多、多對一和多對多的交互通信
6)UDP的首部開銷小,只有8位元組
應用進程本身可以在不影響應用的實時性的前提下,增加一些提高可靠性的措施,如採用前向糾錯或重傳已丟失的報文。
2.2 UDP的首部格式
1.traceroute 讓發送的UDP用戶數據報故意使用一個非法的UDP埠號,接收方丟棄報文,並由ICMP(網路控制報文協議)發送「埠不可達」差錯報文給發送方。
2.計算檢驗和。IP數據報的校驗和只檢驗IP數據報的首部,但UDP的校驗和是把首部和數據部分一起都檢驗。(12位元組的首部+真正的首部+數據來進行校驗和的計算)
Q1.為什麼計算校驗和要加12位元組的偽首部
Q2.計算校驗和的原理是什麼?
3.1 TCP的最主要的特點
1.面向連接的運輸層協議(建立連接、傳輸數據、釋放連接)
2.點對點,每一條TCP連接只能有兩個端點
3.可靠交付(無差錯、不丟失、不重復、並且按序到達)
4.全雙工通信。TCP連接的兩端都設有發送緩存和接收緩存。
5.面向位元組流。(流指的是流入到進程或從進程流出的位元組序列;面向位元組流:TCP把應用程序交下來的數據看成是一連串的無結構位元組流。 接收方的應用程序必須有能力識別接收到的位元組流,把它還原成有意義的應用層數據。 因此TCP可以根據窗口值和當前網路狀況調整發送的報文長度。劃分短一點,或者積累到足夠多再發送出去。)
3.2 TCP的連接
1.TCP把連接作為最基本的抽象。
2.每一條TCP連接有兩個端點。TCP連接的端點叫作套接字。
套接字soket = (IP地址:埠號)
每一條TCP連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定。
TCP連接 ::= {socket1, socket2}
理想的傳輸條件有以下兩個特點:
1)傳輸信道不產生差錯
2)不管發送方以多快的速度發送數據,接收方總是來得及處理收到的數據
實際的網路並不具備,因此:
1)出現差錯時,讓發送方重傳
2)接收方來不及處理時,及時告訴發送方適當降低發送數據的速度
4.1 停止等待協議
1.「停止等待」就是沒發送完一個分組就停止發送,等待對方的確認,在收到確認後再發送下一個分組。
2.超時重傳。在每發完一個分組就設置一個超時計時器,如果在超時計時器之前收到對方的確認,就撤銷已設置的超時計時器。如果未收到,就認為剛才的分組丟失,並重傳。
3.三種情況:A發送的分組出錯、丟失;B發送的確認丟失;B發送的確認遲到
確認丟失:B丟棄重復的分組,向A重傳確認
確認遲到:A丟棄重復的確認,B丟棄重復分組,並向A重傳確認
4.常稱為自動重傳請求ARQ,重傳時自動進行的(超時即重傳)
5.缺點:信道利用率太低
U=Td/(Td+RTT+Ta)
為了提高傳輸效率,發送方不使用停止等待協議,而是採用流水線傳輸。流水線傳輸就是發送發可連續發送多個分組,不必等每發完一個分組就停頓下來等待對方的確認。(連續ARQ協議和滑動窗口協議)
4.2 連續ARQ協議
1.位於發送窗口內的分組都可連續發送出去,而不需要等待對方的確認。
2.累積確認:接收方不必對收到的分組逐個發送確認,而是在收到幾個分組後,對按序到達的最後一個分組發送確認。
3.缺點:Go-back-N (發送前5個分組,第3個分組丟失,後面三個要重傳)
1.源埠和目的埠
2.序號。 每個位元組都按順序編號。
3.確認號。 期望收到對方下一個報文段的第一個數據位元組的序號。
若確認號=N,則表明:到序號N-1為止的所有數據都已正確收到。
4.數據偏移。 指出TCP報文段的數據起始處距離TCP報文段的起始處有多遠(也即TCP報文段首部長度)。由於首部中還有長度不確定的選項欄位,因此數據偏移欄位是必要的。
5.窗口。窗口欄位明確指出了現在允許對方發送的數據量。窗口值是經常在動態變化著。
6.1 以位元組為單位的滑動窗口
1.發送緩存用來暫存:
1)發送應用程序傳送給發送方TCP准備發送的數據;
2)TCP已發送但未收到確認德爾數據
2.接收緩存用來存放:
1)按序到達的、但尚未被接收應收程序讀取的數據;
2)未按序到達的數據
3.注意三點:
1)A的發送窗口是根據B的接收窗口設置的,但是在同一時刻,由於網路傳輸的滯後,A的發送窗口並不總是B的接收窗口一樣大
2)TCP通常對不按序到達的數據是先臨時存放在接收窗口中,等到位元組流中所缺少的位元組收到後,再按序交付上層的應用進程
3)TCP接收方有累計確認功能(不能過分推遲發送確認,否則會導致發送方不必要的重傳)
6.2 超時重傳時間的選擇
1.超時重傳時間設置太短,會引起很多不必要的重傳;如果設置太長,使網路的空閑時間增大,降低傳輸效率。
2.新的RTTs = (1-a)x(舊的RTTs) + ax(新的RTT樣本),其中RTT樣本的時間為:記錄一個報文段發出的時間,以及收到相應的確認時間,時間差就是報文段的往返時間RTT。
3.RTO = RTTs + 4 x RTTd,其中RTO為超時重傳時間,RTTd是RTT的偏差的加權平均值。
新的RTTd = (1-b) x (舊的RTTd)+ b x |RTTs - 新的RTT樣本|
4.一個問題:發送一個報文段,設定的重傳時間到了,還沒有收到確認。於是重傳報文段。經過一段時間,收到了確認報文段。現在的問題是:如何判定此確認報文段是對先發送的報文段的確認,還是對後來重傳的報文段的確認?
1)解決方法1,在計算加權平均值RTTs時,只要報文段重傳了,就不採用其往返時間樣本。
引入的問題:報文段的時延突然增大的情況
2)解決方法2,報文段每重傳一次,就把超時重傳時間RTO增大一些(一般是2倍)。當不在發生報文段的重傳時,再根據加權平均計算。
6.3 選擇確認SACK
SACK文檔並沒有指明發送發應當怎樣響應SACK。因此大多數的實現還是重傳所有未被確認的數據塊。
7.1 利用滑動窗口實現流量控制
1.流量控制:就是讓發送方的發送速率不要太快,要讓接收方來得及接收。
2.利用滑動窗口機制可很方便地在TCP連接上實現對發送方的流量控制。發送方的發送窗口不能超過接收方給出的接收窗口的數值。
3.死鎖情況:B向A發送了零窗口的報文段後不久,B又有了一些緩存空間,因此B向A發送rwnd = 400.然而該報文段在傳送過程中丟失。A一直等待B發送的非零窗口的通知,B也一直等待A發送的數據。( 窗口通知不超時重傳?為什麼? )
解決方法:TCP為每個連接設有一個持續計時器。只要一方收到對方的零窗口通知,就啟動計時器。計時器到期後,發送一個零窗口探測報文段,而對方就在確認這個探測報文段時給出了現在的窗口值。若仍為零,收到報文段的一方重新設置持續計時器。
7.2 必須考慮傳輸效率
1.應用程序把數據傳送到TCP的發送緩存後,剩下的發送任務就由TCP來控制了。
2.三種不同的機制來控制TCP報文段的發送時機:
1)TCP維持一個變數,它等於最大報文段長度MSS,只要緩存中的存放的數據達到MSS,就組裝成一個TCP報文段發送出去
2)由發送方的應用進程指明要求發送報文段,即TCP支持推送操作
3)發送方設置一個定時器
3.問題一、若用戶只發送一個位元組,則非常浪費帶寬。
解決方法:若發送應用程序把要發送的數據逐個位元組地送到TCP的發送緩存,則發送方就把第一個數據位元組先發送出去,把後面到達的數據位元組都緩存起來。當發送方收到對第一個數據字元的確認後,再把發送緩存中的所有數據組裝成一個報文段發送出去。(採用收到確認就發送+並開始緩存的方式;同時當到達的數據已達到發送窗口大小的一半或已達到報文段的最大長度時,就立即發送一個報文段。)
4.問題二、糊塗窗口綜合症。接收緩存已滿,應用程序一次只讀取一個位元組,然後向發送方發送確認。
解決方法:讓接收方等待一段時間,使得接收緩存已有足夠空間容納一個最長的報文段,或者等到接收緩存已有一半空閑的空間。則接收方就發出確認報文。
8.1 擁塞控制的一般原理
1.擁塞的定義:對資源的需求 > 可用資源。 在計算機網路中的鏈路帶寬、交換結點中的緩存和處理機等,都是網路中的資源。
2.擁塞解決不能靠解決某一個部分的問題。因為這會將瓶頸轉移到其他地方。問題的實質往往是整個系統的各個部分不匹配。只有所有部分都平衡了,問題才會得到解決。
3.擁塞控制與流量控制的比較。
1)擁塞控制:防止過多的數據注入到網路中,這樣可以使網路中的路由器或鏈路不致過載。
擁塞控制有個前提:網路能夠承受現有的網路負荷
擁塞控制是一個全局性過程。(發送擁塞時,不知道在某處、什麼原因造成的)
2)流量控制:點對點通信量的控制,是個端到端的問題
流量控制:抑制發送端發送數據的速率,以便使接收端來得及接收。
4.尋找擁塞控制的方案無非就是使不等式 「對資源的需求 > 可用資源 」不再成立的條件。但是必須考慮該措施帶來的其他影響。
5.計算機網路是個復雜的系統。從控制理論的角度來看擁塞控制,可以分為開環控制和閉環控制兩種方法。
1)開環控制:設計網路時事先將有關發生擁塞的因素考慮周到,力求網路在工作時不產生擁塞。但一旦系統運行起來,就不再中途改正。
2)閉環控制:基於反饋環路。
步驟一、監測網路系統以便檢測到擁塞在何時、何處發生;
步驟二、把擁塞發生的信息傳送到可採取行動的地方
步驟三、調整網路系統的運行以解決出現的問題
8.2 幾種擁塞控制方法(只考慮網路擁塞程度,即假設接收方總是有足夠大的緩存空間)
1.慢開始和擁塞避免
1)發送方維持一個擁塞窗口。
擁塞窗口的大小取決於網路的擁塞程度,並且動態地在變化。
控制擁塞窗口的原則是:只要網路沒有出現擁塞,擁塞窗口增大;如果網路出現擁塞,則減小。
2)慢開始的思路:由小到大逐漸增大擁塞窗口數值。每收到一個對新的報文段的確認,把擁塞窗口增加至多一個MSS的數值。(沒經過一個傳輸輪次,擁塞窗口cwnd就加倍)
輪次:把擁塞窗口所允許發送的報文段都連續發送出去,並收到了對已發送的最後一位元組的確認。
慢開始的「慢」並不是指cwnd的增長速率慢,而是指TCP開始發送報文段時先設置cwnd=1(一個MSS數值)。
3)慢開始門限ssthresh
為防止擁塞窗口增長過大,引入一個慢開始門限ssthresh。
當cwnd < ssthresh時,使用上述的慢開始演算法
當cwnd > ssthresh時,停止使用慢開始演算法而改用擁塞避免演算法
4)擁塞避免演算法
思路:讓擁塞窗口cwnd緩慢增大,即沒經過一個往返時間RTT就把發送方的擁塞窗口cwnd增加1,而不是加倍。
5)慢開始門限的設置
只要發送方判斷網路出現擁塞(沒有按時收到確認),就把慢開始門限ssthresh設置為出現擁塞時發送方窗口值的一半,然後把擁塞窗口cwnd重置為1,執行慢開始演算法。
6)乘法減小和加法增大
乘法減小:網路出現擁塞時,把慢開始門限ssthresh減半(當前的ssthresh的一半),並執行慢開始演算法。
加法增大:執行擁塞避免方法
2.快重傳和快恢復
1)快重傳(盡快重傳未被確認的報文段)
首先,要求接收方每收到一個失序的報文段後就立即發出重復確認。(如接收方收到了M1和M2後都分別發出了確認,但接收方沒有收到M3但接著收到了M4。此時接收方立即發送對M2的重復確認。)
其次,發送方只要一連收到三個重復確認,就應當立即重傳對方尚未收到的報文段M3.
2)快恢復
要點一、當發送方連續收到三個重復確認,就執行「乘法減小」演算法,把慢開始門限ssthresh減半。
要點二、由於發送方認為網路很可能沒有發生擁塞(因為收到了連續的重復確認),把cwnd設置為慢開始門限ssthresh減半後的值,然後開始執行擁塞避免演算法
慢開始演算法只在TCP連接建立時和網路出現超時才使用。
3.發送方的窗口
發送方窗口的上限值 = Min [rwnd, cwnd]
8.3 隨機早期檢測RED(IP層影響TCP層的擁塞控制)
1.網路層的分組丟棄策略
網路層的策略對TCP擁塞控制影響最大的就是路由器的分組丟棄策略。
如果路由器隊列已滿,則後續到達的分組將都被丟棄。這就叫做尾部丟棄策略。
2.全局同步
由於TCP復用IP,若發生路由器中的尾部丟棄,就可能會同時影響到很多條TCP連接,結果就使許多TCP連接在同一時間突然都進入到慢開始狀態。全局同步使得全網的通信量突然下降了很多,網路恢復正常後,其通信量又突然增大很多。
3.隨機早期檢測RED
使路由器的隊列維持兩個參數,即隊列長度最小門限THmin和最大門限THmax。當每一個分組到達時,RED就先計算平均隊列長度Lav。RED演算法是:
1)若平均隊列長度小於最小門限THmin,則把新到達的分組放入隊列進行排隊
2)若平均隊列長度超過最大門限THmax,則把新到達的分組丟棄
3)若平均隊列長度在最小門限THmin和最大門限THmax之間,則按照某一概率p將新到達的分組丟棄。
隨機體現在3),在檢測到網路擁塞的早期徵兆時(即路由器的平均隊列長度超過一定的門限值時),就先以概率p隨機丟棄個別的分組,讓擁塞控制只在個別的TCP連接上進行,因而避免發生全局性的擁塞控制。
4.平均隊列長度Lav和分組丟棄概率p
Lav = (1-d) x (舊的Lav) +d x (當前的隊列長度樣本)
p = ptemp / (1- count x ptemp)
ptemp = pmax x (Lav - THmin) / (THmax - THmin)
TCP時面向連接的協議。
運輸連接就有三個階段:連接建立、數據傳送和連接釋放
運輸連接的管理:使運輸連接的建立和釋放都能正常地進行。
在TCP連接建立過程中要解決以下三個問題:
1)要使每一方能夠確知對方的存在
2)要允許雙方協商一些參數(如最大窗口值、是否使用窗口擴大選項和時間戳等等)
3)能夠對運輸實體資源(如緩存大小、連接表中的項目等)進行分配
9.1 TCP的連接建立
1.TCP規定,SYN=1報文段不能攜帶數據,但消耗一個序號
2.TCP規定,ACK=1報文段可以攜帶數據,如果不攜帶數據則不消耗序號
3.為什麼A還要發送一次確認?為了防止已失效的連接請求報文突然又傳送到B,因而產生錯誤。
「已失效的連接請求報文段」
A發出第一個連接請求報文段,在網路中滯留超時,又發出了第二個連接請求。但B收到第一個延遲的失效的連接請求報文段後,就誤認為是A又發出了一次新的連接請求。於是就向A發出確認報文段,同意建立連接。假定不採用三次握手,那麼只要B發出確認,新的連接就建立。此時A不會理睬B的確認,也不會發數據,但B一直等A發送數據,B的許多資源就浪費了。
採用三次握手,A不會向B發送確認,因此B就知道A並沒有要求建立確認。
9.2 TCP的連接釋放
1.TCP規定,FIN報文段基石不攜帶數據,也消耗一個序號
2.第二次握手後,TCP通知高層應用程序,因而從A到B這個方向的連接就釋放,TCP連接處於半關閉狀態
3.為什麼A在TIME-WAIT狀態必須等待2MSL的時間
1)為了保證A發送的最後一個ACK報文段能夠到達B。因為ACK可能丟失,此時B可能會超時重傳,然後A重傳確認,並重新啟動2MSL計時器
2)防止「已失效的連接請求報文段」出現在本連接中。可以使本連接持續時間內所產生的所有報文段都從網路中消失。
9.3 TCP的有限狀態機