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