---
title: 網路課 week4 筆記
tags: 網路課tcp/ip
---
# 網路課 week4 筆記
[上一頁](https://hackmd.io/@yAywlvh8QrOW-y_aYbMdCQ/r1mPzgOZo)

### TTL
1. 限制封包可以傳多遠
每經過一個路由器就-1
直到TTL=0 還沒送達就丟棄 送一個ICMP封包(功用:1.控制2.錯誤回報)
2. 防止故障
網路發生錯誤時,避免封包一直存活在網路上
不同OS送的封包TTL可能不同 所以可以由封包TTL回推 傳送方的OS
### Header Checksum (檢查標頭有沒有發生錯誤)
1. 第一欄Ver Version(4 bits) 0100(ipv4) 0110(ipv6)
2. 第二欄IHL Internet Header Length(5個單位= 20 byte) 一個單位是4個byte 若大於5個單位 代表有選擇項 若<5個單位 代表是錯誤的
正常來說:
IPv4 header:20 byte
TCP header:20 byte
UDP header:8 byte
3. 第三欄TOS Type Of Service 封包送出去希望有甚麼服務
Precedence 3 Bits 優先權(最小0~最大7)
1. D Delay 封包送出去到接收到的時間差
若D設為1 代表 不希望Delay ex:即時通訊 (Delay sentitive)
若D設為0 代表 不需要即時性 ex:備份
**應用程式通常分4類**
1. 語音類型 重視 延遲時間 資料量小(PCM編碼 每秒取樣8000次 每個sample 8個bit) 所以所需頻寬為 64kbps 壓縮後可能只需2~3kbps
2. 影音類型
影像(ex:看youtube或直播)對延遲要求不高 因為可以透過Buffering(緩衝)吸收網路的抖動 但是對頻寬的要求比較高 (720p 1080p 4K...所需頻寬漸高)
聲音 對延遲的要求 希望從 接收到>編碼>壓縮>傳送>解壓縮>還原 控制在 100 minisec ~ 200minisec
3. 一般資料傳輸 ex:網頁 不重視延遲 重視完整性
4. 背景資料 ex:備份 不需要講求速度 慢慢傳就可以
**吞吐量** 單位時間的傳送/接收量
>throughput OSI第2、3層 封包接收量 ex:mac ip tcp (有header)
>good put 應用層封包接收量 不用考慮header 所以通常good put <= through put
而且底層throughput也會計算到傳送失敗丟失的封包(封包可能會重複發送) 而在應用層只會收到底層 成功傳送的封包(每個封包只會算到一次 不重複)
通常傳送檔案看到的速率就是goodput 而throughput則是實際真正的流量
影像、一般資料傳輸 對throughput要求比較高
2. R reliability 可靠度
若R設為1 代表 需要高可靠度、完整 ex: data類型(網頁)
若R設為0 代表 不需要很高的可靠性 ex: video voice 丟失一點點沒關係
3. C cost 成本
光纖 無線網路 同軸電纜 材質特性不同 可以標記要走快速通道或節省通道等
若C設為1 代表 以最小成本路徑傳輸
若C設為0 代表 以一般成本路徑傳輸
4. 最後一個位元 保留欄位
設為0 表示未做定義
### DS Differentiated Service 差異式服務
講求差異 (DSCP 就是把資料分類 只要某一類比另外一類好 就好了)
### IS Integrated Service 整合式服務
講求絕對 精準型QoS(ex:要求1M傳輸通道 只有我可以透過這條專屬通道傳輸 但是成本高 太多人用會造成負荷量過高 所以只會在實驗中實作)
### ECN Explicit Congestion Notification
1. 當TCP封包送出後,若成功送達會傳回ACK 而網路過於壅塞時便會在傳回的封包中加入ECN的資訊代表網路壅塞 需要降低傳輸速率
2. Hacker可以偽裝成路由器 傳ECN給其他使用者騙它網路發生壅塞 降低網速 Hacker便可以利用網路資源
### TL Total Length
<pre>
v IHL v TL-IHL
__________________
| IP | payload |
------------------
^ TL
payload的長度為 TL-IHL
</pre>
#### 封包的分割與重組
IPv4 允許封包在傳輸過程切割
IPv6 只能在來源端切割 傳送前先尋找Path MTU(最大的傳輸單元)
1. ID 識別代碼
封包切割完後 ID會相同 (重組只在接收端進行)
2. Flags 旗標
DF (Don't Fragment) 不切割
0:可以切 (一般封包)
1:不可以切 (對完整性(安全性)有要求的封包) 若設為1 但封包太大 便會丟棄封包回傳ICMP
MF (More Fragment)
1: 後面一個封包也是被切割的
0: 後面一個封包不是被切割的
3. FO (Fragment Offset) 分片位移
用來記錄重組回去的位置
位移量是以 8byte 為單位

### PROT Protocol
#### 識別項
<pre>
1 : ICMP
6 : TCP
17 : UDP
</pre>

#### 安全補丁 (在IP層做的)
50 ESP 內容加密 完整性
51 AH 驗證身分
HC Header Checksum 傳輸過中 檢查 header 有沒有發生錯誤
SA 來源IP 32bits
DA 目的IP 32bits
### OPT option 長度不定
1. Source Route 來源端路徑
`$ route print` 查看路由表

目的IP和遮罩做ADD運算後等於路由表上網路目的地的 取遮罩1最多的作為轉發的選擇 並且從 該介面送出
若遮罩數相同 挑計量小的送
在封包傳送過程中 明確指出 要經過哪些站(測試 除錯)
2. Route Record 路徑紀錄
記錄封包經過哪些路由器
3. Time Stamp 時間標記
經過某路由器的時間點
可以推算經過兩個路由器的時間差(檢查壅塞)
4. Security Label 安全標誌
### PAD padding 填充
IP header 一定要是4的倍數 若不足就在PAD補0
#### Strict Source Routing 嚴格源路行徑
明確指定哪一站要經過哪些節點
#### Loose Source Routing鬆散源路行徑
會經過指定的節點但中間可插入其他中間節點
### **IPv6 vs IPv4**
<pre>
位置長度: 128bit 32bit
安全性 : 安全性設計在協定中 只有安全補丁
效能 : (封包大小固定40byte) 大小不固定 需要計算大小->引響效能
IP 設定: 基本上使用自動 可以自動也可以手動
</pre>
IPv6適合應用在 物聯網IoT Internet of Things
### IPv6的傳播方式
1.單播 Unicast
2.群播 Multicast
3.任播 Anycast (路由器在使用的)