zoukankan      html  css  js  c++  java
  • TCP数据段格式

    传输控制协议(TCP)通常从应用程序中得到大段的信息数据,然后将它分割成若干个数据段。TCP会为这些数据段编号并排序,这样,在目的方的TCP协议栈才可以将这些数据段再重新组成原来应用数据的结构。由于TCP采用的是虚电路连接方式,这些数据段在被发送出去后,发送方的TCP会等待接收方TCP给出一个确认性应答,那些没有收到确认应答的数据段将被重新发送。

    当发送方主机开始沿分层模型向下发送数据段时,发送方的TCP协议会通知目的方的TCP协议去建立一个连接,也就是所谓的虚电路。这种通信方式被称为是面向连接
    的。在这个初始化的握手协商期间,双方的TCP层需要对接收方在返回确认应答之前,可以连续发送多少数量的信息达成一致。随着协商过程的深人,用于可靠传输的信道就被建立起来。

    TCP是一个全双工的、面向连接的、可靠的并且是精确控制的协议,但是要建立所有这些条件和环境并附加差错控制,并不是一件简单的事情。所以,毫无疑问,TCP是复杂的,并在网络开销方面是昂贵的。然而,由于如今的网络传输同以往的网络相比,已经可以提供更高的可靠性,因此,TCP所附加的可靠性就显得不那么必要了。

    TCP报头一共24字节:

    源端口号(16bit) 目的端口号(16bit)
    序列号(32bit)
    确认应答号(32bit)
    头长度(4) 保留(6) 代码位(6) 窗口(16)
    校验和(16) 紧急(16)
    选项(0或32,若有的话)

    数据(可变)

    目的端口号 在目的主机上请求应用程序的端口号。
    序列号 一个由TCP用于将数据编排回原来正确s的顺序或用于对丢失或损坏的数据进行重传的编号,这样的处理过程称为顺序控制(排序)。
    确认应答号 用于说明下一个所期望接收的TCP八位组数据。
    头长度 在TCP头中包含的32位字的数量。用来指明数据的起始位置。TCP头的长度(即使包含有选项)是一个32位的整数倍。
    保留 总是被设置为零。
    代码位 用于建立及结束会话的控制功能。
    窗口 是发送方将被允许的发送窗口尺寸,用八进制形式表示。
    校验和 循环冗余校验(CRC),山于TCP不相信它的低层,因此会检验所有的数据。此CRC用于检验报头和数据字段。
    紧急 当紧急指针代码位被设置时为有效字段,如果有效,这个值指明了当前序列号的八位组的偏移值,即第一个非紧急数据的起始位置。
    选项 在需要时,可以是0或32位的倍数。也就是说,没有选项存在时,选项的大小为0。然而,如果所使用的选项所占用的字段不是32位的整倍数,则需要填充若干个0来确保数据始于32位的边界上。
    数据 指被传送到传输层的TCP协议的数据,它包含有上层数据的报头。

  • 相关阅读:
    时间格式
    分页1
    vs2010 VS2008 VS2005 快捷键大全
    css 常用标签
    JS Array数组操作
    CSS属性
    jquery 选择器大全
    @fontface
    以前写过的ajax基础案例(王欢huanhuan)
    Jquery操作下拉框(DropDownList)的取值赋值实现代码(王欢)
  • 原文地址:https://www.cnblogs.com/CodeBlove/p/2419189.html
Copyright © 2011-2022 走看看