计算机网络:运输层 —— 运输层概述

devtools/2024/11/14 6:19:06/

文章目录

    • 运输层
      • 主要功能
      • 主要协议
      • 端口号
    • 进程间基于网络的通信
      • 端到端的通信服务
      • 复用和分用

运输层

运输层是TCP/IP体系结构中一个关键的组成部分,它位于网络层和应用层之间,负责为两个主机之间提供端到端的通信服务运输层的主要任务是处理与数据包的传输和接收相关的各种功能,以确保数据在源主机和目标主机之间可靠、有效地传输。

主要功能

  • 分段与重组:当应用程序生成的数据包太大,无法在一个网络层数据报中发送时,运输层会将其分割成多个较小的片段(对于TCP)并在接收端重新组合。

  • 流量控制:通过调整发送方的发送速率来防止接收方缓冲区溢出。这通常通过滑动窗口机制来实现。

  • 差错控制:检测并处理在传输过程中可能出现的错误。TCP使用确认/重传机制来确保数据的可靠传输。

  • 多路复用与分解运输层允许一个主机上的多个应用程序同时与另一个主机上的多个应用程序进行通信。这通过为每个应用程序分配唯一的端口号来实现。

  • 连接管理:对于面向连接的协议(如TCP),运输层需要管理连接的建立、维护和终止。

主要协议

  • TCP传输控制协议,提供面向连接的、可靠的、基于字节流的传输服务。它使用三次握手来建立连接,并通过确认/重传机制来处理错误。

    • 面向连接:在数据传输之前,需要先建立连接。就像打电话一样,在通话之前需要先拨号建立连接,通话结束后再挂断连接。

    • 可靠传输:通过确认、重传、流量控制等机制,确保数据准确无误地传输。如果在传输过程中出现数据丢失、错误等情况,TCP 会自动进行重传,直到数据被正确接收。

    • 适用于对数据可靠性要求较高的应用,如文件传输、电子邮件等。

  • UDP用户数据报协议,提供无连接的、不可靠的、基于数据报的传输服务。它通常用于那些对实时性要求较高,但对数据可靠性要求不高的应用程序。

    • 无连接:不需要事先建立连接,直接发送数据。就像寄明信片一样,不需要事先和收件人联系,直接将明信片投入邮筒即可。

    • 不可靠传输:不保证数据一定能够到达目的地,也不进行重传等操作。

    • 适用于对实时性要求较高、对数据可靠性要求相对较低的应用,如视频会议、在线游戏、流媒体、DNS查询等。

端口号

运输层使用端口号区分同一主机上的不同应用程序。每个应用程序都被分配一个唯一的端口号(0-65535),其中0-1023是知名端口号,通常用于系统或服务。

  • 熟知端口号:范围为 0 到 1023,这些端口号被分配给一些常用的应用程序,如 HTTP 协议使用端口号 80,FTP 协议使用端口号 21 等。

  • 登记端口号:范围为 1024 到 49151,这些端口号通常被一些不太常用的应用程序使用,需要在 IANA(互联网数字分配机构)进行登记。

  • 客户端口号:范围为 49152 到 65535,这些端口号通常由客户端程序随机选择,用于临时与服务器进行通信。

进程间基于网络的通信

网络的作用范围是主机到主机,提供主机之间的逻辑通信,然而在网络>计算机网络中实际进行通信的真正实体,是位于通信两端主机中的进程

端到端的通信服务

运输层位于网络层之上,它的任务是为运行在不同主机上的应用进程(使用端口号)提供直接的逻辑通信服务网络层实现的是主机到主机的通信,而运输层则将这种通信延伸到了应用程序之间,即端到端的通信

可以把网络层类比为邮政系统中的运输网络,它负责将信件从一个城市运送到另一个城市;而运输层则像是具体的收件人和发件人之间的通信渠道,确保信件准确无误地从发件人的手中传递到收件人的手中。

运输层协议又称为端到端协议

