【计网 传输层概述】 中科大郑烇老师笔记 (十)

目录

  • 0 引言
  • 1 概述
    • 1.1 传输服务和协议
    • 1.2 传输层 vs 网络层
    • 1.3 Internet传输层协议 TCP和UDP
  • 2 多路复用、解复用
    • 2.1 UDP的多路复用
    • 2.2 TCP的多路复用
  • 3 UDP
    • 3.1 概述
    • 3.2 UDP报文段
    • 3.3 拓展:TCP报文段

请添加图片描述

  • 🙋‍♂️ 作者:海码007
  • 📜 专栏:计算机四大基础专栏
  • 📜 其他章节:网络快速入门系列、计网概述、计网应用层详解、计网Web和HTTP、计网FTP、计网EMail、计网DNS、计网P2P
  • 💥 标题:【计网 传输层概述】 中科大郑烇老师笔记 (十)
  • ❣️ 寄语:书到用时方恨少,事非经过不知难。
  • 🎈 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正!

0 引言

从上到下学习,终于学到了传输层的知识点了,那么计算机网络传输层学习目标有哪些?主要分为下面两个大点:

  • 理解传输层的工作原理
    • 源端的多路复用 / 目标端的解复用
    • 可靠数据传输 RDT(Reliable Data Transfer)
    • 流量控制
    • 拥塞控制
  • 学习Internet的传输层协议
    • UDP:无连接传输
    • TCP:面向连接的可靠传输
    • TCP的拥塞控制

1 概述

1.1 传输服务和协议

  • 为运行在不同主机上的应用进程提供逻辑通信
  • 传输协议运行在端系统
    • 发送方:将应用层的报文分成报文段,然后传递给网络层。
    • 接收方:将报文段重组成报文,然后传递给应用层
  • 有多个传输层协议可供用选择:Internet(TCP和UDP)
    在这里插入图片描述

1.2 传输层 vs 网络层

  • 网络层服务主机之间的逻辑通信
  • 传输层服务进程间的逻辑通信
    • 依赖于网络层的服务:延时、带宽
    • 并对网络层的服务进行增强:数据丢失、顺序混乱、加密

类比一下就是:北京和上海有两个家庭通信,北京家庭的12个小孩给上海家庭的12个小孩发送信封。每人写12封信,总共144封

  • 主机:家庭
  • 进程:小孩
  • 应用层报文:信封中的信件
  • 传输协议:北京家庭和上海家庭为小孩提供复用解复用服务
  • 网络层协议:邮政服务(家庭-家庭的邮包传输服务)北京家庭要把12个人写的信全部收集起来给邮政公司(这就是传输层提供的复用服务),上海家庭收到144封信,然后传输层进行信件整理,发到对应小孩的手中(这就是传输层提供的解复用服务)。

1.3 Internet传输层协议 TCP和UDP

  • TCP:可靠的、保序的传输
    • 多路复用、解复用
    • 拥塞控制
    • 流量控制
    • 建立连接
  • UDP:不可靠、不保序的传输
    • 多路复用、解复用
    • 没有尽力为IP服务添加更多其他额外服务
  • 都不提供的服务:
    • 延时保证
    • 带宽保证

2 多路复用、解复用

多路复用(Multiplexing)和 解复用(Demultiplexing)是一种通信技术,用于在计算机网络中同时传输多个数据流(或多个应用程序的数据)通过单个通信通道。这有助于提高网络的效率和性能,因为它允许多个数据流共享同一个物理通道,而无需为每个数据流分配单独的通道。

  • 多路复用(Multiplexing) 是指在发送端多个数据流合并成一个单一的数据流(多个套接字接受来自多个进程的报文),然后通过网络传输。这可以通过不同的技术实现,例如统一数据包交错,时间分割,频分割,代码分割等。多路复用允许多个数据流在同一个通信通道上并行传输,而不会相互干扰。
  • 解复用(Demultiplexing) 是指在接收端接收到的单一数据流拆分回原始的多个数据流。接收端使用一些标识信息来确定如何将单一数据流分解为原始数据流,以便将它们交付给正确的应用程序或进程。这些标识信息通常包括端口号、IP地址、协议标识符等,用于确定数据流的归属。

