1. 程式人生 > >計算機網路基礎 學習筆記

計算機網路基礎 學習筆記

OSI七層協議:應用層,表示層,會話層,運輸層,網路層,資料鏈路層,物理層。

TCP/IP四層協議:應用層,運輸層,網際層,網路介面層。

物理層:

將數字訊號轉換為模擬訊號,反之也可。其中涉及到編碼與調製。其中傳輸方式有,並行傳輸,序列傳輸,非同步傳輸和同步傳輸。傳輸的媒介有雙絞線,同軸電纜和光纖。

通道複用技術:複用就是通過一條物理線路,同時傳輸多路使用者的訊號。其中包括,頻分複用,時分複用,波分複用和碼分複用。

資料鏈路層:

資料鏈路層三個重要問題,封裝成幀,差錯檢測和可靠傳輸。資料鏈路層負責把網路層交下來的資料構成幀,以及把幀的資料提取出來,上交給網路層。

封裝成幀:在資料首部加上幀首部,尾部加上幀尾部,封裝成幀。為了防止資料中出現了首尾flag,會加上轉義字元。

差錯檢測:迴圈冗餘檢驗。

可靠傳輸:停止等待協議。即等待接收方返回ACK或NAK再發下一幀。還有超時計時器輔助。還有回退N步協議(滑動視窗協議)和選擇重傳協議。

PPP協議(點到點協議):PPP由三部分組成:將IP資料報封裝到鏈路的方法,鏈路控制協議和網路控制協議。

PPP的幀格式: 

第一部分佔1個位元組。為幀開始標誌(01111110)

第二部分為(11111111)

第三部分為(00000011),這兩部分目前沒有明確含義。

第四部分是佔2位元組的協議欄位,表明該幀是傳輸什麼的。

中間部分是資料部分,最長不超過1500位元組。

尾部的第一部分是2位元組的CRC幀檢測序列。

然後是幀結束標記。

但是PPP只能兩臺機互聯。如果要多臺機,常用的協議是CSMA/CD協議(載波監聽多址接入/碰撞檢測協議 就是乙太網用的協議)

。使用退避演算法儘可能的減少碰撞。

MAC地址:即資料鏈路層地址,固化在網路介面卡中的48位地址

乙太網對資料幀不編號,不需要確認,乙太網提供的是不可靠交付。幀差錯由上一層來解決。

乙太網幀由:目的地址,源地址,2位元組的型別標誌,和IP資料報組成。前面會由硬體加上同步碼和幀定界標誌。最後會有CRC碼。

資料鏈路層的路由器是網橋和交換機,其中用到了生成樹協議。

後來又發展出了無線區域網802.11協議.和新的乙太網協議。其中都離不開MAC地址。

網路層:

兩個問題:分組轉發和路由選擇。

同樣的,網路層只是盡最大努力交付資料,不提供服務質量承諾。

網際協議IP

包括:ARP地址解析協議,RARP逆地址解析協議。ICMP網際控制報文協議和IGMP國際組管理協議

網路層使用的中間裝置叫路由器,物理層的叫轉發器,資料鏈路層的叫網橋,更上的叫閘道器。

IP地址的編制方式有三個階段:分類編址,劃分子網,和無分類編址,現在用的都是無分類編址。

ARP協議:用來解決已經知道IP地址,但是怎麼知道他的實體地址的問題。RARP就反之。執行方式如下:當主機A要傳送資料時,先在自己的ARP快取記憶體中檢視有無主機B的IP地址對應的實體地址,有的話就寫入MAC幀,沒有的話就執行ARP協議,在區域網上廣播一個ARP分組請求“我的IP地址是x.x.x.x,實體地址是x,我想知道IP地址為y.y.y.y的主機的實體地址”。然後就會有反饋了。

IP資料報格式:

首部佔20位元組+可變的長度,包括版本,首部長度,總長度,標識,標誌,片偏移,生存時間,協議,源地址,目的地址,可選欄位等。然後就是資料部分。

IP資料報的轉發:

路由錶轉發。簡單的說,就是講目標地址對子網掩碼進行與操作,再與目標網路地址比較,相同的話,就轉發到相應的介面。

