計算機網絡自頂向下方法前3節總結

                       計算機網絡

自頂向下發

目錄:

一、計算機網絡和因特網

二、應用層

三、運輸層

四、網絡層

五、鏈路層

內容:

計算機網絡和因特網

一、什麼是因特網

1.因特網是一個世界範圍的計算機網絡

2.端系統或者主機:智能手機、電視、平板電腦等

3.端系統通過通信鏈路和分組交換機連接到一起

4.分組交換機:路由器和鏈路層交換機

5.通信鏈路包括:同軸電纜,銅線,光纖,無線電譜

6.一臺端系統向另一臺端系統發送數據,發送的數據將分段,這個過程形成的信息包稱爲分組。

7.一個分組所經歷的一系列通信鏈路和分組交換機稱爲通過網絡的路徑

8.端系統通過因特網服務提供商ISP接入因特網

9.主要協議:TCP協議(傳輸控制協議)IP協議(網際協議)

協議:一個協議定義了在兩個或多個通信實體之間交換的報文格式和次序,以及報文發送和/或接收一條報文或其他事件所採取的動作

二、網絡邊緣

1.通常把與因特網相連的計算機和其他設備稱爲端系統

2.端系統包括:桌面計算機,服務器,移動計算機

3.端系統又叫主機

三、接入網絡

1. 接入網絡是指將端系統連接到邊緣路由器的物理鏈路。

2. 邊緣路由器是端系統到任何其他遠程端系統的路徑上的第一臺路由器

3. 幾種接入網絡的方式:家庭接入,企業接入,廣域網無線接入

4.物理媒體:引導型媒體和非引導型媒體。具體有雙絞線,同軸電纜,光纖,陸地5. 無線電信道,衛星無線電信道

四、網絡核心

1.網路核心即由互聯因特網端系統的分組交換機和鏈路構成的網狀網絡

五、數據交換的形式

       1、分組交換

        1.端系統之間彼此交換報文,長的報文被劃分爲分組

        2.多數分組交換機使用存儲轉發傳輸

        3.存儲轉發傳輸是指在交換機能夠開始向輸出鏈路傳輸該分組的第一個比特之前,4.必須接收到整個分組

        5.分組交換機具有一個輸出緩存,它用於存儲路由器準備發往哪的分組,所以除了6.存在存儲轉發時延還有排隊時延,如果緩存已經被塞滿就會出現分組丟失(丟包)

       2、電路交換  

        1.在電路交換網絡中,端系統通信會話期間,預留了端系統間通信沿路徑所需的資源(緩存、鏈路傳輸速率)

        2.電路交換中的複用:頻分複用FDM和時分複用TDM

     3、電路交換和分組交換的比較

        趨勢是必然朝着分組交換的方向發展

      4、網絡的網絡

        5個網絡結構(具體見課本)          

六、分組交換時的時延、丟包和吞吐量

1.時延類型:結點處理時延,排隊時延,傳輸時時延,傳播時延。全部加起來叫結點總時延

2.流量強度:分組到達列隊的平均速率/傳輸總速率 <=1

3.瞬時吞吐量(接收文件速率)和平均吞吐量(比特/時間)

七、協議層次及其服務模型

1.      五層因特網協議:應用層(報文),運輸層(報文段),網絡層(數據報),鏈路層(幀),物理層(電信號)

2.      七層iso:應用層,表示層,會話層,運輸層,網絡層,鏈路層,物理層

六、面對攻擊的網絡

自己學習一下黑客技術吧

 

應用層

一、應用層協議原理

1.      研發網絡應用程序的核心是寫出能夠運行在不同的端系統和通過網絡彼此通信的程序

2.      網絡應用程序體系結構:客戶-服務器體系結構,對等(P2P)結構

3.       CS體系結構特點:1:一個總是打開的主機(服務器),2:客戶之間不能相互通信,3:有固定的、周知的地址(IP地址)

4.       P2P具有自擴展性

5.      在操作系統的術語中,進行通信實際上是一個進程而不是一個程序,一個進程可以被認爲是運行在端系統中的一個程序。當進程運行在不同的端系統上時,它們使用進程間通信機制相互通信。通信機制由端系統上的操作系統而定

6.      進程與計算機網絡之間的接口:從一個進程向另一個進程發送報文必須通過下面的網絡,進程通過一個叫做套接字的軟件接口向網絡發送報文和從網絡接收報文

7.      套接字是同一臺主機內應用層和運輸層之間的接口,套接字也稱爲應用程序和網絡之間的應用程序編程接口API

8.      進程尋址:標識接收進程需要定義主機的地址定義目的主機的接收進程標識符

9.       端口號:用來識別套接字的標識符

10.  在因特網中主機由其IP地址標識

11.  發送進程必須指定運行在接收主機上的接收進程,這裏用端口號標識進程

12.   IP地址是32比特,端口號有(0~65535個),web服務器用80來標識,郵件服務器用25來標識

13.  應用程序服務要求:可靠數據傳輸(容忍/不能容忍丟失的數據),吞吐量(帶寬敏感的應用,彈性應用),定時,安全性

14.   因特網提供的服務:TCP(可靠的數據傳輸服務和較小的安全性),UDP(不可靠的數據傳輸服務)服務

1.      今天的因特網通常能夠爲時間敏感應用提供滿意服務,但是不提供任何定時和帶寬保證

2.      如何構造報文,報文的含義是啥,如何發送報文等問題涉及了應用層協議的範圍

3.      應用層協議定義了運行在不同端系統上的應用程序進程之間是如何進行相互交換報文的

4.      應用,應用層協議,運輸協議三者關係

5.      電子郵件SMTP TCP

6.      遠程終端訪問Telnet TCP

7.      WebHTTP TCP

8.      文件傳輸 FTP TCP

9.      流式多媒體HTTP TCP

10.  因特網電話SIP RTPUDP/TCP

11.  區分網絡應用和應用層協議是很重要的,應用層協議只是網絡應用的一部分

五中重要的應用:

二、WebHTTP

12.  web是一個因特網應用

13.  web的應用層協議是超文本傳輸協議HTTP

14.  HTTP是一個無狀態協議,不保存有關客戶的任何信息

