计算机网络:运输层

news2024/10/7 0:10:04

运输层

运输层主要解决了应用进程之间的通信,称之为端到端协议

1.运输层概述

image-20221018171237220

计算机网-------络体系结构的角度

image-20221018171513745

image-20221018171644385

AP:应用进程之间的简称

2. 运输层端口号、复用与分用的概念

2.1 端口号

image-20221018172316002

2.2 发送方的复用(multiplexing)和接收方的分用(demultiplexing)

  • 复用

**UDP复用:**发送发某些应用进程发送的应用报文使用UDP进行封装

**TCP复用:**发送发某些应用进程发送的应用报文使用TCP进行封装

image-20221018172739294 image-20221018172815989
  • TCP/IP体系的应用层常用的运输层端口号

image-20221018173108667

3. TCP/UDP

  • TCP和UDP是TCP/IP体系结构运输层中两个重要协议

  • UDP协议(发短信协议)

    • 可以随时发送数据

    • UDP支持一对一,一对多通信

    • UDP是面向应用报文的(对应用报文不拆分)

      image-20221018174221350
    • UDP提供不可靠传输服务

    • 首部开销小:8字节

      image-20221018174926825
  • TCP协议(打电话协议)

    • 发送数据前 必须使用“三次握手”,结束后“四次挥手”

    • TCP仅支持一对一通信

    • TCP是面向字节流的(对应用报文拆分成字节形式)

      image-20221018174429904
    • TCP提供可靠传输服务

    • 首部开销大20~60字节

      image-20221018174948822

4. TCP的流量控制(flow control)

前言:如果发送方发送数据过快,接收方就可能来不及接收

  • 流量控制:让发送方发送速率不要太快
  • 利用滑动窗口机制可以实现对发送方的流量控制

例:

image-20221018180029921

rwnd=0可能会出现死锁情况,所以在收到rwnd=0时需要启动一个接收计时器(超时后发送窗口探测报文)

下面为下述情况举例:

image-20221018180242862

5. TCP的拥塞控制(congestion control)

  • 拥塞:网络中某一资源的需求超过了该资源所能提供的可用部分

  • 若出现拥塞而不进行控制,整个网络吞吐量将随着负载的增大而下降

image-20221018195511775

cwnd:拥塞窗口

swnd:发送窗口

ssthresh:慢开始门限

image-20221018200130626

5.1 TCP的拥塞控制算法——慢开始

image-20221018200548636

初始拥塞窗口是1,慢开始门限是16

经过确认后cwnd每轮自加

image-20221018200826677

image-20221018201025292

5.2 TCP的拥塞控制算法——拥塞避免

  • 经过确认后cwnd每轮加1

image-20221018201049671

  • 直到增的大到报文段在传输时丢失,判断网络可能出现拥塞

image-20221018201253816

总共折线图

image-20221018202353962

5.3 TCP的拥塞控制算法——快重传

有时个别报文段会在网络中丢失,但实际上网络并未发生拥塞(会降低效率)

快重传算法可以让发送方早知道个别报文段的丢失,尽快进行重传

image-20221018202901376

例子解释:

image-20221018202953805

5.4 TCP的拥塞控制算法——快恢复

image-20221018203248669

综合例题:

image-20221018203901010

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

RTO:超时重传时间

RTT:报文段往返时间

为了使用效率,RTO的值应该略大于RTT的值

image-20221018205156122

加权平均往返时间算法:

image-20221018210000510

RTT偏差的加权平均:

image-20221018210022359

RTO算法:

image-20221018210143954

tips:

如果出现超时重传,就把超时重传时间(RTO)增大一些(两倍)

image-20221018210914021

7. TCP可靠传输的实现

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

    • 发送窗口

    image-20221019195005831

    image-20221019200151446
    • 接收窗口

    image-20221019195642921

    image-20221019200800152

例:

image-20221019202433287

