# TCP/IP 學習筆記 電三甲 111010141 胡佳慧 ## 手動設定網路所需的資訊 1. IP 2. Network Mask 網路遮罩 + 判斷來源端與目的端是否為同網路 + 同網路直接傳送 + 不同網路需透過路由器(Router)傳送 3. Default Router IP >設定好上列三項 $\to$ ping8.8.8.8 成功 4. DNS Server IP ## 0.0.0.0 1. 電腦剛開機完全沒有任何IP時,代表尚未取得IP 2. 任意IP 3. 0.0.0.0/0 + Any source $\to$ 防火牆 ## 封包傳送 + directly直接傳送 $\to$ 目的地位址寫的是目的端網路卡卡號 + forward轉送 $\to$ 目的地位址寫的是路由器網路卡卡號 ## ARP位址解析協定(Address Resolution Protocol) + request : broadcase $\to$ 發廣播封包(廣播IP 255.255.255.255)到整個網路上 + reply : unicase $\to$ 被指定的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 $\to$ 確認作業系統的TCP/IP協定是否正常運作 2. ipconfig $\to$ 查詢自己的IP、內定路由器位址 + route print $\to$ 顯示機器上所有介面的卡號,也可查詢內定路由器位址 3. ping自己的IP位址 $\to$ 測試自己的網路卡 4. ping內定路由器的位址 $\to$ 確認網路卡、網路線是否正常 5. ping網際網路上知名的伺服器IP $\to$ 確認封包傳送是否正常 + ex. 8.8.8.8 6. ping DNS $\to$ 確認DNS設定 + ex. tw.yahoo.com ## 不同作業系統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 $\to$ 發現DHCP Server,發送一個廣播去詢問整個網路誰可以提供相關資訊 2. Offer $\to$ DHCP Server收到廣播後,會回傳資料 + 誰先提供就用誰的 3. Request $\to$ 為Broadcase(廣播)封包,告知所有人選擇用誰的資料 4. Ack確認訊息 $\to$ 被選擇者確認訊息 + 建構在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查 ```c 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  ++真正的封包是由連續的位元依序排列在一起的++ ### IHL + IPv4標頭長度(header length)通常為20Bytes,>20Bytes時會有Options ### TOS(Type of Service)服務類型  + Precedence 優先權 + 有8種不同的優先權值 + 7(111) $\to$ 最高優先權;控制傳送 + D延遲(Delay) + 0 $\to$ 一般延遲 + 1 $\to$ 低延遲 + T傳送流通量(Throoughput) + 0 $\to$ 一般傳送量 + 1 $\to$ 高傳送量 + R可靠度(Reliability) + 0 $\to$ 低可靠度傳送 + 1 $\to$ 高可靠度傳送 + C路徑成本(Cost) + 0 $\to$ 一般成本路徑 + 1 $\to$ 最小成本路徑 + 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 $\to$ 6 2. UDP $\to$ 17 or 0x11 3. ICMP $\to$ 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 $\to$ dst在前,src在後 >+ IP $\to$ src在前,dst在後 ### OPT選擇項(options) + 用作測試與除錯 1. Source Route來源端路徑 + Loose Source Routing 寬鬆源路行徑 + 對封包行經的每一個路徑進行規範 + 相鄰路徑節點間不得有其他節點存在 + 路徑次序不得更改 + Strict Source Routing 嚴謹源路行徑\ + 允許相鄰路徑節點間有其他節點 + 要點式行進路徑,並非提供完備的路徑 + 未描述的路徑由各路徑節點自行決定 2. Route Record路徑紀錄 3. Time Stamp時間標記 4. Security Label安全標誌 ```C //how to know the immediate routers between source and destination: traceroute , tracert, pathping traceroute //linux tracert //windows ``` ```C 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 $\to$ 標頭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任點傳播(一對全部) $\to$ IPv6以多點群播位址架構來取代廣播傳播(Broadcase) >### 通訊方式 >1. Unicast 一對一 $\to$ 彼此都要有自己的識別碼 >2. Multicast一對多 >3. Broadcase一對全部(廣播)  ### Traffic Class訊務等級 + 如IPv4標頭的TOS、DS欄位 + 前6個位元稱為DSCP(Differentiated Service Codepoint) 後2個位元作為ECN壅塞明確通知之用 >### ECN(Explicit Congestion Notification) >+ 網路壅塞時,對來源端進行壅塞通知 >+ 搭配ack從目的端回傳資料給傳送端 ### Flow Label流量標籤 + IPv6新增的欄位 $\to$ 用以對某些特定封包進行標示,配合相關協定進行封包分類傳送 + 相同封包群資料流必須擁有相同的流量標籤、來源端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 $\to$ 當佇列滿了新進來的都丟掉 >2. Drop Front $\to$ 當佇列滿了,新的封包進來時,把第一個丟掉,新的加進去 >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,位於應用層) $\to$ 用於多網站架構下,指名連到哪個網站 ## DoS(Denial of Service)阻斷式攻擊 + 讓機器不能服務新客戶 1. 消耗性能 2. 消耗記憶體 3. 消耗儲存空間 4. 消耗網路資源 ## 資訊安全的目標CIA 1. 機密性Confidentiality 2. 完整性Integrity 3. 可用性Availability ## ZT零信任架構(Zero Trust) + AAA $\to$ Authentication 認證(to prove identity), Authorization 授權(to give permission) ,and Accounting 稽查(to log an audit trail) + MFA(Multi-factor authentication) $\to$ 透過簡訊等,增加額外的驗證
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.