筆記、09801 計算機網路概論-第1-C講 Computer Networks and the Internet


Posted by s103071049 on 2022-01-26

1.5 Internet structure and ISPs

  • 階層式的結構
  • at center: “tier-1” ISPs 第一階的網際網路提供者,通常是國家級的,涵蓋地域範圍比較大,彼此私下會互聯。
  • NAP : 公共的交換中心

網網相連,它的周邊有 tier-2

  • “Tier-2” ISPs: smaller (often regional) ISPs,會連上周邊的 “tier-1” ISPs。同樣地 tier-2 也會連結,目的是讓通訊可以有更多路徑選擇。

再下去是 “Tier-3”,更小的是 local。透過這樣一階一階下來,連成一個很大的網。

兩台 host 的溝通,事實上就是透過很多個 isp 互相轉接。所經過的路就是他們之間的連線。tier1 從紐約到西雅圖,就有很多路徑可選。所以怎麼選最好路徑 ?

1.6 Delay & loss in packet-switched networks

How do loss and delay occur?

router 本身會接很多 port,一個 port 經過網路線接到另一個 router。通常每一個 port 都會有 buffer (記憶體),也就是我們存封包的地方。如果輸出的速率小於輸入的速率,無法立刻消化,封包就會 queue,一般會 FIFO,比較聰明的 router 可以識別封包的類型,如果比較敏感像是 radio,可以讓你排前面一點、檔案就排後面一點。

到底有幾個 delay ?

  1. packet being transmitted (delay),封包排到最前面才開始要送,一開始送也要花時間,花的時間取決於傳送的速度、與封包大小 & 網速有關
  2. packets queueing (delay)
  3. free (available) buffers: arriving packets dropped (loss) if no free buffers。丟掉本身又有很多種丟法,最簡單是進來沒位置就丟、比較聰明的會在前面挑幾個丟

造成延遲的主要因素:
一、nodal processing - router 處理收到封包的處理時間。不管有線、無線都會受到干擾,傳送過程資料錯掉是收的人才能發現。所以收的人要做檢查。ex 傳送過程將送的資料做運算,得到一個值放在尾吧,你收到時我再做一次運算,比較是否一樣,如果不一樣就代表資料傳送有錯,我就把這個封包丟掉。一個 router 有很多個 port,我要決定我的封包要往哪裡去,通常是查表看 IP address (第三層)

當我知道他要從哪個 port 出去,就把它放到那個 queue 裡面去。

二、queueing - 在 queue 裡面排隊的時間,取決於 router 的擁擠程度
三、Transmission delay - 送一個封包所要花的時間 (長度/速度)
四、Propagation delay - 與網路長度、材質 (距離/速度)

R 是你可以用多快的速度把你的資料送到 LINK,送出去。送出去他可以多快送到對方手中,取決於你的介質。

EX - 封包走法的差異

把封包送到網路上和封包的訊號在傳輸線上跑的差異

整個封包都送完了,但最前頭都還沒有到對方,還在路上慢慢走

封包還沒完全送完,但他的第一個 bit (最前頭)已經到對方了

封包在一個 router 送出去的時候,未必是整個封包都送完慢慢走。有可能封包還未送完,他的第一個 bit 就到對方了。

Node Delay

網路上會經過很多節點,會經過很多 isp。每一台 router 都有這麼多延遲。

(一段 Node Delay)
收到封包 & 處理封包 => queue 排隊 => 傳送完 => 送到對方

Queueing delay L 乘上 a over R

封包長度 * 封包到達速率 / R = bit 總量送完所需要花的時間

封包來的數量越多,就會有排隊現象出現。

(排隊理論)

  • = 1 表示進來數量差不多等於出去數量
  • 1 進來數量大於出去速度,代表沒辦法消化。沒辦法消化 queue 就急速長,但因為 queue 有限所以會開始掉封包

Real Internet delays and routes

經過每個 router 會送三個 probes (探測)。我丟一個封包給第一個 router,對方的 router 會回一個封包回來,一問一答的動作,然後我會量時間,每個都問三次

Packet loss

loss 本身是 buffer。

Protocol “Layers”

有無方式可以讓網路在不斷發展下,比較有組織、比較好管理 ? 答案是分層

切成 layer 就有上下關係。每一個 layer 都是用下層所提供的服務,可能加點、加值,變成給上一層的服務。層與層之間都有 interface。

網路簡單分五層:從底層往上看

  • physical 表示真的傳輸的線,像是光纖、銅線、無線電(wireless)
  • link layer 表示你利用傳輸的線,把資料從一個節點送到另一個節點 (直接相連的兩點間的傳送),ex - Ethernet
  • network 表從 source 送到 destination 的傳送 (清大到美國中間會經過數十個路由,兩個路由之間就是一個 link,路徑的好壞是隨時會變化),ip 在這一層
  • transport 表 application 對 application 的傳送

優點:

  1. 如果有更好的服務,可以把其中某一段抽掉。只要介面訂得清楚,這就是分層的威力

router 本身分三層
clinet / server 都是 edge 末端

ex -
FTP application 把封包 (data) 丟給 transport layer,transport layer 就要想辦法送到目的地的 transport layer 再將他送上去

TCP 要求資料量、內容、順序都要對。所以他是如何做到的 ?

  1. 對方收到封包,要做回覆。若沒有回覆,就當作封包掉了,再重送。用了兩個重要的東西 (1) 計時器 (2) 重送

有無收到分兩種

  • 資料完全掉了
  • 資料收到,但錯掉了
    所以在送資料前會先做 CHECK SUM,也就是把我要送的資料做一個運算,將算好的數字放在封包的尾吧然後一起送過去,對方收到將 data 做相同的計算,將與帶在尾吧的 test sum 檢查碼做比較。若相同,則回 act,若不同就將封包丟掉。

為了跟對方對等的程式溝通,要做加工。這會導致封包變大。這就是打包。一個資料往下送,每一層之間為了能夠溝通,會做加工,導致封包越來越大。

一路往下送,封包會變大,因為每層都要加上溝通的訊息 (包裝 Encapsulation),往上送封包就變瘦(拆裝 Decapsulation)。


router 是 layer3 表示處理這個封包要看到第三層的資訊(IP)。switch 是 layer2 看網卡的位置。每個網卡上面都帶一個 ip address。

transport 會加一些欄位,目的是給 destination 的 transport 看。丟給 network,他的 H 隱含 soure IP & destination IP。同一層的層次,看同一層的 Header 各看各地。當 network 將他的東西丟給 link,link 又加上自己的 Header。

link 丟出去的會加原始的網卡地址 & 收這個封包的網卡位置。網卡是 48 bit,ip 是 32 bit。

不同層傳輸資料單位名稱

  • segmemt 是 transport layer 之間所送的 unit (4 層)
  • datagram 是 network layer 送的資料,上面帶有兩個 IP 位置 (3 層)
  • frame 是 link layer 之間所送的 unit (2 層)

只要上一層交給你的,都是你的 data,然後你再加上自己的 header,有些還會再加上尾吧。一般 transport & network layer 是加頭 + link layer 是加頭加尾。

這兩個 frame 有何差異 ?

經過 switch 出來之後,soure & destination 的網卡地址要換,每經過一個 link 他的地址就會換掉。但 ip 是有唯一性,傳輸過程不會換掉。

network layer 看目的地 ip 決定走向,選擇哪一個 port。

physical layer 沒有變大,他只是把它們變成一個 bit stirng。











Related Posts

物件(Objective)

物件(Objective)

C# 物件初始化

C# 物件初始化

Day02 : 串列、Tuple

Day02 : 串列、Tuple


Comments