IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Unit5 运输层 -> 正文阅读

[网络协议]Unit5 运输层

运输层的任务:如何为运行在不同主机上的应用进程提供直接的通信服务。
运输层协议又称为端到端协议。
运输层位于应用层和网络层之间。
必须掌握的重要概念:

(1)运输层为相互通信的应用进程提供逻辑通信;
(2)运输层的复用与端口的概念;
(3)无连接的UDP的特点;
(4)面向连接的TCP实现可靠传输的工作原理,以及TCP的滑动窗口、流量控制、拥塞控制和连接管理。

5.1 运输层协议概述

5.1.1 进程间的通信

当位于网络边缘部分的两台主机使用网络核心部分进行端到端的通信时,只有主机的协议栈采用运输层,网络核心部分中的路由器在转发分组时都只用到下三层(物理层、数据链路层、网络层)的功能。

问:既然IP协议能够将源主机发送出去的分组按照首部中的目的地址送交到目的主机,为什么还需要设置一个运输层?
解析:从IP层来说,通信的两端是两个主机。严格来讲,两个主机通信实际上是两个主机上的应用进程互相通信。IP协议只能将分组送到目的主机,但这个分组还停留在主机的网络层而没有交付主机中的应用进程。这便是运输层的任务,从运输层的角度,通信的真正端点并不是主机而是主机中的进程。

一个主机中经常有多个应用程序同时分别和另一个主机中的多个应用进程通信。
从而运输层的重要功能有复用和分用:详见5.1.3
1)复用:发送方不同的应用进程都可以同一个运输层协议传送数据;
2)分用:接收方的运输层在剥去报文的首部后能够把这些数据正确交付到目的应用程序。

重要概念1:运输层为相互通信的应用进程提供逻辑通信
意思是运输层之间的通信好像是沿着水平方向传送数据,实际这两个运输层之间并没有一条水平方向的物理连接,要传送的数据是沿着图中上下多次的虚线方向垂直传送的。
在这里插入图片描述

网络层和运输层的区别:
网络层是为主机与主机之间提供逻辑通信,
而运输层是为应用进程之间提供端到端的逻辑通信。
在这里插入图片描述

根据应用需求的不同,运输层为应用层提供了两种不同的运输协议,
(1)面向连接的TCP:尽管下面的网络不可靠(只提供尽最大努力服务),但这种逻辑通信信道相当于一条全双工的可靠信道;
(2)无连接的UDP:这种逻辑通信信道仍是不可靠信道。

5.1.2 因特网的运输层协议

因特网的网络层为主机之间提供的逻辑通信服务是一种尽最大努力交付的数据报服务,即IP报文在传输过程中有可能出错、丢失或失序。

单一的运输层很难满足所有应用的需求,例如:像电子邮件、文件传输、电子银行等应用,数据丢失可能会带来很大的后果,需要运输层为这类应用提供可靠的数据传输;但对于实时的多媒体应用,它们能够承受一定的数据丢失,不会造成很大影响,这时可靠数据传输会增加很多复杂机制,反而会给应用带来不利因素。

TCP/IP网络为上层应用提供了两个不同的传输层协议:
(1)用户数据报协议(User Datagram Protocol,UDP):
UDP在传送数据时不需要先建立连接。接受方运输层在收到UDP报文后,也不需要给出任何确认。
(2)传输控制协议(Transmission Control Protocol,TCP):
TCP提供面向连接的服务。在传送数据前,必须先建立连接,数据传送结束后要释放连接,因此不可避免地增加了很多开销,例如:确认、流量控制、计时器、连接管理等,使得协议数据单元的首部增加,占用很多处理机资源。TCP不提供广播或多播服务。
在这里插入图片描述
按照OSI术语,两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元(Transport Protocol Data Unit, TPDU)。但在因特网中,根据所使用的协议是TCP还是UDP,分别称之为TCP报文段UDP报文段(或用户数据报)
在这里插入图片描述

5.1.3 运输层的复用与分用

复用:应用层所有的应用进程都可以通过运输层再传送到IP层;
分用:运输层从IP层收到数据后交付给指明的应用进程。

运输层要正确地将数据交付给指定应用进程,就必须给每个应用进程赋予一个明确的标志。在TCP/IP网络中,使用一种与操作系统无关的协议端口号(Protocol Port Number),简称端口号。

端口:应用层和运输层之间接口的抽象,应用层的源进程将报文发送给运输层的某个端口,目的进程从端口接收报文;
端口号:应用进程的运输层地址,16位,可以允许有65535(2^16-1)个端口号,**端口号只有本地意义。**不同的计算机中,相同的端口号是没有联系的,TCP和UDP端口号之间也没有联系。所以在运输协议数据单元(TCP报文段或UDP用户数据报)的首部中必须包含两个字段:源端口号和目的端口号。
--------当运输层收到IP层交上来的数据,就要根据其目的端口号来决定应当通过哪一个端口上交给目的应用进程。

总结:两个计算机中的进程要互相通信,需要知道(1)对方的IP地址-----找到对方的计算机;(2)对方的端口号-----找到对方计算机中目的应用进程。

注:应用进程间的通信采用客户-服务器模式。应用层中的各种不同的服务器进程不断监听其端口,以便发现客户进程与它通信。运输层的端口号分为三类
(1)熟知端口:0-1023。由因特网赋号管理局(Internet Assign Numbers Authority, IANA)负责分配给一些常用的应用层程序固定使用。因此所有用户进程都知道。
例如:

应用程序FTPTELNETSMTPDNSTFTPHTTPSNMPSNMP(trap)
端口号212325536980161162

(2)登记端口:1024-49151. IANA不分配也不控制,但可以在IANA处登记,防止重复使用。
(3)动态端口:49152-65535. 留给客户进程作为临时端口。当客户进程发起通信前要先为自己选择一个未用的临时端口,通信结束后释放该端口以方便其他用户进程使用。

5.2 用户数据报协议(UDP)

5.2.1 UDP概述

用户数据报协议UDP只在IP的数据报服务之上加了端口的功能(运输层从而可以复用与分用)和差错检测的功能。
UDP的优点:
(1)无连接。发送数据前不需要建立连接,发送数据结束也没有连接释放,从而减少了开销和时延。
(2)使用尽最大努力交付,即不保证可靠交付,同时不使用流量控制和拥塞控制,因此主机不需要维持具有许多参数的、复杂的连接状态表。
(3)因为UDP没有拥塞控制,因此网络出现的拥塞不会使得源主机的发送速率降低。
注意:这对于实时应用(如IP电话、实时视频会议等)很重要,它们要求源主机以恒定的速率发送数据,并允许网络发生拥塞时丢失一些数据,但不允许数据有很大的时延。

5.2.2 UDP报文的首部格式

UDP报文有两个字段:数据字段和首部字段。
其中首部字段8字节,由4个字段组成,每字段2B,具体如下:
(1)源端口:标识UDP发送方;
(2)目的端口:标识UDP接收方;
(3)长度:UDP用户数据报长度;
(4)检验和:差错校验码,防止UDP用户数据报在传输中出错。
UDP通过二元组(目的IP地址,目的端口号)来定位一个接收方应用程序。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 21:27:49  更:2022-09-24 21:29:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 16:20:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码