總結(jié) :
通過學(xué)習(xí) TCP/IP 基礎(chǔ), 并總結(jié)相關(guān)筆記 和 繪制思維導(dǎo)圖 到博客上, 對(duì) TCP/IP 框架有了大致了解, 之后開始詳細(xì)學(xué)習(xí)數(shù)據(jù)鏈路層的各種細(xì)節(jié)協(xié)議, 并作出筆記;
博客地址 : http://blog.csdn.net/shulianghan/article/details/40045487
思維導(dǎo)圖 :
TCP / IP 四層簡(jiǎn)介 :
-- 應(yīng)用層 : Telnet, FTP, SMTP, SNMP, DNS, URI, HTML, HTTP 等協(xié)議;
-- 運(yùn)輸層 : TCP, UDP, SCTP, DCCP, UDP-Lite 協(xié)議;
-- 網(wǎng)絡(luò)層 : IP, ICMP, IGMP, ARP 協(xié)議;
-- 鏈路層 : 設(shè)備驅(qū)動(dòng)程序 與 網(wǎng)絡(luò)接口 (網(wǎng)卡);
鏈路層 (數(shù)據(jù)鏈路層 / 網(wǎng)絡(luò)接口層) 簡(jiǎn)介 :
-- 驅(qū)動(dòng)程序 : 鏈路層包括 網(wǎng)絡(luò)相關(guān)的設(shè)備 的驅(qū)動(dòng)程序, 驅(qū)動(dòng)程序是操作系統(tǒng)與硬件之間進(jìn)行交互的軟件, 相當(dāng)與橋梁;
-- 網(wǎng)卡 : 一臺(tái)計(jì)算機(jī)有多個(gè)網(wǎng)卡 例如 eth0, wlan0 等;
-- 作用 : 該層主要處理與物理傳輸介質(zhì) (電纜, 光線, 無(wú)線) 相關(guān)的 物理接口細(xì)節(jié)相關(guān)問題;
-- 鏈路層提供者 : 鏈路層功能一般由 硬件 (網(wǎng)絡(luò)設(shè)備) 及其 驅(qū)動(dòng)程序 提供;
網(wǎng)絡(luò)層 (互聯(lián)網(wǎng)層) 簡(jiǎn)介 :
-- 作用 : 處理分組在網(wǎng)絡(luò)中的活動(dòng), 如包傳輸?shù)南嚓P(guān)活動(dòng) 分組選路, 通過該層, 傳輸層及以上的層次可以抽象甚至忽略網(wǎng)絡(luò)結(jié)構(gòu)細(xì)節(jié);
-- 包含的協(xié)議 : IP協(xié)議 (網(wǎng)際協(xié)議), ICMP 協(xié)議 (Internet 互聯(lián)網(wǎng)控制報(bào)文協(xié)議), IGMP 協(xié)議 (Internet 組管理協(xié)議);
-- 網(wǎng)絡(luò)層提供者 : 網(wǎng)絡(luò)層 和 傳輸層的功能 一般由 操作系統(tǒng) 提供;
網(wǎng)絡(luò)層相關(guān)設(shè)備分析 :
-- 實(shí)現(xiàn)網(wǎng)絡(luò)層的設(shè)備 : 互聯(lián)網(wǎng) 就是 實(shí)現(xiàn)了 網(wǎng)絡(luò)層 功能的網(wǎng)絡(luò), 互聯(lián)網(wǎng)的所有 主機(jī) 和 路由器 必須實(shí)現(xiàn) IP 功能, 路由器 必須實(shí)現(xiàn)通過互聯(lián)網(wǎng)層 轉(zhuǎn)發(fā)分組數(shù)據(jù)包的功能;
-- 無(wú)須實(shí)現(xiàn)網(wǎng)絡(luò)層設(shè)備 : 對(duì)于其它的網(wǎng)絡(luò)設(shè)備 網(wǎng)橋, 中繼器, 集線器 就不用實(shí)現(xiàn) IP 或者 TCP 功能;
IP 協(xié)議 : 該協(xié)議 基于 IP 地址 轉(zhuǎn)發(fā)分包數(shù)據(jù);
-- 使用 IP 地址標(biāo)識(shí) : 該協(xié)議 跨網(wǎng)絡(luò)傳送數(shù)據(jù)包, 整個(gè)互聯(lián)網(wǎng)可以通過 IP 地址作為主機(jī)的標(biāo)識(shí), 能夠發(fā)送接收數(shù)據(jù);
-- IP 協(xié)議隱含功能 : IP 協(xié)議對(duì)上層透明, 該協(xié)議隱含 數(shù)據(jù)鏈路層 功能, 相互通信的主機(jī) 不管經(jīng)過了 什么種類的數(shù)據(jù)鏈路層, 都可以進(jìn)行通信;
-- 協(xié)議可靠性 : IP 協(xié)議是分組交換協(xié)議, 但是不具備重發(fā)機(jī)制, 分組數(shù)據(jù)包未打到目的主機(jī)也不會(huì)重發(fā), 該協(xié)議屬于非可靠性傳輸協(xié)議;
ICMP 協(xié)議 : IP 協(xié)議附屬協(xié)議, 用于主機(jī) 和 路由器間交換錯(cuò)誤報(bào)文 和 其它重要信息;
-- 作用 : 當(dāng) IP 數(shù)據(jù)包在發(fā)送過程中無(wú)法到達(dá)目標(biāo)主機(jī)時(shí), 需要給發(fā)送端發(fā)一個(gè)異常通知, 就是 ICMP 數(shù)據(jù)包;
-- 使用場(chǎng)景 : 診斷網(wǎng)絡(luò)的健康狀況;
ARP 協(xié)議 :
-- 作用 : 從分組數(shù)據(jù)包 IP 地址解析物理地址 (MAC 地址) 協(xié)議;
RARP 協(xié)議 : 逆地址解析協(xié)議;
IGMP 協(xié)議 (Internet 組網(wǎng)管理協(xié)議) : 把一個(gè) UDP 數(shù)據(jù)報(bào)多播到多個(gè)主機(jī);
運(yùn)輸層簡(jiǎn)介 :
-- 作用 : 為兩臺(tái)主機(jī)上的應(yīng)用程序提供端到端的通信, 通過 端口號(hào) 識(shí)別兩臺(tái)主機(jī)上哪些程序在跟哪些程序進(jìn)行通信;
-- 包含的協(xié)議 : TCP 協(xié)議 (傳輸控制協(xié)議), UDP 協(xié)議 (用戶數(shù)據(jù)報(bào)協(xié)議);
TCP 協(xié)議 (傳輸控制協(xié)議) : 面向鏈接協(xié)議, 該協(xié)議為兩臺(tái)主機(jī)提供可靠的數(shù)據(jù)通信;
-- 分塊傳網(wǎng)絡(luò)層 : 在 運(yùn)輸層 中將 應(yīng)用層 傳下來(lái)的數(shù)據(jù)分成數(shù)據(jù)塊;
-- 確認(rèn)分組 : 確認(rèn)接收到數(shù)據(jù)的分組;
-- 設(shè)置超時(shí)時(shí)間 : 為數(shù)據(jù)塊設(shè)置超時(shí)時(shí)間, 一旦超過超時(shí)時(shí)間就重新發(fā)送;
TCP 協(xié)議優(yōu)點(diǎn) 和 局限性 :
-- 優(yōu)點(diǎn) : 保證兩個(gè)主機(jī)間通信可達(dá), 能正確處理在傳輸過程中丟包, 亂序等異常情況, 其能夠有效利用帶寬, 緩解網(wǎng)絡(luò)擁堵;
-- 局限 : TCP 連接建立 和 斷開 至少需要 7次發(fā)包 和 收包, 導(dǎo)致流量浪費(fèi), TCP 中定義的各種為了提高網(wǎng)絡(luò)效率的規(guī)范 不理于視頻, 音頻傳輸;
UDP 協(xié)議 (用戶數(shù)據(jù)報(bào)協(xié)議) : 無(wú)連接協(xié)議;
-- 作用 : 提供服務(wù)簡(jiǎn)單, 只將數(shù)據(jù)報(bào)分組發(fā)送到另一臺(tái)主機(jī), 不關(guān)心數(shù)據(jù)報(bào)能否到達(dá);
-- 使用場(chǎng)景 : 分組數(shù)據(jù)較少, 多播, 廣播, 多媒體領(lǐng)域;
TCP 和 UDP 比較 :
-- TCP : TCP 協(xié)議提供了高可靠性的數(shù)據(jù)通信, 應(yīng)用層可以忽略數(shù)據(jù)傳輸可靠性的細(xì)節(jié);
-- UDP : 使用該協(xié)議 必須在應(yīng)用層考慮數(shù)據(jù)可靠性;
應(yīng)用層簡(jiǎn)介 :
-- 作用 : 處理應(yīng)用程序中的細(xì)節(jié);
-- 包含的協(xié)議 : Telnet 遠(yuǎn)程登錄, FTP 文件傳輸協(xié)議, SMTP 簡(jiǎn)單郵件傳輸協(xié)議, SNMP 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議;
HTTP 協(xié)議 : 該協(xié)議是 WEB 通信中的 瀏覽器 與 服務(wù)器 端通信所用的協(xié)議, 傳輸數(shù)據(jù)的格式是 HTML;
-- 協(xié)議所在層 : HTTP 屬于 WWW 協(xié)議中的一種, HTTP 協(xié)議對(duì)應(yīng) OSI 七層協(xié)議中的 表示層協(xié)議, 在 TCP/IP 協(xié)議中屬于 應(yīng)用層協(xié)議;
FTP 協(xié)議簡(jiǎn)介 :
-- 傳輸過程 : FTP 協(xié)議文件傳輸會(huì)建立兩個(gè) TCP 連接, 一個(gè)是 傳輸請(qǐng)求時(shí)需要的控制連接, 一個(gè)是傳輸實(shí)際文件數(shù)據(jù)用的數(shù)據(jù)連接;
TELNET 協(xié)議 和 SSH 協(xié)議 : 這兩種協(xié)議是 TCP/IP 網(wǎng)絡(luò)中常用的兩種遠(yuǎn)程登錄協(xié)議;
SNMP 協(xié)議介紹 :
-- 具體的管理過程 : 通過 網(wǎng)絡(luò)管理終端 (SNMP 管理器) 管理 服務(wù)器, 路由器 交換機(jī)等, 管理內(nèi)容有 信息通知, 故障通知, 通知設(shè)置, 操作檢查, 配置變化 等;
-- 主要作用 : SNMP 協(xié)議可以對(duì)網(wǎng)絡(luò)上的設(shè)備進(jìn)行遠(yuǎn)程修改配置, 可以對(duì)大范圍復(fù)雜網(wǎng)絡(luò)進(jìn)行有效管理, 檢查 SNMP 代理 是否正常運(yùn)行, 可以讓管理員及時(shí)發(fā)現(xiàn)故障;
SNMP 協(xié)議組成 :
-- SNMP 代理 (Agent) : SNMP 管理的 路由器, 服務(wù)器, 交換機(jī), PC機(jī) 等設(shè)備叫做 SNMP 代理;
-- 管理器 (Manager) : SNMP 中進(jìn)行管理的那部分, 即網(wǎng)絡(luò)管理終端;
MIB 協(xié)議 (Manager Infomation Base) : SNMP 代理端 (即 主機(jī), 路由器, 交換機(jī)) 保存 網(wǎng)絡(luò)接口信息, 通信數(shù)據(jù)量, 異常數(shù)據(jù)量 以及 設(shè)備溫度 等信息, 訪問這些數(shù)據(jù)的協(xié)議是 MIB 協(xié)議;
示例 : 網(wǎng)頁(yè)瀏覽, 在瀏覽器端瀏覽網(wǎng)頁(yè);
-- 應(yīng)用層 : 使用 HTTP 協(xié)議;
-- 運(yùn)輸層 : 使用 TCP 協(xié)議;
-- 網(wǎng)絡(luò)層 : 使用 IP 協(xié)議;
-- 鏈路層 : 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序, 和網(wǎng)卡物理接口;
協(xié)議執(zhí)行位置 :
-- 用戶空間 : 應(yīng)用層協(xié)議 一般是在用戶進(jìn)行中處理, 運(yùn)行在用戶空間;
-- 內(nèi)核空間 : 運(yùn)輸層 網(wǎng)絡(luò)層 鏈路層 一般運(yùn)行在內(nèi)核空間中;
下層協(xié)議對(duì)上層透明 : 高層的協(xié)議不關(guān)心 也不處理 低層協(xié)議 相關(guān)數(shù)據(jù), 對(duì)下層協(xié)議一無(wú)所知;
TCP/IP 四層協(xié)議的作用 和 區(qū)別 :
-- 鏈路層 和 應(yīng)用層 的明顯作用 : 鏈路層處理物理介質(zhì)相關(guān)的傳輸媒介 以及物理設(shè)備相關(guān)的細(xì)節(jié), 應(yīng)用層 處理與應(yīng)用程序相關(guān)的數(shù)據(jù);
-- 網(wǎng)絡(luò)層 和 運(yùn)輸層 區(qū)別不明顯 : 兩層主要是網(wǎng)絡(luò)傳輸相關(guān), 這兩層區(qū)分并不是很明確;
不同類型網(wǎng)絡(luò)連接 : 以太網(wǎng), 令牌環(huán)網(wǎng), FDDI (光線分布式數(shù)據(jù)接口), 點(diǎn)對(duì)點(diǎn)鏈接, 這些網(wǎng)絡(luò)中的主機(jī)互相都可以通信;
-- 路由器 : 路由器可以將多個(gè)不同類型的網(wǎng)絡(luò)連接起來(lái);
-- 路由器接口 : 路由器必須有多個(gè)網(wǎng)絡(luò)接口,
網(wǎng)橋與路由器區(qū)別 :
-- 網(wǎng)橋 : 網(wǎng)橋 在鏈路層 連接網(wǎng)絡(luò);
-- 路由器 : 路由器 是在網(wǎng)絡(luò)層連接網(wǎng)絡(luò);
端系統(tǒng) 和 中間系統(tǒng) : 網(wǎng)絡(luò)層是個(gè)中間系統(tǒng), 傳輸層是個(gè)端系統(tǒng);
-- 端系統(tǒng) (End System) : 應(yīng)用層 和 傳輸層 使用端到端 (End-to-end) 協(xié)議;
-- 中間系統(tǒng) (Intermediate System) : 網(wǎng)絡(luò)層 使用逐跳 (Hop-by-hop) 協(xié)議;
網(wǎng)絡(luò)層 和 運(yùn)輸層作用 : 傳輸層 和 網(wǎng)絡(luò)層負(fù)責(zé)的功能不同;
-- 網(wǎng)絡(luò)層 : IP 協(xié)議提供不可靠服務(wù), 將分組從源節(jié)點(diǎn) 送到 目的節(jié)點(diǎn);
-- 傳輸層 : TCP 協(xié)議采用超時(shí)重傳 和 端到端分組確認(rèn)等機(jī)制, 保證可靠性;
IP 地址分類 : IP 地址長(zhǎng)度 32bit, 4 個(gè)字節(jié), 每個(gè) IP 地址都由 標(biāo)識(shí)位, 網(wǎng)絡(luò)號(hào), 和 主機(jī)號(hào)三部分組成;
-- 點(diǎn)分十進(jìn)制 : 32 位二進(jìn)制數(shù), 每個(gè)十進(jìn)制整數(shù)對(duì)應(yīng)一個(gè)字節(jié);
-- 網(wǎng)絡(luò)區(qū)分 : 第一個(gè)十進(jìn)制整數(shù)即可區(qū)分 IP 地址類型, 0 ~ 127 A類, 128 ~ 191 B類, 192 ~ 223 C類, 224 ~ 239 D類, 240 ~ 225 E類;
A類地址 :
-- 組成 : 標(biāo)識(shí)位 0, 網(wǎng)絡(luò)號(hào) 7 位, 主機(jī)號(hào) 24 位,
-- 十進(jìn)制取值范圍 : 0.0.0.0 ~ 127.255.255.255;
-- 二進(jìn)制取值范圍 : 0(標(biāo)識(shí)位) 0000000(網(wǎng)絡(luò)號(hào)) 00000000 00000000 00000000(主機(jī)號(hào)) ~ 0(標(biāo)識(shí)位) 1111111(網(wǎng)絡(luò)號(hào)) 11111111 11111111 11111111(主機(jī)號(hào));
B類地址 :
-- 組成 : 標(biāo)識(shí)位 10, 網(wǎng)絡(luò)號(hào) 14 位, 主機(jī)號(hào) 16 位;
-- 十進(jìn)制取值范圍 : 128.0.0.0 ~ 191.255.255.255;
-- 二進(jìn)制取值范圍 : 10(標(biāo)識(shí)位) 000000 00000000(網(wǎng)絡(luò)號(hào)) 00000000 00000000(主機(jī)號(hào)) ~ 10(標(biāo)識(shí)位) 111111(網(wǎng)絡(luò)號(hào)) 11111111 11111111 11111111(主機(jī)號(hào));
C類地址 :
-- 組成 : 標(biāo)識(shí)位 110, 網(wǎng)絡(luò)號(hào) 21位, 主機(jī)號(hào) 8位;
-- 十進(jìn)制取值范圍 : 192.0.0.0 ~ 223.255.255.255;
-- 二進(jìn)制取值范圍 : 110(標(biāo)識(shí)位) 00000 00000000 00000000(網(wǎng)絡(luò)號(hào)) 00000000(主機(jī)號(hào)) ~ 110(標(biāo)識(shí)位) 11111 11111111 11111111(網(wǎng)絡(luò)號(hào)) 11111111(主機(jī)號(hào))
D類地址 :
-- 組成 : 標(biāo)識(shí)位 1110, 多播組號(hào) 28 位;
-- 十進(jìn)制取值范圍 : 224.0.0.0 ~ 239.255.255.255;
-- 二進(jìn)制取值范圍 : 1110(標(biāo)識(shí)位) 0000 00000000 00000000 00000000 00000000(多播組號(hào)) ~ 1110(標(biāo)識(shí)位) 1111 11111111 11111111 11111111(多播組號(hào));
E類地址 :
-- 組成 : 標(biāo)識(shí)位 11110, 保留 27 位;
-- 十進(jìn)制取值范圍 : 240.0.0.0 ~ 255.255.255.255;
-- 二進(jìn)制取值范圍 : 11110(標(biāo)識(shí)位) 000 00000000 00000000 00000000(保留位) ~ 11110(標(biāo)識(shí)位) 111 11111111 11111111 11111111(保留位);
按目的地址分類 IP 地址 :
-- 單播地址 : 目的端為單個(gè)主機(jī);
-- 廣播地址 : 目的端是給定網(wǎng)絡(luò)的所有主機(jī);
-- 多播地址 : 目的端是同一組的所有主機(jī);
互聯(lián)網(wǎng)絡(luò)信息中心 (Internet Network Information Center) 簡(jiǎn)稱 InterNIC, 職責(zé)是 分配網(wǎng)絡(luò)號(hào);
DNS (域名系統(tǒng)) : DNS 是一個(gè)分布式數(shù)據(jù)庫(kù), 提供 IP 地址 和 主機(jī)名之間的映射;
地址解析函數(shù) :
-- 正函數(shù) : 給定主機(jī)名, 查詢主機(jī) IP 地址;
-- 逆函數(shù) : 給定主機(jī) IP 地址, 查詢主機(jī)名;
端口號(hào)簡(jiǎn)介 : 端口號(hào)是 TCP UDP 協(xié)議識(shí)別主機(jī)上的應(yīng)用程序用的;
-- 端口號(hào)位數(shù) : 端口號(hào)是 16 bit 的數(shù)字, 取值范圍 1 ~ 65535;
-- 端口號(hào)所在層 : 端口號(hào)是 運(yùn)輸層 使用的, 主要配合 TCP UDP 使用, 脫離這兩個(gè)協(xié)議端口號(hào)將毫無(wú)用處;
客戶端口號(hào) (臨時(shí)端口號(hào)) : TCP/IP 提供給客戶端的臨時(shí)端口號(hào)是 1024 ~ 5000;
-- 臨時(shí)端口不重要 : 客戶端對(duì)臨時(shí)端口號(hào)不關(guān)心, 保證端口號(hào)唯一即可;
服務(wù)端口號(hào) :
-- 端口號(hào)定義位置 : 在 UNIX 系統(tǒng)的文件的 /etc/services 包含了系統(tǒng)服務(wù)的端口號(hào), 使用 sudo vim /etc/services 命令查看 Ubuntu 系統(tǒng)的端口號(hào);
-- 服務(wù)端口號(hào)規(guī)律 : TCP/IP 提供的服務(wù)端口號(hào)都使用的 知名端口號(hào), 即 1 ~ 1023 之間;
-- 服務(wù)端口號(hào)示例 : FTP 服務(wù) TCP 端口號(hào) : 21, Telnet 服務(wù) TCP 端口號(hào) : 23, TFTP 服務(wù) UDP 端口號(hào) : 69;
首部信息結(jié)構(gòu) : TCP/IP 中每個(gè)分層都會(huì)對(duì)數(shù)據(jù)附加一個(gè)首部, 首部包含了該層的相關(guān)信息;
-- 傳輸層 : (TCP 包首部)(TCP 中的數(shù)據(jù)) ;
-- 網(wǎng)絡(luò)層 : (IP 包首部)( IP 數(shù)據(jù) : (TCP 包首部)(TCP 中的數(shù)據(jù))) ;
-- 鏈路層 : (以太網(wǎng) 包首部) ( 以太網(wǎng)數(shù)據(jù) : (IP 包首部)( IP 數(shù)據(jù) : (TCP 包首部)(TCP 中的數(shù)據(jù)))) ;
包 : TCP / IP 協(xié)議中, 每一層的數(shù)據(jù)都可以成為包, 是一個(gè)全能術(shù)語(yǔ);
幀 (以太網(wǎng)數(shù)據(jù)幀) : 鏈路層包的單位;
數(shù)據(jù)包 (IP數(shù)據(jù)報(bào)) : 網(wǎng)絡(luò)層以上包的單位, IP 給 鏈路層的數(shù)據(jù)包稱為 IP 數(shù)據(jù)報(bào) (IP datagram);
段 (TCP 報(bào)文段) : TCP 數(shù)據(jù)包, TCP 傳遞給 IP 的數(shù)據(jù)包成為 TCP 報(bào)文段 (TCP segment);
消息 : 應(yīng)用層的數(shù)據(jù)包;
以太網(wǎng)數(shù)據(jù)幀 : 鏈路層的 數(shù)據(jù)幀長(zhǎng)度在 46 ~ 1500 字節(jié)之間;
每個(gè)首部的大小 : 以太網(wǎng)首部 | IP 首部 | TCP 首部 | 應(yīng)用數(shù)據(jù)(Appl | 用戶數(shù)據(jù)) | 以太網(wǎng)尾部 ;
-- 以太網(wǎng)首部 : 14字節(jié), 需要發(fā)送 接收 IP ARP RARP 數(shù)據(jù), 上面三種數(shù)據(jù)包需要標(biāo)識(shí);
-- IP 首部 : 20字節(jié), 該首部 有一個(gè) 8bit 的數(shù)值, 用于標(biāo)識(shí) TCP(標(biāo)識(shí)6) UDP(標(biāo)識(shí)17) ICMP(標(biāo)識(shí)1) IGMP(標(biāo)識(shí)2) 協(xié)議;
-- TCP 首部 : 20字節(jié), 這里也可以是 UDP 首部, 由于 UDP 首部是不可靠的, 數(shù)據(jù)量比較少, 只有 8字節(jié), TCP 和 UDP 需要 16bit 的端口號(hào)標(biāo)識(shí)應(yīng)用程序;
分用定義 : 主機(jī)在鏈路層接收到 以太網(wǎng)數(shù)據(jù)幀, 該數(shù)據(jù)會(huì)逐層上升, 在每層都去掉該層的首部信息, 并校驗(yàn)首部信息是否正確, 該過程就是分用;
封裝分用總結(jié) : 發(fā)送數(shù)據(jù) 從應(yīng)用層到鏈路層 逐層加數(shù)據(jù)包 是封裝, 接收數(shù)據(jù) 從鏈路層到應(yīng)用層 逐層解包 是分用;
準(zhǔn)備數(shù)據(jù) : 應(yīng)用層經(jīng)過用戶應(yīng)用程序處理, 準(zhǔn)備要發(fā)送的信息;
TCP 連接管理 : 應(yīng)用層發(fā)送數(shù)據(jù)時(shí), TCP 模塊建立連接, 使用這個(gè)連接發(fā)送數(shù)據(jù), 發(fā)送完畢之后斷開連接;
封裝 TCP 首部 : 為了實(shí)現(xiàn)可靠的 TCP 傳輸, 需要在應(yīng)用層的信息的前端附加一個(gè) TCP 首部;
-- TCP 首部組成 : 源端口號(hào), 目的端口號(hào), 序號(hào), 校驗(yàn)和;
封裝 IP 首部 : TCP 模塊將 TCP首部 和 TCP 數(shù)據(jù)合成 TCP 報(bào)文段, 傳入到 IP 模塊, IP 模塊在 TCP 報(bào)文段前端加上 IP 首部;
-- IP 首部組成 : 接收端 IP 地址, 發(fā)送端 IP 地址, 緊隨其后的是 UDP/TCP 協(xié)議識(shí)別標(biāo)識(shí);
送到鏈路層 :
-- 查找路徑 : IP 數(shù)據(jù)報(bào) 生成后, 參考路由控制表決定該 IP 數(shù)據(jù)報(bào)的 路由 或 主機(jī) 路徑;
-- 查詢 MAC 地址 : 利用 ARP 查找 MAC 地址;
-- 提交到鏈路層 : IP 數(shù)據(jù)報(bào)提交給鏈路層 需要將 MAC 地址 和 IP 地址一起提交到下一層;
封裝 以太網(wǎng) 首部 : 網(wǎng)絡(luò)層傳遞 IP 數(shù)據(jù)報(bào)到鏈路層, 在該層給 IP 數(shù)據(jù)報(bào)附加 以太網(wǎng)首部 并發(fā)送出去;
-- 以太網(wǎng)首部組成 : 發(fā)送端 MAC 地址, 接收端 MAC 地址, 標(biāo)識(shí)以太網(wǎng)類型(PPP, 令牌環(huán)等)的以太網(wǎng)數(shù)據(jù)協(xié)議;
封裝 以太網(wǎng) 尾部 : 封裝完首部之后, 還需要加上一個(gè) FCS 尾部, 該 FCS 由硬件計(jì)算生成, 判斷是否因?yàn)槲锢斫橘|(zhì)干擾而導(dǎo)致數(shù)據(jù)被破壞;
添加流程 : 應(yīng)用層信息 -> TCP (UDP) 包首部 -> IP 包首部 -> 以太網(wǎng)包首部 -> 以太網(wǎng)包尾部;
包首部信息規(guī)律 : 每層添加的包首部 一般都包含 發(fā)送 和 接收 地址信息, 上一層的協(xié)議類型;
-- 鏈路層 : 使用 發(fā)送端 和 接收端的 MAC 地址;
-- 網(wǎng)絡(luò)層 : 使用 發(fā)送段 和 接收端的 IP 地址, 該層還需要一個(gè) 協(xié)議類型, 說(shuō)明在傳輸層使用的是 TCP 還是 UDP 協(xié)議;
-- 傳輸層 : 使用 發(fā)送段 和 接收端的 端口號(hào);
鏈路層處理流程 : 判定地址有效行 -> 確定上層協(xié)議類型 -> 傳遞給上層對(duì)應(yīng)協(xié)議處理模塊;
-- 判定地址有效性 : 主機(jī)收到 以太網(wǎng)數(shù)據(jù)幀后, 解析以太網(wǎng)包頭, 查看 目的端 MAC 地址是否為本機(jī)地址, 如果不是丟棄該 幀;
-- 判定協(xié)議類型 : 查找 以太網(wǎng)數(shù)據(jù)包首部中的 類型域, 確定該數(shù)據(jù)包是 IP 數(shù)據(jù)報(bào), 還是 ARP 協(xié)議, 如果無(wú)法識(shí)別協(xié)議類型, 丟棄;
-- 傳遞給對(duì)應(yīng)模塊處理 : 如果是 IP 數(shù)據(jù)報(bào), 傳遞給 IP 模塊處理, 如果是 ARP 協(xié)議, 就傳遞給 ARP 模塊處理;
IP 模塊處理流程 (沒有路由器的情況) : 判定 IP 地址 -> 判定協(xié)議;
-- 判定 IP : 分析 IP 包首部的 目的 IP 地址, 如果 IP 地址是本機(jī)地址, 就進(jìn)行下面的操作;
-- 判定協(xié)議 : 判定 上層協(xié)議是 TCP 還是 UDP, 交給對(duì)應(yīng)模塊處理;
有路由器的情況 : 如果有路由器, 接收端地址一般是 路由器的 IP 地址, 需要查詢路由表, 查詢到 目的主機(jī) 或 路由器 后在轉(zhuǎn)發(fā)數(shù)據(jù)包;
傳輸層處理流程 : 校驗(yàn)數(shù)據(jù)完整性 -> 校驗(yàn)數(shù)據(jù)次序 -> 校驗(yàn)程序端口 -> 發(fā)送回執(zhí) -> 送到應(yīng)用層;
-- 校驗(yàn)完整性 : TCP 模塊接收到數(shù)據(jù)包后, 首先計(jì)算校驗(yàn)和, 判斷數(shù)據(jù)是否被破壞;
-- 校驗(yàn)次序 : 檢查數(shù)據(jù)包的序號(hào), 查看是否在按照次序接收數(shù)據(jù);
-- 校驗(yàn)端口號(hào) : 通過端口號(hào)獲取具體的應(yīng)用程序;
-- 發(fā)送回執(zhí) : 數(shù)據(jù)接收完畢后, 發(fā)送一個(gè)回執(zhí)給發(fā)送端, 如果發(fā)送端未收到回執(zhí), 發(fā)送端會(huì)一直發(fā)送數(shù)據(jù)給接收端;
-- 傳遞給應(yīng)用層 : 數(shù)據(jù)被接收以后, 會(huì)根據(jù)端口號(hào)識(shí)別應(yīng)用程序, 將數(shù)據(jù)傳遞給那個(gè)應(yīng)用程序;
博客地址 : http://blog.csdn.net/shulianghan/article/details/40045487
聯(lián)系客服