懂視移動(dòng)端 視頻1 視頻21 視頻41 視頻61 視頻文章1 視頻文章21 視頻文章41 視頻文章61 推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37 推薦39 推薦41 推薦43 推薦45 推薦47 推薦49 關(guān)鍵詞1 關(guān)鍵詞101 關(guān)鍵詞201 關(guān)鍵詞301 關(guān)鍵詞401 關(guān)鍵詞501 關(guān)鍵詞601 關(guān)鍵詞701 關(guān)鍵詞801 關(guān)鍵詞901 關(guān)鍵詞1001 關(guān)鍵詞1101 關(guān)鍵詞1201 關(guān)鍵詞1301 關(guān)鍵詞1401 關(guān)鍵詞1501 關(guān)鍵詞1601 關(guān)鍵詞1701 關(guān)鍵詞1801 關(guān)鍵詞1901 視頻擴(kuò)展1 視頻擴(kuò)展6 視頻擴(kuò)展11 視頻擴(kuò)展16 文章1 文章201 文章401 文章601 文章801 文章1001 資訊1 資訊501 資訊1001 資訊1501 標(biāo)簽1 標(biāo)簽501 標(biāo)簽1001 關(guān)鍵詞1 關(guān)鍵詞501 關(guān)鍵詞1001 關(guān)鍵詞1501
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 手機(jī) - 正文

TCP/IP、Http、Socket的區(qū)別

來源:懂視網(wǎng) 責(zé)編:小OO 時(shí)間:2020-03-19 16:58:33
導(dǎo)讀網(wǎng)絡(luò)是信息傳輸、接收、共享的虛擬平臺(tái),它用物理鏈路將各個(gè)孤立的工作站或主機(jī)相連在一起,組成數(shù)據(jù)鏈路,從而達(dá)到資源共享和通信的目的。網(wǎng)絡(luò)會(huì)借助文字閱讀、圖片查看、影音播放、下載傳輸、游戲聊天等軟件工具從文字、圖片、聲音、視頻,等方面給用戶提供服務(wù),具有多點(diǎn)性、連結(jié)性、交互性和快速性等特點(diǎn)?,F(xiàn)代社會(huì),網(wǎng)絡(luò)已經(jīng)是人們生活不可缺少的一部分。網(wǎng)絡(luò)由下往上分為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層(IP協(xié)議)、傳輸層(TCP協(xié)議)、會(huì)話層、表示層和應(yīng)用層(HTTP協(xié)議),接下來我來說說其中的TCP/IP、Http、So...
網(wǎng)絡(luò)是信息傳輸、接收、共享的虛擬平臺(tái),它用物理鏈路將各個(gè)孤立的工作站或主機(jī)相連在一起,組成數(shù)據(jù)鏈路,從而達(dá)到資源共享和通信的目的。網(wǎng)絡(luò)會(huì)借助文字閱讀、圖片查看、影音播放、下載傳輸、游戲聊天等軟件工具從文字、圖片、聲音、視頻,等方面給用戶提供服務(wù),具有多點(diǎn)性、連結(jié)性、交互性和快速性等特點(diǎn)。現(xiàn)代社會(huì),網(wǎng)絡(luò)已經(jīng)是人們生活不可缺少的一部分。網(wǎng)絡(luò)由下往上分為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層( IP協(xié)議)、傳輸層( TCP協(xié)議)、會(huì)話層、表示層和應(yīng)用層(HTTP協(xié)議),接下來我來說說其中的TCP/IP、Http、Socket的區(qū)別,供有需要的朋友參考:

方法

TCP/IP連接:
手機(jī)能夠使用聯(lián)網(wǎng)功能是因?yàn)槭謾C(jī)底層實(shí)現(xiàn)了TCP/IP協(xié)議,可以使手機(jī)終端通過無線網(wǎng)絡(luò)建立TCP連接,TCP協(xié)議可以對(duì)上層網(wǎng)絡(luò)提供接口,使上層網(wǎng)絡(luò)數(shù)據(jù)的傳輸建立在“無差別”的網(wǎng)絡(luò)之上。
建立起一個(gè)TCP連接需要經(jīng)過“三次握手”:
第一次握手:客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn)。
第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài)。
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。
握手過程中傳送的包里不包含數(shù)據(jù),三次握手完畢后,客戶端與服務(wù)器才正式開始傳送數(shù)據(jù)。理想狀態(tài)下,TCP連接一旦建立,在通信雙方中的任何一方主動(dòng)關(guān)閉連接之前,TCP 連接都將被一直保持下去。斷開連接時(shí)服務(wù)器和客戶端均可以主動(dòng)發(fā)起斷開TCP連接的請(qǐng)求,斷開過程需要經(jīng)過“四次握手”(也就是服務(wù)器和客戶端交互,最終確定斷開)。