多路复用和解复用在传输层的协议(例如TCP和UDP)中发挥重要作用,它们允许多个应用程序同时使用网络连接,而无需为每个应用程序分配独立的端口或连接。这提高了网络的效率,同时也为应用程序提供了更灵活的通信机制。

对应上面举得北京家庭的小孩给上海家庭的小孩通信的例子,北京家庭所以小孩的信封先统一打包起来,然后只需要一个邮政人员就可以将信封包裹送给上海家庭,这就是多路复用。然后上海家庭收到包裹后将包裹拆开,不同的信封交到不同的小孩手里,这就是解复用
这样就不需要多个信封交给多个邮政人员,也就是多个数据流共享同一个物理通道(邮政人员),不需要给每个数据流分配单独的通道(一个信封安排一个邮政人员进行传输)。

2.1 UDP的多路复用

接受端,如果有两个不同源IP地址/源端口号的数据报,但是有相同的目标IP地址和端口号,则被定位到相同的套接字
在这里插入图片描述

2.2 TCP的多路复用

在这里插入图片描述

3 UDP

3.1 概述

传输层的UDP(User Datagram Protocol)是一种面向无连接的协议,用于在计算机网络中传输数据。UDP与另一种传输层协议TCP(Transmission Control Protocol)相对比,它具有以下主要特点:

  • 无连接性:UDP是一种无连接的协议,这意味着在通信的开始时不会建立连接,也不会在通信结束时拆除连接。这使得UDP的通信更加轻量级,没有复杂的连接建立和拆除过程,从而降低了通信的开销。
  • 不可靠性:UDP不提供可靠的数据传输。它发送数据包,但不保证数据包的可靠性、顺序性或交付。因此,如果使用UDP传输数据,应用程序需要自行处理数据包的丢失、重复、乱序等情况。
  • 无拥塞控制:UDP不提供拥塞控制机制,因此在网络拥塞的情况下,UDP数据包可能会丢失或出现延迟。这与TCP不同,后者具有拥塞控制机制,可以适应网络拥塞。
  • 高性能:由于UDP的轻量级性质和缺乏复杂的控制机制,它具有低延迟和高性能的特点,适用于实时应用程序,如音频和视频流传输,在线游戏等。
  • 多播和广播:UDP支持多播和广播传输,允许单个数据包被多个接收者同时接收,这在某些应用场景中非常有用,如流媒体分发和网络广播。

UDP适合那些对数据传输延迟要求高、可以容忍一定数据包丢失的应用程序。然而,由于它的不可靠性,应用程序在使用UDP时必须自行处理数据的可靠性和完整性,通常需要实现自己的错误检测和纠正机制。UDP通常用于实时通信、媒体流传输、DNS查询等应用,其中快速传输和低延迟更为重要。

3.2 UDP报文段

UDP报文段的结构相对简单,它由两个主要部分组成:报头(Header)和数据(Data)。

UDP报文段的结构如下:

  1. 报头(Header):
    • 源端口号(Source Port):占用16位,指示发送端的端口号。
    • 目标端口号(Destination Port):占用16位,指示接收端的端口号。
    • 长度(Length):占用16位,表示UDP报文段的总长度(包括报头和数据)。通常,UDP报文段的最小长度为8字节。
    • 校验和(Checksum):占用16位,用于检测UDP报文段是否在传输过程中发生了错误。
  2. 数据(Data):
    • 数据部分可以包含0个或更多字节的应用程序数据。数据部分的长度由UDP报头中的长度字段指定。
      在这里插入图片描述

3.3 拓展:TCP报文段

