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

news/2024/12/22 1:49:39/

目录

  • 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.ppmy.cn/news/1215297.html

相关文章

FreeRTOS知识梳理

一、RTOS:Real time operating system,中文意思为 实时操作系统,它是一类操作系统,比如uc/OS、FreeRTOS、RTX、RT-Thread 这些都是实时操作系统。 二、移植FreeRTOS到STM32F103C8T6上 interface选择CMSIS_V1,RCC选择Crystal Ceramic Resonator 。 …

RK3568开发笔记-CAN接收发送异常分析

目录 前言 一、CAN通信概述 接收异常分析 发送异常分析

Git-工作流

前言 一、工作流概述二、Git flow1.主要流程2.优缺点3.适用场景 三、Github flow1.主要流程2.优缺点3.适用场景 四、Gitlab flow1.主要流程2.优缺点3.适用场景 总结参考 一、工作流概述 开发人员通过Git可以记录和追踪代码的变化,包括添加、删除和修改文件。如果是…

深度学习模型加载和测试

深度学习模型加载和测试 加载和测试深度学习模型通常涉及以下步骤:模型加载、准备输入数据、进行推理或预测,以及解释结果。 我将使用 TensorFlow 和 Keras 作为示例框架进行说明。请注意,不同的深度学习框架可能有略微不同的API和步骤。 1…

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感

利用ANSYS Electronics Desktop,可在综合全面、易于使用的设计平台中集成严格的电磁场分析和系统电路仿真。按需求解器技术让您能集成电磁场仿真器和电路及系统级仿真,以探索完整的系统性能。 HFSS(High Frequency Structure Simulator&#…

能够定时发送朋友圈的软件

此款软件提供便捷的网页端登录方式,让您轻松管理多个账号,实现多账号聚合管理,只需一个界面即可解决所有问题。 朋友圈内容编辑功能强大,让您在输入框内输入文本内容,点击表情图标选择表情,还能通过“”图标…

ubuntu操作系统的docker更换存储目录

前言 要将Docker的存储目录更改为/home/docker,你需要进行以下步骤: 目录 前言1、停止Docker服务2、创建新的存储目录3、编辑Docker配置文件4、启动Docker服务5、验证更改 1、停止Docker服务 首先停止Docker守护进程,可以使用以下命令&…

2023最新ACL大模型论文分类汇总(有代码的)

1 大模型文化道德 Knowledge of cultural moral norms in large language models url:https://aclanthology.org/2023.acl-long.26/code:https://github.com/AidaRamezani/cultural_inference 2 长文本推理 Open-ended Long Text Generation via Mask…