在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

TCP協議原理詳解

CHANBAEK ? 來源:嵌入式攻城獅 ? 作者:安迪西 ? 2023-04-21 12:41 ? 次閱讀

1. TCP報文封裝

一個典型的使用TCP協議封裝的數據包,包括以太網MAC頭+網絡層IP數據頭+傳輸層TCP頭+要傳輸的數據。 詳見下圖所示:

圖片

2. TCP報文結構

TCP(Transmission Control Protocol,傳輸控制協議)提供的是面向連接,可靠的字節流服務。 即客戶和服務器交換數據前,必須現在雙方之間建立一個TCP連接,之后才能傳輸數據。 并且提供超時重發,丟棄重復數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。

TCP報文結構如下圖示:

圖片

TCP報文結構各字段功能如下示:

端口號:表示發送端端口號,字段長16bit

目標端口:表示接收端端口號,字段長16bit

序號:字段長32bit,是指發送數據的位置。 每發送一次數據,就累加一次該數據字節數的大小

確認序號:字段長32bit,是指下一次應該收到的數據的序列號。 實際上,它是指已收到確認應答號減一為止的數據。 發送端收到這個確認應答以后可以認為在這個序號以前的數據都已經被正常接收

首部長度:字段長4bit,它指出了 TCP 報文段首部長度,以字節為單位,最大能記錄15*4=60字節的首部長度

保留:字段長6bit,主要是為了以后擴展時使用。 一般設置為0

標志字段:字段長6bit,這些控制標志也叫做控制位

  • URG:表示本報文段中發送的數據是否包含緊急數據。 URG=1,表示有緊急數據。 后面的緊急指針字段只有當URG=1時才有效
  • ACK:表示是否前面的確認號字段是否有效。 ACK=1,表示有效。 只有當ACK=1時,前面的確認號字段才有效。 TCP規定,連接建立后,ACK必須為1
  • PSH:告訴對方收到該報文段后是否應該立即把數據推送給上層。 如果為1,則表示對方應當立即把數據提交給上層,而不是緩存起來
  • RST:只有當RST=1時才有用。 如果你收到一個RST=1的報文,說明你與主機的連接出現了嚴重錯誤(如主機崩潰),必須釋放連接,然后再重新建立連接。 或者說明你上次發送給主機的數據有問題,主機拒絕響應
  • SYN:在建立連接時使用,用來同步序號。當SYN=1,ACK=0時,表示這是一個請求建立連接的報文段;當SYN=1,ACK=1時,表示對方同意建立連接。SYN=1,說明這是一個請求建立連接或同意建立連接的報文。只有在前兩次握手中SYN才置為1
  • FIN:標記數據是否發送完畢。如果FIN=1,就相當于告訴對方:“我的數據已經發送完畢,你可以釋放連接了”

窗口大小:字段長16bit,TCP的流量控制由連接的每一端通過聲明的窗口大小來提供,窗口大小為字節數,起始于確認序號字段指明的值,這個值是接收端正期望接收的數據序號,發送方根據窗口大小調整發送數據,以實現流量控制。 窗口最大為 65535 字節,當接收方告訴發送方一個大小為 0 的窗口時,將完全阻止發送方的數據發送

校驗和:檢驗和覆蓋了整個的 TCP 報文段(TCP 首部和 TCP 數據區域),由發送端計算和填寫,并由接收端進行驗證

緊急字段:只有當URG標志置1時緊急指針才有效,緊急指針是一個正的偏移量,和序號字段中的值相加表示緊急數據最后一個字節的序號。 簡單來說,本TCP報文段的緊急數據在報文段數據區域中,從序號字段開始,偏移緊急指針的值結束

選項字段:選項字段用于提高TCP的傳輸性能。 其最大長度可根據TCP首部長度進行推算。 TCP首部長度用4位表示,那么選項部分最長為:(2^4-1)*4-20=40字節

