国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【計(jì)算機(jī)網(wǎng)絡(luò)】TCP中payload的解析,在python中的體現(xiàn)?字節(jié)、字符?為啥字節(jié)用十六進(jìn)制表示?

這篇具有很好參考價(jià)值的文章主要介紹了【計(jì)算機(jī)網(wǎng)絡(luò)】TCP中payload的解析,在python中的體現(xiàn)?字節(jié)、字符?為啥字節(jié)用十六進(jìn)制表示?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

編碼

問題來源

最近要根據(jù)一份國家標(biāo)準(zhǔn)協(xié)議進(jìn)行解碼,但是對(duì)于進(jìn)制,字節(jié),字符,編碼,轉(zhuǎn)碼有比較多的問題。其中我想實(shí)現(xiàn)的主要需求如下:

  1. 有客戶端與服務(wù)端,進(jìn)行tcp通信,客戶端要發(fā)送一個(gè)請(qǐng)求,tcp中payload請(qǐng)求大概是這樣,有很多個(gè)十六進(jìn)制表示的字節(jié)組成

image.png

  1. 根據(jù)協(xié)議的規(guī)定,從中間取出某幾個(gè)字節(jié)進(jìn)行編碼 ,比如第五個(gè)位置-第六個(gè)位置,2個(gè)字節(jié)的代表 學(xué)生人數(shù),某幾個(gè)字節(jié)代表學(xué)生姓名。協(xié)議指出采用ASCII碼編碼,與漢字采用GBK編碼

字符與字節(jié)

  • 字符:數(shù)字,符號(hào),字母
  • 字節(jié):8byte位構(gòu)成一個(gè)字節(jié),單個(gè)字節(jié)可以由兩個(gè)十六進(jìn)制數(shù)或者8個(gè)二進(jìn)制進(jìn)行標(biāo)識(shí)。

一個(gè)字節(jié)在十進(jìn)制表示中是0-255,即0000 0000到1111 1111,十六進(jìn)制字符可以表示4個(gè)二進(jìn)制位,所以兩個(gè)十六進(jìn)制字符可以表示8個(gè)二進(jìn)制位

  • 在計(jì)算機(jī)中每一個(gè)字符都對(duì)應(yīng)著唯一的數(shù)字編碼,也被稱為字符編碼或者字符集

舉個(gè)例子

如果有客戶端跟服務(wù)端,那么中間傳輸?shù)淖止?jié),可以有不同的編碼方式,比如說字母跟數(shù)字可以采用最常見的ASCII編碼方式,但是如果有中文時(shí),我們還可以對(duì)這個(gè)中文字符采用GBK編碼,只不過在解碼的時(shí)候再通過這種方式解決。

常見的編碼方式

  • ASCII:最常見的編碼方式
  • UTF-8:變長字節(jié)存儲(chǔ)unicode字符,用于保存文本數(shù)據(jù)的編碼
  • UTF-16:使用兩個(gè)字節(jié)表示unicode
  • GBK編碼:國家標(biāo)準(zhǔn)編碼,支持簡體中文和繁體中文。
  • ISO-8859編碼:使用單字節(jié)表示字符,支持多種語言,包括英語、西班牙語、德語等

在python中進(jìn)行解碼的方式

struct是用來解決bytes和其他二進(jìn)制數(shù)據(jù)類型的轉(zhuǎn)換的模塊,它使得流的操作變得非常簡單,完美解決了Python沒有字節(jié)數(shù)據(jù)類型的尷尬。
注意我們這里說的字節(jié)串可以是這樣的

#其中\(zhòng)x代表的就是
str=b'\x00\x12'

struct.pack

作用:Python數(shù)據(jù)類型 ——> “字節(jié)串”
格式:struct.pack(format, v1, v2, …)

struct.unpack

作用:“字節(jié)串” ——> Python數(shù)據(jù)類型
格式:struct.unpack(format, buffer)

format:格式

  1. 對(duì)齊方式

image.png

  1. 格式字符

image.png

payload=b'\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12'
# 大端,按照協(xié)議規(guī)定的字節(jié)數(shù),進(jìn)行解碼。這部分的四個(gè)字節(jié)進(jìn)行解碼
msg_length = struct.unpack('>i',payload[1:5])[0]
# 大端,按照協(xié)議規(guī)定的字節(jié)數(shù),進(jìn)行解碼。這部分的2個(gè)字節(jié)進(jìn)行解碼
msg_id = struct.unpack('>H', payload[9:11])[0]

大端與小端

為什么會(huì)出現(xiàn)大小端?

因?yàn)橛?jì)算機(jī)內(nèi)部存儲(chǔ)數(shù)據(jù)的方式不同

什么是大小端

