TCP介绍

Transmission Control Protocol (TCP)
定义在 RFC793
目的:在不可靠的网络上为host-to-host的通讯双方提供可靠安全的逻辑链路
包含下列几点:

  1. 基本数据传输
    连接是双向通信的;字节流;字节封装成包;TCP自己决定何时停止和发送数据,如果需要确保已经提交的数据及时发送,可以使用push功能
  2. 可靠性
    TCP必须可以恢复以下数据:受损的、丢失的、重复的、乱序的
    每个字节一个编号,接受者确认,如果确认超时未收到应该重发
    接收者根据编号来排序错序的报文和去除重复的报文
    受损的数据可以通过报文段的校验码来控制,丢弃受损的数据
    超时重发
  3. 流量控制
    流量控制,接收者控制发送者数据发送
    窗口机制,每一个ACK报文段返回一个窗口值,当前确认的字节以后最多能发送的字节数
  4. 多路复用
    多路复用,同一个机器上可以存在多个TCP连接
    端口+host=socket;两个socket确认一个连接
    常用服务特定的端口号;
  5. 链接
    可靠性以及滑动窗口机制都是建立在链接的基础上的
    连接:描述当前数据流的状态的一些信息的组合,sockets+序列号+窗口
    建立连接(初始化通信双方的状态信息),创建TCB(Transmission Control Block)建立连接三次握手
    关闭链接四次握手
  6. 优先级和安全性
    先不关注这部分

其他:

  1. 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP
  2. TCP使用校验和,确认和重传机制来保证可靠传输