中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
TCP/IP圖解

1.網(wǎng)絡(luò)基礎(chǔ)知識

1.1 計(jì)算機(jī)的發(fā)展史

計(jì)算機(jī)發(fā)展大致經(jīng)過這幾個時代,一開始計(jì)算機(jī)只是用作大型運(yùn)算,后來發(fā)展為普通民用的計(jì)算機(jī)。早期的計(jì)算很笨重,處理速度也慢,后來經(jīng)過人們的改良有了以下幾個階段

  • 批處理
    就是將指令打包,一次性讓計(jì)算機(jī)處理一批指令,而不是一條條的執(zhí)行,大大地提高了效率。
  • 分時系統(tǒng)
    雖然批處理提高了效率,但是每次只有一個程序在運(yùn)行,其他程序只能等待。因此出現(xiàn)了分時系統(tǒng)。它讓每個程序都能在一段時間內(nèi)執(zhí)行,可以讓多個程序同時執(zhí)行。
  • 通信時代
    計(jì)算機(jī)再也不是單機(jī)版了。人與人可以互相交流通信,以互聯(lián)網(wǎng)為中心。不同的計(jì)算機(jī)連接起來,也讓分布式系統(tǒng)成為可能~

1.2 網(wǎng)絡(luò)分層

  • 我們熟知的網(wǎng)絡(luò)分層模式的七層模式OSI模型。分層是為了讓每個層可以獨(dú)立應(yīng)用,即使某些層發(fā)聲變化,也不會涉及到整個系統(tǒng)。在程序設(shè)計(jì)上有個專門的名詞叫做解耦非常實(shí)用解釋為啥要使用分層。
  • OSI模型:從上到下分為:應(yīng)用層、表示層、會話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層,物理層

1.3 電話交換與分組交換

網(wǎng)絡(luò)通信的方式有兩種:電話交換和分組交換

  • 電話交換。以一個交換機(jī)為中心,兩臺主機(jī)互相通信,這個時候有一個弊端。如果這個交換機(jī)被兩個主機(jī)占用的話,那么其他主機(jī)就無法使用通信,只能一直等待,直到之前通信的兩臺主機(jī)通信完畢
  • 分組交換。將要發(fā)送的數(shù)據(jù)包分成多個數(shù)據(jù)包,按照一定的順序之后分別發(fā)送,提高了發(fā)送效率。每一個數(shù)據(jù)包都有自己的數(shù)據(jù),目標(biāo)地址和源地址。因此不要擔(dān)心包會找不到路~


    image.png

1.4 根據(jù)連接的類型分類

網(wǎng)絡(luò)分為兩類:

  • 面向連接的:需要建立連接通道
  • 不面向連接的:直接發(fā)出去就完事了

1.5 根據(jù)接受端數(shù)量分類

網(wǎng)絡(luò)通信中,根據(jù)目標(biāo)地址的個數(shù)及其后續(xù)的行為對通信進(jìn)行分類。如廣播,多播

  • 單播
    一對一
  • 廣播
    一臺主機(jī)發(fā)到所有主機(jī)
  • 多播
    一臺主機(jī)發(fā)到指定的多個主機(jī)(典型例子:遠(yuǎn)程會議)
  • 任播
    指在特定的多臺主機(jī)中選出一臺作為接受端的一種通信方式。

1.6 地址

TCP/IP通信中使用MAC地址、IP地址、端口號等信息作為地址標(biāo)識。地址具有以下特性

  • 唯一性
    指的是發(fā)送端和接受端的地址是唯一的。在上面的接收端廣播類型中。我們可以舉個例子:將廣播的對象都當(dāng)做1年1班的同學(xué),發(fā)送端是老師。老師要找一年一班的學(xué)生(接收端地址),這就具有唯一性了
  • 地址的層次性
    在網(wǎng)絡(luò)世界中如果想找到自己的目標(biāo)地址還是很麻煩的,雖然有唯一性,但是一個個去找效率會很低。因此需要分層去找。比如說找A-b-1的門牌號。我們只需要到A座,然后找到B室,然后找到位置為1的那個就好了。
    網(wǎng)絡(luò)通信上利用IP地址作為門牌號。IP地址有網(wǎng)絡(luò)號,主機(jī)號組成。如果網(wǎng)絡(luò)號相同,說明是同一個網(wǎng)段,然后再在那個網(wǎng)段中找就好了。

