OSI 七層模型懶人包

  • 應用程式層:Http, DNS, POP3, Telnet, FTP, DHCP
  • 展示層:轉碼解碼的都屬於此層
  • 會議層:比較沒有存粹的會議層的例子
  • 傳輸層:TCP, UCP
  • 網路層:IP, ICMP(router比較負責這裡)
  • 資料連接層:MAC, Wifi, Ethernet(bridge, switch, hub 比較負責這裡)
  • 實體層:實體硬體基礎設施屬此層(repeater顯然是這裡咯)

switch 跟 hub 的差別?switch 有記憶體,會負責記得所有設備的 mac 位置;但 hub 每次都用廣播的。

gateway 跟 router 的差別?在不同協議之間幫忙溝通的是 gateway,而 router 主要只負責 IP 協議內的事。其實可以把 router 想成是一種 IP gateway。

UTP, STP

TP for Twisted-Pair,也就是雙絞線。而 U for Unshielded, S for Shielded。

雙絞線的好處是什麼?雙股螺旋互相纏繞,電流方向不固定,就不會產生明顯的磁力線,降低干擾。

RJ45

RJ45 是一種接頭與插孔的標準,因有八個 position、八個 contact,所以也稱 8P8C。

我們現在的乙太網線就採用此規格。

T568A, T568B

那咱網路線的 8P8C 怎麼排列與對接呢?現在比較常用 T568B 的協定標準。

ARP

ARP(address resolution protocol) 是哪層?ARP table 記得 ip 跟 mac 的對應。如果沒有,就廣播問一下,問完就記起來。所以是哪層?偏資料連接層,但其實網路層也算。用戶端主機跟 switch 都會維護 ARP table。

Localhost

localhost 就是 127.0.0.1,你 ping 這個位置,網路層會直接回答你。

也就是說,實體層跟資料連接層都完全不參與其中。網卡不會收到這個請求,所以資料也不會流經網路線。

那 127.0.0.2 有用嗎?其實整個 127.0.0.0/8 都是保留的回送地址,但習慣上我們只用 127.0.0.1。

0.0.0.0

我第一次連 wifi 時,我還沒被分配 IP 位置,那我要怎麼發送訊息?此時我的 IP 是 0.0.0.0,而我的目的位置是 256.256.256.256,也就是廣播跟大家說嗨這裡是新設備唷,誰可以給我配發一個內網 IP 呀?

然後這時候你的 router 就可以作為一個 DHCP 伺服器配一個 IP 給你。

快速判斷ABC類網路

先看二進制的開頭。0開頭就是A、10開頭就是B、110開頭就是C。(1110開頭就是D、1111之後就是E)

CIDR(Classless Inter-Domain Routing)

重點在於 Classless。

如果按照最原始的設定,今天你作為 ISP 要把 IP 分配給用戶,當你發了一個 C 類網路如 220.128.133.0/24 出去,一次就用掉了 256 個排列組合,有夠浪費的啦。

於是 CIDR 就可以拿來打破類別枷鎖,我們不管 C 類的遮罩規定了,我發 220.128.133.0/32 就好!一次只發一個位置,這樣我就可以發給更多人用了。

Private IP

A、B、C類各有這三段:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16

A類跟C類很簡單,分別就是 10.x.x.x 跟 192.168.x.x。

而B類的遮罩是12bit,不太直觀,是 172.16.x.x-172.31.x.x。

NAT

NAT(network address translation) 負責把 private IP 置換成 public IP 出去,回來反之。 因為是改 IP 的標頭,所以是網路層。但其實內網很多設備同時要訪問外網,這時候同一個 IP 沒辦法同時處理,此時其實會修改到埠號,而埠號就是TCP的活了,所以也會碰到傳輸層。

例如 port forwarding 就是 NAT 在負責的。我們先告訴 NAT 說如果外網要求訪問某個 port(TCP 負責的埠),那我就給他某個內網的某個 port。

Port 就是 TCP、UDP 在負責的,乃傳輸層。常見的如 80 for http, 21 for ftp, 22 for ssh, 25 for smtp(e-mail)。

CSMA/CD, CSMA/CA

CSMA/CD 是有線的 Ethernet 用的,是 Collision Detection,都發送看看,碰撞再說。

CSMA/CA 則是無線的 Wifi 用的,是 Collision Avoidance,我發之前會問也會警告大家不要來碰撞。

IaaS, PaaS, SaaS

IaaS, PaaS, SaaS 分別是「Infrastructure as a Service」、「Platform」、「Software」。你跟 google GCP 租虛擬機就是 IaaS;你用 Heroku 假設一個 linebot 的後台就是 Paas;你用 gmail 就是接受 SaaS。

其他

STP(Spanning Tree Protocol, 生成樹協議)因為實際上網路不總是樹狀拓撲,STP 會算出一棵樹,可以避免掉死回圈。