屏幕快照 2020-07-27 17.04.28服務器
- 版本:佔4位,指 IP 協議的版本目前的IP協議版本號爲4
- 首部長度:佔4位,可表示的最大數值是15個單位,一個單位爲4字節,所以IP 的首部長度的最大值是60字節
- 區分服務:佔8位,用來得到更好的服務,在舊標準中叫作服務類型,但實際上一直未被使用過.後更名爲區分服務.只有在使用區分服務(DiffServ)時,這個字段才起做用.通常的狀況下不使用
- 總長度:佔16位,指首部和數據之和的長度,單位爲字節,所以數據報的最大長度爲 65535 字節.總長度必須不超過最大傳送單元 MTU
- 標識:佔16位,它是一個計數器,一般,每發送一個報文,該值會加1, 也用於數據包分片,在同一個包的若干分片中,該值是相同的
- 標誌(flag):佔3位,目前只有後兩位有意義
- DF:Don't Fragment 中間的一位,只有當 DF=0 時才容許分片
- MF:More Fragment 最後一位,MF=1表示後面還有分片,MF=0 表示最後一個分片
- 片偏移:佔12位,指較長的分組在分片後,該分片在原分組中的相對位置.片偏移以8個字節爲偏移單位
- 生存時間:佔8位,記爲TTL (Time To Live) 數據報在網絡中可經過的路由器數的最大值,TTL 字段是由發送端初始設置一個 8 bit字段.推薦的初始值由分配數字 RFC 指定,當前值爲 64.發送 ICMP 回顯應答時常常把 TTL 設爲最大值 255
- 協議:佔8位,指出此數據報攜帶的數據使用何種協議以便目的主機的IP層將數據部分上交給哪一個處理過程, 1表示爲 ICMP 協議, 2表示爲 IGMP 協議, 6表示爲 TCP 協議, 17表示爲 UDP 協議
- 首部檢驗和:佔16位,只檢驗數據報的首部不檢驗數據部分.這裏不採用 CRC 檢驗碼而採用簡單的計算方法
- 源地址和目的地址:都各佔4字節,分別記錄源地址和目的地址
屏幕快照 2020-07-27 17.05.16網絡
IP地址
MAC地址用於同網段通訊,當跨網段通訊時,須要使用另外一種地址:IP地址。和MAC地址不一樣,IP地址是邏輯地址,正由於是邏輯地址,因此一個網卡上可能有1個或多個Ip地址(其中一個爲主IP),甚至出故障的時候網卡上不會分配IP地址
IP地址用於在網絡上地位尋址,它是網絡層的概念,須要工做在三層的網絡設備(好比路由器,三層交換機)來幫忙識別並做出相應操做,因此,數據包要達到非本網段內的對方主機,須要通過一次或屢次路由,最終才能找到對方主機並將數據包交給對方。ide
IP地址分爲IPv4和IPv6,這裏只介紹IPv4
每一個IP地址4個字節共32位,所有都是0和1,每一個8位是IP地址的一部分,因此每一部分最小是0(二進制位全爲0),最大是255(二進制位全爲1)。IP地址一般採用點分十進制的方式記錄,即便用點將各部分鏈接起來
例如:192.168.100.10.對應的二進制格式:11000000 10101000 01100100 00001010
每一個IP地址都分爲網絡部分和主機部分,網絡部分描述的是這個IP地址在哪一個網絡段,主機部分描述的是這個IP地址在這個網段的哪一個標識測試
- A類:
- 0 000 0000 - 0 111 1111: 1-127
- 網絡數:126, 127
- 每一個網絡中的主機數:2^24-2
- 默認子網掩碼:255.0.0.0
- 私網地址:10.0.0.0
- B類:
- 10 00 0000 - 10 11 1111:128-191
- 網絡數:2^14
- 每一個網絡中的主機數:2^16-2
- 默認子網掩碼:255.255.0.0
- 私網地址:172.16.0.0-172.31.0.0
- C類:
- 110 0 0000 - 110 1 1111: 192-223
- 網絡數:2^21
- 每一個網絡中的主機數:2^8-2
- 默認子網掩碼:255.255.255.0
- 私網地址:192.168.0.0-192.168.255.0
- D類:組播
- 1110 0000 - 1110 1111: 224-239
- E類:保留未使用
公共IP地址
屏幕快照 2020-07-27 17.07.00blog
私有IP地址
屏幕快照 2020-07-27 17.07.41
特殊地址路由
- 0.0.0.0
- 0.0.0.0不是一個真正意義上的IP地址。它表示全部不清楚的主機和目的網絡
- 255.255.255.255
- 限制廣播地址。對本機來講,這個地址指本網段內(同一廣播域)的全部主機
- 127.0.0.1~127.255.255.254
- 本機迴環地址,主要用於測試。在傳輸介質上永遠不該該出現目的地址爲「127.0.0.1」的 數據包
- 224.0.0.0到239.255.255.255
- 組播地址,224.0.0.1特指全部主機,224.0.0.2特指全部路由器。224.0.0.5指OSPF 路由器,地址多用於一些特定的程序以及多媒體程序
- 169.254.x.x
- 若是Windows主機使用了DHCP自動分配IP地址,而又沒法從DHCP服務器獲取地址,系統會爲主機分配這樣地址
子網掩碼
子網掩碼用來表示IP地址中的哪些位是網絡位,哪些位是主機位。因此,子網掩碼是決定IP地址屬於哪一個網段。子網掩碼必須結合IP地址一塊兒使用,不然它將是沒有意義的。子網掩碼中全位1的部分是網絡位,全位0的部分是主機位。0和1必須連續出現,子網掩碼的二進制表示中不能出現相似101,10001這種1和0隔開的狀況it
根據A,B,C這些IP地址分類,其實能判斷出各種的子網掩碼
例如,
A類地址的網絡位是1個字節,因此它的子網掩碼的第一個字節全爲1,即255,剩下三個字節全爲0。因此,A類地址的子網掩碼就是255.0.0.0
B類地址的網絡位是2個字節,因此子網掩碼是255.255.0.0
C類地址的網絡位是3個字節,因此子網掩碼是255.255.255.0
反之,根據IP地址和子網掩碼,也能推斷出它的網段,這纔是它的真正做用class
例如:IP地址爲192.168.100.33,子網掩碼是255.255.255.0,顯然子網掩碼的前3個字節全是1,那麼IP地址的前3個字節192.168.100是它的網絡位,那麼它所在的網段就是192.168.100.0這個網段(是否記得,主機位全爲0時,表示網段)路由器
每次通訊時,首先根據本身的IP地址和子網掩碼來判斷出本身的網段,再用本身的子網掩碼和對方的IP地址計算目標所在的網段,若是在同一網段,那麼在封裝成幀的時候,封裝的是目標主機的MAC地址,而若是不是在同一個網段,則封裝的是本地路由器的MAC地址做爲目標MAC地址二進制
子網掩碼必須結合IP地址一塊兒使用,一般會將它們寫在一塊兒,例如:192.168.100.23 255.255.255.0;但也支持另一種寫法,直接將子網掩碼爲1的位數寫在IP地址的後面,例如,255.255.255.0這個子網掩碼中有24位是1,因此,IP地址和子網掩碼結合的方式能夠寫成192.168.100.23/24,172.168.100.23/16.這種寫法叫作CIDR