谁来讲解下TCP数据包的具体内容?

具体如图,请解释下数据包每个块的功能作用,举个例子,比如说“数据选项”的设置等。要求能够让我这个菜鸟弄清楚整个TCP数据包的构造,以便于编程应用。满意追加分数最多100分... 具体如图,请解释下数据包每个块的功能作用,举个例子,比如说“数据选项”的设置等。
要求能够让我这个菜鸟弄清楚整个TCP数据包的构造,以便于编程应用。满意追加分数最多100分!
展开
 我来答
huanglenzhi
2015-10-24 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517192
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部

  TCP数据包结构:

  1-1.源始端口16位,范围当然是0-65535。

  1-2.目的端口,同上。

  2-1.数据序号32位,TCP为发送的每个字节都编一个号码,这里存储当前数据包数据第一个字节的序号。

  3-1.确认序号32位,为了安全,TCP告诉接受者希望他下次接到数据包的第一个字节的序号。

  4-1.偏移4位,类似IP,表明数据距包头有多少个32位。

  4-2.保留6位,未使用,应置零。

  4-3.紧急比特URG—当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。

  4-3.确认比特ACK—只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。参考TCP三次握手。

  4-4.复位比特RST(Reset) —当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新 建立运输连接。参考TCP三次握手。

  4-5.同步比特SYN—同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。参考TCP三次握手。

  4-6.终止比特FIN(FINal)—用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。

  4-7.窗口字段16位,窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口 大小,然后通知对方以确定对方的发送窗口的上限。

  5-1.包校验和16位,包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。

  5-2.紧急指针16位,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。

  6-1.可选选项24位,类似IP,是可选选项。

  6-2.填充8位,使选项凑足32位。

  7-1.用户数据。

Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
htdd2011
2011-04-06 · TA获得超过164个赞
知道答主
回答量:58
采纳率:0%
帮助的人:0
展开全部
每个TCP包都包含16位源端口号和16位目的端口号,用来寻找发端和收端;
序号用来标识从T C P发端向T C P收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则T C P用序号对每个字节进行计数。序号是32 bit的无符号数,序号到达23 2-1后又从0开始。
当建立一个新的连接时, S Y N标志变1。序号字段包含由这个主机选择的该连接的初始序
号I S N(Initial Sequence Number)。该主机要发送数据的第一个字节序号为这个I S N加1,因为S Y N标志消耗了一个序号,既然每个传输的字节都被计数,确认序号包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加1。只有A C K标志为1时确认序号字段才有效。发送A C K无需任何代价,因为32 bit的确认序号字段和A C K标志一样,总是T C P首部的一部分。因此,我们看到一旦一个连接建立起来,这个字段总是被设置, A C K标志也总是被设置为1。
U R G 紧急指针( u rgent pointer)有效
A C K 确认序号有效。
P S H 接收方应该尽快将这个报文段交给应用层。
R S T 重建连接。
S Y N 同步序号用来发起一个连接。
F I N 发端完成发送任务。
检验和覆盖了整个的T C P报文段: T C P首部和T C P数据。这是一个强制性的字段,一定是
由发端计算和存储,并由收端进行验证。T C P检验和的计算和U D P检验和的计算相似,只有当U R G标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。T C P的紧急方式是发送端向另一端发送紧急数据的一种方式。
最常见的可选字段是最长报文大小,又称为MSS (Maximum Segment Size)。每个连接方
通常都在通信的第一个报文段(为建立连接而设置S Y N标志的那个段)中指明这个选项。它
指明本端所能接收的最大长度的报文段。T C P报文段中的数据部分是可选的。在一个连
接建立和一个连接终止时,双方交换的报文段仅有T C P首部。如果一方没有数据要发送,也
使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中,也会发送不带任何
数据的报文段。
更多追问追答
追问
请问这是您本人的理解吗?是否可以说更多一些关于TCP数据包的知识?(5分,80分)
追答
TCP包主要都是以下构成的,源端口号,目的端口号就不要说了吧。
序列号:一个由TCP用于将数据编排回原来止确的顺序或用于对丢失或损坏的数据
进行重传的编号,这样的处理过程称为顺序控制(排序)。
确认应答号: 用于说明下一个所期望接收的TCP八位组数据。
头长度 :在TCP头中包含的32位字的数量。用来指明数据的起始位置。TCP头的
长度(即使包含有选项)是一个32位的整数倍。
保留 :总是被设置为零。
代码位: 用于建立及结束会话的控制功能。
窗口 :是发送方将被允许的发送窗口尺寸,用八进制形式表示。(这个用来进行流量控制的~)
校验和 :循环冗余校验(CRC),山于TCP不相信它的低层,因此会检验所有的数据。
此CRC用于检验报头和数据字段。
紧急 :当紧急指针代码位被设置时为有效字段,如果有效,这个值指明了当前序列号的
八位组的偏移值,即第一个非紧急数据的起始位置。
选项 :在需要时,可以是0或32位的倍数。也就是说,没有选项存在时,选项的大小为
0。然而,如果所使用的选项所占用的字段不是32位的整倍数,则需要填充若干个0来确保
数据始于32位的边界上。
数据: 指被传送到传输层的TCP协议的数据,它包含有上层数据的报头。

不知道你具体想要了解些什么,这些你还满意不?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式