1.7 網(wǎng)絡(luò)的構(gòu)成要素

image.png

1.7.1 數(shù)據(jù)鏈路與通信媒介

計(jì)算機(jī)之間需要通過電纜互相連接。電纜可以根據(jù)數(shù)據(jù)鏈路的不同選擇不同的對應(yīng)的電纜。(像我們平時說的以太網(wǎng),其實(shí)就是指一種數(shù)據(jù)鏈路。其通信媒介有同軸電纜、雙絞線電纜、光纖電纜等等)
ps:

  • 在數(shù)據(jù)傳輸之中,兩個設(shè)備之間數(shù)據(jù)流動的物理速度成為傳輸速率。(單位時間內(nèi)傳輸?shù)臄?shù)據(jù)量有多少)
  • 傳輸效率又稱為帶寬,帶寬越大,網(wǎng)絡(luò)傳輸能力越強(qiáng)
  • 主機(jī)之間實(shí)際的傳輸速率被稱作為吞吐量。其單位與帶寬相同。

1.7.2 網(wǎng)卡

一個硬件設(shè)備,用來連接網(wǎng)絡(luò)

1.7.3 中繼器

將電纜傳過來的電信號或者光信號經(jīng)由中繼器的波形調(diào)整和放大傳給另一個電纜。作用在OSI模型的第一層,物理層面上延長網(wǎng)絡(luò)的設(shè)備。
有多個端口的叫做集線器。每一個端口都是中繼器

1.7.4 網(wǎng)橋/2層交換機(jī)

網(wǎng)橋是在OSI模型上的第二層-數(shù)據(jù)鏈路層上連接兩個網(wǎng)絡(luò)的設(shè)備。將識別數(shù)據(jù)鏈路層中的數(shù)據(jù)幀,并將這些數(shù)據(jù)幀臨時存儲于內(nèi)存,再重新生成信號作為一個全新的幀發(fā)給相連的一個網(wǎng)段
有些網(wǎng)橋能夠判斷是否將數(shù)據(jù)包轉(zhuǎn)發(fā)給相鄰的網(wǎng)段,這種網(wǎng)橋稱為自學(xué)式網(wǎng)橋。
以太網(wǎng)等網(wǎng)絡(luò)中經(jīng)常使用的交換集線器(Hub),現(xiàn)在基本也屬于網(wǎng)橋的一種。交換集線器中連接電纜的每個端口都能提供類似網(wǎng)橋的功能

1.7.5 路由器/3層交換機(jī)

路由器作用于OSI的第3層模型。網(wǎng)絡(luò)層面上連接兩個網(wǎng)絡(luò),并對分組報(bào)文進(jìn)行轉(zhuǎn)發(fā)。根據(jù)IP地址轉(zhuǎn)發(fā)

1.7.6 4~7層交換機(jī)

4-7層交換機(jī)負(fù)責(zé)處理OSI模型中的從傳輸層至應(yīng)用層的數(shù)據(jù)。用TCP/IP分層模型來表述。4~7層交換機(jī)就是以TCP等協(xié)議的傳輸層及其上面的應(yīng)用為基礎(chǔ),分析手法數(shù)據(jù),并對其進(jìn)行特殊處理(可以在這些層中做負(fù)載均衡)。
此外,在網(wǎng)絡(luò)比較擁堵的時候,優(yōu)先處理像語音這種實(shí)時性比較高的時候的需求,放緩處理像郵件等稍有延遲也并無大礙的通信請求。這種處理稱為帶寬控制

