網路概論

Network Administration

(可能還有一點點資安)

目錄 (點擊文字可以傳送到該章節)

上課之前

暖機一下

自介

簡報原作者

開始之前要知道的

有關專有名詞

如果你直接把"ARP協定" 丟去搜尋會有以下結果:

 

"位址解析協定(英語:Address Resolution Protocol,縮寫:ARP)是一個通過解析網路層位址來找尋資料鏈路層位址的網路傳輸協定。ARP最初在 ...。它通過網路位址來定位MAC位址。ARP已經在很多網路層和資料鏈結層之間得以實現,包括IPv4 ..."

 

查下去後反而多出更多看不懂的專有名詞

有關專有名詞

建議記住一個原則:

 

"每個技術都是為了解決上個架構留下的問題而生"

 

舉個例子:

集線器(hub)無法辨認不同電腦 -> 交換機(switch) + MAC位址

UDP 傳輸快但不夠穩定 -> TCP

IPv4 位址太少不夠用 -> IPv6     別問IPv5在哪

 

網路通訊五層架構就是這樣疊出來的!

什麼是網路

在飛機上有會很開心的東西

在飛機上做簡報還是挺爽的

網路簡介

what is Network?

  • 舉例:
    • 小明把家裡兩台電腦透過一條網路線連起來
    • 公司的手機、電腦、印表機和路由器形成一個區域網路

  • 重點:一個合法的 Network 不一定可以連到外面(其他網路)!

what is Internet?

  • 重點:透過一些方式,讓全世界的網路可以連在一起
  • How? 透過標準通訊協定互相連接。

What is 協定?

  • 通訊雙方事先約定好的規則。
    • 資料要用什麼格式傳
    • 先傳什麼、後傳什麼
    • 收到資料後要怎麼回應
    • 發生錯誤時要怎麼處理
  • 目標:避免雞同鴨講、確定雙方能達成有效溝通

what is www?

  • 是一種應用服務,不是所有的網路
  • 網頁版 FB 在 www 上
  • 手機 APP 上的 IG 不在 www 上
  • Gmail 的信箱服務在 www 上
  • Email 的傳送不在 www 上

這門課的重點在 Internet

  • 我們重點要解釋現在的網際網路是怎麼連在一起的?
  • 每個層級在做什麼、他們各自有什麼用途
  • 為等等的 SA 課程做預備!

網路通訊架構 / 名詞一覽

層級 相關名詞
應用層 (Application) HTTPS、DNS
傳輸層 (Transport) UDP、TCP
網路層 (Internet) 路由器(router)、IP位址、ARP協定
鏈結層 (Link) 交換機(switch)、MAC位址
實體層 (Physical) 網路線、集線器(hub)

課堂上使用的是 TCP/IP 五層模型

Q&A:

  1. 請問層級在上/下的意義是什麼?
  2. 實際傳出去的封包,誰在外面?

A如何把資料傳給B?

如何把A的資料傳到B?

A

B

一開始,我們有兩台很笨的電腦A和B

接一條線阿!

如何把A的資料傳到B?

A

B

接一條線阿!

你發明了網路線!

一開始,我們有兩台很笨的電腦A和B

A

B

你發明了網路線!

啊但網路線要插哪裡?

在電腦上弄一塊晶片跟一堆插孔來專門處理網路的事項!

你發明了網卡!

A

B

接Cn取2條線似乎不是種好辦法

但電腦如果變多了...

C

D

A

B

你發明了集線器(hub)!

如果有一個可以集中管理的裝置 ...

C

D

A

B

要想辦法讓集線器知道每個端口接的是誰

但A要怎麼知道B在哪?

C

D

?

0A:1A:2A:3A:4A:5A

之後只要在傳輸的資料上標註目標地址,即可完成傳輸

你發明了MAC位址和交換機(switch)!

為每台電腦加上獨一無二的地址

再把地址紀錄成一張表!

0C:1C:2C:3C:4C:5C

0D:1D:2D:3D:4D:5D

0B:1B:2B:3B:4B:5B

1 2 3 4 5

地址 端口
0A:1A:2A:3A:4A:5A 1
0B:1B:2B:3B:4B:5B 3
0C:1C:2C:3C:4C:5C 2
0D:1D:2D:3D:4D:5D 4

來源:0A:1A:2A:3A:4A:5A

目標:0B:1B:2B:3B:4B:5B

0A:1A:2A:3A:4A:5A

為每台電腦加上獨一無二的地址

再把地址紀錄成一張表!

0C:1C:2C:3C:4C:5C

0D:1D:2D:3D:4D:5D

0B:1B:2B:3B:4B:5B

1 2 3 4 5

地址 端口
0A:1A:2A:3A:4A:5A 1
0B:1B:2B:3B:4B:5B 3
0C:1C:2C:3C:4C:5C 2
0D:1D:2D:3D:4D:5D 4

之後只要在傳輸的資料上標註目標地址,即可完成傳輸

你發明了MAC位址和交換機(switch)!

0A:1A:2A:3A:4A:5A

為每台電腦加上獨一無二的地址

再把地址紀錄成一張表!

