计算机网络 —— 运输层(运输层概述)

2024-06-11 20:36

本文主要是介绍计算机网络 —— 运输层(运输层概述),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

计算机网络 —— 运输层(运输层概述)

  • 运输层
  • 运输层端口号
  • 复用分用
      • 复用(Multiplexing)
      • 分用(Demultiplexing)
  • 常用端口号
  • 页面响应流程

我们今天进入到运输层的学习:

运输层

我们之前学习的物理层,数据链路层,网络层,都只是解决了计算机之间怎么交互数据?
在这里插入图片描述但是,我们一般进行交互是计算机里面一个个的进程进行交互的:
在这里插入图片描述在这里插入图片描述
运输层(Transport Layer)是计算机网络中的一个重要层次,位于OSI模型的第四层或TCP/IP模型的第二层。这一层的主要职责是负责端到端的通信(进程与进程之间的通信)即确保数据能够从源主机的应用层无差错地传输到目的主机的应用层。运输层为上层应用提供了一个屏蔽底层网络技术细节的接口,使得高层应用可以不必关心底层网络的复杂性。

运输层有两个主要的协议,分别是传输控制协议(Transmission Control Protocol, TCP)和用户数据报协议(User Datagram Protocol, UDP):

  1. 传输控制协议(TCP):TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。它通过建立连接、数据传输和连接终止三个阶段来确保数据的可靠传输。TCP提供了错误检测、流量控制、拥塞控制等机制,以保证数据的顺序、无丢失和无重复传输,适合于对可靠性要求较高的应用,如Web浏览、电子邮件等。
  1. 用户数据报协议(UDP):UDP是一种无连接的、不可靠的、基于数据报的传输层协议。与TCP不同,UDP不建立连接,也不保证数据的可靠传输,数据包可能丢失、重复或乱序到达。但正因为省去了建立连接和维护连接状态的过程,UDP具有较低的传输延迟,适用于实时性要求高但能容忍一定数据丢失的应用,如在线视频、语音通话、游戏等。

总的来说,运输层在计算机网络中起到了承上启下的关键作用,它通过TCP和UDP两种不同的服务模式,满足了不同应用场景的需求,既保证了数据传输的可靠性,也支持了对低延迟的需求。

运输层端口号

现在有一个问题,我计算机上面的应用程序那么多,我发送信息如何让对方识别是我这个应用程序发的呢?

所以我们有了端口号的概念:

运输层端口号是一个16位的数字,用于标识网络中进程间的通信。它允许不同的应用层协议和进程在同一台主机上运行,并且能够独立接收和发送数据,而不会发生混淆。端口号的取值范围是0到65535,根据用途可分为以下几类:

  1. 熟知端口号(Well-Known Ports):范围从0到1023,这些端口被预留给标准的、众所周知的服务,如HTTP(80)、HTTPS(443)、FTP(21)等。它们由互联网数字分配机构(IANA)管理并分配给特定的服务。
  1. 登记端口号(Registered Ports):范围从1024到49151,用于已向IANA注册但不是广泛认可的服务。这些端口通常用于公司内部或者非标准化的服务。
  1. 短暂端口号(Ephemeral Ports):范围从49152到65535,这些端口用于客户端程序临时选择的,未被IANA正式分配的端口。当客户端需要发起对外连接时,操作系统会从这个范围内分配一个未被使用的端口作为源端口。

比如我规定QQ发消息用1203端口,腾讯看视频用9076端口,这样每个进程都有相对应的端口,就不会混了(还记得Tomcat的端口是8080吗?)

端口号在TCP和UDP中都存在,它们与IP地址结合形成套接字(Socket),这是网络编程中的一个基本概念,用于唯一标识网络中的应用程序进程。通过端口号,运输层能够实现复用(Multiplexing)和分用(Demultiplexing),即多个不同应用层协议或进程可以共享同一IP地址的网络连接,同时确保每个数据包都能正确地送达目标进程。

在这里插入图片描述

复用分用

复用(Multiplexing)和分用(Demultiplexing)是计算机网络中,特别是在运输层中非常重要的两个概念,它们描述了如何在单一的网络连接上高效地处理多个不同应用或服务的数据传输需求。

复用(Multiplexing)

复用是指在一个共享的通信资源(如一条网络连接)上,同时传输多路信号或数据流的技术。在运输层中,这意味着多个应用层的进程可以通过同一个IP地址和端口号组合(实际上是不同的源端口号)共享网络连接,发送数据到不同的目的地,而不会相互干扰。

例如,当你正在浏览网页(使用HTTP或HTTPS协议,通常通过端口80或443)的同时,还在使用即时通讯软件(可能使用自定义端口),尽管两者的通信都是通过同一个网络出口进行的,但运输层能够区分出哪些数据包属于网页浏览,哪些属于即时通讯,然后将它们“复用”在同一物理链路上发送出去。

分用(Demultiplexing)

分用则是复用的逆过程,它发生在数据接收端。当多个应用的数据经过复用后通过网络到达接收方时,运输层需要根据数据包中的信息(主要是目标端口号)将这些数据正确地分发到相应的应用层进程

继续上面的例子,当你的计算机接收到包含网页数据和即时通讯消息的数据包时,运输层会检查每个数据包的目标端口号,然后将网页数据分发给浏览器进程,将即时通讯消息分发给对应的聊天软件进程。这样,尽管所有数据都共享了相同的入口,但每个应用都能准确无误地获得自己的数据,这就是分用。

举个例子:

想象一家大型的快递配送中心,这个配送中心就像是计算机的运输层。

复用(Multiplexing)
假设配送中心每天要处理来自不同电商平台的大量包裹,这些包裹最终都要通过同一辆货车运送到各个居民区。为了高效利用货车的空间,配送中心会对这些包裹进行分类和标记,但不立即分配到特定的小区或门牌号,而是先全部装车。在这个过程中,虽然来自不同电商平台的包裹混在一起,但每个包裹上都有明确的标识(比如条形码或二维码),代表了它的来源和目的地信息。这就像在网络传输中,不同应用的数据包通过同一个网络出口发送,但每个数据包都包含了目标端口号这样的标识信息。

分用(Demultiplexing)
当货车到达居民区后,配送员开始根据包裹上的标识信息进行分拣。他们将来自不同电商平台的包裹分别送往不同的小区,再进一步按照门牌号精确投递。这样,尽管所有的包裹最初是混合装载的,但通过分拣过程,每个包裹都能准确无误地到达收件人的手中。在计算机网络中,这就好比运输层在接收端根据数据包中的目标端口号,将数据正确地分发给对应的应用程序,如浏览器、邮件客户端等。

通过这个例子,我们可以看到,复用允许在有限的资源(如货车/网络带宽)上高效地合并和传输多样化的数据(包裹/数据包),而分用则确保这些数据在目的地能够被正确识别并送达至各自的目的地(收件人/应用程序),整个过程既高效又有序。

简而言之,复用让多个数据流能够在单个通信通道中共存和传输,而分用则确保这些数据流在接收端能够被正确地区分开来,送达至各自的应用程序,从而实现了网络资源的有效利用和数据的有序传输。

在这里插入图片描述

常用端口号

常用端口号是指在网络通信中被广泛认知和采用的端口号,它们与特定的服务或协议关联。以下是一些常见的端口号及其对应的服务:

  1. HTTP (Hypertext Transfer Protocol): 端口号 80,用于网页浏览,尽管现在普遍使用HTTPS。
  2. HTTPS (HTTP Secure): 端口号 443,提供加密的网页浏览服务。
  3. FTP (File Transfer Protocol): 控制连接端口号 21,用于文件传输服务。
  4. SSH (Secure Shell): 端口号 22,用于安全的远程登录和文件传输。
  5. SMTP (Simple Mail Transfer Protocol): 端口号 25,用于发送电子邮件。
  6. POP3 (Post Office Protocol version 3): 端口号 110,用于接收电子邮件。
  7. IMAP (Internet Message Access Protocol): 端口号 143(非SSL)或 993(SSL),用于邮件访问和管理。
  8. DNS (Domain Name System): 端口号 53,用于域名解析服务。
  9. SQL Server: 默认端口号 1433,用于微软SQL Server数据库服务。
  10. MySQL: 默认端口号 3306,用于MySQL数据库服务。
  11. MongoDB: 默认端口号 27017,用于MongoDB数据库服务。
  12. Telnet: 端口号 23,一种古老的远程终端访问协议。
  13. LDAP (Lightweight Directory Access Protocol): 端口号 389,用于访问目录服务。
  14. HTTPS Alt (Alternative HTTPS Port): 端口号 8443,作为HTTPS的替代端口。
  15. HTTP Alt (Alternative HTTP Port): 端口号 8080,常被用作HTTP服务的替代端口,特别是测试环境或避免权限问题时。

在这里插入图片描述

页面响应流程

