首页 > 其他分享 >传输层协议总结

传输层协议总结

时间:2023-08-29 20:33:16浏览次数:40  
标签:总结 协议 报文 TCP 发送 拥塞 传输层 连接

传输层就是在信纸的空白上写上新的“收信人”信息。每一所房子【某一个终端】会配备一个管理员(传输层协议)。管理员从邮差手中接过信,会根据“收信人”,将信送给房子中的某个人。使用端口号(port number)来识别收信人(某个进程)。

传输层协议

  • TCP 面向字节流服务
    • 面向连接,可靠,有序的协议
    • 通过滑动窗口、拥塞控制实现可靠和速度
    • 应用层提供的数据是一串无结构的字节流,传输层可以对数据进行分段,数据没有长度限制
  • DUP 面向报文服务
    • 无连接,不可靠,无序的协议
    • 应用层提供的是一系列报文,传输层不对报文进行分割和拼装,报文长度受限制

UDP

面向报文、无连接、差错检验、表示不同应用进程(绕过TCP协议,实现相对简单的快速通信)

请在此添加图片描述

协议分析

语法:格式,包括四个控制字段(发送端口、接收端口、长度、检验和)在IP分组的基础上,增加了源和目的端口号、检验和,因此可以解决发送进程和接收进程的标识问题语义:

  • 接收端发现UDP数据错误就丢掉
  • 有相应端口号对应的进程,把数据交给应用进程
  • 没有相应端口号对应的进程,则丢弃数据 没有时序,时序体现报文之间的关联性,而UDP每个报文是独立的

TCP

面向字节流、面向连接、表示不同应用进程、差错控制、拥塞控制

请在此添加图片描述

TCP 的连接管理

运输连接有三个阶段:连接建立、数据传输、连接释放

TCP连接:每个连接有四个参数(两个IP 保存在 IP 地址头部,两个端口号 保存在 TCP 头信息,序列号和应答号),内核中的TCP模块生成连接之后,将连接分配给进程使用。

为什么 TCP 是面向连接的

UDP通讯有四个参数:源IP、源端口、目的IP和目的端口。而TCP通讯至少有有六个参数:源IP、源端口、目的IP和目的端口,以及序列号和应答号。

因此对TCP连接的连接概念可以简单理解成为同UDP通讯相比,用序列号和应答号确定了相互之间的连接特征,来保证数据传输的正确性。 参考网站

TCP 有序可靠通信

  • 通过序号保证字节流有序
  • 通过确认应答、记时重发 保证数据发送正确(数据错了、顺序错了、重复接收)
  • 通过滑动窗口(累计确认)保证传输的效率和实现流量控制
  • 保证传递效率 <拥塞控制>

TCP重发:超时重发、快速重发。

在TCP协议中,我们使用连接记录TCP两端的状态,使用编号和分段实现了TCP传输的有序,使用advertised window来实现了发送方和接收方处理能力的匹配,并使用重复发送来实现TCP传输的可靠性。

滑动窗口和累积确认

  • 发送方:发送窗口内的分组都可以连续发送不需要等待对方确认
  • 接收方:不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认

TCP 拥塞控制 保证网络的传输效率和稳定性

拥塞:指分组交换设备中经过某条链路的流量超出链路的传输能力,使得输出队列缓存中等待输出的报文越来越多,以至于发生输出队列溢出报文丢弃的情况

解决拥塞的简单办法:控制发送端流量。

