Try   HackMD

TCP/IP 學習筆記

電三甲 111010141 胡佳慧

手動設定網路所需的資訊

  1. IP
  2. Network Mask 網路遮罩
    • 判斷來源端與目的端是否為同網路
    • 同網路直接傳送
    • 不同網路需透過路由器(Router)傳送
  3. Default Router IP

設定好上列三項 ping8.8.8.8 成功

  1. DNS Server IP

0.0.0.0

  1. 電腦剛開機完全沒有任何IP時,代表尚未取得IP
  2. 任意IP
  3. 0.0.0.0/0
    • Any source 防火牆

封包傳送

  • directly直接傳送 目的地位址寫的是目的端網路卡卡號
  • forward轉送 目的地位址寫的是路由器網路卡卡號

ARP位址解析協定(Address Resolution Protocol)

  • request : broadcase 發廣播封包(廣播IP 255.255.255.255)到整個網路上
  • reply : unicase 被指定的IP回應

NAT(Network Address Translation)網路位址轉譯

SNAT(Source NAT)

  • 最簡單的轉換方式
  • 缺點 : 只適用於小規模
  • NAPT(Network Address Port Translation)
    • 不只轉換Address,也轉換Port(連接埠號)
    • 目前正在使用的方法,口語化縮寫NAT
    • 此技術歸類在SNAT

DNAT(Destination NAT)=port forwarding

  • 只轉換Address,不轉換Port(連接埠號)

網際網路上正常使用時會用到的三種位址

  1. Mac Address 實體位址(網路卡卡號)
  2. IP Address (又稱邏輯位址、通訊位址)
  3. 埠號

Loop Back Test(電腦不能運作時使用)

  1. ping 127.0.0.1 確認作業系統的TCP/IP協定是否正常運作
  2. ipconfig 查詢自己的IP、內定路由器位址
    • route print 顯示機器上所有介面的卡號,也可查詢內定路由器位址
  3. ping自己的IP位址 測試自己的網路卡
  4. ping內定路由器的位址 確認網路卡、網路線是否正常
  5. ping網際網路上知名的伺服器IP 確認封包傳送是否正常
    • ex. 8.8.8.8
  6. ping DNS 確認DNS設定

不同作業系統ping自己的IP比較

Windows Linux
byte 32 64
ttl 255 128

RTT(Round Trip Time)

  • RTT = 送去目的端的時間 + 處理時間 + 送回傳送端的時間
  • 數字越大代表傳送端與目的端距離越遠
  • 平均每一秒量測一次
  • 穩定的網路各數值間變化量不大

DHCP通訊協定(自動)

  • 採用客戶端伺服器端的模型(一般電腦為DHCP客戶端)
  • DHCP Server 提供IP,Network Mask,Default Router IP,DNS Server IP等必要資訊進行設定
  • DORA
    1. Discover 發現DHCP Server,發送一個廣播去詢問整個網路誰可以提供相關資訊
    2. Offer DHCP Server收到廣播後,會回傳資料
      • 誰先提供就用誰的
    3. Request 為Broadcase(廣播)封包,告知所有人選擇用誰的資料
    4. Ack確認訊息 被選擇者確認訊息
  • 建構在UDP通訊協定上

    UDP協定

    1. 快速、不講求資料安全性和完整性(傳送失敗就重傳)
    2. 早期的通訊協定,沒有安全機制,不會進行雙方認證

  • DHCP uses UDP port 67 on the server side and UDP port 68 on the client side.
  • 特殊功能 : 大規模電腦自動安裝

DNS(Domain Name System)

  • 為了解決IP記憶不容易
  • DNS轉換
    • 正向解析 : Domain Name轉換成IP
    • 反向解析 : IP轉換成Domain Name
  • 使用UDP通訊協定, use port 53
  • 本地端電腦裡叫hosts的資料夾
    • 紀錄IP和DNS的對照
    • 早期使用
  • 查詢結果放在local cache裡
  • 由ICANN負責統籌

DNS環境

  • 客戶端(Client) : 提出名稱解析請求,稱為Resolver
    伺服端(Server) : 接受要求的一方
  • DNS為全球性的分散式資料庫
  • 每個Domain至少有一台名稱伺服器
  • Zone : DNS伺服器的管理區域

