日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TCP/IP,Http,Socket,XMPP的区别

發布時間:2023/12/13 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TCP/IP,Http,Socket,XMPP的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網絡由下往上分為

物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。

通過初步的了解,我知道IP協議對應于網絡層,TCP協議對應于傳輸層,而HTTP協議對應于應用層,

三者從本質上來說沒有可比性,

socket則是對TCP/IP協議的封裝和應用(程序員層面上)。

也可以說,TPC/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸,

而HTTP是應用層協議,主要解決如何包裝數據。

關于TCP/IP和HTTP協議的關系,網絡有一段比較容易理解的介紹:

“我們在傳輸數據時,可以只使用(傳輸層)TCP/IP協議,但是那樣的話,如果沒有應用層,便無法識別數據內容。

如果想要使傳輸的數據有意義,則必須使用到應用層協議。

應用層協議有很多,比如HTTP、FTP、TELNET等,也可以自己定義應用層協議。

WEB使用HTTP協議作應用層協議,以封裝HTTP文本信息,然后使用TCP/IP做傳輸層協議將它發到網絡上。”

而我們平時說的最多的socket是什么呢,實際上socket是對TCP/IP協議的封裝,Socket本身并不是協議,而是一個調用接口(API)。

通過Socket,我們才能使用TCP/IP協議。

實際上,Socket跟TCP/IP協議沒有必然的聯系。

Socket編程接口在設計的時候,就希望也能適應其他的網絡協議。

所以說,Socket的出現只是使得程序員更方便地使用TCP/IP協議棧而已,是對TCP/IP協議的抽象,

從而形成了我們知道的一些最基本的函數接口,比如create、listen、connect、accept、send、read和write等等。

網絡有一段關于socket和TCP/IP協議關系的說法比較容易理解:

“TCP/IP只是一個協議棧,就像操作系統的運行機制一樣,必須要具體實現,同時還要提供對外的操作接口。

這個就像操作系統會提供標準的編程接口,比如win32編程接口一樣,

TCP/IP也要提供可供程序員做網絡開發所用的接口,這就是Socket編程接口。”

關于TCP/IP協議的相關只是,用博大精深來講我想也不為過,單單查一下網上關于此類只是的資料和書籍文獻的數量就知道,

這個我打算會買一些經典的書籍(比如《TCP/IP詳解:卷一、卷二、卷三》)進行學習,今天就先總結一些基于基于TCP/IP協議的應用和編程接口的知識,也就是剛才說了很多的HTTP和Socket。

CSDN上有個比較形象的描述:HTTP是轎車,提供了封裝或者顯示數據的具體形式;Socket是發動機,提供了網絡通信的能力。

實際上,傳輸層的TCP是基于網絡層的IP協議的,而應用層的HTTP協議又是基于傳輸層的TCP協議的,而Socket本身不算是協議,就像上面所說,它只是提供了一個針對TCP或者UDP編程的接口。

下面是一些經常在筆試或者面試中碰到的重要的概念,特在此做摘抄和總結。

一、什么是TCP連接的三次握手

第一次握手:客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;

第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;

第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。

握手過程中傳送的包里不包含數據,三次握手完畢后,客戶端與服務器才正式開始傳送數據。

理想狀態下,TCP連接一旦建立,在通信雙方中的任何一方主動關閉連接之前,TCP 連接都將被一直保持下去。

斷開連接時服務器和客戶端均可以主動發起斷開TCP連接的請求,斷開過程需要經過“四次握手”(過程就不細寫了,就是服務器和客戶端交互,最終確定斷開)

二、利用Socket建立網絡連接的步驟

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

套接字之間的連接過程分為三個步驟:服務器監聽,客戶端請求,連接確認。

1、服務器監聽:服務器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態,實時監控網絡狀態,等待客戶端的連接請求。

2、客戶端請求:指客戶端的套接字提出連接請求,要連接的目標是服務器端的套接字。

為此,客戶端的套接字必須首先描述它要連接的服務器的套接字,指出服務器端套接字的地址和端口號,然后就向服務器端套接字提出連接請求。

3、連接確認:當服務器端套接字監聽到或者說接收到客戶端套接字的連接請求時,就響應客戶端套接字的請求,建立一個新的線程,把服務器端套接字的描述發給客戶端,一旦客戶端確認了此描述,雙方就正式建立連接。

而服務器端套接字繼續處于監聽狀態,繼續接收其他客戶端套接字的連接請求。

三、HTTP鏈接的特點

HTTP協議即超文本傳送協議(Hypertext Transfer Protocol ),是Web聯網的基礎,也是手機聯網常用的協議之一,HTTP協議是建立在TCP協議之上的一種應用。

HTTP連接最顯著的特點是客戶端發送的每次請求都需要服務器回送響應,在請求結束后,會主動釋放連接。從建立連接到關閉連接的過程稱為“一次連接”。

四、TCP和UDP的區別(考得最多。。快被考爛了我覺得- -\\)

1、TCP是面向鏈接的,雖然說網絡的不安全不穩定特性決定了多少次握手都不能保證連接的可靠性,但TCP的三次握手在最低限度上(實際上也很大程度上保證了)保證了連接的可靠性;

而UDP不是面向連接的,UDP傳送數據前并不與對方建立連接,對接收到的數據也不發送確認信號,發送端不知道數據是否會正確接收,當然也不用重發,所以說UDP是無連接的、不可靠的一種數據傳輸協議。

2、也正由于1所說的特點,使得UDP的開銷更小數據傳輸速率更高,因為不必進行收發數據的確認,所以UDP的實時性更好。

知道了TCP和UDP的區別,就不難理解為何采用TCP傳輸協議的MSN比采用UDP的QQ傳輸文件慢了,但并不能說QQ的通信是不安全的,

因為程序員可以手動對UDP的數據收發進行驗證,比如發送方對每個數據包進行編號然后由接收方進行驗證啊什么的,

即使是這樣,UDP因為在底層協議的封裝上沒有采用類似TCP的“三次握手”而實現了TCP所無法達到的傳輸效率。

1、TCP連接

要想明白Socket連接,先要明白TCP連接。手機能夠使用聯網功能是因為手機底層實現了TCP/IP協議,可以使手機終端通過無線網絡建立TCP連接。TCP協議可以對上層網絡提供接口,使上層網絡數據的傳輸建立在“無差別”的網絡之上。

建立起一個TCP連接需要經過“三次握手”:

第一次握手:客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;

第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;

第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。

握手過程中傳送的包里不包含數據,三次握手完畢后,客戶端與服務器才正式開始傳送數據。理想狀態下,TCP連接一旦建立,在通信雙方中的任何一方主動關閉連接之前,TCP 連接都將被一直保持下去。斷開連接時服務器和客戶端均可以主動發起斷開TCP連接的請求,斷開過程需要經過“四次握手”(過程就不細寫了,就是服務器和客戶端交互,最終確定斷開)


2、HTTP連接

HTTP協議即超文本傳送協議(Hypertext Transfer Protocol ),是Web聯網的基礎,也是手機聯網常用的協議之一,HTTP協議是建立在TCP協議之上的一種應用。

HTTP連接最顯著的特點是客戶端發送的每次請求都需要服務器回送響應,在請求結束后,會主動釋放連接。從建立連接到關閉連接的過程稱為“一次連接”。

1)在HTTP 1.0中,客戶端的每次請求都要求建立一次單獨的連接,在處理完本次請求后,就自動釋放連接。?
2)在HTTP 1.1中則可以在一次連接中處理多個請求,并且多個請求可以重疊進行,不需要等待一個請求結束后再發送下一個請求。?


3、SOCKET原理

3.1套接字(socket)概念

套接字(socket)是通信的基石,是支持TCP/IP協議的網絡通信的基本操作單元。它是網絡通信過程中端點的抽象表示,包含進行網絡通信必須的五種信息:連接使用的協議,本地主機的IP地址,本地進程的協議端口,遠地主機的IP地址,遠地進程的協議端口。

應用層通過傳輸層進行數據通信時,TCP會遇到同時為多個應用程序進程提供并發服務的問題。多個TCP連接或多個應用程序進程可能需要通過同一個 TCP協議端口傳輸數據。為了區別不同的應用程序進程和連接,許多計算機操作系統為應用程序與TCP/IP協議交互提供了套接字(Socket)接口。應用層可以和傳輸層通過Socket接口,區分來自不同應用程序進程或網絡連接的通信,實現數據傳輸的并發服務。


3.2 建立socket連接?
建立Socket連接至少需要一對套接字,其中一個運行于客戶端,稱為ClientSocket ,另一個運行于服務器端,稱為ServerSocket 。

套接字之間的連接過程分為三個步驟:服務器監聽,客戶端請求,連接確認。

服務器監聽:服務器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態,實時監控網絡狀態,等待客戶端的連接請求。

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

連接確認:當服務器端套接字監聽到或者說接收到客戶端套接字的連接請求時,就響應客戶端套接字的請求,建立一個新的線程,把服務器端套接字的描述發給客戶端,一旦客戶端確認了此描述,雙方就正式建立連接。而服務器端套接字繼續處于監聽狀態,繼續接收其他客戶端套接字的連接請求。