15.  Web採用了客戶-服務器應用程序體系結構

16.   持續連接(所有的請求和響應經相同的TCP連接發送)和非持續連接(每個請求和響應都經過一個單獨的TCP連接發送)

17.   HTTP默認採用持續連接

18.   HTTP報文格式:1)請求報文:請求行和首部行。主要字段get,post,head,put,delete

2)響應報文:狀態行,首部行和實體體。

8.  用戶與服務器的交互:cookie

9.  web緩存代理服務器

部署web緩存器的原因:1,大大減少對客戶請求的響應時間,2,大大減少一個機構的接入鏈路到因特網的通信量,3,大大減低因特網上的web流量,從而改善所有應用的性能。

10. 條件get方法保證緩存數據的實時性

 

三、文件傳輸協議FTP

1.  FTP使用了兩個並行的TCP連接來傳輸文件,一個是控制連接(持續連接,TCP控制連接端口21),一個是數據連接(非持續連接,TCP數據連接端口20)。控制連接用來傳輸控制信息,數據連接用來實際發送文件

2.  FTP是一個獨立的控制連接,FTP的控制信息稱爲帶外傳送,而HTTP是同一個TCP連接控制,因此稱爲帶內傳送

3.  FTP在整個會話期間必須保留用戶的狀態,而HTTP則不需要

4.  FTP的命令和回答:username passwordlist retrfilename stor filename 331 125 425 452

四、因特網中的電子郵件

1.      電子郵件系統的組成:用戶代理,郵件服務器,簡單的郵件傳輸協議

2.      郵件發送過程:用戶代理傳輸到發送方的郵箱服務器,然後再發送到接收方的郵箱服務器,最後通過對方的用戶代理來讀取郵件

3.      SMTP運行在不同的郵件服務器之間和發送郵件的用戶代理和郵件服務器之間。郵箱服務器既運行服務器端smtp又運行smtp客戶端

4.       HTTP對比,http是一個拉協議,而smtp是一個推協議。Smtp的內容只能是7比特ASCII碼格式,http把每一個對象封裝在它自己的響應報文中,SMTP的對象放在一個報文中。

5.      郵件訪問協議(訪問郵件的用戶代理和郵件服務器之間的傳輸):POP3,IMAP,http

五、DNS:因特網的目錄服務

1.      DNS一種能進行主機名到IP地址轉換的目錄服務。它是一個分層的DNS服務器實現的分佈式數據庫和一個使得主機能夠查詢分佈式數據庫的應用層協議

2.       DNS運行在UDP之上使用53端口。

3.      DNS服務器是運行BIND軟件的UNIX機器

4.      DNS通常是由其他應用層協議所使用的,包括HTTP,SMTP,FTP,將用戶提供的主機名解析爲IP地址。

5.       DNS提供了一些重要服務:主機別名服務,郵件服務器別名,負載分配

6.       單一的DNS服務器存在的問題:單點故障,通信容量,遠距離的集中式數據庫,維護

7.      DNS採用了分佈式層次數據庫的設計方案:根DNS服務器,頂級域DNS服務器,權威DNS服務器

8.      查詢方式:遞歸查詢和迭代查詢。

六、P2P應用

1.      兩種適合P2P的應用:文件分發,分佈在大型對等方社區中的數據庫

2.      P2P文件共享協議是BitTorrent

3.      BitTorrent的術語來講,參與一個特定文件分發的所有對等方的集合被稱爲一個洪流,在一個洪流中的對等方彼此下載等長度的文件塊,典型的文件塊長度256KB,當一個對等方首次加入一個洪流時,它沒有塊。隨着時間的流逝他積累了越來越多的塊。當他下載時也爲其他對等方上載了多個塊。一旦某對等方獲得了整個文件,它也許離開洪流,也許會繼續留在洪流中並繼續向其他對等方上載塊。同時,任何對等方可能在任何時候僅具有塊的子集就離開該洪流,並在以後重新加入該洪流

4.      每個洪流具有一個基礎設施結點,稱爲追蹤器。當一個對等方加入一個洪流時,他向追蹤器註冊自己,並週期性的通知追蹤器它仍在洪流中,追蹤器將其他對等方的IP地址發送給新加入的對等方,以這種方式追蹤器跟蹤參與這個洪流中的對等方

5.      最稀缺優先技術:針對她沒有的塊在她的鄰居中決定最稀缺的塊(鄰居中副本數量最小的塊),並首先請求那些最稀缺的塊,主要目的是均衡每個塊在洪流中的副本數量

6.      P2P體系結構具有自擴展性:原因:對等方除了是比特消費者外還是它們的重新分發者

7.      交換激勵方式:一報還一報防止搭便車

8.       分佈式散列表:在P2P系統中,每個對等方將保持(鍵值對)僅佔總體的一個小子集,我們將允許任何對等方用一個特別的鍵來查詢該分佈式數據庫。分佈式數據庫則將定位擁有該相應鍵值對的對等方,然後向查詢的對等方返回該鍵值對,任何對等方也將允許在數據庫中插入新的鍵值對。這樣一種分佈式數據庫被稱爲分佈式散列表DHT

9.      DHT中我們將使用散列函數吧每個鍵映射爲一個整數。根據鍵的數值利用最臨近對等方定義鍵的最鄰近後繼,這些整數是一個標識符。

10.  環形DHT:解決規模問題,加入捷徑

11.  對等方擾動:1.對等方聯繫他的第一個和第二個後繼2週期性的證實它的後繼們是否存活

12.  BitTorrent中,其鍵是洪流標識符而其值是當前參與洪流所有對等方的IP地址。以這種方式,通過用某洪流標識符來查詢DHT,一個新到達的BitTorrent對等方能夠確定負責該標識符的對等方。在找到該對等方後,到達的對等方能夠向它查詢在洪流中的其他對等方列表。

13.  散列函數是一種多對一的函數

七、TCP/UDP套接字編程

 

運輸層

 

一、概述和運輸層服務

1.      運輸層協議爲運行在不同主機上的應用進程之間提供了邏輯通信功能

