網絡編程基礎概念
- 網絡結構模式
- MAC地址
- IP地址
- 子網掩碼
- 端口
- 網絡模型
- 協議
- 網絡通信的過程(封裝與解封裝)
網絡結構模式
-
C/S結構,由客戶機和服務器兩部分組成,如QQ、英雄聯盟
-
B/S結構,通過瀏覽器與服務器進程交互,如4399網頁游戲
MAC地址
- 網卡是計算機上用于通信的硬件,而MAC地址就是網卡的地址,每個網卡都有唯一一個MAC地址。MAC地址 由6個部分組成:每個部分 都是一個字節,包含兩個16進制數,如 00-16-EA-AE-3C-40
- 另外,MAC地址又稱為 局域網地址、 以太網地址、物理地址或硬件地址
IP地址
- IP地址是主機或網絡的邏輯(虛擬)地址,它 由4個部分組成:每個部分都是一個字節,包含一個10進制數,如:100.4.5.6。它也可以轉換為二進制形式:01100100.00000100.00000101.00000110
- 編碼方式
- A類IP地址:1字節的網絡地址,3字節的主機地址。可表示的主機數為256^3 - 2,常用于大型網絡。網絡地址的第一個位必須為0,因此A類最多表示126個網絡(B、C類沒有這個限制)
- B類IP地址:2字節的網絡地址,2字節的主機地址。可表示的主機數為256^2 - 2
- C類IP地址:3字節的網絡地址,1字節的主機地址。可表示的主機數為256 - 2=254
- 特殊網址數字:
- 0:表示自己,如0.0.0.0
- 255:廣播地址,如(A類)126.123.45.255、(B類)129.123.255.255;或者是用于子網掩碼
- 127:IP地址不能以127作為開頭,因為這群IP地址專門用于回路測試,如:127.0.0.1可以代表本機IP地址
子網掩碼
- 作用:屏蔽IP地址的一部分,從而區分它的網絡部分和主機部分
- 分類:
- 255一類,如255.255.255.0
- 其他:192.126.130.66/24,表示 192.126.130.66的子網掩碼有24個1即255.255.255.0;192.126.130.66/26,表示 192.126.130.66的子網掩碼有26個1
- 具體方法:
- 求網絡部分:對(C類)255.255.255.0 求交集(即&umask)
- 求主機部分:對(C類)255.255.255.0 取反后求交集(即&~umask)
- 子網掩碼的大小與正常IP地址一樣
端口
- 一般指的是虛擬端口,是主機通信的進出口。由 端口號 來標記,范圍是從 0 到 65535(2^16-1)
- 端口本質上其實是 內存的一個緩沖區,里面運行一個進程。比如,在一個緩沖區(端口)內運行QQ進程,這個緩沖區有一個端口號,外界就可以通過這個端口號與QQ進行通信
- 類型:
- 周知端口:范圍 從 0 到 1023,表示 已經綁定的端口,用戶不能使用。也叫知名端口、公認端口或者常用端口
- 注冊端口:范圍 從 1024 到 49151,是用戶進程可以使用的端口
- 動態端口:范圍是從 49152 到 65535,它的端口號不是認為指定的,而是系統自動(動態)分配的
- 注意,一個應用程序可以有多個端口,比如:QQ即可以打電環,也可以發消息,那么QQ就會有多個端口
網絡模型
-
OSI七層參考模型(物數網傳會表應)
-
TCP/IP四層模型(TCP/IP協議族)
- 在 應用層寫程序,然后直接調用 傳輸層和網絡層API即可
協議
-
本質上就是 封裝數據的規則,也就是 傳輸的數據包的格式。雙方遵守同一套規則,按相同的方法封裝和拆解數據
-
常見協議:
-
應用層常見的協議有:
- FTP協議(File Transfer Protocol 文件傳輸協議)
- HTTP協議(Hyper Text Transfer Protocol 超文本傳輸協議,一般用從 瀏覽器 向 服務器 請求數據,數據類型包括文本、圖片、音頻等)
- NFS(Network File System 網絡文件系統)
- SSH
-
傳輸層常見協議有:
- TCP協議(Transmission Control Protocol 傳輸控制協議)
- UDP協議(User Datagram Protocol 用戶數據報協議)
-
網絡層常見協議有:
-
IP 協議(Internet Protocol 因特網互聯協議)
-
ICMP 協議(Internet Control Message Protocol 因特網控制報文協議,如 ping
在網絡層就使用ICMP)
-
-
網絡接口層常見協議有:
- ARP協議(Address Resolution Protocol 地址解析協議,用于查找IP地址對應的MAC地址)
- RARP協議 (Reverse Address Resolution Protocol 反向地址解析協議,與ARP相反)
-
-
UDP協議:
- 源端口號即發送數據的端口的端口號
- 目的端口號即接收方端口號
- 長度:UDP用戶數據報的長度,單位是字節,最小值是8 (也就是只有首部)
- 校驗和:用于檢測UDP數據報傳輸之后是否有錯,有錯就丟棄
- TCP協議:
- IP協議:
-
以太網幀協議
-
中間的數據可以是IP協議,也可以是ARP協議
-
如果是ARP協議
-
ARP請求:目的物理地址是 廣播地址,即ff-ff-ff-ff-ff-ff
-
ARP應答:目的地址就是 原來發出請求的地址
-
-
-
ARP協議
- ARP協議還需要封裝在以太網幀中,才能在以太網中傳遞
網絡通信的過程(封裝與解封裝)
- 封裝的過程:
- 分用(解封裝)的過程:
- 具體過程
-
如何知道目的地的MAC地址?答:根據目的地的IP地址,利用ARP協議得出 目的地的MAC地址,并緩存在主機中,具體過程如圖: