計算機網(wǎng)絡-物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層

1.概述

計算機體系結構
計算機網(wǎng)絡

五層協(xié)議

application layer應用層:為特定應用程序通信的協(xié)議和規(guī)則,如DNS、HTTP,傳輸報文(message)為數(shù)據(jù)段

transport layer運輸層:為兩臺主機進程通信提供通用的數(shù)據(jù)傳輸服務。應用層協(xié)議很多,定義傳輸協(xié)議可以不斷支持新的應用層協(xié)議。有兩大協(xié)議:傳輸控制協(xié)議TCP協(xié)議:提供面向連接的、可靠的數(shù)據(jù)傳輸服務,數(shù)據(jù)單位為報文段(segment);用戶數(shù)據(jù)報協(xié)議:UDP 提供無連接的、盡最大努力交付的數(shù)據(jù)傳輸協(xié)議。TCP提供完整性服務,UDP提供及時性服務。

網(wǎng)絡層:為主機提供數(shù)據(jù)傳輸服務。運輸層為進程提供服務,把運輸層的報文段或者用戶數(shù)據(jù)報分組打包成為IP數(shù)據(jù)報(分組、數(shù)據(jù)報),目的是選擇合適的路由

數(shù)據(jù)鏈路層:針對兩臺主機間的數(shù)據(jù)傳輸服務,為同一鏈路的主機提供數(shù)據(jù)傳輸服務,將ip數(shù)據(jù)報封裝成幀,將ip數(shù)據(jù)報組裝成幀frame,和差錯控制信息,出錯丟棄,由上層協(xié)議負責控制。

物理層:比特流傳輸協(xié)議,不考慮具體的媒介。屏蔽媒介和手段差異。

OSI七層協(xié)議

表示層:數(shù)據(jù)壓縮、加密,不關心數(shù)據(jù)儲存情況

會話層:建立和關閉回話//五層沒有這些,交給開發(fā)者

TCP/IP

只有四層,網(wǎng)絡接口層相當于五層的物理層和數(shù)據(jù)鏈路層

數(shù)據(jù)在各層之間的傳遞過程

在向下的過程中,需要添加下層協(xié)議所需要的首部或者尾部,而在向上的過程中不斷拆開首部和尾部。

路由器只有下面三層協(xié)議,因為路由器位于網(wǎng)絡核心中,不需要為進程或者應用程序提供服務,因此也就不需要傳輸層和應用層。

2.物理層

單工

半雙工

雙工

帶通帶阻

3.數(shù)據(jù)鏈路層

1.封裝成幀

將上一層轉交下來的分組(ip數(shù)據(jù)報)封裝成幀,添加首尾部標記開始和結束。SOH EOT 接受知道完整情況

規(guī)定數(shù)據(jù)部分MTU最大數(shù)據(jù)單元,盡量保證首尾占比較小

2.透明傳輸

使傳輸?shù)姆纸M透明,IP數(shù)據(jù)報出現(xiàn)幀定界符,使用字符填充,轉義

3.差錯檢測

誤碼能夠檢驗出,使用循環(huán)冗余檢驗CRC。

CSMA/CD

  • 多點接入

  • 載波監(jiān)聽

  • 碰撞檢測

PPP協(xié)議

互聯(lián)網(wǎng)用戶需要連接到ISP才能實現(xiàn)接入互聯(lián)網(wǎng),PPP協(xié)議是和ISP通信時使用的協(xié)議

幀格式

mac幀

F幀定界符 1

A 無意義1

C 無意義1

協(xié)議 2

IP數(shù)據(jù)報 MTU1500

FCS 2,循環(huán)冗余檢驗

F 幀定界符

0x7d轉義 7E->7d5e 7d->7d5d

MAC地址

鏈路層地址 6字節(jié) 48位,多少網(wǎng)卡就有多少mac地址

以太網(wǎng)

星形拓撲網(wǎng),mac幀發(fā)送廣播,由網(wǎng)卡判斷mac地址決定是否接收

以太網(wǎng)幀:


image-20190805022101193.png

目的地址 6

源地址 6

類型 2。0x0800即ip協(xié)議

mtu 46~1500

FCFS 4

最小64,最大1518

檢測到錯誤就重新傳,不負責重傳。傳輸中首尾部發(fā)生變化

交換機

具有自學習能力,交換表存接口和mac地址

image-20190805023006811.png

4.網(wǎng)絡層

網(wǎng)絡層是互聯(lián)網(wǎng)的核心,靈活簡潔,只提供無連接的 盡最大努力的數(shù)據(jù)報服務,傳輸單位,ip數(shù)據(jù)報

使用ip連接整個網(wǎng)絡,使其統(tǒng)一。

與 IP 協(xié)議配套使用的還有三個協(xié)議:

  • 地址解析協(xié)議 ARP(Address Resolution Protocol)
  • 網(wǎng)際控制報文協(xié)議 ICMP(Internet Control Message Protocol)
  • 網(wǎng)際組管理協(xié)議 IGMP(Internet Group Management Protocol)

虛擬網(wǎng)絡

