TCP-IP 知识汇总

开放式系统互联模型------国际化标准组织ISO提出----协议组(协议模型)

应用层:接收用户数据,人机交互的接口

表示层:将编码转换为二进制(加密、解密)---统一格式

会话层:针对传输的每一种数据建立一条连接(防止不同数据之间相互干扰)

控制层面:上三层 数据层面:下四层

传输层:区分流量、定义数据传输方式;TCP、UDP

网络层:通过IP地址进行逻辑寻址

数据链路层:通过MAC地址进行物理寻址

LLC----逻辑链路控制层 MAC----介质访问控制层

物理层:定义协议物理特性(电压、电气、接口规范);传输比特流

补充:

PDU:传输数据单元

上三层----数据

传输层----数据段

网络层----数据包

数据链路层-数据帧

物理层----比特流

TCP协议----传输控制协议 是一种面向连接的可靠性协议

确认序列号:
1,该确认序列号表示接收方期望收到发送方发送到下一个字节的序号

2,表示接收方已收到该确认序列号之前的所有字节

窗口值:
指发送方可以不需要接受确认报文,就可以连续发送的最大数据量

选项字段:MSS,时间戳,选择确认机制,窗口因子

TCP的确认机制被称为累计确认

确认位ACK:当ACK=1时,确认序列号字段有意义。在TCP连接建立后,所有传输的报文段都必须将ACK置为1。

同步位SYN:代表连接请求

终止位FIN:表明此报文段发送方数据已全部发送完毕,要求释放连接

复位RST:表明TCP连接出现严重错误,必须释放连接,并重新建立新的传输连接。

紧急位URG:当URG=1时,表明此报文中存在紧急处理的数据,是高优先级数据,应尽快交付应用程序处理。与紧急指针配合使用。

推送位PSH:接收方应尽快交付接收应用进程,不再等待缓冲区填满在向上交付。

TCP的可靠性机制

排序机制

MTU:最大传输单元------包含数据部分、传输层头部、网络层头部----以太网中默认为1500字节

MSS:最大传输段------仅包含数据部分

重传机制:

RTT:往返时间

RTO:超时重传时间

RTO时间是动态变化的时间。会进行超时间隔时间加倍。

     客户端通过服务端的反馈信息从而进行数据重传的方式被称为快速重传机制,此时的重传并非是因为RTO时间到达而触发,而是因为客户端连续接收到3个冗余ACK报文。快速重传机制会在RTO定时器超时之前重传报文段,从而解决超时重传时间加倍导致的延迟增大问题。

​   为了加快重传效率,将累积确认机制修改为SACK机制(选择确认机制),在TCP首部中的选项内容中携带未收到的数据字段,从而引发客户端重传。

TCP流量控制协议

接收方会在连接建立之前创建一个接收缓存,用以存放发送方发送的数据。而窗口大小在最初等于接收缓存大小。之后,窗口大小等于缓存大小减去已存在缓存中的数据量

(rwnd---接收窗口大小)

发送方根据每一次接收到的确认报文中的窗口字段,及时调整发送缓存大小,确保发送缓存用于小于等于窗口值

TCP连接管理

    TCP存在一个保活计时器,该计时器2小时时间。若该计时器时间内没有收到任何客户端的数据,服务端会发送一个探测报文段,并每隔75秒发送一次。若连续发送10个探测报文仍没有反应,则服务器认为客户端出现故障,关闭连接。

TCP连接的释放

1、是为了释放在之前分配给TCP进程的资源
2、本地所有数据已传输完毕

TCP分段

TCP协议封装的数据不允许在IP层面进行分片操作。

MSS(最大传输段)= MTU-IP头部-TCP头部

PMTU---路径MTU发现协议

三次握手,四次挥手

谁先发报文谁是客户端

分析:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker进阶:离线安装docker社区版(docker-18.06.3-ce)

Docker进阶:离线安装docker社区版(docker-18.06.3-ce) 1、准备离线安装所需的文件2、传输文件至目标Linux系统3、卸载旧版Docker4、离线安装Docker1、解压上传的Docker安装包2、拷贝文件到/usr/bin目录3、将 Docker 注册为系统服务4、重新加载…

linux 使用docker安装 postgres 教程,踩坑实践

linux 使用docker安装 postgres 教程 踩坑实践,安装好了不能远程访问。 防火墙已关闭、postgres 配置了允许所有ip 访问、网络是通的。端口也是开放的,就是不能用数据库链接工具访问。 最后发现是云服务器端口没开 ,将其打开 到这一步完全正确了,但是…

如何培养员工应用六西格玛解决问题的能力?

近年来,为了提高工作效率和产品质量,许多企业开始引入六西格玛管理方法。然而,仅仅引入六西格玛并不足以确保成功,培养员工应用六西格玛解决问题的能力才是关键。那么,如何培养员工应用六西格玛解决问题的能力呢&#…

【强化学习】安装gym==0.18.3报错的解决方法