TCP(Transmission Control Protocol)报文段的结构相对复杂,因为TCP提供了可靠的、面向连接的通信,包括连接建立、数据传输、错误检测和纠正、拥塞控制等功能。TCP报文段的结构如下:

  1. 报头(Header):

    • 源端口号(Source Port):占用16位,指示发送端的端口号。
    • 目标端口号(Destination Port):占用16位,指示接收端的端口号。
    • 序列号(Sequence Number):占用32位,用于标识TCP报文段中的数据的顺序。
    • 确认号(Acknowledgment Number):占用32位,用于确认已收到的数据的最大序列号。
    • 报头长度(Header Length):占用4位,指示TCP报文段报头的长度,以4字节为单位。
    • 保留位(Reserved):占用6位,保留供将来使用,目前必须为0。
    • 控制位(Control Bits):占用6位,包括以下标志:
      • URG(URGent):用于指示紧急数据。
      • ACK(ACKnowledgment):用于确认收到的数据。
      • PSH(PUSHit):用于提示接收端立即交付数据给应用程序。
      • RST(ReSeT):用于复位连接。
      • SYN(SYNchronize):用于建立连接。
      • FIN(FINish):用于关闭连接。
    • 窗口大小(Window Size):占用16位,表示接收端当前可接受的数据量,用于流量控制。
    • 校验和(Checksum):占用16位,用于检测TCP报文段是否在传输过程中发生了错误。
      -紧急指针(Urgent Pointer):占用16位,只有在URG标志被设置时才有效,用于指示紧急数据的位置。
    • 选项(Options):可选,可以包括一些可选字段,如最大报文段长度、时间戳等。
  2. 数据(Data):

    • 数据部分可以包含0个或更多字节的应用程序数据。数据部分的长度由TCP报头中的窗口大小字段指定。

在这里插入图片描述

TCP报文段结构的复杂性反映了TCP提供的高度可靠性和控制功能,但也导致了额外的开销。每个TCP报文段都包括了用于建立连接、确认数据、处理错误、控制流量等多种信息。这些信息使得TCP在可靠性方面非常强大,但也使得它在某些情况下相对较慢或开销较大。

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

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

相关文章

【中间件篇-Redis缓存数据库03】Redis高级特性和应用(发布 订阅、Stream)

Redis高级特性和应用(发布 订阅、Stream) 发布和订阅 Redis提供了基于“发布/订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道( channel)发布消息,订阅该频道的每个客户端都可以收到该消息。 …

innovus/ICC2:实际绕线层次有低于routing rule min layer的情况如何解决?

ICC2 这是因为routing rule的min layer是soft rule,如果希望min layer严格按照设置的来,还需要手动添加如下命令: set_routing_rule -min_layer_mode hard -rule xx [get_nets xx] innovus 设置route type是加入min_stack_layer选项。 create_route_…

CG Magic分享如何解决Vray渲染器使用不了的问题?

大家在使用Vray渲染器时,经常会有网友反馈说,为什么Vray渲染器使用不了的情况? vray渲染器是安装中出了问题嘛,还是什么原因呢?导致vray渲染器渲染不了。 那么,vray渲染器怎么安装才能正常使用呢&#xff…

Linux学习第39天:Linux I2C 驱动实验(三):哥俩好

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 linux I2C驱动试验整节的思维导图如下: 本节笔记主要学习试验程序的编写及运行测试。其中试验程序的编写主要包括修改设备树、AP3216驱动编写及编写测…

一招解密网络流量瓶颈!

前言 我们曾介绍过观测云提供全面的基础设施监测方案(参见《全方位监控基础设施,坚实守护您的业务稳定!》),能够高效全面地帮助您实时观测所有的基础设施对象及云产品等,赋能您的业务稳定发展。今天我们将…

实在智能入选《2023年中国AI软件市场指南》同年再获Gartner重点推荐

近日,全球权威IT研究与咨询机构Gartner发布2023年《中国AI软件市场指南(Market Guide for AI Software, China, October 2023 )》报告,实在智能依托自研垂直TARS大模型旗下的产品Intelligence Indeed IDP产品在人工智能技术领域的…

【Spring】Spring IOC DI

Spring IOC & DI IOC DI入门什么是Spring什么是容器什么是IOC IOC介绍传统程序开发解决方案 DI IOC详解Bean的存储Controller(控制器存储)Service(服务存储)Repository(仓库存储)Component(组件存储)Configuration(配置存储) 为什么需要这么多类注解类注解之间的关系方法注…

LeetCode 26. 删除有序数组中的重复项 简单

题目 - 点击直达 1. 26. 删除有序数组中的重复项 简单1. 题目详情1. 原题链接2. 题目要求3. 基础框架 2. 解题思路1. 思路分析2. 时间复杂度3. 代码实现 1. 26. 删除有序数组中的重复项 简单 1. 题目详情 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复…

Redis发布订阅

