当前位置: 首页 > news >正文

二、计算机网络技术——第5章:传输层

5.1传输层提供的服务

5.1.1传输层的功能

数据链路层提供链路上相邻节点之间的逻辑通信,网络层提供主机之间的逻辑通信。传输层位于网络层之上、应用层之下,它为运行在不同主机上的进程之间提供逻辑通信。传输层属于面向通信部分的最高层,同时也是用户功能中的最低层。显然,即使网络层协议不可靠(网络层协议使分组丢失、混乱或重复),传输层同样能为应用程序提供可靠的服务。

从图5.1可看出,网络的边缘部分的两台主机使用网络的核心部分的功能进行端到端的通信时,只有主机的协议栈才有传输层,而路由器在转发分组时都只用到下三层的功能(在通信子网中没有传输层,传输层只存在于通信子网以外的主机中)。传输层的功能如下。

1.应用进程之间的逻辑通信

从网络层来说,通信的双方是两台主机,IP数据报的首部给出了这两台主机的IP地址。但“两台主机之间的通信”实际上是两台主机中的应用进程之间的通信。应用进程之间的通信也称端到端的逻辑通信。IP虽然能把分组送到目的主机,但这个分组还停留在主机的网络层,而没有交付给主机中的进程。从传输层来看,通信的真正端点不是主机而是主机中的进程。

2.复用和分用

复用是指发送方不同的应用进程都可以使用同一个传输层协议传送数据。分用是指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。

注意:网络层也有复用和分用的功能,但网络层的复用是指发送方不同协议的数据都可被封装成IP数据报发送出去,分用是指接收方的网络层在剥去首部后把数据交付给相应的协议。

3.差错检测

传输层要对收到的报文(首部和数据部分)进行差错检测。对于TCP,若接收方发现报文段出错,则要求发送方重发该报文段。对于UDP,若接收方发现数据报出错,则直接丢弃。在网络层,IP数据报首部中的检验和字段只检验首部是否出错,而不检查数据部分。

4.提供面向连接和无连接的传输协议

传输层向高层用户屏蔽了低层网络核心的细节(如网络拓扑、路由协议等),它使应用进程看见的是在两个传输层实体之间好像有一条端到端的逻辑通信信道,这条逻辑通信信道对上层的表现却因传输层协议不同而有很大的差别。当传输层采用面向连接的TCP时,尽管下面的网络是不可靠的(只提供尽最大努力的服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。但当传输层采用无连接的UDP时,这种逻辑通信信道仍然是一条不可靠信道。


5.1.2传输层的寻址与端口

1.端口的作用

端口能让应用层的各种进程将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。端口在传输层的作用类似于IP地址在网络层的作用,只不过IP地址标识的是主机,而端口标识的是主机中的应用进程。

数据链路层的服务访问点为帧的“类型”字段,网络层的服务访问点为IP数据报的“协议”字段,传输层的服务访问点为“端口号”字段,应用层的服务访问点为“用户界面”。

在协议栈层间的抽象的协议端口是软件端口,它与路由器或交换机上的硬件端口是完全不同的概念。硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与传输实体进行层间交互的一种地址。传输层使用的是软件端口。

2.端口号

应用进程通过端口号进行标识,端口号长度为16比特,能够表示65536(2¹⁶)个不同的端口号。端口号只具有本地意义,即端口号只标识本计算机应用层中的各进程,在因特网中不同计算机的相同端口号是没有联系的。根据端口号范围可将端口分为两类:

1)服务器端使用的端口号。它又分为两类,最重要的一类是熟知端口号,数值为0~1023,IANA(互联网地址指派机构)把这些端口号指派给了TCP/IP最重要的一些应用程序,让所有的用户都知道。另一类称为登记端口号,数值为1024~49151,它是供没有熟知端口号的应用程序使用的,使用这类端口号必须在IANA登记,以防止重复。一些常用的熟知端口号如下:

2)客户端使用的端口号,数值为49152~65535。因为这类端口号仅在客户进程运行时才动态地选择,所以也称短暂端口号。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的端口号,因而可以把数据发送给客户进程。通信结束后,刚用过的客户端口号就不复存在,这个端口号就可以供其他客户进程使用。

3.套接字

在网络中通过IP地址来标识和区别不同的主机,通过端口号来标识和区分一台主机中的不同应用进程,端口号拼接到IP地址就构成套接字(Socket)。在网络中采用发送方和接收方的套接字来识别端点。套接字,实际上是一个通信端点,即:套接字(Socket)=(IP地址:端口号)它唯一地标识网络中的一台主机上的一个应用进程。

在网络通信中,主机A发给主机B的报文包含目的端口号和源端口号,源端口号是“返回地址”的一部分,即当B需要发回一个报文给A时,B到A的报文中的目的端口号便是A到B的报文中的源端口号(完全的返回地址是A的IP地址和源端口号)。


5.1.3无连接服务与面向连接服务

TCP/IP族在IP层之上使用了两个传输协议:一个是面向连接的传输控制协议(TCP),采用TCP时,传输层向上提供的是一条全双工的可靠逻辑信道;另一个是无连接的用户数据报协议(UDP),采用UDP时,传输层向上提供的是一条不可靠的逻辑信道。

TCP提供面向连接的可靠服务,通信双方在传送数据之前必须先建立连接,然后基于此连接进行可靠数据传输,数据传输结束后要释放连接。TCP不提供广播或多播服务。TCP为了实现可靠数据传输,就必须增加许多措施,如确认、流量控制、计时器及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。因此TCP主要适用于可靠性更重要的场合,如文件传输协议(FTP)、超文本传输协议(HTTP)、远程登录(TELNET)等。

UDP提供无连接的不可靠服务,通信双方在传送数据之前不需要建立连接,接收方的传输层在收到UDP用户数据报后,无须给发送方发回任何确认。UDP在IP层之上仅提供两个附加服务:多路复用和对数据的错误检查。IP层知道怎样把分组投递给一台主机,但不知道怎样把它们投递给主机上的具体应用。因为UDP比较简单,所以执行速度比较快、实时性好。使用UDP的应用主要包括小文件传送协议(TFTP)、DNS、SNMP和实时传输协议(RTP)。




5.2 UDP

5.2.1 UDP数据报

1.UDP概述

UDP仅在IP层的数据报服务之上增加了复用、分用和差错检测的功能。UDP具有如下优点:

1)UDP无须建立连接。因此UDP不会引入建立连接的时延。

2)无连接状态。TCP需要在端系统中维护连接状态。此连接状态包括接收和发送缓存、拥塞控制参数和序号与确认号的参数。而UDP既不维护连接状态,又不跟踪这些参数。因此,当某些专用服务器使用UDP时,一般都能支持更多的活动客户机。

3)UDP的首部开销小。TCP有20B的首部开销,而UDP仅有8B的开销。

4)UDP没有拥塞控制,因此网络中的拥塞不会影响源主机的发送速率。某些实时应用要求源主机以稳定的速率发送数据,能容忍一些数据的丢失,但不允许有太大的时延。

http://www.dtcms.com/a/296337.html

相关文章:

  • AWS S3 生命周期管理最佳实践:IoT Core 日志的智能存储优化
  • 康养休闲旅游服务虚拟仿真实训室:赋能人才培养的创新路径
  • Java:跨越时代的编程语言,持续引领技术潮流
  • [Office]数学公式插件
  • cri-docker部署高版本k8s
  • Windows 11 24H2 中文版安装教程(2025年4月更新版/官方ISO/详细步骤)
  • 实验-OSPF
  • 完成多项问题修复,MaxKB开源企业级智能体平台v1.10.9 LTS版本发布
  • 华为OpenStack架构学习9篇 连载—— 01 OpenStack架构介绍【附全文阅读】
  • 学习游戏制作记录(技能系统)7.24
  • Selenium基础教程
  • day46.通道注意力
  • Vue2——5
  • set集合(HashSet、LinkedHashSet、TreeSet)
  • MySQL数据库迁移至国产数据库测试案例
  • 二、计算机网络技术——第6章:应用层
  • 深入理解 ThreadLocal:从原理到最佳实践
  • Vue实现地图图片动态轨迹组件,支持放大缩小重置,兼容触摸等
  • Uniapp中使用vue3语法
  • vue3升级了哪些重要功能
  • vite+vue3 工程-SVG图标配置使用指南——vite-plugin-svg-icons 插件
  • pytest中使用skip跳过某个函数
  • 4.1.2 XmlInclude 在 C# 中的作用及示例
  • 【软件与环境】--SSH连接远程服务器工具:FinalShell
  • C语言:详解文件操作
  • 【Java工程师面试全攻略】Day12:系统安全与高可用设计
  • 嵌入式linux I2C 设备开发调试 使用i2cget 工具失败的问题
  • JavaScript性能优化实战指南:从原理到最佳实践
  • Flink-1.19.0源码详解7-Flink集群端调度
  • 跨境支付入门~国际支付结算(区块链篇)