【传输层】TCP、三次握手、四次挥手、可靠传输、TCP拥塞控制、慢开始、拥塞避免、快重传、快恢复

news2024/11/16 15:31:34

文章目录

  • TCP------打电话----可靠有序、不丢不重复--------提供全双工-------------发送接收缓存----------面向字节流--------搬砖一样加个头运走
  • TCP首部格式-----源端口目的端口一共4B-------序号字段(报文第一个字节的序号)--------确认号(期待收到的内容的第一个字节的序号)-------以4B单位
  • 数据偏移--------首部长度--4B为单位-------URG--urgent紧急位--有紧急情况可以插队处理(发送方)---------配合紧急指针字段使用----------确认位ACK=1有效----------建立连接后ACK必须为1---------PSH=1(接收端插队)------RST复位------TCP出现严重偏差必须释放连接---再重新连接-------------同步SYN=1---表明是一个请求/接受报文----------------终值位FIN----表明报文段发送方已经发完要求释放连接
  • 窗口---表明接收窗口允许发送方发送的数据量----根据这个设置发送缓存------------检验和-----和IP报文一样---先加上12B的伪首部---计算完去除-------选项--额外的选项
  • TCP连接管理
  • TCP连接管理-----B/S方式-------
  • 三次握手---------1.客户端发送连接请求报文段SYN=1,seq=x随机------------------------------2.服务器为TCP分配缓存和变量,并返回确认报文SYN=1,ACK=1,seq=y随机,ack=x+1(序号想收到的)------------------------3.客户端为TCP分配缓存和变量,返回确认SYN=0,ACK=1,seq=x+1,ack=y+1
  • SYN洪范攻击-------黑客发送第一个确认包-------服务器一直发送确认等待确认---------服务器也分配了缓存和变量--------导致服务器资源耗尽--------------------解决方法设置 SYN cookie
  • TCP的连接释放------------四次握手-------1.服务端发送释放报文连接FIN=1,seq=u(报文段第一个字节的序号一般没有,为0)------------2.服务器返回一个确认报文,客户到服务器这个方向就关闭了(半关闭)ACK=1,seq=v,ack=u+1-----------------3.服务器发送连接释放报文FIN=1,ACK=1,seq=w,ack=u+1-----------------4.客户端回复确认 等待2MSL----最长报文段寿命后彻底关闭---万一对方没收到可以重传----ACK=1,seq=u+1,ack=w+1
  • TCP可靠传输-------校验---伪首部、序号、确认、重传
  • 网络层------------不可靠-----------最大努力交付----------------用tcp来保证----------如果用了UDP-------------只能应用层来保证可靠传输了---------------------实际发送用报文段来传输-------不是纯依靠字节流和序号
  • 确认----接收方返回确认报文---------也可以捎带着自己要发的信息-------序号写下次期待收到的----------如果456丢了,但是78到了,也会返回期待收到4号
  • 重传--------超时重传------RTTs---自适应算法---加权的平均往返时间------------可能会等太久了!!!----------冗余ACK----------发送方收到3个对于某个序号的冗余ACK---------认为报文丢失,重传此号报文-------------------快速重传
  • TCP流量控制-------让发送方慢点---------滑动窗口-------动态调整发送方的窗口大小----通过回传的确认报文段的窗口字段--------------发送窗口 选取------------接收窗口rwnd 拥塞窗口cwnd的最小值
  • TCP流量控制过程--------收到对方的0窗口通知,启动持续计时器--------持续计时器时间到就发送零窗口探测报文------------接收方收到给出现在的窗口值----------------如果再是0继续计时
  • TCP拥塞控制-------资源供应不足、全局性性能变差------------过多数据注入网络------------全局性
  • 拥塞控制4算法---------慢开始--拥塞避免--快重传--快恢复-----------拥塞窗口---发送方设置
  • 慢开始------开始设置cwnd=1,---------随后每次指数增加------一个往返时延RRT---传输伦次---------------------------指数 到 加法 增加---拥塞避免(线性增加)
  • 之前一旦遇到拥塞-----------设置新的门限值---ssthresh---发生拥塞时候大小的一半--------------------到了门限值就线性增大
  • 快重传------就是收到三个冗余ACK后直接重传那个报文
  • 快恢复------拥塞后不从慢开始开始,直接从新的门限值开始线性增加


