ifconfig 主要是可以觀察與修改網路介面的相關參數,可以修改的參數很多,包括IP參數以及MTU等等都可以修改。
安裝Ifconfig
Ifconfig
ifconfig "網路介面代號"
在了解ip或tcp,先了解封裝和OSI會比較好:
協定資料單元 — 區段 (Segment)、資料包 (Datagram)、訊框 (Frame)
TCP/IP 工作模型
IPv4位址
網址:(以下截圖都來自影片)
Computer Networking Tutorial - 23 - IP Address
Computer Networking Tutorial - 24 - IP Addressing Issues
Computer Networking Tutorial - 26 - Network IP Address
教學把IP位址比喻成mail的地址,寫mail時要有地址才能接收和送出。網路的接收和送出也要有IP位址
二進位和十進位的轉換:
網際網路(internet)是a network(網路) of networks:
接著講到要怎麼辨別每台電腦,位址必須要有NetworkID和hostID
NetworkID像是分辨哪個區域網路
hostID像是分辨區域網路的哪台個人電腦
顯示IP網址哪段是NetworkID、哪段是hostID,就是netmask:
接著講到有關IP和Subnet的運算
1 先把十進位轉成二進位
2 netmask都是1的地方屬於network ID,都是0的地方屬於host ID
3 然後算有幾個host,就是看有幾個0,在二次方
4 usable hosts,可用的hosts要扣掉2個,一個是host ID全部都是0(網路本身識別碼),一個是host ID全部都是1(該網路的廣播位址)
5 usable hosts的範圍就是1-14
網路基礎
這個網址有關於IP位址的詳細內容
像是: 劃分子網路、不分等級的IP、"公共 IP" 與 "私有 IP"
接著來學習什麼是MTU和MSS
How TCP Works - MTU vs MSS
最大傳輸單元 (Maximum Transmission Unit, MTU)
是指根據不同的OSI模型層級,上面所能通過的最大數據包大小(以bytes為單位)。
在乙太網路(第2層 資料連結層)上,標準的MTU就是 1500 bytes。
這段的大小 是 46到1500 bytes,最小46bytes,而 MTU就是最大的 1500 bytes
在IP(第三層)標準的MTU就是65535 bytes
為什麼是65535?
why the maximum IP packet size is 65535 ?
The IPv4 "Total Length" header field has 16 bits to indicate the size of the packet in bytes.
如圖有個Total Length有16 bits用來代表封包大小(bytes)
So we have 16 bits that can have a maximum value of 1111111111111111 =65,535
(2的16次方-1因為是從0到65535)
The result that we received is just a "16 bit word" that gives us a certain indication on how big the packet is. As the rule states, the received value represents the packet size in bytes so you can just look at it as a number not as an amount of bits.
雖然Total Length是16 bits,但是它是代表數字而不是單位(bits),所以65535的單位是bytes
因為65535大於1500所以需要切割封包,這樣才能把資料傳到資料鏈結層,
然後傳到目的端之後在進行重組,回復成原本完整的封包。
接著看:
Maximum Transmission Unit MTU
如圖,fragmentation(分段),因為1500>1200,所以要把1500變小才能通過介面。
如果沒有分段就會發生:
Drop Packet(丟棄封包)
然後ICMP發訊息給電腦說: Drop Packet(丟棄封包)
接著分段會把1500變成兩個750,最後在重組成原本的封包,變成1500送到目的端
由於用切割到小於1500太麻煩了,於是有一種東西叫巨型影格(英語:jumbo frames)大部分可以攜帶9000的有效負載,這樣就可以用更少的努力(不用切割得太小)就可以傳遞更大量的資料
最大分段大小(Maximum Segment Size)
是TCP的一個參數,以字節數定義一個計算機或通信設備所能接受的分段的最大數據量。它並不會計算 TCP或IP的header的大小。所以算法就是:
MSS = MTU - 20 octet (TCP 固定表頭) - 20 octet (IP 固定表頭)
學習心得:很多網路的觀念都還沒有,可能有錯