2.      運輸層協議是在端系統中而不是在路由器中實現的。在運輸層將從發送應用程序進程接收到報文轉換成運輸層分組,用因特網術語來講該分組稱爲運輸層報文段,實現的方法是將應用層報文段分爲較小的塊,併爲每個塊加上一個運輸層首部以生成運輸層報文段。然後在發送端系統中,運輸層將這些報文段傳遞給網絡層,網絡層將其封裝成網絡層分組並向目的地發送。(注意到下列事實是重要的:網絡路由器僅作用於該數據報的網絡層字段;即他們不檢查封裝在該數據報的運輸層報文段的字段。在接收端,網絡層從數據報中提取運輸層報文段,並將該報文段向上交給運輸層,運輸層則處理接收到的報文段,使該報文段中的數據爲接收應用進程使用)

3.      網絡應用程序可以使用多種運輸層協議:例如因特網有兩種協議,即TCPUDP協議,每組協議都能爲調用的應用程序提供一組不同的運輸層服務

4.      運輸層和網絡層的關係網絡層提供了主機之間的邏輯通信,而運輸層提供了運行在不同主機之間的進程之間的的邏輯通信,而且計算機網絡中可以安排多種運輸層協議,每種協議爲應用程序提供不同的服務模型,運輸協議能夠提供的服務常常受限於底層網絡協議的服務模型,然而即使底層網絡協議不能在網絡層提供相應的服務,運輸層協議也能夠提供某些服務

5.      因特網運輸層概述:兩種運輸層協議,TCP(傳輸控制協議):它爲調用它的應用程序提供了一種可靠的、面向連接的服務;UDP(用戶數據報協議):它爲調用它的應用程序提供了一種不可靠、無連接的服務,運輸層分組稱爲報文段,網絡層分組成爲數據報,(簡單介紹一下網絡層協議IPIP服務是一種盡力而爲的交付服務,是一種不可靠服務)。UDPTCP服務模型的基本責任是:將兩個端系統間IP的交付服務擴展爲運行在端系統上的兩個進程之間的交付服務。將主機間交付擴展到進程間交付被稱爲運輸層的多路複用(從不同套接字收集數據塊,併爲每個數據快封裝上首部信息,從而生成報文段,然後將報文段傳遞到網絡層)與多路分解(將運輸層報文段中的數據交付到正確的套接字的工作稱爲多路分解)。

6.      TCP擁塞控制防止任何一條TCP連接過多流量來淹沒通信主機之間的鏈路和交換設備,力求爲每一個通過一條擁塞網絡鏈路平等的共享鏈路帶寬。這可以通過調節TCP連接的發送端發送進網絡的流量速率來做到。在另一方面,UDP流量是不可調節的。使用UDP傳輸的應用程序可以根據需要以其願意的任何速率發送數據

7.      運輸層多路複用的要求:套接字有唯一標識符;每個報文段有特殊字段來指示改報文段要交付的套接字(特殊字段目的端口號和源端口號(0-1023的端口號稱爲周知端口號))

8.      分解服務:在主機上的每個套接字能夠分配一個端口號,當報文到達主機的時候運輸層能夠檢查報文段中的端口號,並將其定向到特定的套接字

9.      無連接的多路複用和多路分解:兩元組標識;面向連接的多路複用和多路分解(源端口號和目的端口號):四元組全面標識(源IP地址,源端口號,目的IP地址,目的端口號);web服務器與tcp,web服務器會爲每個用戶啓動一個進程,對應一個套接字,有時候一個進程會有很多線程,不同的線程會對應不同的套接字

10.  討論無連接運輸:UDP

  1)採用UDP的原因:關於何時、發送什麼數據的應用層控制更爲精細,無需連接建立,無連接狀態,首部開銷小(TCP報文段有20個字節的首部開銷,UDP僅有8個字節的開銷)(通過應用程序自身建立可靠性機制可以實現數據的可靠傳輸)

  2UDP報文結構:UDP只有4個字段,每個字段包含兩個字節。主要字段有:源端口號,目的端口號,長度(報文段中的字節數),檢驗和,應用數據(報文)

  3UDP檢驗和:數據和等於1UDP必須在端到端基礎上在運輸層提供差錯檢驗

(與在高級別提供這些功能的代價相比,在較低級別上設置的功能可能是冗餘的或沒有價值)

11.  討論面向鏈家而的可靠數據運輸:TCPrdt(可靠數據傳輸)

1.      rdt1.0:底層信道完全可信,發送方和接收方有限狀態機(FSM(相當於一個套接字):定義見課本p138,而且發送方和接收方有各自的FSM,每個只有一個狀態,rdt的發送端只通過rdt_send(data)事件接收來自較高層的數據,被高層應用調用,在接收端,rdt_rcv(packet)事件從底層信道接收到一個分組,被底層協議調用)

2.      rdt2.0:底層信道分組比特可能有損失:接收者有肯定確認(OK)和否定確認(請重複確認)來告訴發送方哪些內容被正確接收,這種數據傳輸協議稱爲自動重傳請求協議ARQ

ARQ+差錯檢驗+接收方反饋+重傳 

Rdt2.0的發送端有兩個狀態。在左邊發送端正待來自上層傳下來的數據,進行打包發送,在右邊發送方協議等來自接收方的ACKNAK分組,當發送方處於等待ACK或者NAK的狀態時,它不能從上層獲得數據

Rdt2.0的接收端只有一個狀態,回答ACKNAK

ACK或者NAK受損:看情況:1,一直丟失,無法通信2.使發送方不僅可以檢測差錯還可以恢復差錯3.重複發送不清楚的ACKNAK分組,產生冗餘,接收端無法知道是否被重傳了數據

解決方法:進行了差錯檢驗在數據分組中添加一新的字段,讓發送方對其數據進行編號,即將發送數據分組的序號放在該字段,接收方只需檢測序號來確定分組是否被重傳得到rdt2.1:發送方的FSM4個,構成循環,接收方是2FSM當接收到失序的分組的時候,接收方對所接收的分組發送一個肯定確認,如果收到一個受損的分組,發送一個否定確認;也可發送一個對上次正確數據ACK0(正常發送一個ACK1)的肯定,產生rdt2.2