圖片

  • kind=2,最大報文段長度(MSS)選項:MSS選項用于在建立連接時決定最大段長度的情況,該選項用于大部分操作系統。TCP連接初始化時,通信雙方使用該選項來協商最大報文段長度。TCP模塊通常將MSS設置為(MTU-40)字節(減掉的這40字節包括20字節的TCP頭部和20字節的IP頭部)。這樣攜帶TCP報文段的IP數據報的長度就不會超過MTU(假設TCP頭部和IP頭部都不包含選項字段,并且這也是一般情況),從而避免本機發生IP分片。對以太網而言,MSS值是1460(1500-40)字節
  • kind=3,窗口擴大因子選項:是一個用來改善TCP吞吐量的選項。 TCP連接初始化時,通信雙方使用該選項來協商接收窗口的擴大因子。 在TCP的頭部中,接收窗口大小是用16位表示的,故最大為65535字節,但實際上TCP模塊允許的接收窗口大小遠不止這個數(為了提高TCP通信的吞吐量)。 窗口擴大因子解決了這個問題。 假設TCP頭部中的接收通告窗口大小是N,窗口擴大因子(移位數)是M,那么TCP報文段的實際接收通告窗口大小是N*2M,或者說N左移M位

3. Wireshark抓包分析

將Socket API編程模型一文中的TCP Server工程源碼下載到開發板中,用網線將PC和開發板相連接,開啟一個TCP客戶端,打開wireshark軟件,監聽IP地址192.168.1.10

在TCP客戶端發送數據

圖片

wireshark抓取到相應的TCP數據包,客戶機向主機發送數據:ACK=1表示確認序號字段有效,PSH=1表示接收方應該盡快將這個報文段交給應用層

圖片

主機收到數據后立即返回相應數據給客戶機,ACK=1表示確認序號字段有效,PSH=1表示接收方應該盡快將這個報文段交給應用層

圖片

客戶機再次給出響應到主機,ACK=1表示確認序號字段有效,PSH=0表示沒有數據傳遞

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 封裝
    +關注

    關注

    127

    文章

    7963

    瀏覽量

    143174
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1374

    瀏覽量

    79159
  • 網絡層
    +關注

    關注

    0

    文章

    40

    瀏覽量

    10312
  • TCP協議
    +關注

    關注

    1

    文章

    91

    瀏覽量

    12100
  • Wireshark
    +關注

    關注

    0

    文章

    49

    瀏覽量

    6527
