Network

@piepie01

先給大家網路

CSIE_guest

username : piepie01

password : 2C932W6G

 

Who am I?

謝議霆

  • 資訊系大三
  • 資訊系網管有線組
  • 資訊之芽python班講師
  • 去年資訊營python講師

True story

你對網路的理解

一般人認為的網路

  • 打開分享器
  • 打開電腦
  • 上網
  • speedtest
  • 網路不通?
    • 重開機
    • 重開分享器
    • windows網路診斷

如果現在你的網路需求是...

  • 如果你有朋友
  • 如果你們有一款遊戲需要有人蓋一個server
  • 如果你架的一個網站想要被別人看到

要怎麼用家裡的網路設備做到這些事?

如果你有點sense

IP

Internet Protocol address

What's my IP

in Simple way

Iphone

Mac

https://www.whatismyip.com.tw

IP

  • 機器在網路上的位置
  • IP分兩種
    • IPv4, EX:192.168.0.1
      • 從0.0.0.0~255.255.255.255
    • IPv6, EX:2001:0db8:85a3:0000:0000:8a2e:0370:7334
      • 我們晚點再討論IPv6

IPv4有幾個

  • 0.0.0.0~255.255.255.255
2^8 \times 2^8 \times 2^8 \times 2^8 = 2^{32} =4294967296
  • 約40億個

如何表示一個IP的範圍

  • subnet mask : 子網路遮罩
  • EX : 192.168.0.0/24
  • EX : 192.168.0.0/255.255.255.0

2進位速成

0\ 0\ 1\ 1\ 1
2^4\ 2^3\ 2^2\ 2^1\ 2^0
2^0 + 2^1 + 2^2 = 7

兩種表示方式的轉換

  • 192.168.0.0/24 and 192.168.0.0/255.255.255.0 是一樣的!
  • 將255.255.255.0的每個數字轉成二進位
11111111\ 11111111\ 11111111\ 00000000

24個1

小練習

  • 255.255.248.0轉成另一種表示方式是多少?

192.168.0.0/24 表示什麼?

  • 將192.168.0.0轉成二進位
11000000\ 10101000\ 00000000\ 00000000
11111111\ 11111111\ 11111111\ 00000000

所有mask是1的地方不動,0的地方可以隨便更換

  • 所以範圍是:192.168.0.0~192.168.0.255

IPv4也有分兩種

  • Private IP
  • 開頭為
    • 10.x.x.x
    • 172.16-31.x.x
    • 192.168.x.x
  • Public IP
  • 所有不是Private IP的IP

Private IP

  • 私有IP
  • 區域網路專用

Public IP

  • 公共IP
  • 可以對外連線

回憶一下剛剛測試的結果......

現在的問題是

  • 為什麼一台機器會測到兩個IP?
    • 一個是Private IP一個是Public IP
  • 為什麼需要Private IP?

為什麼需要Private IP?

  • 40億個IP,夠嗎?
  • 有些人可能不需要連上網際網路
    • 這些人都拿一個獨立的IP?
  • 所以這些人就可以重複拿Private IP
    • 因為Private IP不能連上網際網路

為什麼一台機器會測到兩個IP?

  • 小觀察
    • 假如我再拿另一台手機連系上Wifi,會發現測到的Public IP是一樣的
    • 這代表什麼?
  • 一件合理的事實
    • 測到Public IP的都是透過外面的網站
    • 既然Private IP無法連上網,外面網站看我們的機器一定是Public IP

可以寫點東西在圖上面了~

6.6.6.6

192.168.0.3

192.168.0.4

192.168.0.1

NAT

  •  兩個Private IP透過同一個Public IP連上網
    • 沒那麼簡單
  • NAT : Network Address Translation

可以寫點東西在圖上面了~

6.6.6.6

192.168.0.3

192.168.0.4

192.168.0.1

  • NAT

Port

Port

  • 埠(ㄅㄨˋ)
  • 如果IP是一個機器的地址
    • EX : 台北市大安區羅斯福路四段
  • Port就是一個server在機器中的確切位置
    • EX : 台北市大安區羅斯福路四段“一號”