1.7.7 網(wǎng)關(guān)

網(wǎng)關(guān)是負(fù)責(zé)將傳輸層到應(yīng)用層的數(shù)據(jù)進(jìn)行轉(zhuǎn)換和轉(zhuǎn)發(fā)的設(shè)備。不僅轉(zhuǎn)發(fā)數(shù)據(jù)還負(fù)責(zé)對數(shù)據(jù)進(jìn)行轉(zhuǎn)換,它通常會使用一個表示層或者應(yīng)用層網(wǎng)關(guān)。在兩個不能進(jìn)行直接通信的協(xié)議之間進(jìn)行翻譯,最終實(shí)現(xiàn)兩者之間的通信。
舉例:
手機(jī)郵件和互聯(lián)網(wǎng)郵件互相轉(zhuǎn)發(fā)。通過郵件網(wǎng)關(guān)翻譯成雙方熟悉的語法語言(協(xié)議)
圖解

image.png

1.8 現(xiàn)代網(wǎng)絡(luò)實(shí)態(tài)

  • 網(wǎng)絡(luò)的構(gòu)成:網(wǎng)絡(luò)的構(gòu)成由核心網(wǎng)絡(luò)和邊緣網(wǎng)絡(luò)構(gòu)成。網(wǎng)絡(luò)中相應(yīng)于高速公路入口的部分稱作“邊緣網(wǎng)絡(luò)”。常用的設(shè)備有路由器和3層交換機(jī)
  • 邊緣網(wǎng)絡(luò):稱為“接入層”、“匯聚層”;常用的設(shè)備是2層交換機(jī)或者3層交換機(jī)
  • 我們平時在家庭或者公司用的是邊緣網(wǎng)絡(luò)(即接入層),通過接入層進(jìn)入邊緣網(wǎng)絡(luò)(由通信公司控制),然后進(jìn)入核心網(wǎng)絡(luò),和全國各各地不同的人互相進(jìn)行網(wǎng)絡(luò)通信
  • 從信息發(fā)布者的角度看網(wǎng)絡(luò):以前我們發(fā)信息是通過自己部署到服務(wù)器,然后將信息發(fā)布?,F(xiàn)在利用數(shù)據(jù)中心。數(shù)據(jù)中心由大型服務(wù)器,存儲和計(jì)算機(jī)網(wǎng)絡(luò)構(gòu)成。
  • 虛擬化和云:我們知道數(shù)據(jù)中心的物理設(shè)備的配置是固定的。要是對每一個站點(diǎn)都分配同樣的資源,這樣是顯然不合理。因此有了虛擬化技術(shù),利用虛擬化技術(shù),根據(jù)使用者的情況動態(tài)調(diào)整必要資源的機(jī)制被人稱為“云”。而且,將虛擬化的系統(tǒng)根據(jù)需要自動地進(jìn)行動態(tài)管理的部分稱作“智能協(xié)調(diào)層”、

2.TCP/IP基礎(chǔ)知識

學(xué)一個東西要知道東西怎么來的,解決什么問題的。TCP/IP的出現(xiàn),是為了實(shí)現(xiàn)一個容災(zāi)性強(qiáng),分布式的網(wǎng)絡(luò)。
TCP/IP也有自己的模型。我們熟悉的四層模型;物理層、網(wǎng)絡(luò)層(IP、ICMP、ARP)、傳輸層(TCP、UDP)、應(yīng)用層(http、stamp、ftp,SSH、TELNET);

3.數(shù)據(jù)鏈路層相關(guān)技術(shù)

3.1 MAC地址

MAC地址用于識別數(shù)據(jù)鏈路中互連的節(jié)點(diǎn)。具有唯一性

3.2 共享介質(zhì)網(wǎng)絡(luò)

