iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 10
1
自我挑戰組

Linux學習系列 第 10

Linux Ifconfig指令和了解IPv4位址、netmask

第五章、 Linux 常用網路指令

ifconfig

ifconfig 主要是可以觀察與修改網路介面的相關參數,可以修改的參數很多,包括IP參數以及MTU等等都可以修改。

安裝Ifconfig
https://ithelp.ithome.com.tw/upload/images/20181023/20111994CF169loF5u.png

Ifconfig
https://ithelp.ithome.com.tw/upload/images/20181023/20111994dmESoUuzHh.png

ifconfig "網路介面代號"
https://ithelp.ithome.com.tw/upload/images/20181023/201119943rGPF3yciv.png

先認識inet(IPv4位址)、netmask、broadcast

在了解ip或tcp,先了解封裝和OSI會比較好:
協定資料單元 — 區段 (Segment)、資料包 (Datagram)、訊框 (Frame)
TCP/IP 工作模型

IPv4位址

  • IP位址是分配給網路上使用IP裝置的數字標籤
  • IP位址分為IPv4與IPv6兩大類
  • 32位元二進位
  • XXX.XXX.XXX.XXX形式表現,每組XXX代表小於或等於255的10進位數
  • IP技術可能使用的IP位址最多4,294,967,296個(即2的32次方),大概42億

網址:(以下截圖都來自影片)
Computer Networking Tutorial - 23 - IP Address

Computer Networking Tutorial - 24 - IP Addressing Issues

Computer Networking Tutorial - 26 - Network IP Address

教學把IP位址比喻成mail的地址,寫mail時要有地址才能接收和送出。網路的接收和送出也要有IP位址

二進位和十進位的轉換:
https://ithelp.ithome.com.tw/upload/images/20200813/20111994gkO7xIlnAz.png

網際網路(internet)是a network(網路) of networks:
https://ithelp.ithome.com.tw/upload/images/20181023/20111994KUswnGLLCc.png

netmask:

接著講到要怎麼辨別每台電腦,位址必須要有NetworkID和hostID
NetworkID像是分辨哪個區域網路
hostID像是分辨區域網路的哪台個人電腦
顯示IP網址哪段是NetworkID、哪段是hostID,就是netmask:
https://ithelp.ithome.com.tw/upload/images/20181023/20111994GRDHMTv54A.png

接著講到有關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
https://ithelp.ithome.com.tw/upload/images/20181023/201119945OoDEJoY4W.png

網路基礎
這個網址有關於IP位址的詳細內容
像是: 劃分子網路、不分等級的IP、"公共 IP" 與 "私有 IP"

接著來學習什麼是MTU和MSS
How TCP Works - MTU vs MSS
最大傳輸單元 (Maximum Transmission Unit, MTU)

最大傳輸單元(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)
https://s3.notfalse.net/wp-content/uploads/2017/02/27195229/ip-framentation-ex.png

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變小才能通過介面。
https://ithelp.ithome.com.tw/upload/images/20181023/20111994h6KowJkzSd.png

如果沒有分段就會發生:
Drop Packet(丟棄封包)
然後ICMP發訊息給電腦說: Drop Packet(丟棄封包)
https://ithelp.ithome.com.tw/upload/images/20181023/20111994KSNXYj3E4Q.png

接著分段會把1500變成兩個750,最後在重組成原本的封包,變成1500送到目的端
https://ithelp.ithome.com.tw/upload/images/20181023/20111994yQkBdblYSh.png

由於用切割到小於1500太麻煩了,於是有一種東西叫巨型影格(英語:jumbo frames)大部分可以攜帶9000的有效負載,這樣就可以用更少的努力(不用切割得太小)就可以傳遞更大量的資料

最大分段大小(Maximum Segment Size)

是TCP的一個參數,以字節數定義一個計算機或通信設備所能接受的分段的最大數據量。它並不會計算 TCP或IP的header的大小。所以算法就是:
MSS = MTU - 20 octet (TCP 固定表頭) - 20 octet (IP 固定表頭)

來源:
最大分段大小
第二章、基礎網路概念

學習心得:很多網路的觀念都還沒有,可能有錯


上一篇
比較Windows和 Linux
下一篇
了解IPV6
系列文
Linux學習30

尚未有邦友留言

立即登入留言