5.1.3 运输层的端口

  • 复用 和 分用
    复用:用于 发送方应用层所有的应用进程 都可以通过 运输层 再传送到 网络层
    分用:用于 接收方运输层网络层 收到 发送给应用进程的数据 后,必须分别交付 指明的各应用进程
    因此需要给 应用层的每个进程 赋予一个 标志 ,使得运输层得以区分它们

  • 单个计算机中的进程使用 进程标识符(一个不大的整数)来标志。
    但互联网中主机可能使用 不同的OS,可能使用 不同格式的进程标识符。若要使 不同OS的计算机上的进程 能进行通信,就需要使用 统一的方法(与OS种类无关) 来标识应用进程。

  • 在运输层使用协议端口号(即 端口port )。
    这种在协议栈层间的抽象的协议端口是 软件端口,和路由器和交换机上的 硬件端口 不同。
    这种软件端口应用层各种进程运输实体 进行层 间交互的一种 地址
    这种硬件端口不同硬件设备 进行交互的接口;
    只要把 所传送的报文 交到目的主机的 某个合适的目的端口,剩下的工作(即交付目的进程)就由 TCP或UDP 来完成。
    TCP和UDP首部格式中,都由 源端口目的端口 两个字段。运输层收到网络层交上来的 运输层报文 时,就能够根据其 首部中的目的端口号 把数据交付 应用层的目的应用进程。

  • 发送数据时,应用层的数据通过 端口 向下交付运输层。
    接收数据时,运输层的数据通过 端口 向上交付应用层的某个应用程序。

  • 运输层使用一个 16位的端口号 来标志一个端口。允许有 216 个端口号。
    端口号只具有 本地意义:只用于本计算机中 应用层运输层 交互的层间接口。
    不同计算机中,相同的端口号也没有关联

  • 两台主机上的进程要进行通信,需要知道彼此的 ip地址(找到主机)端口号(找到进程)

  • 运输层的端口号可分为两类
    1、服务器使用的端口号
    2、客户端使用的端口号

  • 服务器使用的端口号
    1、熟知端口号(系统端口号):数值为0 ~ 1023,这些端口号被指派给了 TCP/IP 中最重要的一些应用程序。当一种新的应用程序出现后,IANA必须为它指派一个熟知端口,否则互联网上的其它应用进程无法和它进行通信。如 FTP 21,TELNET 23,DNS 53,HTTP 80,HTTPS 443。
    2、登记端口号:1024 ~ 49151,此类端口号是给 无熟知端口号的应用程序 使用的,使用这类端口号要向IANA登记以防止重复,也固定下来了。

  • 客户端使用的端口号(3、短暂端口号
    数值为 49152 ~ 65535,这类端口仅在客户进程运行时才动态选择(所以又叫短暂端口号,给客户进程暂时使用
    服务器进程 收到 客户进程的报文 时,就知道 客户进程使用的端口号 ,因而可以把数据发送给客户进程。
    通信结束后,刚才 已使用过的客户端口号 就不复存在了,这个端口号可以共其它客户进程使用。

  • TCP连接的端点套接字一个套接字 只能和 唯一的另一个远地套接字 相连。
    但是:
    同一个IP地址 可以有 多个不同的TCP连接同一个端口号 也可以出现在 多个不同的TCP连接中
    但是多个客户端同时连接到服务器上的一个端口(比如80),服务器是否会新起另一个端口进行通信?
    答:
    服务器不会新起端口。 服务器的80端口 一直负责监听客户端的请求。
    如果有客户端请求,服务器始终使用 相同的初始套接字 来响应(不需要分配另一个服务器端口);
    接着创建 新的套接字(根据五元组) {SRC-IP, SRC-PORT, DEST-IP, DEST-PORT, PROTOCOL};
    然后创建一个线程或一个协程 通过刚才 新创建的套接字 来和 客户端 通信。所以服务器从头到尾只占用了一个80端口进行监听和通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值