-
运输层的复用和分用功能
应用层所有的应用进程都可以通过运输层再传送到IP层(网络层),这就是复用。运输层从IP层收到发送给各应用进程的数据后,必须分别交付指明的各应用进程,这就是分用。
生活中复用和分用的例子:
假定一个机构的所有部门向外单位发出的公文都由收发室负责寄出,就是相当于各部门都复用这个收发室。当收发室收到从外单位寄来的公文时,则要完成分用功能,即按照信封上写明的本机构的部门地址把公文正确进行交付。
1)现实例子使用部门地址正确交付,实现分用。那么计算机分用的时候如何正确交付给应用进程呢?
解决这个问题的方法就是在运输层使用协议端口号,或通常简称为端口。
请注意,这种在协议栈层间的抽象的协议端口是软件端口,和路由器或交换机上的硬件端口是完全不同的概念。
-
硬件端口是不同硬件设备进行交互的接口(实实在在的,摸得着的)
-
而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。(逻辑抽象的)
2.端口的相关知识 (考点)
1)TCP/IP的运输层用一个16位端口号来标志一个端口。
2)但请注意端口号只具有本地意义,它只是为了标志本计算机应用层中的各个进程在和运输层交互时的层间接口。在互联网不同计算机中相同的端口号是没有关联的。
由此可见两个计算机中的进程要互相通信,不仅必须知道对方的IP地址为了找到对方的计算机,而且要知道对方的端口号为了找到对方计算机中的应用进程。
互联网上的计算机通信是采用客户-服务器方式。客户在发起通信请求时,必须先知道对方服务器的IP地址和端口号。因此运输层的端口号分为下面两大类。
一.服务器端使用的端口号
这里又分为两类
1) 熟知端口号或系统端口号,数值为0-1023。
IANA把这些端口号指派给了TCP/IP最重要的一些应用程序让所有的用户都知道。
这是因为服务器机器一接通电源,服务器程序就运行起来。为了让互联网上所有的客户程序都能找到服务器程序,服务器程序所使用的端口(即熟知端口)就必须是固定的,并且是众所周知的。
2)登记端口号,数值为1024-49151。
这类端口号是为没有熟知端口号的应用程序使用的。使用这类端口号必须在IANA按照规定的手续登记,以防止重复
二.客户端使用的端口号
-
数值为49152-65535。
-
由于这类端口号仅在客户进程运行时才动态选择,因此又叫做短暂端口号。
-
这类端口号留给用户进程选择暂时使用。
短暂端口表示这种端口的存在时间是短期的。通信结束后,刚才使用过的客户端口号就不复存在,这个端口号就可以供其他客户进程使用。
-
客户进程并不在意操作系统给他分配的是哪一个端口号,因为客户进程之所以必须有一个端口号(在本地主机中必须是唯一的),是为了让运输层的实体能够找到自己。
拓展:用“netstat”查看端口状态
图片来自网络
END
原文始发于微信公众号(计算机408):运输层的端口
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/288782.html