共享介質(zhì)網(wǎng)絡(luò)指的是由多個設(shè)備共享一個通信介質(zhì)的一種網(wǎng)絡(luò)。采用半雙工通信,并有必要對介質(zhì)進(jìn)行訪問控制。有兩種方式:

  • 爭用方式:就是搶占式的獲取傳輸數(shù)據(jù)的能力
  • 令牌傳遞方式:會定義一中叫做令牌的特殊報(bào)文。只有獲得報(bào)文的才能發(fā)送數(shù)據(jù)

3.3 非共享介質(zhì)網(wǎng)絡(luò)

網(wǎng)絡(luò)中的每個站通過交換機(jī)直連,由交換機(jī)負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù)幀。這種方式會使計(jì)算機(jī)與交換機(jī)端口之間形成一對一的鏈接,即可實(shí)現(xiàn)全雙工通信。

3.4 全雙工、半雙工

全雙工的意思是既可以接受數(shù)據(jù)也可以發(fā)送數(shù)據(jù),而半雙工就是同一時間只能接受數(shù)據(jù)或者發(fā)送數(shù)據(jù)(類似無線電收發(fā)器,若兩端同時說話,是聽不見對方說話的。)

4.IP協(xié)議

4.1 IP與數(shù)據(jù)鏈路層的關(guān)系

數(shù)據(jù)鏈路層提供直連兩個設(shè)備之間的功能。網(wǎng)絡(luò)層的IP則負(fù)責(zé)在沒有直連的兩個網(wǎng)絡(luò)之間進(jìn)行通信傳輸。IP協(xié)議相當(dāng)于給網(wǎng)絡(luò)提供了行程表;而數(shù)據(jù)鏈路則提供了車票,飛機(jī)票等等。

4.2 IP基礎(chǔ)知識

  • IP地址屬于網(wǎng)絡(luò)層地址
  • 源IP地址到達(dá)目標(biāo)IP地址需要經(jīng)過路由控制
  • IP屬于面向無連接型

4.3 IP地址的定義

IPV4地址由32位正整數(shù)組成。由網(wǎng)絡(luò)號,主機(jī)號組成。網(wǎng)絡(luò)號表示該網(wǎng)絡(luò)處在哪一個網(wǎng)段;主機(jī)號則表示是哪臺機(jī)子。

  • IP地址分為4類。A、B、C、D類
  • 主機(jī)地址全部設(shè)為1,就成為了廣播地址。分為本地廣播、直接廣播。本地廣播就是在本網(wǎng)段就行廣播,直接廣播則會跨網(wǎng)段。
  • IP多播;IP多播用于將包發(fā)送給特定組內(nèi)的所有主機(jī)。多使用D類地址,因此如果從首位開始到第四位是“1110”,就可以認(rèn)為是多播地址。
  • 子網(wǎng)掩碼:子網(wǎng)掩碼是一種識別碼,通過這種識別碼可以識別細(xì)分出比A、B、C類地址更小粒度的網(wǎng)路。實(shí)際上是將這三類地址的主機(jī)地址部分用作子網(wǎng)地址,將原網(wǎng)絡(luò)分為多個物理地址網(wǎng)絡(luò)的一種機(jī)制。(網(wǎng)絡(luò)地址部分全部為1,對應(yīng)IP地址的主機(jī)號標(biāo)識的部分全部為0)

4.4 路由控制

實(shí)現(xiàn)IP通信的主機(jī)和路由器都必須持有一張路由控制表,它指明了目標(biāo)地址要經(jīng)過的哪些路由,哪些主機(jī)。

4.5 IP報(bào)文的分片和重組

  • 有時候由于數(shù)據(jù)量大,需要將數(shù)據(jù)進(jìn)行分片發(fā)送,分片由路由器執(zhí)行,重組則交給了目標(biāo)主機(jī)。(因?yàn)榫退懵酚善鬟M(jìn)行了重組,可能下次發(fā)送的時候又要分片,這樣做只會增加負(fù)擔(dān),因此規(guī)定重組需要目標(biāo)主機(jī)去做了)
  • 路徑MTU(數(shù)據(jù)鏈路的最大傳輸單元)發(fā)現(xiàn):指從發(fā)送端主機(jī)到接收端主機(jī)之間不需要分片時最大MTU大小。即最小MTU!有大小限制,如果大小超過MTU,則讓發(fā)送端進(jìn)行分片傳輸,每次分片的最大MTU就是路徑MTU;由ICMP來通知下一次MTU的大小

