计网笔记--运输层(vital)

目录

1--运输层概述

2--端口号、复用与分用的概念

3--UDP和TCP的对比

4--TCP的流量控制

5--TCP的拥塞控制

6--TCP超时重传时间的选择

7--TCP可靠传输的实现

8--TCP的连接建立

9--TCP的连接释放

10--TCP报文段的首部格式


1--运输层概述

运输层的任务:

        为运行在不同主机上的应用进程提供直接的通信服务;

运输层为应用层提供了两种不同的运输协议:

        面向连接的 TCP 和无连接的 UDP 协议;

2--端口号、复用与分用的概念

端口号:

        端口号用于区分应用层的不同应用进程

        端口号只具有本地意义,用于标识本计算机应用层中的各进程

        复用是针对发送方的,分用是针对接收方的;

        复用可以细分为 UDP 复用TCP 复用,UDP 和 TCP 在协议字段上不同,即 UDP 的协议字段是 17,TCP 的协议字段是 6

        分用也可以细分为 UDP 分用TCP 分用,协议字段也分别为 17 和 6;

应用层中,RIPDNSTFTPSNMPDHCP 等协议在运输层中使用 UDP 协议;

应用层中,SMTPFTPBGPHTTPHTTPS 等协议在运输层中使用 TCP 协议;

3--UDP和TCP的对比

UDP:全称是用户数据包协议(User Datagram Protocol);

TCP:全称是传输控制协议(Transmission Control Protocol);

UDP 协议TCP 协议具有以下不同:

① UDP 是无连接的,TCP是面向连接的:

        UDP 随时可以发送数据,无需建立连接;

        TCP 发送数据需要通信双方建立连接释放连接,其中需要三次握手建立连接四次挥手释放连接

② UDP 支持单播、多播、广播等方式,TCP 仅支持单播;

③ UDP 协议面向应用报文,TCP 协议面向字节流

④ UDP 协议是不可靠的,TCP 协议是可靠的;

        UDP 向上层提供无连接不可靠传输服务,会发生丢失、误码等情况,适用于视频会议等实时应用

        TCP 向上层提供面向连接的可靠传输服务,不会发送丢失、误码等情况,适用于文件传输等要求可靠传输的应用

⑤ UDP 首部仅 8 字节,TCP 首部最小 20 字节,最大 60 字节;

4--TCP的流量控制

        TCP 协议的接收方利用滑动窗口机制可以实现对发送方的流量控制

         TCP 协议通过滑动窗口机制、超时重传机制和接收方的接收窗口大小严格控制发送方的发送数据;

        TCP 协议规定,当接收方的接收窗口调整为 0 时,发送方的发送窗口会被调控为 0,同时发送方会启动持续计时器;

        持续计时器超时时,发送方会发送零窗口探测报文,探测接收方最新的接收窗口,并相应地调控发送方自己的发送窗口;

5--TCP的拥塞控制

        TCP 协议通过慢开始拥塞避免快重传快恢复等方法实现拥塞控制;

① 慢开始:

        慢开始算法在门限 ssthresh 前,拥塞窗口(发送方的发送窗口)每次增加上一次发送的拥塞窗口大小(1→2→4→8→16);

② 拥塞避免:

        拥塞避免算法发生在门限 ssthresh 后,拥塞窗口(发送方的发送窗口)每次线性增加1

        当重传计时器超时时(认为发生了拥塞),门限 ssthresh 会更新为发生拥塞时拥塞窗口的一半,同时拥塞窗口会减少为1,重新开始执行慢开始算法;

③ 快重传:

        当发送方收到 3 个连续的重复确认后,发送方会立即将相应的报文段重传;

④ 快恢复:

        当收到 3 个重复确认时(快重传),TCP协议会将门限 ssthresh 更新为当前拥塞窗口的一半,同时拥塞窗口也更新为 ssthresh 的值,即去除了慢开始阶段,直接快速从拥塞避免阶段开始发送数据

6--TCP超时重传时间的选择

7--TCP可靠传输的实现

        TCP 协议基于以字节为单位的滑动窗口来实现可靠传输;

        只有发送方收到接收方的 ACK 确认信号(且是某一个字节前所有字节都收到ACK信号),发送方的发送窗口才能向前滑动;

8--TCP的连接建立

TCP 协议使用三报文握手建立连接:

        客户发送 TCP 连接请求(第一次握手);

        服务器发送针对 TCP 连接请求的确认(第二次握手);

        客户发送针对 TCP 连接请求的确认的确认(第三次握手);

       

        第三次握手可以防止已失效的连接请求报文段突然传送到 TCP 服务器,导致 TCP 服务器处于数据接收阶段的错误;

9--TCP的连接释放

TCP 协议使用四报文挥手释放连接:

        客户发送 TCP 连接释放(第一次挥手);

        服务器发送 TCP 普通确认(第二次挥手);

        服务器发送 TCP 连接释放(第三次挥手);

        客户发送 TCP 普通确认(第四次挥手);

