Day24 課堂筆記
1 掌握ISO/OSI 網(wǎng)絡(luò)分層模型
1.1 OSI 的來源
OSI(Open System Interconnect),即開放式系統(tǒng)互聯(lián)。 一般都叫OSI 參考模型,是ISO(國際標(biāo)準(zhǔn)化組織)組織在1985 年研究的網(wǎng)絡(luò)互連模型。ISO 為了更好的使網(wǎng)絡(luò)應(yīng)用更為普及,推出了OSI 參考模型。其含義就是推薦所有公司使用這個規(guī)范來控制網(wǎng)絡(luò)。這樣所有公司都有相同的規(guī)范,就能互聯(lián)了。
1.2 OSI七層模型的劃分
OSI 定義了網(wǎng)絡(luò)互連的七層框架(物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層、應(yīng)用層),即ISO 開放互連系統(tǒng)參考模型。如下圖:
每一層實現(xiàn)各自的功能和協(xié)議,并完成與相鄰層的接口通信。OSI 的服務(wù)定義詳細說明了各層所提供的服務(wù)。某一層的服務(wù)就是該層及其下各層的一種能力,它通過接口提供給更高一層。各層所提供的服務(wù)與這些服務(wù)是怎么實現(xiàn)的無關(guān)。
1.3 各層功能定義
這里我們只對OSI 各層進行功能上的大概闡述,不詳細深究,因為每一層實際都是一個復(fù)雜的層。后面我也會根據(jù)個人方向展開部分層的深入學(xué)習(xí)。這里我們就大概了解一下。我們從最頂層——應(yīng)用層 開始介紹。整個過程以公司A 和公司B 的一次商業(yè)報價單發(fā)送為例子進行講解。
1 應(yīng)用層 Application Layer
OSI 參考模型中最靠近用戶的一層,是為計算機用戶提供應(yīng)用接口,也為用戶直接提供各種網(wǎng)絡(luò)服務(wù)。我們常見應(yīng)用層的網(wǎng)絡(luò)服務(wù)協(xié)議有:HTTP,HTTPS,F(xiàn)TP,POP3、SMTP Telnet 等。
實際公司A 的老板就是我們所述的用戶,而他要發(fā)送的商業(yè)報價單,就是應(yīng)用層提供的一種網(wǎng)絡(luò)服務(wù),當(dāng)然,老板也可以選擇其他服務(wù),比如說,發(fā)一份商業(yè)合同,發(fā)一份詢價單,等等。
2 表示層 Presentation Layer
表示層提供各種用于應(yīng)用層數(shù)據(jù)的編碼和轉(zhuǎn)換功能,確保一個系統(tǒng)的應(yīng)用層發(fā)送的數(shù)據(jù)能被另一個系統(tǒng)的應(yīng)用層識別。如果必要,該層可提供一種標(biāo)準(zhǔn)表示形式,用于將計算機內(nèi)部的多種數(shù)據(jù)格式轉(zhuǎn)換成通信中采用的標(biāo)準(zhǔn)表示形式。數(shù)據(jù)壓縮和加密也是表示層可提供的轉(zhuǎn)換功能之一。
由于公司A 和公司B 是不同國家的公司,他們之間的商定統(tǒng)一用英語作為交流的語言,所以此時表示層(公司的文秘),就是將應(yīng)用層的傳遞信息轉(zhuǎn)翻譯成英語。同時為了防止別的公司看到,公司A 的人也會對這份報價單做一些加密的處理。這就是表示的作用,將應(yīng)用層的數(shù)據(jù)轉(zhuǎn)換翻譯等。
屬于本層規(guī)范 ASCII JPEG PNG MPEG 等
3 會話層 Session Layer
會話層就是負責(zé)建立、管理和終止表示層實體之間的通信會話。該層的通信由不同設(shè)備中的應(yīng)用程序之間的服務(wù)請求和響應(yīng)組成。會話層的同事拿到表示層的同事轉(zhuǎn)換后資料,(會話層的同事類似公司的外聯(lián)部),會話層的同事那里可能會掌握本公司與其他好多公司的聯(lián)系方式,這里公司就是實際傳遞過程中的實體。他們要管理本公司與外界好多公司的聯(lián)系會話。當(dāng)接收到表示層的數(shù)據(jù)后,會話層將會建立并記錄本次會話,他首先要找到公司B 的地址信息,然后將整份資料放進信封,并寫上地址和聯(lián)系方式。準(zhǔn)備將資料寄出。等到確定公司B 接收到此份報價單后,此次會話就算結(jié)束了,外聯(lián)部的同事就會終止此次會話。
屬于本層規(guī)范TCP UDP 等
4 傳輸層 Transport Layer
傳輸層建立了主機端到端的鏈接,傳輸層的作用是為上層協(xié)議提供端到端的可靠和透明的數(shù)據(jù)傳輸服務(wù),包括處理差錯控制和流量控制等問題。該層向高層屏蔽了下層數(shù)據(jù)通信的細節(jié),使高層用戶看到的只是在兩個傳輸實體間的一條主機到主機的、可由用戶控制和設(shè)定的、可靠的數(shù)據(jù)通路。我們通常說的,TCP UDP 就是在這一層。端口號既是這里的“端”。
傳輸層就相當(dāng)于公司中的負責(zé)快遞郵件收發(fā)的人,公司自己的投遞員,他們負責(zé)將上一層的要寄出的資料投遞到快遞公司或郵局。
5 網(wǎng)絡(luò)層 NetWork Layer
本層通過IP 尋址來建立兩個節(jié)點之間的連接,為源端的運輸層送來的分組,選擇合適的路由和交換節(jié)點,正確無誤地按照地址傳送給目的端的運輸層。就是通常說的IP 層。這一層就是我們經(jīng)常說的IP 協(xié)議層。IP 協(xié)議是Internet 的基礎(chǔ)。網(wǎng)絡(luò)層就相當(dāng)于快遞公司龐大的快遞網(wǎng)絡(luò),全國不同的集散中心,比如說,從深圳發(fā)往北京的順豐快遞(陸運為例啊,空運好像直接就飛到北京了),首先要到順豐的深圳集散中心,從深圳集散中心再送到武漢集散中心,從武漢集散中心再寄到北京順義集散中心。這個每個集散中心,就相當(dāng)于網(wǎng)絡(luò)中的一個IP 節(jié)點。
屬于本層的協(xié)議 IP IPX RIP OSPF。
6 數(shù)據(jù)鏈路層 Data Link Layer
將比特組合成字節(jié),再將字節(jié)組合成幀,使用鏈路層地址 (以太網(wǎng)使用MAC地址)來訪問介質(zhì),并進行差錯檢測。數(shù)據(jù)鏈路層又分為2 個子層:邏輯鏈路控制子層(LLC)和媒體訪問控制子層(MAC)。MAC 子層處理CSMA/CD 算法、數(shù)據(jù)出錯校驗、成幀等;LLC 子層定義了一些字段使上次協(xié)議能共享數(shù)據(jù)鏈路層。 在實際使用中,LLC 子層并非必需的。
屬于本層定義的規(guī)范有 SDLC HDLC PPP STP 幀中級等,MAC 就是屬于本層。
7 物理層 Physical Layer
實際最終信號的傳輸是通過物理層實現(xiàn)的。通過物理介質(zhì)傳輸比特流。規(guī)定了電平、速度和電纜針腳。常用設(shè)備有(各種物理設(shè)備)集線器、中繼器、調(diào)制解調(diào)器、網(wǎng)線、雙絞線、同軸電纜。這些都是物理層的傳輸介質(zhì)??爝f寄送過程中的交通工具,就相當(dāng)于我們的物理層,例如汽車,火車,飛機,船。
屬于本層定義的規(guī)范有 RJ-45 RJ-11 等。
1.4 通信特點:對等通信
對等通信,為了使數(shù)據(jù)分組從源傳送到目的地,源端OSI 模型的每一層都必須與目的端的對等層進行通信,這種通信方式稱為對等層通信。在每一層通信過程中,使用本層自己協(xié)議進行通信。
1.5 了解OSI 參考模型中的數(shù)據(jù)傳輸
2 掌握TCP/IP 協(xié)議參考模型
由于ISO 指定的OSI 參考模型過于龐大、復(fù)雜、在實現(xiàn)制作過程造成了很多困難,從而招致了很多的批評。實際實現(xiàn)中,TCP/IP 協(xié)議獲得了廣泛的應(yīng)用。目前主流的操作系統(tǒng)網(wǎng)絡(luò)協(xié)議基本上都采用了TCP/IP 協(xié)議。
TCP/IP 五層模型
TCP/IP 五層協(xié)議和OSI 的七層協(xié)議對應(yīng)關(guān)系如下。
在每一層都工作著不同的設(shè)備,比如我們常用的交換機就工作在數(shù)據(jù)鏈路層的,一般的路由器是工作在網(wǎng)絡(luò)層的。
在每一層實現(xiàn)的協(xié)議也各不同,即每一層的服務(wù)也不同.下圖列出了每層主要的協(xié)議。其中每層中具體的協(xié)議,我會在后面的逐一學(xué)習(xí)。
3 掌握TCP/IP 協(xié)議建立連接3次握手的過程
3.1 IP 協(xié)議是TCP/IP 協(xié)議中最重要的協(xié)議
它為TCP UDP ICMP等協(xié)議提供傳輸?shù)耐贰P 層主要目的是提供子網(wǎng)互聯(lián),形成較大的網(wǎng)絡(luò),使不同的子網(wǎng)之間能傳輸數(shù)據(jù)。
IP 層主要的作用
-1、數(shù)據(jù)傳送 將數(shù)據(jù)從一個主機傳輸?shù)搅硪粋€主機
-2、尋址 根據(jù)子網(wǎng)劃分和IP 地址,發(fā)現(xiàn)正確的目的主機地址
-3、路由選擇 選擇數(shù)據(jù)在互聯(lián)網(wǎng)上的傳送路徑。
-4、數(shù)據(jù)保溫的分段 將數(shù)據(jù)進行分段發(fā)送和接收兵組裝。
3.2 TCP 傳輸控制協(xié)議 Transmission Control Protocol 簡稱
TCP 協(xié)議,它在原有IP 協(xié)議的基礎(chǔ)上,增加了確認重發(fā)、滑動窗口和復(fù)用,提供一種可靠的面向連接的字節(jié)流的服務(wù)。最大的特點就是可靠性。
3.3 TCP 數(shù)據(jù)報文格式
1 源端口號和目的端口號
這個字段均為16 位的長度,表示發(fā)送端和接收端的端口,用于確認發(fā)送端和接收端的應(yīng)用程序。發(fā)送端的IP地址和斷就好及接收端的IP 地址和端口號可以確認一個在Internet上的TCP 連接。
2 序列號
序列號是一個32 位長度的字段,表示分配給TCP 包的編號。序列號用來表示應(yīng)用程序從TCP 的發(fā)送端到接收端發(fā)送的字節(jié)流。當(dāng)TCP 開始連接的時候發(fā)哦少年宮一個序列號給接收端,連接成功后,這個序列號作為初始的序列號 ISN(Initial SequenceNumber)。建立連接成功后發(fā)送的第一個字節(jié)的序列號為ISN+1,之后發(fā)送數(shù)據(jù)ISN 將按照字節(jié)的大小進行遞增。序列號是一個32 位的無符號數(shù),到達2 的32 此房減1 之后從0 開始。
3 確認號
發(fā)送方對發(fā)送的首字節(jié)進行了編號,當(dāng)接收方成功接收后,發(fā)送回接收成功的序列號+1 表示確認,發(fā)送方再次發(fā)送的時候從確認號開始。
4 頭部長度
表示TCP 頭部的長度,由于TCP 的數(shù)據(jù)有可選字段,頭部長度用于表示頭部的長度。此字段的長度為4 位,表示的是以32位長的數(shù)據(jù)。因此TCP 的頭部最長為60 個字節(jié),如果沒有可選字段通常為20 個字節(jié)。
5 保留位
6 位長度沒有使用,必須設(shè)為0.
6 控制位
6b,用作控制位,可以多個位一起設(shè)置。
表1: TCP 控制為的含義
| 字段 | 含義 |
|---|---|
| URG | 緊急指針字段 |
| ACK | 表示確認號有效 |
| PSH | 表示接收方需要盡快將此數(shù)據(jù)交給應(yīng)用層 |
| RST | 重新連接 |
| SYN | 用于發(fā)起一個TCP 鏈接 |
| FIN | 用于表示將要斷開TCP 連接 |