8. TCP的运输连接管理

  • TCP运输连接由三个阶段
    • 建立TCP连接(三次握手)
    • 数据传送
    • 释放TCP连接(四次挥手)

8.1 TCP的连接建立

TCP客户:TCP连接的发起者

TCP服务器:被动等待的进程

image-20221019222913035

注:

同步位SYN=1时,发送的报文段不能携带数据

下一步的确认字段ACK=上一步的序号字段seq+1

8.2 TCP的连接释放

image-20221019224251262

如果不进行等待可能会导致服务器端无法关闭

对于连接异常的探测机制:保活计时器

image-20221019224708353

9. TCP报文段的首部格式

  • 一个TCP报文段由首部数据载荷两部分组成

    image-20221020173427113

  • TCP的全部功能都体现在它首部中各字段的作用

    image-20221020174234606

    image-20221020174346526

    image-20221020174431710

    image-20221020174504694

    image-20221020174519642

    image-20221020174702228

    举例

    如果数据偏移值=0101,则首部为20字节
    20 = ( 0101 ) 2 ∗ 4 字 节 20=(0101)_2*4字节 20=(0101)24

    image-20221020175815970

    image-20221020175837530

    image-20221020175855550

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

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

相关文章

【Java面试八股文宝典之基础篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day10

大家好,我是陶然同学,软件工程大三明年实习。认识我的朋友们知道,我是科班出身,学的还行,但是对面试掌握不够,所以我将用这100多天更新Java面试题🙃🙃。 不敢苟同,相信大…

锐捷RLDP理论及实验讲解

RLDP概念 RLDP(Rapid Link Detection Protocol)是一个用于快速检测以太网链路故障的链路协议,包括环路链路故障、单向链路故障、双向链路故障等 工作原理 RLDP定义了两种协议报文:探测报文(Probe)和探测响…

【Java第32期】:Spring 中普通Maven项目的创建

作者:有只小猪飞走啦 博客地址:https://blog.csdn.net/m0_62262008?typeblog 内容:Spring 中普通Maven项目的创建 文章目录前言一,创建Spring项目1.创建一个普通的Maven项目2,添加Spring框架3,添加启动类…

【数据库系统概论】关系数据理论、范式

数据库一二三范式简单解释 第一范式 一个关系模式应当是一个五元组。 R(U,D,DOM,F)R(U,D,DOM,F)R(U,D,DOM,F) 这里: 关系名RRR是符号化的元组语义UUU为一组属性DDD为属性组UUU中的属性所来自的域DOMDOMDOM为属性到域的映射FFF为属性组UUU上的一组数据依赖 由于D…

RabbitMQ_概述

RabbitMQ大致工作流程图 解释 Producer:生产者 Consumer:消费者 Connection:AMQP协议连接 Channel:信道,进行消息读写的通道,RabbitMQ的绝大部分操作在信道完成;客户端可以建立多个信道&…

用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (4)- 自定义功能块(上)

AWPLC 目前还处于开发阶段的早期,写这个系列文章的目的,除了用来验证目前所做的工作外,还希望得到大家的指点和反馈。如果您有任何疑问和建议,请在评论区留言。 1. 背景 AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源…

PTA题目 两个数的简单计算器

本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。 输入格式: 输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数…

跟艾文学编程《Python基础》(7)pandas数据分析

作者: 艾文,计算机硕士学位,企业内训讲师和金牌面试官,公司资深算法专家,现就职BAT一线大厂。邮箱: 1121025745qq.com博客:https://wenjie.blog.csdn.net/内容:跟艾文学编程《Python…

汉字风格迁移篇---W-net:基于深度神经网络的一次任意风格汉字生成

文章目录一、摘要二、提出原因已有的一些模型解决方案依然存在的限制三、介绍与创新四、模型介绍预处理w-net结构优化策略和损失函数五、实验实验设置用zi2zi作为基线具体实现1、 W-Net训练期间的超参数设置如下:2、一些细节处理模型评估W-net、zi2zi-v1、zi2zi-v2不…