ICMP報文種類:差錯報告報文和詢問報文。簡單的應用:ping。

路由器選擇協議包括:內部閘道器協議:路由資訊協議RIP(基於距離),開放最短路徑優先OSPF(基於鏈路狀態)等。

外部閘道器協議:BGP。

路由器其實就是電腦。

VPN:虛擬專用網。簡答的說就是把整個區域網轉換為一個全球IP地址。

NAT:為了解決IP地址用完的問題,把單個區域網地址轉換為全球IP地址。

運輸層:

真正的傳輸終點並不是主機!而是主機中的程序!所以誕生了運輸層。其中包括UDP(使用者資料報協議)和TCP(傳輸控制協議)協議。

UDP:

UDP是無連線的,盡最大努力交付的,沒有擁塞控制的,面向報文的通訊。

首部只有8個位元組比TCP的20位元組省了很多。

首部包括:源埠,目的埠,長度和檢驗和。一個UDP埠與一個報文佇列相關聯,當佇列滿時,報文被丟棄(沒有擁塞控制)。如果埠不正確,會由ICMP傳送埠不可達錯誤。

TCP:

TCP是面向連線的,提供可靠服務的,全雙工通訊的(UDP也是),面向位元組流的,有擁塞控制和流量控制(與UDP不一樣)通訊。

面向報文通訊:發什麼就收什麼。

面向位元組流:把所有發的連在一起發(連多少由TCP控制),讀多少就收多少。

報文結構:

1.源埠號和目的埠號。(各兩個位元組)

2.序號,4個位元組。代表本報文段中的第一個位元組的序號

3.確認號,4個位元組。代表期望收到的下一個報文段的第一個資料位元組的序號。

4.資料偏移,4位(是位),其實就是首部長度

5.保留,佔6位

6.6個標記,各佔1位,分別為:緊急(將資料發到最前面,與緊急指標配合使用),確認(為1時,確認號才有用),推送(立即傳送),復位(重新連線),同步(三次握手相關),終止(四次揮手相關)。

7.視窗,佔2位元組,用來控制對方傳送的資料量,就是他用來流量和擁塞控制的,就是允許對方傳送的位元組的長度。

8.校驗和,2位元組。

14.可變長度。

TCP為了可靠傳輸,用到了:差錯檢測,序號,確認,超時重傳,滑動視窗機制。

三次握手:

B先被動開啟,然後不斷監聽是否有連線請求。

A主動開啟,向B傳送連線請求報文!其格式是:同步位為1,確認號為0,選擇一個序號x。

B收到請求!向A傳送確認報文!其格式是:同步位為1,確認號為1,確認序號為x+1,選擇一個序號y。

A收到確認!向B給出確認!其格式是:同步位為0,確認號為1,確認序號為y+1,序號為x+1.

當同步位為1時,不能攜帶資料!所以第三次握手其實是可以攜帶資料的。

那麼為什麼要第三次握手?因為是防止第一次握手的報文又再次傳到B!

四次揮手:

假設A主動請求,向B傳送終止報文!終止標誌為1。同步位為0(同步位只是用來建立連線,所以肯定為0)

B收到請求,向自己的程式說連線終止,然後向A傳送確認報文!這樣A到B的連線就釋放了處於半關閉狀態!但是B仍可以向A傳送資料!(還是要確認)但是B不再接受A的資料!

然後B再向A請求釋放連線!終止標識為1。

A收到B的請求後,向B傳送確認報文!然後就結束了!

但是!A不會馬上結束,因為要等待超時重傳,如果這個時候又收到了B的請求釋放(因為A的確認有可能丟失),那麼還要再確認一次!最後才結束!

擁塞控制和流量控制的區別:流量控制是點到點的(快取不夠),擁塞控制是全域性的(線路上太多東西在傳)。解決方法都是滑動視窗。

應用層:

很簡單,就是真實的傳送資料了,只是這些資料要遵循不同的格式。

電子郵件SMTP:TCP:25

遠端終端訪問Telnet:TCP:23

全球資訊網HTPP:TCP:80

檔案傳輸FTP:TCP:21

DHCP:UDP:67,68

DNS:TCP、UDP:53