大端: 首先明確一點(diǎn)就是他與我們的閱讀習(xí)慣是一致的,在書本上,我們是從左往右來看數(shù)字的,這個(gè)不牽扯到存儲(chǔ)。
例如 0x0102 十六進(jìn)制進(jìn)制數(shù),其實(shí)這就是大端存儲(chǔ)。將01這個(gè)數(shù)據(jù)的高字節(jié)存儲(chǔ)到內(nèi)存的底地址中
小端:
例如 0x0201 十六進(jìn)制進(jìn)制數(shù),其實(shí)這就是小端存儲(chǔ)。將01這個(gè)數(shù)據(jù)的高字節(jié)存儲(chǔ)到底地址中

引用 :https://blog.csdn.net/Robin_Pi/article/details/112233764文章來源地址http://www.zghlxwxcb.cn/news/detail-501118.html

到了這里,關(guān)于【計(jì)算機(jī)網(wǎng)絡(luò)】TCP中payload的解析,在python中的體現(xiàn)?字節(jié)、字符?為啥字節(jié)用十六進(jìn)制表示?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【計(jì)算機(jī)網(wǎng)絡(luò)】TCP協(xié)議

    【計(jì)算機(jī)網(wǎng)絡(luò)】TCP協(xié)議

    實(shí)驗(yàn)?zāi)康?應(yīng)用所學(xué)知識(shí): 1. 熟悉 TCP 的協(xié)議格式。 2. 理解 TCP 對(duì)序列號(hào)和確認(rèn)號(hào)的使用。 3. 理解 TCP 的流量控制算法和擁塞控制算法。 實(shí)驗(yàn)步驟與結(jié)果 1.任務(wù)一: 將Alice.txt上傳到服務(wù)器: 使用wireshark捕獲數(shù)據(jù)包,看到計(jì)算機(jī)和gaia.cs.umass.edu之間的一系列 TCP 和 HTTP 通信,包

    2023年04月20日
    瀏覽(22)
  • 計(jì)算機(jī)網(wǎng)絡(luò)-TCP協(xié)議

    計(jì)算機(jī)網(wǎng)絡(luò)-TCP協(xié)議

    TCP被稱為面向連接的,因?yàn)樵趹?yīng)用程序開始互傳數(shù)據(jù)之前,TCP會(huì)先建立一個(gè)連接,該連接的建立涉及到 三次“握手 ”。 TCP的連接不是一條真實(shí)存在的電路,而是一條邏輯鏈接 ,其共同狀態(tài)僅保留在兩個(gè)通信端系統(tǒng)的TCP程序中。 TCP連接也是點(diǎn)對(duì)點(diǎn)的,即TCP連接只能存在于一

    2024年02月08日
    瀏覽(37)
  • 【計(jì)算機(jī)網(wǎng)絡(luò)】簡易TCP網(wǎng)絡(luò)小程序

    【計(jì)算機(jī)網(wǎng)絡(luò)】簡易TCP網(wǎng)絡(luò)小程序

    1.1.1 服務(wù)端創(chuàng)建套接字 我們將TCP服務(wù)器封裝成一個(gè)類,當(dāng)我們定義出一個(gè)服務(wù)器對(duì)象后需要馬上對(duì)服務(wù)器進(jìn)行初始化,而初始化TCP服務(wù)器要做的第一件事就是創(chuàng)建套接字。 TCP服務(wù)器在調(diào)用socket函數(shù)創(chuàng)建套接字時(shí),參數(shù)設(shè)置如下: 協(xié)議家族選擇 AF_INET ,因?yàn)槲覀円M(jìn)行的是網(wǎng)

    2024年02月16日
    瀏覽(24)
  • 05.計(jì)算機(jī)網(wǎng)絡(luò)——TCP協(xié)議

    05.計(jì)算機(jī)網(wǎng)絡(luò)——TCP協(xié)議

    TCP協(xié)議——TCP全稱為 “ 傳輸控制協(xié)議 (Transmission Control Protocol)”,對(duì)數(shù)據(jù)的傳輸進(jìn)行一個(gè)詳細(xì)的控制。 源/目的端口號(hào): 表示數(shù)據(jù)是從哪個(gè)進(jìn)程來, 到哪個(gè)進(jìn)程去; 32位序號(hào)/32位確認(rèn)號(hào): 用來支持確認(rèn)應(yīng)答和按序到達(dá) 4位TCP報(bào)頭長度: 表示該TCP報(bào)頭有多少個(gè)4字節(jié)大小; 6位標(biāo)志位

    2024年02月16日
    瀏覽(21)
  • 【計(jì)算機(jī)網(wǎng)絡(luò)篇】TCP協(xié)議

    【計(jì)算機(jī)網(wǎng)絡(luò)篇】TCP協(xié)議

    ?作者簡介:大家好,我是小楊 ??個(gè)人主頁:「小楊」的csdn博客 ??希望大家多多支持??一起進(jìn)步呀! TCP(Transmission Control Protocol)是一種在計(jì)算機(jī)網(wǎng)絡(luò)中廣泛使用的傳輸層協(xié)議,用于在網(wǎng)絡(luò)上可靠地傳輸數(shù)據(jù)。 TCP 提供了可靠的、面向連接的通信,并負(fù)責(zé)數(shù)據(jù)的劃分、排

    2024年02月11日
    瀏覽(23)
  • 【計(jì)算機(jī)網(wǎng)絡(luò)】TCP協(xié)議詳解

    【計(jì)算機(jī)網(wǎng)絡(luò)】TCP協(xié)議詳解

    目錄 1. TCP協(xié)議頭部格式 2. TCP協(xié)議原理? 2.1 可靠傳輸機(jī)制 2.1.1 確認(rèn)應(yīng)答機(jī)制 2.1.2 超時(shí)重傳機(jī)制 2.1.3 連接管理機(jī)制(三次握手,四次揮手) 2.1.4 流量控制 2.1.5 擁塞控制? 2.2 效率機(jī)制? 2.2.1 滑動(dòng)窗口? 2.2.2 延遲應(yīng)答? 2.2.3 捎帶應(yīng)答? 3. 粘包問題? 4. TCP的異常情況? 5. TCP協(xié)議特

    2024年01月18日
    瀏覽(20)
  • 計(jì)算機(jī)網(wǎng)絡(luò)——TCP/IP網(wǎng)絡(luò)層次模型

    計(jì)算機(jī)網(wǎng)絡(luò)——TCP/IP網(wǎng)絡(luò)層次模型

    我們上一次了解了OSI的網(wǎng)絡(luò)層次模型,如果還沒有看過上一次OSI網(wǎng)絡(luò)模型的可以點(diǎn)擊這里: https://blog.csdn.net/qq_67693066/article/details/136597950 我們今天來看實(shí)際在生活中使用更廣的 TCP/IP網(wǎng)絡(luò)模型 : TCP/IP網(wǎng)絡(luò)模型的起源可以追溯到20世紀(jì)60年代末和70年代初,當(dāng)時(shí)美國國防部的高級(jí)

    2024年03月17日
    瀏覽(42)
  • 計(jì)算機(jī)網(wǎng)絡(luò)(3) --- 網(wǎng)絡(luò)套接字TCP

    計(jì)算機(jī)網(wǎng)絡(luò)(3) --- 網(wǎng)絡(luò)套接字TCP

    計(jì)算機(jī)網(wǎng)絡(luò)(2) --- 網(wǎng)絡(luò)套接字UDP_哈里沃克的博客-CSDN博客 https://blog.csdn.net/m0_63488627/article/details/131977544?spm=1001.2014.3001.5501 目錄 1.TCP 1.服務(wù)端接口介紹 1.listen狀態(tài) 2.accept獲取鏈接 2.客戶端接口介紹 2.TCP的服務(wù)器和客戶端接口實(shí)現(xiàn) 1.服務(wù)端 1.成員函數(shù) 2.接口 start()實(shí)現(xiàn)方式 1.單

    2024年02月14日
    瀏覽(37)
  • 【計(jì)算機(jī)網(wǎng)絡(luò)】TCP|IP協(xié)議

    【計(jì)算機(jī)網(wǎng)絡(luò)】TCP|IP協(xié)議

    目錄 前言 什么是TCP/IP協(xié)議? TCP/IP協(xié)議的層次結(jié)構(gòu) TCP/IP協(xié)議的工作原理 TCP/IP協(xié)議的重要性 結(jié)語 ? TCP/IP協(xié)議是當(dāng)今互聯(lián)網(wǎng)世界中最重要的網(wǎng)絡(luò)協(xié)議之一,它是網(wǎng)絡(luò)通信的基石,為數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸提供了可靠性和有效性。本文將深入探討TCP/IP協(xié)議的重要性、基本原理以及其

    2024年02月03日
    瀏覽(26)
  • 【計(jì)算機(jī)網(wǎng)絡(luò)-傳輸層】TCP 協(xié)議

    【計(jì)算機(jī)網(wǎng)絡(luò)-傳輸層】TCP 協(xié)議

    端到端通信 :提供應(yīng)用進(jìn)程間的端到端通信(邏輯通信)。因此傳輸層又稱為端到端協(xié)議。 差錯(cuò)檢測 :對(duì)首部和數(shù)據(jù)部分進(jìn)行檢測。 兩種協(xié)議 :面向連接的 TCP、無連接的 UDP。 復(fù)用和分用 : 概念 解釋 傳輸層 TCP 復(fù)用 發(fā)送方的部分應(yīng)用進(jìn)程的報(bào)文在傳輸層使用 TCP 協(xié)議進(jìn)

    2023年04月13日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包