HTTP連接:
HTTP協(xié)議即超文本傳送協(xié)議(Hypertext Transfer Protocol ),是Web聯(lián)網(wǎng)的基礎(chǔ),也是手機(jī)聯(lián)網(wǎng)常用的協(xié)議之一,HTTP協(xié)議是建立在TCP協(xié)議之上的一種應(yīng)用。
HTTP連接最顯著的特點(diǎn)是客戶端發(fā)送的每次請(qǐng)求都需要服務(wù)器回送響應(yīng),在請(qǐng)求結(jié)束后,會(huì)主動(dòng)釋放連接。從建立連接到關(guān)閉連接的過程稱為“一次連接”。
1)在HTTP 1.0中,客戶端的每次請(qǐng)求都要求建立一次單獨(dú)的連接,在處理完本次請(qǐng)求后,就自動(dòng)釋放連接。
2)在HTTP 1.1中則可以在一次連接中處理多個(gè)請(qǐng)求,并且多個(gè)請(qǐng)求可以重疊進(jìn)行,不需要等待一個(gè)請(qǐng)求結(jié)束后再發(fā)送下一個(gè)請(qǐng)求。
由于HTTP在每次請(qǐng)求結(jié)束后都會(huì)主動(dòng)釋放連接,因此HTTP連接是一種“短連接”,要保持客戶端程序的在線狀態(tài),需要不斷地向服務(wù)器發(fā)起連接請(qǐng)求。通常的做法是即時(shí)不需要獲得任何數(shù)據(jù),客戶端也保持每隔一段固定的時(shí)間向服務(wù)器發(fā)送一次“保持連接”的請(qǐng)求,服務(wù)器在收到該請(qǐng)求后對(duì)客戶端進(jìn)行回復(fù),表明知道客戶端“在線”。若服務(wù)器長(zhǎng)時(shí)間無法收到客戶端的請(qǐng)求,則認(rèn)為客戶端“下線”,若客戶端長(zhǎng)時(shí)間無法收到服務(wù)器的回復(fù),則認(rèn)為網(wǎng)絡(luò)已經(jīng)斷開。

SOCKET原理
一、套接字(socket)概念
套接字(socket)是通信的基石,是支持TCP/IP協(xié)議的網(wǎng)絡(luò)通信的基本操作單元。它是網(wǎng)絡(luò)通信過程中端點(diǎn)的抽象表示,包含進(jìn)行網(wǎng)絡(luò)通信必須的五種信息:連接使用的協(xié)議,本地主機(jī)的IP地址,本地進(jìn)程的協(xié)議端口,遠(yuǎn)地主機(jī)的IP地址,遠(yuǎn)地進(jìn)程的協(xié)議端口。
應(yīng)用層通過傳輸層進(jìn)行數(shù)據(jù)通信時(shí),TCP會(huì)遇到同時(shí)為多個(gè)應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問題。多個(gè)TCP連接或多個(gè)應(yīng)用程序進(jìn)程可能需要通過同一個(gè) TCP協(xié)議端口傳輸數(shù)據(jù)。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了套接字(Socket)接口。應(yīng)用層可以和傳輸層通過Socket接口,區(qū)分來自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。
二、建立socket連接
建立Socket連接至少需要一對(duì)套接字,其中一個(gè)運(yùn)行于客戶端,稱為ClientSocket ,另一個(gè)運(yùn)行于服務(wù)器端,稱為ServerSocket 。
套接字之間的連接過程分為三個(gè)步驟:服務(wù)器監(jiān)聽,客戶端請(qǐng)求,連接確認(rèn)。
服務(wù)器監(jiān)聽:服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài),等待客戶端的連接請(qǐng)求。
客戶端請(qǐng)求:指客戶端的套接字提出連接請(qǐng)求,要連接的目標(biāo)是服務(wù)器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號(hào),然后就向服務(wù)器端套接字提出連接請(qǐng)求。
連接確認(rèn):當(dāng)服務(wù)器端套接字監(jiān)聽到或者說接收到客戶端套接字的連接請(qǐng)求時(shí),就響應(yīng)客戶端套接字的請(qǐng)求,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認(rèn)了此描述,雙方就正式建立連接。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收其他客戶端套接字的連接請(qǐng)求。