🌸I could be bounded in a nutshell and count myself a king of infinite space.
 特别鸣谢:木芯工作室
特别鸣谢:木芯工作室 、Ivan from Russia


TCP------打电话----可靠有序、不丢不重复--------提供全双工-------------发送接收缓存----------面向字节流--------搬砖一样加个头运走

在这里插入图片描述
在这里插入图片描述

TCP首部格式-----源端口目的端口一共4B-------序号字段(报文第一个字节的序号)--------确认号(期待收到的内容的第一个字节的序号)-------以4B单位

在这里插入图片描述

数据偏移--------首部长度–4B为单位-------URG–urgent紧急位–有紧急情况可以插队处理(发送方)---------配合紧急指针字段使用----------确认位ACK=1有效----------建立连接后ACK必须为1---------PSH=1(接收端插队)------RST复位------TCP出现严重偏差必须释放连接—再重新连接-------------同步SYN=1—表明是一个请求/接受报文----------------终值位FIN----表明报文段发送方已经发完要求释放连接

在这里插入图片描述

窗口—表明接收窗口允许发送方发送的数据量----根据这个设置发送缓存------------检验和-----和IP报文一样—先加上12B的伪首部—计算完去除-------选项–额外的选项

在这里插入图片描述

TCP连接管理

在这里插入图片描述

TCP连接管理-----B/S方式-------

在这里插入图片描述

三次握手---------1.客户端发送连接请求报文段SYN=1,seq=x随机------------------------------2.服务器为TCP分配缓存和变量,并返回确认报文SYN=1,ACK=1,seq=y随机,ack=x+1(序号想收到的)------------------------3.客户端为TCP分配缓存和变量,返回确认SYN=0,ACK=1,seq=x+1,ack=y+1

在这里插入图片描述

SYN洪范攻击-------黑客发送第一个确认包-------服务器一直发送确认等待确认---------服务器也分配了缓存和变量--------导致服务器资源耗尽--------------------解决方法设置 SYN cookie

在这里插入图片描述

TCP的连接释放------------四次握手-------1.服务端发送释放报文连接FIN=1,seq=u(报文段第一个字节的序号一般没有,为0)------------2.服务器返回一个确认报文,客户到服务器这个方向就关闭了(半关闭)ACK=1,seq=v,ack=u+1-----------------3.服务器发送连接释放报文FIN=1,ACK=1,seq=w,ack=u+1-----------------4.客户端回复确认 等待2MSL----最长报文段寿命后彻底关闭—万一对方没收到可以重传----ACK=1,seq=u+1,ack=w+1

在这里插入图片描述
在这里插入图片描述

TCP可靠传输-------校验—伪首部、序号、确认、重传

在这里插入图片描述

网络层------------不可靠-----------最大努力交付----------------用tcp来保证----------如果用了UDP-------------只能应用层来保证可靠传输了---------------------实际发送用报文段来传输-------不是纯依靠字节流和序号

在这里插入图片描述

确认----接收方返回确认报文---------也可以捎带着自己要发的信息-------序号写下次期待收到的----------如果456丢了,但是78到了,也会返回期待收到4号

在这里插入图片描述

重传--------超时重传------RTTs—自适应算法—加权的平均往返时间------------可能会等太久了!!!----------冗余ACK----------发送方收到3个对于某个序号的冗余ACK---------认为报文丢失,重传此号报文-------------------快速重传

在这里插入图片描述

TCP流量控制-------让发送方慢点---------滑动窗口-------动态调整发送方的窗口大小----通过回传的确认报文段的窗口字段--------------发送窗口 选取------------接收窗口rwnd 拥塞窗口cwnd的最小值

