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

news2024/12/23 8:39:20

目录

  • 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在可靠性方面非常强大,但也使得它在某些情况下相对较慢或开销较大。

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

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

相关文章

浅谈安科瑞直流电表在加拿大光伏系统中的应用

摘要:本文介绍了安科瑞直流电表DJSF1352在加拿大光伏系统中的应用。主要用于光伏系统中的电流的计量,配合分流器对电流进行计量。 Abstract: This article introduces the application of Acrel DC meters in PV system in Canada.The device is measu…

css:clip元素裁剪实现Loading加载效果边框

clip 属性定义了元素的哪一部分是可见的。clip 属性只适用于 position:absolute 的元素。 警告: 这个属性已被废弃。建议使用 clip-path 文档 https://developer.mozilla.org/zh-CN/docs/Web/CSS/cliphttps://developer.mozilla.org/zh-CN/docs/Web/CSS/clip-path …

振南技术干货集:C语言的一些“骚操作”及其深层理解(2)

注解目录 第二章《c语言的一些“操作”及其深层理解》 一、字符串的实质就是指针 (如何将 35 转为对应的十六进制字符串”0X23”?) 二 、转义符\ (打入字符串内部的“奸细”。) 三、字符串常量的连接 &#xff…

2023年【公路水运工程施工企业安全生产管理人员】复审考试及公路水运工程施工企业安全生产管理人员考试试题

题库来源:安全生产模拟考试一点通公众号小程序 公路水运工程施工企业安全生产管理人员复审考试根据新公路水运工程施工企业安全生产管理人员考试大纲要求,安全生产模拟考试一点通将公路水运工程施工企业安全生产管理人员模拟考试试题进行汇编&#xff0…

asp.net学生部门管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net 学生部门管理系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 asp.net学生部门管理系统1 应用技…

详解机器学习最优化算法

前言 对于几乎所有机器学习算法,无论是有监督学习、无监督学习,还是强化学习,最后一般都归结为求解最优化问题。因此,最优化方法在机器学习算法的推导与实现中占据中心地位。在这篇文章中,小编将对机器学习中所使用的…

Springboot通过ObjectMapper(节点树)解析JSON

1、ObjectMapper通过节点树的方式解析JSON字符串 1.1、通过节点直接获取属性值 1.1.1、测试代码 node.get("order_id"):直接获取JSON中属性对应的值 Test public void parseJson() throws Exception{//创建json字符串,模拟从外界接收的订…

2023年【危险化学品生产单位安全生产管理人员】最新解析及危险化学品生产单位安全生产管理人员理论考试

题库来源:安全生产模拟考试一点通公众号小程序 危险化学品生产单位安全生产管理人员最新解析考前必练!安全生产模拟考试一点通每个月更新危险化学品生产单位安全生产管理人员理论考试题目及答案!多做几遍,其实通过危险化学品生产…

halcon分割粘连字符

下面的算子都可以分割: 1.*(推荐使用这个)在垂直范围较小的位置水平划分区域 partition_dynamic(circleRegion,parRegion,76,50)2.*将一个区域划分为大小大致相等的矩形。(这个方法适合宽度相等,很规则的排列的字符串…

韩语图片文字如何转为纯文本?

如何将上图为韩语的图片转为文本文件?这个需要用到OCR程序,操作方法如下: 一、打开金鸣识别网站。 二、点击“点击添加图片/PDF”,将待识别的图片添加到列表。 三、识别模块点选“通用文字”,输出格式选择“纯文本输…

Python 函数定义详解(More on Defining Functions)- 默认参数/位置参数/关键字参数

1.函数的定义和调用方法 1.1函数定义方法 """def 关键字用来定义一个函数。function_name 是函数名,应遵循命名规范。parameter1, parameter2, ... 是函数的参数列表,可以是任意数量和类型的参数。函数体是用缩进(通常为4个…

线上SQL超时场景分析-MySQL超时之间隙锁 | 京东物流技术团队

前言 之前遇到过一个由MySQL间隙锁引发线上sql执行超时的场景,记录一下。 背景说明 分布式事务消息表:业务上使用消息表的方式,依赖本地事务,实现了一套分布式事务方案 消息表名:mq_messages 数据量:3…

Facebook广告被暂停是什么原因?Facebook广告账号被封怎么办?

许多做海外广告投放的小伙伴经常遇到一个难题,那就是投放的Facebook广告被拒或 Facebook 广告帐户被关闭赞停的经历,随之而来的更可能是广告账户被封,导致资金的损失。本文将从我自身经验,为大家分享,Facebook广告被暂…

kafka 集群企业部署最佳实践

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

Git安装配置保姆级教程和Git创建仓库的基本原理和常用命令

目录 前言 一、Git简介 1.Git 与 SVN 区别点 2.Git的介绍 3.Git 工作流程 4.Git 工作区、暂存区和版本库 二、Git安装配置 1.Linux 平台上安装 2.Windows 平台上安装 三、Git 创建仓库和下载 1、首先需要注册一个gitee账号 2.git初始化并提交到远程仓库 3.另一用户…

chrome 的vue3的开发者devtool不起作用

问题: 刚刚vue2升级到vue3,旧的devtool识别不了vue3数据。 原因: devtool版本过低。升级到最新。 解决: 去github下载vuetool项目代码: GitHub - vuejs/devtools: ⚙️ Browser devtools extension for debugging…

Linux学习笔记之五(父子进程、孤儿进程、僵尸进程、守护进程)

Linux 1、进程1.1、进程的六种状态1.2、创建子进程1.3、添加子进程任务1.4、孤儿进程、僵尸进程、守护进程1.4.1、避免僵尸进程1.4.2、创建守护进程1.4.3、杀死守护进程 1.5、综合练习 1、进程 进程可以简单的理解为一个正在执行的程序,它是计算机系统中拥有资源和…

django建站过程(4)创建文档显示页面

django建站过程(4)创建文档显示页面 创建文档显示页面项目主文件夹schoolapps中的文件urls.py在APP“baseapps”中创建url.py文件编写视图模板继承bootstrap创建head.html创建doclist.html创建docdetail.html 使用 markdown 编辑器安装模块Model 模型的d…

Hello World背后的逻辑

一门语言的开发入门,总是抬手就能整出一个「Hello World Demo」。比如下面这样: 显然,熟悉 iOS 开发的同学都知道,上面这个来自 Objective-C。 今天,我们就从这熟悉的代码入手,来一起研究研究「Hello Worl…

泄露35TB数据,医疗巨头Henry Schein遭受黑猫勒索组织攻击

近日,据Bleeping Computer 网站消息,BlackCat(黑猫)勒索软件团伙将医疗保健巨头Henry Schein 添加到了其暗网泄露网站,并声称其破坏了该公司的网络,窃取了35 TB的敏感文件,这些文件包括了Henry …