虛電路:面向連接,保存一切資源

數(shù)據(jù)報服務,出錯、失序、丟失、重復都不管,由上層協(xié)議保證。

ARP協(xié)議 地址解析協(xié)議

知道ip而不知道硬件地址MAC地址,在主機的arp高速緩存中存放一個mac和ip地址映射表

A向本局域網(wǎng)發(fā)送ip數(shù)據(jù)報時,先查arp緩存有無Bip地址,有就直接發(fā)給其mac。

若沒有B,有可能B不再本網(wǎng),或者B剛加入,arp緩存沒有。

1)arp向本網(wǎng)發(fā)送請求分組,我是192.168.1.1,硬件地址xxx,請問192.168.1.2在嗎?

2)所有主機都收到

3)對應主機應答,將a寫入arp緩存,并發(fā)送應答分組,我是192.168.1.1,mac地址yyy 其余的主機不理睬,單播

ip數(shù)據(jù)報格式

image-20190805024543182.png

最低20字節(jié),5個32位字,只有首部

版本:4位

首部長度 4位,最小5(首部固定長度),最大15,是32位子,即首部=x*4字節(jié)??蛇x部分不是4字節(jié)倍數(shù)填充

區(qū)分服務:8位 來獲取更好服務,一般不用

總長度:16位

標識符:16位 每一個都不同,??循環(huán)使用

標志位 :3位 MF 更多分片 DF 禁止分片 第三位沒用

片偏移 13位。 8字節(jié)為單位,分片必須是64的倍數(shù)

生存時間 8位 TTL每次轉發(fā)-1

協(xié)議 8位 數(shù)據(jù)報攜帶的數(shù)據(jù)是哪個協(xié)議的

首部檢驗和 16位,只檢查首部, 檢驗和置為0,首部分為16位字 反碼運算數(shù)術相加,結果的反碼和原先一致

子網(wǎng)劃分

ip and 子網(wǎng)掩碼 子網(wǎng)號
掩碼 255.255.x.x
2^bit(x)-2 個子網(wǎng)(除去全0和全1) 不能全0和全1
單cdir規(guī)定可以了!
cdir地址塊 128.14.35.7/20 屬于128.14.32.0/20地址塊

網(wǎng)際控制協(xié)議ICMP

image.png

ICMP 報文分為差錯報告報文和詢問報文。


image.png

1. Ping

Ping 是 ICMP 的一個重要應用,主要用來測試兩臺主機之間的連通性。

Ping 的原理是通過向目的主機發(fā)送 ICMP Echo 請求報文,目的主機收到之后會發(fā)送 Echo 回答報文。Ping 會根據(jù)時間和成功響應的次數(shù)估算出數(shù)據(jù)包往返時間以及丟包率。

2. Traceroute

Traceroute 是 ICMP 的另一個應用,用來跟蹤一個分組從源點到終點的路徑。

Traceroute 發(fā)送的 IP 數(shù)據(jù)報封裝的是無法交付的 UDP 用戶數(shù)據(jù)報,并由目的主機發(fā)送終點不可達差錯報告報文。

  • 源主機向目的主機發(fā)送一連串的 IP 數(shù)據(jù)報。第一個數(shù)據(jù)報 P1 的生存時間 TTL 設置為 1,當 P1 到達路徑上的第一個路由器 R1 時,R1 收下它并把 TTL 減 1,此時 TTL 等于 0,R1 就把 P1 丟棄,并向源主機發(fā)送一個 ICMP 時間超過差錯報告報文;
  • 源主機接著發(fā)送第二個數(shù)據(jù)報 P2,并把 TTL 設置為 2。P2 先到達 R1,R1 收下后把 TTL 減 1 再轉發(fā)給 R2,R2 收下后也把 TTL 減 1,由于此時 TTL 等于 0,R2 就丟棄 P2,并向源主機發(fā)送一個 ICMP 時間超過差錯報文。
  • 不斷執(zhí)行這樣的步驟,直到最后一個數(shù)據(jù)報剛剛到達目的主機,主機不轉發(fā)數(shù)據(jù)報,也不把 TTL 值減 1。但是因為數(shù)據(jù)報封裝的是無法交付的 UDP,因此目的主機要向源主機發(fā)送 ICMP 終點不可達差錯報告報文。
  • 之后源主機知道了到達目的主機所經(jīng)過的路由器 IP 地址以及到達每個路由器的往返時間。

虛擬專用網(wǎng) VPN

由于 IP 地址的緊缺,一個機構能申請到的 IP 地址數(shù)往往遠小于本機構所擁有的主機數(shù)。并且一個機構并不需要把所有的主機接入到外部的互聯(lián)網(wǎng)中,機構內的計算機可以使用僅在本機構有效的 IP 地址(專用地址)。

有三個專用地址塊:

10.0.0.0 ~ 10.255.255.255

172.16.0.0 ~ 172.31.255.255

192.168.0.0 ~ 192.168.255.255

VPN 使用公用的互聯(lián)網(wǎng)作為本機構各專用網(wǎng)之間的通信載體。專用指機構內的主機只與本機構內的其它主機通信;虛擬指好像是,而實際上并不是,它有經(jīng)過公用的互聯(lián)網(wǎng)。