3.      rdt3.0:經具有比特差錯的丟包信道的可靠數據傳輸:丟失的數據包可能是ACK包也可能是數據中的包,萬能方法是重傳,設計定時器,不管什麼丟失時間一到就重傳,對於重複的數據,進行序號檢驗進行丟除

4.      流水線可靠數據傳輸協議:不使用停等協議,允許發送方不停的發送多個分組而不等待確認,等連續發送多個數據後再確認,這個技術又叫做流水線,影響:

增加序號範圍,協議的接收方和發送方兩端必須緩存多個分組,處理數據丟失方法:回退N步(N長度的窗口,發送一個數據就往後移動一個數據,中途數據丟失,就從丟失的數據開始再重傳,把後面的數據丟掉)和選擇重傳(N長度的窗口前進,丟失數據,從丟失出重傳,但是後邊的數據不丟失)

TCP:應用程序進程間可以發送數據之前,這兩個進程必須先相互握手,連接狀態完全保留在兩個端系統中,所以網絡元素不會維持TCP連接狀態,TCP連接提供了全雙工服務,TCP提供點對點的服務,單個接收方和發送方之間進行數據傳輸,建立連接的過程:客戶首先發送一個特殊的TCP報文段,服務器用另一個特殊的報文段來響應,最後客戶再次用第三個特殊報文段作爲響應(三次握手)連接後,tcp引導數據進入發送緩存,緩存量受最大報文段長度控制MMS(指不包含TCP首部的TCP報文段最大長度)一般值1460

1.       TCP報文段結構

TCP,首部20個字節,源端口號,目的端口號、檢驗和字段、32bit的序號字段和32bit的確認號字段(就是主機正在等待的數據的下一個字節序號),16bit的接收窗口字段,4bit的首;部長度字段,可選與變長的選項字段,標誌段

源端口號和目的端口號:指示報文段所要交付的套接字

序號:發送第一個分組的第一個字節的編號

確認號:主機A期望從主機B收到的下一個字節的序號

首部長度:包括首部在內的TCP報文段長度

接收窗口字段:用於流量控制和指示接收方願意接受的字節數量。

檢驗和:提供差錯檢驗功能

2.      往返時間的估計魚超時

TCP採用超時/重傳機制來處理丟失問題,超時間隔大於重傳時間,具體見課本P161

3.      可靠數據傳輸

對重複發送的數據只需發送確認下個數據的ACK(累計確認)

超時間加倍(每次重傳都將下一次是超時間間隔設爲先前的兩倍)

快速重傳(收到3個冗餘的ACK,快速重傳,在該報文段定時器過期前重傳丟失的報文段)

結合了GBNSR協議

4.      流量控制

TCP提供了一種流量控制服務,以消除發送方使接收方緩存溢出看情況

TCP通過讓發送方維護一個稱爲接收窗口的變量來提供流量控制,接收窗口用於給發送方一個指示——該接收方還有多少可用的緩存空間

5.      TCP連接管理

建立連接的時候:客戶都會向服務器發送特殊報文段,把標誌位SYN設置爲1,然後SYN報文段到達服務器,服務器就會爲該報文段分配緩存和變量,客戶端收到SYNACK報文段給服務器分配緩存。完成後SYN0進行信息通信

斷開連接時,客戶端應用進程發送一個FIN報文值爲1,服務器接收到該報文段後,發送一個確認報文。然後服務器再發送一個FIN給客戶端,客戶端確認後斷開連接

當接收到的TCP報文段其端口號或源Ip地址與該主機上的套接字都不配會將RST標誌位設置爲1進行重傳

6.      擁塞控制原理

                1. 擁塞控制方法:端到端擁塞控制(報文段的丟失被認爲是網絡擁塞的一個跡象,TCP會相應的減少其窗口長度),網絡輔助的擁塞控制(網絡層構件即路由器向發送方提供關於網絡中擁塞狀態的顯示反饋信息)

                2.TCP擁塞控制:一個TCP發送方如何限制它向其他連接發送流量的速率?

                TCP如何感知從他到目的地之間的路經上存在擁塞呢?當發送方感知端到端擁塞時,採用何種算法來改變其發送速率?

                運行在發送方的TCP擁塞機制跟蹤擁塞窗口cwnd,它對一個TCP發送方能向網絡中發送的流量速率進行了限制(區別於流量控制),約束限制了發送方中未被確認的數據量,因此可以間接的限制發送方發發送速率;

                出現過度擁塞,引起數據丟失,引起丟包(超時或者3個冗餘的ACK),發送方認爲該路徑上出現了擁塞,通過丟失報文就減少速率,正常交付就增大速率,進行帶寬探測進行發送速率的控制

                3.TCP擁塞算法:(慢啓動+擁塞避免+快速恢復)

                  1慢啓動:(cwnd的值以一個MSS開始,每當傳輸的報文段首次被確認就增加一個MSS,然後成倍增長。終止的話1.如果存在一個由超時指示的丟包事件(擁塞)則tcp就把cwnd重新設定爲1重新啓動。2.還有一個狀態ssthresh設置爲cwnd/2,當檢測到擁塞時將ssthresh設置爲擁塞窗口值的一半,當cwnd值等於ssthresh就結束3.j檢測到3acKtcp執行一種快速重傳進入快速恢復)

                  2擁塞避免:採用一種較爲保守的方法,每個RTT(往返)只將cwnd的值增加一個MSS,避免方法:與慢啓動情況一樣,cwnd的值被設定爲1MSS當丟包事件出現,ssthresh的值被更新爲cwnd值的一半,然後當出現3個冗餘ACK,在這種情況下網絡繼續從發送方向接收方交付報文段,對與這種行爲不是很劇烈將ssthresh的值記錄爲cwnd的一半接下來快速恢復即可

                   3,快速恢復:在快速恢復中,對於引起TCP進入快速恢復狀態的缺失報文段,對收到的每個冗餘的ACKcwnd的值增加一個MSS。,最終對當丟失報文段的一個ACK到達時,TCP在降低cwnd後進入擁塞避免狀態。

                出現超時時快速恢復在執行如同慢啓動個和擁塞避免中相同的功能後遷移到慢啓動狀態:當丟包事件出現時,cwnd的值被設置爲1MSS並且ssthresh的值設置爲cwnd的一半

            7.公平性:

                       計算機網絡

