網(wǎng)上有很多關(guān)于pos機(jī)cdma網(wǎng)線,前端需要了解的計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)的知識(shí),也有很多人為大家解答關(guān)于pos機(jī)cdma網(wǎng)線的問題,今天pos機(jī)之家(www.rcqwhg.com)為大家整理了關(guān)于這方面的知識(shí),讓我們一起來看下吧!
本文目錄一覽:
pos機(jī)cdma網(wǎng)線
本文主要目的也是為了非科班前端補(bǔ)充計(jì)算機(jī)科班基礎(chǔ)知識(shí),比如你要做node開發(fā),不熟悉數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸?shù)脑挘斫夂芏郃PI會(huì)比較疑惑,那接下來,來看看這篇為你精心準(zhǔn)備的文章吧!
這些內(nèi)容其實(shí)比較枯燥,但我采取圖文并茂的形式,并且對(duì)于不重要的知識(shí)會(huì)標(biāo)注,盡量減少閱讀的枯燥感。啥也不說了,喝口水,開擼!
1、計(jì)算機(jī)網(wǎng)絡(luò)概念(簡(jiǎn)單掃一眼即可)計(jì)算機(jī)網(wǎng)絡(luò):是一個(gè)將分散的、具有獨(dú)立功能的計(jì)算機(jī)系統(tǒng),通過通信設(shè)備與線路連接起來,由功能完善的軟件實(shí)現(xiàn)資源共享和信息傳遞的系統(tǒng)。
這里需要注意的是,按分布范圍,計(jì)算機(jī)網(wǎng)絡(luò)里有局域網(wǎng)LAN和廣域網(wǎng)WAN, 其中局域網(wǎng)的代表以太網(wǎng),以及這兩種網(wǎng)絡(luò)最重要的區(qū)分點(diǎn),局域網(wǎng)基于廣播技術(shù),廣域網(wǎng)基于分組交換技術(shù)。(這些概念聽一下就行,后面會(huì)詳細(xì)介紹,因?yàn)槔斫鈴V播和分組交換技術(shù),大體上就理解了局域網(wǎng)和廣域網(wǎng))
2、衡量計(jì)算機(jī)網(wǎng)絡(luò)的性能的指標(biāo)這些內(nèi)容主要是為了學(xué)習(xí)后面具體的協(xié)議,以及分析這些協(xié)議的報(bào)文時(shí),需要掌握的基本概念。
2.1 速率速率就是數(shù)據(jù)傳輸(數(shù)據(jù)是指0和1)的速率,比如你用迅雷下載,1兆每秒,來衡量目前數(shù)據(jù)傳輸?shù)目炻K怯?jì)算機(jī)網(wǎng)絡(luò)中最重要的一個(gè)性能指標(biāo)。
2.2 帶寬在計(jì)算機(jī)網(wǎng)絡(luò)中,網(wǎng)絡(luò)帶寬是指在單位時(shí)間(一般指的是1秒鐘)內(nèi)能傳輸?shù)臄?shù)據(jù)量,比如說你家的電信網(wǎng)絡(luò)是100兆比特,意思是,一秒內(nèi)最大的傳輸速率是100兆比特。
2.3 吞吐量吞吐量表示在單位時(shí)間內(nèi)通過某個(gè)網(wǎng)絡(luò)(或信道、接口)的數(shù)據(jù)量。
以上三點(diǎn),我們舉個(gè)案例
一條路每秒最多能過100輛車(寬帶就相當(dāng)于100輛/秒)。而并不是每秒都會(huì)有100輛車過,假如第一秒有0輛,第二秒有10輛...,(但是最多不能超過100輛)。所以有第1秒0輛/秒,第2秒10輛/秒,第3秒30輛/秒,這不能說帶寬多少吧,于是就用吞吐量表示具體時(shí)間通過的量有多少(也有可能等于帶寬的量)。由此可知帶寬是說的是最大值速率,吞吐量說的是某時(shí)刻速率。但吞吐量不能超過最大速率。2.4 時(shí)延時(shí)延是指數(shù)據(jù)(報(bào)文/分組/比特流)從網(wǎng)絡(luò)(或鏈路)的一端傳送到另一端所需的時(shí)間。單位是s。 時(shí)延分一下幾種:
(1)發(fā)送時(shí)延
就是說我跟你說話,從我開始說,到說話結(jié)束這段時(shí)間,就是發(fā)送時(shí)延。
(2)傳播時(shí)延
如gif圖所示,信道上第一個(gè)比特開始,到最后一個(gè)比特達(dá)到主機(jī)接口需要的時(shí)間就是傳播時(shí)延。
(3)排隊(duì)時(shí)延
分組在經(jīng)過網(wǎng)絡(luò)傳輸時(shí),要經(jīng)過很多的路由器。但分組在進(jìn)入路由器后要先在輸入隊(duì)列中排隊(duì)等待處理。在路由器確定了轉(zhuǎn)發(fā)接口后,還要在輸出隊(duì)列中排隊(duì)等待轉(zhuǎn)發(fā),這就產(chǎn)生了排隊(duì)時(shí)延。排隊(duì)時(shí)延的長(zhǎng)短往往取決于網(wǎng)絡(luò)當(dāng)時(shí)的通信量,當(dāng)網(wǎng)絡(luò)的通信量很大時(shí)會(huì)發(fā)生排隊(duì)溢出,是分組丟失。(4)處理時(shí)延
路由器或主機(jī)在收到數(shù)據(jù)包時(shí),要花費(fèi)一定時(shí)間進(jìn)行處理,例如分析數(shù)據(jù)包的首部、進(jìn)行首部差錯(cuò)檢驗(yàn),查找路由表為數(shù)據(jù)包選定準(zhǔn)發(fā)接口,這就產(chǎn)生了處理時(shí)延。
(5)往返時(shí)間(RTT)
在計(jì)算機(jī)網(wǎng)絡(luò)中,往返時(shí)間也是一個(gè)重要的性能指標(biāo),它表示從發(fā)送方發(fā)送數(shù)據(jù)開始,到發(fā)送方收到來自接收方的確認(rèn)(接受方收到數(shù)據(jù)后便立即發(fā)送確認(rèn))總共經(jīng)歷的時(shí)間
(6)時(shí)延帶寬積
是指?jìng)鞑r(shí)延乘以帶寬
3、正文開始!OSI參考模型OSI參考模型是網(wǎng)絡(luò)互連的七層框架, 這里不詳細(xì)介紹了,每一層的具體內(nèi)容會(huì)在后面介紹,這里只需要有一個(gè)初步的印象。
如下圖所示,1,2,3層主要是是物理鏈路組成的,比如光纖,路由器,集線器,主要負(fù)責(zé)的是數(shù)據(jù)通信。5,6,7層是軟件控制的,比如http協(xié)議,是一種軟件層面控制的協(xié)議,主要負(fù)責(zé)處理傳輸來的數(shù)據(jù)。
4、物理層4.1 物理層有啥用?對(duì)于物理層,有人會(huì)說,這不就是網(wǎng)線嗎,比如家里連接路由器的網(wǎng)線,電線桿上的光纖?其實(shí)不然,物理層更多的是規(guī)定一種標(biāo)準(zhǔn),他并不管物理介質(zhì)具體是什么,比如電線桿上是光纖還是雙絞線,只要你能按物理層規(guī)定的標(biāo)準(zhǔn)傳輸數(shù)據(jù)就行。
那物理層到底有哪些主要任務(wù)呢?
比如說,規(guī)定了電氣特性,信號(hào)的電平用+10V - +15V表示二進(jìn)制的0,用-10V - -15V表示二進(jìn)制的1,只要條網(wǎng)線能表示這個(gè)特性,就不管你用什么材料了。當(dāng)然還有其它特性,我們不需要了解,知道物理層是規(guī)定傳輸媒體接口的標(biāo)準(zhǔn)即可。4.2 光纖寬帶上網(wǎng)是以什么樣的形式傳輸數(shù)據(jù)呢?首先計(jì)算機(jī)網(wǎng)卡傳輸出來的數(shù)據(jù)是電信號(hào),光纖傳輸?shù)氖枪饷}沖信號(hào),有光脈沖表示1,無光脈沖表示0。而可見光的頻率大約是10的8次方MHz,因此光纖通信系統(tǒng)的帶寬遠(yuǎn)遠(yuǎn)大于其它各種傳輸媒體的帶寬所以我們計(jì)算機(jī)傳輸數(shù)據(jù)需要先把電信號(hào)轉(zhuǎn)為光信號(hào),然后光信號(hào)快到服務(wù)器的時(shí)候,再把光信號(hào)轉(zhuǎn)為電信號(hào)。4.3 物理層設(shè)備中繼器為什么需要中繼器呢?
因?yàn)樵倬€路上傳輸?shù)男盘?hào)功率會(huì)逐漸衰減,衰減到一定程度時(shí)將造成信號(hào)失真,因此會(huì)導(dǎo)致接收錯(cuò)誤。
中繼器可以對(duì)信號(hào)進(jìn)行再生和還原,增加信號(hào)的傳輸距離。
需要注意的是,中繼器兩端連接不同的網(wǎng)段,而不是子網(wǎng)。什么叫不同的網(wǎng)段呢,需要在網(wǎng)絡(luò)層學(xué)習(xí)IP分類之后才能夠理解這個(gè)概念,這里簡(jiǎn)單的理解為,不同的網(wǎng)段就是不同路由器連接的網(wǎng)絡(luò)。
你能看完上面這么多概念也真是不容易,喝口水,咋們繼續(xù)!
接下來我們進(jìn)入下一層,數(shù)據(jù)鏈路層!
5、數(shù)據(jù)鏈路層5.1 數(shù)據(jù)鏈路層是做什么的呢?我們用一個(gè)小故事來舉例
網(wǎng)絡(luò)層是個(gè)大Boss, 負(fù)責(zé)給數(shù)據(jù)鏈路層這個(gè)小秘書下達(dá)任務(wù),讓小秘把5份文件給B公司,小秘呢,就找送快遞物理層去做這個(gè)事但物理層是個(gè)傻傻,他只知道拿起文件就飛奔到B公司,中間丟沒丟東西也不清楚,所以數(shù)據(jù)鏈路層這個(gè)小秘書必須心里有底,一共送了5個(gè)文件,并且寫到了快遞外層。B公司小秘在拿到傻傻送到的文件時(shí),就要看看到底有沒有文件丟了,如果丟了就要讓傻傻回去重新拿丟到的文件。從這個(gè)故事中,我們可以總結(jié)下數(shù)據(jù)鏈路層主要功能5.2 數(shù)據(jù)鏈路層的主要功能(1) 封裝成幀 數(shù)據(jù)鏈路層并不是無腦轉(zhuǎn)發(fā)boss的信息,她要把文件編號(hào)封裝一下。封裝的網(wǎng)絡(luò)數(shù)據(jù)包,在鏈路層就叫數(shù)據(jù)幀。
(2)透明傳輸
透明傳輸是指不管boss下達(dá)的任何信息,比如文件里有裁掉這個(gè)秘書的信息,秘書都要原原本本的傳輸。幀的數(shù)據(jù)部分可能有跟幀首部完全一樣的字符,這時(shí)候就要采取一定的措施,讓接受方不要被被誤導(dǎo),能讓接收方知道哪些是幀的首部哪些是幀的數(shù)據(jù)。這個(gè)問題有沒有類似js的轉(zhuǎn)義字符的問題,比如字符串<div>到底是指div標(biāo)簽?zāi)兀€是div字符串呢?
(3)差錯(cuò)控制
差錯(cuò)控制是在文件送到B公司小秘書手里的時(shí)候,快遞包上寫著5個(gè)文件,秘書一看只有3個(gè)文件,就會(huì)讓傻傻重新發(fā)送有沒有送到的文件。差錯(cuò)控制的方法有CRC循環(huán)冗余碼,這個(gè)就不細(xì)講了,我自己也不甚了解,只知道鏈路層的幀,會(huì)有一個(gè)FCS位留給這個(gè)碼,用來判斷一個(gè)幀是否出錯(cuò)。
(4)差錯(cuò)糾正
差錯(cuò)糾正是鏈路層知道1,2,3,4,5個(gè)文件,丟失的兩個(gè)文件到底是哪兩個(gè),并且能通過重新發(fā)送沒有的文件來糾正。
還有一些是故事里沒有提到的數(shù)據(jù)鏈路層的功能,比如:
(5)流量控制 比如說發(fā)送方發(fā)送速度特別快,接收方接收速度特別慢,會(huì)造成傳輸出錯(cuò)。
這里需要注意的是,傳輸層TCP也有流量控制功能,區(qū)別在于TCP是端到端的流量控制,鏈路層是點(diǎn)到點(diǎn)(比如一個(gè)路由器到下一個(gè)路由器)
流量控制的方法有滑動(dòng)窗口協(xié)議,以及選擇重傳協(xié)議,這兩個(gè)留在講TCP的時(shí)候講。接下來講一下以太網(wǎng),以太網(wǎng)是目前最常見的局域網(wǎng)技術(shù)。對(duì)于我們理解局域網(wǎng)比較有幫助。
6 以太網(wǎng)和無線網(wǎng)以太網(wǎng)是一種局域網(wǎng)技術(shù),其規(guī)定了訪問控制方法、傳輸控制協(xié)議、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、傳輸速率等,完成數(shù)據(jù)鏈路層和物理層的一些內(nèi)容,它采用一種稱作CSMA/CD的媒體接入方法(后面會(huì)介紹),另外的一些局域網(wǎng)技術(shù),比如無線局域網(wǎng)等。
6.1 以太網(wǎng)的幀格式其中目的地址和源地址指的是MAC地址,即設(shè)備的物理地址。MAC地址用于標(biāo)示網(wǎng)卡,每個(gè)網(wǎng)卡都具有唯一的MAC 地址當(dāng)在同一個(gè)局域網(wǎng)中,主機(jī)A需要給主機(jī)B發(fā)送消息時(shí),主機(jī)A將以太網(wǎng)幀發(fā)出,此時(shí)局域網(wǎng)中所有主機(jī)均可收到這個(gè)楨,主機(jī)中的網(wǎng)卡接收到以太網(wǎng)楨后,會(huì)將目的MAC地址和自己的MAC地址進(jìn)行比較,如果不相同就會(huì)丟棄,如果相同則會(huì)接收,此時(shí)則B主機(jī)就收到了A的消息。其最后面是CRC循環(huán)冗余碼,用于差錯(cuò)控制,即檢驗(yàn)幀的正確性在以太網(wǎng)協(xié)議中,目的地址分為三種單播地址、廣播地址、多播地址,其中單播地址如上面A給B主機(jī)發(fā)送,其接收者為一個(gè),并且其目的地址的最高字節(jié)的低位為06.2 以太網(wǎng)的特點(diǎn)無連接。發(fā)送方和接收方不建立連接。不可靠。接收方不向發(fā)送方進(jìn)行確認(rèn),差錯(cuò)幀直接丟棄。6.3 以太網(wǎng)的拓?fù)浣Y(jié)構(gòu)跟以太網(wǎng)相關(guān)的拓?fù)浣Y(jié)構(gòu)有星型和總線型。
星型拓?fù)淙缦拢?/p>
總線型拓?fù)淙缦拢?/p>
互聯(lián)網(wǎng)初期,以太網(wǎng)的總線型拓?fù)浔容^普遍。隨著總線型以太網(wǎng)上的站點(diǎn)數(shù)目增多,可靠性也會(huì)隨之下降,而隨著大規(guī)模集成電路以及專門芯片的發(fā)展,使得星型以太網(wǎng)變得便宜又可靠。
需要注意的是,以太網(wǎng)雖然物理上是星型拓?fù)?,但邏輯上是總線型。
6.4 網(wǎng)卡計(jì)算機(jī)傳出的數(shù)據(jù),經(jīng)過網(wǎng)卡,就會(huì)變?yōu)橐蕴W(wǎng)的幀,還會(huì)完成一些鏈路管理(CDMA/CD的實(shí)現(xiàn)),以及編碼和譯碼(編碼譯碼我不太理解。。。好像是曼徹斯特編碼,規(guī)定如何表示高低電平)。
6.5 無線局域網(wǎng)無線局域網(wǎng)WLAN是利用無線電波、激光和紅外線等無線通信技術(shù)來構(gòu)建的局域網(wǎng)。
無線局域網(wǎng)我們只介紹一下典型的網(wǎng)絡(luò)結(jié)構(gòu)。
上圖的AP就是通信基站,如果基站覆蓋的移動(dòng)設(shè)備可以直接通過基站來通信如果是不同基站的移動(dòng)設(shè)備,不僅僅要通過自己的基站傳輸數(shù)據(jù),還需要基站和基站之間傳輸數(shù)據(jù),來達(dá)到兩個(gè)在不同基站覆蓋范圍內(nèi)的無線設(shè)備通信。6.6 CSMA/CD協(xié)議因?yàn)檫@個(gè)協(xié)議是以太網(wǎng)所使用的,所以我們只需要記住一些特點(diǎn)就行了。
每一個(gè)站在發(fā)送數(shù)據(jù)之前以及發(fā)送數(shù)據(jù)時(shí)以及發(fā)送數(shù)據(jù)時(shí)都要檢測(cè)一下總線上是否有其他計(jì)算機(jī)在發(fā)送數(shù)據(jù)。是總線型,半雙工網(wǎng)絡(luò)(半雙工是指允許數(shù)據(jù)在兩個(gè)方向上傳輸,但是,在某一時(shí)刻,只允許數(shù)據(jù)在一個(gè)方向上傳輸)6.7 鏈路層的設(shè)備(1)網(wǎng)橋
網(wǎng)橋根據(jù)MAC幀的目的地址進(jìn)行轉(zhuǎn)發(fā)和過濾。當(dāng)網(wǎng)橋收到一個(gè)幀時(shí),并不會(huì)向所有接口轉(zhuǎn)發(fā)此幀,而是先檢查此幀的目的MAC地址,然后再確定將該幀轉(zhuǎn)發(fā)到哪一個(gè)口,或者是把它丟棄。
這里需要注意的是,網(wǎng)橋連接的是不同的網(wǎng)段,網(wǎng)段是什么呢,我這里簡(jiǎn)單介紹一下,具體要到講IP地址的時(shí)候細(xì)說,同一網(wǎng)段指的是IP地址和子網(wǎng)掩碼(講ip地址的時(shí)候會(huì)細(xì)講)相與得到相同的網(wǎng)絡(luò)地址。
(2)以太網(wǎng)交換機(jī)
談到交換機(jī),就不得不提兩個(gè)概念,沖突域和廣播域
沖突域: 是指同一時(shí)間只能由一臺(tái)設(shè)備發(fā)送信息的范圍。廣播域:如果站點(diǎn)發(fā)出一個(gè)廣播信號(hào),所有能接收到這個(gè)信號(hào)的設(shè)備范圍稱為廣播域也就是說,廣播域可以跨網(wǎng)段,而沖突域只是發(fā)生的同一個(gè)網(wǎng)段。舉個(gè)例子,公司里大家的電腦一般都是連接到交換機(jī)上,因?yàn)榻粨Q機(jī)可以隔離沖突域,沖突域的最大問題在于,同一時(shí)間只能有一臺(tái)機(jī)器傳輸數(shù)據(jù),公司那么多人,如果這樣的話,傳輸數(shù)據(jù)速度太慢了。然后交換機(jī)再連接到路由器上,首先路由器能隔離廣播域,其次不經(jīng)過路由器,你的數(shù)據(jù)鏈路層上的包沒辦法進(jìn)入到互聯(lián)網(wǎng)里面去`,路由器是網(wǎng)絡(luò)層的設(shè)備。
兄弟,能看完上面內(nèi)容,你也真夠能忍的,牛B,喝口水!繼續(xù)!
7、 網(wǎng)絡(luò)層概念走一走,看一看,瞄一眼就行啦!
7.1 網(wǎng)絡(luò)層概念網(wǎng)絡(luò)層主要任務(wù)是將分組(分組的概念是大多數(shù)計(jì)算機(jī)網(wǎng)絡(luò)都不能連續(xù)地傳送任意長(zhǎng)的數(shù)據(jù),所以實(shí)際上網(wǎng)絡(luò)系統(tǒng)把數(shù)據(jù)分割成小塊,然后逐塊地發(fā)動(dòng),這種小塊就稱作分組)從一臺(tái)主機(jī)移動(dòng)到另一臺(tái)主機(jī),從而提供了主機(jī)到主機(jī)的通信服務(wù)和各種形式的進(jìn)程到進(jìn)程的通信。
7.2 學(xué)習(xí)網(wǎng)絡(luò)層需要了解的概念7.2.1 分組交換當(dāng)主機(jī)H1要向另一主機(jī)H2發(fā)送數(shù)據(jù)(報(bào)文)時(shí),首先將數(shù)據(jù)劃分成若干個(gè)等長(zhǎng)的分組,然后將這些分組一個(gè)接一個(gè)地發(fā)往里與H1相聯(lián)的路由A ,當(dāng)A接到分組后,先放入緩沖區(qū),再按一定的路由算法確定該分組下一步將發(fā)注哪個(gè)結(jié)點(diǎn),如此一個(gè)結(jié)點(diǎn)一個(gè)結(jié)點(diǎn)傳遞,直到最終目的H2。
這一段話比較啰嗦,簡(jiǎn)單來說分組就是分?jǐn)?shù)據(jù)塊,同時(shí)還具有無需建立連接,存儲(chǔ)轉(zhuǎn)發(fā)(存儲(chǔ)轉(zhuǎn)發(fā)是指以太網(wǎng)交換機(jī)的控制器先將輸入端口到來的數(shù)據(jù)包緩存起來,先檢查數(shù)據(jù)包是否正確,并過濾掉沖突包錯(cuò)誤),動(dòng)態(tài)分配路線(交換設(shè)備會(huì)根據(jù)網(wǎng)絡(luò)狀況選擇不同的路線,比如路由器)的優(yōu)點(diǎn)。
7.2.2 數(shù)據(jù)報(bào)數(shù)據(jù)報(bào)是通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)的基本單元,包含一個(gè)報(bào)頭(header)和數(shù)據(jù)本身。說白了,就是帶地址的數(shù)據(jù),比如你的寫了一句微信"你好",這串文字本上加上源地址,目的地址,就是數(shù)據(jù)報(bào)。
7.2.3 數(shù)據(jù)報(bào)格式首部的固定部分是20字節(jié),共20 * 8 = 160比特(1字節(jié)=8比特)0 - 4比特是版本號(hào),版本有ipv4/ipv6首部長(zhǎng)度,單位是4B,最小為5, 為什么是5呢?因?yàn)槭撞恐辽?0字節(jié),所以4* 5就是20字節(jié)區(qū)分服務(wù)不用看。總長(zhǎng)度是,首部+數(shù)據(jù)生存時(shí)間是TTL,它告訴網(wǎng)絡(luò),數(shù)據(jù)包在網(wǎng)絡(luò)中的時(shí)間是否太長(zhǎng)而應(yīng)被丟棄。每經(jīng)過一個(gè)路由器減一,變成0就丟棄協(xié)議是指數(shù)據(jù)部分用的什么協(xié)議,我們只需要知道TCP協(xié)議用6表示,UDP協(xié)議用17表示即可。首部校驗(yàn)和占16位。這個(gè)字段只檢驗(yàn)數(shù)據(jù)報(bào)的首部,但不包括數(shù)據(jù)部分。目的地址和源地址都是IP地址,目的地址是通過DNS查詢得來的。7.2.4 IP分片為什么要分片呢?
鏈路層數(shù)據(jù)幀封裝的數(shù)據(jù)大小是有限制的,以太網(wǎng)的MTU(MTU是指一種通信協(xié)議的某一層上面所能通過的最大數(shù)據(jù)包大小)是1500字節(jié)。
接下來我們就看看在ip數(shù)據(jù)包上,哪些字段標(biāo)識(shí)了分片的數(shù)據(jù)呢?
標(biāo)識(shí)是在同一數(shù)據(jù)的分片時(shí)相同。標(biāo)志占3位,但只有兩位有意義,第一個(gè)位叫MF,MF=1即表示后面“還有分片”的數(shù)據(jù)報(bào)。MF=0表示這已是若干數(shù)據(jù)報(bào)片中的最后一個(gè)。標(biāo)志字段中間的一位記為DF(Don’t Fragment),意思是“不能分片”。只有當(dāng)DF=0時(shí)才允許分片。片偏移,較長(zhǎng)的分組在分片后,某片在原分組中的相對(duì)位置。7.2.5 ip地址分類ip地址有5種
A類:1.0.0.0~126.255.255.255B類:128.0.0.0~191.255.255.255C類:192.0.0.0~223.255.255.255D類:224.0.0.0~239.255.255.255E類:240.0.0.0~254.255.255.255其中127.0.0.0~127.255.255.255用于環(huán)回測(cè)試,D類地址用于組播,E類地址用于科研這里需要注意的是,你發(fā)沒發(fā)現(xiàn),為什么我們前端啟動(dòng)webpack測(cè)試環(huán)境的時(shí)候,一般地址都是192.168.*.*(* 是指0-255的數(shù)字); 在公司和家里都是這個(gè)網(wǎng)段,不是很奇怪嗎,你家里的網(wǎng)段怎么和公司一樣呢?
其實(shí)是因?yàn)橛幸徊糠纸兴接蠭P地址,是不能拿到網(wǎng)絡(luò)上跟別的計(jì)算機(jī)通信的。只能是局域網(wǎng)自己內(nèi)部用。比如說有:
可以看到,C類私有地址就是192.168網(wǎng)段,每個(gè)局域網(wǎng)都可以有這些私有IP。
還有一些特殊地址,需要了解
注意,這里的全1是指,ipv4地址由4個(gè)字節(jié)組成,每一個(gè)字節(jié)是8位,8位全一就是十進(jìn)制的255, 即255.255.255.255。
第一行,全一,代表是255.255.255.255,在本網(wǎng)絡(luò)的目的地址寫這個(gè)的話,就會(huì)內(nèi)網(wǎng)廣播第二行,網(wǎng)絡(luò)號(hào)特定值,主機(jī)號(hào)是全0,比如,192.169.10.1,這是c類網(wǎng)絡(luò),所以網(wǎng)絡(luò)號(hào)是192.169.10,主機(jī)號(hào)是1,當(dāng)主機(jī)號(hào)全0時(shí),就是0,表示192.169.10.0這個(gè)網(wǎng)段第三行,還是192.169.10.1這個(gè)c類地址,主機(jī)號(hào)都是1,也就是8個(gè)1,代表255,所以192.169.10.255表示本網(wǎng)段的廣播地址第四行,大家最熟悉不過了,127作為網(wǎng)絡(luò)號(hào),主機(jī)號(hào)非全0或1,比如說127.0.0.1代表本機(jī),稱為環(huán)回地址。7.2.6 網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)在ip地址分類里面,我們知道私有ip地址是不能跟外網(wǎng)交互的,在小公司大多數(shù)計(jì)算機(jī)的地址都是192.168網(wǎng)段,都是私有ip地址,它是怎么跟外網(wǎng)交互數(shù)據(jù)的呢,這里就引出來一個(gè)知識(shí)點(diǎn)叫網(wǎng)絡(luò)地址轉(zhuǎn)換NAT。
如上圖所示,192.168.0.3,192.168.0.4都是私有網(wǎng)段上的,它們無法跟外網(wǎng)通信,這個(gè)時(shí)候由于路由器安裝了NAT軟件,就可以將自己的ip地址,即路由器的ip地址172.38.1.5作為內(nèi)網(wǎng)的代理,去訪問外網(wǎng),外網(wǎng)返回來的數(shù)據(jù),經(jīng)過路由轉(zhuǎn)換,轉(zhuǎn)換成內(nèi)網(wǎng)的192.168網(wǎng)段的私有地址。
7.2.7 子網(wǎng)劃分和子網(wǎng)掩碼首先要明白,為什么要?jiǎng)澐肿泳W(wǎng)?
首先大家要知道: 總體來說,劃分子網(wǎng)不但沒有增加可用IP地址,而且減少了可用IP地址,因?yàn)槊總€(gè)子網(wǎng)中的全0網(wǎng)絡(luò)地址和全1廣播地址均不能作為主機(jī)ip來使用。
為什么劃分子網(wǎng):
例如,一個(gè)A類網(wǎng)絡(luò)可以容納16777214臺(tái)主機(jī)。但是在實(shí)際運(yùn)用中,不可能把一個(gè)A類網(wǎng)絡(luò)只用于一個(gè)子網(wǎng),因?yàn)槟菢庸芾砥饋砗懿环奖?,也?huì)出現(xiàn)廣播風(fēng)暴等種種問題,所以需要根據(jù)實(shí)際需求把它劃分為若干個(gè)較小的子網(wǎng)。一個(gè)B類網(wǎng)絡(luò)可以容納65534臺(tái)主機(jī),往往也是需要?jiǎng)澐肿泳W(wǎng)的。即便一個(gè)小型企業(yè)內(nèi)部,為了部門之間的職能的需要,配置那些電腦可以互相訪問,哪些不能互相訪問,就需要通過劃分子網(wǎng)的方法來實(shí)現(xiàn)。接下來,我們看看子網(wǎng)劃分
如上圖右側(cè),我們將145.13.0.0這個(gè)網(wǎng)段劃分了三個(gè)子網(wǎng),其中一個(gè)是145.13.3.0,一個(gè)是145.13.21.0,問題來了,如果一個(gè)網(wǎng)絡(luò)包來了,網(wǎng)絡(luò)包要交給的ip地址是145.13.3.10,我們?cè)趺粗澜o哪個(gè)子網(wǎng)呢?
方法是將目的包的ip地址,跟子網(wǎng)的子網(wǎng)掩碼相與預(yù)算(二進(jìn)制與預(yù)算規(guī)則是,1跟1得1,其它為0),也就是目的地址145.13.3.10跟子網(wǎng)145.13.3.0的子網(wǎng)掩碼255.255.255.0的與預(yù)算,得到的結(jié)果是145.13.3.0,所以發(fā)送到的子網(wǎng)就是145.13.3.0。
這里有人會(huì)問什么是子網(wǎng)掩碼,子網(wǎng)掩碼的格式跟IP是一樣的,0,0,0,0 到 255.255.255.255,主要是幫助我們劃分子網(wǎng)的,了解到這里對(duì)我們前端就夠了。
7.3 ARP協(xié)議為什么需要ARP協(xié)議呢?
我們簡(jiǎn)單回顧一下以太網(wǎng)的幀的格式
上圖有一個(gè)源地址和目的地址,這兩個(gè)地址都是指的mac地址,mac地址是什么呢?簡(jiǎn)單說來就是兩臺(tái)相鄰的路由器A和B,A怎么把數(shù)據(jù)傳給B呢,它總要知道B的物理地址吧,物理地址就像門牌號(hào)一樣,我要知道你住在哪里,才能把數(shù)據(jù)送過去吧?
首先你肯定知道自己的mac地址是多少,因?yàn)樵诰W(wǎng)卡上有,問題在于,別人的mac地址是多少?ARP協(xié)議就是來幫你找mac地址的。
接著我們說一下ARP協(xié)議的過程(比較官方的介紹,看不懂可以略過):
每臺(tái)主機(jī)都會(huì)在自己的ARP緩沖區(qū)中建立一個(gè) ARP列表,以表示IP地址和MAC地址的映射關(guān)系當(dāng)源主機(jī)需要將一個(gè)數(shù)據(jù)包要發(fā)送到目的主機(jī)時(shí),會(huì)首先檢查自己 ARP列表中是否存在該IP地址對(duì)應(yīng)的MAC地址如果有,就直接將數(shù)據(jù)包發(fā)送到這個(gè)MAC地址;如果沒有,就向本地網(wǎng)段發(fā)起一個(gè)ARP請(qǐng)求的廣播包,查詢此目的主機(jī)對(duì)應(yīng)的MAC地址此ARP請(qǐng)求數(shù)據(jù)包里包括源主機(jī)的IP地址、硬件地址、以及目的主機(jī)的IP地址。網(wǎng)絡(luò)中所有的主機(jī)收到這個(gè)ARP請(qǐng)求后,會(huì)檢查數(shù)據(jù)包中的目的IP是否和自己的IP地址一致如果不相同就忽略此數(shù)據(jù)包;如果相同,該主機(jī)首先將發(fā)送端的MAC地址和IP地址添加到自己的ARP列表中如果ARP表中已經(jīng)存在該IP的信息,則將其覆蓋,然后給源主機(jī)發(fā)送一個(gè) ARP響應(yīng)數(shù)據(jù)包,告訴對(duì)方自己是它需要查找的MAC地址源主機(jī)收到這個(gè)ARP響應(yīng)數(shù)據(jù)包后,將得到的目的主機(jī)的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息開始數(shù)據(jù)的傳輸如果源主機(jī)一直沒有收到ARP響應(yīng)數(shù)據(jù)包,表示ARP查詢失敗7.4 DHCP協(xié)議DHCP(動(dòng)態(tài)主機(jī)配置協(xié)議)是一個(gè)局域網(wǎng)的網(wǎng)絡(luò)協(xié)議。指的是由服務(wù)器控制一段lP地址范圍,客戶機(jī)登錄服務(wù)器時(shí)就可以自動(dòng)獲得服務(wù)器分配的lP地址和子網(wǎng)掩碼。說白了,當(dāng)你接入局域網(wǎng)的時(shí)候,自動(dòng)由這個(gè)dhcp服務(wù)器給你分配ip,windows用戶可能知道網(wǎng)卡配置里面,由自動(dòng)獲取ip的功能,如果路由器提供DHCP服務(wù),你就會(huì)自動(dòng)獲取隨機(jī)分配的ip。
路由器里可以開啟這個(gè)服務(wù)。
大致工作過程(了解即可)
7.5 ICMP協(xié)議ICMP協(xié)議是一個(gè)網(wǎng)絡(luò)層協(xié)議。 為什么我們需要ICMP協(xié)議呢?
一個(gè)新搭建好的網(wǎng)絡(luò),往往需要先進(jìn)行一個(gè)簡(jiǎn)單的測(cè)試,來驗(yàn)證網(wǎng)絡(luò)是否暢通;但是IP協(xié)議并不提供可靠傳輸。如果丟包了,IP協(xié)議并不能通知傳輸層是否丟包以及丟包的原因。
所以我們就需要一種協(xié)議來完成這樣的功能–ICMP協(xié)議。
ICMP協(xié)議的功能主要有:
確認(rèn)IP包是否成功到達(dá)目標(biāo)地址通知在發(fā)送過程中IP包被丟棄的原因 我們舉一個(gè)例子:主機(jī)H2收到主機(jī)H1的一個(gè)UDP包,結(jié)果H2發(fā)現(xiàn)這個(gè)包里的端口沒有被監(jiān)聽,這時(shí)候就回復(fù)給H2一個(gè)ICMP應(yīng)答報(bào)文,意思是這個(gè)UDP數(shù)據(jù)包,無法交給應(yīng)用進(jìn)程,只能丟棄了。
以下是4種常見的ICMP差錯(cuò)報(bào)告報(bào)文
我們常用的ping命令借助ICMP協(xié)議,探測(cè)主機(jī)是否能找到目的主機(jī)。
7.6 網(wǎng)絡(luò)設(shè)備路由器簡(jiǎn)介路由器是一種具有多個(gè)輸入端口和多個(gè)輸出端口的專用計(jì)算機(jī),其任務(wù)是轉(zhuǎn)發(fā)和分組。
如下圖所示,分別由轉(zhuǎn)發(fā)和分組功能的說明。
接著,我們看一下路由器輸入端口做了哪些事情
首先,物理層是傻瓜層,傳輸比特流,我們把物理層的比特流還原成數(shù)據(jù)鏈路層的數(shù)據(jù)幀,然后把數(shù)據(jù)鏈路層的數(shù)據(jù)報(bào)脫去,成為網(wǎng)絡(luò)層數(shù)據(jù)包,交給路由器。這時(shí)候就要判斷一下這個(gè)數(shù)據(jù)包是什么類型的了。如果它是路由器之間,交換路由信息的分組,就會(huì)把這個(gè)數(shù)據(jù)包交付給如上上圖所示的,路由選擇處理機(jī),進(jìn)行處理和計(jì)算。如果是數(shù)據(jù)分組,就會(huì)放到一個(gè)隊(duì)列里面,排隊(duì)等候,然后選擇一個(gè)合適的輸出端口輸出。最后我們看一下路由器輸出端口做了哪些事情從上圖可以看到,輸出端口是做的輸入端口的逆過程,將網(wǎng)絡(luò)層的數(shù)據(jù)包轉(zhuǎn)換為鏈路層的數(shù)據(jù)幀,最后轉(zhuǎn)為物理層的比特流。
輸入和輸出端口需要注意的是,它們都有一個(gè)緩沖隊(duì)列,比如輸入數(shù)據(jù)的速度太快,輸出數(shù)據(jù)速度慢,為了平衡輸入輸出速度,就用緩沖隊(duì)列把數(shù)據(jù)緩沖下來,一個(gè)一個(gè)慢慢的處理,但緩沖隊(duì)列也有限度,超出這個(gè)限度,緩沖隊(duì)列容納不下,包就會(huì)被丟到。
馬上就要到對(duì)前端最重要的傳輸層和應(yīng)用層知識(shí)了!準(zhǔn)備接招!
8 傳輸層知識(shí)傳輸層是只有計(jì)算機(jī)才有的層次,主要提供是進(jìn)程間邏輯通信 + 可靠傳輸或者不可靠的功能。比如你的QQ跟你異地女友的QQ視頻聊天,這就是不同計(jì)算機(jī)之間,進(jìn)程間的通信。
這里簡(jiǎn)單說一下可靠傳輸協(xié)議TCP + 不可靠傳輸協(xié)議UDP。
TCP面向連接,可靠,不提供廣播和多播,而且時(shí)間延遲比較大,適用于大文件傳輸。 UDP無連接,收到的報(bào)也不確認(rèn),但時(shí)間延遲小,適用于小文件。
8.1 端口號(hào)有什么用端口號(hào)可以用來標(biāo)識(shí)同一個(gè)主機(jī)上通信的不同應(yīng)用程序(就是哪個(gè)應(yīng)用程序在使用這個(gè)端口)。
那為什么一個(gè)端口只能分配給一個(gè)應(yīng)用程序,不能是多個(gè)呢?
如果服務(wù)器有兩個(gè)應(yīng)用程序A,B,分別啟動(dòng)了A服務(wù)和B服務(wù),它們監(jiān)聽同一個(gè)端口,那有數(shù)據(jù)來的時(shí)候,服務(wù)器無法判斷這個(gè)數(shù)據(jù)到底是給A,還是給B。
8.2 UDP協(xié)議UDP協(xié)議是參考模型中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù)。
(1) UDP協(xié)議的特點(diǎn)
UDP是無連接的,減少開銷和發(fā)送數(shù)據(jù)之前的時(shí)間延遲。大家都知道TCP的三次握手和四次分手,這個(gè)是需要時(shí)間花銷的,但是UDP沒有這部分花銷。UDP使用最大努力交付,即不保證可靠交付。那誰來保證可靠的交付呢?是由UDP的上一層協(xié)議,應(yīng)用層來保證。UDP是面向報(bào)文的,適合一次性傳輸少量數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。什么意思呢,如下圖,UDP這層,把應(yīng)用層的全部?jī)?nèi)容作為自己的數(shù)據(jù)報(bào)部分,在IP層也只是加了一個(gè)IP首部,我們知道,在以太網(wǎng),鏈路層上的數(shù)據(jù)如果超過1500字節(jié),就會(huì)分片,所以網(wǎng)絡(luò)層發(fā)現(xiàn)上面?zhèn)鬏攲咏o了太大的數(shù)據(jù)就會(huì)分片,加上UDP是不可靠的協(xié)議,這就加大了UDP的不可靠性,容易丟失,所以UDP適合數(shù)據(jù)量少的。UDP沒有擁塞控制,適合很多實(shí)時(shí)應(yīng)用。也就是說如果網(wǎng)絡(luò)堵塞,UDP不管那么多,照樣按照自己的速率發(fā)數(shù)據(jù),那有些人就會(huì)說,這協(xié)議是不是有點(diǎn)坑B,路都堵上了,還發(fā)死勁發(fā)數(shù)據(jù)呢,但是反過來看,這也是UDP的優(yōu)點(diǎn),它允許丟包,如果你的網(wǎng)絡(luò)情況還不錯(cuò),UDP就非常適合實(shí)時(shí)應(yīng)用,比如視頻會(huì)議。UDP首部較小,只有8字節(jié),而TCP由20字節(jié)。這也是減少網(wǎng)絡(luò)傳輸開銷的一方面。(2)UDP首部
16位端口號(hào)占了2B,也就是16位,說明端口號(hào)的范圍是0 - 65535。源端口號(hào)可以沒有,因?yàn)椴幌M盏綄?duì)方的回應(yīng),可以寫全0,目的端口是一定要有的。16位UDP長(zhǎng)度是指首部+數(shù)據(jù)的長(zhǎng)度,比如數(shù)據(jù)2B,首部固定是8B,那么UDP長(zhǎng)度就是2+8 = 10B16位UDP校驗(yàn)和,是用來校驗(yàn)首部和數(shù)據(jù)有錯(cuò)誤,如果有錯(cuò)就丟棄掉。比如說目的主機(jī)找不到對(duì)應(yīng)的端口號(hào),就會(huì)給發(fā)送方返回一個(gè)ICMP,‘端口不可達(dá)’的差錯(cuò)報(bào)文。8.3 TCP協(xié)議TCP協(xié)議簡(jiǎn)單來說是一種位于傳輸層的,面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議 TCP協(xié)議的特點(diǎn):
TCP是面向連接的傳輸層協(xié)議。比如說TCP的三次握手,四次分手,針對(duì)的都是連接。每一條TCP連接只能有兩個(gè)端點(diǎn),每一條TCP連接是點(diǎn)對(duì)點(diǎn)的。也就是說TCP是不同計(jì)算機(jī)之間的進(jìn)程的通信。TCP提供可靠交付的服務(wù),無差錯(cuò),不丟失,不重復(fù),按序到達(dá)??偨Y(jié)一下就是,可靠有序,不丟不重。TCP提供全雙工通信。全雙工指的是連接雙方可以同時(shí)收發(fā)數(shù)據(jù)。在收發(fā)兩端都有發(fā)送緩存和接收緩存,發(fā)送緩存就是一個(gè)準(zhǔn)備發(fā)送的隊(duì)列,接收緩存是一個(gè)準(zhǔn)備接收的隊(duì)列。TCP面向字節(jié)流。如下圖,我們解釋一下什么是面向字節(jié)流: 圖中的1,2,3,4.....數(shù)據(jù)塊,每一個(gè)表示一個(gè)字節(jié)。tcp將應(yīng)用層的數(shù)據(jù)變?yōu)榱诉@樣的字節(jié)進(jìn)行發(fā)送,比如玩過node同學(xué),知道一個(gè)buffer,buffer就是字節(jié)流。TCP報(bào)文的首部格式
如下圖所示,我們看一下比較重要的一些首部字段,這里我們介紹固定的20字節(jié)的TCP首部
源端口和目的端口分別是指發(fā)送方應(yīng)用程序的端口和目的方應(yīng)用程序的端口號(hào)。序號(hào)是指在一個(gè)TCP連接中傳送的字節(jié)流中的每一個(gè)字節(jié)都按順序編號(hào),本字段表示本報(bào)文段所發(fā)送數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。確認(rèn)號(hào)是指期望收到對(duì)方下一個(gè)報(bào)文段的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)。弱確認(rèn)好位n,則證明到需要N-1為止所有的數(shù)據(jù)都已經(jīng)正確收到。如下圖,我們舉例說明一下接收方收到了1,2,3個(gè)字節(jié)組成的數(shù)據(jù)包,然后接收方就會(huì)發(fā)送一個(gè)確認(rèn)報(bào)文給發(fā)送方,其中確認(rèn)報(bào)文的確認(rèn)號(hào)就應(yīng)該是4,因?yàn)?,2,3這三個(gè)字節(jié)的組成的數(shù)據(jù)包已經(jīng)收到了。
數(shù)據(jù)偏移指的是TCP報(bào)文段的數(shù)據(jù)起始處舉例TCP報(bào)文段的起始處有多遠(yuǎn)。6個(gè)控制位介紹如下控制位 作用 ACK 置1時(shí)表示確認(rèn)號(hào)合法,為0的時(shí)候表示數(shù)據(jù)段不包含確認(rèn)信息,確認(rèn)號(hào)被忽略 PSH 置1時(shí)請(qǐng)求的數(shù)據(jù)段在接收方得到后就可直接送到應(yīng)用程序,而不必等到緩沖區(qū)滿時(shí)才傳送 RST 置1時(shí)重建連接。如果接收到RST位時(shí)候,通常發(fā)生了某些錯(cuò) SYN 置1時(shí)用來發(fā)起一個(gè)連接 FIN 置1時(shí)表示發(fā)端完成發(fā)送任務(wù)。用來釋放連接,表明發(fā)送方已經(jīng)沒有數(shù)據(jù)發(fā)送了 URG 緊急指針,告訴接收TCP模塊緊要指針域指著緊要數(shù)據(jù)
8.3.3 TCP建立連接如下圖所示,分別來了解一下建立連接的過程:
首先客戶端要發(fā)送一個(gè)數(shù)據(jù)包告訴服務(wù)器要建立連接,根據(jù)上面我們了解到的控制位信息,建立連接需要把SYN置為1,seq指的是序號(hào),是隨機(jī)產(chǎn)生的。然后服務(wù)器收到該數(shù)據(jù)包后,會(huì)為該TCP連接分配緩存和變量,緩存指的是一個(gè)字節(jié)流隊(duì)列。(發(fā)送方和接收方都有這個(gè)隊(duì)列,而且如果雙方需要互相通信,那么雙方都會(huì)有發(fā)送緩存和接收緩存),接著會(huì)返回一個(gè)確認(rèn)報(bào)文,其中SYN控制位置為1,意思是允許建立連接,ACK是確認(rèn)號(hào),確認(rèn)收到了發(fā)送方的包,并且會(huì)設(shè)一個(gè)seq序號(hào),也為一個(gè)隨機(jī)數(shù)。小寫ack是確認(rèn)號(hào),也就是接下來希望發(fā)送方要發(fā)的數(shù)據(jù)從哪開始。最后,客戶端需要給服務(wù)器端返回一個(gè)確認(rèn),此時(shí)SYN控制位變?yōu)?,意思這不是建立連接的請(qǐng)求了,要正式發(fā)數(shù)據(jù)了,ACK是確認(rèn)碼,意思是收到了服務(wù)器的確認(rèn)請(qǐng)求了。8.3.4 TCP釋放連接如下圖所示,分別來了解一下釋放連接的過程:
客戶端發(fā)起請(qǐng)求,請(qǐng)求斷開鏈接。FIN=1,seq=u。u是之前傳送過來的最后一個(gè)字節(jié)的序號(hào)+1。FIN:用來釋放一個(gè)鏈接,當(dāng)FIN=1的時(shí)候,表明此報(bào)文的發(fā)送方已經(jīng)完成了數(shù)據(jù)的發(fā)送,沒有新的數(shù)據(jù)要傳送,并要求釋放鏈接。 客戶端等著服務(wù)器返回確認(rèn)
服務(wù)器收到客戶端的請(qǐng)求斷開鏈接的報(bào)文之后,返回確認(rèn)信息。ACK=1,seq=v,ack=u+1。這個(gè)時(shí)候,客戶端不能給服務(wù)器發(fā)送信息報(bào)文,只能接收。但是服務(wù)器要是還有信息要傳給服務(wù)器,仍然能傳送。這里的v是什么意思呢,這就取決于服務(wù)器發(fā)送給客戶端之前的一個(gè)包確認(rèn)號(hào)是多少了。當(dāng)服務(wù)器也沒有了可以傳的信息之后,給客戶端發(fā)送請(qǐng)求結(jié)束的報(bào)文。FIN=1,ACK=1,ack=u+1,seq=w。這里的w,跟上面的v是一個(gè)意思,為什么不都是v呢,因?yàn)檫@一步和上一步中間可能還在發(fā)數(shù)據(jù)呢,所以seq這個(gè)數(shù)據(jù)發(fā)送的字節(jié)流序號(hào)可能要變??蛻舳私邮盏紽IN=1的報(bào)文之后,返回確認(rèn)報(bào)文,ACK=1,seq=u+1,ack=w+1。發(fā)送完畢之后,客戶端進(jìn)入等待狀態(tài),等待兩個(gè)時(shí)間周期。關(guān)閉。為什么最后還要等待兩個(gè)時(shí)間周期呢?
客戶端的最后一個(gè)ACK報(bào)文在傳輸?shù)臅r(shí)候丟失,服務(wù)器并沒有接收到這個(gè)報(bào)文。這個(gè)候時(shí)候服務(wù)器就會(huì)超時(shí)重傳這個(gè)FIN消息,然后客戶端就會(huì)重新返回最后一個(gè)ACK報(bào)文,等待兩個(gè)時(shí)間周期,完成關(guān)閉。如果不等待這兩個(gè)時(shí)間周期,服務(wù)器重傳的那條消息就不會(huì)收到。服務(wù)器就因?yàn)榻邮詹坏娇蛻舳说男畔⒍鵁o法正常關(guān)閉。8.3.5 TCP3次握手4次揮手常見面試題為什么連接的時(shí)候是三次握手,關(guān)閉的時(shí)候卻是四次握手?
關(guān)閉連接時(shí),服務(wù)器收到對(duì)方的FIN報(bào)文時(shí),僅僅表示對(duì)方不再發(fā)送數(shù)據(jù)了但是還能接收數(shù)據(jù),而自己也未必全部數(shù)據(jù)都發(fā)送給對(duì)方了,所以己方可以立即關(guān)閉,也可以發(fā)送一些數(shù)據(jù)給對(duì)方后,再發(fā)送FIN報(bào)文給對(duì)方來表示同意現(xiàn)在關(guān)閉連接因此,己方ACK和FIN一般都會(huì)分開發(fā)送,從而導(dǎo)致多了一次。為什么不能用兩次握手進(jìn)行連接?
以下是網(wǎng)上普遍的解答:
若建立連接只需兩次握手,客戶端并沒有太大的變化,仍然需要獲得服務(wù)端的應(yīng)答后才進(jìn)入ESTABLISHED狀態(tài),而服務(wù)端在收到連接請(qǐng)求后就進(jìn)入ESTABLISHED狀態(tài)。此時(shí)如果網(wǎng)絡(luò)擁塞,客戶端發(fā)送的連接請(qǐng)求遲遲到不了服務(wù)端,客戶端便超時(shí)重發(fā)請(qǐng)求,如果服務(wù)端正確接收并確認(rèn)應(yīng)答,雙方便開始通信,通信結(jié)束后釋放連接。此時(shí),如果那個(gè)失效的連接請(qǐng)求抵達(dá)了服務(wù)端,由于只有兩次握手,服務(wù)端收到請(qǐng)求就會(huì)進(jìn)入ESTABLISHED狀態(tài),等待發(fā)送數(shù)據(jù)或主動(dòng)發(fā)送數(shù)據(jù)但此時(shí)的客戶端早已進(jìn)入CLOSED狀態(tài),服務(wù)端將會(huì)一直等待下去,這樣浪費(fèi)服務(wù)端連接資源但我覺得這個(gè)只是兩次握手可能造成的問題,最關(guān)鍵的是兩次握手有服務(wù)器對(duì)客戶端的起始序列號(hào)做了確認(rèn),但客戶端卻沒有對(duì)服務(wù)器的起始序列號(hào)做確認(rèn),不能保證傳輸?shù)目煽啃浴?p>如果已經(jīng)建立了連接,但是客戶端突然出現(xiàn)故障了怎么辦?TCP?;钣?jì)時(shí)器 每次客戶端請(qǐng)求服務(wù)器會(huì)重置計(jì)時(shí)器,當(dāng)2小時(shí)之內(nèi)沒收到客戶端任何數(shù)據(jù)時(shí),會(huì)每隔75s向客戶端發(fā)一個(gè)探測(cè)報(bào)文,若接連發(fā)送10個(gè),客戶端都沒有反應(yīng),則認(rèn)為客戶端故障,關(guān)閉連接。
什么是SYN洪泛攻擊?
SYN洪泛攻擊就是利用TCP協(xié)議的特性(三次握手)。攻擊者發(fā)送TCP的 SYN,SYN是TCP三次握手中第一個(gè)數(shù)據(jù)包,而當(dāng)服務(wù)器返回ACK后,該攻擊者就不對(duì)其進(jìn)行再確認(rèn),那這個(gè)TCP連接就處于掛起狀態(tài),也就是半連接狀態(tài),服務(wù)器收不到再確認(rèn)的話,還會(huì)重復(fù)發(fā)送ACK給攻擊者。這樣更加會(huì)浪費(fèi)服務(wù)器資源。攻擊者就對(duì)服務(wù)器發(fā)送大量的這種TCP連接,由于每一個(gè)連接都無法完成三次握手,所以就在服務(wù)器上,這些TCP連接會(huì)因?yàn)閽炱馉顟B(tài)而消耗CPU和內(nèi)存,最后服務(wù)器可能死機(jī)。序號(hào)(ISN)為什么要隨機(jī)? 增加安全性,為了避免被第三方猜測(cè)到,從而被第三方偽造的RST報(bào)文Reset。 三次握手的第一次可以攜帶數(shù)據(jù)嗎?為何?
不可以,三次握手還沒有完成。而且這樣會(huì)放大SYN FLOOD(SYN洪泛)攻擊。如果攻擊者偽造了成千上萬的握手報(bào)文,攜帶了1K+ 字節(jié)的數(shù)據(jù),而接收方會(huì)開辟大量的緩存來容納這些巨大數(shù)據(jù),內(nèi)存會(huì)很容易耗盡,從而拒絕服務(wù)。三次握手的第三次可以攜帶數(shù)據(jù)嗎?為何? 第三次握手,此時(shí)客戶端已經(jīng)處于ESTABLISHED狀態(tài)。對(duì)于客戶端來說,他已經(jīng)建立起連接了,并且已經(jīng)知道服務(wù)器的接收和發(fā)送能力是正常的。所以也就可以攜帶數(shù)據(jù)了。
8.3.6 TCP如何實(shí)現(xiàn)可靠傳輸主要通過以下四種方式實(shí)現(xiàn)可靠傳輸機(jī)制:
校驗(yàn)。偽首部是為了增加TCP校驗(yàn)和的檢錯(cuò)能力:通過偽首部的目的IP地址來檢查TCP報(bào)文是否收錯(cuò)了、通過偽首部的傳輸層協(xié)議號(hào)來檢查傳輸層協(xié)議是否選對(duì)了。需要注意的是,偽首部實(shí)際上是不存在的,只是用來驗(yàn)證TCP報(bào)文是否出錯(cuò)。序號(hào)。之前我們提到TCP是面向字節(jié)流的,比如第一個(gè)字節(jié)就是序號(hào)1,第二個(gè)字節(jié)就是序號(hào)2。 而在TCP報(bào)文格式介紹的時(shí)候,有一個(gè)序號(hào)字段,這個(gè)指的是一個(gè)報(bào)文段第一個(gè)字節(jié)的序號(hào)。報(bào)文段就是你每個(gè)數(shù)據(jù)包。有了序號(hào),就能保證數(shù)據(jù)是有序的傳入應(yīng)用層。確認(rèn)。發(fā)送方在收到接收方的確認(rèn)包之后,才繼續(xù)發(fā)送剩下的數(shù)據(jù)。重傳。TCP的發(fā)送方在規(guī)定的時(shí)間內(nèi)沒有收到確認(rèn)就要重傳已發(fā)送的報(bào)文段(超時(shí)重傳)。重傳時(shí)間是動(dòng)態(tài)改變的,依據(jù)的是RTTS(加權(quán)平均往返時(shí)間)。8.3.7 TCP的流量控制為什么需要流量控制呢?
比如發(fā)送方發(fā)送速度非???,接收方接收速度特別慢,這樣就會(huì)發(fā)生嚴(yán)重的丟包現(xiàn)象。
TCP通過滑動(dòng)窗口的機(jī)制來實(shí)現(xiàn)流量控制。簡(jiǎn)單來說如下(建議網(wǎng)上找一個(gè)動(dòng)畫教程來理解,文字效果不是很好):
TCP 中采用滑動(dòng)窗口來進(jìn)行傳輸控制,滑動(dòng)窗口的大小意味著接收方還有多大的緩沖區(qū)可以用于接收數(shù)據(jù)。發(fā)送方可以通過滑動(dòng)窗口的大小來確定應(yīng)該發(fā)送多少字節(jié)的數(shù)據(jù)。當(dāng)滑動(dòng)窗口為 0時(shí),發(fā)送方一般不能再發(fā)送數(shù)據(jù)報(bào),但有兩種情況除外,一種情況是可以發(fā)送緊急數(shù)據(jù),例如,允許用戶終止在遠(yuǎn)端機(jī)上的運(yùn)行進(jìn)程。另一種情況是發(fā)送方可以發(fā)送一個(gè) 1 字節(jié)的數(shù)據(jù)報(bào)來通知接收方重新聲明它希望接收的下一字節(jié)及發(fā)送方的滑動(dòng)窗口大小。8.3.8 TCP的擁塞控制這部分我也覺得文字部分太生硬了,開始我也不怎么理解,看來一個(gè)視頻之后我了解了基本原理,這里我文字版和視頻地址都放上來。
視頻地址如下:擁塞控制視頻版
文字版如下:
如果網(wǎng)絡(luò)出現(xiàn)擁塞,分組將會(huì)丟失,此時(shí)發(fā)送方會(huì)繼續(xù)重傳,從而導(dǎo)致網(wǎng)絡(luò)擁塞程度更高。因此當(dāng)出現(xiàn)擁塞時(shí),應(yīng)當(dāng)控制發(fā)送方的速率。這一點(diǎn)和流量控制很像,但是出發(fā)點(diǎn)不同。流量控制是為了讓接收方能來得及接收,而擁塞控制是為了降低整個(gè)網(wǎng)絡(luò)的擁塞程度。TCP 主要通過四個(gè)算法來進(jìn)行擁塞控制:慢開始、擁塞避免、快重傳、快恢復(fù)。發(fā)送方需要維護(hù)一個(gè)叫做擁塞窗口(cwnd)的狀態(tài)變量,注意擁塞窗口與發(fā)送方窗口的區(qū)別:擁塞窗口只是一個(gè)狀態(tài)變量,實(shí)際決定發(fā)送方能發(fā)送多少數(shù)據(jù)的是發(fā)送方窗口。為了便于討論,做如下假設(shè):接收方有足夠大的接收緩存,因此不會(huì)發(fā)生流量控制;雖然 TCP 的窗口基于字節(jié),但是這里設(shè)窗口的大小單位為報(bào)文段。慢開始與擁塞避免
發(fā)送的最初執(zhí)行慢開始,令 cwnd = 1,發(fā)送方只能發(fā)送 1 個(gè)報(bào)文段;當(dāng)收到確認(rèn)后,將 cwnd 加倍,因此之后發(fā)送方能夠發(fā)送的報(bào)文段數(shù)量為:2、4、8 ...注意到慢開始每個(gè)輪次都將 cwnd 加倍,這樣會(huì)讓 cwnd 增長(zhǎng)速度非常快,從而使得發(fā)送方發(fā)送的速度增長(zhǎng)速度過快,網(wǎng)絡(luò)擁塞的可能性也就更高。設(shè)置一個(gè)慢開始門限 ssthresh,當(dāng) cwnd >= ssthresh 時(shí),進(jìn)入擁塞避免,每個(gè)輪次只將 cwnd 加 1。如果出現(xiàn)了超時(shí),則令 ssthresh = cwnd / 2,然后重新執(zhí)行慢開始。
快重傳與快恢復(fù)
在接收方,要求每次接收到報(bào)文段都應(yīng)該對(duì)最后一個(gè)已收到的有序報(bào)文段進(jìn)行確認(rèn)。例如已經(jīng)接收到 M1 和 M2,此時(shí)收到 M4,應(yīng)當(dāng)發(fā)送對(duì) M2 的確認(rèn)。在發(fā)送方,如果收到三個(gè)重復(fù)確認(rèn),那么可以知道下一個(gè)報(bào)文段丟失,此時(shí)執(zhí)行快重傳,立即重傳下一個(gè)報(bào)文段。例如收到三個(gè) M2,則 M3 丟失,立即重傳 M3。在這種情況下,只是丟失個(gè)別報(bào)文段,而不是網(wǎng)絡(luò)擁塞。因此執(zhí)行快恢復(fù),令 ssthresh = cwnd / 2 ,cwnd = ssthresh,注意到此時(shí)直接進(jìn)入擁塞避免。慢開始和快恢復(fù)的快慢指的是 cwnd 的設(shè)定值,而不是 cwnd 的增長(zhǎng)速率。慢開始 cwnd 設(shè)定為 1,而快恢復(fù) cwnd 設(shè)定為 ssthresh。9、應(yīng)用層9.1 應(yīng)用層有啥用?應(yīng)用層對(duì)應(yīng)用程序的通信提供服務(wù)。
區(qū)分是發(fā)送報(bào)文還是接收?qǐng)?bào)文定義報(bào)文類型的語法,比如某字段的意思,例如http中content-type字段是什么意思。最后就是進(jìn)程如何,什么時(shí)候把傳輸層的數(shù)據(jù)交給應(yīng)用層。一些比較重要的應(yīng)用層協(xié)議如下圖:
9.2 應(yīng)用層常見的模型第一種是客戶端/服務(wù)器模型,也就是C/S架構(gòu)。比如電子郵件、web都是。
第二種是P2P模型,每個(gè)主機(jī)既可以提供服務(wù),也可以請(qǐng)求服務(wù)。比如迅雷下載也是使用P2P技術(shù)的。
9.3 短鏈接和長(zhǎng)鏈接而TCP連接有兩種工作方式:短連接方式(Short-Live Connection)和長(zhǎng)連接方式(Long-Live Connection)。
短連接方式:當(dāng)客戶端有請(qǐng)求時(shí),會(huì)建立一個(gè)TCP連接,接收到服務(wù)器響應(yīng)后,就斷開連接。下次有請(qǐng)求時(shí),再建立連接,收到響應(yīng)后,再斷開。如此循環(huán)。這種方式主要有兩個(gè)缺點(diǎn):建立TCP連接需要3次“握手”,拆除TCP連接需要4次“揮手”,這就需要7個(gè)數(shù)據(jù)包。如果請(qǐng)求和響應(yīng)各占1個(gè)數(shù)據(jù)包,那么一次短連接的交互過程,有效的傳輸僅占2/9,這個(gè)利用率太低了。主動(dòng)斷開TCP連接的一端,TCP狀態(tài)機(jī)會(huì)進(jìn)入TIME_WAIT狀態(tài)。如果頻繁地使用短連接方式,就有可能使客戶端的機(jī)器產(chǎn)生大量的處于TIME_WAIT狀態(tài)TCP連接。長(zhǎng)連接方式:客戶端和服務(wù)器建立TCP連接后,會(huì)一直使用這條連接進(jìn)行數(shù)據(jù)交互,直到?jīng)]有數(shù)據(jù)傳輸或異常斷開。在空閑期間,通常會(huì)使用``心跳數(shù)據(jù)包(Keep-Alive)`保持鏈路不斷開。目前長(zhǎng)連接方式應(yīng)用范圍比較廣泛。9.4 DNS什么是DNS說白了就是將域名轉(zhuǎn)化為ip,比如www.qq.com,這是域名,可以是網(wǎng)絡(luò)包需要對(duì)方ip地址,域名是不能加入網(wǎng)絡(luò)包報(bào)頭的,所以就需要去找一個(gè)服務(wù)器問,qq的域名對(duì)應(yīng)的ip是多少。
大概的通信過程如下:
用戶主機(jī)上運(yùn)行著DNS的客戶端,就是我們的PC機(jī)或者手機(jī)客戶端運(yùn)行著DNS客戶端了瀏覽器將接收到的URL中抽取出域名字段,就是訪問的主機(jī)名,比如http://www.baidu.com/, 并將這個(gè)主機(jī)名傳送給DNS應(yīng)用的客戶端DNS客戶機(jī)端向DNS服務(wù)器端發(fā)送一份查詢報(bào)文,報(bào)文中包含著要訪問的主機(jī)名字段(中間包括一些列緩存查詢以及分布式DNS集群的工作)該DNS客戶機(jī)最終會(huì)收到一份回答報(bào)文,其中包含有該主機(jī)名對(duì)應(yīng)的IP地址一旦該瀏覽器收到來自DNS的IP地址,就可以向該IP地址定位的HTTP服務(wù)器發(fā)起TCP連接這里需要補(bǔ)充一個(gè)小知識(shí),關(guān)于域名的,大概了解一下就行
9.5 萬維網(wǎng)和http協(xié)議萬維網(wǎng)www是一個(gè)大規(guī)模的、聯(lián)機(jī)式的信息存儲(chǔ)所,是無數(shù)個(gè)網(wǎng)絡(luò)站點(diǎn)和網(wǎng)頁(yè)的集合。
知識(shí)盲區(qū): 在不少人看來,互聯(lián)網(wǎng)、因特網(wǎng)、萬維網(wǎng)沒有大多的區(qū)別,其實(shí)這三者之間的關(guān)系應(yīng)該是:互聯(lián)網(wǎng)包含因特網(wǎng),因特網(wǎng)包含萬維網(wǎng)。
互聯(lián)網(wǎng)internet。凡是由能彼此通信的設(shè)備組成的網(wǎng)絡(luò)就叫互聯(lián)網(wǎng),即使僅有兩臺(tái)機(jī)器(計(jì)算機(jī)、手機(jī)等),不論用何種技術(shù)使其彼此通信,都叫互聯(lián)網(wǎng),所以,互聯(lián)網(wǎng)有廣域網(wǎng)、城域網(wǎng)及局域網(wǎng)之分,國(guó)際標(biāo)準(zhǔn)的互聯(lián)網(wǎng)寫法是internet,字母i一定要小寫!因特網(wǎng)Internet。而因特網(wǎng)是互聯(lián)網(wǎng)中的一種,它可不是僅有兩臺(tái)機(jī)器組成的網(wǎng)絡(luò),而是由上千萬臺(tái)設(shè)備組成的網(wǎng)絡(luò)(該網(wǎng)絡(luò)具備很大的規(guī)模)。因特網(wǎng)使用TCP/IP協(xié)議讓不同的設(shè)備可以彼此通信。但使用TCP/IP協(xié)議的網(wǎng)絡(luò)并不一定是因特網(wǎng),一個(gè)局域網(wǎng)也可以使用TCP/IP協(xié)議。因特網(wǎng)是基于TCP/IP協(xié)議實(shí)現(xiàn)的,TCP/IP協(xié)議由很多協(xié)議組成,不同類型的協(xié)議又被放在不同的層,其中,位于應(yīng)用層的協(xié)議就有很多,比如FTP、SMTP、HTTP。所以,因特網(wǎng)提供的服務(wù)一般包括有:www(萬維網(wǎng))服務(wù)、電子郵件服務(wù)(outlook)、遠(yuǎn)程登錄(QQ)服務(wù)、文件傳輸(FTP)服務(wù)、網(wǎng)絡(luò)電話等等。萬維網(wǎng)。只要應(yīng)用層使用的是HTTP協(xié)議,就稱為萬維網(wǎng)(World Wide Web)。之所以在瀏覽器里輸入百度網(wǎng)址時(shí),能看見百度網(wǎng)提供的網(wǎng)頁(yè),就是因?yàn)槟膫€(gè)人瀏覽器和百度網(wǎng)的服務(wù)器之間使用的是HTTP協(xié)議在交流。萬維網(wǎng)使用統(tǒng)一資源定位符作為標(biāo)識(shí)符來訪問資源。
URL的格式如下:
用戶通過點(diǎn)擊超鏈接獲取資源,這些資源通過超文本傳輸協(xié)議(http)傳送給使用者。HTTP協(xié)議定義了瀏覽器怎樣向萬維網(wǎng)服務(wù)器請(qǐng)求萬維網(wǎng)文檔,以及服務(wù)器怎樣把文檔傳送給瀏覽器。http報(bào)文頭分析:
下面是對(duì)各部分的簡(jiǎn)要描述:
方法(method):客戶端希望服務(wù)器對(duì)資源執(zhí)行的動(dòng)作,是一個(gè)單獨(dú)的詞,比如,GET、POST或HEAD請(qǐng)求URL(request-URL):要直接與服務(wù)器進(jìn)行對(duì)話,只要請(qǐng)求URL是資源的絕對(duì)路徑就可以了,服務(wù)器可以假定自己是URL的主機(jī)/端口版本(version):報(bào)文所使用的HTTP版本。其格式:HTTP/<主要版本號(hào)>.<次要版本號(hào)>狀態(tài)碼(status-code):狀態(tài)碼是三位數(shù)字,描述了請(qǐng)求過程中所發(fā)生的情況。每個(gè)狀態(tài)碼的第一位數(shù)字都用于描述狀態(tài)的一般類別(比如,“成功”、“出錯(cuò)”等等)原因短語(reason-phrase):數(shù)字狀態(tài)碼的可讀版本,包含行終止序列之前的所有文本。原因短語只對(duì)人類有意義,因此,盡管響應(yīng)行HTTP/1.0 200 NOT OK和HTTP/1.0 200 OK中原因短語的含義不同,但同樣都會(huì)被當(dāng)作成功指示處理頭部(header):可以有零個(gè)或多個(gè)頭部,每個(gè)首部都包含一個(gè)名字,后面跟著一個(gè)冒號(hào)(:),然后是一個(gè)可選的空格,接著是一個(gè)值,最后是一個(gè)CRLF首部是由一個(gè)空行(CRLF)結(jié)束的,表示了頭部列表的結(jié)束和實(shí)體主體部分的開始實(shí)體的主體部分(entity-body):實(shí)體的主體部分包含一個(gè)由任意數(shù)據(jù)組成的數(shù)據(jù)塊,并不是所有的報(bào)文都包含實(shí)體的主體部分,有時(shí),報(bào)文只是以一個(gè)CRLF結(jié)束。下面是常用頭部:
通用頭部:既可以出現(xiàn)在請(qǐng)求報(bào)文中,也可以出現(xiàn)在響應(yīng)報(bào)文中,它提供了與報(bào)文相關(guān)的最基本的信息
Connection:允許客戶端和服務(wù)器指定與請(qǐng)求/響應(yīng)連接有關(guān)的選項(xiàng),http1.1默認(rèn)是keep-aliveDate:提供日期和時(shí)間標(biāo)志,說明報(bào)文是什么時(shí)間創(chuàng)建的Transfer-Encoding:告知接收端為了保證報(bào)文的可靠傳輸,對(duì)報(bào)文采用了什么編碼方式Cache-Control:用于隨報(bào)文傳送緩存指示請(qǐng)求頭部:請(qǐng)求頭部是只在請(qǐng)求報(bào)文中有意義的頭部。用于說明是誰或什么在發(fā)送請(qǐng)求、請(qǐng)求源自何處,或者客戶端的喜好及能力
Host:給出了接收請(qǐng)求的服務(wù)器的主機(jī)名和端口號(hào)Referer:提供了包含當(dāng)前請(qǐng)求URI的文檔的URLUser-Agent:將發(fā)起請(qǐng)求的應(yīng)用程序名稱告知服務(wù)器Accept:告訴服務(wù)器能夠發(fā)送哪些媒體類型Accept-Encoding:告訴服務(wù)器能夠發(fā)送哪些編碼方式Accept-Language:告訴服務(wù)器能夠發(fā)送哪些語言Range:如果服務(wù)器支持范圍請(qǐng)求,就請(qǐng)求資源的指定范圍If-Range:允許對(duì)文檔的某個(gè)范圍進(jìn)行條件請(qǐng)求Authorization:包含了客戶端提供給服務(wù)器,以便對(duì)其自身進(jìn)行認(rèn)證的數(shù)據(jù)Cookie:客戶端用它向服務(wù)器傳送數(shù)據(jù)響應(yīng)頭部:響應(yīng)頭部為客戶端提供了一些額外信息,比如誰在發(fā)送響應(yīng)、響應(yīng)者的功能,甚至與響應(yīng)相關(guān)的一些特殊指令
Age:(從最初創(chuàng)建開始)響應(yīng)持續(xù)時(shí)間Server:服務(wù)器應(yīng)用程序軟件的名稱和版本Accept-Ranges:對(duì)此資源來說,服務(wù)器可接受的范圍類型Set-Cookie:在客戶端設(shè)置數(shù)據(jù),以便服務(wù)器對(duì)客戶端進(jìn)行標(biāo)識(shí)實(shí)體首部:描述主體的長(zhǎng)度和內(nèi)容,或者資源自身
Allow:列出了可以對(duì)此實(shí)體執(zhí)行的請(qǐng)求方法Location:告知客戶端實(shí)體實(shí)際上位于何處,用于將接收端定向到資源的位置(URL)上去Content-Base:解析主體中的相對(duì)URL時(shí)使用的基礎(chǔ)URLContent-Encoding:對(duì)主體執(zhí)行的任意編碼方式Content-Language:理解主體時(shí)最適宜使用的自然語言Content-Length:主體的長(zhǎng)度Content-Type:這個(gè)主體的對(duì)象類型ETag:與此實(shí)體相關(guān)的實(shí)體標(biāo)記Last-Modified:這個(gè)實(shí)體最后一次被修改的日期和時(shí)間實(shí)體的主體部分:該部分其實(shí)就是HTTP要傳輸?shù)膬?nèi)容,是可選的。HTTP報(bào)文可以承載很多類型的數(shù)字?jǐn)?shù)據(jù),比如,圖片、視頻、HTML文檔電子郵件、軟件應(yīng)用程序等等。
常用的HTTP方法和狀態(tài)碼就不詳細(xì)介紹了,本文完結(jié)!你這都能耐心看完,我覺得你太厲害了!
以上就是關(guān)于pos機(jī)cdma網(wǎng)線,前端需要了解的計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于pos機(jī)cdma網(wǎng)線的知識(shí),希望能夠幫助到大家!