image.png

網(wǎng)絡地址轉換 NAT

專用網(wǎng)內部的主機使用本地 IP 地址又想和互聯(lián)網(wǎng)上的主機通信時,可以使用 NAT 來將本地 IP 轉換為全球 IP。

在以前,NAT 將本地 IP 和全球 IP 一一對應,這種方式下?lián)碛?n 個全球 IP 地址的專用網(wǎng)內最多只可以同時有 n 臺主機接入互聯(lián)網(wǎng)。為了更有效地利用全球 IP 地址,現(xiàn)在常用的 NAT 轉換表把傳輸層的端口號也用上了,使得多個專用網(wǎng)內部的主機共用一個全球 IP 地址。使用端口號的 NAT 也叫做網(wǎng)絡地址與端口轉換 NAPT。


image.png

路由選擇協(xié)議

路由選擇協(xié)議都是自適應的,能隨著網(wǎng)絡通信量和拓撲結構的變化而自適應地進行調整。

互聯(lián)網(wǎng)可以劃分為許多較小的自治系統(tǒng) AS,一個 AS 可以使用一種和別的 AS 不同的路由選擇協(xié)議。

可以把路由選擇協(xié)議劃分為兩大類:

  • 自治系統(tǒng)內部的路由選擇:RIP 和 OSPF
  • 自治系統(tǒng)間的路由選擇:BGP

1. 內部網(wǎng)關協(xié)議 RIP

RIP 是一種基于距離向量的路由選擇協(xié)議。距離是指跳數(shù),直接相連的路由器跳數(shù)為 1。跳數(shù)最多為 15,超過 15 表示不可達。

RIP 按固定的時間間隔僅和相鄰路由器交換自己的路由表,經(jīng)過若干次交換之后,所有路由器最終會知道到達本自治系統(tǒng)中任何一個網(wǎng)絡的最短距離和下一跳路由器地址。

距離向量算法:

  • 對地址為 X 的相鄰路由器發(fā)來的 RIP 報文,先修改報文中的所有項目,把下一跳字段中的地址改為 X,并把所有的距離字段加 1;
  • 對修改后的 RIP 報文中的每一個項目,進行以下步驟:
  • 若原來的路由表中沒有目的網(wǎng)絡 N,則把該項目添加到路由表中;
  • 否則:若下一跳路由器地址是 X,則把收到的項目替換原來路由表中的項目;否則:若收到的項目中的距離 d 小于路由表中的距離,則進行更新(例如原始路由表項為 Net2, 5, P,新表項為 Net2, 4, X,則更新);否則什么也不做。
  • 若 3 分鐘還沒有收到相鄰路由器的更新路由表,則把該相鄰路由器標為不可達,即把距離置為 16。

RIP 協(xié)議實現(xiàn)簡單,開銷小。但是 RIP 能使用的最大距離為 15,限制了網(wǎng)絡的規(guī)模。并且當網(wǎng)絡出現(xiàn)故障時,要經(jīng)過比較長的時間才能將此消息傳送到所有路由器。

2. 內部網(wǎng)關協(xié)議 OSPF

開放最短路徑優(yōu)先 OSPF,是為了克服 RIP 的缺點而開發(fā)出來的。

開放表示 OSPF 不受某一家廠商控制,而是公開發(fā)表的;最短路徑優(yōu)先表示使用了 Dijkstra 提出的最短路徑算法 SPF。

OSPF 具有以下特點:

  • 向本自治系統(tǒng)中的所有路由器發(fā)送信息,這種方法是洪泛法。
  • 發(fā)送的信息就是與相鄰路由器的鏈路狀態(tài),鏈路狀態(tài)包括與哪些路由器相連以及鏈路的度量,度量用費用、距離、時延、帶寬等來表示。
  • 只有當鏈路狀態(tài)發(fā)生變化時,路由器才會發(fā)送信息。

所有路由器都具有全網(wǎng)的拓撲結構圖,并且是一致的。相比于 RIP,OSPF 的更新過程收斂的很快。

3. 外部網(wǎng)關協(xié)議 BGP

BGP(Border Gateway Protocol,邊界網(wǎng)關協(xié)議)

AS 之間的路由選擇很困難,主要是由于:

  • 互聯(lián)網(wǎng)規(guī)模很大;
  • 各個 AS 內部使用不同的路由選擇協(xié)議,無法準確定義路徑的度量;
  • AS 之間的路由選擇必須考慮有關的策略,比如有些 AS 不愿意讓其它 AS 經(jīng)過。

BGP 只能尋找一條比較好的路由,而不是最佳路由。

每個 AS 都必須配置 BGP 發(fā)言人,通過在兩個相鄰 BGP 發(fā)言人之間建立 TCP 連接來交換路由信息。


image.png

參考文獻

1.《計算機網(wǎng)絡》-計算機網(wǎng)絡, 謝希仁
2.cyc大佬的筆記https://cyc2018.github.io/CS-Notes

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容