TCP简介

一、TCP提供的服务

TCP提供面向连接可靠字节流服务。

  1. 面向连接
    使用两个TCP的应用在彼此交换数据之前必须建立一个TCP连接
    仅有双方可以彼此通信,广播和多播不能用于TCP。
  2. 可靠
    利用下面技术保证可靠性
    • 应用数据被分隔为TCP认为最适合发送的数据块
    • 定时及重传机制
    • 收到以后发送确认
    • 首部保持端到端的校验和
    • TCP会处理IP层的乱序
    • TCP会丢弃IP层的重复包
    • TCP提供了流量控制
  3. 字节流
    两个应用程序通过TCP连接交换8 bit字节构成的字节流。TCP不在字节流中插入记录标识符。我们称之为字节流服务(byte stream service)。
    TCP不对字节流作任何解释。TCP不知道传输的数据字节流是二进制数据、ASCII字符、EBCDIC字符还是其他类型数据。

二、TCP首部

如果不计选项字段,通常是20字节。

  1. 源端和目的端端口号
    用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP和目的端IP地址唯一确定一个TCP连接。
    一个IP地址和一个端口号称为一个socket。socket pair可以唯一确定互联网络中的每个TCP连接的双方。
  2. 序号
    用来标识从TCP发端向TCP收端发送的数据字节流,表示在这个报文段中的第一个数据字节。
  3. SYN
    新建立一个连接时,SYN标志变为1。
  4. 确认序号
    发送确认的一端所期望收到的下一个序号,即上次已成功收到的数据字节序号加1
  5. ACK
    只有ACK标志位1时,确认序号才有效。
    由于ACK字段总是TCP首部的一部分,因此发送ACK无需任何代价,一旦一个连接建立起来,这个标志总是被设置。
  6. PSH
    接收方应该尽快把这个报文交给应用层
  7. RST
    重置连接
  8. FIN
    发端完成发送任务
  9. 首部长度
    首部中32 bit字的数目。
  10. 窗口大小
    用于TCP流量控制
  11. 校验和
    覆盖了整个TCP报文段:TCP首部和TCO数据

posted on 2017-03-18 20:33  花老🐯  阅读(275)  评论(0编辑  收藏  举报

导航