安装gym0.18.3报错的解决方法 Collecting gym0.18.3 Using cached gym-0.18.3.tar.gz (1.6 MB) Preparing metadata (setup.py) … error error: subprocess-exited-with-error python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> [1 lines of o…

Linux查看进程的一些方法

ps ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些…

第111讲:Mycat实践指南:固定Hash算法分片下的水平分表详解

文章目录 1.固定Hash算法分片的概念1.1.固定Hash算法的概念1.2.固定Hash算法是如何将数据路由到分片节点的 2.使用固定Hash算法分片对某张表进行水平拆分2.1.在所有的分片节点中创建表结构2.2.配置Mycat实现固定Hash算法分片的水平分表2.2.1.配置Schema配置文件2.2.2.配置Rule分…

微信开发者工具如何使用?使用注意事项

(1)单位如何进行换算? 1 px 750/屏幕宽度 rpx 1 rpx 屏幕宽度/750 px (2)如何新建文件? 1> 点开app.json 2> 在“pages/index/index”后面接“,pages/自定义文件夹名/自定义文件名”…

FPGA 学习需要哪些东西?

FPGA 学习需要哪些东西? 三样东西:第一就是完整的理论,第二一套开发板,第三可练手的项目 第一,一套完整的课程, 这个课程必须是紧跟技术发展的,适应市场的,这样不至于学完后发现太…

开源Ai对话系统(MNAi)系统

支持对接gpt,阿里云,腾讯云/chatGPT源码/AI绘画系统/AI创作系统/AI写作系统 具体看截图 后端环境:PHP7.4MySQL5.6 软件:uniapp 部署教程请看源码内的【使用教程】文档 源码免费下载地址抄笔记 chaobiji.cn

【计算机网络篇】物理层(3)编码与调制

文章目录 🍔编码与调试⭐基本概念 🍔基本的带通调制方法和混合调制方法⭐基本的带通调制方法⭐混合调制方法 🍔编码与调试 物理层是OSI模型中的第一层,它负责在物理媒体上传输原始比特流。在物理层的编码和调试中,我们…

leetcode106从中序与后序遍历序列构造二叉树

目录 1.解题关键2.思路3.变量名缩写与英文单词对应关系4.算法思路图解5.代码 本文针对原链接题解的比较晦涩的地方重新进行说明解释 原题解链接:https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/solutions/50561/tu-jie-…

3D Tiles语义分割流水线

Dylan Chua 和 Anne Lee 开发了一个处理管线,用于对 3D Tiles 中包含的 GL 传输格式 (glTF) 模型进行语义分割。 该管道读取并遍历 3D Tileset,以输出包含元数据的经过转换的划分对象集。 该项目为 3D 语义分割器提供了最小可行产品,作为各种…

STM32CubeIDE基础学习-BEEP蜂鸣器实验

STM32CubeIDE基础学习-BEEP蜂鸣器实验 文章目录 STM32CubeIDE基础学习-BEEP蜂鸣器实验前言第1章 硬件介绍第2章 工程配置2.1 工程外设配置部分2.2 生成工程代码部分 第3章 代码编写第4章 实验现象总结 前言 前面学习了LED闪烁实验,现在来学习一下蜂鸣器发声实验&am…

JVM工作原理与实战(四十四):JVM常见面试题目

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、JVM常见面试题目 1.有哪些常用的垃圾回收器? 2.什么是内存泄漏,如何解决内存泄漏问题? 3.请列举并简要描述一些常用的JVM工具及其主要功能。 …

用python写网络爬虫:3.urllib库进一步的使用方法

文章目录 异常处理URLErrorHTTPError设置超时时间 链接的解析、构造、合并urlparse方法urlsplit方法urljoin方法urlencode方法parse_qs方法quote方法 Robots 协议Robots 协议的结构解析协议 参考书籍 在上一篇文章:用python写网络爬虫:2.urllib库的基本用…

Nginx底层基础数据结构

基础数据结构 ngx_int_t 32位操作系统4字节,64位操作系统8字节 解决跨平台以及,普通int类型在x86和x64操作系统上面是4字节,在类型转换时造成内存浪费(如在x64下面转换long类型) typedef intptr_t ngx_int_t;#ifdef _WIN64 typedef __int64 intptr_t; #else typedef _…

Canal实现mysql与缓存同步

什么是Canal Canal是阿里巴巴旗下的一款开源项目, 基于java开发. Canal是基于mysql的主从同步来实现的. github地址: https://github.com/alibaba/canal Canal把自己伪装成MySQL的一个slave节点, 从而监听master的binary log变化. 再把得到的变化信息通知给Canal的客户端, 进而…

vue3 element plus 上传下载

文章目录 上传下载 上传 /* html */ <el-upload v-model"fileId" class"avatar-uploader" ref"exampleUploadRef" :file-list"fileList" :show-file-list"false" action"/ys-three-year/ThreeReport/uploadFile&q…

Python从0到100(五):Python分支结构和循环结构

一、分支结构&#xff1a; Python中的分支结构和循环结构是编写程序时常用的控制结构。在Python中&#xff0c;分支结构通过if、elif和else关键字来实现条件判断。在使用if语句时&#xff0c;程序会根据条件表达式的真假执行相应的代码块。 if condition1:# 如果条件1为真&am…

YOLOv5改进 | 图像去雾 | 利用图像去雾网络UnfogNet辅助YOLOv5进行图像去雾检测(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是利用UnfogNet超轻量化图像去雾网络,我将该网络结合YOLOv5针对图像进行去雾检测(也适用于一些模糊场景),我将该网络结构和YOLOv5的网络进行结合同时该网络的结构的参数量非常的小,我们将其添加到模型里增加的计算量和参数量基本可…