当您在浏览器中输入一个网页网址(URL)并按下回车键后,一系列复杂的操作在幕后迅速展开,直至您看到页面内容。在整个过程中,运输层扮演着确保端到端可靠或无连接数据传输的关键角色。

  1. 用户输入网址: 用户在浏览器地址栏输入想要访问的网址,并按下回车键。
  2. DNS查询(通过UDP): 浏览器首先需要将您输入的域名转换为服务器的IP地址。它通过运输层的UDP协议向本地DNS解析器发送查询请求,使用UDP端口53。这是因为DNS查询通常较小,对速度要求较高,UDP的无连接特性能够提供更快的查询响应,尽管牺牲了TCP提供的可靠性保证。如果DNS响应超时或失败,浏览器可能会尝试使用TCP重新进行DNS查询,以增加成功率。
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  1. 解析与IP地址获取: 本地DNS服务器处理请求,如果缓存中已有记录则直接返回,否则向上级DNS服务器查询,直至获得域名对应的IP地址。
  2. 建立TCP连接: 获取到IP地址后,浏览器通过运输层的TCP协议与Web服务器建立连接,涉及三次握手过程,以确保数据传输的可靠性。此时,会指定目标端口(通常是HTTP的80或HTTPS的443)以及一个随机的源端口号。
    在这里插入图片描述
  1. 发送HTTP/HTTPS请求与接收响应: 建立连接后,浏览器通过TCP发送HTTP或HTTPS请求到服务器,并等待服务器响应。TCP负责数据包的顺序、错误检测及重传,确保请求和响应的完整性。
    在这里插入图片描述在这里插入图片描述
  1. 数据传输与页面渲染: 接收到服务器的响应数据后,TCP在接收端对数据包进行排序和错误处理,保证数据的正确性。浏览器利用这些数据渲染出网页内容。
    在这里插入图片描述
  1. 连接关闭: 数据传输完毕,TCP通过四次挥手过程关闭连接,释放资源。

在整个过程中,运输层的核心功能体现在TCP和UDP协议的使用上,特别是TCP确保了数据的可靠、有序传输,以及在端到端连接上的错误处理,这对于网页浏览这类需要高可靠性的应用至关重要。

这篇关于计算机网络 —— 运输层(运输层概述)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1052226

相关文章

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

Java 多线程概述

多线程技术概述   1.线程与进程 进程:内存中运行的应用程序,每个进程都拥有一个独立的内存空间。线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换、并发执行,一个进程最少有一个线程,线程实际数是在进程基础之上的进一步划分,一个进程启动之后,进程之中的若干执行路径又可以划分成若干个线程 2.线程的调度 分时调度:所有线程轮流使用CPU的使用权,平均分配时间抢占式调度

计算机网络基础概念 交换机、路由器、网关、TBOX

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、VLAN是什么?二 、交换机三、路由器四、网关五、TBOXTelematics BOX,简称车载T-BOX,车联网系统包含四部分,主机、车载T-BOX、手机APP及后台系统。主机主要用于车内的影音娱乐,以及车辆信息显示;车载T-BOX主要用于和后台系统/手机APP通信,实现手机APP的车辆信息显示与控

java集合的概述

集合就是一个容器,我们可以把多个对象放入的容器中。就像水杯(假设容量可以不断扩大)一样,你可以往水杯中不断地添加水,既然是水杯,你就不能往里添加沙子,也就是说集合中添加的对象必须是同一个类型的(引用类型,而不能是基本类型)。 看到集合的介绍会让我们的想起数组,那么集合和数组有什么区别呢? 首先,数组的大小是固定的,而集合理论上大小是不限的。 其次,数组既可以存储基本数据类型的数据,也可以存储

【CSS in Depth 2 精译_023】第四章概述 + 4.1 Flexbox 布局的基本原理

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 第三章 文档流与盒模型(已

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

CCF推荐C类会议和期刊总结(计算机网络领域)

CCF推荐C类会议和期刊总结(计算机网络领域) 在计算机网络领域,中国计算机学会(CCF)推荐的C类会议和期刊为研究者提供了广泛的学术交流平台。以下是对所有C类会议和期刊的总结,包括全称、出版社、dblp文献网址以及所属领域。 目录 CCF推荐C类会议和期刊总结(计算机网络领域) C类期刊 1. Ad Hoc Networks 2. CC 3. TNSM 4. IET Com

Unity Adressables 使用说明(一)概述

使用 Adressables 组织管理 Asset Addressables 包基于 Unity 的 AssetBundles 系统,并提供了一个用户界面来管理您的 AssetBundles。当您使一个资源可寻址(Addressable)时,您可以使用该资源的地址从任何地方加载它。无论资源是在本地应用程序中可用还是存储在远程内容分发网络上,Addressable 系统都会定位并返回该资源。 您