zoukankan      html  css  js  c++  java
  • TCP包格式 暨 TCP首部各字段含义

    如果不计任选字段,TCP首部通常是20字节,封装在IP数据报中。

    image

    image

    32位序号

    序号用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则TCP用序号对每个字节进行计数。序号是32bit的无符号数,序号到达2^32-1后又从0开始。

    32位确认序号

    确认序号包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加1。只有ACK标志(下面介绍)为1时确认序号字段才有效。

    4位首部长度

    首部长度给出首部中32bit字的数目。需要这个值是因为任选字段的长度是可变的。

    例如首部长度4位比特是0011,则表示该TCP首部长度为3*8=24字节。

    6个标志比特

    URG紧急指针(urgentpointer)有效

    ACK确认序号有效。

    PSH接收方应该尽快将这个报文段交给应用层。

    RST重建连接。

    SYN同步序号用来发起一个连接。这个标志和下一个标志将在第18章介绍。

    FIN发端完成发送任务。

    16位窗口大小

    TCP的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节。窗口大小是一个16bit字段,因而窗口大小最大为65535字节。在24.4节我们将看到新的窗口刻度选项,它允许这个值按比例变化以提供更大的窗口。

    16位检验和

    接收端根据此检验和再计算判断该TCP包是否正确(传输过程中是否出错)。

    16位紧急指针

    image

     
    0000   00 00 03 04 00 06 00 00 00 00 00 00 00 00 08 00
    0010   45 00 00 3a 3f 0b 40 00 40 06 6e 5b c0 a8 4d ae
    0020   7f 00 00 01 27 0f 22 b8 89 21 72 b2 88 60 63 e4
    0030   80 18 02 01 8d 84 00 00 01 01 08 0a 00 55 56 22
    0040   00 55 4d b8 68 65 6c 6c 6f 0a  
    
    00 00 03 04 00 06 00 00 00 00 00 00 00 00 08 00			【MAC帧头】
    45 00 00 3a 3f 0b 40 00 40 06 6e 5b c0 a8 4d ae 7f 00 00 01 	【IP首部,20字节】
    27 0f 							        【源端口,9999】
    22 b8 								【目的端口,8888】
    89 21 72 b2 							【序号】
    88 60 63 e4 							【确认号】
    80 								【TCP首部长度,8*4=32字节】 
    18 								【01 1000,ACK和PUSH位置1】
    02 01								【窗口长度】
    8d 84								【检验和】
    00 00								【紧急指针】
    01 								【NOP】
    01								【NOP】
    08 0a 00 55 56 22 00 55 4d b8 				        【Timestamps】
    68 65 6c 6c 6f 0a						【DATA,68即h,hello\n】
    
    
  • 相关阅读:
    [LeetCode] 687. Longest Univalue Path
    [Daily Coding Problem] 1 (LeetCode 1). Find if two numbers in an array add up to k
    [Daily Coding Problem] 18 (LeetCode 239). Sliding Window Maximum
    [Daily Coding Problem 24] Implement locking in a binary tree.
    [LeetCode] 208(LintCode). Implement Trie(Prefix Tree)
    [Daily Coding Problem] 16. Last N order ids implementation
    队伍总结 2017年5月14日
    ECNU 3260 袋鼠妈妈找孩子(dfs)
    ECNU 3263 丽娃河的狼人传说 (贪心)
    UVA 213 信息解码(二进制&位运算)
  • 原文地址:https://www.cnblogs.com/helloweworld/p/2760996.html
Copyright © 2011-2022 走看看