自頂向下發

目錄:

一、計算機網絡和因特網

二、應用層

三、運輸層

四、網絡層

五、鏈路層

內容:

計算機網絡和因特網

一、什麼是因特網

1.因特網是一個世界範圍的計算機網絡

2.端系統或者主機:智能手機、電視、平板電腦等

3.端系統通過通信鏈路和分組交換機連接到一起

4.分組交換機:路由器和鏈路層交換機

5.通信鏈路包括:同軸電纜,銅線,光纖,無線電譜

6.一臺端系統向另一臺端系統發送數據,發送的數據將分段,這個過程形成的信息包稱爲分組。

7.一個分組所經歷的一系列通信鏈路和分組交換機稱爲通過網絡的路徑

8.端系統通過因特網服務提供商ISP接入因特網

9.主要協議:TCP協議(傳輸控制協議)IP協議(網際協議)

協議:一個協議定義了在兩個或多個通信實體之間交換的報文格式和次序,以及報文發送和/或接收一條報文或其他事件所採取的動作

二、網絡邊緣

1.通常把與因特網相連的計算機和其他設備稱爲端系統

2.端系統包括:桌面計算機,服務器,移動計算機

3.端系統又叫主機

三、接入網絡

1. 接入網絡是指將端系統連接到邊緣路由器的物理鏈路。

2. 邊緣路由器是端系統到任何其他遠程端系統的路徑上的第一臺路由器

3. 幾種接入網絡的方式:家庭接入,企業接入,廣域網無線接入

4.物理媒體:引導型媒體和非引導型媒體。具體有雙絞線,同軸電纜,光纖,陸地5. 無線電信道,衛星無線電信道

四、網絡核心

1.網路核心即由互聯因特網端系統的分組交換機和鏈路構成的網狀網絡

五、數據交換的形式

       1、分組交換

        1.端系統之間彼此交換報文,長的報文被劃分爲分組

        2.多數分組交換機使用存儲轉發傳輸

        3.存儲轉發傳輸是指在交換機能夠開始向輸出鏈路傳輸該分組的第一個比特之前,4.必須接收到整個分組

        5.分組交換機具有一個輸出緩存,它用於存儲路由器準備發往哪的分組,所以除了6.存在存儲轉發時延還有排隊時延,如果緩存已經被塞滿就會出現分組丟失(丟包)

       2、電路交換  

        1.在電路交換網絡中,端系統通信會話期間,預留了端系統間通信沿路徑所需的資源(緩存、鏈路傳輸速率)

        2.電路交換中的複用:頻分複用FDM和時分複用TDM

     3、電路交換和分組交換的比較

        趨勢是必然朝着分組交換的方向發展

      4、網絡的網絡

        5個網絡結構(具體見課本)          

六、分組交換時的時延、丟包和吞吐量

1.時延類型:結點處理時延,排隊時延,傳輸時時延,傳播時延。全部加起來叫結點總時延

2.流量強度:分組到達列隊的平均速率/傳輸總速率 <=1

3.瞬時吞吐量(接收文件速率)和平均吞吐量(比特/時間)

七、協議層次及其服務模型

1.      五層因特網協議:應用層(報文),運輸層(報文段),網絡層(數據報),鏈路層(幀),物理層(電信號)

2.      七層iso:應用層,表示層,會話層,運輸層,網絡層,鏈路層,物理層

六、面對攻擊的網絡

自己學習一下黑客技術吧

 

應用層

一、應用層協議原理

1.      研發網絡應用程序的核心是寫出能夠運行在不同的端系統和通過網絡彼此通信的程序

2.      網絡應用程序體系結構:客戶-服務器體系結構,對等(P2P)結構

3.       CS體系結構特點:1:一個總是打開的主機(服務器),2:客戶之間不能相互通信,3:有固定的、周知的地址(IP地址)

4.       P2P具有自擴展性

5.      在操作系統的術語中,進行通信實際上是一個進程而不是一個程序,一個進程可以被認爲是運行在端系統中的一個程序。當進程運行在不同的端系統上時,它們使用進程間通信機制相互通信。通信機制由端系統上的操作系統而定

6.      進程與計算機網絡之間的接口:從一個進程向另一個進程發送報文必須通過下面的網絡,進程通過一個叫做套接字的軟件接口向網絡發送報文和從網絡接收報文

7.      套接字是同一臺主機內應用層和運輸層之間的接口,套接字也稱爲應用程序和網絡之間的應用程序編程接口API

8.      進程尋址:標識接收進程需要定義主機的地址定義目的主機的接收進程標識符

9.       端口號:用來識別套接字的標識符

10.  在因特網中主機由其IP地址標識

11.  發送進程必須指定運行在接收主機上的接收進程,這裏用端口號標識進程

12.   IP地址是32比特,端口號有(0~65535個),web服務器用80來標識,郵件服務器用25來標識

13.  應用程序服務要求:可靠數據傳輸(容忍/不能容忍丟失的數據),吞吐量(帶寬敏感的應用,彈性應用),定時,安全性

14.   因特網提供的服務:TCP(可靠的數據傳輸服務和較小的安全性),UDP(不可靠的數據傳輸服務)服務

1.      今天的因特網通常能夠爲時間敏感應用提供滿意服務,但是不提供任何定時和帶寬保證

2.      如何構造報文,報文的含義是啥,如何發送報文等問題涉及了應用層協議的範圍

3.      應用層協議定義了運行在不同端系統上的應用程序進程之間是如何進行相互交換報文的

4.      應用,應用層協議,運輸協議三者關係

5.      電子郵件SMTP TCP

6.      遠程終端訪問Telnet TCP

7.      WebHTTP TCP

8.      文件傳輸 FTP TCP

9.      流式多媒體HTTP TCP

10.  因特網電話SIP RTPUDP/TCP

11.  區分網絡應用和應用層協議是很重要的,應用層協議只是網絡應用的一部分

五中重要的應用:

二、WebHTTP

12.  web是一個因特網應用

13.  web的應用層協議是超文本傳輸協議HTTP

14.  HTTP是一個無狀態協議,不保存有關客戶的任何信息

