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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 运输层协议概述 -> 正文阅读

[网络协议]运输层协议概述

运输层协议的理解

前面我们介绍了应用层协议(HTTP、SMTP等等),应用层的主要作用是定义了运行在不同端系统上的应用程序进程之间如何相互传递报文(主要是定义了应用进程的数据报文类型、语义等等,但是没有定义报文在不同端系统之间如何运输,运输的问题要依靠下层协议来完成)。

接下来我们看一下运输层的基本原理
为了准确的了解运输层,我们将运输层和网络层对比起来看

  • 运输层:为运行在不同主机上的应用进程之间提供了逻辑通信功能(运输层在端系统中实现,而不在路由器中)
  • 网络层:网络层提供了主机之间的逻辑通信
  • 通过一个例子来看一下运输层网络层的区别
    考虑有两个家庭,一家位于美国东海岸,一家位于美国西海岸,每家有 12 个孩子,这两个家庭的孩子们每个人每星期要互相写一封信,每封信都用单独的信封通过传统的邮政服务传送。因此,每个家庭每星期向另一家发送 144 封信 。每一个家庭有个孩子负责收发邮件,西海岸家庭是Ann负责,而东海岸家庭是Bill负责。每星期Ann去她的所有兄弟姐妹那里收集信件,并将这些信件交到每天到家门口来的邮政服务的邮车上,当信件到达西海岸家庭时,Ann 也负责将信件分发到她的兄弟姐妹手上,在东海岸家庭中的 Bill 也负责类似的工作。
    在这里插入图片描述
    由上面这个例子可以看出,运输层协议只在端系统中工作,在发送主机中,运输层协议将来自应用程序的报文移动到网络层;在目的主机中,运输层协议将来自网络层的报文段交付给在主机上运行的适当应用程序进程

多路分解和多路复用

前面我们明确了运输层协议的作用:运输层协议只在端系统中工作,在发送主机中,运输层协议将来自应用程序的报文移动到网络层;在目的主机中,运输层协议将来自网络层的报文段交付给在主机上运行的适当应用程序进程


  • 那么运输层协议是如何将来自网络层的报文段交付给适当的套接字呢(不理解套接字可以参考文章HTTP与HTTPS)?
    要实现这个目的,首先要做到两点:
    ①每个套接字都有唯一标识符(也就是常说的端口号
    ②每个运输层报文段都要包含目的进程所对应的套接字的端口号字段
    只有满足了上面两个条件,运输层报文段才能准确无误地交付到适当的套接字
    多路分解: 在接收端,运输层协议检查运输层报文段中的目的端口号字段,进而将报文段定向到目的进程对应的套接字的过程称为多路分解
  • 运输层协议是如何将来自应用进程的报文传递给网络层的呢?
    多路复用: 运输层协议在源主机从不同套接字中收集来自应用进程的数据块,并为每个数据块封装上首部信息(这将在以后用于分解)从而生成运输层报文段,进而将运输层报文段传递给网络层。这个过程称为多路复用
  • 注:端口号是一个 16 bit的数,其大小在 0-65535。0-1023 范围的端口号称为周知端口号,是受限制的,这是指它们保留给诸如 HTTP (它使用端口号 80) 之类的周知应用层协议来使用

具体的运输层协议对应的多路分解和多路复用的区别

  • UDP协议对应的多路分解与多路复用(无连接的
    一个UDP套接字是由一个二元组全面标识的(目的IP地址+目的端口号)
    也就是说,如果两个 UDP 报文段有不同的源地址和/或源端口号,但具有相同的目的地址和目的端口号,那么这两个报文段将通过相同的目的套接字被定向到相同的目的进程
  • TCP协议对应的多路分解与多路复用(有连接的
    一个TCP套接字是由一个四元组全面标识的(目的IP地址+目的端口号+源IP地址+源端口号)
    因此即便源端口号相同,但是源IP地址不同,也会建立不同的TCP连接
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-16 19:11:36  更:2021-11-16 19:13:40 
 
开发: 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年11日历 -2024/11/26 6:29:04-

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