一.為什么會有TCP/IP協(xié)議
首先呢,TCP/IP不是一個協(xié)議,而是一個協(xié)議族的統(tǒng)稱。他們的存在是為了在將電腦聯(lián)合起來的時候,利用他們可以和其他的計算機終端做自由的交流。
二.TCP/IP協(xié)議分層
1.TCP/IP族按照層次由上到下,層層包裝。每一層都有自己的功能,每一層都有下一層的支持。而用戶接觸的,只是最上邊一層,沒有感覺到下面一層層,但是理解的時候要從最下層由下向上來理解。最上邊是應(yīng)用層,這里有http,ftp等熟悉的協(xié)議。而第二層就是傳輸層,TCP和UDP協(xié)議就是在這個層次。第三層是網(wǎng)絡(luò)層,IP協(xié)議就在這里,他負責對數(shù)據(jù)加上IP地址和其他數(shù)據(jù)以確定傳輸?shù)哪繕恕5谒膶咏凶鰯?shù)據(jù)鏈路層,這個層次為待傳輸?shù)臄?shù)據(jù)加上一個以太網(wǎng)協(xié)議頭,并進行CRC編碼,為最后的數(shù)據(jù)傳輸做準備。再往下就是硬件層次,負責網(wǎng)絡(luò)的傳輸,這個層次的定義包括網(wǎng)線的格式,網(wǎng)卡的定義等等。
2.發(fā)送協(xié)議的主機從上到下將數(shù)據(jù)按照協(xié)議封裝,而接收數(shù)據(jù)的主機則按照協(xié)議從得到的數(shù)據(jù)包解開,最后拿到需要的數(shù)據(jù)。這種結(jié)構(gòu)非常像棧,所以我們也把TCP/IP協(xié)議族稱為TCP/IP棧。
3.每一層都是為了完成一種功能,為了實現(xiàn)這些功能,需要大家每個人都要遵循共同的規(guī)則,而這個規(guī)則就叫做“協(xié)議”?;ヂ?lián)網(wǎng)的每一層都定義了許多協(xié)議。而這些協(xié)議的總稱,就叫做“互聯(lián)網(wǎng)協(xié)議”,他們是互聯(lián)網(wǎng)的核心。
三.基本常識
1.互聯(lián)網(wǎng)地址(IP地址):網(wǎng)絡(luò)上的每一個節(jié)點都必須有一個獨立的Internet地址,也叫IP地址。通常使用的IP地址是一個32bit的數(shù)字,這32bit的數(shù)字分成四組,也就是常見的255.255.255.255的樣式。需注意,IP地址是網(wǎng)絡(luò)號+主機號的組合,這十分重要。
2.域名系統(tǒng):域名系統(tǒng)就是一個分布的數(shù)據(jù)庫,它提供將主機名(就是網(wǎng)址)轉(zhuǎn)換成IP地址的服務(wù)。
3.RFC:TCP/IP協(xié)議的標準文檔。他一共有4000多個協(xié)議的定義。
4.端口號:這個號碼是用在TCP,UDP上的一個邏輯號碼,并不是一個硬件端口。平時所說的把某某的端口封掉,也只是在IP層次把帶有這個號碼的IP包濾掉了而已。
5.應(yīng)用編程接口(API):現(xiàn)常用的編程接口有socket和TLI。主要是提供應(yīng)用程序和開發(fā)人員以訪問一組例程功能,而無需考慮其底層的源代碼是為何,或理解其內(nèi)部工作機制的細節(jié)。
四.實體層
就是把電腦連接起來的物理手段。它主要規(guī)定了網(wǎng)絡(luò)的一些電氣特性,作用是負責傳送0和1的電信號。
五.數(shù)據(jù)鏈路層
單純的0和1沒有任何意義,必須規(guī)定解讀方式:多少個電信號算一組?每個信號為有何意義?
這就是“連接層”的功能,他在“實體層”的上方,確定了0和1的分組方式。
數(shù)據(jù)鏈路層有三個目的:
1.為IP模塊發(fā)送和接收IP數(shù)據(jù)報。
2.為ARP模塊發(fā)送ARP請求和接收ARP應(yīng)答。
3.為RARP發(fā)送RARP請求和接收RARP應(yīng)答。
注:ARP:地址解析協(xié)議,是用IP地址換MAC地址(媒體訪問地址,或稱為物理地址,硬件地址。MAC地址是網(wǎng)卡決定的,是固定的,共48位,實際上就是適配器地址,IP地址就如同一個職位,而MAC地址則好像是去應(yīng)聘這個職位的人才,職位既可以讓甲坐,也可以讓乙坐,同樣的道理一個結(jié)點的IP地址對于網(wǎng)卡是不做要求,基本上什么樣的廠家都可以用,也就是說IP地址與MAC地址并不存在著綁定關(guān)系。)的一種協(xié)議,而RARP則叫做逆地址解析協(xié)議。
以太網(wǎng)的定義是指數(shù)字設(shè)備公司( Digital Equipment Corp.)、英特爾公司(Intel Corp.)和Xerox公司在1982年聯(lián)合公布的一個標準。以太網(wǎng)規(guī)定,一組電信號構(gòu)成一個數(shù)據(jù)包,叫做“幀”,每一幀分成兩個部分:標頭(head)和數(shù)據(jù)(data)。
標頭包含了數(shù)據(jù)包的一些說明項,比如發(fā)送者,接受者,數(shù)據(jù)類型等;“數(shù)據(jù)”包括了數(shù)據(jù)包的具體內(nèi)容。標頭的長度固定為18字節(jié)。數(shù)據(jù)的長度最長為1500字節(jié),最短為46字節(jié)。因此,整個“幀”最長為1518字節(jié),最短為64字節(jié)。如果數(shù)據(jù)很長,就必須分割成多個幀進行發(fā)送。
以太網(wǎng)規(guī)定,連入網(wǎng)絡(luò)的所有設(shè)備,都必須具有“網(wǎng)卡”接口。數(shù)據(jù)包必須是從一塊網(wǎng)卡,傳送到另一塊網(wǎng)卡。網(wǎng)卡的地址,就是數(shù)據(jù)包的發(fā)送地址和接收地址,這就是MAC地址。
定義地址只是第一步,在這之后要解決一塊網(wǎng)卡如何知道另一塊網(wǎng)卡的MAC地址?回答是一種ARP協(xié)議。而在以太網(wǎng)數(shù)據(jù)包必須知道接收方的MAC地址,然后才能發(fā)送。
之后就算有了MAC地址,系統(tǒng)如何才能把數(shù)據(jù)包準確的發(fā)送到接收方?,而以太網(wǎng)采用用了一種很原始的方式,即向本網(wǎng)絡(luò)內(nèi)的所有計算機發(fā)送,讓每臺計算機自己判斷,是否為接收方。他們讀取這個包的“標頭”,找到接收方的MAC地址,然后與自身的MAC地址進行比較,如果兩者相同,就接受這個包,作進一步處理,否則就丟棄這個包,這種發(fā)送方式就叫做廣播。
有了數(shù)據(jù)包的定義,網(wǎng)卡的MAC地址,廣播的發(fā)送方式,“連接層”就可以在多臺計算機之間傳輸數(shù)據(jù)。
六.網(wǎng)絡(luò)層
1.由來:以太網(wǎng)協(xié)議,依靠MAC地址發(fā)送數(shù)據(jù)。但是,以太網(wǎng)采用廣播來發(fā)送數(shù)據(jù)包,效率低,而且局限在發(fā)送者所在的子網(wǎng)絡(luò)。因此,要找到一種方法,能夠區(qū)分那些MAC地質(zhì)屬于同一個子網(wǎng)絡(luò),那些不是。如果是同一個子網(wǎng)絡(luò),就采用廣播,否則采用路由(...)方式發(fā)送,而這是MAC地址無法實現(xiàn)的,他至于廠商有關(guān),與所處網(wǎng)絡(luò)無關(guān),這就導致了“網(wǎng)絡(luò)層”的誕生,他的作用就是引用一套新的地址,使得我們能夠區(qū)分不同的計算機是否屬于同一個子網(wǎng)絡(luò)。而這套地址就叫做“網(wǎng)絡(luò)地址”,簡稱“網(wǎng)址”。于是,“網(wǎng)絡(luò)層”出現(xiàn)之后,每臺計算機有了兩種地址,一種是MAC地址,另一種是網(wǎng)絡(luò)地址。兩種地址之間沒有任何聯(lián)系,MAC地址是綁定在網(wǎng)卡上的,網(wǎng)絡(luò)地址則是管理員分配的,他們是隨機組合在一起的。
網(wǎng)絡(luò)地址幫助我們確定計算機所在的子網(wǎng)絡(luò),MAC地址則將數(shù)據(jù)報送到該子網(wǎng)絡(luò)中的目標網(wǎng)卡,因此,先處理網(wǎng)絡(luò)地址,在處理MAC地址。
2.IP協(xié)議
規(guī)定網(wǎng)絡(luò)地址的協(xié)議,叫做IP協(xié)議。他所規(guī)定的地址,就被稱為IP地址。我們采用的一般是IPv4.這個版本規(guī)定,網(wǎng)絡(luò)地址由32個二進制位組成。習慣上分為四段,如255.255.255.255,這個地址分成兩部分,前一部分代表網(wǎng)絡(luò),后一部分代表主機。但是單從IP地址,我們無法分辨網(wǎng)絡(luò)部分。因此,我們需要一個參數(shù)來判斷兩臺計算機是否屬于同一個子網(wǎng)絡(luò),這個參數(shù)就是“子網(wǎng)掩碼”,它在形式上等同于IP地址,也是一個32位的二進制數(shù),他的網(wǎng)絡(luò)部分全部為1,主機部分為0.知道子網(wǎng)掩碼我們就可以判斷兩個IP地址是否屬于同一個自網(wǎng)絡(luò)下,方法就是將兩個IP地址與子網(wǎng)掩碼分別進行AND運算。,比較結(jié)果是否相同,如果是的話,就表明在同一個子網(wǎng)絡(luò)中。
所以,IP協(xié)議的作用主要有兩個,一個是為每一臺計算機分配IP地址,另一個是確定那些地址在同一個子網(wǎng)絡(luò)。
3.IP數(shù)據(jù)包
根據(jù)IP協(xié)議發(fā)送的數(shù)據(jù),就叫做IP數(shù)據(jù)包。其中包含IP地址信息。但是由于以太網(wǎng)數(shù)據(jù)包只包含MAC地址,并沒有IP地址欄,但我們也并不需要為他添加一個欄位,我們將IP數(shù)據(jù)包直接放進以太網(wǎng)數(shù)據(jù)包的“數(shù)據(jù)”中,而不用修改以太網(wǎng)的規(guī)格,這就是互聯(lián)網(wǎng)分層的好處:上層的變動完全不涉及下層的結(jié)構(gòu)。IP數(shù)據(jù)也分為“標頭”和“數(shù)據(jù)”兩部分,"標頭"主要是版本,長度,IP地址,“數(shù)據(jù)”部分則是IP數(shù)據(jù)包的具體內(nèi)容。他放在以太網(wǎng)數(shù)據(jù)包后,就是這樣
IP數(shù)據(jù)包的“標頭”部分的長度為20到60字節(jié),整個數(shù)據(jù)包的總長度最大為65535字節(jié),因此,一個IP數(shù)據(jù)包的“數(shù)據(jù)”部分最長為65515字節(jié)。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602977 -
嵌入式
+關(guān)注
關(guān)注
5082文章
19104瀏覽量
304796
發(fā)布評論請先 登錄
相關(guān)推薦
評論