TCP协议

  |  

tcp

  • 传输控制协议(transimision control protocal)
  • 可靠的,面向连接的协议
  • 传输效率低

传输特点

  • 将数据进行分段打包传输
  • 对每个数据报编号进行控制
  • 运输中丢失,重发和丢弃处理
  • 流量控制避免阻塞

tcp数据报文格式

TCP

信息描述

(1)首部长度

(2)控制位 - TCP的连接、传输和断开都受这六个控制位的指挥

PSH(push急迫) 缓存区将满,立刻传输速度

RST(reset重置位) 连接断开了,重新连接

URG(urgent紧急位) 紧急信号

SYN(syncchronous建立联机) 同步序号位, TCP建立连接时要将这个值设为1

ACK(acknowledement 确认) 为 1 时表示确认号

FIN(finish 关闭连接)

(3) 紧急指针 只在 URG控制位为1时有效。表示紧急数据的末尾在TCP数据部分中的位置。 通常在暂时中断通信时使用

(4) 窗口值(tcp传输中进行流量控制)

窗口值 - 说明本地可接受数据段的数目,这个值的大小是可变的。当网络通畅时将这个窗口值变大,加快传输速度,当网络不稳定时减少这个值可以抱枕网络数据的可靠传输。

窗口大小: 表示从应答开始能够接受多少个8位字节。 如果窗口大小为0, 可以发送窗口探测。通过ACK告诉客户端窗口大小

握手和断开

(1) tcp是面向连接的协议, 它在源点和终点之间建立虚拟连接,而不是物理lianjie

(2) 在数据通信之前,发送端与接受端要先建立连接,等数据发送结束后,双方再断开连接

(3) TCP连接的每一方都是由一个IP地址和一个端口组成

三次握手与四次挥手

C: client, S: server
三次握手
tcp
C发送SYN(建立联机), seq = x 客户端的序列号
S接受C的请求,返回 SYN, ACK(确认信息) seq = y (服务端的序列号)
C收到S的确认信息,连接完成

(序列号,用于确认包的顺序,因为是包是并发发送的)

数据传输
tcp

四次挥手
tcp

为什么是四次挥手?
因为对方不一定同意分手, 所有要等对方的确认信息

tcp 阻塞控制

  • tcp在初始化或者超时后使用一种慢启动机制来增加拥塞窗口的大小,指数式增长。
  • 在流量控制中, 接收方通过TCP的窗口值来告知发送方,由发送方通过对拥塞窗口和接受窗口的大小做比较, 来确认任何时刻内需要传输的数据量
  • 慢启动后,采用和式增加,积式减少(additive/multiplicative, AIMD,这里简称”线增积减”)是一种反馈控制算法,
  • 未确认的数据包刚好等于带宽等于延迟
  • 当发现丢包的时候立刻减半

网络模型

udp

  • 用户数据报协议(user datagram protocal)
  • 不可靠的、无连接的服务
  • 传输效率高

应用

  • QQ
  • 视频
  • TFTP简单文件传输协议(短信)

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. tcp
    1. 1.1. 传输特点
    2. 1.2. tcp数据报文格式
  2. 2. 握手和断开
    1. 2.1. 三次握手与四次挥手
    2. 2.2. tcp 阻塞控制
    3. 2.3. udp
,