加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

TCP协议基础知识全概括

发布时间:2022-07-15 15:32:42 所属栏目:Linux 来源:互联网
导读:TCP协议是互联网的基础协议之一。对运维工程师来说,TCP协议是必须掌握的基础知识,同时也与自己的日常工作息息相关。 【Linux每日一个知识点第74期】TCP协议基础知识全汇总 一、TCP 协议的作用 互联网由一整套协议构成。TCP 只是其中的一层,有着自己的分工
  TCP协议是互联网的基础协议之一。对运维工程师来说,TCP协议是必须掌握的基础知识,同时也与自己的日常工作息息相关。
 
  【Linux每日一个知识点第74期】TCP协议基础知识全汇总
 
  一、TCP 协议的作用
  互联网由一整套协议构成。TCP 只是其中的一层,有着自己的分工。
 
  
  最底层的以太网协议(Ethernet)规定了电子信号如何组成数据包(packet),解决了子网内部的点对点通信。
 
 
  但是,以太网协议不能解决多个局域网如何互通,这由 IP 协议解决。
 
 
  IP 协议定义了一套自己的地址规则,称为 IP 地址。它实现了路由功能,允许某个局域网的 A 主机,向另一个局域网的 B 主机发送消息。
 
 
  路由的原理很简单。市场上所有的路由器,背后都有很多网口,要接入多根网线。路由器内部有一张路由表,规定了 A 段 IP 地址走出口一,B 段地址走出口二,......通过这套"指路牌",实现了数据包的转发。
 
  
 
  IP 协议只是一个地址协议,并不保证数据包的完整。如果路由器丢包(比如缓存满了,新进来的数据包就会丢失),就需要发现丢了哪一个包,以及如何重新发送这个包。这就要依靠 TCP 协议。
 
  简单说,TCP 协议的作用是,保证数据通信的完整性和可靠性,防止丢包。
 
  二、TCP 数据包的大小
  以太网数据包(packet)的大小是固定的,最初是1518字节,后来增加到1522字节。其中, 1500 字节是负载(payload),22字节是头信息(head)。
 
  IP 数据包在以太网数据包的负载里面,它也有自己的头信息,最少需要20字节,所以 IP 数据包的负载最多为1480字节。
 
  
 
  TCP 数据包在 IP 数据包的负载里面。它的头信息最少也需要20字节,因此 TCP 数据包的最大负载是 1480 - 20 = 1460 字节。由于 IP 和 TCP 协议往往有额外的头信息,所以 TCP 负载实际为1400字节左右。
 
  因此,一条1500字节的信息需要两个 TCP 数据包。HTTP/2 协议的一大改进, 就是压缩 HTTP 协议的头信息,使得一个 HTTP 请求可以放在一个 TCP 数据包里面,而不是分成多个,这样就提高了速度。
 
  
 
  三、TCP 数据包的编号(SEQ)
  一个包1400字节,那么一次性发送大量数据,就必须分成多个包。比如,一个 10MB 的文件,需要发送7100多个包。
 
  发送的时候,TCP 协议为每个包编号(sequence number,简称 SEQ),以便接收的一方按照顺序还原。万一发生丢包,也可以知道丢失的是哪一个包。
 
  第一个包的编号是一个随机数。为了便于理解,这里就把它称为1号包。假定这个包的负载长度是100字节,那么可以推算出下一个包的编号应该是101。这就是说,每个数据包都可以得到两个编号:自身的编号,以及下一个包的编号。接收方由此知道,应该按照什么顺序将它们还原成原始文件。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读