TCP/IP协议(二)tcp/ip基础知识
轉(zhuǎn)載:http://www.cnblogs.com/imyalost/p/6139191.html
一、TCP/IP的標(biāo)準(zhǔn)化
1、TCP/IP的含義
一般來(lái)說,TCP/IP是利用IP進(jìn)行通信時(shí)所必須用到的協(xié)議群的統(tǒng)稱。
具體點(diǎn),IP或ICMP、TCP或UDP、TELENT或FTP、以及HTTP等都屬于TCP/IP協(xié)議,而TCP/IP一詞泛指這些協(xié)議,有時(shí)稱它們?yōu)門CP/IP為網(wǎng)際協(xié)議族/TCP/IP協(xié)議族
如下圖所示:
?
2、標(biāo)準(zhǔn)化的精髓
特性:開放性、注重實(shí)用性(被標(biāo)準(zhǔn)化的協(xié)議能否被實(shí)際運(yùn)用)
TCP/IP協(xié)議由IETF(國(guó)際互聯(lián)網(wǎng)工程任務(wù)組)討論制定;即將協(xié)議的大致規(guī)范定下來(lái),然后進(jìn)行通信試驗(yàn),及時(shí)修訂
?
3、規(guī)范——RFC
RFC:request for comment,即征求意見表;那些需要標(biāo)準(zhǔn)化的協(xié)議,會(huì)被計(jì)入RFC并在互聯(lián)網(wǎng)上公布;RFC不僅包含協(xié)議規(guī)范內(nèi)容,還包括協(xié)議實(shí)現(xiàn)和運(yùn)用的相關(guān)信息,以及實(shí)驗(yàn)方面的信息
RFC通過編號(hào)組織每個(gè)協(xié)議的標(biāo)準(zhǔn)化請(qǐng)求;其編碼是既定的,一旦成為某個(gè)RFC的內(nèi)容,就不能再對(duì)其進(jìn)行修改;若要修改已有某個(gè)協(xié)議內(nèi)容,則需要重新發(fā)行一個(gè)新的RFC文檔,同時(shí),老的RFC文檔作廢
新的RFC文檔會(huì)明確規(guī)定是擴(kuò)展了哪個(gè)已有RFC以及要作廢哪個(gè)已有RFC
基于每次修改RFC時(shí)都會(huì)產(chǎn)生新的RFC編號(hào)太麻煩,為此,采用了STD(standard)方式管理編號(hào),其作用是:用來(lái)記錄哪個(gè)編號(hào)制定哪個(gè)協(xié)議
?
4、TCP/IP的標(biāo)準(zhǔn)化流程
TCP/IP的標(biāo)準(zhǔn)化流程大概分為以下幾個(gè)階段:
①.互聯(lián)網(wǎng)草案階段:從提出開始不斷進(jìn)行討論實(shí)驗(yàn),有了一定成熟度,覺得實(shí)際可行,認(rèn)為其可以進(jìn)行標(biāo)準(zhǔn)化,可進(jìn)入下一階段
②.提議標(biāo)準(zhǔn)階段:計(jì)入RFC,開始進(jìn)入眾多設(shè)備廠商生產(chǎn)環(huán)節(jié),投入試驗(yàn)使用,一般為6個(gè)月,當(dāng)所有參與協(xié)議的人覺得其“實(shí)用性強(qiáng),不存在太多問題”,則進(jìn)入下一階段
③.草案標(biāo)準(zhǔn)階段:一般為期4個(gè)月,在經(jīng)過不斷的使用和討論改進(jìn)后,被大眾所使用接受,那么這個(gè)草案標(biāo)準(zhǔn)就進(jìn)入下一個(gè)階段
④.標(biāo)準(zhǔn)階段:到這個(gè)階段,意味著該標(biāo)準(zhǔn)已廣泛被使用且具有很強(qiáng)的實(shí)用性
?
5、RFC獲取方法
①.網(wǎng)址:http://www.rfc-editor.org/rfc/
? ? ? ? ftp://ftp.rfc-editor.org/in-notes/
這兩個(gè)網(wǎng)址保存著所有的RFC文件,網(wǎng)站中有一個(gè)名為rfc-index.txt的文件,包含所有RFC概覽;RFC網(wǎng)站除了發(fā)布RFC相關(guān)信息,還提供RFC檢索功能
?
②.STD或FYI以及ID獲取地址
關(guān)于STD、FYI、ID也可以從以下網(wǎng)站獲取,其概覽一分別記錄在std-index.txt、fyi-index.txt等文件中
STD獲取地址:http://www.rfc-edctor.org/in-notes/std/
FYI獲取地址:http://www.rfc-edctor.org/in-notes/fyi/
ID獲取地址:http://www.rfc-edctor.org/Internet-drafts/
JPNIC的ftp服務(wù)器中的目錄:
STD獲取網(wǎng)址:ftp://ftp.nic.ad.jp/rfc/std/
FYI獲取網(wǎng)址:ftp://ftp.nic.ad.jp/rfc/fyi/
ID獲取網(wǎng)址:ftp://ftp.nic.ad.jp/internet-drafts/
?
二、互聯(lián)網(wǎng)基礎(chǔ)知識(shí)
1、互聯(lián)網(wǎng)定義
互聯(lián)網(wǎng),英文單詞為Internet;Internet指的是將多個(gè)網(wǎng)絡(luò)連接使其構(gòu)成一個(gè)更大的網(wǎng)絡(luò),所以Internet本意為網(wǎng)際網(wǎng)
“互聯(lián)網(wǎng)”是指由ARPANET發(fā)展而來(lái)、互聯(lián)全世界的計(jì)算機(jī)網(wǎng)絡(luò);互聯(lián)全世界的計(jì)算機(jī)網(wǎng)絡(luò),現(xiàn)在“互聯(lián)網(wǎng)”對(duì)應(yīng)的英文單詞為“The Internet”
與Internet對(duì)應(yīng)的另一種網(wǎng)絡(luò)叫做intranet,該網(wǎng)絡(luò)指使用Internet技術(shù)將企業(yè)內(nèi)部組織機(jī)構(gòu)連接起來(lái)形成一個(gè)企業(yè)范圍的內(nèi)部網(wǎng)絡(luò),提供面向企業(yè)內(nèi)部的通信服務(wù)
?
2、互聯(lián)網(wǎng)與TCP/IP關(guān)系
互聯(lián)網(wǎng)進(jìn)行通信時(shí),需要相應(yīng)的網(wǎng)絡(luò)協(xié)議,TCP/IP是為使用互聯(lián)網(wǎng)而開發(fā)定制的協(xié)議族;因此,互聯(lián)網(wǎng)的協(xié)議就是TCP/IP
?
3、互聯(lián)網(wǎng)的結(jié)構(gòu)
小范圍內(nèi)的網(wǎng)絡(luò)連接形成機(jī)構(gòu)內(nèi)部網(wǎng)絡(luò),機(jī)構(gòu)內(nèi)部網(wǎng)絡(luò)連接形成區(qū)域網(wǎng)絡(luò),各個(gè)區(qū)域相互連接,則形成連接全是的互聯(lián)網(wǎng);互聯(lián)網(wǎng)是一個(gè)有層次的網(wǎng)絡(luò)
互聯(lián)網(wǎng)中每個(gè)網(wǎng)絡(luò)都是由骨干網(wǎng)(BackBone)和末端網(wǎng)(Stub)組成;每個(gè)網(wǎng)絡(luò)之間通過NOC相連;如果運(yùn)營(yíng)商不同,則網(wǎng)絡(luò)連接方式和使用方法也不同。異構(gòu)網(wǎng)絡(luò)需要有IX支持
互聯(lián)網(wǎng)就是眾多異構(gòu)網(wǎng)絡(luò)通過IX互聯(lián)的一個(gè)巨型網(wǎng)絡(luò)
△ NOC:Network Operation Center(網(wǎng)絡(luò)操作中心)
△ IX:Internet Exchange:網(wǎng)絡(luò)交換中心
?
4、ISP和區(qū)域網(wǎng)
連接互聯(lián)網(wǎng)需要向ISP(internet service provider:互聯(lián)網(wǎng)服務(wù)提供商)或區(qū)域網(wǎng)提出申請(qǐng),不同的ISP提供的互聯(lián)網(wǎng)接入服務(wù)也不同
區(qū)域網(wǎng)指的是特定區(qū)域內(nèi)由團(tuán)體或志愿者提供的網(wǎng)絡(luò)服務(wù),通常價(jià)格比較便宜,但有時(shí)會(huì)出現(xiàn)連接方式復(fù)雜或者使用有限制的情況
當(dāng)申請(qǐng)網(wǎng)絡(luò)服務(wù)時(shí),建議確認(rèn)了解一下提供的具體服務(wù)條目、服務(wù)的細(xì)則(接入方式、條件、費(fèi)用)等,再?zèng)Q定
?
三、TCP/IP協(xié)議分層模型
1、TCP/IP與OSI參考模型
TCP/IP與OSI在分層模塊上的區(qū)別:
OSI:注重通信協(xié)議必要的功能是什么
TCP/IP:在計(jì)算機(jī)上實(shí)現(xiàn)協(xié)議應(yīng)該開發(fā)哪種程序
?
2、硬件(物理層)
TCP/IP的最底層是負(fù)責(zé)數(shù)據(jù)傳輸?shù)挠布_@種硬件就相當(dāng)于以太網(wǎng)或電話線路等物理層的設(shè)備,TCP/IP是在網(wǎng)絡(luò)互連的設(shè)備之間能夠通信的前提下才被提出的協(xié)議。
?
3、網(wǎng)絡(luò)接口層(數(shù)據(jù)鏈路層)
利用以太網(wǎng)中的數(shù)據(jù)鏈路進(jìn)行通信,屬于接口層;將其當(dāng)做“驅(qū)動(dòng)程序”也可以(驅(qū)動(dòng)程序是在操作系統(tǒng)與硬件之前起橋梁作用的軟件)
PS:有時(shí)也將硬件層和網(wǎng)絡(luò)接口層合并起來(lái),稱為“網(wǎng)絡(luò)通信層”
?
4、互聯(lián)網(wǎng)層(網(wǎng)絡(luò)層)
互聯(lián)網(wǎng)層使用IP協(xié)議,相當(dāng)于OSI中的第三層模型;IP協(xié)議基于IP地址轉(zhuǎn)發(fā)分包數(shù)據(jù)
IP協(xié)議的作用:將分組數(shù)據(jù)包發(fā)送到目的主機(jī)
TCP/IP分層中的互聯(lián)網(wǎng)層與傳輸層的功能通常由操作系統(tǒng)提供,尤其是路由器,它必須得實(shí)現(xiàn)通過互聯(lián)網(wǎng)層轉(zhuǎn)發(fā)分組數(shù)據(jù)包的功能
連接互聯(lián)網(wǎng)的所有主機(jī)跟路由器必須都實(shí)現(xiàn)IP功能,其他鏈接互聯(lián)網(wǎng)的網(wǎng)絡(luò)設(shè)備(網(wǎng)橋、中繼器)則不是必須
IP:跨越網(wǎng)絡(luò)傳送數(shù)據(jù)包,使整個(gè)互聯(lián)網(wǎng)都能收到數(shù)據(jù)的協(xié)議;傳送數(shù)據(jù)時(shí),IP地址作為主機(jī)的標(biāo)識(shí)
? ? ? IP還隱含數(shù)據(jù)鏈路層的功能:通過IP,相互通信的主機(jī)之間不論經(jīng)過怎樣的數(shù)據(jù)鏈路,都可以實(shí)現(xiàn)通信
? ? ? IP是分組交換的一種協(xié)議,但是不具有重發(fā)機(jī)制;即使分組數(shù)據(jù)包未到達(dá)對(duì)端主機(jī)也不會(huì)重發(fā);屬于非可靠性傳輸協(xié)議
ICMP:IP數(shù)據(jù)包發(fā)送過程中一旦發(fā)生異常導(dǎo)致無(wú)法到達(dá)對(duì)端目標(biāo)地址時(shí),需要給發(fā)送端一個(gè)發(fā)生異常的通知,ICMP就是為了該功能而定制;有時(shí)可用來(lái)診斷網(wǎng)絡(luò)健康狀況
ARP:從分組數(shù)據(jù)包的IP地址解析出物理地址(MAC地址)的一種協(xié)議
?
5、傳輸層
TCP/IP傳輸層有TCP和UDP兩個(gè)具有代表性的協(xié)議,主要功能是讓應(yīng)用程序之間實(shí)現(xiàn)通信;其通信邏輯如下圖:
?
TCP:面向有連接的傳輸層協(xié)議,可以保證通信兩端主機(jī)之間的通信可達(dá);可以正確的處理傳輸過程中丟包、傳輸亂序等異常情況;還能有效利用帶寬,緩解網(wǎng)絡(luò)擁堵。
UDP:面向無(wú)連接的傳輸層協(xié)議,不關(guān)注對(duì)端是否真的收到傳送的數(shù)據(jù);如需檢查對(duì)端是否收到分組數(shù)據(jù)包,或?qū)Χ耸欠襁B接到網(wǎng)絡(luò),需要在應(yīng)用程序中實(shí)現(xiàn)常用于分組數(shù)據(jù)較少或多播。廣播通信及視頻通信等領(lǐng)域。
?
6、應(yīng)用層(會(huì)話層以上的分層)
TCP/IP分層中,將OSI中的會(huì)話層、表示層、應(yīng)用層都集中到了應(yīng)用程序中實(shí)現(xiàn)
?
TCP/IP應(yīng)用的架構(gòu)絕大多數(shù)術(shù)語(yǔ)客戶端/服務(wù)端模型;提供服務(wù)的程序叫服務(wù)端,接受服務(wù)的程序叫客戶端,服務(wù)器會(huì)預(yù)先部署到主機(jī)上,等待接收任何時(shí)刻客戶端發(fā)送的請(qǐng)求
常見的應(yīng)用層協(xié)議:
HTTP協(xié)議:(HyperText Transfer Protocol)
瀏覽器與客戶端通信所使用的協(xié)議,傳輸數(shù)據(jù)主要格式為HTML,http協(xié)議OSI應(yīng)用層協(xié)議,而HTML屬于表示層的協(xié)議
文件傳輸協(xié)議:FTP(File Transfer Protocol)
傳輸過程可以選擇用二進(jìn)制還是文本方式,傳輸時(shí)會(huì)建立兩個(gè)TCP連接:發(fā)送傳輸請(qǐng)求時(shí)用到的控制連接和實(shí)際傳輸時(shí)用到的數(shù)據(jù)連接
電子郵件協(xié)議:SMTP(Simple Mail Transfer Protocol)
可以發(fā)送聲音圖像文字,甚至改變文字大小、顏色等
遠(yuǎn)程登錄(TELNET與SSH):
常見的還有其他遠(yuǎn)程登錄協(xié)議,比如:BSD UNIX系中的rlogin的r命令和X Window System中的X協(xié)議
網(wǎng)絡(luò)管理協(xié)議:SNMP(Simple Newwork Management Protocol)
在TCP/IP進(jìn)行網(wǎng)絡(luò)管理時(shí),采用該協(xié)議,其中使用SNMP管理的主機(jī)。網(wǎng)橋、路由器等稱作SNMP代理(Agent),進(jìn)行管理的那一段叫做管理器(Manager)
在SNMP代理端,保存著網(wǎng)絡(luò)接口信息、通信數(shù)據(jù)量、異常數(shù)據(jù)量以及設(shè)備溫度等信息,這些信息通過MIB訪問,在TCP/IP中,SNMP屬于應(yīng)用協(xié)議,MIB屬于表示層協(xié)議
MIB(Management Information Base):可透過網(wǎng)絡(luò)的結(jié)構(gòu)變量
?
四、TCP/IP分層模型
1、數(shù)據(jù)包首部
每個(gè)分層都會(huì)對(duì)所發(fā)送的數(shù)據(jù)附加一個(gè)首部,首部中包含該層必要的信息;通常為協(xié)議提供的信息為包首部,所要發(fā)送的內(nèi)容為數(shù)據(jù)
關(guān)于包、幀、數(shù)據(jù)報(bào)、段、消息的概述:
包:一個(gè)概括性術(shù)語(yǔ),指數(shù)據(jù)整體
幀:數(shù)據(jù)鏈路層中包的單位
數(shù)據(jù)報(bào):IP和UDP等網(wǎng)絡(luò)層以上分層中包的單位
段:TCP數(shù)據(jù)流中的信息
消息:應(yīng)用協(xié)議中數(shù)據(jù)的單位
?
2、發(fā)送數(shù)據(jù)包
假設(shè)A發(fā)送郵件“早上好”給B,那么它的通信過程大概如下:
①.應(yīng)用程序處理
應(yīng)用程序啟動(dòng),新建郵件及內(nèi)容,點(diǎn)擊發(fā)送,應(yīng)用程序?qū)︵]件進(jìn)行編碼處理,然后發(fā)送給下一層TCP
②.TCP模塊的處理
根據(jù)上層應(yīng)用發(fā)來(lái)的指示,建立負(fù)責(zé)建立連接、發(fā)送連接及斷開連接;TCP提供將應(yīng)用層發(fā)來(lái)的數(shù)據(jù)順利發(fā)送至對(duì)端的可靠傳輸
為了實(shí)現(xiàn)該功能,會(huì)在應(yīng)用層數(shù)據(jù)前端加一個(gè)TCP首部,首部包括源端口號(hào)和目標(biāo)端口號(hào)。序號(hào)以及校驗(yàn),隨后將附加了TCP首部的包發(fā)送給IP
③.IP模塊的處理
IP將TCP傳遞的首部和數(shù)據(jù)合并,并在首部之前加上自己的IP,IP包生成后,參考路由控制表決定接受此IP包的路由或者主機(jī),隨后,IP包將被發(fā)送給連接這些路由或主機(jī)網(wǎng)絡(luò)接口的驅(qū)動(dòng)程序,實(shí)現(xiàn)發(fā)送數(shù)據(jù)
④.網(wǎng)絡(luò)接口(以太網(wǎng)驅(qū)動(dòng))的處理
以太網(wǎng)接受到的IP包,對(duì)其來(lái)說就是數(shù)據(jù),會(huì)給其加上以太網(wǎng)首部并進(jìn)行發(fā)送處理,首部中包含接收端MAC地址,發(fā)送端MAC地址以及標(biāo)志以太網(wǎng)類型的以太網(wǎng)數(shù)據(jù)協(xié)議
?
3、數(shù)據(jù)包接收處理
①.網(wǎng)絡(luò)接口(以太網(wǎng)驅(qū)動(dòng))的處理
主機(jī)收到以太網(wǎng)包,首先找到MAC地址判斷是否為發(fā)送給自己的,如果不是則丟棄數(shù)據(jù)
如果是,則確認(rèn)數(shù)據(jù)類型,然后將數(shù)據(jù)包發(fā)送給對(duì)應(yīng)的類型處理程序處理
②.IP模塊的處理
收到數(shù)據(jù)包先進(jìn)行判斷處理,如果包首部IP地址與自己匹配則接受數(shù)據(jù)并尋找到上一層協(xié)議,并轉(zhuǎn)發(fā)給上一層進(jìn)行處理
③.TCP模塊的處理
接收到數(shù)據(jù)包首先計(jì)算校驗(yàn)和,判斷數(shù)據(jù)包是否被破壞,然后檢查是否按序接受數(shù)據(jù),最后檢查端口號(hào),確定具體應(yīng)用程序
數(shù)據(jù)接受完畢,接收端發(fā)送一個(gè)“確認(rèn)回執(zhí)”個(gè)發(fā)送端
④.應(yīng)用程序的處理
接收端應(yīng)用程序會(huì)直接接收發(fā)送端的數(shù)據(jù),并進(jìn)行解析處理
轉(zhuǎn)載于:https://www.cnblogs.com/huangjianping/p/7995547.html
總結(jié)
以上是生活随笔為你收集整理的TCP/IP协议(二)tcp/ip基础知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RequireJS 主入口加载模块经常会
- 下一篇: View的事件体系