确定发生拥塞:TCP报文过程中发生丢失报文、重传定时器溢出、连续接受多个重复确认应答】->需要调整发送端流量。(参考:计算机网络【七】:可靠传输的实现

拥塞窗口CWND:

慢启动:从小到大逐渐成倍增大拥塞窗口的值。(发送拥塞会设置一个慢开始门限 ssthresh = cwnd /2)

拥塞避免:让拥塞窗口的值缓慢的增大。

快重传:尽早知道个别数据包的丢失。发生数据的丢失连续收到3个重复的确认,发送丢失数据包。

快恢复设置新的慢开始门限为慢开始的一半,重新拥塞避免。

TCP差错控制与传输网络差错控制之间的关系

  • 链路层担负起检错的重责 CRC循环冗余检验(检测数据报的正确性)
  • TCP差错控制不能取代传输网络差错控制的原因(检测数据的正确性)

三次握手

TCP 三次握手丢了包怎么办

硬不硬你说了算!40 张图详解 3 次握手和 4 次挥手

  • SYN 攻击,服务器保持在 SYN-RECV 状态

两次同部位,两次确认位

我需要链接服务器:同部位 SYN,seq 序号为 x

ok,你可以链接:同部位SYN + 确认位ACK

ok,可以链接真开心:确认位ACK(第三次握手可以携带数据)

SYN 同部位 ACK 确认位

seq 发送了多少的序号

ack 确认了多少序号

  • ACK不携带数据不消耗序号。
  • SYN不能携带数据,要消耗一个序号。

某端 发送了多少序号,需要等到对方返回 ACK 才可以确定。

为什么需要三次握手:

  • 三次握手才可以阻止历史重复连接的初始化(主要原因)(两次握手就建立连接,可能建立的是旧的客户端链接)
  • 三次握手才可以同步双方的初始序列号
  • 三次握手才可以避免服务器端资源浪费

标签:总结,协议,报文,TCP,发送,拥塞,传输层,连接
From: https://www.cnblogs.com/yweihum/p/17665770.html

相关文章

  • 记一次因HTTP协议版本导致后端服务响应502事故
    一、前言于今天即将下班之际,研发同时突然反馈某项目开发环境调用java后端服务出现502....据悉,就在前几天都是正常,今天发版上线之后就出现这种情况,而且故障出现之后根研发自行调用后端服务接口是没问题的....随即我这边开始展开紧急处理二、排查思路首先对于502错误通常表示服务器作......
  • 视频汇聚/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?
    开源EasyDarwin视频监控/安防监控/视频汇聚EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持视频定时轮播。视频监控汇聚平台EasyCVR支持多种播放......
  • 视频汇聚/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?
    开源EasyDarwin视频监控/安防监控/视频汇聚EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持视频定时轮播。视频监控汇聚平台EasyCVR支持多种播放......
  • 安防视频监控/视频集中存储/云存储平台EasyCVR无法播放HLS协议该如何解决?
    视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集......
  • java基础(根据狂神总结)
    java基础(狂神)注释单行//多行/**/文档注释(可以加参数)/****/***@Descriptionhelloworld*@Authorcheems*/}数据类型类型基本数据类型数值类整数(查看最大字节大小,通过对应的类的源码看)byte占1个字节short2in......
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?
    开源EasyDarwin视频监控/安防监控/视频汇聚EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持视频定时轮播。视频监控汇聚平台EasyCVR支持多种播放......
  • 【SPI】SPI总线协议及驱动框架
    SPI通讯协议SPI控制方式SPI采用主-从(master-slave))模式的控制的方式。一个Master设备可以通过提供Clock以及对slave设备进行片选来控制多个Slave设备,SPI协议还规定Slave设备的Clock由Master设备通过SCK管脚提供给Slave设备,Slave设备本身不能产生和控制Clock,没有Clock则Slave设......
  • 32位数字电位器AD5228使用及调试总结
    一概念什么是数字电位计?  数字电位器(DigitalPotentiometer)亦称数控可编程电阻器,是一种代替传统机械电位器(模拟电位器)的新型CMOS数字、模拟混合信号处理的集成电路。数字电位器由数字输入控制,产生一个模拟量的输出。依据数字电位器的不同,抽头电流最大值可以从几百微安到几个......
  • [java基础知识复习] Java基础知识总结分享一
    写代码:1,明确需求。我要做什么?2,分析思路。我要怎么做?1,2,3。3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。demo4,该技术什么时候用?test。————......
  • MODBUS RTU协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数
    原文连接浮点数保存的字节格式如下:地址+0+1+2+3内容SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM这里S代表符号位,1是负,0是正E偏移127的幂,二进制阶码=(EEEEEEEE)-127。M24位的尾数保存在23位中,只存储23位,最高位固定为1。此方法用最较少的位数实现了较高的有效位数,提高了精......