15.  Web採用了客戶-服務器應用程序體系結構

16.   持續連接(所有的請求和響應經相同的TCP連接發送)和非持續連接(每個請求和響應都經過一個單獨的TCP連接發送)

17.   HTTP默認採用持續連接

18.   HTTP報文格式:1)請求報文:請求行和首部行。主要字段get,post,head,put,delete

2)響應報文:狀態行,首部行和實體體。

8.  用戶與服務器的交互:cookie

9.  web緩存代理服務器

部署web緩存器的原因:1,大大減少對客戶請求的響應時間,2,大大減少一個機構的接入鏈路到因特網的通信量,3,大大減低因特網上的web流量,從而改善所有應用的性能。

10. 條件get方法保證緩存數據的實時性

 

三、文件傳輸協議FTP

1.  FTP使用了兩個並行的TCP連接來傳輸文件,一個是控制連接(持續連接,TCP控制連接端口21),一個是數據連接(非持續連接,TCP數據連接端口20)。控制連接用來傳輸控制信息,數據連接用來實際發送文件

2.  FTP是一個獨立的控制連接,FTP的控制信息稱爲帶外傳送,而HTTP是同一個TCP連接控制,因此稱爲帶內傳送

3.  FTP在整個會話期間必須保留用戶的狀態,而HTTP則不需要

4.  FTP的命令和回答:username passwordlist retrfilename stor filename 331 125 425 452

四、因特網中的電子郵件

1.      電子郵件系統的組成:用戶代理,郵件服務器,簡單的郵件傳輸協議

2.      郵件發送過程:用戶代理傳輸到發送方的郵箱服務器,然後再發送到接收方的郵箱服務器,最後通過對方的用戶代理來讀取郵件

3.      SMTP運行在不同的郵件服務器之間和發送郵件的用戶代理和郵件服務器之間。郵箱服務器既運行服務器端smtp又運行smtp客戶端

4.       HTTP對比,http是一個拉協議,而smtp是一個推協議。Smtp的內容只能是7比特ASCII碼格式,http把每一個對象封裝在它自己的響應報文中,SMTP的對象放在一個報文中。

5.      郵件訪問協議(訪問郵件的用戶代理和郵件服務器之間的傳輸):POP3,IMAP,http

五、DNS:因特網的目錄服務

1.      DNS一種能進行主機名到IP地址轉換的目錄服務。它是一個分層的DNS服務器實現的分佈式數據庫和一個使得主機能夠查詢分佈式數據庫的應用層協議

2.       DNS運行在UDP之上使用53端口。

3.      DNS服務器是運行BIND軟件的UNIX機器

4.      DNS通常是由其他應用層協議所使用的,包括HTTP,SMTP,FTP,將用戶提供的主機名解析爲IP地址。

5.       DNS提供了一些重要服務:主機別名服務,郵件服務器別名,負載分配

6.       單一的DNS服務器存在的問題:單點故障,通信容量,遠距離的集中式數據庫,維護

7.      DNS採用了分佈式層次數據庫的設計方案:根DNS服務器,頂級域DNS服務器,權威DNS服務器

8.      查詢方式:遞歸查詢和迭代查詢。

六、P2P應用

1.      兩種適合P2P的應用:文件分發,分佈在大型對等方社區中的數據庫

2.      P2P文件共享協議是BitTorrent

3.      BitTorrent的術語來講,參與一個特定文件分發的所有對等方的集合被稱爲一個洪流,在一個洪流中的對等方彼此下載等長度的文件塊,典型的文件塊長度256KB,當一個對等方首次加入一個洪流時,它沒有塊。隨着時間的流逝他積累了越來越多的塊。當他下載時也爲其他對等方上載了多個塊。一旦某對等方獲得了整個文件,它也許離開洪流,也許會繼續留在洪流中並繼續向其他對等方上載塊。同時,任何對等方可能在任何時候僅具有塊的子集就離開該洪流,並在以後重新加入該洪流

4.      每個洪流具有一個基礎設施結點,稱爲追蹤器。當一個對等方加入一個洪流時,他向追蹤器註冊自己,並週期性的通知追蹤器它仍在洪流中,追蹤器將其他對等方的IP地址發送給新加入的對等方,以這種方式追蹤器跟蹤參與這個洪流中的對等方

5.      最稀缺優先技術:針對她沒有的塊在她的鄰居中決定最稀缺的塊(鄰居中副本數量最小的塊),並首先請求那些最稀缺的塊,主要目的是均衡每個塊在洪流中的副本數量

6.      P2P體系結構具有自擴展性:原因:對等方除了是比特消費者外還是它們的重新分發者

7.      交換激勵方式:一報還一報防止搭便車

8.       分佈式散列表:在P2P系統中,每個對等方將保持(鍵值對)僅佔總體的一個小子集,我們將允許任何對等方用一個特別的鍵來查詢該分佈式數據庫。分佈式數據庫則將定位擁有該相應鍵值對的對等方,然後向查詢的對等方返回該鍵值對,任何對等方也將允許在數據庫中插入新的鍵值對。這樣一種分佈式數據庫被稱爲分佈式散列表DHT

9.      DHT中我們將使用散列函數吧每個鍵映射爲一個整數。根據鍵的數值利用最臨近對等方定義鍵的最鄰近後繼,這些整數是一個標識符。

10.  環形DHT:解決規模問題,加入捷徑

11.  對等方擾動:1.對等方聯繫他的第一個和第二個後繼2週期性的證實它的後繼們是否存活

12.  BitTorrent中,其鍵是洪流標識符而其值是當前參與洪流所有對等方的IP地址。以這種方式,通過用某洪流標識符來查詢DHT,一個新到達的BitTorrent對等方能夠確定負責該標識符的對等方。在找到該對等方後,到達的對等方能夠向它查詢在洪流中的其他對等方列表。

13.  散列函數是一種多對一的函數

七、TCP/UDP套接字編程

 

運輸層

 

一、概述和運輸層服務

1.      運輸層協議爲運行在不同主機上的應用進程之間提供了邏輯通信功能

