91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(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

學習過網(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其實就是一個門面模式,它把復雜的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,他負責幫你處理送貨的瑣碎事情,比如你的貨物該怎么打包、該怎么防止易碎物品破碎、該用什么方式運輸、等等,如果是境外貨物還牽涉到報關(guān)等等一系列復雜瑣碎的事情,這些物流公司(Socket)幫你處理好了。示意圖如下:

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

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

前面講到Socket就相當于是物流公司,那么TCP協(xié)議就相當于是:假設(shè)你是寄貨方,你要寄給你朋友一份禮物,你首先得去物流公司去寄,這樣你在物流公司就相當于建立了一個事物(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比較簡單,當你用物流(Socket)寄貨物的時候物流公司并不會管你朋友是否能聯(lián)系上,是否愿意接收,它只負責將你的貨物發(fā)出去就完事。這中間是不需要通知你朋友的,你和你朋友也不需要有連接,這就是所謂的無連接。

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

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

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

責任編輯:lq6

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

    關(guān)注

    1

    文章

    214

    瀏覽量

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

    關(guān)注

    8

    文章

    1425

    瀏覽量

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

    關(guān)注

    0

    文章

    334

    瀏覽量

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

    關(guān)注

    4

    文章

    1106

    瀏覽量

    33969

原文標題:Socket通信原理

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    分享一下多點電極液位開關(guān)的特點與優(yōu)勢

    ,都是在監(jiān)測液位。在工業(yè)生產(chǎn)中,會用到很多液體,他們的液位監(jiān)測又由誰來守護呢?今天我們來了解一下,多點電極液位開關(guān),聊聊它有什么特點和優(yōu)勢? 我們在生活中或是工業(yè)中,遇到的開關(guān)可能就知道“滿了”與“空了”,但
    的頭像 發(fā)表于 09-24 18:15 ?721次閱讀
    分享<b class='flag-5'>一下</b>多點電極液位開關(guān)的特點與優(yōu)勢

    文了解特性阻抗

    我們常聽到的“特性阻抗”究竟是什么?它與通常所說的“阻抗”或“直流電阻”有何區(qū)別?雖然“特性阻抗”和“阻抗”都使用[Ω]單位,但它們之間存在什么差異?
    的頭像 發(fā)表于 09-17 15:07 ?1671次閱讀
    <b class='flag-5'>一</b>文了解特性阻抗

    qkey軟件包在內(nèi)核V5.02運行出錯是哪里的問題?

    ) == RT_Object_Class_Memory) assertion failed at function:rt_smem_alloc, line number:290 ; 然后內(nèi)核改成V4.1.1就沒任何問題。 因為v5.0.2引入backtrace也始終有編譯問題,所以不好跟蹤
    發(fā)表于 09-15 07:46

    標準化考場是什么?

    很多現(xiàn)在都在建設(shè)標準化考場,標準化考場究竟是什么呢?
    的頭像 發(fā)表于 09-05 16:45 ?1574次閱讀
    標準化考場是什么?

    揭秘!基于RT-Thread探究“優(yōu)先級反轉(zhuǎn)”的任務(wù)調(diào)度究竟是什么樣的?| 技術(shù)集結(jié)

    ?RT-Trace初體驗!廢話不多說,我們直接開始。本文基于RT-Thread來編寫測試代碼。在此之前我們先捋一下代碼流程:優(yōu)先級反轉(zhuǎn)問題的本質(zhì)是高優(yōu)先級任務(wù)因等待
    的頭像 發(fā)表于 08-17 10:07 ?3284次閱讀
    揭秘!基于RT-Thread探究“優(yōu)先級反轉(zhuǎn)”<b class='flag-5'>下</b>的任務(wù)調(diào)度<b class='flag-5'>究竟是</b>什么樣的?| 技術(shù)集結(jié)

    多摩川高分辨率編碼器:究竟如何賦能數(shù)控機床超精密運動控制?

    在現(xiàn)代制造業(yè)中,數(shù)控機床的應(yīng)用極為廣泛,其加工精度直接影響著產(chǎn)品的質(zhì)量和性能。而多摩川高分辨率編碼器的出現(xiàn),為數(shù)控機床的超精密運動控制帶來了新的突破。那么,它究竟是如何實現(xiàn)這賦能的呢?讓我們一探究竟。
    的頭像 發(fā)表于 08-04 17:59 ?1012次閱讀

    功率半導體究竟是什么

    站在戰(zhàn)略升級的關(guān)鍵節(jié)點,聞泰科技正在全力聚焦半導體業(yè)務(wù),開啟全新發(fā)展階段。值此之際,公司特別推出 《探秘“芯”世界》系列專題,邀您同探索半導體的奧秘,見證聞泰科技以創(chuàng)新引領(lǐng)行業(yè)的 "芯" 力量。
    的頭像 發(fā)表于 07-09 11:42 ?1600次閱讀

    “碰一下”支付終端應(yīng)用在酒店:智能無卡入住與客房控制

    “碰一下”支付終端和“碰一下”支付機具今年已在各種餐飲零售門店推廣應(yīng)用。就連天波小編家附近的村口小超市也用上了“碰一下”支付終端。近日,鹵味龍頭企業(yè)絕味食品宣布,全國門店將接入“支付寶碰一下
    的頭像 發(fā)表于 07-04 09:57 ?838次閱讀
    “碰<b class='flag-5'>一下</b>”支付終端應(yīng)用在酒店:智能無卡入住與客房控制

    超聲波液位計究竟是什么?

    液位計
    jzyb
    發(fā)布于 :2025年06月03日 16:10:12

    單片機內(nèi)置ADC和外部ADC的對比

    ADC 江湖風云變幻,局勢不斷升級,緊張刺激!究竟是內(nèi)置 ADC 更勝籌還是外置 ADC 棋高著?
    的頭像 發(fā)表于 05-14 15:24 ?1648次閱讀

    FOC電機控制究竟該如何學?

    學習FOC電機控制究竟是學哪些內(nèi)容? 電機知識 軟件知識 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、點贊、評論支持一下哦~)
    發(fā)表于 05-09 14:09

    帶你參觀一下射頻工程師的試驗臺

    大家好,每個射頻工程師都有個自己的試驗臺,別人的試驗臺究竟是什么樣子的呢?君鑒科技今天帶你參觀一下別人的試驗臺。看,工作起來多認真!靜電服
    的頭像 發(fā)表于 04-30 18:34 ?492次閱讀
    帶你參觀<b class='flag-5'>一下</b>射頻工程師的試驗臺

    工程師在產(chǎn)品選型的時究竟是選CAN還是CANFD接口卡呢?

    很多工程師在產(chǎn)品選型的時候會疑惑,究竟是選CAN接口卡還是CANFD接口卡呢?兩者之間有什么區(qū)別呢?影響選擇的關(guān)鍵因素又是什么?我們今天一個一個來拆解。1.波特率傳統(tǒng)的CAN接口卡僅有個波特率,即
    的頭像 發(fā)表于 03-21 11:37 ?1015次閱讀
    工程師在產(chǎn)品選型的時<b class='flag-5'>究竟是</b>選CAN還是CANFD接口卡呢?

    單片機:請問一下圖中題目怎么解答?

    請問一下圖中題目怎么解答?
    發(fā)表于 03-19 20:19

    請問STM32F373的VREFINT是指什么?

    基準,1.2V和1.8。不清楚這個1.2V和Embedded reference voltage是不是個東西。因為文檔混亂,VREFINT究竟是個泛指內(nèi)部基準(類)還是特指Embedded reference voltage
    發(fā)表于 03-13 08:05