1. 程式人生 > >TCP/IP協議與HTTP協議(一)

TCP/IP協議與HTTP協議(一)

tar idt 通過 inter bubuko 通信 單位 網絡設備 proto

1、什麽是TCP/IP

如果要了解一個人,可以從他歸屬的集體聊起來。我們的HTTP協議就屬於TCP/IP協議家族中的一員,了解HTTP協議再整個網絡流程中的地位,也能更加充分的理解HTTP協議。

要想了解什麽是TCP/IP協議,就要知道為什麽有這個協議。中國人和中國人說話,要遵循漢語的的語法結構,使用漢語的發音。當我們和外國人交流時,就要適用外國的語言了,遵循外國的語法機構和發音。其實這就是一種協議,只不過我們稱之為語言。計算機再這方面體現的更為直觀,兩臺機器之間該如何通信呢,就需要制定各種各樣的協議了。例如:文件傳輸適用TCP協議。域名系統適用DNS協議。有了些協議的存在,各種數據流按照規則傳輸,計算機之間得意通信。

TCP/IP協議是一個協議集合。大家叫的時候方便說,所以統稱為TCP/IP。TCP/IP協議族中有一個重要的概念是分層,TCP/IP協議按照層次分為以下四層。應用層、傳輸層、網絡層、數據鏈路層。為什麽要分層?這就如同鄧小平1978年的大包幹,責任到人。一個層只負責一個層次的問題,如果出問題了,和其他的層次無關,只要維護這個層次也就好了。其實編程語言裏也能體現這個分層理論,即封轉性、隔離。這裏不再延伸細談。下面我是制作的一個簡圖。

技術分享圖片

下面是從網絡上找到的TCP/IP通信數據流

技術分享圖片

2、HTTP 關系密切的協議 : IP、TCP 和 DNS

IP協議:IP(Internet protocol),這裏的IP不是值得我們通常所說的192.168.1.1.這個IP指的是一種協議,而後面的數字值得是IP地址。IP協議的作用在於把各種數據包準確無誤的傳遞給對方,其中兩個重要的條件是IP地址,和MAC地址(Media Access Control Address)。由於IP地址是稀有資源,不可能每個人都擁有一個IP地址,所以我們通常的IP地址是路由器給我們生成的IP地址,路由器裏面會記錄我們的MAC地址。而MAC地址是全球唯一的,除去人為因素外不可能重復。舉一個現實生活中的例子,IP地址就如同是我們居住小區的地址,而MAC地址就是我們住的那棟樓那個房間那個人。關於MAC地址,如果我沒講清楚,可點擊連接,查看百度。以下內容摘抄自《圖解HTTP》

使用 ARP 協議憑借 MAC 地址進行通信

IP 間的通信依賴 MAC 地址。在網絡上,通信的雙方在同一局域網(LAN)內的情況是很少的,通常是經過多臺計算機和網絡設備中轉才能連接到對方。而在進行中轉時,會利用下一站中轉設備的 MAC 地址來搜索下一個中轉目標。這時,會采用 ARP 協議(Address Resolution Protocol)。ARP 是一種用以解析地址的協議,根據通信方的 IP 地址就可以反查出對應的 MAC 地址

感興趣的可以參考ARP協議(Address Resolution Protocol),題外話,從文檔上來看,百度百科要比維基百科介紹的好的多。

 你向另外一臺電腦發送一條信息,怎麽再茫茫人海中瞬間找到對方,以下是圖示:

技術分享圖片

TCP協議:如果說IP協議是找到對方的詳細地址。那麽TCP協議就是把安全的把東西帶給對方。各有分工,互不沖突。

按層次分,TCP屬於傳輸層,提供可靠的字節流服務。什麽叫字節流服務呢?這個名字聽起來讓人不知所以然,下面聽下我通俗的解釋。所謂的字節流,其實就類似於信息切割。比如你是一個賣自行車的,你要去送貨。安裝好的自行車,太過龐大,又不穩定,容易損傷。不如直接把自行車拆開來,每個零件上都貼上收貨人的姓名。最後送到後按照把屬於同一個人的自行車再組裝起來,這個拆解、運輸、拼裝的過程其實就是TCP字節流的過程。

我們看下嚴謹的學術表達是怎樣的:

所謂的字節流服務(Byte Stream Service)是指,為了方便傳輸,將大塊數據分割成以報文段(segment)為單位的數據包進行管理。而可靠的傳輸服務是指,能夠把數據準確可靠地傳給對方。一言以蔽之,TCP 協議為了更容易傳送大數據才把數據分割,而且 TCP 協議能夠確認數據最終是否送達到對方。

為了確保信息能夠確保準確無誤的到達,TCP采用了著名的三次握手策略(three-way handshaking).下面我寫一段對話來模擬下這三次握手。

技術分享圖片

DNS:DNS(Domain names System) 和HTTP協議一樣是處於應用層的服務,提供域名到IP地址之間的解析服務。

互聯網之間是通過IP地址通信的,但是IP地址並不符合認得記憶習慣,人喜歡記憶有意義的字詞。所以DNS服務就為了解決這個問題而生了。其實很好理解,形如我們電腦中host文件。

192.168.1.11 roverliang.com

當我們訪問roverliang.com 的時候,電腦便不會去外網服務器上查詢了,直接去訪問192.168.1.111。這是一個簡單的域名劫持,足以說明DNS的涵義了。

下面是我們訪問一個網頁,各種協議在裏面起的作用。

技術分享圖片

TCP/IP協議與HTTP協議(一)