2.      運輸層協議是在端系統中而不是在路由器中實現的。在運輸層將從發送應用程序進程接收到報文轉換成運輸層分組,用因特網術語來講該分組稱爲運輸層報文段,實現的方法是將應用層報文段分爲較小的塊,併爲每個塊加上一個運輸層首部以生成運輸層報文段。然後在發送端系統中,運輸層將這些報文段傳遞給網絡層,網絡層將其封裝成網絡層分組並向目的地發送。(注意到下列事實是重要的:網絡路由器僅作用於該數據報的網絡層字段;即他們不檢查封裝在該數據報的運輸層報文段的字段。在接收端,網絡層從數據報中提取運輸層報文段,並將該報文段向上交給運輸層,運輸層則處理接收到的報文段,使該報文段中的數據爲接收應用進程使用)

3.      網絡應用程序可以使用多種運輸層協議:例如因特網有兩種協議,即TCPUDP協議,每組協議都能爲調用的應用程序提供一組不同的運輸層服務

4.      運輸層和網絡層的關係網絡層提供了主機之間的邏輯通信,而運輸層提供了運行在不同主機之間的進程之間的的邏輯通信,而且計算機網絡中可以安排多種運輸層協議,每種協議爲應用程序提供不同的服務模型,運輸協議能夠提供的服務常常受限於底層網絡協議的服務模型,然而即使底層網絡協議不能在網絡層提供相應的服務,運輸層協議也能夠提供某些服務

5.      因特網運輸層概述:兩種運輸層協議,TCP(傳輸控制協議):它爲調用它的應用程序提供了一種可靠的、面向連接的服務;UDP(用戶數據報協議):它爲調用它的應用程序提供了一種不可靠、無連接的服務,運輸層分組稱爲報文段,網絡層分組成爲數據報,(簡單介紹一下網絡層協議IPIP服務是一種盡力而爲的交付服務,是一種不可靠服務)。UDPTCP服務模型的基本責任是:將兩個端系統間IP的交付服務擴展爲運行在端系統上的兩個進程之間的交付服務。將主機間交付擴展到進程間交付被稱爲運輸層的多路複用(從不同套接字收集數據塊,併爲每個數據快封裝上首部信息,從而生成報文段,然後將報文段傳遞到網絡層)與多路分解(將運輸層報文段中的數據交付到正確的套接字的工作稱爲多路分解)。

6.      TCP擁塞控制防止任何一條TCP連接過多流量來淹沒通信主機之間的鏈路和交換設備,力求爲每一個通過一條擁塞網絡鏈路平等的共享鏈路帶寬。這可以通過調節TCP連接的發送端發送進網絡的流量速率來做到。在另一方面,UDP流量是不可調節的。使用UDP傳輸的應用程序可以根據需要以其願意的任何速率發送數據

7.      運輸層多路複用的要求:套接字有唯一標識符;每個報文段有特殊字段來指示改報文段要交付的套接字(特殊字段目的端口號和源端口號(0-1023的端口號稱爲周知端口號))

8.      分解服務:在主機上的每個套接字能夠分配一個端口號,當報文到達主機的時候運輸層能夠檢查報文段中的端口號,並將其定向到特定的套接字

9.      無連接的多路複用和多路分解:兩元組標識;面向連接的多路複用和多路分解(源端口號和目的端口號):四元組全面標識(源IP地址,源端口號,目的IP地址,目的端口號);web服務器與tcp,web服務器會爲每個用戶啓動一個進程,對應一個套接字,有時候一個進程會有很多線程,不同的線程會對應不同的套接字

10.  討論無連接運輸:UDP

  1)採用UDP的原因:關於何時、發送什麼數據的應用層控制更爲精細,無需連接建立,無連接狀態,首部開銷小(TCP報文段有20個字節的首部開銷,UDP僅有8個字節的開銷)(通過應用程序自身建立可靠性機制可以實現數據的可靠傳輸)

  2UDP報文結構:UDP只有4個字段,每個字段包含兩個字節。主要字段有:源端口號,目的端口號,長度(報文段中的字節數),檢驗和,應用數據(報文)

  3UDP檢驗和:數據和等於1UDP必須在端到端基礎上在運輸層提供差錯檢驗

(與在高級別提供這些功能的代價相比,在較低級別上設置的功能可能是冗餘的或沒有價值)

11.  討論面向鏈家而的可靠數據運輸:TCPrdt(可靠數據傳輸)

1.      rdt1.0:底層信道完全可信,發送方和接收方有限狀態機(FSM(相當於一個套接字):定義見課本p138,而且發送方和接收方有各自的FSM,每個只有一個狀態,rdt的發送端只通過rdt_send(data)事件接收來自較高層的數據,被高層應用調用,在接收端,rdt_rcv(packet)事件從底層信道接收到一個分組,被底層協議調用)

2.      rdt2.0:底層信道分組比特可能有損失:接收者有肯定確認(OK)和否定確認(請重複確認)來告訴發送方哪些內容被正確接收,這種數據傳輸協議稱爲自動重傳請求協議ARQ

ARQ+差錯檢驗+接收方反饋+重傳 

Rdt2.0的發送端有兩個狀態。在左邊發送端正待來自上層傳下來的數據,進行打包發送,在右邊發送方協議等來自接收方的ACKNAK分組,當發送方處於等待ACK或者NAK的狀態時,它不能從上層獲得數據

Rdt2.0的接收端只有一個狀態,回答ACKNAK

ACK或者NAK受損:看情況:1,一直丟失,無法通信2.使發送方不僅可以檢測差錯還可以恢復差錯3.重複發送不清楚的ACKNAK分組,產生冗餘,接收端無法知道是否被重傳了數據

解決方法:進行了差錯檢驗在數據分組中添加一新的字段,讓發送方對其數據進行編號,即將發送數據分組的序號放在該字段,接收方只需檢測序號來確定分組是否被重傳得到rdt2.1:發送方的FSM4個,構成循環,接收方是2FSM當接收到失序的分組的時候,接收方對所接收的分組發送一個肯定確認,如果收到一個受損的分組,發送一個否定確認;也可發送一個對上次正確數據ACK0(正常發送一個ACK1)的肯定,產生rdt2.2

