http、tcp、udp以及socket之間的區別/聯絡
一.tcp/ip代表傳輸控制協議/網際協議,指的是一系列協組。
可分為四個層次:資料鏈路層、網路層、傳輸層和應用層。
在網路層:有ip協議、icmp協議、arp協議、rarp協議和bootp協議。tcp和udp使用ip協議從乙個網路傳送資料報到另乙個網路。把ip想像成一種高速公路,它允許其它協議在上面行駛並找到到其它電腦的出口。tcp和udp是高速公路上的「卡車」,它們攜帶的貨物就是像http,檔案傳輸協議ftp這樣的協議等。在傳輸層:中有tcp協議與udp協議。
在應用層:有ftp、http、telnet、smtp、dns等協議。
tcp和udp是ftp,http和smtp之類使用的傳輸層協議。雖然tcp和udp都是用來傳輸其他協議的,它們卻有乙個顯著的不同:tcp提供***的資料傳輸,而udp不提供。這意味著tcp有乙個特殊的機制來確保資料安全的不出錯的從乙個端點傳到另乙個端點,而udp不提供任何這樣的保證。
二.http本身就是乙個協議,是從web伺服器傳輸超文字到本地瀏覽器的傳送協議。
http(超文字傳輸協議)是利用tcp在兩台電腦(通常是web伺服器和客戶端)之間傳輸資訊的協議。客戶端使用web瀏覽器發起http請求給web伺服器,web伺服器傳送被請求的資訊給客戶端。
http協議是建立在請求/響應模型上的。首先由客戶建立一條與伺服器的tcp鏈結,並傳送乙個請求到伺服器,請求中包含請求方法、url、協議版本以及雖然http本身是乙個協議,但其最終還是基於tcp的。相關的mime樣式的訊息。伺服器響應乙個狀態行,包含訊息的協議版本、乙個成功和失敗碼以及相關的mime式樣的訊息。
http/1.0為每一次http的請求/響應建立一條新的tcp鏈結,因此乙個包含html內容和的頁面將需要建立多次的短期的tcp鏈結。一次tcp鏈結的建立
將需要3次握手。
另外,為了獲得適當的傳輸速度,則需要tcp花費額外的迴路鏈結時間(rtt)。每一次鏈結的建立需要這種經常性的開銷,而其並不帶有實際有用的資料
,只是保證鏈結的可靠性,因此http/1.1提出了可持續鏈結的實現方法。http/1.1將只建立一次tcp的鏈結而重複地使用它傳輸一系列的請求/響應訊息,
因此減少了鏈結建立的次數和經常性的鏈結開銷。
三.socket:tcp/ip網路的api。
socket是應用層與tcp/ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它把複雜的tcp/ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部,讓socket去組織資料,以符合指定的協議。
socket 介面是tcp/ip網路的api,socket介面定義了許多函式或例程,用以開發tcp/ip網路上的應用程式。
這是為了實現以上的通訊過程而建立成來的通訊管道,其真實的代表是客戶端和伺服器端的乙個通訊程序,雙方程序通過socket進行通訊,而通訊的規則綜上所述:需要ip協議來連線網路;tcp是一種允許我們安全傳輸資料的機制,使用tcp協議來傳輸資料的http是web伺服器和客戶端使用的特殊協議。http基於tcp協議,但是卻可以使用socket去建立乙個tcp連線。如圖:採用指定的協議。socket只是一種連線模式,不是協議,tcp,udp,簡單的說(雖然不準確)是兩個最基本的協議,很多其它協議都是基於這兩個協議如,http就是基於tcp的,用socket可以建立tcp連線,也可以建立udp連線,這意味著,用socket可以建立任何協議的連線,因為其它協議都是基於此的。
很多時候失敗了不是沒努力也不是運氣差,而是努力不夠,沒有推自己一把!
nil Nil NULL NSNull 之間的區別
nil 是對objective c id 物件賦空值 例如 nsstring string nsstring stringwithformat test string nil 對於objective c 集合類物件 比如陣列物件,字典物件,當我們不需要再使用他們的時候,對他們release 的同時最...
assign,copy,retain之間的區別
assign 簡單賦值,不更改索引計數 reference counting copy 建立乙個索引計數為1的物件,然後釋放舊物件 retain 釋放舊的物件,將舊物件的值賦予輸入物件,再提高輸入物件的索引計數為1 weak 和strong的區別 weak和strong 不同的是 當乙個物件不再有s...
TCP UDP HTTP SOCKET之間的區別
網路層協議 網際協議 ip 位址解析協議 arp 傳輸層協議 傳輸控制協議 tcp 使用者資料報協議 udp 應用層協議 超文字傳輸協議 http 檔案傳輸協議 ftp 遠端登入協議 telnet 網域名稱服務協議 dns 簡單郵件傳輸協議 smtp 郵局協議 pop3 tcp和udp使用ip協議從...