0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TCP传输控制协议知识科普拓展

冬至子 来源:BTBU科协 作者:BTBU科协 2023-11-27 17:46 次阅读

— TCP传输控制协议 —

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

TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。

TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

01

** TCP协议首部 **

TCP协议,表现在报文上,就是会在应用层传输下来的数据前附加上一个TCP首部,这个首部附加了TCP信息

图片

首部结构

02

** TCP面向字节流特性**

TCP并不是把应用层传输过来的数据直接加上首部然后发送给目标,而是把数据看成一个字节流,给他们标上序号之后分部分发送。这就是TCP的面向字节流特性:

图片

TCP会以流的形式从应用层读取数据并存放在自己的发送缓存区中,同时为这些字节标上序号,TCP会从发送方缓冲区选择适量的字节组成TCP报文,通过网络层发送给目标,目标会读取字节并存放在自己的接收方缓冲区中,并在合适的时候交付给应用层。

面向字节流的好处是无需一次存储过大的数据占用太多内存,坏处是无法知道这些字节代表的意义,例如应用层发送一个音频文件和一个文本文件,对于TCP来说就是一串字节流,没有意义可言,这会导致粘包以及拆包问题。

03

** 可靠传输原理**

TCP是可靠传输协议,也就是,一个数据交给他,他肯定可以完整无误地发送到目标地址,除非网络炸了。他实现的网络模型如下:

图片

对于应用层来说,他就是一个可靠传输的底层支持服务;而运输层底层采用了网络层的不可靠传输。虽然在网络层甚至数据链路层就可以使用协议来保证数据传输的可靠性,但这样网络的设计会更加复杂、效率会随之降低。把数据传输的可靠性保证放在运输层,会更加合适。

可靠传输原理的重点总结一下:滑动窗口、超时重传、累积确认、选择确认、连续ARQ 。

04

停止等待协议

要实现可靠传输,最简便的方法就是:我发送一个数据包给你,然后你跟我回复收到,我继续发送下一个数据包。

图片

这种“一来一去”的方法来保证传输可靠就是停止等待协议(stop-and-wait)。

再来考虑一种情况:丢包。网络环境不可靠,导致每一次发送的数据包可能会丢失,如果机器A发送了数据包丢失了,那么机器B永远接收不到数据,机器A永远在等待。解决这个问题的方法是:超时重传 。

当机器A发出一个数据包时便开始计时,时间到还没收到确认回复,就可以认为是发生了丢包,便再次发送,也就是重传。

但重传会导致另一种问题:如果原先的数据包并没有丢失,只是在网络中待的时间比较久,这个时候机器B会受到两个数据包,那么机器B是如何辨别这两个数据包是属于同一份数据还是不同的数据?这就需要前面讲过的方法:给数据字节进行编号。这样接收方就可以根据数据的字节编号,得出这些数据是接下来的数据,还是重传的数据。

05

** 连续ARQ协议**

停止等待协议已经可以满足可靠传输了,但有一个致命缺点:效率太低。发送方发送一个数据包之后便进入等待,这个期间并没有干任何事,浪费了资源。解决的方法是:连续发送数据包。

图片

和停止等待最大的不同就是,他会源源不断地发送,接收方源源不断收到数据之后,逐一进行确认回复。这样便极大地提高了效率。但同样,带来了一些额外的问题:

发送是否可以无限发送直到把缓冲区所有数据发送完?不可以。因为需要考虑接收方缓冲区以及读取数据的能力。如果发送太快导致接收方无法接受,那么只是会频繁进行重传,浪费了网络资源。所以发送方发送数据的范围,需要考虑到接收方缓冲区的情况。这就是TCP的流量控制 。解决方法是:滑动窗口 。

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 缓冲器
    +关注

    关注

    6

    文章

    1578

    浏览量

    44893
  • 接收机
    +关注

    关注

    8

    文章

    1122

    浏览量

    52651
  • ARQ
    ARQ
    +关注

    关注

    0

    文章

    3

    浏览量

    6070
  • TCP协议
    +关注

    关注

    1

    文章

    83

    浏览量

    12004