-

TCP流量控制过程--------收到对方的0窗口通知,启动持续计时器--------持续计时器时间到就发送零窗口探测报文------------接收方收到给出现在的窗口值----------------如果再是0继续计时

在这里插入图片描述

TCP拥塞控制-------资源供应不足、全局性性能变差------------过多数据注入网络------------全局性

在这里插入图片描述

拥塞控制4算法---------慢开始–拥塞避免–快重传–快恢复-----------拥塞窗口—发送方设置

在这里插入图片描述

慢开始------开始设置cwnd=1,---------随后每次指数增加------一个往返时延RRT—传输伦次---------------------------指数 到 加法 增加—拥塞避免(线性增加)

在这里插入图片描述

之前一旦遇到拥塞-----------设置新的门限值—ssthresh—发生拥塞时候大小的一半--------------------到了门限值就线性增大

之前直接回到慢开始
在这里插入图片描述

快重传------就是收到三个冗余ACK后直接重传那个报文

快恢复------拥塞后不从慢开始开始,直接从新的门限值开始线性增加

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

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

相关文章

手机软件系统测试用例设计大全

一、 等价类分析法 二、 边界值分析 三、 错误猜测法 四、 判定表法 五、 流程分析方法 六、 正交试验设计法 七、 状态迁移法 等价类分析法等价类划分方法针对手机状态大致可以归几个大类: 按键类(等价法):有效输入和无效…

python在Keras中使用LSTM解决序列问题

时间序列预测是指我们必须根据时间相关的输入来预测结果的问题类型。时间序列数据的典型示例是股市数据,其中股价随时间变化。 最近我们被客户要求撰写关于LSTM的研究报告,包括一些图形和统计输出。 递归神经网络(RNN)已被证明可…

D-026 LVDS硬件电路设计

LVDS硬件接口电路设计1 简介2 硬件设计实战3 硬件设计要点4 Layout注意事项5 MIPI与LVDS的区别1 简介 LVDS(Low-Voltage Differential Singnaling,低电压差分信号)可以实现点对点或者一点对多点的连接,具有低功耗、低误码率、低串…

蓝桥杯比赛 NOC竞赛C++项目,选择题真题和模拟题汇总答案解析

题目来源:第10届蓝桥杯青少年组C选拔赛 1、下面哪个密码最安全 D A. 111111 B. 123456 C. qwerty D. Z2a8Q1 2、如果今天是星期六,再过60天是星期几?A A. 星期三 B. 星期四 C. 星期五 D. 星期六 3、90到100之间有几个素数&#xff1f…

HTML学生作业网页 传统端午节节日 学生节日网页设计作业源码(HTML+CSS+JS)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Android Studio的ADV无法启动解决办法【IDEA 的ADV无法启动解决办法】

Android Studio的ADV无法启动解决办法【IDEA 的ADV无法启动解决办法】 开发者指南:https://developer.android.google.cn/guide 一、BIOS开启Intel VT-x 这一步如果在创建Android项目时,可以启动的话,证明已经开启了,可以忽略 1. 开始菜单&am…

新鲜出炉!阿里内部开源SpringCloud Alibaba全解(全彩版)全网首发