文章目录 前言一、什么是Redis订阅和发布?二、命令三、原理四、使用场景总结 前言 消息队列 Redis 发布订阅(publsub)是一种消息通信模式︰发送者(pub)发送消息,订阅者(sub)接收消息。微信、微博、关注系统! Redis客户端可以订阅任意数量的频道。 一、…

springboot定时服务

上一篇文章【修改定时时间,定时任务及时生效】 是定时任务与功能项目共用一个; 我目前所在公司的定时服务是专门有一个项目处理,然后定时查询库里面的定时信息配置。 话不多说,上程序 数据库设置 create table SCHEDULER_JOB…

基于springboot 手工艺品在线展示系统-计算机毕设 附源码 42553

springboot 手工艺品在线展示系统 目 录 摘要 1 绪论 1.1本课题研究意义 1.2系统开发目的 2 1.3系统开发技术的特色 3 1.4 springboot框架介绍 3 1.5论文结构与章节安排 4 2 手工艺品在线展示系统系统分析 5 2.1 可行性分析 5 2.2 系统流程分析 5 2.2.1数据增加流程 5 2.2.…

Swift 抛砖引玉:从数组访问越界想到的“可抛出错误”属性

0. 概览 了解 Swift 语言的小伙伴们都知道,我们可以很方便的写一个可能抛出错误的方法。不过大家可能不知道的是在 Swift 中对于结构或类的实例属性我们也可以让它抛出错误。 这称之为实效只读属性(Effectful Read-only Properties)。 那么…

速锐得柴油发动机车辆数据的实时获取定位和运行状态监测设计思路

随着港口、油田、车队运输、物流及冷链等多种交通运输领域的兴起,保障性集团运输业务在这些领域凸显出重要的作用,数字化转型及平台系统性管理要求越来越高,针对柴油发动机车辆数据的实时获取定位和运行状态的检测方案配套平台系统&#xff0…

DSP开发例程(4): logbuf_print_to_uart

目录 DSP开发例程: logbuf_print_to_uart新建工程源码编辑app.cfgos.cmain.c 调试说明 DSP开发例程: logbuf_print_to_uart SYS/BIOS 提供了 xdc.runtime.Log, xdc.runtime.LoggerBuf 和 xdc.runtime.LoggerSys 这几个模块用于日志记录. 日志信息在 应用程序调试和状态监控中非…

用友NC Cloud accept.jsp接口任意文件上传漏洞复现 [附POC]

文章目录 用友NC Cloud accept.jsp接口任意文件上传漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 用友NC Cloud accept.jsp接口任意文件上传漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a…

万宾科技内涝积水监测仪使用效果一览

当一个城市突降暴雨,对城市管理部门来讲首当其中的是防止积水成患。随着城市人口快速增长,基础设施建设也日益受到更多的关注,城市内涝问题频繁增加,会给城市带来严重的经济损失和人员的安全问题。城市生命线工程建设过程中&#…

【EI会议征稿】第八届先进能源科学与自动化国际研讨会(AESA 2024)

第八届先进能源科学与自动化国际研讨会(AESA 2024) 2024 8th International Workshop on Advances in Energy Science and Automation 继AESA 2017-2023相继成功举办之后,来自国内外多所高校、科研院所及企业代表在先进能源科学与自动化的科研合作和交流…

(附源码)基于spring boot 房屋租赁系统小程序-计算机毕设 88306

spring boot 房屋租赁系统小程序 目 录 摘要 1 绪论 1.1选题意义 1.2开发现状 1.3springboot框架介绍 1.4论文结构与章节安排 2 房屋租赁系统小程序系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.…

VINS-Mono-后端优化 (三:视觉雅可比推导)

用逆深度是因为这样可以在优化中从优化3个变量降低到1个,降低优化的维度加快求解速度 用逆深度是因为当距离很远的时候, 1 x \frac{1}{x} x1​ x x x 就会无穷大,而3D点很近的情况也一般不会有,这也是为了数值稳定性 用逆深度的…

SAP 20策略测试简介

20策略相信也有很多小伙伴使用过,与50最大的不同之处就在于20策略是不能做计划独立需求的。 我看一下系统中20 策略的配置图,可以看到独立需求这里的配置都是空的。 1、我们开始测试准备物料 成品物料AB4 原材料:100197 2、创建BOM—CS01 3、创建主配方—c201 ,离散制造…