常见问题

运输层协议概述

时间:2019-11-29 14:48 作者:admin 分享到:
        从前面我们了解到,运输层的功能是为应用进程之间提端到端的逻辑通信。从用户的角度看,运输层是端到端通信的最底层。运输层向上层屏蔽了     数据在通信子网中的传输细节,它使应用进程看见的就好像在两个运输层实体之间有一条端到端的逻辑通信信道。而从通信的角度看,运输层位于  IP 层之上,为面向通信的最高层。因此只有主机的协议栈中才有运输层,而 路 由 器 只 用 到 5 层协议 中的下 3 层。 根据应用进程的不同需求,Internet 中的运输层提供了两种协议,面向连接的传输控制协议 ( Transmission Control Protocol, TCP ) 和无 连接的用户数据报协议( User Datagram Protocol, UDP ) 。当运输层采用 TCP 协议时,尽 管 下 面 的 IP 层是不可靠的 ,只提供尽最大努力服务,但这种逻辑通信信道就相当于一条全双工的可靠信道。而当运输层采用 UDP 协议时 ,这 种逻 辑通信信道仍然是一条不可靠信道。
         在实际应用中,在一个主机中经常有多个应用进程同时和其他主机中的多个应用进程通信。例如,某用户 可以同时通过浏览器访问某一个网站、使用 QQ聊天软件以及收发电子邮件,其主机的应用层同时运行浏览器客户进程,QQ 客户进程以及电子邮件客户进程,因 此 运输层的一个核心功能就是复用( Multiplexing) 和分用( Demultiplexing) 。“ 复用”是指发送方不同的应用进程可以使用同一个运输层协议传送数据。“分用”是  指   接收方的运输层能够把接收到的报文剥去首部后交付给该数据所属的应用进程。显然,要实现以上功能就必须 要 给每个应用进程赋予一个唯一的标志。
       由操作系统理论可知,在单个计算机中的进程是由进程标识符( Process Identi­ fier , PID) 来标识的。但是在网络环境下,用 PID 来标识 应用层的各种应用进程则是不可行的。这是因为进程的创建和撤销都是动态的,不 同 主机间的进程标识符合是没有任何关联的,例如主机A 的 WEB 服务进程的 PID 是 7856 , 而主机 B的则 可能是 9527。
       为了解决不同主机间进程通信的问题,运输层引入了一个新的概念一一协议端口号( Protocol  Port   Number)   , 简称为端口。端口是应用程序的各种协议进程与运输实体进行层间交互的一种地址,或者直白地说,我们可以通过端口号来唯一的标识一个应用进程。
        需要注意的是,端口号只具有本地意义,在不同的计算机中相同的端口号是没有关联的。运输层以一个 16 位的端口号来标识一个端口,因此最多可以允 许有65536 个端口,这一数量对一个计算机来说是足够的。由此可见 ,两个计算机中的进程要相互通信 ,不仅需要知道目的主机的 IP 地址,而且还要知道目的主机的端口号,以找到对方计算机的应用进程。由此产生了一个新的概念接字(Socket), 用来标识运输层通信的端点。套接字同时包含了IP   地址与端口号,其表示方法为在点分十进 制的 IP 地址后面写上端口号,中间用冒号或逗号隔开,即: Socket = ( IP 地址 : 端口号)。例如,若 IP 地址为 121. 22. 88. 7 而端口号为80 , 那么套接字就是( 121. 22. 88. 7 :80 )。
        如前所述,Internet 中主机间的通信采用 客户/服务器模式。客户端在发起通信请求时,必须事先知道目标服务器的IP地址和端口号。因此运输层的端口号共分为两大类。
        1) 服务器端口号
        这里又分为两类,其中一类叫做知名端口号 ( Well — known Port Number) 或系统端口号,其数值范围为0 -  1023。顾名思义,此类端口号是固定分 配给应用层中的一些重要的服务进程的,以便于客户机的访问。例如,http   服务使用  80  号端口,ftp 服务使用 20 和 21 号端口,dns 服务使用 53 号端口,smtp 服务使用 25 号端口,pop 服务使用 110 号端口,等等。由于此类端口号已被分配给固定的应用进程 ,一般不能被其他进程所使用。
        另一类叫做登记端口号( Re护stered Port Number) , 数值范围为 1024 -  49151。这类端口号是为没有知名端口号的服务进程使用的。但使用这类端口号时一般应在 IANA 登 记注册,以防止不同的进程重复使用。
        2) ) 客户机使用的端口号
        其数值范围为49152 - 65535。客户进程在运行时从该范围中动态选择端口号,因此也被称为临时端口号。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的端口号,因而可以把数据发送给客户进程。通信结束后 ,客户进程使用的端口号即被操作系统所回收,该端口号以后还可以供其他进程所使用。

版权所有:融合通信:http://www.alloll.com 转载请注明出处

融合通信行业案例SUCCESS CASE