( 圖片來源: OSI模型、TCP/IP协议栈 )
TCP/IP 模型 ( 圖片中間 ) 分成四層,簡化至 OSI 的七層( 圖片左邊 ),從上至下分別是:
HTTP
, HTTPS
, FTP
,DNS
…TCP
, UDP
IPv4
, IPv6
乙太網路
、Wi-Fi
所以可以看出來, HTTP 協議( 應用層 )是建立在 TCP( 傳輸層 )之上, 而 TCP 是建立在 IP 位置( 網路層 )之上…
IP 全名為 Internet Protocol,中文為「 網際網路協定 」。用於網路交換封包的一種協定,它定義了定址方式及資料的封裝結構。
而 IP 協議的版本也有分為 IPv4 與 IPv6,最主要的差異在於,新版的 IPv6解決了 IPv4 地址不夠用的問題,有興趣了解更多的可以參考這篇:認識IPv4與IPv6的差異
而常聽到的 IP 地址,就是你在網路上的地址,別人可以從這個地址訪問到你的電腦,其中又分為很多種類型。
可以當成每一台電腦都有一個 IP 位置( 理想狀態下 ),顧名思義這 IP 位置是固定、不會變的,基本上伺服器都跟公司企業是用固定 IP,這樣才能保證使用者可以連上伺服器,不會突然找不到。
一般來說,普通使用者跟家用電腦大部分是浮動 IP,意指你每次連上網路的時候,IP 位置都會不一樣,別人還是可以連到這個 IP,只是這 IP 位置會隨再次上線時、有所變動,好處如下:
在內網底下才可以互相連接,外網是連不上的,所以內網 IP 位置是可以重複的。但對外網而言,一定會有一個 固定 or 浮動的 IP 位置。
( 圖片取自課程投影片 )
如果想要查詢自己內網的對外 IP,可以用 myip 當關鍵字,搜尋一些網頁服務。
通常以
192.168
或10.0
開頭的,都是虛擬 IP、也就是內網 IP,外網是連不進來的。
參考資料:
localhost:5000 ← Port
同一個電腦上可能有對應到不同的服務,所以用 Port 來區別,接收不同的服務請求,例如上篇文章:[第四週] 網路基礎 - HTTP、Request、Response,製作的簡易 Server,就是監聽 5000
這個 port。
那如果沒有輸入 port 的話,也會有一些預設或常用值,如以下:
80
443
21
3000
、4000
、8080
、8000
TCP 與 UDP 指的是傳輸層的兩個協議。
TCP 連接之所以比較可靠,是因為會先進行三次握手的動作,可以看下圖:
( 查了一下資料,其實很過程很複雜,這圖可能不是很正確,底下舉例更是我在自由發揮,就當做是幫助理解觀念 )
( 圖片來源:通俗大白话来理解TCP协议的三次握手和四次分手 )
參考資料:
複習一下,文章最上方的 TCP/IP 四層模型,其實就是各個抽象層級的不同協定:
HTTP
, FTP
TCP
, UDP
IP
乙太網路
、Wi-Fi
、MPLS
等等( 以上內容大部分是 程式導師實驗計畫第三期 的學習筆記,如有錯誤歡迎糾正,非常感謝 🤓 )
Written on May 6th, 2019 by Yakim shu