SOCKET連接與TCP/IP連接
創(chuàng)建Socket連接時(shí),可以指定使用的傳輸層協(xié)議,Socket可以支持不同的傳輸層協(xié)議(TCP或UDP),當(dāng)使用TCP協(xié)議進(jìn)行連接時(shí),該Socket連接就是一個(gè)TCP連接。
socket則是對(duì)TCP/IP協(xié)議的封裝和應(yīng)用(程序員層面上)。也可以說,TPC/IP協(xié)議是傳輸層協(xié)議,主要解決數(shù)據(jù) 如何在網(wǎng)絡(luò)中傳輸,而HTTP是應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)。關(guān)于TCP/IP和HTTP協(xié)議的關(guān)系,網(wǎng)絡(luò)有一段比較容易理解的介紹:
“我們?cè)趥鬏敂?shù)據(jù)時(shí),可以只使用(傳輸層)TCP/IP協(xié)議,但是那樣的話,如 果沒有應(yīng)用層,便無法識(shí)別數(shù)據(jù)內(nèi)容,如果想要使傳輸?shù)臄?shù)據(jù)有意義,則必須使用到應(yīng)用層協(xié)議,應(yīng)用層協(xié)議有很多,比如HTTP、FTP、TELNET等,也 可以自己定義應(yīng)用層協(xié)議。WEB使用HTTP協(xié)議作應(yīng)用層協(xié)議,以封裝HTTP文本信息,然后使用TCP/IP做傳輸層協(xié)議將它發(fā)到網(wǎng)絡(luò)上?!?br>我們平時(shí)說的最多的socket是什么呢,實(shí)際上socket是對(duì)TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議,而是一個(gè)調(diào)用接口(API),通過Socket,我們才能使用TCP/IP協(xié)議。 實(shí)際上,Socket跟TCP/IP協(xié)議沒有必然的聯(lián)系。Socket編程接口在設(shè)計(jì)的時(shí)候,就希望也能適應(yīng)其他的網(wǎng)絡(luò)協(xié)議。所以說,Socket的出現(xiàn) 只是使得程序員更方便地使用TCP/IP協(xié)議棧而已,是對(duì)TCP/IP協(xié)議的抽象,從而形成了我們知道的一些最基本的函數(shù)接口,比如create、 listen、connect、accept、send、read和write等等。網(wǎng)絡(luò)有一段關(guān)于socket和TCP/IP協(xié)議關(guān)系的說法比較容易理解:
“TCP/IP只是一個(gè)協(xié)議棧,就像操作系統(tǒng)的運(yùn)行機(jī)制一樣,必須要具體實(shí)現(xiàn),同時(shí)還要提供對(duì)外的操作接口。這個(gè)就像操作系統(tǒng)會(huì)提供標(biāo)準(zhǔn)的編程接口,比如win32編程接口一樣,TCP/IP也要提供可供程序員做網(wǎng)絡(luò)開發(fā)所用的接口,這就是Socket編程接口?!?br>實(shí)際上,傳輸層的TCP是基于網(wǎng)絡(luò)層的IP協(xié)議的,而應(yīng)用層的HTTP協(xié)議又是基于傳輸層的TCP協(xié)議的,而Socket本身不算是協(xié)議,就像上面所說,它只是提供了一個(gè)針對(duì)TCP或者UDP編程的接口。socket是對(duì)端口通信開發(fā)的工具,它要更底層一些.

