目錄
1.TCP/IP網絡模型
物理層(Physical)
數據鏈路層(Date Link)
網絡層(Internet)
傳輸層(Transport)
應用層(Application)
2. 對于 IPv4 地址,請說明地址結構,以及如何劃分網絡位和主機位。
3. 在掩碼為24(255.255.255.0)的子網中,最多能有多少臺主機?為什么?
4. 怎么理解IPv4路由?
5. 對于 IPv6 地址,請說明地址結構以及它的子網劃分。
6. Linux 中如何解析主機名和 IP 地址的對應關系?
7. RHEL9 如何顯示網絡的 IP 地址?
8. RHEL9 的網絡配置文件保存在哪個目錄,解釋 device 和 connection 的含義。
9. 使用什么命令可以修改靜態主機名?靜態主機名存儲在哪個文件中?
1.TCP/IP網絡模型
自下而上,從里到外介紹每一層。
物理層(Physical)
電腦與外界互聯網通信,需要先連接網絡,可以用網線(電信號:電壓)、光纖(光脈沖:亮滅)、Wi-Fi(無線電波:頻率變化)、藍牙(短距離無線電信號)等方式。物理層主要規定了網絡的一些電氣特性,作用是負責傳送0和1的電信號。
數據鏈路層(Date Link)
單純的0和1沒有任何意義,所以使用者會為其賦予一些特定的含義。數據鏈路層確定了物理層傳輸的0和1的分組方式及代表的意義。早期的時候,每家公司都有自己的電信號分組方式。逐漸地,一種叫做”以太網”(Ethernet)的協議,占據了主導地位。通過該協議將傳輸的電信號進行分組,每一組電信號構成一個數據包,叫做“幀(Frame)”。每一個幀包含標頭(Head)和數據(Data)兩部分。
數據包的發送者和接收者是如何標識的呢?以太網規定,連入網絡的所有設備都必須具有”網卡”接口。網卡的地址,就是數據包的發送地址和接收地址,這叫做MAC地址。有了MAC地址,就可以定位網卡和數據包的路徑。
在物理層傳0和1的基礎上,數據鏈路層負責“打包+標記地址+糾錯”,讓一段一段的數據安全送到正確的隔壁設備。
網絡層(Internet)
以太網采用廣播方式發送數據包,即會向本網絡內所有接收方的計算機都發送數據包,讓每臺計算機讀取這個包的”標頭”,找到接收方的MAC地址,然后與自身的MAC地址相比較,如果兩者相同,就接受這個包,做進一步處理,否則就丟棄這個包。這種方式效率低,而且發送的數據只能局限在發送者所在的子網絡中。
因此網絡層就引進了一套新的地址——網絡地址,此時每臺計算機有了兩種地址——MAC地址和網絡地址。如果MAC地址屬于同一個子網絡,就采用廣播方式發送,否則采用“路由”方式發送。使用路由方式,數據會先發給本地默認網關(路由器)的MAC地址,讓路由器根據IP地址來繼續幫你轉發數據。
規定網絡地址的協議叫做IP協議,它所定義的的地址被稱為IP地址,目前廣泛使用的是IP協議第四版,簡稱IPv4。該版本規定網絡地址由32個二進制位組成,我們通常習慣用分成四段的十進制數表示IP地址,從0.0.0.0一直到255.255.255.255。
根據IP協議發送的數據,就叫做IP數據包。IP數據包也分為”標頭”和”數據”兩個部分。
傳輸層(Transport)
有了MAC和IP地址,我們就可以在任意兩臺計算機之間建立通信。但是又有問題:如何區分某個數據包到底是發送到主機上的哪一個程序呢?此時就需要一個參數——端口(port),它是每一個使用網卡的程序的編號,來幫助我們區分特定程序。
端口的范圍是0-65535,其中0-1023的端口被系統占用,用戶只能選擇大于1023的的端口。
我們必須在數據包中加入端口信息,這就需要新的協議。最簡單的實現叫做UDP協議,它的格式幾乎就是在數據前面,加上端口號。UDP數據包,也是由”標頭”和”數據”兩部分組成。
UDP協議的優點是比較簡單,容易實現,但是缺點是可靠性較差,一旦數據包發出,無法知道對方是否收到。為了解決這個問題,提高網絡可靠性,TCP協議就誕生了。TCP協議能夠確保數據不會遺失。它的缺點是過程復雜、實現困難、消耗較多的資源。TCP數據包沒有長度限制,通常TCP數據包的長度不會超過IP數據包的長度,以確保單個TCP數據包不必再分割。
應用層(Application)
應用程序收到“傳輸層”的數據,接下來就要對數據進行解包。”應用層”的作用就是規定應用程序使用的數據格式,以便接收方獲得真正發送的數據內容。例如我們TCP協議之上常見的Email、HTTP、FTP等協議,這些協議就組成了互聯網協議的應用層。
最后得到一層一層地封裝起來的包裹。最后在應用層接受到后進行解封裝。
2. 對于 IPv4 地址,請說明地址結構,以及如何劃分網絡位和主機位。
IPv4 地址是 32?位數字,通常使用點號分割的四個十進制八位字節表示,分為網絡位和主機位,網絡位用來標識子網,主機位標識子網中的特定主機,同一子網的主機可以直接通信,否則需要路由器。
子網掩碼用于確認子網的劃分。比如子網掩碼為24時,說明IPv4地址前三段就是網絡位,最后一段做主機位。
特殊地址 127.0.0.1 指向 localhost (本機自己),網絡 127.0.0.0/8 屬于本地系統,即 127.x.x.x 這一段IP范圍,都保留給本機內部測試用,永遠不會發送到外網。只要IP是127開頭的,都是找自己,和網絡外面無關!外網也不能訪問。
3. 在掩碼為24(255.255.255.0)的子網中,最多能有多少臺主機?為什么?
掩碼24(255.255.255.0)即前24位是固定網絡位,后8位是主機位可以變化。主機位數量是2的8次方:256種。
但是,主機位全部為0(00000000)不能用,是網絡地址(代表這個子網本身,是一個標識符,用來識別子網)。主機位全部為1(11111111)不能用,是廣播地址(用來一次性給子網內所有機器發送信息)。
所以最多能有 254 臺主機。
4. 怎么理解IPv4路由?
IPv4路由就是:根據目標IP地址,決定數據包下一跳該送到哪里。
如果要發出一個數據包:給出目標IP
- 看本地路由表。
- 發現這個IP不是自己局域網的。
- 根據路由表規則,數據發到默認網關。
- 網關收到后,也查自己的路由表,看下一步往哪發。
- 可能繼續發到更上一級的網關,最終到達。
5. 對于 IPv6 地址,請說明地址結構以及它的子網劃分。
IPv6 地址是一個 128 位數字,表示為八組以冒號分隔的四個十六進制半字節。
IPv6 地址分為兩部分:網絡前綴和接口 ID。網絡前綴標識子網,長度始終為/64。這種情況下,地址的一半是網絡前綴,另一半是接口ID。同一子網上的任何兩個子網接口都不能具有相同接口 ID,接口 ID 可標識子網上的特定接口。
- 單播地址(Unicast):標識單個接口的地址,用于點對點通信。
- 廣播地址(Broadcast):IPv6 中沒有廣播地址,取而代之的是多播地址(Multicast)和任播地址(Anycast)。
- 多播地址(Multicast):用于將數據包發送到多個接口。
- 任播地址(Anycast):多個接口共享的地址,數據包會發送到最近的接口。
6. Linux 中如何解析主機名和 IP 地址的對應關系?
Linux系統首先會查看?/etc/hosts 文件,看是否有主機名和 IP 地址的靜態綁定。
如果 /etc/hosts 中沒有找到對應關系,系統會通過 DNS(域名系統)來解析。DNS 將主機名解析成 IP 地址,或將 IP 地址反向解析成主機名。DNS 服務器的配置通常在 /etc/resolv.conf
文件中設置。
7. RHEL9 如何顯示網絡的 IP 地址?
使用 ip a s 命令顯示 IP 地址。
8. RHEL9 的網絡配置文件保存在哪個目錄,解釋 device 和 connection 的含義。
在 RHEL9 中,網絡配置主要由 NetworkManager 管理,配置文件存放在以下目錄:/etc/NetworkManager/system-connections/ 目錄中。每個網絡連接對應一個配置文件(通常是 .nmconnection
或 .connection
后綴)。
?/etc/sysconfig/network-scripts/ 目錄和 ifcfg格式配置文件 已被棄用,但為了與較早版本兼容,/etc/sysconfig/network-scripts/ 目錄中 的 ifcfg格式連接仍可識別和加載。
?device 表示物理或虛擬的網絡接口,是硬件層面的實體,比如以太網卡、Wi-Fi網卡、虛擬網卡等。
connection 是網絡接口的配置信息,包括IP 地址、DNS、網關、VLAN、VPN 等。
一個 device 可以對應 多個 connection 配置,但是同一時間只能有一個連接處于活動狀態。
9. 使用什么命令可以修改靜態主機名?靜態主機名存儲在哪個文件中?
靜態主機名存儲在 /etc/hostname 中,編輯 /etc/hostname 或者使用 hostnamectl set-hostname 命令可以永久修改靜態主機名。