Yakim shu Hi, 這是我擴充腦內海馬體的地方。

[第四週] 網路基礎 - TCP/IP

TCP/IP 是什麼?

OSI模型、TCP/IP协议栈

( 圖片來源: OSI模型、TCP/IP协议栈 )

TCP/IP 模型 ( 圖片中間 ) 分成四層,簡化至 OSI 的七層( 圖片左邊 ),從上至下分別是:

所以可以看出來, HTTP 協議( 應用層 )是建立在 TCP( 傳輸層 )之上, 而 TCP 是建立在 IP 位置( 網路層 )之上…


IP 地址

IP 全名為 Internet Protocol,中文為「 網際網路協定 」。用於網路交換封包的一種協定,它定義了定址方式及資料的封裝結構。

而 IP 協議的版本也有分為 IPv4 與 IPv6,最主要的差異在於,新版的 IPv6解決了 IPv4 地址不夠用的問題,有興趣了解更多的可以參考這篇:認識IPv4與IPv6的差異

而常聽到的 IP 地址,就是你在網路上的地址,別人可以從這個地址訪問到你的電腦,其中又分為很多種類型。

虛擬 IP、浮動 IP、固定 IP ?

固定 IP

可以當成每一台電腦都有一個 IP 位置( 理想狀態下 ),顧名思義這 IP 位置是固定、不會變的,基本上伺服器都跟公司企業是用固定 IP,這樣才能保證使用者可以連上伺服器,不會突然找不到。

浮動 IP

一般來說,普通使用者跟家用電腦大部分是浮動 IP,意指你每次連上網路的時候,IP 位置都會不一樣,別人還是可以連到這個 IP,只是這 IP 位置會隨再次上線時、有所變動,好處如下:

虛擬 IP

在內網底下才可以互相連接,外網是連不上的,所以內網 IP 位置是可以重複的。但對外網而言,一定會有一個 固定 or 浮動的 IP 位置。

螢幕快照 2019-05-06 下午9.08.24

( 圖片取自課程投影片 )

如果想要查詢自己內網的對外 IP,可以用 myip 當關鍵字,搜尋一些網頁服務。

通常以 192.16810.0 開頭的,都是虛擬 IP、也就是內網 IP,外網是連不進來的。

參考資料:


Port 連接埠( 端口 )

localhost:5000 ← Port

同一個電腦上可能有對應到不同的服務,所以用 Port 來區別,接收不同的服務請求,例如上篇文章:[第四週] 網路基礎 - HTTP、Request、Response,製作的簡易 Server,就是監聽 5000 這個 port。

那如果沒有輸入 port 的話,也會有一些預設或常用值,如以下:


TCP & UDP

TCP 與 UDP 指的是傳輸層的兩個協議。

三次握手

TCP 連接之所以比較可靠,是因為會先進行三次握手的動作,可以看下圖:

( 查了一下資料,其實很過程很複雜,這圖可能不是很正確,底下舉例更是我在自由發揮,就當做是幫助理解觀念 )

三次握手

( 圖片來源:通俗大白话来理解TCP协议的三次握手和四次分手

參考資料:

結論

複習一下,文章最上方的 TCP/IP 四層模型,其實就是各個抽象層級的不同協定


( 以上內容大部分是 程式導師實驗計畫第三期 的學習筆記,如有錯誤歡迎糾正,非常感謝 🤓 )