TCP - 传输控制协议

news2025/2/26 9:33:52

TCP - 传输控制协议

是一种面向连接的可靠传输协议。

特点:
  • TCP是面向连接(虚连接)的传输层协议。

  • 每一条TCP连接有且只能有两个端点。

  • 可靠、有序、无丢弃和不重复。

  • TCP协议提供全双工通讯

    • 发送缓存
      • 存放发送方TCP准备发送的数据。
      • TCP已发送但是没有收到确认的数据。
    • 接收缓存
      • 存放发送端发送来的不按照顺序到达的数据。
      • 按照顺序到达的数据,但并未被应用程序读取。
  • TCP是面向字节流的。TCP将应用层数据仅看成是一串无结构的字节流。

TCP连接的四元组(源IP、源端口、目的IP、目的端口)
套接字 - IP:port

请添加图片描述

确认序列号: 接收方期望收到发送方发送的下一个字节的序号。(序号+数据大小)1、接收方希望接收到的报文序号;2、该序号之前的数据全部接受。— 累计确认机制

请添加图片描述

数据偏移:4字节;保留位:6bit;

选项字段:长度可变。MSS数值、窗口扩大因子、时间戳、选择确认机制。

确认位ACK:当ACK=1时,确认号有意义。再连接建立后,所有传输的报文段都必须将该标志位置设为1。
同步位SYN:SYN=1时,代表该数据是一个连接请求报文。
终止位FIN:FIN=1时,表明此报文段发送方数据已发送完毕,要求释放连接。

复位RST:表明TCP连接出现严重错误,需要释放连接并重新建立连接。

晋级位URG:代表该报文中存在高优先级的数据,尽快处理。需要配合紧急指针使用。
推送位PSH:接收方应尽快将接收到的数据交付给对应应用程序。

TCP的可靠性

确认、重传、排序、流控。

确认机制

在TCP中,当发送端的数据达到接收主机时,接收端主机会返回一个已收到消息的通知,这个消息叫做ACK(确认应答)。

请添加图片描述

TCP通过肯定的ACK实现可靠的数据传输。当发送端将数据发出之后会等待对端的确认应答,如果有确认应答,说明数据已经成功到达,如果没有,那么数据有可能丢失了
如下图所示,在一定时间内没有等到确认应答,发送端就可以认为数据已经丢失,就会进行重发。
请添加图片描述

未收到确认应答也并不意味着数据一定丢失,有时也有可能是因为数据收到,但是ACK却在传输的途中丢了。因此这种情况也会导致发送端因没有及时收到ACK,而认为数据没有到达目的地,从而进行重传

请添加图片描述

为此就必须要引入一种机制,使其能够识别是否已经接受数据,又能判断是否需要接受

序列号和确认应答号

序列号:1 确认应答号:1+数据长度。

重传机制

MTU:最大传输单元 - 以太网环境下1500字节 - 数据包大小。
MSS:最大数据段长度

RTT - 往返时间(即从发送方发送数据开始,到发送方接收到来自接收方的确认消息所经过的时间。)
RTO - 超时重传时间。

RTO略高于RTT。

快速重传机制 - 根据接收方的反馈信息进行数据重传。客户端连续接收到三次确认序列号相同的ACK报文,则认为数据丢失,需要进行数据传输。
快速重传机制会导致部分数据重复传输,降低数据传输效率。

解决思路:选择确认机制。 - 在TCP首部的选项字段中,添加上未接收到的数据信息。接收方接收到该确认报文后,会根据选项字段内容,重新传输缺少的数据部分。
    是否执行进行协商 - 根据三次握手的前两次SYN报文中进行协商。
    
RTO数值是动态变化的数值。超时间隔加倍。

流控机制

窗口:窗口的大小时可以指定的,窗口大小指的是无需等待确认报文,而可以直接发送的数据包的最大值。
 接收窗口(rwnd)- 开始等于整个缓存区大小,浮动变化。

TCP要求发送方依据rwnd发送数据量

请添加图片描述

TCP连接的建立

TCP连接需要解决的问题:
1、知晓对端的套接字信息
2、允许双方进行参数的协商(窗口值、选择确认机制、是否使用窗口扩大因子)
3、对设备进行资源分配(队列、缓存空间)

探测报文

当TCP连接建立成功,但是客服端突发故障。

服务器会等待2小时,若2小时候没收到任何客户端的数据,服务器发送一个探测报文,以后每隔75秒。
TCP连接的释放
1、TCP连接释放实际是释放本地分配给TCP连接的资源
2、本地没有新的数据需要发送