查詢DNS Server

  1. 查詢hosts裡有無對照表
  2. 查詢loccal cache裡有無對照表
  3. 最後都查不到再到DNS Server查
ipconfig/displaydns //查詢
ipconfig/flushdns  //clear DNS cache

DDNS(動態DNS)

  • 每次上網得到的IP不一樣,但希望能有固定的對應名稱
  • 應用於家庭或小公司

FQDN完整網域名稱(Fully Qualified Domain Name)

  • 最後面還有一個 • (代表root)
  • 一階層方式組成,階層間以小數點區隔
  • 最多五個階層
  • 每一級名稱至少2個字元,最多不超過63個字元
  • 分為3個部分
    1. 主機名稱Host Name
    2. 網域名稱Domain Name
    3. 根網域Root Domain
      • 以 • 表示,實際上是個空標記
      • 頂級網域TLD(Top-Level Domain):根網域的下面一層

IPv4

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

真正的封包是由連續的位元依序排列在一起的

IHL

  • IPv4標頭長度(header length)通常為20Bytes,>20Bytes時會有Options

TOS(Type of Service)服務類型

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

  • Precedence 優先權

    • 有8種不同的優先權值
    • 7(111) 最高優先權;控制傳送
  • D延遲(Delay)

    • 0 一般延遲
    • 1 低延遲
  • T傳送流通量(Throoughput)

    • 0 一般傳送量
    • 1 高傳送量
  • R可靠度(Reliability)

    • 0 低可靠度傳送
    • 1 高可靠度傳送
  • C路徑成本(Cost)

    • 0 一般成本路徑
    • 1 最小成本路徑
  • 0

    • 最後一個位元,未做定義

TL封包總長度(Total Length)

  • TL =IP Header Length + IP Payload Length
  • 以byte為單位
  • 範圍為0~65535(2^16−1)

ID識別代碼

  • 由發送端對每個IP資料封包進行唯一辨識代碼的設定,以便接收端執行封包辨認工作
  • 傳輸過程中因為MTU的限制,須將封包切割成幾個分片(Fragments)再傳輸,各分片需記錄原封包的辨識代碼,以便接收端進行封包重組

MTU(Maximum Transmission Unit)

  • MTU = IP Header + IP Payload

  • ethernet的MTU為1500bytes

    IP標準的MTU為65535bytes

  • Path MTU

    • IPv6的機制
    • 在傳送封包前,會先了解傳送端到目的端之間最小的MTU,並將最小的MTU設為Path MTU

切割&重組(Fragmentating&Assembly)需要的三個資料欄位

  1. Identifier
  2. Flags
  3. Fragment Offset
  • IPv4可在網路的過程當中將大的封包切割成小的封包

    IPv6只能允許在來源端做切割,只能允許在接收端做重組

Flags 旗幟識別

  • 3byte

  • Flags = 0 + DF + MF

  • Don't Fragment(DF)

    More Fragment(MF)

TTL存活時間(Time to Live)

  • 避免網路發生問題時占用資源
  • IPv4稱TTL,IPv6稱hop count
  • 不同作業系統TTL的初始值會不一樣

Protocol 網路協定

  • 指定下一個欄位或標頭
  1. TCP 6
  2. UDP 17 or 0x11
  3. ICMP 1