4.6 IPV6

IPV6由128位組成。是為了根本解決IPV4地址耗盡的問題而被標(biāo)準(zhǔn)化的網(wǎng)際協(xié)議。

5. IP協(xié)議相關(guān)技術(shù)

5.1 DNS

DNS可以將我們輸入的地址轉(zhuǎn)化為IP地址。由于IP地址并不好記。因此TCP/IP世界從一開始就已經(jīng)有了一個叫做主機(jī)碼的東西。當(dāng)我們進(jìn)行網(wǎng)絡(luò)通信的時候,系統(tǒng)自動將主機(jī)名轉(zhuǎn)換成具體的IP地址。為了實(shí)現(xiàn)這個功能,通常會利用一個叫做host的數(shù)據(jù)文件。DNS可以說是一個維護(hù)了域名和IP地址映射關(guān)系的一個數(shù)據(jù)庫

5.2 域名的構(gòu)成

DNS的域名每一個域名都有自己服務(wù)器,他們呈樹形結(jié)構(gòu)。其中根服務(wù)器擁有所有的域名,我們訪問的時候首先會去根服務(wù)器記性查詢,根域名服務(wù)器會將想查詢的地址返回,讓你去對應(yīng)的域名服務(wù)器找到對應(yīng)的域名然后轉(zhuǎn)成IP地址。(如果找不到就會遞歸到上層服務(wù)器然后遍歷)

5.3 ARP

ARP是一種解決地址問題的協(xié)議。用來映射IP地址和MAC地址之間的關(guān)系。它的工作原理是:發(fā)送一個ARP一個請求,然后會廣播同一個鏈路層的所有主機(jī)。如果是目標(biāo)IP地址與其中的一個主機(jī)相同,那么這個主機(jī)就會返回一個ARP響應(yīng),同時帶上自己的MAC地址給ARP請求。(為了避免發(fā)送多次請求,一般會將這種映射關(guān)系緩存起來,可以放在接收主機(jī)端。)

5.4 為什么同時需要IP地址和MAC地址

  • 只有MAC地址的話。比如A向B發(fā)請求,A知道B的MAC地址,但是如果中間隔著一個C。還是無法訪問到B
  • 僅僅靠MAC地址,無法獲得機(jī)器對應(yīng)的位置。
  • IP地址就像門牌號,MAC地址就是你想找到的人

5.5 RARP

RARP將MAC地址定位IP地址的一種協(xié)議。例如將打印機(jī)服務(wù)等小型嵌入式設(shè)備接入到網(wǎng)絡(luò)就會經(jīng)常用到。

5.6 ICMP

ICMP是一種診斷網(wǎng)絡(luò)是否正常工作,以及遇到異常的時候進(jìn)行問題診斷的協(xié)議。

5.7 DHCP

動態(tài)地為每一臺主機(jī)設(shè)置IP地址。我們會先準(zhǔn)備一個DHCP服務(wù)器,當(dāng)有新的物理機(jī)連進(jìn)來的時候,就會動態(tài)地為這臺電腦進(jìn)行IP分配。生活中,我們的DHCP是路由器,因?yàn)橐粋€家庭的話主機(jī)數(shù)不會太多。但是如果是大型網(wǎng)絡(luò)的話,就不可以用路由器了。一般采用DHCP中繼代理

5.8NAT