请添加图片描述

静态路由

请添加图片描述

方法一:[r1]ip route-static 23.0.0.0 24 12.0.0.2  点到多点
方法二:[r1]ip route-static 23.0.0.0 GE0/0/1  点到点(一条导线上只能有两个节点)
     ARP代理:当收到ARP报文后,路由器冒充真实应答者回复ARP报文,将自己接口的MAC地址进行回复。
     限制条件:应答路由器必须是网络可达的
     静态ARP表项(下一跳)
     [r1]ARP ststic 12.0.0.1 00e0-fcd3-1943
方法三:[r1]ip route-static 23.0.0.0 24 GE0/0/0/1 12.0.0.2
方法四:[r1]ip route-static 192.168.3.0 24 23.0.0.3(前置条件全部实现) - 下两跳

路由器下一跳写的是我自己,则认为是直连关系;

子网划分和子网汇总

172.16.0.0/16
子网划分:主机位借给网络位,借的位叫子网位,子网位可变
172.16.00000000.0
172.16.10000000.0

子网汇总:取相同,去不同
172.16.1.0/24
172.16.2.0/24
172.16.3.0/24

172.16.0.0/22

缺省路由 0.0.0.0 1.1.1.1

环路接口的解决

解决方法:TTL(生存时间)

空接口:NULL0(路由最长掩码匹配规则)

修改优先级 pre
静态路由与BFD的联动
[r1]bfd ---激活BFD协议
[r1]bfd aa bind peer-ip 10.1.12.1
[r1-bfd-session-aa]discriminator local 10
[r1-bfd-session-aa]discriminator remote 20
[r1-bfd-session-aa]commit ---提交配置
接着配置r2BFD
[r1]display bfd session all

[r1]ip route-static 10.9.9.0 24 10.1.12.1 track bfd-session aa


[r1-bfd-session-aa]discriminator remote 20
[r1-bfd-session-aa]commit ---提交配置
接着配置r2BFD
[r1]display bfd session all

[r1]ip route-static 10.9.9.0 24 10.1.12.1 track bfd-session aa

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1528707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一键截取万像:视频快照工具的终极指南

在这个视频时代,我们不可能手动截取每一个视频的特定帧作为缩略图或参考用途。这不仅费时费力,而且效率低下。但是,有了Python和强大的库,您可以创建一个自动化工具,在几秒钟内从视频文件中获取缩略图快照。 在本文中,我将分享一个Python脚本,它使用wxPython和OpenCV库,让您只…

基于有限状态机开发健壮的Nodejs/TCP客户端