收藏 人收藏

    评论

    相关推荐

    第12章 TCP传输控制协议基础知识

    转最新教程本章节为大家讲解TCP(Transmission Control Protocol,传输控制协议),通过本章节的学习,需要大家对TCP
    发表于 10-30 08:51

    TCP/IP传输协议概揽

    TCP/IP 传输协议概揽 传输控制协议 TCP
    发表于 06-09 21:51 749次阅读
    <b class='flag-5'>TCP</b>/IP<b class='flag-5'>传输</b>层<b class='flag-5'>协议</b>概揽

    TCP/IP传输协议概览

    TCP/IP传输协议概揽 传输控制协议 TCP
    发表于 06-09 21:52 881次阅读
    <b class='flag-5'>TCP</b>/IP<b class='flag-5'>传输</b>层<b class='flag-5'>协议</b>概览

    TCP/IP协议简介

    TCP/IP协议简介 TCP/IP传输协议概揽 传输
    发表于 06-09 23:07 1246次阅读
    <b class='flag-5'>TCP</b>/IP<b class='flag-5'>协议</b>简介

    传输控制协议(TCP)/网络层协议是什么意思

    传输控制协议(TCP)/网络层协议是什么意思 传输控制
    发表于 04-06 16:44 2710次阅读

    tcp ip协议_什么是tcp ip协议

    什么是tcp ip协议tcp ip协议详解,深刻讲述了tcp ip协议的概念,
    发表于 05-14 16:29 5704次阅读
    <b class='flag-5'>tcp</b> ip<b class='flag-5'>协议</b>_什么是<b class='flag-5'>tcp</b> ip<b class='flag-5'>协议</b>

    TCP传输控制协议

    TCP-IP详解卷2 TCP传输控制协议,学习TCP很好的资料。欢迎下载。
    发表于 05-09 14:33 0次下载

    TCP协议基础知识

    TCP 是互联网核心协议之一,本文介绍它的基础知识
    的头像 发表于 10-16 10:29 3402次阅读
    <b class='flag-5'>TCP</b><b class='flag-5'>协议</b>基础<b class='flag-5'>知识</b>

    TCP协议的简介和关键知识

    重发 9、TCP控制 10、网线“断”了怎么办 01简介 TCP(Transmission Control Protocol 传输控制
    的头像 发表于 08-18 09:55 4733次阅读
    <b class='flag-5'>TCP</b><b class='flag-5'>协议</b>的简介和关键<b class='flag-5'>知识</b>点

    一文详解TCP传输控制协议

    TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的传输
    发表于 05-25 15:38 1386次阅读
    一文详解<b class='flag-5'>TCP</b><b class='flag-5'>传输</b><b class='flag-5'>控制</b><b class='flag-5'>协议</b>

    传输控制协议TCP是怎样进行工作的

    传输控制协议TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信
    的头像 发表于 08-19 09:17 2503次阅读
    <b class='flag-5'>传输</b><b class='flag-5'>控制</b><b class='flag-5'>协议</b><b class='flag-5'>TCP</b>是怎样进行工作的

    什么是TCP协议

    TCP(Transmission Control Protocol,传输控制协议),它是最常用传输协议
    的头像 发表于 02-14 10:26 2326次阅读

    传统TCP设计的可靠传输协议详解

    传统TCP设计的可靠传输协议是一种基于TCP协议实现的可靠传输方法。下面是传统
    的头像 发表于 07-21 16:51 438次阅读

    TCP协议面试常问知识点总结

    TCP 作为传输层的协议,是一个IT工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到
    的头像 发表于 12-15 10:38 276次阅读
    <b class='flag-5'>TCP</b><b class='flag-5'>协议</b>面试常问<b class='flag-5'>知识</b>点总结

    关于TCP、HTTP的知识科普

    要说http就绕不开tcpTCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性。但是,http是基于
    的头像 发表于 12-21 09:31 366次阅读
    关于<b class='flag-5'>TCP</b>、HTTP的<b class='flag-5'>知识</b><b class='flag-5'>科普</b>