NAT(NetWork Address Translator),從單詞的翻譯來說就是網(wǎng)絡(luò)地址的翻譯者。就是將本地網(wǎng)絡(luò)中使用私有地址,在連接互聯(lián)網(wǎng)的時候轉(zhuǎn)而使用全局IP地址的技術(shù)。由此可以實(shí)現(xiàn),一個全局IP地址和多個主機(jī)通信。
它的工作機(jī)制是。訪問外網(wǎng)的時候,私網(wǎng)會將自己的IP地址替換成全局IP地址(源地址),目標(biāo)地址不變

5.9 NAT-PT(NAPT-PT)

NAT-PT技術(shù)是將IPV6的首部轉(zhuǎn)換成IPV4的首部的一種技術(shù),用于兼容IPV4和IPV6

5.10 IP隧道

IP隧道是一種兼容IPV4和IPV6之間通信的一種管道。假設(shè)A(6),B(4),C(6)。中間有一個4,A,C想要通信的話,就需要一個隧道,在通訊的時候加上IPV6的首部。

6.傳輸層

傳輸層有兩大協(xié)議:TCP、UDP。一般通信的模式是客戶端-服務(wù)端模式,以端口的形式區(qū)別應(yīng)用。

  • TCP:面向連接的,可靠的流協(xié)議。(流,可以想象中排水道中的水)。有“順序控制”或者“重發(fā)機(jī)制”,此外還具有“流量控制”(發(fā)多發(fā)少的控制)、“擁塞控制”、提供網(wǎng)絡(luò)利用率
  • UPD:不可靠。不保證消息一定達(dá)到
  • socket:應(yīng)用在使用TCP或UDP的時候,會用到操作系統(tǒng)的提供的類庫。套接字的API是操作系統(tǒng)層面實(shí)現(xiàn)網(wǎng)絡(luò)編程的一種方式??梢栽O(shè)置對端的IP地址、端口號、并實(shí)現(xiàn)數(shù)據(jù)發(fā)送和接收。這個一般不用我們寫,一般操作系統(tǒng)內(nèi)核已經(jīng)幫我們實(shí)現(xiàn)了。

6.1 UDP

  • 特點(diǎn):不可靠,面向無連接
  • 目的:包總量較少的通信、視頻,音頻等多媒體通信、限定于LAN等特定網(wǎng)絡(luò)中的應(yīng)用通信、廣播通信

6.2 TCP

如果想要實(shí)現(xiàn)可靠的連接,就要設(shè)想在惡劣環(huán)境下的一系列問題;比如說:數(shù)據(jù)的破壞、丟包、重復(fù)、以及分片順序混亂等問題。
TCP通過校驗(yàn)和、序列號、確認(rèn)應(yīng)答、重發(fā)控制、連接管理、以及窗口控制解決等實(shí)現(xiàn)可靠性傳輸。

6.2.1 通過序列號和確認(rèn)與應(yīng)答提高可靠性

A->B:此時B會發(fā)一個ACK消息告訴A,收到請求了。這樣就能確保A的數(shù)據(jù)已經(jīng)發(fā)送到B了,TCP利用確認(rèn)應(yīng)答機(jī)制實(shí)現(xiàn)了可靠的數(shù)據(jù)傳輸;如果一段時間沒有收到ACK,那么A就會嘗試重發(fā)。。

  • 帶來的問題:
    源主機(jī)如果某些原因沒有收到目標(biāo)主機(jī)的ACK。那么就會重發(fā),但是由于發(fā)的是重復(fù)的包,目標(biāo)主機(jī)為了對應(yīng)用層提供的可靠的傳輸,就會將整個重復(fù)的包丟棄。
  • 解決思路:
    引入一種機(jī)制,識別是否已經(jīng)接收數(shù)據(jù),又能夠判斷是否需要接收。
  • 序列號實(shí)現(xiàn):
    序列號可以解決確認(rèn)應(yīng)答處理,重復(fù)控制以及重復(fù)控制等功能。序列號的工作機(jī)制:為每一個字節(jié)都標(biāo)上號碼。接收端查詢接收數(shù)據(jù)TCP首部中的序列號和數(shù)據(jù)的長度,將自己下一步要接收的序號作為確認(rèn)應(yīng)答返送回去。這樣就算有重復(fù)的包,但是它們的序號是不同的,接收端也不會將包丟掉。

