运输层协议的特点
进程之间的通信
两台主机A和B进行通信,实际上真正进行通信的实体是在主机中的进程,是主机A中的一个进程和主机B中的一个进程在交换数据(即通信),也就是说两台主机的通信就是两台主机中的应用进程互相通信。在一台主机中经常有多个进程同时分别和另一台主机中的多个应用进程通信。例如:用户正在浏览csdn 技术网站,主机的应用层需要运行浏览器客户进程,与此同时还要用微信和其他人聊天,那么主机的应用层还要运行微信客户端进程。
运输层功能特点:复用和分用
复用:发送方的应用进程都可以使用同一个运输层协议传送数据(当然需要加上合适的首部)
分用:在接收方的运输层剥去报文的首部后能够正确的把各个由发送方主机中的应用进程发送的数据正确的交付给目的应用进程
如图所示:假设主机A的应用进程AP1和主机B的应用进程AP3通信,与此同时应用进程AP2也和对方的应用进程AP4通信
运输层向高层用户屏蔽了下面的网络细节(如网络拓扑、所采用的路由协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道
运输层的两个重要协议
TCP协议(Transmission Control Protocol)[RFC 768]
UDP协议(User Datagram Protocol)[RFC 793]
下图表示这两种协议在协议栈中的位置
简单介绍TCP 、UDP
数据单位:按照OSI的术语,两个对等的实体在通信的时传送的数据单位叫做运输协议数据单元(Transport Protocol Data Unit),在TCP/IP体系中分别称之为TCP报文段(segment)或UDP用户数据报。
UDP在传送数据之前不需要先建立连接。
TCP提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。
端口
为了使运行在不同操作系统的的计算机应用进程能够相互通信,就必须使用的统一的方法对TCP/IP体系的应用进程进行标识,这个标志就是协议端口号(protocol port number),通常简称为端口(port)。当运输层收到IP层交上来的运输层报文时,就能够根据其首部中的目的端口号把数据交付给应用层的目的应用进程。
注意:这种在协议层间的抽象的协议端口是软件端口 ,和路由器或交换机上的硬件端口是完全不同的概念。硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。
TCP/IP的运输层用一个16bit的端口号来标志一个端口,端口号只具有本地意义,他只是为了标志本计算机应用层中的各个应用进程在运输层交互时的层间接口。到由此可见,两台计算机中的进程要相互通信,不仅必须知道对方的IP地址(为了找到对方的计算机),而且要知道对方的端口号(为了找到对方计算机中的应用进程)。如图所示:
端口号类型
应用程序 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP | HTTPS |
---|---|---|---|---|---|---|---|---|
熟知端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 | 443 |
IP地址