0C:1C:2C:3C:4C:5C

0D:1D:2D:3D:4D:5D

地址 端口
0A:1A:2A:3A:4A:5A 1
0B:1B:2B:3B:4B:5B 3
0C:1C:2C:3C:4C:5C 2
0D:1D:2D:3D:4D:5D 4

0B:1B:2B:3B:4B:5B

1 2 3 4 5

之後只要在傳輸的資料上標註目標地址,即可完成傳輸

你發明了MAC位址和交換機(switch)!

0A:1A:2A:3A:4A:5A

為每台電腦加上獨一無二的地址

再把地址紀錄成一張表!

0C:1C:2C:3C:4C:5C

0D:1D:2D:3D:4D:5D

地址 端口
0A:1A:2A:3A:4A:5A 1
0B:1B:2B:3B:4B:5B 3
0C:1C:2C:3C:4C:5C 2
0D:1D:2D:3D:4D:5D 4

0B:1B:2B:3B:4B:5B

1 2 3 4 5

之後只要在傳輸的資料上標註目標地址,即可完成傳輸

你發明了MAC位址和交換機(switch)!

MAC位址

00 : 1A : 2B : 3C : 4D : 5E

交換機(switch)

補充: 實際上如何連接 switch

credit: NASA Lab4 Slides

credit: NASA Lab4 Slides

credit: NASA Lab4 Slides

credit: NASA Lab4 Slides

credit: NASA Lab4 Slides

credit: NASA Lab4 Slides

實際上你的switch作業會長這樣:

實體層、連接層的常見協議

規定了:

  • 資料幀(frame)的格式
  • MAC 位址
  • 誰可以使用傳輸媒介
  • 如何檢查傳輸錯誤
  • 交換器如何轉送資料

不同交換機下的電腦該如何傳資料?

0A:1A:2A:3A:4A:5A

0C:1C:2C:3C:4C:5C

0D:1D:2D:3D:4D:5D

0B:1B:2B:3B:4B:5B

1 2 3 4 5

今天如果有更多台電腦...

0E:1E:2E:3E:4E:5E

0G:1G:2G:3G:4G:5G

0H:1H:2H:3H:4H:5H

0F:1F:2F:3F:4F:5F

1 2 3 4 5

由於交換機的端口數量有限

所以我們需要更多交換機來連接

0A:1A:2A ...

0C:1C:2C ...

1 2 3 4 5

有點太多了我們簡化一下

0H:1H:2H ...

0F:1F:2F ...

1 2 3 4 5

今天如果有更多台電腦...

1 2 3 4 5

A如何把資料傳給不同交換機底下的F?

兩台交換機接一條線!

但有點小問題

1 2 3 4 5

0A:1A:2A ...

0C:1C:2C ...

0H:1H:2H ...

0F:1F:2F ...

出現的問題

0A:1A:2A ...

0C:1C:2C ...

1 2 3 4 5

A如何把資料傳給不同交換機底下的F?

你發明了路由器(router)!

然而問題並沒有解決

0H:1H:2H ...

0F:1F:2F ...

1 2 3 4 5

0X:1X:2X ...

0Y:1Y:2Y ...

出現的更多問題

以下是路由器的視角:
某天路由器 R 收到電腦 A 的資料,目的地是電腦F
請問它怎麼知道要轉發給誰?

連接一堆路由器

路由器 R

連了不知道多少電腦

的路由器們

?

出現的更多問題

你發明了 IP 地址與區域網(LAN)!

1 2 3 4 5

A如何把資料傳給不同交換機底下的F?

1 2 3 4 5

0A:1A:2A ...

192.168.0.22

0C:1C:2C ...

192.168.0.33

0H:1H:2H ...

192.168.1.33

0F:1F:2F ...

192.168.1.22

0X:1X:2X ...

192.168.0.1

0Y:1Y:2Y ...

192.168.1.1

A如何把資料傳給不同交換機底下的F?

子網路遮罩 (Subnet Mask)!

電腦A: 192.168.0.22 & 255.255.255.0 = 192.168.0.0

電腦C: 192.168.0.22 & 255.255.255.0 = 192.168.0.0

電腦F: 192.168.1.22 & 255.255.255.0 = 192.168.1.0

電腦H: 192.168.1.33 & 255.255.255.0 = 192.168.1.0

這裡的子網路遮罩為: 255.255.255.0

 

最後一點問題

1 2 3 4 5

就拿著 IP 地址廣播叫對方出來說話

1 2 3 4 5

"在叫我嗎!?"

"不是我"

"IP地址為 192.168.0.1 的人回覆一下"

0A:1A:2A ...

192.168.0.22

0C:1C:2C ...

192.168.0.33

0H:1H:2H ...

192.168.1.33

0F:1F:2F ...

192.168.1.22

0X:1X:2X ...

192.168.0.1

0Y:1Y:2Y ...

192.168.1.1

你發明了ARP協定!

1 2 3 4 5

就拿著 IP 地址廣播叫對方出來說話

1 2 3 4 5

"在叫我嗎!?"

"不是我"

0A:1A:2A ...

192.168.0.22

0C:1C:2C ...

