zoukankan      html  css  js  c++  java
  • 对TCP/IP协议的一些看法(9):TCP协议(1)

    今天介绍一下一个很重要的传输层协议——传输控制协议,又叫TCP。之所以重要,是因为它是唯一能保证通信可靠的协议。前面讲过,IP数据包不能保证数据传输的可靠性,需要上层的协议来确保,即TCP协议。

    TCP协议具有以下几个特点:

    1.确保IP数据包成功传递

    2.对程序发送的大块数据进行分段和重组

    3.确保正确排序和按顺序传递分段数据

    4.经过计算校验和进行数据的完整性检查

    5.根据数据是否接收成功发送确定信息

    因此,说TCP具有可靠性,主要从以下几个方面来说明:

    1.传输前要进行3次握手建立连接

    2.传输过程中通信双方要对传输的数据进行确认

    3.传输结束需要采用4次握手关闭链接

    今天再介绍下TCP报文的格式,由TCP首部和TCP数据组成,TCP首部的各个字段如下:

    1.端口号:源端口和目标端口各占16位,最大可到65536

    2.32位序列号:简称SEQ,用于对发送的数据包进行编号

    3.32位确认号:简称ACK,确认号对发送的数据报进行确认,其值为序列号加1

    4.4位首部长度

    5.URG:紧急指针,告诉接收TCP模块紧要指针域指着紧要数据

    6.ACK:置1表示确认号

    7.PSH:置1请求的数据段在接收方得到后直接送到应用程序,不用等到接收缓冲区满再传送

    8.RST:置1重建连接,通常是发生了错误。

    9.SYN:置1发起一个连接

    10.FN:置1释放连接

    11.16位窗口大小:TCP流量控制由每一端通过申明的窗口大小来提供,最大为65535字节

    12.16位校验和:校验和覆盖首部和数据段

    13.16位紧急指针:当URG置1才有效

    14.选项:包括MSS,时间戳等重要信息

  • 相关阅读:
    MySQL之pymysql模块
    MySQL 之 索引原理与慢查询优化
    MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
    MySql之数据操作
    MySQL之多表查询
    MySQL之单表查询
    MySQL之表的约束
    MySQL之表操作
    MySQL之表的数据类型
    pycharm 2016 注册(pycharm-professional-2016.3.2)
  • 原文地址:https://www.cnblogs.com/elninohjh/p/4238940.html
Copyright © 2011-2022 走看看