客户进行第四次挥手后,处于时间等待状态(持续 2MSL),可以防止由于第四次挥手信号丢失,导致服务器处于最后确认阶段的问题;

10--TCP报文段的首部格式

        一个 TCP 报文段由首部数据载荷两部分构成,TCP 的全部功能体现在首部中各个字段的作用

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

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

相关文章

Yalmip工具箱使用教程(1)-入门学习

博客中所有内容均来源于自己学习过程中积累的经验以及对yalmip官方文档的翻译:YALMIP 1.Yalmip工具箱的下载与安装 1.1下载 Yalmip的作者是Johan Lfberg,是由Matlab平台编程实现的一个免费开源数学优化工具箱,在官网上就可以下载。官方下载…

cmake 提前结束处理命令: return

有时候,我们有这样的需求,当处理到某个地方的时候,后面的我们都不想处理或者不需要处理的时候,就可以提前结束当前的处理逻辑,回到父级去处理.在C/C中,我们有break关键字跳出当前循环,continue关键字进入下一次循环,return关键字返回当前处理的函数. cmake也提供了break(),con…

场景图生成——RelTR训练自己的数据集

RelTR训练自己的数据集 省流量省时间版本框的标注关系的标注总的 前言Open Images V6的标注格式RelTR中使用的Open Images V6的数据标注格式具体步骤框的标注生成格式关系三元组的生成格式 结束语参考链接 省流量省时间版本 框的标注 共需要创建4个json标注文件 train.json, …

本地部署 Stable Diffusion XL Gradio Demo WebUI

StableDiffusion XL Gradio Demo WebUI 0. 先展示几张 StableDiffusion XL 生成的图片1. 什么是 Stable Diffusion XL Gradio Demo WebUI2. Github 地址3. 安装 Miniconda34. 创建虚拟环境5. 安装 Stable Diffusion XL Gradio Demo WebUI6. 启动 Stable Diffusion XL Gradio De…

洛谷:P5016 龙虎斗 ← NOIP2018 普及组T2

【题目来源】https://www.luogu.com.cn/problem/P5016【题目描述】 轩轩和凯凯正在玩一款叫《龙虎斗》的游戏,游戏的棋盘是一条线段,线段上有 n 个兵营(自左至右编号 1∼n),相邻编号的兵营之间相隔 1 厘米,…

Learning Spatial and Spatio-Temporal Pixel

Learning Deformable Kernels for Image and Video Denoising 作者: Xiangyu Xu 商汤科技SenseTime Research 论文思想:一是将传统的双边滤波算法与CNN结合起来,二是用变形卷积来做多帧对齐的问题,三还是在raw上进行处理的。 …

Zookeeper集群 + Kafka集群 + Filebeat + ELK

目录 一:Zookeeper 概述 1、Zookeeper 定义 2、Zookeeper 工作机制 3、Zookeeper 特点 4、 Zookeeper 数据结构 5、 Zookeeper 应用场景 6、 Zookeeper 选举机制 (1)第一次启动选举机制 (2)非第一次启动选举机制…

JMeter 如何模拟不同的网络速度

目录 前言: 限制输出带宽以模拟不同的网络速度 将这两行添加到user.properties文件中(可以在JMeter安装的bin文件夹中找到此行) 通过-J 命令行参数传递属性的值,如下所示: 前言: JMeter可以通过使用不同…

【mysql】—— 数据库的操作

序言: 在上篇文章我已经对数据库进行了详细的介绍,接下来我们就将上手学习操作的细节了。本篇文章便带领大家去学习有关库操作的基本知识!!! 目录 (一)库的操作 1、 创建数据库 2、字符集和…

【深度学习笔记】训练 / 验证 / 测试集

本专栏是网易云课堂人工智能课程《神经网络与深度学习》的学习笔记,视频由网易云课堂与 deeplearning.ai 联合出品,主讲人是吴恩达 Andrew Ng 教授。感兴趣的网友可以观看网易云课堂的视频进行深入学习,视频的链接如下: 神经网络和…

基于物联网技术的养老院管理系统设计与实现_kai

基于物联网技术的养老院管理系统设计与 实现 摘 要 随着我国老年人口数量的逐年增加,人口抚养比也在迅速攀升,越来越多的老年人将走 出家门进入养老院安度自己的晚年。同时国家和地方也相继出台了加快发展老龄事业的政策 方针,作为机构养老…

第三方api对接怎么做?淘宝1688api接口怎么对接?

在今天的互联网上,第三方API对接是必不可少的。这种技术将不同的应用程序/服务连接在一起,创造了无限的可能性。 第三方api对接怎么做? 1、与支付公司签约 首先,通过正规的渠道,如支付公司官网或正规服务商&#xf…