复用和分用

  • 复用:指多个应用层进程可以同时使用下面运输层的服务。不同的应用程序可以通过不同的端口号来区分,运输层可以同时接收来自多个应用程序的数据,并将它们封装在不同的运输层报文段中进行传输。

  • 分用:指运输层把收到的信息分别交付给上面应用层中相应的进程。当运输层接收到数据后,根据报文段中的端口号,将数据准确地交付给对应的应用程序。

![[进程间基于<a class=网络的通信.png]]" />

可以简单地认为,运输层直接为应用进程间的逻辑通信提供服务,好像是沿水平方向传送数据,但事实上通信双方的运输层之间,并没有一条水平方向的物理连接。要传送的数据是沿着图中上下多次的虚线方向传送的。

![[应用进程间基于<a class=网络的通信.png]]" />

  • AP1AP2 等代表不同的应用程序接口

  • 应用层与运输层之间的“端口”并不是看得见、摸得着的物理端口,而是用来区分不同应用进程的标识符

运输层向应用层实体屏蔽了下面网络核心的细节(例如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道

根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输层协议,即面向连接的TCP无连接的UDP


http://www.ppmy.cn/devtools/133424.html

相关文章

JS爬虫实战之TikTok_Shop验证码

TikTok_Shop验证码逆向 逆向前准备思路1- 确认接口2- 参数确认3- 获取轨迹参数4- 构建请求5- 结果展示 结语 逆向前准备 首先我们得有TK Shop账号&#xff0c;否则是无法抓取到数据的。拥有账号后&#xff0c;我们直接进入登录。 TikTok Shop 登录页面 思路 逆向步骤一般分为…

物联网学习路线来啦!

物联网学习路线来啦! 物联网方向作为目前一个热门的技术发展方向&#xff0c;有大量的人才需求&#xff0c;小白的学习入门路线推荐以下步骤。 1.了解物联网基本概念 物联网&#xff08;IoT&#xff09;是由各种传感器、设备和互联网组成的网络&#xff0c;通过这个网络可以实现…

【vue】封装一个可随时暂停启动无需担心副作用的定时器

【vue】封装一个可随时暂停启动无需担心副作用的定时器 现成轮子&#xff1a;VueUse 库的 useIntervalFn 方法是什么&#xff1f;为什么要用它&#xff1f;怎么用&#xff1f; 分析源码 & 自己手写一个源码自己手写 现成轮子&#xff1a;VueUse 库的 useIntervalFn 方法 是…

100种算法【Python版】第50篇——Tim Sort

本文目录 1 基本原理2 主要步骤3 算法示例4 Python 实现4.1 代码说明4.2 复杂度分析Tim Sort 是一种混合排序算法,由 Tim Peters 于 2002 年为 Python 编程语言设计。它结合了插入排序和归并排序的优点,专门针对实际数据中的某些模式进行优化。Tim Sort 的核心思想是将数组分…

基于STM32设计的矿山环境监测系统(NBIOT)_262

文章目录 一、前言1.1 项目介绍【1】开发背景【2】研究的意义【3】最终实现需求【4】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】上位机开发思路1.3 项目开发背景【1】选题的意义【2】摘要【3】国内外相关研究现状【5】参考文献1.4 开发工具的选择【1】设备端开发【2】…

React 守卫路由

1.在components文件夹下新建一个Auth.js的文件&#xff0c;里面写入判断token的逻辑&#xff1a; // 导入重定向的路由模块 import { Navigate } from "react-router-dom" // 获取本地token let token window.sessionStorage.getItem(token) function Auth({childr…

Qt | QMediaPlayer+QGraphicsVideoItem视频播放器

点击上方"蓝字"关注我们 01、上节回顾 Qt | windows视频播放器小项目

Bert框架详解(下)

一、Bert模型网络结构 1、Add与Normalize Add&#xff1a;将前面的数据传到后面层&#xff0c;残差网络同理。 Normalize &#xff1a;归一化&#xff0c;与batch normalize同理。 2、outputs(shifted right) outputs&#xff08;shifted right&#xff09;&#xff1a;指在…