收藏 人收藏

    評論

    相關推薦

    TCPIP詳解卷三:TCP事務協議,HTTP,NNTP和UNIX域協議

    TCPIP詳解卷三:TCP事務協議,HTTP,NNTP和UNIX域協議
    發表于 09-28 12:45

    modbus協議講解modbus-rtu以及modbus-tcp協議詳解

    modbus協議講解modbus-rtu以及modbus-tcp協議詳解,見附件。
    發表于 03-01 10:14

    TCP-IP詳解_卷3_TCP事務協議,HTTP,NNTP

    TCP-IP詳解_卷3_TCP事務協議,HTTP,NNTP和UNIX域協議
    發表于 03-24 22:42 ?39次下載

    TCP-IP詳解_卷1_協議

    TCP-IP詳解_卷1_協議
    發表于 03-24 22:45 ?50次下載

    TCP/IP詳解,卷3:tcp事務協議等(pdf電子書)

    TCP/IP詳解,卷3:tcp事務協議等(pdf電子書):第三卷的內容細節覆蓋了當今TCP/IP編程人員和網絡管理員必須熟練掌握的四個基本方
    發表于 08-06 08:54 ?505次下載

    tcp ip協議詳解卷三 下載

    tcp ip協議詳解卷三:第三卷的內容細節覆蓋了當今TCP/IP編程人員和網絡管理員必須熟練掌握的四個基本方面:    T/
    發表于 05-19 11:52 ?437次下載
    <b class='flag-5'>tcp</b> ip<b class='flag-5'>協議</b><b class='flag-5'>詳解</b>卷三 下載

    tcp ip協議詳解卷二

    tcp ip協議詳解卷二:第13章IGMP:Internet組管理協議13.1 引言I G M P在本地網絡上的主機和路由器之間傳達組成員信息。路由器定時向“所有主機組”多播I G M
    發表于 05-19 12:00 ?542次下載

    tcp ip協議詳解卷一

    tcp ip協議詳解卷一:《TCP/IP詳解,卷1:協議》是一本完整而詳細的
    發表于 05-19 12:02 ?712次下載

    tcp ip協議_什么是tcp ip協議

    什么是tcp ip協議tcp ip協議詳解,深刻講述了tcp ip
    發表于 05-14 16:29 ?6058次閱讀
    <b class='flag-5'>tcp</b> ip<b class='flag-5'>協議</b>_什么是<b class='flag-5'>tcp</b> ip<b class='flag-5'>協議</b>

    TCP-IP詳解卷3:TCP事務協議,HTTP,NNTP和UNI

    TCP-IP詳解卷3:TCP事務協議,HTTP,NNTP和UNIX域協議,個人收集整理了很久的資料,大家根據自己情況,有選擇性的下載吧~
    發表于 10-27 14:04 ?0次下載

    TCP-IP詳解卷2_ARP:地址解析協議

    TCP-IP詳解卷2 ARP:地址解析協議,學習TCP很好的資料。歡迎下載。
    發表于 05-09 14:13 ?0次下載

    TCP:傳輸控制協議

    TCP-IP詳解卷2 TCP:傳輸控制協議,學習TCP很好的資料。歡迎下載。
    發表于 05-09 14:33 ?0次下載

    Siemens PLC TCP協議詳解

    Siemens PLC TCP 協議詳解 說明:藍色文字表示已經破解部分,[紅色文字] 表示對破解部分數字的說明,黑色文字表示對破解部分的進一步說明,黑色斜體加粗文字表示未破解部分,高亮文字部 分表示驅動需要處理的部分,未標
    發表于 04-17 11:46 ?3次下載
    Siemens PLC <b class='flag-5'>TCP</b><b class='flag-5'>協議</b><b class='flag-5'>詳解</b>

    CCLINK IE FIELD BASIC轉MODBUS-TCP網關MODBUS TCP協議詳解

    協議的不同,數據讀取困難,這是很多生產管理系統的難題。但是現在,遠創智控YC-CCLKIE-TCP通訊網關,讓這個問題變得非常簡單。這款通訊網關可以將各種MODBUS-TCP設備接入到CCLINK
    的頭像 發表于 07-11 12:15 ?1489次閱讀
    CCLINK IE FIELD BASIC轉MODBUS-<b class='flag-5'>TCP</b>網關MODBUS <b class='flag-5'>TCP</b><b class='flag-5'>協議</b><b class='flag-5'>詳解</b>

    LwIP協議棧源碼詳解TCP/IP協議的實現

    電子發燒友網站提供《LwIP協議棧源碼詳解TCP/IP協議的實現.pdf》資料免費下載
    發表于 07-03 11:22 ?3次下載
    主站蜘蛛池模板: 福利区在线观看| 欧美激情区| 日韩高清成人毛片不卡| 天天舔天天操| 桃花色综合影院| 手机看片免费福利| 精品在线一区二区三区| 国产亚洲3p无码一区二区| 国模大尺度人体一区| 大胆国模一区二区三区伊人| 欧美 日韩 中文字幕| 久久综合五月婷婷| 丁香啪啪天堂激情婷婷| 你懂的福利网站| 久久永久免费视频| 国模精品视频一区二区三区| a级黄色毛片三个搞一| 天天爽夜夜操| 国产伦精一区二区三区| avtt天堂网 手机资源| 国产成人乱码一区二区三区| 天堂网www在线观看| 欧美专区一区二区三区| 国产成人免费无庶挡视频| 天天视频国产免费入口| 国产片18在线观看| 日本aaaaa高清免费看| 亚洲色播永久网址大全| 种子天堂bt| 色视频网站在线| 国模私拍视频| 天天干天天插| 欧美亚洲综合另类型色妞| 99久久精品费精品国产一区二| 色婷婷六月| 国产精品视频一区二区三区| 天天干免费视频| ccav在线永久免费看| 亚洲五月综合网色九月色| 免费无遮挡很爽很污很黄| 亚洲最新视频|