TCP协议

作者: Allan要做活神仙 | 来源:发表于2019-02-21 11:42 被阅读2次

前言

说到TCP协议,我会想到的是当浏览器输入url时客户端与服务端建立链接的3次握手/4次挥手。那么,TCP到底是个啥?

什么是TCP

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

image.png

TCP 是以太网协议和 IP 协议的上层协议

以太网协议:用于局域网(点对点)通信
IP协议:局域网之间的通信

ps:路由器就是基于IP协议,局域网之间依靠路由器连接

TCP 协议的作用

保证数据通信的完整性和可靠性,防止丢包

慢启动和 ACK

慢启动
服务器发送数据包,当然越快越好,最好一次性全发出去。但是,发得太快,就有可能丢包。带宽小、路由器过热、缓存溢出等许多因素都会导致丢包。线路不好的话,发得越快,丢得越多。
那么如何知道对方线路理想速率是多少呢?答案是:慢慢试!!!
TCP协议为了让效率与可靠起飞🛫️,设计了慢启动机制(slow start)。开始的时候发送较慢,然后根据丢包情况调整加速或减速发送。。

TCP所有确认都是基于序号而不是报文段。

以字节为单位虚拟传输(不是物理传输,这不废话嘛~)。

慢启动,快重传,快恢复

ACK

”确认”的英语是 acknowledgement,所以这个确认消息就简称 ACK。

ACK 携带两个信息

期待要收到下一个数据包的编号
接收方的接收窗口的剩余容量

发送方有了这两个信息,再加上自己已经发出的数据包的最新编号,就会推测出接收方大概的接收速度,从而降低或增加发送速率。这被称为”发送窗口”,这个窗口的大小是可变的。

每个 ACK 都带有下一个数据包的编号,以及接收窗口的剩余容量。双方都会发送 ACK

TCP 的运输连接管理

运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。 连接建立过程中要解决以下三个问题:

  • 要使每一方能够确知对方的存在。
  • 要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。
  • 能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。

用三次握手建立 TCP 连接


image.png

1、A 的 TCP 向 B 发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = x,表明传送数据时的第一个数据字节的序号是 x。
2、B 的 TCP 收到连接请求报文段后,如同意,则发回确认。
B 在确认报文段中应使 SYN = 1,使 ACK = 1, 其确认号ack = x + 1,自己选择的序号 seq = y。
3、A 收到此报文段后向 B 给出确认,其 ACK = 1,确认号 ack = y + 1。 A 的 TCP 通知上层应用进程,连接已经建立。
4、B 的 TCP 收到主机 A 的确认后,也通知其上层应用进程:TCP 连接已经建立。

ack的值是上一个的seq(序列号)+1!!!!

相关文章

  • 15分钟TCP

    TCP协议详解 介绍TCP协议之前,先区分一下TCP协议,和TCP/IP体系结构。TCP协议是TCP/IP协议体系...

  • 计算机网络02 - 传输层

    目录 TCP协议和UDP协议TCP首部TCP连接管理UDP首部 1. TCP协议和UDP协议 TCP协议:面向连接...

  • TCP协议三次握手和四次挥手

    TCP协议 TCP/IP协议栈 由上图可知,TCP/IP协议栈包含很多的协议。 二. 什么是TCP TCP是TCP...

  • TCP/IP协议

    一、关于TCP/IP TCP/IP协议是一个协议集合,HTTP协议,IP协议,TCP协议,DNS协议等都属于TCP...

  • TCP协议

    TCP/IP协议分层详解TCP/IP协议详解通俗易懂网络协议(TCP/IP概述)什么是TCP/IP协议?

  • TCP

    TCP协议 TCP协议,传输控制协议(Transmission Control Protocol,缩写为TCP)是...

  • TCP和UDP的区别

    TCP和UDP的区别: TCP协议和UDP协议特性区别总结: TCP协议可靠;UDP协议不可靠 TCP协议是面向连...

  • 详解TCP与UDP协议

    TCP/IP协议 首先弄清楚,TCP协议和UCP协议与TCP/IP协议的联系。 TCP/IP协议是一个协议簇。里面...

  • Python TCP编程

    Python网络编程之TCP 一、TCP协议 TCP协议,传输控制协议(Transmission Control ...

  • TCP HTTPS专题

    TCP HTTPS专题 TCP协议 TCP/IP协议分层 TCP/IP 协议族里重要的一点就是分层。 TCP/IP...

网友评论

      本文标题:TCP协议

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