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, EX:192.168.0.1
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當目的地?
順序
- 訪問www.google.com
- 訪問DNS www.google.com的IP是172.217.160.68
- 訪問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
同樣的手法,我們可以
- 連到某一個內網
- 可能可以加快網路頻寬
G?
很多G
- GB
- Gbps
- 2.4G, 5G網路
- 3G, 4G, 4.5G網路
很多G
- GB -> Giga Byte(指數量級)
- Gbps
- 2.4G, 5G網路
- 3G, 4G, 4.5G網路
很多G
- GB -> Giga Byte(指數量級)
- Gbps -> Giga bit per second(指數量級)
- 2.4G, 5G網路
- 3G, 4G, 4.5G網路
很多G
- GB -> Giga Byte(指數量級)
- Gbps -> Giga bit per second(指數量級)
- 2.4G, 5G網路 -> 2.4Ghz(指頻率)
- 3G, 4G, 4.5G網路
很多G
- GB -> Giga Byte(指數量級)
- Gbps -> Giga bit per second(指數量級)
- 2.4G, 5G網路 -> 2.4Ghz(指頻率)
- 3G, 4G, 4.5G網路 -> 4 Generation(指世代)
2019CSIECamp_Network
By piepie01
2019CSIECamp_Network
- 453