免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
[網(wǎng)絡(luò)] SOCKET, TCP/UDP, HTTP, FTP

TCP/IP是個(gè)協(xié)議組,可分為三個(gè)層次:網(wǎng)絡(luò)層、傳輸層和應(yīng)用層:

網(wǎng)絡(luò)層:IP協(xié)議、ICMP協(xié)議、ARP協(xié)議、RARP協(xié)議和BOOTP協(xié)議

傳輸層:TCP協(xié)議與UDP協(xié)議

應(yīng)用層:FTP、HTTP、TELNET、SMTP、DNS等協(xié)議


HTTP是應(yīng)用層協(xié)議,其傳輸都是被包裝成TCP協(xié)議傳輸??梢杂肧OCKET實(shí)現(xiàn)HTTP。

SOCKET是實(shí)現(xiàn)傳輸層協(xié)議的一種編程API,可以是TCP,也可以是UDP。


(二)Socket連接與HTTP連接區(qū)別

【Socket】

    由于通常情況下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)會關(guān)閉長時(shí)間處于非活躍狀態(tài)的連接而導(dǎo)致 Socket 連接斷連,因此需要通過輪詢告訴網(wǎng)絡(luò),該連接處于活躍狀態(tài)。

【Http】

    HTTP協(xié)議是建立在TCP協(xié)議之上的一種應(yīng)用,HTTP連接使用的是“請求—響應(yīng)”的方式,不僅在請求時(shí)需要先建立連接,而且需要客戶端向服務(wù)器發(fā)出請求后,服務(wù)器端才能回復(fù)數(shù)據(jù)。在請求結(jié)束后,會主動(dòng)釋放連接。從建立連接到關(guān)閉連接的過程稱為“一次連接”。由于HTTP在每次請求結(jié)束后都會主動(dòng)釋放連接,因此HTTP連接是一種“短連接”,要保持客戶端程序的在線狀態(tài),需要不斷地向服務(wù)器發(fā)起連接請求。通常的做法是即時(shí)不需要獲得任何數(shù)據(jù),客戶端也保持每隔一段固定的時(shí)間向服務(wù)器發(fā)送一次“保持連接”的請求,服務(wù)器在收到該請求后對客戶端進(jìn)行回復(fù),表明知道客戶端“在線”。若服務(wù)器長時(shí)間無法收到客戶端的請求,則認(rèn)為客戶端“下線”,若客戶端長時(shí)間無法收到服務(wù)器的回復(fù),則認(rèn)為網(wǎng)絡(luò)已經(jīng)斷開。

【適用情況】

    很多情況下,需要服務(wù)器端主動(dòng)向客戶端推送數(shù)據(jù),保持客戶端與服務(wù)器數(shù)據(jù)的實(shí)時(shí)與同步。此時(shí)若雙方建立的是Socket連接,服務(wù)器就可以直接將數(shù)據(jù)傳送給客戶端;

    若雙方建立的是HTTP連接,則服務(wù)器需要等到客戶端發(fā)送一次請求后才能將數(shù)據(jù)傳回給客戶端,因此,客戶端定時(shí)向服務(wù)器端發(fā)送連接請求,不僅可以保持在線,同時(shí)也是在“詢問”服務(wù)器是否有新的數(shù)據(jù),如果有就將數(shù)據(jù)傳給客戶端。

SOCKET原理】

   (1)套接字(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會遇到同時(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)用程序與TCPIP協(xié)議交互提供了套接字(Socket)接口。應(yīng)用層可以和傳輸層通過Socket接口,區(qū)分來自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。

(2)建立socket接:

建立Socket連接至少需要一對套接字,其中一個(gè)運(yùn)行于客戶端,稱為ClientSocket ,另一個(gè)運(yùn)行于服務(wù)器端,稱為ServerSocket 。

套接字之間的連接過程分為三個(gè)步驟:服務(wù)器監(jiān)聽,客戶端請求,連接確認(rèn)。

服務(wù)器監(jiān)聽:服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài),等待客戶端的連接請求

客戶端請求:指客戶端的套接字提出連接請求,要連接的目標(biāo)是服務(wù)器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號,然后就向服務(wù)器端套接字提出連接請求。

