[ 筆記 ] 網路基礎 - TCP / IP


Posted by krebikshaw on 2020-07-02

什麼是 TCP/IP


圖片來源

每一層之間有層級關係:

  • HTTP 協議是建立在 TCP 協議之上
  • TCP 又是建立在 IP 之上
  • IP 則是建立在實體網路之上(電纜,硬體設備)

Internet Protocol (IP)

IP 其實也是一種協定叫做「網際網路協定」用於網路交換封包,它定義了定址方式及資料的封裝結構。

  • IP 協議的版本也有分為 IPv4 與 IPv6,最主要的差異在於,新版的 IPv6解決了 IPv4 地址不夠用的問題

虛擬 IP、浮動 IP、固定 IP

固定 IP:伺服器及公司企業基本上會使用固定 IP,這 IP 位置是固定、不會變的,這樣才能保證使用者可以連上伺服器,不會突然找不到。

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

  • IP 位置不夠用,寶貴資源留給網路主機
  • 每次連線的 IP 位置都不同,所以就算洩露 IP 位置,也不會被駭客輕易攻擊

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

  • 通常虛擬 IP 是以 192.168 或 172 或 10.0 開頭,外網是連不進來的。

localhost:本地主機,是一個 域名,對應的的IP位址是 127.0.0.1 需要DNS進行域名解析,只是說解析是在本地完成,不需要遠程的域名伺服器進行解析。

127.0.0.1:它是一個IP位址,而且是一個有著特殊用途的IPv4地址,也叫做環路地址(loopback address ) 或者本地主機localhost 。大家常用來ping 127.0.0.1 來看本地ip/tcp正不正常,如能ping通即可正常使用。這個地址通常分配給 loopback 接口。loopback 是一個特殊的網絡接口(可理解成虛擬網卡),用於本機中各個應用之間的網絡交互。只要作業系統的網絡組件是正常的,loopback 就能工作。Windows 中看不到這個接口。

原文網址:https://kknews.cc/news/8xvjekn.html

Port 連接埠( 端口 )

同一個電腦上可能有對應到不同的服務,所以用 Port 來區別,接收不同的服務請求

  • 在沒有輸入 port 的情況下,會有一些預設或常用值,如以下:
    • HTTP: 80
    • HTTPS: 443
    • FTP: 21
    • 「 測試 」常用:3000、4000、8080、8000

TCP & UDP

TCP:大部分的網路協定,都是建立在 TCP 上面,因為是比較可靠的方式
UDP:有時候的需求是傳輸快速、並不是穩定的情況下,就會使用 UDP,常見的情況可能是用於「 視訊 」( 需要快速、重複傳送資料 )

TCP 會確保連線是可靠的,用於保證可靠性和流控制機制的數據,通過三次握手才可以初始化 Sockets、視窗大小、初始序列號並建立 TCP 連接:

  • 阻止重複歷史連接的初始化:
  • 對通信雙方的初始序列號進行初始化

由於網路的不穩定,可能導致封包缺失或者順序顛倒:

  • 封包被發送多次造成數據重複
  • 封包在傳輸過程被路由器活其他節點丟失
  • 封包到達接收方可能沒按照發送順序

為了解決可能存在的問題,TCP 要求發送方在封包加入 序列號 字段,有了序列號可以:

  • 接收方可以通過序列號對重複的封包進行去重
  • 發送方會對應封包未被 ACK 時進行重複發送
  • 接收方可以根據封包序列對他們重新排序

細節可參考 为什么 TCP 建立连接需要三次握手


#TCP #IP







Related Posts

JavaScript 五四三 Ep.01 Array.length

JavaScript 五四三 Ep.01 Array.length

Day07 從 React-router 看 History API

Day07 從 React-router 看 History API

jQuery初學筆記-2

jQuery初學筆記-2


Comments