192.168.0.33

0H:1H:2H ...

192.168.1.33

0F:1F:2F ...

192.168.1.22

0X:1X:2X ...

192.168.0.1

0Y:1Y:2Y ...

192.168.1.1

"IP地址為 192.168.0.1 的人回覆一下"

從頭順一次

IP地址

路由器(router)

說故事時間

廣播風暴

credit: 思諾的 NASA作業

資料完整正確嗎?

更進一步!

經過我們前面(實體層、鏈結層、網路層)的努力,現在我們只要有某部裝置的IP地址,就可以把資料傳給它!

但資料傳輸並不是以"電腦對電腦",而是以"埠口(port)對埠口",因為一台電腦會同時執行很多服務

服務 PORT NUMBER
SSH 22
HTTPS 443
DNS 53
VNC 5900

A

B

A

你發明了UDP!

我們可以在封包標頭加上 port number 資訊

dst. port: 22

dst. port: 443

UDP

A

B

可以很明顯感受到 UDP 不怎麼可靠

因為它不保證順序、不保證成功,也沒有重傳機制

對於重要的資料,我們需要一套機制去確保它

完整且正確

TCP

補充: 三次握手過程

SYN_SENT

(我傳訊息了)

在嗎

等待ING

補充: 三次握手過程

SYN_SENT

(我傳訊息了)

等待ING

在嗎

補充: 三次握手過程

SYN_SENT

(我傳訊息了)

SYN_RECV

(我收到了)

在嗎

補充: 三次握手過程

SYN_SENT

(我傳訊息了)

SYN_RECV

(我收到了)

在,你呢

補充: 三次握手過程

SYN_SENT

(我傳訊息了)

SYN_RECV

(我收到了)

在,你呢

補充: 三次握手過程

ESTABLISHED

可以聊天了

SYN_RECV

(我收到了)

我也在

補充: 三次握手過程

ESTABLISHED

可以聊天了

SYN_RECV

(我收到了)

我也在

補充: 三次握手過程

ESTABLISHED

可以聊天了

SYN_RECV

(我收到了)

我也在

補充: 三次握手過程

ESTABLISHED

可以聊天了

ESTABLISHED

可以聊天了

我也在

會與你的資料直接接觸的東西

簡介

185.199.110.153

前面有說過,只要有IP地址,就可以與它建立傳輸關係,但我們記不住每個網站的IP

?

我們需要一個能將名稱與IP綁在一起的服務

類似電話的聯絡人功能!

ckefgisc.org

185.199.110.153

你發明了網域名和 DNS server!

於是我們創造了一個 server,只要我們輸入網站名稱它就可以找到對應的IP,並把我們導向這個IP地址

域名

Root Name Server

根域名伺服器

TLD Name Server

頂級域名伺服器

Authoritative Name Server

權威域名伺服器

"."

".org"

".wiki"

社網實際上

在管理的

我們可以用域名的架構來理解 DNS server 是如何運作

但光有 server 還不夠,我們需要一個負責問問題並給我們答案的人*

 

你發明了 resolver!

"."

".org"

".wiki"

8.8.8.8

註: 有很多考量但可以先理解成這樣效率比較好

Resolver

DNS server

DNS的更多應用

DNS record

如果你有修NASA,那以下內容會是你的作業:

DNS record

如果你有修NASA,那以下內容會是你應該交出的答案:

DNS record (社網節錄)

補充: DNS常見攻擊

HTTP

http request

http response

大家都很熟就不細講了

  1. 請問層級在上/下的意義是什麼?
  2. 實際傳出去的封包,誰在外面?

封包長相

這是一個 IPv4 封包

問題: 資料區段放的是 L4 還是 L2 資料?

Hint: 想一下資料傳送時會經過哪些東西,順序為何?

資訊安全守則

  • 只要連上網就會被掃描、攻擊
  • 設好防火牆,減少不必要的對外入口
  • 系統、套件與服務必須持續更新安全漏洞。
  • 不要用過新的 beta / alpha 版本,盡量用 LTS 版本。
  • 記得異地備份

何謂密碼學

對稱加密

非對稱加密

明文

密文

明文

密文

RSA encryption

RSA Signature

HTTPS

HTTP 沒有加密,封包資料會在網路上裸奔

怎麼加密?

ckefgisc.org

cjtsai

pubkey

encrypted msg

msg

private key

但這樣會有一個問題

HTTPS

ckefgisc.org

cjtsai

pubkey

encrypted msg

msg

private key

HTTPS

ckefgisc.org

cjtsai

pubkey

encrypted msg

msg

private key

Man in the middle attack!

HTTPS

ckefgisc.org

cjtsai

CA

HTTPS

ckefgisc.org

cjtsai

CA

HTTPS

ckefgisc.org

cjtsai

CA

HTTPS

ckefgisc.org

cjtsai

CA

HTTPS

ckefgisc.org

cjtsai

CA

收尾

我覺得SA比較重要

總結

THE END

希望我翻到這頁時還沒超時

網路概論 Network Adiministration

By Aaron Wu

網路概論 Network Adiministration

建北電資一七學術幹訓

  • 103