連接確認(rèn):當(dāng)服務(wù)器端套接字監(jiān)聽到或者說接收到客戶端套接字的連接請求時(shí),就響應(yīng)客戶端套接字的請求,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認(rèn)了此描述,雙方就正式建立連接。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收其他客戶端套接字的連接請求。

(3)SOCKET連接與TCP

創(chuàng)建Socket連接時(shí),可以指定使用的傳輸層協(xié)議,Socket可以支持不同的傳輸層協(xié)議(TCPUDP),當(dāng)使用TCP協(xié)議進(jìn)行連接時(shí),該Socket連接就是一個(gè)TCP連接。


(三)TCP 與 UDP 

概念

   TCP --- 傳輸控制協(xié)議,提供的是面向連接、可靠的字節(jié)流服務(wù)。當(dāng)客戶和服務(wù)器彼此交換數(shù)據(jù)前,必須先在雙方之間建立一個(gè)TCP連接,之后才能傳輸數(shù)據(jù)。TCP提供超時(shí)重發(fā),丟棄重復(fù)數(shù)據(jù),檢驗(yàn)數(shù)據(jù),流量控制等功能,保證數(shù)據(jù)能從一端傳到另一端。 理想狀態(tài)下,TCP連接一旦建立,在通信雙方中的任何一方主動(dòng)關(guān)閉連接前,TCP 連接都將被一直保持下去。斷開連接時(shí)服務(wù)器和客戶端均可以主動(dòng)發(fā)起斷開TCP連接的請求 
   UDP --- 用戶數(shù)據(jù)報(bào)協(xié)議,是一個(gè)無連接的簡單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議。UDP不提供可靠性,它只是把應(yīng)用程序傳給IP層的數(shù)據(jù)報(bào)發(fā)送出去,但是并不能保證它們能到達(dá)目的地。由于UDP在傳輸數(shù)據(jù)報(bào)前不用在客戶和服務(wù)器之間建立一個(gè)連接,且沒有超時(shí)重發(fā)等機(jī)制,故而傳輸速度很快  

適用情況 
    TCP發(fā)送的包有序號,對方收到包后要給一個(gè)反饋,如果超過一定時(shí)間還沒收到反饋就自動(dòng)執(zhí)行超時(shí)重發(fā),因此TCP最大的優(yōu)點(diǎn)是可靠。一般網(wǎng)頁(http)、郵件(SMTP)、遠(yuǎn)程連接(Telnet)、文件(FTP)傳送就用TCP  
    UDP是面向消息的協(xié)議,通信時(shí)不需要建立連接,數(shù)據(jù)的傳輸自然是不可靠的,UDP一般用于多點(diǎn)通信和實(shí)時(shí)的數(shù)據(jù)業(yè)務(wù),比如語音廣播、視頻、QQ、TFTP(簡單文件傳送)、SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)、RTP(實(shí)時(shí)傳送協(xié)議)RIP(路由信息協(xié)議,如報(bào)告股票市場,航空信息)、DNS(域名解釋)。注重速度流暢。  

【TCP連接的三次握手】
 
    要了解TCP,一定要知道"三次握手,四次拜拜"所謂的三次握手,就是發(fā)送數(shù)據(jù)前必須建立的連接叫三次握手,握手完了才開始發(fā)的,這也就是面向連接的意思。  
    第一次握手:客戶端發(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ù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。
    

(4)FTP

     文件傳輸協(xié)議(File Transfer Protocol, FTP)是TCP/IP網(wǎng)絡(luò)上兩臺計(jì)算機(jī)傳送文件的協(xié)議,F(xiàn)TP是在TCP/IP網(wǎng)絡(luò)和INTERNET上最早使用的協(xié)議之一,它屬于網(wǎng)絡(luò)協(xié)議組的應(yīng)用層。FTP客戶機(jī)可以給服務(wù)器發(fā)出命令來下載文件,上載文件,創(chuàng)建或改變服務(wù)器上的目錄。


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
通信掃盲
Socket、Tcp、Udp、Http 的認(rèn)識及區(qū)別
Socket 與 Http區(qū)別 優(yōu)缺點(diǎn)及應(yīng)用場景
基于混合TCP-UDP的HTTP協(xié)議實(shí)現(xiàn)方法 - 21IC中國電子網(wǎng)
深入淺出-iOS的TCP/IP協(xié)議族剖析&&Socket
Android中的TCP/IP,HTTP的認(rèn)識
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服