網絡結構模式
C/S-----客戶端和服務器
B/S -----瀏覽器服務器
MAC地址
每一個網卡都擁有獨一無二的48位串行號,也即MAC地址,也叫做物理地址、硬件地址或者是局域網地址
MAC地址表示為12個16進制數 如00-16-EA-AE-3C-40 (每一個數可以用四個2進制數表示)
IP地址
IP 地址是一個 32 位的二進制數,通常被分割為 4 個“ 8 位二進制數”(也就是 4 個字節)。
通常用“點分十進制”表示成(a.b.c.d)的形式每一個字母范圍是0-255
其中一般最后一個255是廣播
A類IP地址: 在 IP 地址的四段號碼中,第一段號碼為網絡號碼,剩下的三段號碼為本地計算機的號碼。
B類IP地址: 在 IP 地址的四段號碼中,前兩段號碼為網絡號碼。
C類IP地址: 在 IP 地址的四段號碼中,前三段號碼為網絡號碼,剩下的一段號碼為本地計算機的號碼。
D類IP地址: 多播地址,組播地址
特殊網址
-
每一個字節都為 0 的地址(
0.0.0.0
)對應于當前主機 -
IP 地址中的每一個字節都為 1 的 IP 地址(
255.255.255.255
)是當前子網的廣播地址 -
IP 地址中凡是以
11110
開頭的 E 類 IP 地址都保留用于將來和實驗使用 -
IP地址中不能以十進制
127
作為開頭,該類地址中數字127.0.0.1 ~ 127.255.255.255
用于回路測試,如:127.0.0.1
可以代表本機IP地址
子網掩碼
子網掩碼只有一個作用,就是將某個 IP 地址劃分成網絡地址
和主機地址
兩部分。通過按位與的方式。
網絡模型
OSI七層模型
物數網傳會表應
MAC地址在數據鏈路層尋址
IP在網絡層
TCP/IP四層模型
目前的主流協議族
中間這些都是各種各樣的協議
四層介紹
應用層
:應用層是 TCP/IP 協議的第一層,是直接為應用進程提供服務的- 對不同種類的應用程序它們會根據自己的需要來使用應用層的不同協議,郵件傳輸應用使用了 SMTP 協議、萬維網應用使用了 HTTP 協議、遠程登錄服務應用使用了有 TELNET 協議
- 應用層還能加密、解密、格式化數據
- 應用層可以建立或解除與其他節點的聯系,這樣可以充分節省網絡資源
傳輸層
:作為 TCP/IP 協議的第二層,傳輸層在整個 TCP/IP 協議中起到了中流砥柱的作用。且在運輸層中, TCP 和 UDP 也同樣起到了中流砥柱的作用網絡層
:網絡層在 TCP/IP 協議中的位于第三層。在 TCP/IP 協議中網絡層可以進行網絡連接的建立和終止以及 IP 地址的尋找等功能網絡接口層
:在 TCP/IP 協議中,網絡接口層位于第四層。由于網絡接口層兼并了物理層和數據鏈路層所以,網絡接口層既是傳輸數據的物理媒介,也可以為網絡層提供一條準確無誤的線路
協議
- 應用層協議
- FTP協議(File Transfer Protocol 文件傳輸協議)
- HTTP協議(Hyper Text Transfer Protocol 超文本傳輸協議)
- NFS(Network File System 網絡文件系統)
- 傳輸層協議
- TCP協議(Transmission Control Protocol 傳輸控制協議)
- UDP協議(User Datagram Protocol 用戶數據報協議)
- 網絡層協議
- IP 協議(Internet Protocol 因特網互聯協議)
- ICMP 協議(Internet Control Message Protocol 因特網控制報文協議)
- IGMP 協議(Internet Group Management Protocol 因特網組管理協議)。
- 網絡接口層協議
- ARP協議(Address Resolution Protocol 地址解析協議)
- RARP協議(Reverse Address Resolution Protocol 反向地址解析協議)
UDP協議
- 源端口號:發送方端口號
- 目的端口號:接收方端口號
- 長度:UDP用戶數據報的長度,最小值是8(僅有首部)
- 校驗和:檢測UDP用戶數據報在傳輸中是否有錯,有錯就丟棄
TCP協議
- 源端口號:發送方端口號
- 目的端口號:接收方端口號
- 序號:本報文段的數據的第一個字節的序號
- 確認號:期望收到對方下一個報文段的第一個數據字節的序號
- 頭部長度(數據偏移):TCP 報文段的數據起始處距離 TCP 報文段的起始處有多遠,即首部長度。單位:32位,即以 4 字節為計算單位???
- 保留:占 6 位,保留為今后使用,目前應置為 0
- 緊急
URG
:此位置 1 ,表明緊急指針字段有效,它告訴系統此報文段中有緊急數據,應盡快傳送 - 確認
ACK
:僅當 ACK=1 時確認號字段才有效,TCP 規定,在連接建立后所有傳達的報文段都必須把 ACK 置1 - 推送
PSH
:當兩個應用進程進行交互式的通信時,有時在一端的應用進程希望在鍵入一個命令后立即就能夠收到對方的響應。在這種情況下,TCP 就可以使用推送(push)操作,這時,發送方TCP 把 PSH 置 1,并立即創建一個報文段發送出去,接收方收到 PSH = 1 的報文段,就盡快地(即“推送”向前)交付給接收應用進程,而不再等到整個緩存都填滿后再向上交付 - 復位
RST
:用于復位相應的 TCP 連接 - 同步
SYN
:僅在三次握手建立 TCP 連接時有效。當 SYN = 1 而 ACK = 0 時,表明這是一個連接請求報文段,對方若同意建立連接,則應在相應的報文段中使用 SYN = 1 和 ACK = 1。因此,SYN 置1 就表示這是一個連接請求或連接接受報文 - 終止
FIN
:用來釋放一個連接。當 FIN = 1 時,表明此報文段的發送方的數據已經發送完畢,并要求釋放運輸連接 - 窗口:指發送本報文段的一方的接收窗口(而不是自己的發送窗口)
- 校驗和:校驗和字段檢驗的范圍包括首部和數據兩部分,在計算校驗和時需要加上 12 字節的偽頭部
- 緊急指針:僅在 URG = 1 時才有意義,它指出本報文段中的緊急數據的字節數(緊急數據結束后就是普通數據),即指出了緊急數據的末尾在報文中的位置,注意:即使窗口為零時也可發送緊急數據
- 選項:長度可變,最長可達 40 字節,當沒有使用選項時,TCP 首部長度是 20 字節
IP協議
- 版本號:IP 協議的版本。通信雙方使用過的 IP 協議的版本必須一致,目前最廣泛使用的 IP 協議版本號為 4(即IPv4)
- 頭部長度:單位是 32 位(4 字節)
- 服務類型:一般不適用,取值為 0
- 總長度:指首部加上數據的總長度,單位為字節
- 標識(identification):IP 軟件在存儲器中維持一個計數器,每產生一個數據報,計數器就加 1,并將此值賦給標識字段
- 標志(flag):目前只有兩位有意義
- 標志字段中的最低位記為 MF。MF = 1 即表示后面“還有分片”的數據報。MF = 0 表示這已是若干數據報片中的最后一個
- 標志字段中間的一位記為 DF,意思是“不能分片”,只有當 DF = 0 時才允許分片
- 片偏移:指出較長的分組在分片后,某片在源分組中的相對位置,也就是說,相對于用戶數據段的起點,該片從何處開始。片偏移以 8 字節為偏移單位
- 生存時間:TTL,表明是數據報在網絡中的壽命,即為
跳數限制
,由發出數據報的源點設置這個字段。路由器在轉發數據之前就把 TTL 值減一,當 TTL 值減為零時,就丟棄這個數據報,常見為64和128 - 協議:指出此數據報攜帶的數據時使用何種協議,以便使目的主機的 IP 層知道應將數據部分上交給哪個處理過程,常用的 ICMP(1),IGMP(2),TCP(6),UDP(17),IPv6(41)
- 首部校驗和:只校驗數據報的首部,不包括數據部分
- 源地址:發送方 IP 地址
- 目的地址:接收方 IP 地址
以太網幀協議
類型:
- 0x800表示 IP
- 0x806表示 ARP
- 0x835表示 RARP
ARP協議
- 硬件類型:1 表示 MAC 地址
- 協議類型:0x800 表示 IP 地址
- 硬件地址長度:6
- 協議地址長度:4
- 操作
- 1 表示 ARP 請求
- 2 表示 ARP 應答
- 3 表示 RARP 請求
- 4 表示 RARP 應答
封裝
應用程序數據在發送到物理網絡上之前,將沿著協議棧從上往下依次傳遞。每層協議都將在上層數據的基礎上加上自己的頭部信息(有時還包括尾部信息),以實現該層的功能,這個過程就稱為封裝。
分用
當幀到達目的主機時,將沿著協議棧自底向上依次傳遞。各層協議依次處理幀中本層負責的頭部數據,以獲取所需的信息,并最終將處理后的幀交給目標應用程序。這個過程稱為分用。
分用時靠頭部信息中的類型字段實現的
封裝分用示意圖:
圖中以QQ發消息為例,發送nihao
傳輸層以UDP協議的源端口和目的端口
然后網絡層加IP協議頭,
最后就是以太網幀協議頭和尾
需要注意的是,我們是通過IP地址尋找MAC地址的,如果本機存儲過IP地址對應的MAC地址,那么就直接可以在以太網幀頭這里寫上目的端的物理地址。但如果不知道的話,就通過ARP協議獲取MAC
通過IP獲取MAC,時ARP,通過MAC獲取IP,是RARP
一開始源機器會給所有局域網的及其發一個arp請求,其他機器會根據自己的IP去對應,對上了就ARP應答,從而獲取。