3.      rdt3.0:經具有比特差錯的丟包信道的可靠數據傳輸:丟失的數據包可能是ACK包也可能是數據中的包,萬能方法是重傳,設計定時器,不管什麼丟失時間一到就重傳,對於重複的數據,進行序號檢驗進行丟除

4.      流水線可靠數據傳輸協議:不使用停等協議,允許發送方不停的發送多個分組而不等待確認,等連續發送多個數據後再確認,這個技術又叫做流水線,影響:

增加序號範圍,協議的接收方和發送方兩端必須緩存多個分組,處理數據丟失方法:回退N步(N長度的窗口,發送一個數據就往後移動一個數據,中途數據丟失,就從丟失的數據開始再重傳,把後面的數據丟掉)和選擇重傳(N長度的窗口前進,丟失數據,從丟失出重傳,但是後邊的數據不丟失)

TCP:應用程序進程間可以發送數據之前,這兩個進程必須先相互握手,連接狀態完全保留在兩個端系統中,所以網絡元素不會維持TCP連接狀態,TCP連接提供了全雙工服務,TCP提供點對點的服務,單個接收方和發送方之間進行數據傳輸,建立連接的過程:客戶首先發送一個特殊的TCP報文段,服務器用另一個特殊的報文段來響應,最後客戶再次用第三個特殊報文段作爲響應(三次握手)連接後,tcp引導數據進入發送緩存,緩存量受最大報文段長度控制MMS(指不包含TCP首部的TCP報文段最大長度)一般值1460

1.       TCP報文段結構

TCP,首部20個字節,源端口號,目的端口號、檢驗和字段、32bit的序號字段和32bit的確認號字段(就是主機正在等待的數據的下一個字節序號),16bit的接收窗口字段,4bit的首;部長度字段,可選與變長的選項字段,標誌段

源端口號和目的端口號:指示報文段所要交付的套接字

序號:發送第一個分組的第一個字節的編號

確認號:主機A期望從主機B收到的下一個字節的序號

首部長度:包括首部在內的TCP報文段長度

接收窗口字段:用於流量控制和指示接收方願意接受的字節數量。

檢驗和:提供差錯檢驗功能

2.      往返時間的估計魚超時

TCP採用超時/重傳機制來處理丟失問題,超時間隔大於重傳時間,具體見課本P161

3.      可靠數據傳輸

對重複發送的數據只需發送確認下個數據的ACK(累計確認)

超時間加倍(每次重傳都將下一次是超時間間隔設爲先前的兩倍)

快速重傳(收到3個冗餘的ACK,快速重傳,在該報文段定時器過期前重傳丟失的報文段)

結合了GBNSR協議

4.      流量控制

TCP提供了一種流量控制服務,以消除發送方使接收方緩存溢出看情況

TCP通過讓發送方維護一個稱爲接收窗口的變量來提供流量控制,接收窗口用於給發送方一個指示——該接收方還有多少可用的緩存空間

5.      TCP連接管理

建立連接的時候:客戶都會向服務器發送特殊報文段,把標誌位SYN設置爲1,然後SYN報文段到達服務器,服務器就會爲該報文段分配緩存和變量,客戶端收到SYNACK報文段給服務器分配緩存。完成後SYN0進行信息通信

斷開連接時,客戶端應用進程發送一個FIN報文值爲1,服務器接收到該報文段後,發送一個確認報文。然後服務器再發送一個FIN給客戶端,客戶端確認後斷開連接

當接收到的TCP報文段其端口號或源Ip地址與該主機上的套接字都不配會將RST標誌位設置爲1進行重傳

6.      擁塞控制原理

                1. 擁塞控制方法:端到端擁塞控制(報文段的丟失被認爲是網絡擁塞的一個跡象,TCP會相應的減少其窗口長度),網絡輔助的擁塞控制(網絡層構件即路由器向發送方提供關於網絡中擁塞狀態的顯示反饋信息)

                2.TCP擁塞控制:一個TCP發送方如何限制它向其他連接發送流量的速率?

                TCP如何感知從他到目的地之間的路經上存在擁塞呢?當發送方感知端到端擁塞時,採用何種算法來改變其發送速率?

                運行在發送方的TCP擁塞機制跟蹤擁塞窗口cwnd,它對一個TCP發送方能向網絡中發送的流量速率進行了限制(區別於流量控制),約束限制了發送方中未被確認的數據量,因此可以間接的限制發送方發發送速率;

                出現過度擁塞,引起數據丟失,引起丟包(超時或者3個冗餘的ACK),發送方認爲該路徑上出現了擁塞,通過丟失報文就減少速率,正常交付就增大速率,進行帶寬探測進行發送速率的控制

                3.TCP擁塞算法:(慢啓動+擁塞避免+快速恢復)

                  1慢啓動:(cwnd的值以一個MSS開始,每當傳輸的報文段首次被確認就增加一個MSS,然後成倍增長。終止的話1.如果存在一個由超時指示的丟包事件(擁塞)則tcp就把cwnd重新設定爲1重新啓動。2.還有一個狀態ssthresh設置爲cwnd/2,當檢測到擁塞時將ssthresh設置爲擁塞窗口值的一半,當cwnd值等於ssthresh就結束3.j檢測到3acKtcp執行一種快速重傳進入快速恢復)

                  2擁塞避免:採用一種較爲保守的方法,每個RTT(往返)只將cwnd的值增加一個MSS,避免方法:與慢啓動情況一樣,cwnd的值被設定爲1MSS當丟包事件出現,ssthresh的值被更新爲cwnd值的一半,然後當出現3個冗餘ACK,在這種情況下網絡繼續從發送方向接收方交付報文段,對與這種行爲不是很劇烈將ssthresh的值記錄爲cwnd的一半接下來快速恢復即可

                   3,快速恢復:在快速恢復中,對於引起TCP進入快速恢復狀態的缺失報文段,對收到的每個冗餘的ACKcwnd的值增加一個MSS。,最終對當丟失報文段的一個ACK到達時,TCP在降低cwnd後進入擁塞避免狀態。

                出現超時時快速恢復在執行如同慢啓動個和擁塞避免中相同的功能後遷移到慢啓動狀態:當丟包事件出現時,cwnd的值被設置爲1MSS並且ssthresh的值設置爲cwnd的一半

            7.公平性:


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