17.TCP:传输控制协议

介绍

TCP和UDP使用同一网络层(IP),但TCP提供了面向链接、可靠的传输层服务网络

TCP传输给IP层的信息单位称为报文段或段指针

TCP经过以下方式保证可靠性:code

  • 应用数据被分割成TCP认为最合适发送的数据块
  • TCP发送一个段后,会启动一个定时器等待目的端确认收到该段,不然重发
  • 当TCP接收端收到数据,会发送一个确认
  • TCP保持首部和数据校验和,接收端发现校验和有差错就丢弃报文段
  • TCP将对收到的数据重排序,保证顺序交给应用层
  • TCP接收端必须丢弃重复数据
  • TCP提供了流量控制,避免“快”主机压垮“慢”主机

TCP提供字节流传输服务,它交换的数据都是由字节(8位)构成blog

TCP不解释字节流内容,也就说它不知道传输的是二进制仍是字符,这个内容由应用层解释排序

TCP首部

image_1ciu72du5f0t1pb61j6a1g2loab9.png-52.4kB

image_1ciu73n43111o8bolff15il1rh9m.png-100.5kB

由图可知,TCP首部最少5*4=20字节ci

  • 端口:经过TCP首部的源、目的端口,和IP首部的源、目的IP,能够惟一肯定一个链接
  • 序号:下一字节数据的序号。每发送一字节数据,序号+1,到达2^31-1后置0
  • 确认序号:确认端指望接收下一字节的序号,值为上次成功接收数据序号+1
  • 首部长度:表明首部占了多少个32位,4位表明最多2^4=16个32位word,也就是64字节
  • 标志位:6个标志位
    • URG:紧急指针有效
    • ACK:确认序号有效
    • PSH:接收方应该尽快将这个报文段交给应用层
    • RST:重建链接
    • SYN:同步序号用来发起一个链接
    • FIN:发送端完成发送任务
  • 窗口大小:接收端指望接收的字节数,TCP基于该窗口大小进行流量控制
  • 校验和:覆盖TCP首部和TCP数据,发送端计算和存储,接收端验证
  • 紧急指针:表明一个正偏移,表示紧急数据的序号到哪结束。当URG=1该值才有意义,该偏移加上序号字段的值等于紧急数据最后一字节的序号
  • 选项:最多见选项为MSS,表明最长报文段大小
相关文章
相关标签/搜索