Day24 課堂筆記
1 掌握ISO/OSI 網(wǎng)絡(luò)分層模型
1.1 OSI 的來(lái)源
OSI(Open System Interconnect)
,即開(kāi)放式系統(tǒng)互聯(lián)僵闯。 一般都叫OSI 參考模型奉呛,是ISO(國(guó)際標(biāo)準(zhǔn)化組織)組織在1985 年研究的網(wǎng)絡(luò)互連模型藏杖。ISO 為了更好的使網(wǎng)絡(luò)應(yīng)用更為普及懂盐,推出了OSI 參考模型。其含義就是推薦所有公司使用這個(gè)規(guī)范來(lái)控制網(wǎng)絡(luò)跛蛋。這樣所有公司都有相同的規(guī)范熬的,就能互聯(lián)了。
1.2 OSI七層模型的劃分
OSI 定義了網(wǎng)絡(luò)互連的七層框架(物理層赊级、數(shù)據(jù)鏈路層悦析、網(wǎng)絡(luò)層、傳輸層此衅、會(huì)話層强戴、表示層、應(yīng)用層)挡鞍,即ISO 開(kāi)放互連系統(tǒng)參考模型骑歹。如下圖:
每一層實(shí)現(xiàn)各自的功能和協(xié)議,并完成與相鄰層的接口通信墨微。OSI 的服務(wù)定義詳細(xì)說(shuō)明了各層所提供的服務(wù)道媚。某一層的服務(wù)就是該層及其下各層的一種能力,它通過(guò)接口提供給更高一層。各層所提供的服務(wù)與這些服務(wù)是怎么實(shí)現(xiàn)的無(wú)關(guān)最域。
1.3 各層功能定義
這里我們只對(duì)OSI 各層進(jìn)行功能上的大概闡述谴分,不詳細(xì)深究,因?yàn)槊恳粚訉?shí)際都是一個(gè)復(fù)雜的層镀脂。后面我也會(huì)根據(jù)個(gè)人方向展開(kāi)部分層的深入學(xué)習(xí)牺蹄。這里我們就大概了解一下。我們從最頂層——應(yīng)用層 開(kāi)始介紹薄翅。整個(gè)過(guò)程以公司A 和公司B 的一次商業(yè)報(bào)價(jià)單發(fā)送為例子進(jìn)行講解沙兰。
1 應(yīng)用層 Application Layer
OSI 參考模型中最靠近用戶的一層,是為計(jì)算機(jī)用戶提供應(yīng)用接口翘魄,也為用戶直接提供各種網(wǎng)絡(luò)服務(wù)鼎天。我們常見(jiàn)應(yīng)用層的網(wǎng)絡(luò)服務(wù)協(xié)議有:HTTP,HTTPS暑竟,F(xiàn)TP斋射,POP3、SMTP Telnet 等但荤。
實(shí)際公司A 的老板就是我們所述的用戶罗岖,而他要發(fā)送的商業(yè)報(bào)價(jià)單,就是應(yīng)用層提供的一種網(wǎng)絡(luò)服務(wù)纱兑,當(dāng)然呀闻,老板也可以選擇其他服務(wù)化借,比如說(shuō)潜慎,發(fā)一份商業(yè)合同,發(fā)一份詢價(jià)單蓖康,等等铐炫。
2 表示層 Presentation Layer
表示層提供各種用于應(yīng)用層數(shù)據(jù)的編碼和轉(zhuǎn)換功能,確保一個(gè)系統(tǒng)的應(yīng)用層發(fā)送的數(shù)據(jù)能被另一個(gè)系統(tǒng)的應(yīng)用層識(shí)別。如果必要蒜焊,該層可提供一種標(biāo)準(zhǔn)表示形式倒信,用于將計(jì)算機(jī)內(nèi)部的多種數(shù)據(jù)格式轉(zhuǎn)換成通信中采用的標(biāo)準(zhǔn)表示形式。數(shù)據(jù)壓縮和加密也是表示層可提供的轉(zhuǎn)換功能之一泳梆。
由于公司A 和公司B 是不同國(guó)家的公司鳖悠,他們之間的商定統(tǒng)一用英語(yǔ)作為交流的語(yǔ)言,所以此時(shí)表示層(公司的文秘)优妙,就是將應(yīng)用層的傳遞信息轉(zhuǎn)翻譯成英語(yǔ)乘综。同時(shí)為了防止別的公司看到,公司A 的人也會(huì)對(duì)這份報(bào)價(jià)單做一些加密的處理套硼。這就是表示的作用卡辰,將應(yīng)用層的數(shù)據(jù)轉(zhuǎn)換翻譯等。
屬于本層規(guī)范 ASCII JPEG PNG MPEG 等
3 會(huì)話層 Session Layer
會(huì)話層就是負(fù)責(zé)建立、管理和終止表示層實(shí)體之間的通信會(huì)話九妈。該層的通信由不同設(shè)備中的應(yīng)用程序之間的服務(wù)請(qǐng)求和響應(yīng)組成反砌。會(huì)話層的同事拿到表示層的同事轉(zhuǎn)換后資料,(會(huì)話層的同事類(lèi)似公司的外聯(lián)部)萌朱,會(huì)話層的同事那里可能會(huì)掌握本公司與其他好多公司的聯(lián)系方式宴树,這里公司就是實(shí)際傳遞過(guò)程中的實(shí)體。他們要管理本公司與外界好多公司的聯(lián)系會(huì)話嚷兔。當(dāng)接收到表示層的數(shù)據(jù)后森渐,會(huì)話層將會(huì)建立并記錄本次會(huì)話,他首先要找到公司B 的地址信息冒晰,然后將整份資料放進(jìn)信封同衣,并寫(xiě)上地址和聯(lián)系方式。準(zhǔn)備將資料寄出壶运。等到確定公司B 接收到此份報(bào)價(jià)單后耐齐,此次會(huì)話就算結(jié)束了,外聯(lián)部的同事就會(huì)終止此次會(huì)話蒋情。
屬于本層規(guī)范TCP UDP 等
4 傳輸層 Transport Layer
傳輸層建立了主機(jī)端到端的鏈接埠况,傳輸層的作用是為上層協(xié)議提供端到端的可靠和透明的數(shù)據(jù)傳輸服務(wù),包括處理差錯(cuò)控制和流量控制等問(wèn)題棵癣。該層向高層屏蔽了下層數(shù)據(jù)通信的細(xì)節(jié)辕翰,使高層用戶看到的只是在兩個(gè)傳輸實(shí)體間的一條主機(jī)到主機(jī)的、可由用戶控制和設(shè)定的狈谊、可靠的數(shù)據(jù)通路喜命。我們通常說(shuō)的,TCP UDP 就是在這一層河劝。端口號(hào)既是這里的“端”壁榕。
傳輸層就相當(dāng)于公司中的負(fù)責(zé)快遞郵件收發(fā)的人,公司自己的投遞員赎瞎,他們負(fù)責(zé)將上一層的要寄出的資料投遞到快遞公司或郵局牌里。
5 網(wǎng)絡(luò)層 NetWork Layer
本層通過(guò)IP 尋址來(lái)建立兩個(gè)節(jié)點(diǎn)之間的連接,為源端的運(yùn)輸層送來(lái)的分組务甥,選擇合適的路由和交換節(jié)點(diǎn)牡辽,正確無(wú)誤地按照地址傳送給目的端的運(yùn)輸層。就是通常說(shuō)的IP 層敞临。這一層就是我們經(jīng)常說(shuō)的IP 協(xié)議層态辛。IP 協(xié)議是Internet 的基礎(chǔ)。網(wǎng)絡(luò)層就相當(dāng)于快遞公司龐大的快遞網(wǎng)絡(luò)哟绊,全國(guó)不同的集散中心因妙,比如說(shuō)痰憎,從深圳發(fā)往北京的順豐快遞(陸運(yùn)為例啊,空運(yùn)好像直接就飛到北京了)攀涵,首先要到順豐的深圳集散中心铣耘,從深圳集散中心再送到武漢集散中心,從武漢集散中心再寄到北京順義集散中心以故。這個(gè)每個(gè)集散中心蜗细,就相當(dāng)于網(wǎng)絡(luò)中的一個(gè)IP 節(jié)點(diǎn)。
屬于本層的協(xié)議 IP IPX RIP OSPF怒详。
6 數(shù)據(jù)鏈路層 Data Link Layer
將比特組合成字節(jié),再將字節(jié)組合成幀,使用鏈路層地址 (以太網(wǎng)使用MAC地址)來(lái)訪問(wèn)介質(zhì),并進(jìn)行差錯(cuò)檢測(cè)炉媒。數(shù)據(jù)鏈路層又分為2 個(gè)子層:邏輯鏈路控制子層(LLC)和媒體訪問(wèn)控制子層(MAC)。MAC 子層處理CSMA/CD 算法昆烁、數(shù)據(jù)出錯(cuò)校驗(yàn)吊骤、成幀等;LLC 子層定義了一些字段使上次協(xié)議能共享數(shù)據(jù)鏈路層静尼。 在實(shí)際使用中白粉,LLC 子層并非必需的。
屬于本層定義的規(guī)范有 SDLC HDLC PPP STP 幀中級(jí)等鼠渺,MAC 就是屬于本層鸭巴。
7 物理層 Physical Layer
實(shí)際最終信號(hào)的傳輸是通過(guò)物理層實(shí)現(xiàn)的。通過(guò)物理介質(zhì)傳輸比特流拦盹。規(guī)定了電平鹃祖、速度和電纜針腳。常用設(shè)備有(各種物理設(shè)備)集線器普舆、中繼器恬口、調(diào)制解調(diào)器、網(wǎng)線奔害、雙絞線楷兽、同軸電纜地熄。這些都是物理層的傳輸介質(zhì)华临。快遞寄送過(guò)程中的交通工具端考,就相當(dāng)于我們的物理層雅潭,例如汽車(chē),火車(chē)却特,飛機(jī)扶供,船。
屬于本層定義的規(guī)范有 RJ-45 RJ-11 等裂明。
1.4 通信特點(diǎn):對(duì)等通信
對(duì)等通信椿浓,為了使數(shù)據(jù)分組從源傳送到目的地,源端OSI 模型的每一層都必須與目的端的對(duì)等層進(jìn)行通信,這種通信方式稱為對(duì)等層通信扳碍。在每一層通信過(guò)程中提岔,使用本層自己協(xié)議進(jìn)行通信。
1.5 了解OSI 參考模型中的數(shù)據(jù)傳輸
2 掌握TCP/IP 協(xié)議參考模型
由于ISO 指定的OSI 參考模型過(guò)于龐大笋敞、復(fù)雜碱蒙、在實(shí)現(xiàn)制作過(guò)程造成了很多困難,從而招致了很多的批評(píng)夯巷。實(shí)際實(shí)現(xiàn)中赛惩,TCP/IP 協(xié)議獲得了廣泛的應(yīng)用。目前主流的操作系統(tǒng)網(wǎng)絡(luò)協(xié)議基本上都采用了TCP/IP 協(xié)議趁餐。
TCP/IP 五層模型
TCP/IP 五層協(xié)議和OSI 的七層協(xié)議對(duì)應(yīng)關(guān)系如下喷兼。
在每一層都工作著不同的設(shè)備,比如我們常用的交換機(jī)就工作在數(shù)據(jù)鏈路層的后雷,一般的路由器是工作在網(wǎng)絡(luò)層的褒搔。
在每一層實(shí)現(xiàn)的協(xié)議也各不同,即每一層的服務(wù)也不同.下圖列出了每層主要的協(xié)議喷面。其中每層中具體的協(xié)議星瘾,我會(huì)在后面的逐一學(xué)習(xí)。
3 掌握TCP/IP 協(xié)議建立連接3次握手的過(guò)程
3.1 IP 協(xié)議是TCP/IP 協(xié)議中最重要的協(xié)議
它為T(mén)CP UDP ICMP等協(xié)議提供傳輸?shù)耐肪灞病P 層主要目的是提供子網(wǎng)互聯(lián)琳状,形成較大的網(wǎng)絡(luò),使不同的子網(wǎng)之間能傳輸數(shù)據(jù)盒齿。
IP 層主要的作用
-1念逞、數(shù)據(jù)傳送 將數(shù)據(jù)從一個(gè)主機(jī)傳輸?shù)搅硪粋€(gè)主機(jī)
-2、尋址 根據(jù)子網(wǎng)劃分和IP 地址边翁,發(fā)現(xiàn)正確的目的主機(jī)地址
-3翎承、路由選擇 選擇數(shù)據(jù)在互聯(lián)網(wǎng)上的傳送路徑。
-4符匾、數(shù)據(jù)保溫的分段 將數(shù)據(jù)進(jìn)行分段發(fā)送和接收兵組裝叨咖。
3.2 TCP 傳輸控制協(xié)議 Transmission Control Protocol 簡(jiǎn)稱
TCP 協(xié)議,它在原有IP 協(xié)議的基礎(chǔ)上啊胶,增加了確認(rèn)重發(fā)甸各、滑動(dòng)窗口和復(fù)用,提供一種可靠的面向連接的字節(jié)流的服務(wù)焰坪。最大的特點(diǎn)就是可靠性趣倾。
3.3 TCP 數(shù)據(jù)報(bào)文格式
1 源端口號(hào)和目的端口號(hào)
這個(gè)字段均為16 位的長(zhǎng)度,表示發(fā)送端和接收端的端口某饰,用于確認(rèn)發(fā)送端和接收端的應(yīng)用程序儒恋。發(fā)送端的IP地址和斷就好及接收端的IP 地址和端口號(hào)可以確認(rèn)一個(gè)在Internet上的TCP 連接善绎。
2 序列號(hào)
序列號(hào)是一個(gè)32 位長(zhǎng)度的字段,表示分配給TCP 包的編號(hào)诫尽。序列號(hào)用來(lái)表示應(yīng)用程序從TCP 的發(fā)送端到接收端發(fā)送的字節(jié)流涂邀。當(dāng)TCP 開(kāi)始連接的時(shí)候發(fā)哦少年宮一個(gè)序列號(hào)給接收端,連接成功后箱锐,這個(gè)序列號(hào)作為初始的序列號(hào) ISN(Initial SequenceNumber)比勉。建立連接成功后發(fā)送的第一個(gè)字節(jié)的序列號(hào)為ISN+1,之后發(fā)送數(shù)據(jù)ISN 將按照字節(jié)的大小進(jìn)行遞增驹止。序列號(hào)是一個(gè)32 位的無(wú)符號(hào)數(shù)浩聋,到達(dá)2 的32 此房減1 之后從0 開(kāi)始。
3 確認(rèn)號(hào)
發(fā)送方對(duì)發(fā)送的首字節(jié)進(jìn)行了編號(hào)臊恋,當(dāng)接收方成功接收后衣洁,發(fā)送回接收成功的序列號(hào)+1 表示確認(rèn),發(fā)送方再次發(fā)送的時(shí)候從確認(rèn)號(hào)開(kāi)始抖仅。
4 頭部長(zhǎng)度
表示TCP 頭部的長(zhǎng)度坊夫,由于TCP 的數(shù)據(jù)有可選字段,頭部長(zhǎng)度用于表示頭部的長(zhǎng)度撤卢。此字段的長(zhǎng)度為4 位环凿,表示的是以32位長(zhǎng)的數(shù)據(jù)。因此TCP 的頭部最長(zhǎng)為60 個(gè)字節(jié)放吩,如果沒(méi)有可選字段通常為20 個(gè)字節(jié)智听。
5 保留位
6 位長(zhǎng)度沒(méi)有使用,必須設(shè)為0.
6 控制位
6b渡紫,用作控制位到推,可以多個(gè)位一起設(shè)置。
表1: TCP 控制為的含義
字段 | 含義 |
---|---|
URG | 緊急指針字段 |
ACK | 表示確認(rèn)號(hào)有效 |
PSH | 表示接收方需要盡快將此數(shù)據(jù)交給應(yīng)用層 |
RST | 重新連接 |
SYN | 用于發(fā)起一個(gè)TCP 鏈接 |
FIN | 用于表示將要斷開(kāi)TCP 連接 |