關於TCP/IP必須要知道的10個問題(上)
文章推薦指數: 80 %
TCP/IP協定模型(Transmission Control Protocol/Internet Protocol), 包含了一系列構成互聯網基礎的網路通訊協定,是Internet的核心協議。
... TCP/IP協定族按照層次由上 ...
關於安森
服務與產品
新聞中心
成功案例
聯絡我們
線上服務
首頁
線上教育
關於TCP/IP必須要知道的10個問題(上)
上一篇
回列表
下一篇
關於TCP/IP必須要知道的10個問題(上)
一、TCP/IP模型TCP/IP協定模型(TransmissionControlProtocol/InternetProtocol),包含了一系列構成互聯網基礎的網路通訊協定,是Internet的核心協議。
基於TCP/IP的參考模型將協定分成四個層次,它們分別是鏈路層、網路層、傳輸層和應用層。
下圖表示TCP/IP模型與OSI模型各層的對照關係TCP/IP協定族按照層次由上到下,層層包裝。
最上面的是應用層,這裡面有http,ftp等等我們熟悉的協議。
而第二層則是傳輸層,著名的TCP和UDP協定就在這個層次。
第三層是網路層,IP協定就在這裡,它負責對資料加上IP位址和其他的資料以確定傳輸的目標。
第四層是資料連結層,這個層次為待傳送的資料加入一個乙太網協定頭,並進行CRC編碼,為最後的資料傳輸做準備。
上圖清楚地表示了TCP/IP協議中每個層的作用,而TCP/IP協議通信的過程其實就對應著資料入棧與出棧的過程。
入棧的過程,資料發送方每層不斷地封裝首部與尾部,添加一些傳輸的資訊,確保能傳輸到目的地。
出棧的過程,資料接收方每層不斷地拆除首部與尾部,得到最終傳輸的資料。
上圖以HTTP協議為例,具體說明。
二、資料連結層實體層負責0、1位元流與物理設備電壓高低、光的閃滅之間的互換。
資料連結層負責將0、1序列劃分為資料幀從一個節點傳輸到臨近的另一個節點,這些節點是通過MAC來唯一標識的(MAC,物理位址,一個主機會有一個MAC位址)。
封裝成幀:把網路層資料包加頭和尾,封裝成幀,幀頭中包括源MAC位址和目的MAC位址。
透明傳輸:零比特填充、轉義字元。
可靠傳輸:在出錯率很低的鏈路上很少用,但是無線鏈路WLAN會保證可靠傳輸。
差錯檢測(CRC):接收者檢測錯誤,如果發現差錯,丟棄該幀。
三、網路層1、IP協議IP協定是TCP/IP協定的核心,所有的TCP,UDP,IMCP,IGMP的資料都以IP資料格式傳輸。
要注意的是,IP不是可靠的協議,這是說,IP協定沒有提供一種資料未傳達以後的處理機制,這被認為是上層協議:TCP或UDP要做的事情。
1.1IP地址在資料連結層中我們一般通過MAC地址來識別不同的節點,而在IP層我們也要有一個類似的位址標識,這就是IP位址。
32位元IP位址分為網路位元和位址位元,這樣做可以減少路由器中路由表記錄的數目,有了網路位址,就可以限定擁有相同網路位址的終端都在同一個範圍內,那麼路由表只需要維護一條這個網路位址的方向,就可以找到相應的這些終端了。
A類IP地址:0.0.0.0~127.0.0.0B類IP地址:128.0.0.1~191.255.0.0C類IP地址:192.168.0.0~239.255.255.01.2IP協議頭這裡只介紹:八位的TTL欄位。
這個欄位規定該資料包在穿過多少個路由之後才會被拋棄。
某個IP資料包每穿過一個路由器,該資料包的TTL數值就會減少1,當該資料包的TTL成為零,它就會被自動拋棄。
這個欄位的最大值也就是255,也就是說一個協議包也就在路由器裡面穿行255次就會被拋棄了,根據系統的不同,這個數位也不一樣,一般是32或者是64。
2、ARP及RARP協議ARP是根據IP位址獲取MAC位址的一種協議。
ARP(位址解析)協定是一種解析協定,本來主機是完全不知道這個IP對應的是哪個主機的哪個介面,當主機要發送一個IP包的時候,會首先查一下自己的ARP快取記憶體(就是一個IP-MAC位址對應表緩存)。
如果查詢的IP-MAC值對不存在,那麼主機就向網路發送一個ARP協定廣播包,這個廣播包裡面就有待查詢的IP地址,而直接收到這份廣播的包的所有主機都會查詢自己的IP位址,如果收到廣播包的某一個主機發現自己符合條件,那麼就準備好一個包含自己的MAC位址的ARP包傳送給發送ARP廣播的主機。
而廣播主機拿到ARP包後會更新自己的ARP緩存(就是存放IP-MAC對應表的地方)。
發送廣播的主機就會用新的ARP緩存資料準備好資料連結層的的資料包發送工作。
RARP協議的工作與此相反,不做贅述。
3、ICMP協議IP協定並不是一個可靠的協定,它不保證資料被送達,那麼,自然的,保證資料送達的工作應該由其他的模組來完成。
其中一個重要的模組就是ICMP(網路控制報文)協定。
ICMP不是高層協定,而是IP層的協議。
當傳送IP資料包發生錯誤。
比如主機不可達,路由不可達等等,ICMP協定將會把錯誤資訊封包,然後傳送回給主機。
給主機一個處理錯誤的機會,這也就是為什麼說建立在IP層以上的協議是可能做到安全的原因。
四、pingping可以說是ICMP的最著名的應用,是TCP/IP協議的一部分。
利用“ping”命令可以檢查網路是否連通,可以很好地説明我們分析和判定網路故障。
例如:當我們某一個網站上不去的時候。
通常會ping一下這個網站。
ping會回顯出一些有用的資訊。
一般的資訊如下:ping這個單詞源自聲納定位,而這個程式的作用也確實如此,它利用ICMP協議包來偵測另一個主機是否可達。
原理是用類型碼為0的ICMP發請求,受到請求的主機則用類型碼為8的ICMP回應。
五、TracerouteTraceroute是用來偵測主機到目的主機之間所經路由情況的重要工具,也是最便利的工具。
Traceroute的原理是非常非常的有意思,它收到到目的主機的IP後,首先給目的主機發送一個TTL=1的UDP資料包,而經過的第一個路由器收到這個資料包以後,就自動把TTL減1,而TTL變為0以後,路由器就把這個包給拋棄了,並同時產生一個主機不可達的ICMP資料包給主機。
主機收到這個資料包以後再發一個TTL=2的UDP資料包給目的主機,然後刺激第二個路由器給主機發ICMP資料報。
如此往復直到到達目的主機。
這樣,traceroute就拿到了所有的路由器IP。
六、TCP/UDPTCP/UDP都是是傳輸層協議,但是兩者具有不同的特性,同時也具有不同的應用場景,下面以圖表的形式對比分析。
面向報文面向報文的傳輸方式是應用層交給UDP多長的報文,UDP就照樣發送,即一次發送一個報文。
因此,應用程式必須選擇合適大小的報文。
若報文太長,則IP層需要分片,降低效率。
若太短,會是IP太小。
面向位元組流面向位元組流的話,雖然應用程式和TCP的交互是一次一個資料塊(大小不等),但TCP把應用程式看成是一連串的無結構的位元組流。
TCP有一個緩衝,當應用程式傳送的資料塊太長,TCP就可以把它劃分短一些再傳送。
關於擁塞控制,流量控制,是TCP的重點,後面講解。
TCP和UDP協議的一些應用什麼時候應該使用TCP?當對網路通訊品質有要求的時候,比如:整個資料要準確無誤的傳遞給對方,這往往用於一些要求可靠的應用,比如HTTP、HTTPS、FTP等傳輸檔的協議,POP、SMTP等郵件傳輸的協定。
什麼時候應該使用UDP?當對網路通訊品質要求不高的時候,要求網路通訊速度能儘量的快,這時就可以使用UDP。
延伸文章資訊
- 1TCP/IP參考模式
TCP/IP 協定是現今區域網路中最為流行的標準協定,它是由傳輸控制協定( TCP - Transmission Control Protocol )和網際網路協定(IP-Internet Pr...
- 2TCP/IP - 網際網路名詞介紹
至於今日TCP/IP的起源,和許多電腦科技的起源一樣,皆是由美國國防部發展而來的。當初他們為了要能夠建立一個能讓軍方的電腦都能共同分享源,而又保有分散性的安全考量下, ...
- 3IT世界大解密:TCP/IP 是什麼鬼?
TCP/IP是網際網路的核心,是實現異構網絡互連的通信協議,通過它可以實現各種異構網絡或異種機之間的互聯通信。 什麼是TCP/IP協議? 2018-06-14. 中譯名為 ...
- 4關於TCP/IP必須要知道的10個問題(上)
TCP/IP協定模型(Transmission Control Protocol/Internet Protocol), 包含了一系列構成互聯網基礎的網路通訊協定,是Internet的核心協議。...
- 5什麼是TCP/IP?
傳輸控制通訊協定/網際網絡通訊協定(TCP/IP) 是一種允許兩台計算機進行通信的網絡通訊協定。了解有關TCP/IP 的更多信息。