美文网首页
可靠传输TCP

可靠传输TCP

作者: xxttw | 来源:发表于2023-06-18 10:44 被阅读0次

HTTP是基于TCP协议传输的, 所以在这我们先了解下TCP协议

TCP包头格式

我们先看看TCP报文头部的格式:


image.png

首先 源端口号和目标端口号是必不可少的, 没有没有这两个端口,数据就不知道应该发给哪个应用
序号: 是为了解决发送包的乱序问题
确认号: 是为了确认发出去的包对象是否有收到, 如果没有收到,就应该重新发送, 直到送到为止, 这就是为了解决丢包问题

接下来就是状态位. TCP是面向连接的, 因而双方需要维护连接的状态, 这些带状态的数据包发送, 会引起双方的连接状态变更
SYN 发起一个连接,
ACK回复,
RST重新连接,
FIN结束连接

窗口大小: TCP要做流量控制, 通信双方各生成一个窗口(缓存大小), 标识自己当前能够处理的数据的能力, 别发送的太快, 撑死我, 也别发送的太慢, 饿死了

拥塞控制: 对于真正的道路堵不堵车, 它无能为力, 唯一能做的就是控制自己, 也及控制发送的速度,

TCP传输数据之前,要先建立三次握手

在HTTP传输数据之前, 首先需要TCP连接, TCP连接建立, 通常称为三次握手
这个所谓的[连接] 只是双方计算机里维护一个状态, 在连接建立的过程中, 双方的状态变为时序图就想这样

image.png
  • 一开始, 客户端服务端都处于close状态, 服务端主动监听某个端口,变为LISTEN状态
  • 客户端发起来一个syn连接请求, 之后处于syn_send状态
  • 服务端收到客户端的连接请求会回复一个 syn + ack的确认请求给客户端, 然后状态变为,syn_rcvd
  • 客户端收到服务器的确认后,也会发一个ACK确认给服务端告诉他, 收到了你的ACK确认,然后状态变为ESTABLISHED,连接已建立 , 因为它一发一收成功
  • 服务端收到ACK后 也会变为ESTABLISHED连接已建立状态, 因为它也一发一收成功
    所以三次握手是保证双方都有发送和接收的能力

相关文章

  • TCP如何保证可靠传输

    TCP和UDP的区别之一:TCP是可靠传输,UDP是不可靠传输,那么可能一不小心就会被追问TCP是如何保证可靠传输...

  • NETWORK

    传输层 TCP协议 TCP协议的特点 TCP是在不可靠的IP层之上实现的可靠的数据传输协议,它主要解决传输的可靠、...

  • 八.网络协议学习笔记 传输层TCP-可靠传输

    TCP的几个要点 可靠传输 TCP-可靠传输-停止等待AQR协议 AQR(Automatic Repeat-reQ...

  • TCP和UDP详解

    本篇文章主要是从运输层协议概述、UDP、TCP、可靠传输的工作原理、TCP首部格式、TCP可靠传输的实现、TCP流...

  • TCP 三次握手 和 四次挥手

    概述 我们都知道 TCP 是 可靠的数据传输协议,UDP是不可靠传输,那么TCP它是怎么保证可靠传输的呢?那我们就...

  • 常问知识点-网络

    网络 TCP和UDP的区别 TCP面向有连接,提供可靠的传输;UDP面向无连接,不可靠传输 TCP面向字节流,UD...

  • 为什么 TCP 建立会话要三次握手?

    TCP 位于传输层,提供可靠的字节流服务。 所谓可靠的传输服务是指,能够把数据准确可靠的传给对方,并且 TCP 协...

  • TCP与UDP

    1)TCP TCP传输控制协议,是一种面向连接的,可靠的、基于字节流的传输层通信协议。 优点:可靠、稳定。TCP...

  • TCP可靠传输

    TCP提供了可靠传输,主要按照下面方法实现。 分块发送:应用程序被分割成TCP认为最适合发送的数据段。 定时确认重...

  • TCP 可靠传输

    这篇文章转载自http://blog.chinaunix.net/uid-26275986-id-4109679....

网友评论

      本文标题:可靠传输TCP

      本文链接:https://www.haomeiwen.com/subject/adhqcdtx.html