有限状态机是一种数学计算模型,它描述了在任何给定时间只能处于一种状态的系统的行为。形式上,有限状态机有五个部分: 初始状态值 (initial state)有限的一组状态 (states)有限的一组事件 (events)由事件驱动的一组状态转移关系 (transition…

Foxmail邮箱空间不够或邮件数太多

Foxmail邮箱空间不够或邮件数太多 解决办法: ①远程管理,删除远程邮件 ②删除本地邮件并同步服务器 ①远程管理,删除远程邮件 ②删除本地邮件并同步服务器 打开设置》》高级 此外,为了方便管理邮件可以设置过滤器 欢迎各位大佬…

51单片机LED8*8点阵显示坤坤跳舞打篮球画面

我们作为一名合格的 ikun,专业的小黑子,这个重要的知识必须学会。 先看效果: 51LED点阵_鸡你太美 这里我们首先要用到延时函数Delay: void Delay(unsigned int xms) {unsigned char i, j;while(xms--){ i 2;j 239;do{while (-…

物联网和工业物联网的区别——青创智通

工业物联网解决方案-工业IOT-青创智通 物联网(IoT)和工业物联网(IIoT)作为现代科技的重要分支,正在逐渐渗透到我们的日常生活和工业生产中。它们的应用范围广泛,涵盖了从智能家居到自动化工厂的多个领域。…

CTF题型 Http2降级走私原理分析例题分享

CTF题型 Http2降级走私原理分析&例题分享 文章目录 CTF题型 Http2降级走私原理分析&例题分享HTTP/2请求走私的产生回顾一下Http请求走私原理Http2请求的消息划分实际生产环境的限制如何利用H2.CL 实验环境准备例题分析H2.CL请求走私[GeekChanllenge 2023 Ez_Smuggling]…

http协议的历史与基本概念

文章目录 历史和发展起源:HTTP/0.9(1991年):HTTP/1.0(1996年,RFC 1945):HTTP/1.1(1997年,RFC 2068;1999年更新为RFC 2616)&#xff1a…

【动态规划】【 数位dp】2827. 范围中美丽整数的数目

本文涉及知识点 数位dp 动态规划汇总 LeetCode2827. 范围中美丽整数的数目 给你正整数 low ,high 和 k 。 如果一个数满足以下两个条件,那么它是 美丽的 : 偶数数位的数目与奇数数位的数目相同。 这个整数可以被 k 整除。 请你返回范围 [l…

写作之路:寻找动力与认可的探索

✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向) 🐳博客主页: 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN 🔔如果文章对您些帮助请👉关…

Android14音频进阶:AudioFlinger究竟如何混音?(六十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

R语言中的常用基础绘图函数 直方图,箱线图,条形图,散点图

目录 R语言中的绘图参数 绘图函数 1.plot函数绘制散点图 2.hist函数绘制直方图 如何修饰直方图? 如何在直方图上标注各组频数? 使用text函数把某些信息标注在直方图上 如何在直方图上添加概率密度曲线? 3.boxplot函数绘制箱线图 4.barplot函数…

实现安卓连接阿里云物联网平台(2)

完整工程链接 链接:https://pan.baidu.com/s/1ykcJHPBSKBXVMaMWKoVRvA?pwd8888 提取码:8888 (1)创建一个新工程 (2)添加mqtt包的依赖 implementation org.eclipse.paho:org.eclipse.paho.client.mqttv…

C语言技能数(知识点汇总)

C语言技能数(知识点汇总) C 语言概述特点不足之处 标准编程机制 数据类型变量数据类型字符类型整数类型符号位二进制的原码、反码和补码 浮点类型布尔类型 常量字面常量const 修饰的常变量#define定义的标识符常量枚举常量 sizeofsizeof(结构体)不要对 v…

代码随想录训练营Day26:● 93.复原IP地址 ● 78.子集 ● 90.子集II

93.复原IP地址 题目链接 https://leetcode.cn/problems/restore-ip-addresses/description/ 题目描述 思路 class Solution {List<String> list new ArrayList<>();public List<String> restoreIpAddresses(String s) {if(s.length()>12) return list…

并联谐振回路

并联谐振回路概述 串联谐振回路适用于低内阻电源(理想电压源)。而对于大内阻电源&#xff0c;则适合采用并联谐振回路。 并联谐振回路&#xff1a;指电感线圈L、电容器C和外加信号源相互并联的振荡回路。同样&#xff0c;由于电容器C的损耗很小&#xff0c;可以认为损耗电阻集…

JavaScript中a++和++a的区别是什么?

在JS中&#xff0c;a 和 a 都是对变量 a进行自增操作&#xff0c;但是他们在执行的行为和结果上有些不同&#xff1a; a (前缀自增)&#xff1a; 首先是将a的值增加1&#xff0c;然后返回 a 增加后的值。这意味着&#xff0c;表达式的其余部分使用 a的时候&#xff0c; a 的值…

【办公类-22-15】周计划系列(5-6)“周计划-06 周计划打印pdf(docx删除内容转PDF)“ (2024年调整版本)

作品展示 背景需求&#xff1a; 前期用docx&#xff08;删除第一页反思部分内容&#xff09;转PDF转png&#xff08;第一页&#xff09;的方式获得上传网页用的图片。 【办公类-22-14】周计划系列&#xff08;5-5&#xff09;“周计划-05 上传周计划png&#xff08;docx转PDF…

KTV点歌系统|基于JSP技术+ Mysql+Java+ B/S结构的KTV点歌系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

议题揭晓 | 3月23日武汉 Linux 用户组线下沙龙邀您参与!

内容来源&#xff1a;deepin 社区 WHLUG&#xff08;武汉Linux用户组&#xff09;线下沙龙将于 2024 年 3 月 23 日下午举办&#xff0c; 欢迎大家来到现场&#xff0c;一起交流最新产品动态与前沿技术&#xff0c;聆听社区成员的共建经验与收获。 本次活动由 deepin&#xff…

发票OCR-国税可进行的发票查验种类-接口文档

发票查验内容包括发票种类名称、发票代码、发票号码、金额、销售方名称、购买方名称等信息。可以在国家税务总局全国增值税发票查验平台上进行查验&#xff0c;也可以进入发票所属省、直辖市税务局官方网站的“我要查询-发票查询”模块进行查验&#xff0c;企业也可以通过发…