ip addr詳解


Windows上查看IP地址是ipconfig, Linux上是ifconfig,但是Linux上還有一個命令叫ip addr可以查看IP地址。

 

ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:1c:62:51 brd ff:ff:ff:ff:ff:ff
    inet 192.168.164.13/24 brd 192.168.164.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::5df:3b5f:e5fe:ddc2/64 scope link
       valid_lft forever preferred_lft forever

如上圖所示命令顯示了機器上的所有網卡,大部分網卡都有一個IP地址,也存在特殊情況沒有IP地址。這里IP地址是192.168.164.13/24。

IP地址

IP地址是網卡的在網絡世界的通訊地址,相當於門牌號,如果相同則會沖突。一開始將IP地址分成5類,前一部分是網絡號,后一部分是主機號,如下圖。

但是實際上IP地址是不夠用的,現在也有了IPv6,但是按照上圖的分配方式 C類地址只有254個主機太少,網吧都不夠用,A類又太多。

於是便有了無類型區域間選路(CIDR),他將32位的IP一分為二,前面是網絡號,后面是主機號,比如192.168.164.13/24,這個 IP 地址中有一個斜杠,斜杠后面是24,表示24位網絡號,8位主機號。廣播地址192.168.164.255,如果發送這個地址,所有192.168.164網段的都可以收到,另一個是子網掩碼,255.255.255.0。子網掩碼與IP進行與運算得到192.168.164.0就是網絡號。這就是我們日常生活中所使用的IP,是為私有IP地址,私有IP地址由網絡管理人員或直接進行分配。比如我們在不同的學校,使用不同的局域網,我們的IP可以一樣。

而公有IP是有組織統一分配的,需要個人購買。像百度,他得有公有IP,這樣全世界的人才能訪問。比如我們在不同的學校,宿舍地址都是A棟302,這是私有IP,出了學校,我們先說是不同的大學的,這是公有IP。

對於IP地址后面的scope說明這張網卡是對外的,可以接收各個地方的包。而對於第一條 lo來講,她是host,只可以本機互相通信,lo是loopback的簡稱,又稱環回接口,地址基本讀書127.0.0.1,她用於本地通信,內核處理后又返回,不會出現在網絡中。

MAC地址

IP地址上一行的link/ether 70:1c:e7:30:5d:fe brd ff:ff:ff:ff:ff:ff 表示MAC地址,是網卡的物理地址,用十六進制表示,6個byte。MAC號稱全網唯一,相當於一個人的身份證,在通信的時候,雖然有了這個唯一標志,但是也需要其他的網絡層,這是因為你去找人的時候,光喊

身份證是沒有用的,你需要先去相應的地址,比如某個宿舍,然后再喊身份證號碼,這樣才能定位。MAC的定位作用范圍有限,需要借助其他的網絡層。

網絡設備狀態標識

再上面一行,<BROADCAST,,MULTICAST,UP,LOWER_UP>這個叫作net_device flags,網絡設備狀態標識。

UP 表示網卡處於啟動的狀態;

BROADCAST 表示這個網可以發送廣播包;MULTICAST 表示網卡可以發送多播;

LOWER_UP表示網線插着;

MTU1500是指最大傳輸單元 MTU 為 1500,這是以太網的默認值。MTU 是二層 MAC 層的概念。MAC 層有 MAC 的頭,以太網規定連 MAC 頭帶正文合起來,不允許超過 1500 個字節。正文里面有 IP 的頭、TCP、HTTP的頭。如果放不下,就需要分片來傳輸。

qdisc 全稱是queueing discipline,中文叫排隊規則。內核如果需要通過某個網絡接口發送數據包,它都需要按照為這個接口配置的 qdisc ( 排隊規則 ) 把數據包加入 隊列。 最簡單的 qdisc 是 pfifo,它不對進入的數據包做任何的處理,數據包采用先入先出的方式通過隊列。pfifo_fast 稍微復雜一些,它的隊列包括三個波段 ( band ) 。在每個波段里面,使用先進先出 規則。 三個波段 ( band ) 的優先級也不相同。band 0 的優先級最高,band 2 的最低。如果 band 0 里面 有數據包,系統就不會處理 band 1 里面的數據包,band 1 和 band 2之間也是一樣。 數據包是按照服務類型 ( Type of Service,TOS ) 被分配多三個波段 ( band ) 里面的。TOS 是 IP 頭 里面的一個字段,代表了當前的包是高優先級的,還是低優先級的。  然而這里是mq,還木有搞懂是什么樣的隊列處理方式。 lo中的fq_codel是多隊列處理,每一個數據流都有一個隊列處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM