0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

誰來解答一下Socket究竟是什么?

strongerHuang ? 來源:strongerHuang ? 作者:strongerHuang ? 2021-05-23 15:03 ? 次閱讀

網(wǎng)絡(luò)通信與我們生活息息相關(guān),特別是今天發(fā)達的智能手機、物聯(lián)網(wǎng)這些都離不開網(wǎng)絡(luò)通信。今天分享一下關(guān)于Socket網(wǎng)絡(luò)通信的內(nèi)容。

1 關(guān)于Socket

學(xué)習(xí)過網(wǎng)絡(luò)編程,或者網(wǎng)絡(luò)開發(fā)的朋友都應(yīng)該聽說過socket。

socket又叫套接字,是一個抽象層,應(yīng)用程序可以通過它發(fā)送或接收數(shù)據(jù),可對其進行像對文件一樣的打開、讀寫和關(guān)閉等操作。套接字允許應(yīng)用程序?qū)/O插入到網(wǎng)絡(luò)中,并與網(wǎng)絡(luò)中的其他應(yīng)用程序進行通信。網(wǎng)絡(luò)套接字是IP地址與端口的組合。

誰來解答一下Socket究竟是什么?

Socket是網(wǎng)絡(luò)通訊經(jīng)常采用的一種方式,它不是一個具體的物件也不是像http類的通訊協(xié)議。你可以把它看成是一組基于TCP和UDP通信協(xié)議的接口,Socket其實就是一個門面模式,它把復(fù)雜的TCP/IP協(xié)議族隱藏在Socket接口后面,對用戶來說,一組簡單的接口就是全部,讓Socket去組織數(shù)據(jù),以符合指定的協(xié)議。

2 Socket基本概念

在了解Socket之前你需要對計算機通訊的分層有個大概的了解,網(wǎng)絡(luò)七層協(xié)議,OSI:Open System Interconnection,也叫開放式系統(tǒng)互聯(lián)參考模型。

這里不詳解OSI,放一張很好的圖分享給大家:

上面圖詳細講了基本整個計算機通信的分層架構(gòu),很多我也不了解沒我們只看我們關(guān)心的TCP/IP,其分層簡化圖示如下:

誰來解答一下Socket究竟是什么?

3 理解Socket了解了基本分層機構(gòu)后,我們現(xiàn)在來形象的理解一下Socket到底是什么。這里有一個很形象的實例可以幫助我們很好的理解Socket,以物流為例。

我們要傳送的數(shù)據(jù)就是物流中的貨物,ip就是發(fā)貨人和收貨人的聯(lián)系方式,那么Socket是什么?大家想想這送貨這這一流程還缺少啥?對呀,物流公司啊,對吧!物流公司就是那個Socket,他負責(zé)幫你處理送貨的瑣碎事情,比如你的貨物該怎么打包、該怎么防止易碎物品破碎、該用什么方式運輸、等等,如果是境外貨物還牽涉到報關(guān)等等一系列復(fù)雜瑣碎的事情,這些物流公司(Socket)幫你處理好了。示意圖如下:

誰來解答一下Socket究竟是什么?

4 TCP與UDP的區(qū)別以及三次握手和四次揮手

前面講到Socket就相當(dāng)于是物流公司,那么TCP協(xié)議就相當(dāng)于是:假設(shè)你是寄貨方,你要寄給你朋友一份禮物,你首先得去物流公司去寄,這樣你在物流公司就相當(dāng)于建立了一個事物(Socket實例)。然后物流公司有兩種服務(wù)方式讓你選擇(TCP和UDP)。

先說TCP,TCP這個協(xié)議它比較保守,物流公司說我必須確保你朋友會接收這份禮物,不然它不送。于是物流公司就回去聯(lián)系你朋友。然后聯(lián)系內(nèi)容大致如下:

物流:你好,我這里有個你朋友寄的禮物要給你,你收嗎?你朋友:OK,收,什么時候發(fā),多久到?物流:現(xiàn)在就發(fā),大概要12小時到。

然后物流才開始發(fā)貨,并且會給你們一個物流單號,這個單號就是關(guān)于這份貨物你和你朋友的發(fā)貨收貨憑證。這就是所謂的三次握手。示意圖:

誰來解答一下Socket究竟是什么?

物流發(fā)送完后還會聯(lián)系你朋友,大致對話內(nèi)容:

物流:你好,貨物已發(fā)送,請注意查收你朋友:好的。貨物送到,你朋友:OK,貨物收到,你們可以結(jié)案物流:好的,我結(jié)案了。

這就是所謂的四次揮手(拜拜);

(注釋:三次握手四次揮手這都是Socket在你建立的時候根據(jù)你選擇的協(xié)議確定好的)

這樣是不是很麻煩,估計也就順豐有這服務(wù)了,其他大部分公司還是沒有這么貼心的服務(wù)的,他們可能就是UDP協(xié)議方式了。

UDP比較簡單,當(dāng)你用物流(Socket)寄貨物的時候物流公司并不會管你朋友是否能聯(lián)系上,是否愿意接收,它只負責(zé)將你的貨物發(fā)出去就完事。這中間是不需要通知你朋友的,你和你朋友也不需要有連接,這就是所謂的無連接。

5 兩種協(xié)議區(qū)別

UDP 常用于一次性傳輸比較少量數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用中,UDP 也常用于多媒體應(yīng)用(如 IP 電話、實時視頻會議、流媒體等),顯然,可靠數(shù)據(jù)傳輸對于這些應(yīng)用來說并不是最重要的,但 TCP 的擁塞控制會導(dǎo)致數(shù)據(jù)出現(xiàn)較大的延遲,這是它們不能容忍的,我們最熟悉的視頻通話大部分就是用的UDP協(xié)議。

TCP面向連接,即發(fā)送數(shù)據(jù)之前需要建立連接,并且TCP是擁有擁塞機制的,當(dāng)前部分數(shù)據(jù)還沒有被接收完,后部分的數(shù)據(jù)會被阻塞知道前部分數(shù)據(jù)傳遞OK后才會繼續(xù)傳遞后半部分,所以通過TCP連接傳送的數(shù)據(jù),無差錯,不丟失,不重復(fù),且按序到達;在數(shù)據(jù)完整性、安全性要求較高的場景需要使用TCP協(xié)議,比如你傳送重要辦公文件、圖片等,這些東西丟包都是會影響數(shù)據(jù)品質(zhì)的。

責(zé)任編輯:lq6

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Socket
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    34604
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1337

    瀏覽量

    78866
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    318

    瀏覽量

    33837
  • 端口
    +關(guān)注

    關(guān)注

    4

    文章

    936

    瀏覽量

    31952

原文標題:Socket通信原理

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    超高頻讀寫器究竟是什么,能做什么?文讀懂!

    在物聯(lián)網(wǎng)技術(shù)日新月異的今天,超高頻讀寫器作為射頻識別(RFID)技術(shù)的重要組成部分,正逐漸滲透到我們生活的各個領(lǐng)域。那么,超高頻讀寫器究竟是什么?它又能做些什么呢?本文將帶您一探究竟。、超高頻
    的頭像 發(fā)表于 10-23 14:41 ?37次閱讀
    超高頻讀寫器<b class='flag-5'>究竟是</b>什么,能做什么?<b class='flag-5'>一</b>文讀懂!

    揭秘貼片功率電感發(fā)燙究竟是不是燒壞了

    電子發(fā)燒友網(wǎng)站提供《揭秘貼片功率電感發(fā)燙究竟是不是燒壞了.docx》資料免費下載
    發(fā)表于 09-30 14:44 ?0次下載

    電感器線徑究竟是粗好還是細好

    電子發(fā)燒友網(wǎng)站提供《電感器線徑究竟是粗好還是細好.docx》資料免費下載
    發(fā)表于 09-20 11:25 ?0次下載

    運放輸入偏置電流的方向是流入運放芯片還是流出運放芯片?這個怎么確定的?

    圖,不知道是三極管還是MOS管組成的,這種情況怎么辦呢? 運放正負端的輸入偏置電流方向是致的吧? 請大俠幫忙解答一下,謝謝!
    發(fā)表于 08-23 07:29

    tas5756m使用GPIO口加內(nèi)部PLL產(chǎn)生MCLK的方法究竟是怎么樣的?

    tas5756m使用GPIO口加內(nèi)部PLL產(chǎn)生MCLK的方法究竟是怎么樣的?
    發(fā)表于 08-19 06:06

    請問cH340G的TX引腳電平究竟是3v還是5v?

    用CD34G來實現(xiàn)usb轉(zhuǎn)串口的時候,直接用usb口的5v作為電源電壓,它的tx引腳輸出的高電平究竟是5v還是3v,我實測是3v,但網(wǎng)上有的人是5v,想進步得到大家的確認。
    發(fā)表于 05-14 08:15

    STM32擦除后數(shù)據(jù)究竟是0x00還是0xff ?

    STM32擦除后數(shù)據(jù)究竟是0x00還是0xff ,百度查了許多發(fā)現(xiàn)大多數(shù)都是0xff的多,都說SD卡(TF)儲存介質(zhì)是Flash 所以擦除后為0xff,但是我遇到了讀出來的數(shù)據(jù)是0x00的情況,為什么呢
    發(fā)表于 04-18 07:59

    MOSFET的柵源振蕩究竟是怎么來的?柵源振蕩的危害什么?如何抑制

    MOSFET的柵源振蕩究竟是怎么來的呢?柵源振蕩的危害什么?如何抑制或緩解柵源振蕩的現(xiàn)象呢? MOSFET(金屬-氧化物-半導(dǎo)體場效應(yīng)晶體管)的柵源振蕩是指在工作過程中,出現(xiàn)的柵極與源極之間產(chǎn)生
    的頭像 發(fā)表于 03-27 15:33 ?1323次閱讀

    吸塵器究竟是如何替你“吃灰”的【其利天下技術(shù)】

    如今,吸塵器已成為大多數(shù)人居家必備的小家電產(chǎn)品,那么說起吸塵器,你對吸塵器有了解多少呢?不知道大家知不知道它的原理是什么?今天我們就來說說吸塵器究竟是如何替你“吃灰”的。
    的頭像 發(fā)表于 03-07 21:17 ?799次閱讀
    吸塵器<b class='flag-5'>究竟是</b>如何替你“吃灰”的【其利天下技術(shù)】

    “其貌不揚”的共模電感究竟是如何做到抗干擾的呢?

    “其貌不揚”的共模電感究竟是如何做到抗干擾的呢? 共模電感是種用于濾除電子設(shè)備中的共模噪聲的重要元件,其主要作用是提供阻抗來濾除共模干擾信號。盡管外觀看起來“其貌不揚”,但共模電感通過其特殊
    的頭像 發(fā)表于 01-11 16:27 ?648次閱讀

    用CCES進入Debug調(diào)試BF609時出現(xiàn)錯誤是哪里出了問題呢?

    仿真器測試連接已經(jīng)試過了,都是通的,就是沒法連上板子,究竟是哪里出了問題呢?感謝解答!
    發(fā)表于 01-11 07:17

    同步電機的轉(zhuǎn)數(shù)同步究竟是與什么同步?。?/a>

    同步電機的轉(zhuǎn)數(shù)同步究竟是與什么同步?。?所有的同步電機的轉(zhuǎn)數(shù)都樣嗎?還是與電機的極對數(shù)有關(guān)系呢?
    發(fā)表于 12-19 06:44

    體成型貼片電感在使用中發(fā)熱究竟是否會影響運行

    電子發(fā)燒友網(wǎng)站提供《體成型貼片電感在使用中發(fā)熱究竟是否會影響運行.docx》資料免費下載
    發(fā)表于 11-13 16:28 ?1次下載

    Socket緩存如何影響TCP的性能

    白。下面我們就構(gòu)建起個簡單的實驗環(huán)境,在兩臺虛擬機之間探究一下Socket緩存究竟如何影響TCP的性能?對分析過程不感興趣的可以直接看最后的結(jié)論。 影響
    的頭像 發(fā)表于 11-09 10:13 ?527次閱讀

    OSPF究竟是如何規(guī)避路由環(huán)路的呢?

    OSPF究竟是如何規(guī)避路由環(huán)路的呢? OSPF(開放式最短路徑優(yōu)先)是種內(nèi)部網(wǎng)關(guān)協(xié)議(IGP),用于在個單的自治系統(tǒng)(AS)內(nèi)進行路由選擇,它是
    的頭像 發(fā)表于 11-06 11:10 ?1649次閱讀