6.2.2 重發(fā)超時如何計(jì)算

TCP要求不論處在何種網(wǎng)絡(luò)環(huán)境下都要提供高性能通信,并且網(wǎng)絡(luò)如何擁堵,都要保持可靠連接這個特性。為此,每次發(fā)包時都會計(jì)算返回時間以及其偏差。將往返時間 +偏差。重發(fā)超時就是比這個要稍大一點(diǎn)的值。
重發(fā)以后如果還沒有收到應(yīng)答,就會繼續(xù)發(fā)送。此時等待應(yīng)答的時候會以2倍,4倍的指數(shù)函數(shù)延長。達(dá)到一定次數(shù)以后,如果沒有任何確認(rèn)應(yīng)答返回,就會判斷為網(wǎng)絡(luò)或者對端主機(jī)異常。

6.2.3 連接管理

TCP建立數(shù)據(jù)通信之前會發(fā)一個SYN包作為建立連接的請求等待確認(rèn)認(rèn)答;在通信結(jié)束的時候會進(jìn)行斷開連接的處理(FIN包)

6.2.4 TCP以段為單位發(fā)送數(shù)據(jù)

在TCP建立連接的時候,建立的過程中會確認(rèn)發(fā)送數(shù)據(jù)包的最大消息長度(MSS);兩端的主機(jī)在建立請求的時候,會在TCP首部中寫入MSS選項(xiàng),告訴對方自己的接口所容納的MSS大小,然后取兩者較小的值投入使用

6.2.5 利用窗口控制提高速度

TCP以一個段為單位,每發(fā)一個段進(jìn)行一次確認(rèn)應(yīng)答的處理。這樣的傳輸方式有一個缺點(diǎn),那就是包的往返時間越長,通信性能越低(因?yàn)樾枰獙Ψ降膽?yīng)答,才可以繼續(xù)發(fā)送。)
為了解決這個問題,引入了窗口的概念。窗口是指可以發(fā)送一段序號的數(shù)據(jù)。比如說(1~4000)。窗口大小指的無需等待確認(rèn)應(yīng)答而可以繼續(xù)發(fā)送數(shù)據(jù)的最大值。這個機(jī)制使用了大量的緩沖區(qū)(緩存),將沒有確認(rèn)應(yīng)答的全部放進(jìn)緩存區(qū)里。
窗口控制與重發(fā)控制
如果在傳輸過程中出現(xiàn)段丟失

  • 確認(rèn)應(yīng)答沒有返回:數(shù)據(jù)已經(jīng)到發(fā)出去了,無需進(jìn)行重發(fā)。比如確認(rèn)號為1001丟失,但是2001返回來了。默認(rèn)就是發(fā)送成功了。
  • 重發(fā)機(jī)制的觸發(fā)條件:在窗口比較大,又出現(xiàn)報(bào)文段丟失的情況下,同一個序號的確認(rèn)應(yīng)答將會被重復(fù)不斷地返回。而發(fā)送端主機(jī)如果連續(xù)3次收到同一個確認(rèn)應(yīng)答,就將會重發(fā)這一段數(shù)據(jù)。這種機(jī)制被稱為高速重發(fā)控制”。
  • 發(fā)送端報(bào)文丟失:發(fā)送端報(bào)文丟失。接收端如果收到一個自己應(yīng)該接收的序號以外的數(shù)據(jù)時,會針對當(dāng)前為止收到的數(shù)據(jù)返回確認(rèn)應(yīng)答。(比如說接收端的報(bào)文段應(yīng)該是1001-2000,但是由于報(bào)文丟失,發(fā)送了3000-4000的報(bào)文段。然后ACK了這一段報(bào)文,這樣默認(rèn)就會ACK2001。這樣不同的發(fā)送端,就會由兩個相同的ACK報(bào)文段進(jìn)行應(yīng)答)。