4、SOCKET連接與TCP連接

創建Socket連接時,可以指定使用的傳輸層協議,Socket可以支持不同的傳輸層協議(TCP或UDP),當使用TCP協議進行連接時,該Socket連接就是一個TCP連接。


5、Socket連接與HTTP連接

由于通常情況下Socket連接就是TCP連接,因此Socket連接一旦建立,通信雙方即可開始相互發送數據內容,直到雙方連接斷開。但在實際網絡應用中,客戶端到服務器之間的通信往往需要穿越多個中間節點,例如路由器、網關、防火墻等,大部分防火墻默認會關閉長時間處于非活躍狀態的連接而導致 Socket 連接斷連,因此需要通過輪詢告訴網絡,該連接處于活躍狀態。

而HTTP連接使用的是“請求—響應”的方式,不僅在請求時需要先建立連接,而且需要客戶端向服務器發出請求后,服務器端才能回復數據。

很多情況下,需要服務器端主動向客戶端推送數據,保持客戶端與服務器數據的實時與同步。此時若雙方建立的是Socket連接,服務器就可以直接將數據傳送給客戶端;若雙方建立的是HTTP連接,則服務器需要等到客戶端發送一次請求后才能將數據傳回給客戶端,因此,客戶端定時向服務器端發送連接請求,不僅可以保持在線,同時也是在“詢問”服務器是否有新的數據,如果有就將數據傳給客戶端。

總結

以上是生活随笔為你收集整理的TCP/IP,Http,Socket,XMPP的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜精品网| 特级毛片av | 精品国产户外野外 | 久久这里 | 老牛影视av一区二区在线观看 | 国产999在线观看 | 欧美www在线观看 | 天天操天天操天天操天天 | 18无码粉嫩小泬无套在线观看 | 福利小视频 | 亚洲天堂视频一区 | 亚洲影视一区二区 | 欧美粗暴se喷水 | 国产精品99久久久久久久久久久久 | 超碰97在线资源 | 日韩欧美综合久久 | 第九色激情 | 国产日韩91| 国产精品久久久精品 | 国产精品久久久久久久久久久久久久久久 | www.69pao.com| 91亚洲国产 | 在线视频日韩欧美 | 亚欧美一区二区三区 | 色婷婷久久一区二区三区麻豆 | 欧美a一级片 | 熟妇大屁股一区二区三区视频 | 色播五月激情五月 | 亚洲色婷婷一区二区三区 | 亚洲影视在线 | 卡一卡二在线视频 | 97自拍偷拍视频 | 人操人爽 | 青娱乐99 | 色哟哟日韩精品 | 青青99| 在线天堂6 | 在线视频观看你懂得 | 日韩高清二区 | 欧美在线免费 | 最近中文字幕在线观看 | 毛片无遮挡 | 又黄又爽又色视频 | 日本一区二区三区精品视频 | 欧美精品久久久久久久自慰 | 亚洲天堂成人 | 2020亚洲男人天堂 | 9l蝌蚪porny中文自拍 | 一区二区三区免费网站 | 免费看裸体网站视频 | 91精品国产自产精品男人的天堂 | 性生活视频播放 | 欧美成人精品欧美一级乱 | 日韩欧美在线一区 | 六月婷婷中文字幕 | 国产suv精品一区二区883 | 奇米影视播放器 | 不卡视频一区二区三区 | 日本久久精品视频 | 韩国三级hd中文字幕叫床浴室 | 亚洲三级在线 | 噼里啪啦高清 | av鲁丝一区鲁丝二区鲁丝 | 中国第一毛片 | 色77777| 国产高清中文字幕 | 免费成人av在线 | 色播在线 | 免费视频久久 | 爱情岛论坛自拍亚洲品质极速最新章 | 人人干人 | 欧美色国 | 日韩影视一区二区三区 | 一级aaaa毛片 | 香蕉久久网 | 国产精品女教师 | 日韩福利片 | 国产视频一区二区三区在线 | 最近中文字幕在线中文视频 | 青青草成人网 | 国产一级片免费观看 | 欧美精品日韩在线 | 女同一区二区三区 | 91精品视频网站 | 亚洲欧美日韩天堂 | 在线观视频免费观看 | 中文字幕第八页 | 亚洲国产精品成人午夜在线观看 | 中日韩精品在线 | 欧美性教育视频 | 91嫩草精品| 人妻少妇被粗大爽9797pw | 欧美午夜精品一区二区三区 | 国产成人免费在线 | 色婷婷久久综合 | 亚洲免费视 | 好好热视频 | 日本黄色xxxxx | 中文字幕一级 |