第2-3-7章 个人网盘服务接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

文章目录5.8 导入其他接口代码5.8.1 接口导入-分页查询附件5.8.2 接口导入-根据业务类型/业务id查询附件5.9 导入网盘服务接口5.9.1 导入FileController5.9.2 导入StatisticsController5.9.3 导入FileRestManager5.9.4 导入FileService5.9.5 导入FileServiceImpl5.9.6 扩展File…

面向OLAP的列式存储DBMS-8-[ClickHouse]的常用聚合函数

ClickHouse 中的常用聚合函数 1 聚合函数 ClickHouse 中的聚合函数,因为和关系型数据库的相似性,本来聚合函数不打算说的,但是 ClickHouse 提供了很多关系型数据库中没有的函数,所以我们还是从头了解一下。 1.1 count count&…

Vue3 用src动态引入本地图片

💭💭 ✨: Vue3 用src动态引入本地图片   💟:东非不开森的主页   💜: 躲起来的星星也在努力发光 你也要💜💜   🌸: 如有错误或不足之处,希望可以指正&#…

Qt OpenGL(二十二)——Qt OpenGL 核心模式-VAO和VBO

Qt OpenGL(二十二)——Qt OpenGL 核心模式-VAO和VBO 一、再谈VAO、VBO 上一篇文章,通过VAO、VBO绘制了一个三角形,过程需要创建VAO、VBO和释放。之所以有这些步骤,就是因为OpenGL本质就是一个大的状态机。但是我们如果要继续学习核心模式的OpenGL的话,VAO、VBO是我们必…

Java集合(一):泛型与Collection集合

目录 集合预热:泛型 泛型的优点 自定义泛型类型 自定义泛型类/接口 泛型使用细节 自定义泛型方法 泛型与继承关系 不存在继承关系的情况 通配符与存在继承关系的情况 泛型受限 集合概述 集合的作用与存储内容 集合与数据结构 集合:Collectio…

【基础算法系列】离散化与前缀和算法的运用

⭐️前面的话⭐️ 本篇文章将主要介绍离散化算法,所谓离散化算法,就是将一个无限区间上散点的数,在不改变相对大小的情况下,映射到一个较小的区间当中,然后对这个较小的区间进行操作的过程就是离散化的过程&#xff0…

【C++笔试强训】第二十八天

🎇C笔试强训 博客主页:一起去看日落吗分享博主的C刷题日常,大家一起学习博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。 💦&a…

微信小程序自定义tabBar(实操)

文章目录一、前言二、固定效果图实现步骤实现步骤完整代码-矢量图images图片app.json代码三、自定义效果图实现步骤实现步骤完整代码-矢量图images图片app.json代码custom-tab-bar下的代码使用自定义TaBar一、前言 一般使用tabBar的样式,固定不能改变。如下固定效果…

java计算机毕业设计springboot+vue村委会管理系统

项目介绍 本村委会管理系统是针对目前村委会管理的实际需求,从实际工作出发,对过去的村委会管理系统存在的问题进行分析,完善用户的使用体会。采用计算机系统来管理信息,取代人工管理模式,查询便利,信息准确率高,节省了开支,提高了工作的效率。 本系统结合计算机系统的结构、概…

DPDK-A3: KVM使用SRIOV和虚机使用DPDK

虚拟机基本管理 如下命令可以修改默认网段 sudo virsh net-edit --network default<network><name>default</name><uuid>45ed012c-3933-4f3e-9575-b37bffa21b83</uuid><forward modenat/><bridge namevirbr0 stpon delay0/><ma…

解决javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V异常

文章目录异常&#xff1a;不同jar包的多xml解析器冲突解决其他异常&#xff1a; java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)可能原因&#xff1a; 在本地WINDOWS编译测试没问题&#xff0c;只在LINUX服务器上面…