6.2.6 流控制

發(fā)送端會根據(jù)自己的實(shí)際情況發(fā)送數(shù)據(jù)。但是,接收端可能收到的是一個毫無關(guān)系的數(shù)據(jù)包,又可能會在處理其他問題上花費(fèi)一定的時間。甚至在高負(fù)荷情況下無法接收本應(yīng)該接收的數(shù)據(jù)。這樣又會觸發(fā)重發(fā)機(jī)制。從而導(dǎo)致網(wǎng)絡(luò)流量浪費(fèi)。
因此TCP提供了一種機(jī)制可以讓發(fā)送端根據(jù)接收端的實(shí)際接收能力控制發(fā)送的數(shù)據(jù)量。這就是流控制
接收端會告訴發(fā)送端自己的可以接收的數(shù)據(jù)量大小。為了防止無法通信的問題出現(xiàn),發(fā)送端主機(jī)會時不時的發(fā)送一個叫做窗口探測的數(shù)據(jù)段,來獲取最新的窗口大小信息

6.2.7 擁塞控制

TCP為了防止網(wǎng)絡(luò)癱瘓,在通信一開始的時候會通過一個叫做慢啟動的算法得出數(shù)值,對發(fā)送數(shù)據(jù)量進(jìn)行控制。其工作機(jī)制如下:

  • 定義一個擁塞控制窗口,在慢啟動的時候設(shè)置這個窗口的值為1.之前每接收到一次ACK,這個窗口會+1
  • 在發(fā)送數(shù)據(jù)包的時候,將這個值和接收端主機(jī)通知的窗口大小做比較,然后取最小的那個值,發(fā)送比其還要小的數(shù)據(jù)量。
  • 隨著包的發(fā)送,包會以1、2、4等指數(shù)函數(shù)的增長,擁塞狀況激增也會導(dǎo)致網(wǎng)絡(luò)擁塞的發(fā)生。因此引入慢啟動閥值。(數(shù)值計(jì)算為:1個數(shù)據(jù)段的字節(jié)數(shù)/擁塞控制窗口(字節(jié)) * 1個數(shù)據(jù)段的字節(jié)數(shù);擁塞窗口的小會呈直線上升的趨勢。)

6.2.8 提高網(wǎng)絡(luò)利用率的規(guī)范

其實(shí)可以從兩個方面去想:

  • 發(fā)送端:少發(fā)點(diǎn)(Nagle算法)
  • 接收端:別那么快應(yīng)答,這樣也會一定程度上減少發(fā)送端的發(fā)送速度。(延遲確認(rèn))
  • 捎帶應(yīng)答:指在同一個TCP包中既發(fā)送數(shù)據(jù)又發(fā)送確認(rèn)應(yīng)答的一種機(jī)制。(例如電子郵件中協(xié)議的SMTP或者POP)

7.應(yīng)用層

和我們開發(fā)Web項(xiàng)目比較相關(guān)聯(lián)的知識點(diǎn)有以下。

7.1 WWW

WWW定義了三個重要的概念,分貝時訪問手段與位置(URI)、信息的表現(xiàn)形式(Html)、以及信息轉(zhuǎn)發(fā)(Http)。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
TCP字節(jié)流和UDP數(shù)據(jù)報(bào)區(qū)別
計(jì)算機(jī)網(wǎng)絡(luò)試題庫含答案(個人整理打印版)
 網(wǎng)絡(luò)層、傳輸層學(xué)習(xí)(TCP/IP協(xié)議)
TCP協(xié)議不為人知的那些事
一篇文章帶你熟悉 TCP/IP 協(xié)議(網(wǎng)絡(luò)協(xié)議篇二)
第 1 章 TCP/IP 概述
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服