舉個例子

  • 假如我現在透過瀏覽器連到一個https server,我就是連到那一台機器的443 port

意思是?

  • 我在一台機器上架一個https server,預設會開在該機器的443 port
  • 當我用瀏覽器連一台機器,預設會指定該機器的443 port

可以寫點東西在圖上面了~

6.6.6.6

192.168.0.3

192.168.0.4

192.168.0.1

  • NAT
  • https server
  • port 443

可是你朋友要怎麼連到你的server

6.6.6.6

192.168.0.3

192.168.0.4

192.168.0.1

  • NAT
  • https server
  • port 443

(A) 192.168.0.3:443

(B) 6.6.6.6:443

Fire Wall

Packet 封包

  • 網路傳輸的單位
  • 封包應該要包含什麼資訊
    • dst IP/Port
    • src IP/Port

防火牆

  • 監控封包
  • 將惡意src IP的封包丟掉

最理想的位置

6.6.6.6

192.168.0.3

192.168.0.4

192.168.0.1

  • NAT
  • https server
  • port 443

Fire wall

家用分享器

6.6.6.6

192.168.0.3

192.168.0.4

192.168.0.1

  • NAT
  • Fire wall
  • https server
  • port 443

家用分享器 Firewall

  • Port Forwarding
  • 更改封包再次傳遞
  • EX : 讓丟給140.112.31.43:443的封包丟給192.168.0.3:443
  • 理由:Public IP是外面的人碰得到的,分享器會同時有Public和Private IP

家用分享器

6.6.6.6

192.168.0.3

192.168.0.4

192.168.0.1

  • NAT
  • Fire wall
  • https server
  • port 443
  • Port fowarding
    • 6.6.6.6:443 -> 192.168.0.3:443

網路能通不理所當然

其他基礎網路知識

MAC address

MAC address

  • 每一台機器獨特的編號,不會跟別人一樣
  • 不會隨著時間改變
  • 會跟著封包傳遞
  • EX : 00-14-22-01-23-45

Recall NAT

6.6.6.6

192.168.0.3

192.168.0.4

192.168.0.1

  • NAT
  • Fire wall
  • https server
  • port 443
  • Port fowarding
    • 6.6.6.6:443 -> 192.168.0.3:443

分享器要怎麼知道回來的封包要給誰?

  • MAC address Table

Routing

如何觀看一個封包怎麼到達目的地

  • Mac : traceroute
  • Windows : tracert
  • Routing rules

DNS

Domain Name Server

  • 沒人記得IP是什麼
  • 在網路中能夠用Domain Name(EX : www.google.com) 找到該機器
  • 可是封包只能以IP當目的地?

順序

  1. 訪問www.google.com
  2. 訪問DNS www.google.com的IP是172.217.160.68
  3. 訪問172.217.160.68

VPN

VPN

  • 中文:翻牆
  • 不只有中國在用

VPN 核心價值

6.6.6.6

8.8.8.8

7.7.7.7

Block 6.0.0.0/8

同樣的手法,我們可以

  1. 連到某一個內網
  2. 可能可以加快網路頻寬

G?

很多G

  1. GB
  2. Gbps
  3. 2.4G, 5G網路
  4. 3G, 4G, 4.5G網路

很多G

  1. GB -> Giga Byte(指數量級)
  2. Gbps
  3. 2.4G, 5G網路
  4. 3G, 4G, 4.5G網路

很多G

  1. GB -> Giga Byte(指數量級)
  2. Gbps -> Giga bit per second(指數量級)
  3. 2.4G, 5G網路
  4. 3G, 4G, 4.5G網路

很多G

  1. GB -> Giga Byte(指數量級)
  2. Gbps -> Giga bit per second(指數量級)
  3. 2.4G, 5G網路 -> 2.4Ghz(指頻率)
  4. 3G, 4G, 4.5G網路

很多G

  1. GB -> Giga Byte(指數量級)
  2. Gbps -> Giga bit per second(指數量級)
  3. 2.4G, 5G網路 -> 2.4Ghz(指頻率)
  4. 3G, 4G, 4.5G網路 -> 4 Generation(指世代)

2019CSIECamp_Network

By piepie01

2019CSIECamp_Network

  • 453