第一章微服务介绍 第二章微服务环境搭建 第三章Nacos Discovery–服务治理 自定义实现负载均衡 第四章Sentinel–服务容错 第五章Gateway–服务网关 Gateway核心架构 第六章Sleuth-链路追踪 ![新鲜出炉!阿里内部开源SpringCloud Alibaba全解(全彩版&…

基于OpenLayers实现导航地图上(起/终)点的交互式图标显示

目录 1、准备 2、瓦片地图显示 3、增加矢量图层 4、利用click实现鼠标点击效果 在常见的导航软件中,往往都存在标记起/止点的需求。毕竟路径规划中的重要传入参数就是起止点坐标。在常用的不管是移动端还是PC端,导航地图上一般在选择起止点位置会留…

大数据 | Spark安装及测试

一、安装 Spark On Yarn 在公司中,通常采用Yarn进行资源调度,故此处采用Yarn模式的集群部署。 采用Yarn部署模式时,需要保证集群中已经安装好Hadoop集群,在此基础上才能实现Yarn模式的部署。 在Yarn模式中,Spark应用…

Python学习-8.2.1 库(jieba库的基础与实例-中文分词库)

jieba库的安装见上篇:Python学习-8.库(第三方库介绍与下载安装) jieba库概述 由于中文文本中的单词不像英文那样,并不是根据空格或者标点符号进行分割的,而是存在一个重要的分词问题。因此引入了jieba库。 分词原理&…

chrome Google无法翻译?腾讯已经出手了,一劳永逸!

谷歌翻译中国版和谷歌地图中国版同时停服,此次停服也影响到谷歌浏览器翻译功能的使用。谷歌给出的官方回应是谷歌翻译和谷歌地图的中国版使用率都太低,既然使用率太低那直接停服也情有可原(笑笑)。 只是谷歌浏览器内置的翻译功能…

前端开发:JS中使用到的贪心算法场景

前言 在前端开发过程中,除了一般的逻辑使用之外,也会涉及到算法相关的知识,比如冒泡排序、数组去重/合并、贪心算法、八皇后算法等等,这些都是比较常用的前端算法相关的知识点。关于前端实际开发中用到的算法,虽然没有…

Studio Controls COM 64 for MFC 组合套件-dbi-tech

dbi-tech Studio Controls COM 64 - 新功能... Studio 控制 COM 64 位 v6.0 ctxCalendar - (v4.0.0.0) DBI Technologies Inc. 是一家创新的商业软件开发公司,专注于为应用程序开发人员提供最佳的端到端供应链可见性组件软件。DBI 以其屡获殊荣的组件软件产品和服务…

华为机试_HJ62 查找输入整数二进制中1的个数【简单】【收藏】

目录 描述 输入描述: 输出描述: 解题过程 提交代码一(常规方法) 提交代码二(位运算方法) 学习代码 代码一 代码二 收藏点 描述 输入一个正整数,计算它在二进制下的1的个数。 注意多…

kubernetes学习之路--基础概念以及搭建

写在前面:代码审计太难了,不想学了摆烂了,开始学云安全了。。。。 一.云介绍 云分类:公有云、私有云、混合云 云有三种服务模式:Laas、Paas 和 Saas Laas:基础设施即服务(Infrastructure-as…

[附源码]计算机毕业设计酒店客房管理信息系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Git版本控制器

文章目录1.Git介绍1.1.什么是Git?1.2.Git的历史1.3.版本控制分类1.3.1.集中式版本控制1.3.2.分布式版本控制1.4.Github(Git服务器)1.5.Git原理2.使用前的准备2.1.准备Git2.1.1.安装Git2.1.2.配置环境变量2.1.3.IEDA配置Git2.1.4.安装git插件&#xff08…

java面向对象 final static 关键字

目录 关键字:static 类属性、类方法的设计思想 类变量(class Variable) 静态变量的内存解析 类方法(class method) 单例 (Singleton)设计模式 理解main方法的语法 代码块 关键字:final 总结 关键字:static 当我们编写一个类时&…

Vue.js设计与实现,读书笔记第一章

第一章:权衡的艺术 1.1命令式和声明式 jq是命令式,关注过程,jq针对简化dom 而产生的 vue是 声明式,关注实现,不严格地说就像是在命令式(关注过程)基础上再对标签进行了一次封装(关注实现) jQuery命令式…

干货 | Jmeter 如何保证抢购、秒杀活动正常运行?

1. 前言 平常为了保证运营促销、抽奖活动能正常运行,我们一般都需要使用 Jmeter、LoadRunner 对接口进行压力测试 使用它可以模拟一定量的用户同时去参与促销抽奖活动,最后生成测试报告,以此判系统接口的稳定性 本篇文章以抢购商品为例&am…