通宵夜夜
中級(jí)會(huì)員
發(fā)短消息
關(guān)注Ta
積分 1092
帖子 70
威望 2217 個(gè)
禮品券 0 個(gè)
專(zhuān)家指數(shù) -19
注冊(cè) 2009-4-10 專(zhuān)業(yè)方向
通信
回答問(wèn)題數(shù) 0
回答被采納數(shù) 0
回答采納率 0%
|
大
中
小
發(fā)表于 2009-04-12 11:42:01
只看樓主
|
此文章為我從他處,轉(zhuǎn)載而來(lái),感覺(jué)不錯(cuò),所以就帖出來(lái)與大家分享!
包含了一系列構(gòu)成互聯(lián)網(wǎng)基礎(chǔ)的網(wǎng)絡(luò)協(xié)議。這些協(xié)議最早發(fā)源于美國(guó)國(guó)防部的DARPA互聯(lián)網(wǎng)項(xiàng)目。TCP/IP字面上代表了兩個(gè)協(xié)議:TCP傳輸控制協(xié)議和IP互聯(lián)網(wǎng)協(xié)議。
時(shí)間回放到1983年1月1日,在這天,互聯(lián)網(wǎng)的前身Arpanet中,TCP/IP協(xié)議取代了舊的網(wǎng)絡(luò)核心協(xié)議NCP(Network Core Protocol),從而成為今天的互聯(lián)網(wǎng)的基石。最早的的TCP/IP由Vinton Cerf和Robert Kahn兩位開(kāi)發(fā),慢慢地通過(guò)競(jìng)爭(zhēng)戰(zhàn)勝了其它一些網(wǎng)絡(luò)協(xié)議的方案,比如國(guó)際標(biāo)準(zhǔn)化組織ISO的OSI模型。TCP/IP的蓬勃發(fā)展發(fā)生在上世紀(jì)的90年代中期。當(dāng)時(shí)一些重要而可靠的工具的出世,例如頁(yè)面描述語(yǔ)言HTML和瀏覽器Mosaic,導(dǎo)致了互聯(lián)網(wǎng)應(yīng)用的飛束發(fā)展。
隨著互聯(lián)網(wǎng)的發(fā)展,目前流行的IPv4協(xié)議(IP Version 4,IP版本四)已經(jīng)接近它的功能上限。IPv4最致命的兩個(gè)缺陷在與:
地址只有32位,IP地址空間有限;
不支持服務(wù)等級(jí)(Quality of Service, Qos)的想法,無(wú)法管理帶寬和優(yōu)先級(jí),故而不能很好的支持現(xiàn)今越來(lái)越多的實(shí)時(shí)的語(yǔ)音和視頻應(yīng)用。因此IPv6 (IP Version 6, IP版本六) 浮出海面,用以取代IPv4。
TCP/IP成功的另一個(gè)因素在與對(duì)為數(shù)眾多的低層協(xié)議的支持。這些低層協(xié)議對(duì)應(yīng)與OSI模型中的第一層(物理層)和第二層(數(shù)據(jù)鏈路層)。每層的所有協(xié)議幾乎都有一半數(shù)量的支持TCP/IP,例如: 以太網(wǎng)(Ethernet),令牌環(huán)(Token Ring),光纖數(shù)據(jù)分布接口(FDDI),端對(duì)端協(xié)議( PPP),X.25,幀中繼(Frame Relay),ATM,Sonet, SDH等。
目錄
1 TCP/IP協(xié)議棧組成
2 必須協(xié)議
3 推薦協(xié)議
4 可選協(xié)議
5 范例: 不同計(jì)算機(jī)運(yùn)行的不同協(xié)議
6 參考文獻(xiàn)
TCP/IP協(xié)議棧組成
整個(gè)通信網(wǎng)絡(luò)的任務(wù),可以劃分成不同的功能塊,即抽象成所謂的 ” 層” 。用于互聯(lián)網(wǎng)的協(xié)議可以比照TCP/IP參考模型進(jìn)行分類(lèi)。TCP/IP協(xié)議棧起始于第三層協(xié)議IP(互聯(lián)網(wǎng)協(xié)議) 。所有這些協(xié)議都在相應(yīng)的RFC文檔中討論及標(biāo)準(zhǔn)化。重要的協(xié)議在相應(yīng)的RFC文檔中均標(biāo)記了狀態(tài): “必須“ (required) ,“推薦“ (recommended) ,“可選“ (elective) 。其它的協(xié)議還可能有“ 試驗(yàn)“(experimental) 或“ 歷史“(historic) 的狀態(tài)。
必須協(xié)議
所有的TCP/IP應(yīng)用都必須實(shí)現(xiàn)IP和ICMP。對(duì)于一個(gè)路由器(router) 而言,有這兩個(gè)協(xié)議就可以運(yùn)作了,雖然從應(yīng)用的角度來(lái)看,這樣一個(gè)路由器意義不大。實(shí)際的路由器一般還需要運(yùn)行許多“推薦“使用的協(xié)議,以及一些其它的協(xié)議。
在幾乎所有連接到互聯(lián)網(wǎng)上的計(jì)算機(jī)上都存在的IPv4 協(xié)議出生在1981年,今天的版本和最早的版本并沒(méi)有多少改變。升級(jí)版IPv6 的工作始于1995年,目的在與取代IPv4。ICMP 協(xié)議主要用于收集有關(guān)網(wǎng)絡(luò)的信息查找錯(cuò)誤等工作。
推薦協(xié)議
每一個(gè)應(yīng)用層(TCP/IP參考模型 的最高層) 一般都會(huì)使用到兩個(gè)傳輸層協(xié)議之一: 面向連接的TCP傳輸控制協(xié)議和無(wú)連接的包傳輸?shù)腢DP用戶(hù)數(shù)據(jù)報(bào)文協(xié)議。 其它的一些推薦協(xié)議有:
TELNET (Teletype over the Network, 網(wǎng)絡(luò)電傳) ,通過(guò)一個(gè)終端(terminal)登陸到網(wǎng)絡(luò)(運(yùn)行在TCP協(xié)議上)。
FTP (File Transfer Protocol, 文件傳輸協(xié)議) ,由名知義(運(yùn)行在TCP協(xié)議上) 。
SMTP (Simple Mail Transfer Protocol,簡(jiǎn)單郵件傳輸協(xié)議) ,用來(lái)發(fā)送電子郵件(運(yùn)行在TCP協(xié)議上) 。
DNS (Domain Name Service,域名服務(wù)) ,用于完成地址查找,郵件轉(zhuǎn)發(fā)等工作(運(yùn)行在TCP和UDP協(xié)議上) 。
ECHO (Echo Protocol, 回繞協(xié)議) ,用于查錯(cuò)及測(cè)量應(yīng)答時(shí)間(運(yùn)行在TCP和UDP協(xié)議上) 。
NTP (Network Time Protocol,網(wǎng)絡(luò)時(shí)間協(xié)議) ,用于網(wǎng)絡(luò)同步(運(yùn)行在UDP協(xié)議上) 。
SNMP (Simple Network Management Protocol, 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議) ,用于網(wǎng)絡(luò)信息的收集和網(wǎng)絡(luò)管理。
BOOTP (Boot Protocol,啟動(dòng)協(xié)議) ,應(yīng)用于無(wú)盤(pán)設(shè)備(運(yùn)行在UDP協(xié)議上)。
可選協(xié)議
最常用的一些有
支撐萬(wàn)維網(wǎng)WWW的超文本傳輸協(xié)議HTTP,
動(dòng)態(tài)配置IP地址的DHCP(Dynamic Host Configuration Protocol,動(dòng)態(tài)主機(jī)配置協(xié)議),
收郵件用的POP3 (Post Office Protocol, version 3, 郵局協(xié)議) ,
用于加密安全登陸用的SSH (Secure Shell,用于替代安全性差的TELNET) ,
用于動(dòng)態(tài)解析以太網(wǎng)硬件地址的ARP (Address Resolution Protocol,地址解析協(xié)議) 。
范例: 不同計(jì)算機(jī)運(yùn)行的不同協(xié)議
一個(gè)簡(jiǎn)單的路由器上可能會(huì)實(shí)現(xiàn)ARP, IP, ICMP, UDP, SNMP, RIP。
WWW用戶(hù)端使用ARP, IP, ICMP, UDP, TCP, DNS, HTTP, FTP。
一臺(tái)用戶(hù)電腦上還會(huì)運(yùn)行如TELNET, SMTP, POP3, SNMP, ECHO, DHCP, SSH, NTP。
無(wú)盤(pán)設(shè)備可能會(huì)在固件比如ROM中實(shí)現(xiàn)了ARP, IP, ICMP, UDP, BOOT, TFTP (均為面向數(shù)據(jù)報(bào)的協(xié)議,實(shí)現(xiàn)起來(lái)相對(duì)簡(jiǎn)單)。
TCP/IP基礎(chǔ)講座-1:1層,2層,3層?
讀過(guò)關(guān)于網(wǎng)絡(luò)的課程的,都知道ISO-OSI 7層協(xié)議這個(gè)名詞,許多書(shū)籍都會(huì)具體的畫(huà)出那幅圖,然后標(biāo)注上物理層,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層等等.背的大家要死.但是卻又不知道具體這些層次干嗎用的勒?
其實(shí)在互聯(lián)網(wǎng)中,由于實(shí)際使用的是TCP/IP模型,也就是DOD模型(現(xiàn)在不知道沒(méi)關(guān)系,后面會(huì)說(shuō)).所以7層模型在現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境中只是一個(gè)理論上,學(xué)究派的東西.這個(gè)模型中,我們真正關(guān)心的是下面的3層.
1.物理層 .哦.是的.這個(gè)名詞還算容易了解.網(wǎng)卡還有那些網(wǎng)線(xiàn)構(gòu)成了這一層.那些在網(wǎng)線(xiàn)中傳播的二進(jìn)制數(shù)據(jù)流是這層的具體表象.也就是說(shuō),這一層上面沒(méi)有什么協(xié)議(不是很精確的說(shuō)法,但是你可以這么理解).有的都是電流而已.我們把兩臺(tái)機(jī)器用網(wǎng)線(xiàn)連起來(lái).或者用HUB把機(jī)器都連起來(lái),這些工作就是物理層的工作.
有2個(gè)設(shè)備屬于物理層的,一個(gè)是中繼器,一個(gè)是HUB.大家知道.物理上面的連線(xiàn)距離一長(zhǎng)就會(huì)產(chǎn)生電信號(hào)的衰減.為了重新加強(qiáng)這個(gè)信號(hào),我們就需要在一定距離之后加上一個(gè)信號(hào)放大器,這就是中繼器(repeater)
恩...這個(gè)比較容易理解.repeater就是連接在2根網(wǎng)線(xiàn)之間的么.沒(méi)有做任何處理.所以只是一個(gè)物理設(shè)備.屬于1層的.
那么集線(xiàn)器(HUB) 呢?這個(gè)怎么會(huì)是在1層???似乎非常難以理解.
當(dāng)我說(shuō)出HUB的本質(zhì),大家就能夠清楚了解了
HUB的本質(zhì)其實(shí)只是一個(gè)多口中繼器(MULTI PORT REPEATER) .啊...這樣大家能夠理解了.HUB不叫多口中繼器其實(shí)只是為了銷(xiāo)售上面的策略.他的本質(zhì)就是連接多根網(wǎng)線(xiàn)的一個(gè)物理設(shè)備.也是不對(duì)經(jīng)過(guò)的電信號(hào)做任何邏輯處理的.
2.數(shù)據(jù)鏈路層
歐~這個(gè)名詞有些別扭了.DATA LINK層.英文似乎更加容易理解.
這個(gè)層面上面的東西不再是電信號(hào)了.而是DATA了.對(duì),既然是DATA就有了邏輯關(guān)系了.這個(gè)層面上面的基本單位是幀(Frame) .這層和物理層的接觸是最緊密的.他是把從網(wǎng)線(xiàn)上面?zhèn)鬏數(shù)碾娏鬓D(zhuǎn)換成0和1的組合.
物理層只是網(wǎng)卡對(duì)網(wǎng)線(xiàn)發(fā)出或者接受各種電平信號(hào),那就是說(shuō)物理層是無(wú)法判別電流的來(lái)源和目標(biāo)的.那么把電流打成0和1的幀之后.里面就有邏輯數(shù)據(jù)了.有了數(shù)據(jù),就可以判別數(shù)據(jù)從何而來(lái),到何處去.所以也就可以真正的形成LINK.
既然可以判別地址,那么地址是按照什么來(lái)判別的呢?
那就是最重要的概念之一:MAC地址
大家肯定都聽(tīng)說(shuō)過(guò)我們的網(wǎng)卡都有MAC地址
有些人可能也知道MAC地址都是唯一的.
對(duì).MAC地址是全球唯一的.也就是說(shuō)你的網(wǎng)卡雖然便宜.但是他也是世界上獨(dú)一無(wú)二的.
有些人說(shuō)他可以改MAC.那就不是唯一了.對(duì).雖然可以更改,那只是欺騙上層對(duì)封包里面的MAC地址進(jìn)行改寫(xiě).你網(wǎng)卡真正的MAC地址是固化的.無(wú)法修改的.
我們有了MAC地址了.這樣就可以有針對(duì)性對(duì)所有連接在一起的計(jì)算機(jī)進(jìn)行通訊了.是的.我們終于可以在一個(gè)局域網(wǎng)內(nèi)通訊了.
但是有個(gè)問(wèn)題我們前面沒(méi)有提到.就是既然物理層傳輸?shù)氖请娦盘?hào).那么如果我有2臺(tái)機(jī)器一起發(fā)電信號(hào),信號(hào)豈不是混亂了么?
非常正確.這個(gè)問(wèn)題在網(wǎng)絡(luò)里面成為"碰撞",所以協(xié)議里面規(guī)定了如果你需要往外發(fā)數(shù)據(jù),一定需要先看看電纜里面有沒(méi)有別的信號(hào).如果沒(méi)有,那就可以發(fā).如果2者同時(shí)發(fā)送,檢測(cè)到碰撞之后2者分別等待一個(gè)隨機(jī)時(shí)間,然后重發(fā).這個(gè)就是重要的"碰撞檢測(cè) ".
哈.看來(lái)問(wèn)題解決了.不是么.現(xiàn)在整個(gè)網(wǎng)絡(luò)可以正常運(yùn)行了.
確實(shí)如此.但是如果連接在網(wǎng)絡(luò)上的計(jì)算機(jī)越來(lái)越多,那么碰撞的現(xiàn)象會(huì)越來(lái)越頻繁.這樣效率一定很低了.恩.這里還有一個(gè)重要概念"沖突域 ".在同一個(gè)物理上連接的網(wǎng)絡(luò)上的所有設(shè)備是屬于同一個(gè)沖突域的.
接著就需要引入我們的2層設(shè)備來(lái)分割沖突域了.
網(wǎng)橋(Bridge) 就是連接2個(gè)不同的物理網(wǎng)絡(luò)的.主要功能是在2個(gè)網(wǎng)絡(luò)之間轉(zhuǎn)發(fā)Frame.因?yàn)閺膶?shí)際中我們可以知道.其實(shí)很多時(shí)候并非整個(gè)網(wǎng)絡(luò)都在相互通訊.最多相互通訊的一組計(jì)算機(jī)我們可以分在一個(gè)小的沖突域內(nèi).這樣分割以后可以減少?zèng)_突域,也就相對(duì)的減少了沖突的機(jī)會(huì).而之間使用網(wǎng)橋來(lái)橋接,由于網(wǎng)橋兩邊的通訊不是非常頻繁,所以使用網(wǎng)橋來(lái)為2邊作為"代言人".這樣任意一個(gè)小網(wǎng)絡(luò)里面產(chǎn)生沖突的機(jī)會(huì)就少了.
交換機(jī)(Switch)是我們最熟悉的設(shè)備了,交換機(jī)的本質(zhì)其實(shí)就是一個(gè)多口網(wǎng)橋(Multi port Bridge) .同理可得.交換機(jī)的每個(gè)口后面都是一個(gè)沖突域.我們都說(shuō)交換機(jī)比HUB快,就是因?yàn)榻粨Q機(jī)分割了所有的沖突域.
由于現(xiàn)在交換機(jī)非常便宜.所以一般我們都是直接在交換機(jī)的口上接計(jì)算機(jī).這樣每臺(tái)計(jì)算機(jī)都是一個(gè)獨(dú)立的沖突域.這樣碰撞的問(wèn)題就沒(méi)有了.所以速度是比HUB快.
而前面說(shuō)過(guò).2層設(shè)備主要是個(gè)轉(zhuǎn)發(fā)的功能.交換機(jī)的主要功能就是轉(zhuǎn)發(fā)包.而不是讓所有的沖突域直接物理連接.所以交換機(jī)有CPU,有內(nèi)存,可以對(duì)frame進(jìn)行處理等等.這些也是交換機(jī)和HUB的區(qū)別.
3.網(wǎng)絡(luò)層
我們前面的一些技術(shù)就可以構(gòu)建出局域網(wǎng)了.有了網(wǎng)絡(luò)層以后.數(shù)據(jù)才能夠真正的在整個(gè)世界間傳送
由于倫納德?博薩卡(Leonard Bosack)和姍蒂?雷納(Sandy Lerner)為了解決他們之間的通信問(wèn)題(關(guān)于路由器發(fā)明的版本有很多.你聽(tīng)到的別的說(shuō)法可能比這個(gè)說(shuō)法更準(zhǔn)確,但是誰(shuí)知道呢.呵呵).路由器被發(fā)明用來(lái)解決"信息孤島"問(wèn)題.而且如果是由SWITCH來(lái)構(gòu)建整個(gè)網(wǎng)絡(luò),那么整個(gè)網(wǎng)絡(luò)將會(huì)有"中心節(jié)點(diǎn)",這樣也不符合ARPANET的初衷.所以我們有了這一層.(這樣說(shuō)可能會(huì)感覺(jué)本末倒置,但是先這么理解吧.)
這一層的基本單元是包(Packet) .所有的包都有一個(gè)IP頭.啊.聽(tīng)起來(lái)很熟悉不是么.IP就是用來(lái)在這層上面標(biāo)識(shí)包的來(lái)源和目的地址的.
這層的一個(gè)主要概念就是"路由 ",也就是和switch一樣,把包轉(zhuǎn)發(fā)到其他的地方.不過(guò)有個(gè)不同的地方,switch只有知道具體的MAC在哪里的情況下才能夠發(fā)送給指定的計(jì)算機(jī),而路由則不需要知道最終IP所在的計(jì)算機(jī)在哪個(gè)位置,只要知道那個(gè)途徑可以過(guò)去就可以工作.
這3層構(gòu)建了整個(gè)網(wǎng)絡(luò)的基礎(chǔ).由于TCP/IP模型將最下面2層合并成為一層,所以在TCP/IP里面總共這2層也是整個(gè)構(gòu)架最基礎(chǔ)的內(nèi)容.而網(wǎng)絡(luò)方面要做的工作也都是針對(duì)于這2層做的.
2: TCP/IP.真實(shí)世界的模型
上一講里面我們說(shuō)過(guò)OSI 7層模型只是一個(gè)理論模型,而實(shí)際中只需要保證7層的功能能夠?qū)崿F(xiàn),實(shí)際分層無(wú)需按照7層來(lái)分.而且如果真的分7層.那么數(shù)據(jù)處理的速度便要慢許多.
在實(shí)際應(yīng)用中.使用最多的便是DoD模型.也成為T(mén)CP/IP協(xié)議簇
DoD模型(Department Of Defanse Model 美國(guó)國(guó)防部模型) 顧名思義,是美國(guó)國(guó)防部設(shè)計(jì)的一個(gè)網(wǎng)絡(luò)模型.最早用于ARPANET.這些話(huà)可能在許多教材的第一章就會(huì)講了.但是一般教材對(duì)于DoD模型與OSI模型對(duì)應(yīng)關(guān)系都沒(méi)有講到.或者很多是模糊或者錯(cuò)誤的.
在這里我就要描述一下2者對(duì)應(yīng)關(guān)系.OSI模型有7層我們已經(jīng)知道了,而DoD模型則只有4層.下面是對(duì)應(yīng)關(guān)系
OSI DoD
7.Application ┐
6.Presentation |-> 4. Application/Process
5.Session ┘
4.Transport ---> 3. Host to Host
3.Network ---> 2. Internet
2.Data Link ┬-> 1. Network Access
1.Physical ┘
由于我不會(huì)制表符.所以圖有些難看.其實(shí)就是OSI的1.2層對(duì)應(yīng)DoD的第1層
OSI的5.6.7對(duì)應(yīng)DoD的第4層
其實(shí)這個(gè)還是比較容易記憶的
由于物理層和數(shù)據(jù)鏈路層非常密切.所以分為一個(gè).然后上面依次對(duì)應(yīng),最上面的一大塊成為應(yīng)用層(處理層)
現(xiàn)在我們有了一個(gè)可用的實(shí)際模型了.不過(guò)一般我們?cè)诿枋瞿硞(gè)設(shè)備或者協(xié)議的時(shí)候.還是會(huì)使用OSI的模型,比如我們?cè)谟懻揝WITCH的時(shí)候,就會(huì)說(shuō)他是一個(gè)2層的設(shè)備.而路由器是一個(gè)3層的設(shè)備,還會(huì)有一些特殊的設(shè)備,比如3層交換機(jī),4層交換機(jī).這些都是使用OSI模型進(jìn)行分類(lèi)的.這點(diǎn)大家不要搞混淆了.
我們一直聽(tīng)說(shuō)TCP或者UDP.還有什么SMTP.POP3.這些協(xié)議到底是在哪一層定義的那?接下來(lái)的一張圖會(huì)給大家一個(gè)非常清晰的概念了(不能算是圖拉 ).
4. APPLICATION
HTTP,FTP,telnet,SNMP,SMTP,POP3,DNS 等等
3.Host to Host
TCP,UDP
2.internet
ICMP,ARP,RARP,IP
1.Network Access
Ethernet,FastEthernet,Token Ring 等等
恩...這下清楚了.讓我們從下至上來(lái)看看
首先是最下層的.包括了以太網(wǎng),快速以太網(wǎng),還有現(xiàn)在的千M以太網(wǎng)等等的協(xié)議,這些協(xié)議規(guī)定了線(xiàn)纜的絞數(shù).連接方式等等物理層的東西.還有底層使用MAC通訊的方式等等.
接下來(lái)是IP.ARP這些.IP在OSI模型的時(shí)候也說(shuō)過(guò).通過(guò)IP地址.我們?cè)谵D(zhuǎn)發(fā)包的時(shí)候無(wú)需知道具體目標(biāo)機(jī)的位置.而路由器自然會(huì)根據(jù)路由表來(lái)轉(zhuǎn)發(fā).最后一站一站的慢慢傳遞.達(dá)到最終目標(biāo).而ARP協(xié)議就是在IP和MAC之間轉(zhuǎn)換用的.
我在上一章提過(guò),由于有了路由器,IP,整個(gè)網(wǎng)絡(luò)才真正能夠覆蓋全球.所以這一層叫做internet大家也應(yīng)該容易記憶了.
WOW.TCP,UDP是我們聽(tīng)說(shuō)最多的了.他是屬于控制網(wǎng)絡(luò)連接的.在OSI稱(chēng)為T(mén)ransport.傳輸層.在DoD內(nèi)是Host to Host 端對(duì)端.意思其實(shí)是一樣的.就是在在2臺(tái)計(jì)算機(jī)之間構(gòu)建出一個(gè)虛擬的通訊通道來(lái).
最上面一層就無(wú)窮無(wú)盡了.所有的最終應(yīng)用層的東西都在這里,你甚至可以定義你自己的協(xié)議類(lèi)型.這些都是完全可以的.因?yàn)楸旧磉@一層就是提供給開(kāi)發(fā)人員自行發(fā)揮的.只是上面列舉的都經(jīng)過(guò)標(biāo)準(zhǔn)化了.
TCP包頭結(jié)構(gòu)
源端口 16位
目標(biāo)端口 16位
序列號(hào) 32位
回應(yīng)序號(hào) 32位
TCP頭長(zhǎng)度 4位
reserved 6位
控制代碼 6位
窗口大小 16位
偏移量 16位
校驗(yàn)和 16位
選項(xiàng) 32位(可選)
這樣我們得出了TCP包頭的最小大小.就是20字節(jié).
UDP包頭結(jié)構(gòu)
源端口 16位
目的端口 16位
長(zhǎng)度 16位
校驗(yàn)和 16位
恩...UDP的包小很多.確實(shí)如此.因?yàn)閁DP是非可靠連接.設(shè)計(jì)初衷就是盡可能快的將數(shù)據(jù)包發(fā)送出去.所以UDP協(xié)議顯得非常精簡(jiǎn).
有一個(gè)問(wèn)題,似乎這些頭里面怎么沒(méi)有IP地址啊.沒(méi)有IP地址這些包往哪里發(fā)送那?
對(duì).你觀察的很仔細(xì).TCP和UDP的頭里面確實(shí)沒(méi)有任何IP信息.我們回頭想一下TCP和UDP是屬于DoD的哪一層的? 對(duì)了!是第3層. 而IP則位于模型的第二層.也就是他們兩者雖然有聯(lián)系.但是不屬于同一層.
模型的一個(gè)重要規(guī)則就是.當(dāng)發(fā)送端發(fā)送一個(gè)數(shù)據(jù),上一層將數(shù)據(jù)傳往下一層的時(shí)候.上一層的包就成為了下一層包的數(shù)據(jù)部分.
而到接受端接受到數(shù)據(jù).下一層將本層的頭部信息去掉后交給上一層去處理.
那么我們來(lái)看看實(shí)際例子:
假使我們通過(guò)SMTP協(xié)議發(fā)送數(shù)據(jù)AAA到另外一段.那么數(shù)據(jù)先會(huì)被加上SMTP的頭.成為[SMTP]AAA.往下發(fā)送到TCP層.成為[TCP][SMTP]AAA.再往下送到internet層[IP][TCP][SMTP]AAA.然后成為[MAC][IP][TCP][SMTP]AAA
這樣通過(guò)enternet或者FastEnternet發(fā)送到路由器.路由器得到后替換自己的MAC地址上去.傳到下一級(jí)的路由器.這樣經(jīng)過(guò)長(zhǎng)途跋涉.最終這個(gè)數(shù)據(jù)流到達(dá)目標(biāo)機(jī).
目標(biāo)機(jī)先從下面一層開(kāi)始.去掉MAC,成為[IP][TCP][SMTP]AAA往上到IP層,恩,比對(duì)后是發(fā)送給我這個(gè)IP的.去掉,成為[TCP][SMTP]AAA.TCP接到了查看校驗(yàn)和,沒(méi)錯(cuò).往上[SMTP]AAA.最后SMTP協(xié)議去解釋.得到了AAA.
萬(wàn)里長(zhǎng)征終于結(jié)束.我們也將AAA發(fā)送到了目標(biāo)機(jī).大家也應(yīng)該明白了為何TCP包頭和UDP包頭里面沒(méi)有IP地址那?因?yàn)镮P位于他們下面一層.TCP和UDP的包頭信息是作為IP包的數(shù)據(jù)段來(lái)傳送的.
IP層可不管那許多.他只管他那層的協(xié)議,也就是管把從上面層來(lái)的數(shù)據(jù)加上自己的頭,傳到下面一層.把從下面一層來(lái)的數(shù)據(jù)去掉頭.傳到上面一層.
每層都是這么干的.完美的契合完成了數(shù)據(jù)包的最終旅程.
TCP/IP的通訊協(xié)議
這部分簡(jiǎn)要介紹一下TCP/IP的內(nèi)部結(jié)構(gòu)。TCP/IP協(xié)議組之所以流行,部分原因是因?yàn)樗梢杂迷诟鞣N各樣的信道和底層協(xié)議(例如T1和X.25、以太網(wǎng)以及RS-232串行接口)之上。確切地說(shuō),TCP/IP協(xié)議是一組包括TCP協(xié)議和IP協(xié)議,UDP(User Datagram Protocol)協(xié)議、ICMP(Internet Control Message Protocol)協(xié)議和其他一些協(xié)議的協(xié)議組。
TCP/IP整體構(gòu)架概述
TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開(kāi)放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務(wù)。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)路層、傳輸層、話(huà)路層、表示層和應(yīng)用層。而TCP/IP通訊協(xié)議采用了4層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來(lái)完成自己的需求。這4層分別為:
應(yīng)用層:應(yīng)用程序間溝通的層,如簡(jiǎn)單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡(luò)遠(yuǎn)程訪(fǎng)問(wèn)協(xié)議(Telnet)等。
傳輸層:在此層中,它提供了節(jié)點(diǎn)間的數(shù)據(jù)傳送服務(wù),如傳輸控制協(xié)議(TCP)、用戶(hù)數(shù)據(jù)報(bào)協(xié)議(UDP)等,TCP和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又,這一層負(fù)責(zé)傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達(dá)并接收。
互連網(wǎng)絡(luò)層:負(fù)責(zé)提供基本的數(shù)據(jù)封包傳送功能,讓每一塊數(shù)據(jù)包都能夠到達(dá)目的主機(jī)(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(IP)。
網(wǎng)絡(luò)接口層:對(duì)實(shí)際的網(wǎng)絡(luò)媒體的管理,定義如何使用實(shí)際網(wǎng)絡(luò)(如Ethernet、Serial Line等)來(lái)傳送數(shù)據(jù)。
TCP/IP中的協(xié)議
以下簡(jiǎn)單介紹TCP/IP中的協(xié)議都具備什么樣的功能,都是如何工作的:
1. IP
網(wǎng)際協(xié)議IP是TCP/IP的心臟,也是網(wǎng)絡(luò)層中最重要的協(xié)議。
IP層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動(dòng)程序)發(fā)來(lái)的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來(lái)的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因?yàn)镮P并沒(méi)有做任何事情來(lái)確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒(méi)有被破壞。IP數(shù)據(jù)包中含有發(fā)送它的主機(jī)的地址(源地址)和接收它的主機(jī)的地址(目的地址)。
高層的TCP和UDP服務(wù)在接收數(shù)據(jù)包時(shí),通常假設(shè)包中的源地址是有效的。也可以這樣說(shuō),IP地址形成了許多服務(wù)的認(rèn)證基礎(chǔ),這些服務(wù)相信數(shù)據(jù)包是從一個(gè)有效的主機(jī)發(fā)送來(lái)的。IP確認(rèn)包含一個(gè)選項(xiàng),叫作IP source routing,可以用來(lái)指定一條源地址和目的地址之間的直接路徑。對(duì)于一些TCP和UDP的服務(wù)來(lái)說(shuō),使用了該選項(xiàng)的IP包好象是從路徑上的最后一個(gè)系統(tǒng)傳遞過(guò)來(lái)的,而不是來(lái)自于它的真實(shí)地點(diǎn)。這個(gè)選項(xiàng)是為了測(cè)試而存在的,說(shuō)明了它可以被用來(lái)欺騙系統(tǒng)來(lái)進(jìn)行平常是被禁止的連接。那么,許多依靠IP源地址做確認(rèn)的服務(wù)將產(chǎn)生問(wèn)題并且會(huì)被非法入侵。
2. TCP
如果IP數(shù)據(jù)包中有已經(jīng)封好的TCP數(shù)據(jù)包,那么IP將把它們向‘上’傳送到TCP層。TCP將包排序并進(jìn)行錯(cuò)誤檢查,同時(shí)實(shí)現(xiàn)虛電路間的連接。TCP數(shù)據(jù)包中包括序號(hào)和確認(rèn),所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
TCP將它的信息送到更高層的應(yīng)用程序,例如Telnet的服務(wù)程序和客戶(hù)程序。應(yīng)用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設(shè)備驅(qū)動(dòng)程序和物理介質(zhì),最后到接收方。
面向連接的服務(wù)(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發(fā)送和接收域名數(shù)據(jù)庫(kù)),但使用UDP傳送有關(guān)單個(gè)主機(jī)的信息。
3.UDP
UDP與TCP位于同一層,但對(duì)于數(shù)據(jù)包的順序錯(cuò)誤或重發(fā)。因此,UDP不被應(yīng)用于那些使用虛電路的面向連接的服務(wù),UDP主要用于那些面向查詢(xún)---應(yīng)答的服務(wù),例如NFS。相對(duì)于FTP或Telnet,這些服務(wù)需要交換的信息量較小。使用UDP的服務(wù)包括NTP(網(wǎng)落時(shí)間協(xié)議)和DNS(DNS也使用TCP)。
欺騙UDP包比欺騙TCP包更容易,因?yàn)閁DP沒(méi)有建立初始化連接(也可以稱(chēng)為握手)(因?yàn)樵趦蓚(gè)系統(tǒng)間沒(méi)有虛電路),也就是說(shuō),與UDP相關(guān)的服務(wù)面臨著更大的危險(xiǎn)。
4.ICMP
ICMP與IP位于同一層,它被用來(lái)傳送IP的的控制信息。它主要是用來(lái)提供有關(guān)通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機(jī)通向其他系統(tǒng)的更準(zhǔn)確的路徑,而‘Unreachable’信息則指出路徑有問(wèn)題。另外,如果路徑不可用了,ICMP可以使TCP連接‘體面地’終止。PING是最常用的基于ICMP的服務(wù)。
5. TCP和UDP的端口結(jié)構(gòu)
TCP和UDP服務(wù)通常有一個(gè)客戶(hù)/服務(wù)器的關(guān)系,例如,一個(gè)Telnet服務(wù)進(jìn)程開(kāi)始在系統(tǒng)上處于空閑狀態(tài),等待著連接。用戶(hù)使用Telnet客戶(hù)程序與服務(wù)進(jìn)程建立一個(gè)連接?蛻(hù)程序向服務(wù)進(jìn)程寫(xiě)入信息,服務(wù)進(jìn)程讀出信息并發(fā)出響應(yīng),客戶(hù)程序讀出響應(yīng)并向用戶(hù)報(bào)告。因而,這個(gè)連接是雙工的,可以用來(lái)進(jìn)行讀寫(xiě)。
兩個(gè)系統(tǒng)間的多重Telnet連接是如何相互確認(rèn)并協(xié)調(diào)一致呢?TCP或UDP連接唯一地使用每個(gè)信息中的如下四項(xiàng)進(jìn)行確認(rèn):
源IP地址 發(fā)送包的IP地址。
目的IP地址 接收包的IP地址。
源端口 源系統(tǒng)上的連接的端口。
目的端口 目的系統(tǒng)上的連接的端口。
端口是一個(gè)軟件結(jié)構(gòu),被客戶(hù)程序或服務(wù)進(jìn)程用來(lái)發(fā)送和接收信息。一個(gè)端口對(duì)應(yīng)一個(gè)16比特的數(shù)。服務(wù)進(jìn)程通常使用一個(gè)固定的端口,例如,SMTP使用25、Xwindows使用6000。這些端口號(hào)是‘廣為人知’的,因?yàn)樵诮⑴c特定的主機(jī)或服務(wù)的連接時(shí),需要這些地址和目的地址進(jìn)行通訊。
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書(shū)》
2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書(shū)-2022_03-21》
3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):6G至簡(jiǎn)無(wú)線(xiàn)接入網(wǎng)白皮書(shū)》
4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國(guó)聯(lián)通5G終端白皮書(shū)》》
5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國(guó)電信5G NTN技術(shù)白皮書(shū)》
6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解》
7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國(guó)移動(dòng)算力并網(wǎng)白皮書(shū)》
8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《 R16 23501-g60 5G的系統(tǒng)架構(gòu)1》
| |