2024年网络安全最全【计算机网络】TCP原理 可靠性机制分析(一)

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【网络编程】【Java系列
本专栏旨在分享学习网络编程、计算机网络的一点学习心得,欢迎大家在评论区交流讨论💌

目录

一、UDP协议

UDP协议特性

  • 无连接:知道对端的IP和端口号就可以直接进行传输,不需要进行连接。
  • 不可靠:发送端发送数据报以后,如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返回任何错误信息。
  • 面向数据报:应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并(比如发送端一次性接收100个字节,那么接收端也必须一次性接收100个字节)。

UDP协议端格式

UDP协议端格式即UDP协议报文格式。

在这里插入图片描述

在这里插入图片描述

  • UDP的校验和如何实现:是通过CRC校验算法来进行实现的,即将数据报中的每个字节进行累加,传输数据的时候将数据和校验和一并发送出去;接收方接收到的校验和我们视为旧校验和,而接收方受到的数据将每个字节累加后得到的结构视为新的校验和。当数据相同时,校验和一定相同;校验和不同时,数据一定不同,但是校验和相同时数据不一定相同(工程上不考虑,因为概率太小了,可以忽略不计)。最后,如果数据出错的话,UDP的做法是直接丢弃掉,如果你想让对方重新发一遍数据的话,哈哈,对不起,UDP协议做不到(TCP就可以做到,这也算是TCP协议可靠性的一种体现把)!!!

二、TCP协议

TCP协议头格式

下面是TCP协议头格式的图片:
在这里插入图片描述

  • 端口号:属于传输层,知道了端口号之后才能进一步确定数据要交给哪个应用程序。端口号的范围依然是0-65535,0-1024端口号在这里依然存在。
  • 首部长度:TCP首部长度字段的最小值是5,最大值是15,单位是字节;所以首部长度字段的最小字节是4*5=20字节,最大字节为15*4=60字节。另外TCP报头长度是可变长的,TCP报头长度的最短长度是20字节,选项部分可有可无,可以有一个选项,也可以有多个选项,选项的存在与否就影响到了4位首部长度最终是几,最终通过4位首部长度可以确定选项到哪里结束,数据从哪里开始(即我们需要通过首部长度来确定载荷数据是从哪里开始,报头是从哪里结束的)。
  • 6位保留位:保留位是为了以后协议的发展保留的,目前它们的值必须被设置为0(保留位就是为了将来对TCP协议进行升级留下了空间,但是就目前来看大概率是用不到了)。
  • 16位校验和同UDP协议中的校验和是一个意思,用于确保数据传输的正确性。

在这里插入图片描述
上图表示6个标志位,每个标志位是1bit,表示非常重要的含义。

  • 32位序号:每个数据报文段(segment)都会包含一个 TCP 报文头和数据载荷,而TCP 数据报中载荷数据的第一个字节的序号存储在 32 位序号字段(Sequence Number)中。
  • 32位确认序号:确认序号的数值就是收到的最后一个字节的编号+1(在 TCP 数据传输过程中,接收方收到发送方发送的每个数据报文段,会对其进行确认,确认号就是接收方期望接收的下一个字节的序号。)
  • 六位标志位之ACK:当ACK为0的时候只有32位序号是有效的,32位确认序号是无效的;当ACK为1的时候,32位序号和32位确认序号都是有效的。

三、TCP协议可靠性分析

  • 面向连接:TCP在数据传输前要建立连接,数据传输后要释放连接,因此是一种面向连接的传输协议。
  • 面向字节流:TCP像一个字节流一样传输数据,以字节流位单位进行读写,应用程序可以将数据分割成任意大小的段,不同的数据段会拼成一个完整的数据流。
  • 全双工:TCP的一个连接,既有发送缓冲区,也有接收缓冲区,那么对于这一个连接,既可以读数据,也可以写数据。
  • 确认应答机制:TCP协议的可靠性最核心的机制就是确认应答。

确认应答机制

确认应答:简单理解就是A给B发送了一个消息,但是A不能确定B是否收到了自己发送的消息,B如果收到了A发送的消息后就可以给A发送一个消息说我收到了,此时A就可以确定B已经接收到了自己的消息。
后发先至:在数据传输的过程中,一个数据报是先发送出去的,另一个数据报是后发送出去的,但是最终结果是后发出去的数据报反而优先到达目的地(这里两个数据报的目的地都相同)。
后发先至产生的原因:假设现在有两个数据报,都是从出发地A到达目的地B,但是两个数据报走的路线是可以有很多种的,另外每个节点(路由器/交换器)的繁忙程度是不一样的,所以就有可能出现后发先至的情况。
如何解决后发先至的情况:针对数据进行编号,比如发送消息1、发送消息2、应答1、应答2,通过这种方式就可以避免消息发送错乱的情况。TCP是面向字节流的,并没有一条一条这样的概念,所以当然不能以条作为传输单位,所以这里的编号是根据字节来进行编号的,另外应答报文要和收到的消息相关联。如下图所示:
在这里插入图片描述
在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
1. TCP网络效率: TCP是一种面向连接的、可靠的传输协议,它的网络效率取决于以下几个因素: - 带宽:带宽越大,数据传输的速度就越快,网络效率也就越高。 - RTT(Round-Trip Time):RTT指的是数据从发送端发送到接收端并返回的时间,即往返延迟时间。RTT越小,网络效率越高。 - 拥塞:当网络中的流量过大时,就会发生拥塞,TCP会采取拥塞控制机制,降低发送速率,以避免网络拥塞。因此,TCP网络效率还与网络拥塞状况有关。 2. TCP的拥塞控制机制TCP的拥塞控制机制主要分为四个阶段: - 慢启动:初始时,TCP会将发送速率设定为一个较小的值,然后每收到一个确认消息就将发送速率加倍,直到达到一个阈值。 - 拥塞避免:一旦达到阈值,TCP就进入拥塞避免阶段,此时每收到一个确认消息就将发送速率增加一个固定的量,而不是加倍。 - 快重传和快恢复:当TCP接收到重复的确认消息时,它会认为某些数据包已经丢失,此时TCP会立即重传这些数据包。快恢复是指当TCP接收到重复的确认消息时,它不会像慢启动那样将发送速率降至初始值,而是将发送速率设置为当前阈值的一半。 - 超时重传:如果TCP在一定时间内没有收到确认消息,就会认为数据包丢失,此时TCP会立即重传这些数据包,并将发送速率降至初始值。 总之,TCP的拥塞控制机制能够有效地避免网络拥塞,从而保证数据传输的稳定性和可靠性

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值