TCP - 传输控制协议

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/24172.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.mzph.cn/news/753096.shtml

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

相关文章

FDMC8200中文资料PDF数据手册引脚图参数功能介绍概述参数规格参数产品手册

产品概述: 此器件在一个双 Power 33 (3 mm X 3 mm MLP) 封装中包括了两个特制的 N 沟道 MOSFET。 开关节点已经内部连接,可实现同步降压转换器的轻松布置和布线。 控制 MOSFET (Q1) 和同步 MOSFET (Q2) 可提供最佳功率效率。 产品特性: Q1…

Appium官方文档常用方法介绍

Appium命令 Appium 官方文档 看云 创建Session // Java DesiredCapabilities desiredCapabilities new DesiredCapabilities(); desiredCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "10.3"); desiredCapabilities.setCapability(Mobile…

计算机一级word 文字处理理论+实操试题

计算机一级word 文字处理理论实操试题 单选题: 1、在Word编辑状态下,要将另一文档的内容全部添加在当前文档的当前光标处,应选择的操作是依次单击______。 A.“文件”选项卡和“打开”项 B.“文件”选项卡和“新建”项 C.“插入”选项卡…

1194: 最简单的题(python)

收藏 难度:简单 标签:暂无标签 题目描述 孩纸,珍惜吧!这可能会是有史以来最简单的题目了、 有这样的函数F(i)i*i*i*i3*i*i*i2*i*i8*i9;请你找出他所有的整数函数值。 嘻嘻,不是这么的难题 !…

外贸业务员的工作时间安排,抓紧收藏!

平时很多外贸业务员应该都差不多,大部分时间会用来不知所措的摸鱼,关于工作内容并无规划。今天给大家分享一个工作时间安排,赶紧码住! 销售联系潜在客户时间计划表 目标:在不给潜在客户造成压力的情况下,建立联系并推…

AI人工智能时代,Java从业者必学科目2

精品课程推荐:Java版数据结构和算法AI算法课程 AI人工智能时代,Java从业者必学科目 精品课程推荐:Java版数据结构和算法AI算法课程 【点击开始学习】 学习地址:https://class.imooc.com/sale/fullstackalgo 在当今数字时代&a…

WEB前端作业一

作业1:生成表格 模版 <!DOCTYPE html> <html><title>作业表格一</title><body><h1><b>工商银行电子汇款单</b></h1><p><table border"1" cellspacing"0"><tr><td colspan&qu…

week07day03(power bi dax公式 零售数据业务分析)

一. 切片器(筛选)相关的三个函数 1.all &#xff08;all后面的数据意思是 不受其影响&#xff09; #ALL 筛选的是 筛选器 或 切片器#计算 销售金额 &#xff0c;并且 不受到 门店ID 控制 计算金额 CALCULATE(SUM(销售表[金额]),ALL(销售表[门店ID]))#计算 销售金额 &#x…

最小化战斗力差距——算法思路

题目链接&#xff1a;1.最小化战斗力差距 - 蓝桥云课 (lanqiao.cn) 可分析&#xff0c;把一个数组分成两组&#xff0c;求一组的最大值与另一组的最小值的差值的绝对值最小&#xff0c;可以转换为求任意两个相邻数字之间的最小插值的绝对值。 可看图示&#xff1a; package lan…

记录工作中莫名其妙的bug

1、问题&#xff1a;办公室的电脑突然除了我之外&#xff0c;都不能访问我们的线上系统了 原因&#xff1a;因为是内网&#xff0c;同事有刚刚升级了Windows11&#xff0c;配置的DNS被清了&#xff0c;还有同事换了公司的新电脑&#xff0c;还没有配DNS 位于&#xff1a;C /Win…

如何在CentOS系统部署AMH主机面板并实现无公网IP远程连接

文章目录 推荐1. Linux 安装AMH 面板2. 本地访问AMH 面板3. Linux安装Cpolar4. 配置AMH面板公网地址5. 远程访问AMH面板6. 固定AMH面板公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击…

数据库SQLServer——插入数据

1.插入数据语法 INSERT INTO table_name(column_list) VALUES (value_list); --简写 INSERT INTO table_name VALUES (value_list);INSERT table_name VALUES (value_list); 2.实例 2.1基本形式&#xff08;不安全&#xff09; insert into 学生表01 values(李明,男,1.70) …

python实现--二叉搜索树

什么是二叉搜索树 二叉搜索树&#xff08;Binary Search Tree&#xff0c;BST&#xff09;是一种特殊类型的二叉树&#xff0c;它具有以下性质&#xff1a; 每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点。 对于任意节点&#xff0c;其左子树中的所有节点的…

python 调用redis创建查询key

部署redis apiVersion: apps/v1 # 描述api版本&#xff0c;默认都用这个 kind: Deployment # 资源类型&#xff0c;可以配置为pod&#xff0c;deployment&#xff0c;service&#xff0c;statefulset等等 metadata: # deployment相关的元数据&#xff0c;用于描述deployment的…

LeetCode199题:二叉树的右视图(python3)

代码思路&#xff1a;深度优先搜索&#xff0c;每次总访问右子树&#xff0c;value_depth用dict存放&#xff0c;深度为索引&#xff0c;存放节点的值&#xff0c;stack从根节点[(root, 0)]开始&#xff0c;添加node和depth class Solution:def rightSideView(self, root: Opt…

深入浅出:数据库的世界 - 介绍、分类、作用与特点

一、引言 A. 数据库的普遍性与重要性 数据库是现代信息技术中不可或缺的重要组成部分&#xff0c;无论是企业、学术机构还是个人用户&#xff0c;在日常生活和工作中都会接触到数据库。它承载着海量的数据&#xff0c;为各种应用程序提供数据存储、管理和检索功能。 B. 数据…

测试工具分享:高效完成测试工作!

说在前头 在社会上&#xff0c;特别是技术圈&#xff0c;大家会有刻板印象&#xff1a;测试工作的含金量不高。因为大家觉得测试不重要&#xff0c;导致给测试的薪水也偏低&#xff1b;这又反向导致好的人才不想来测试行业&#xff0c;测试从业人员的平均水平、工作体现的价值…

贪心算法(算法竞赛、蓝桥杯)--线段覆盖

1、B站视频链接&#xff1a;A29 贪心算法 P1803 线段覆盖_哔哩哔哩_bilibili 题目链接&#xff1a;凌乱的yyy / 线段覆盖 - 洛谷 #include <bits/stdc.h> using namespace std;struct line{int l,r;bool operator<(line &b){return r<b.r;//重载小于号,按右端…

C标准库函数与Unbuffered I/O函数:平台间的差异与适用性

C标准库函数 C标准库函数&#xff0c;作为C语言规范的核心组成部分&#xff0c;被广泛应用于所有支持C语言的平台之上。这些函数定义在stdio.h头文件中&#xff0c;涵盖了诸如输入输出处理、内存管理、字符串操作、数学运算等诸多基础功能。尽管在某些平台上&#xff0c;部分C…

【力扣二刷思路】DAY3

215. 数组中的第K个最大元素 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 思路 …