HC標頭檢查碼(Header Checksum)

  • protect IP Header,若有錯誤發生會告知
  • 僅對IP標頭的部分執行運算,不含資料部分
  • 運算方法 : 1補數演算法(1's Compllement Algorithm)

SA來源端IP位址(Source IP Address)

  • 來源端主機的IP位址

DA目的端IP位址(Destination IP Address)

  • 目的端主機的IP位址
  • ether dst在前,src在後
  • IP src在前,dst在後

OPT選擇項(options)

  • 用作測試與除錯
  1. Source Route來源端路徑
    • Loose Source Routing 寬鬆源路行徑
      • 對封包行經的每一個路徑進行規範
      • 相鄰路徑節點間不得有其他節點存在
      • 路徑次序不得更改
    • Strict Source Routing 嚴謹源路行徑\
      • 允許相鄰路徑節點間有其他節點
      • 要點式行進路徑,並非提供完備的路徑
      • 未描述的路徑由各路徑節點自行決定
  2. Route Record路徑紀錄
  3. Time Stamp時間標記
  4. Security Label安全標誌
//how to know the immediate routers between source and destination:  traceroute ,  tracert, pathping
traceroute //linux   
tracert //windows
pathping //了解從src到dst會經過哪些 router

PAD填充(Padding)

  • 配合選擇項使用
  • 使IP標頭總長度為32bits的整倍數
  • 填補資料通常以0作為處理

IPv4位址不夠 (address insufficient)解決方法

  • NAT
  • IPv6

IPv4 與 IPv6

  • IPv4 32bits
  • IPv5 存在於實驗室,並未實際應用
  • IPv6 (IPNg ; IP Next Generation ) 128bits 標頭40bytes

IPv4換到IPv6的原因

  1. 位址不夠 address insufficient
  2. 安全性 security
  3. 效能 performance

資料傳送方式

IPv4 IPv6
1 Uicast Uicast
2 Multicas Multicas
3 Boadcast Anycast

IPv6

  • 128位元,分成8個區塊,每個區塊16個位元,以16進位法表示,區塊間以「:」區隔
    「::」

傳輸型態

  1. Unicast單點傳播(一對一)
  2. Multicast多點群波(一對多)
  3. Anycast任點傳播(一對全部) IPv6以多點群播位址架構來取代廣播傳播(Broadcase)

通訊方式

  1. Unicast 一對一 彼此都要有自己的識別碼
  2. Multicast一對多
  3. Broadcase一對全部(廣播)

螢幕擷取畫面 2024-01-06 204804

Traffic Class訊務等級

  • 如IPv4標頭的TOS、DS欄位

  • 前6個位元稱為DSCP(Differentiated Service Codepoint)

    後2個位元作為ECN壅塞明確通知之用

ECN(Explicit Congestion Notification)

  • 網路壅塞時,對來源端進行壅塞通知
  • 搭配ack從目的端回傳資料給傳送端

Flow Label流量標籤

  • IPv6新增的欄位 用以對某些特定封包進行標示,配合相關協定進行封包分類傳送
  • 相同封包群資料流必須擁有相同的流量標籤、來源端IPv6位址與目的端IPv6位址

Payload Length 承載資料長度

  • 與IPv4的TotalLength位能相同,表示封包長度
    • 同樣佔16位元
    • 同樣以位元組為單位
  • 只計算IPv6標頭後資料的長度

Next Header 下一個標頭

  • 如Pv4的PROT欄位
  • 可以是IPv4 PROT所列的項目,也可以是IPv6新增延伸標頭(Extension Header)項目

Hop Limit最大節點數

  • 取代IPv4的TTL欄位
  • 最大節點數欄位以經過節點數為單位
  • 數值為0,封包便會被丟棄

佇列管理機制(queue management)

  • 當緩存快慢了或滿了時,要怎麼丟棄封包
  1. Drop Tail 當佇列滿了新進來的都丟掉
  2. Drop Front 當佇列滿了,新的封包進來時,把第一個丟掉,新的加進去
  3. Random Drop
    • 佇列滿了以後,隨機挑一個丟棄
    • 為passive mode

QoS(Quality of Service)

  1. Integrated Service(IS)整合性服務
    • 較嚴謹,為參數型服務,會保留所需資源
    • 優:能滿足每種應用的需求,缺:維護與建立成本高,可擴充性(scalability)差
  2. Differentiated Service(DS)
    • 較寬鬆
  • IPv6提供的QoS較IPv4多

FTP (File Transfer Protocol)

  • 優:傳檔案時,若中途斷線,重新連接後可繼續傳送,不用重傳
  • 主要用來傳送大型檔案
  • 早期的通訊協定,無加密

網際網路上所用到的位址

  1. 實體位址pyhsical address(網路卡卡號)
  2. Logical address
  3. Port number
  • Host address(http,位於應用層) 用於多網站架構下,指名連到哪個網站

DoS(Denial of Service)阻斷式攻擊

  • 讓機器不能服務新客戶
  1. 消耗性能
  2. 消耗記憶體
  3. 消耗儲存空間
  4. 消耗網路資源

資訊安全的目標CIA

  1. 機密性Confidentiality
  2. 完整性Integrity
  3. 可用性Availability

ZT零信任架構(Zero Trust)

  • AAA Authentication 認證(to prove identity), Authorization 授權(to give permission) ,and Accounting 稽查(to log an audit trail)
  • MFA(Multi-factor authentication) 透過簡訊等,增加額外的驗證