Socket連接與HTTP連接
由于通常情況下Socket連接就是TCP連接,因此Socket連接一旦建立,通信雙方即可開始相互發(fā)送數(shù)據(jù)內(nèi)容,直到雙方連接斷開。但在實(shí)際網(wǎng)絡(luò)應(yīng)用中,客戶端到服務(wù)器之間的通信往往需要穿越多個(gè)中間節(jié)點(diǎn),例如路由器、網(wǎng)關(guān)、防火墻等,大部分防火墻默認(rèn)會(huì)關(guān)閉長(zhǎng)時(shí)間處于非活躍狀態(tài)的連接而導(dǎo)致 Socket 連接斷連,因此需要通過輪詢告訴網(wǎng)絡(luò),該連接處于活躍狀態(tài)。
而HTTP連接使用的是“請(qǐng)求—響應(yīng)”的方式,不僅在請(qǐng)求時(shí)需要先建立連接,而且需要客戶端向服務(wù)器發(fā)出請(qǐng)求后,服務(wù)器端才能回復(fù)數(shù)據(jù)。
很多情況下,需要服務(wù)器端主動(dòng)向客戶端推送數(shù)據(jù),保持客戶端與服務(wù)器數(shù)據(jù)的實(shí)時(shí)與同步。此時(shí)若雙方建立的是Socket連接,服務(wù)器就可以直接將數(shù)據(jù)傳送給客戶端;若雙方建立的是HTTP連接,則服務(wù)器需要等到客戶端發(fā)送一次請(qǐng)求后才能將數(shù)據(jù)傳回給客戶端,因此,客戶端定時(shí)向服務(wù)器端發(fā)送連接請(qǐng)求,不僅可以保持在線,同時(shí)也是在“詢問”服務(wù)器是否有新的數(shù)據(jù),如果有就將數(shù)據(jù)傳給客戶端。

http協(xié)議是應(yīng)用層的協(xié)議
有個(gè)比較形象的描述:HTTP是轎車,提供了封裝或者顯示數(shù)據(jù)的具體形式;Socket是發(fā)動(dòng)機(jī),提供了網(wǎng)絡(luò)通信的能力。
兩個(gè)計(jì)算機(jī)之間的交流無非是兩個(gè)端口之間的數(shù)據(jù)通信,具體的數(shù)據(jù)會(huì)以什么樣的形式展現(xiàn)`是以不同的應(yīng)用層協(xié)議來定義的`如HTTP`FTP`。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

標(biāo)簽: 夢(mèng)天艙
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

蘋果手機(jī)怎么破解wifi密碼 脫機(jī)使用打印機(jī)是什么意思 如何將你的手機(jī)變成WIFI熱點(diǎn) iPhone遠(yuǎn)程遙控電腦播放音樂圖文教程 電腦網(wǎng)絡(luò)不穩(wěn)定怎么修復(fù) 如何用photoshop給圖片添加水印 應(yīng)用程序未知的軟件異常(0xc06d007e)怎么辦 農(nóng)業(yè)銀行K寶為什么插上不能直接跳出農(nóng)行頁面 淘寶保證金可以退嗎?怎么退? 如何批量下載圖片 微信怎么凍結(jié)或解凍賬號(hào) 錄音寶-錄音輕松轉(zhuǎn)文字 cad創(chuàng)建動(dòng)態(tài)圖塊 win7屏幕保護(hù)在哪里及設(shè)置方法 怎么把藍(lán)底照片P成紅底 360安全衛(wèi)士怎么顯示開機(jī)時(shí)間 怎么更改Win7桌面圖標(biāo)的大小 win7占用空間過大 簡(jiǎn)單的為C盤瘦身 如何開啟或關(guān)閉360加速球 音頻服務(wù)未運(yùn)行怎么辦 如何在PS中將一張圖片一次性裁剪保存成多張圖片 CDR制作酷炫立體字效果 怎么讓任務(wù)欄上的圖標(biāo)變大 電腦提示reboot and select proper boot device如何解決 通達(dá)信軟件怎么自編公式 俠盜獵車手圣安地列斯泡妞秘籍 OFFICE2007兼容包怎么下載安裝 如何備份手機(jī)數(shù)據(jù) iPhone6s剪卡教程 教你如何正確剪卡 戴爾電腦一鍵恢復(fù) PS如何調(diào)整曝光不足的圖片 3dmax2014(3dsmax2014)官方簡(jiǎn)體中文(64位)安裝圖文教程、破解注冊(cè)方法 如何讓拍倒著的視頻正過來 如何吃螃蟹啊 win7系統(tǒng)怎么將我的電腦放到桌面上 AI illustrator打造文字長(zhǎng)陰影特效 淘寶客微信發(fā)單機(jī)器人微信群裂變流程 360瀏覽器如何讓今日直播消失 大魚號(hào)(原UC訂閱號(hào))自媒體平臺(tái)的申請(qǐng)方法與流程介紹 電腦開機(jī)密碼怎么破解
Top