我知道用户被分配了一个可路由的 IP 来访问互联网,所以我想知道用户是否也被分配了 TCP/UDP 端口?我的意思是,就像我们连接的目标服务器有一个特定的 IP 一样,我们连接的那个服务器上也有一个 TCP/UDP 端口。在客户端,我们有客户端的外部 IP。该客户端是否也有端口号?如何检查?
是否为用户分配了唯一的 TCP/UDP 端口?
将端口视为门。你的电脑有很多门,服务器也有。
Web 服务器的门80打开,因此如果作为客户端的 PC 想要连接到 Web 服务器,则:
1- PC 打开一个随机端口(门),例如50000。
2 - 从该端口,客户端 PC 将数据包发送到 Web 服务器 IP 地址端口(门)80。
3 - 如果包是正确的请求,则 Web 服务器从端口 80 回复到客户端 IP 地址端口 50000。
4 - 如果回复正确且通信结束,客户端 PC 关闭其端口(门)50000。
客户端开始与服务器的通信过程,因此他在称为临时端口 ( 49152-65535)的范围内选择一个随机端口来连接到服务器。在与服务器进行数据传输时,端口保持打开状态。每当传输结束时,端口就会关闭。
Internet 连接需要使用公共 IP 地址。在 IPv4 中有4294967296 (2^32) 个地址。这些地址几年前就用完了。因此 ISP 使用NAT(网络地址转换)来减少每个连接上的 IP 公共地址的数量。
在典型的家庭互联网连接中,家庭网络中的设备使用192.168.XX范围内的地址,因为该范围被认为是私有的,可用于每个家庭或办公室网络。
路由器或调制解调器使用单一的公共IP地址连接到外部世界,所以该设备必须转换内部私有地址到外部一个端口打开/使用的内部和外部,以免混淆。
NAT 将内部地址:端口对映射到外部地址:不同的端口,并且该映射使其能够正确处理回复,避免两个客户端同时打开相同的源端口时的混淆。
只要通信从网络内部开始到外部服务器,调制解调器和 NAT 进程就会以自动方式执行此操作。
例如,如果您决定在您的家庭网络中放置一个Web 服务器(因此,在私有 IP 地址上)并且您希望可以从外部世界访问该服务器,那么您必须手动配置 NAT以使其知道到端口 80(Web 服务器端口)的传入连接必须通过设备并转到 Web 服务器的内部 IP 私有地址。
许多 ISP 会在某个时期为您分配一个 IP 地址。大多数情况下,它们有一个或多个 DHCP 服务器,因此每次您连接调制解调器或相应的网络设备时,您都会获得不同的 IP,如果它们不使用 NAT,那么您很可能会获得一个临时公共 IP 地址。
好的,现在您有了一个可用的 IP 地址,您可以开始与某些 Internet 服务通信,无论是网络层服务、传输层服务还是应用层服务。
对于网络层服务,您无需在计算机上打开端口。例如,当您使用 ping 命令从您的计算机 ping 一台机器时,您实际上是在使用 ICMP 协议,更具体地说,您正在使用 ICMP Echo 请求,作为响应,您将获得 ICMP echo 响应。网络层还可以用于其他一些目的,例如 IGMP 或其他第 3 层协议。最有趣的事实是,您不需要打开任何端口即可使用此协议。为此,您只需要一个 IP 地址。
但是就传输层服务而言,无论是 TCP 还是 UDP,您都需要打开一个端口来与服务进行通信。就应用层服务而言,该端口将与套接字 API 一起工作,该 API 将与特定应用程序一起工作。大多数情况下,它会打开一个更高价值的端口(>1000),称为临时端口,又名短期端口,因为只要传输层完成,端口就会关闭。
请注意,临时端口号因机器而异。
现在最好的部分是 ISP 不限制您使用任何端口号,因此您可以使用任何短期端口进行连接。
是的..双方都使用端口号,但不属于用户和客户端的端口号......它与您工作的应用程序有关..
TCP/UDP 数字实际上是用于查找负责应用程序的标识符(使用端口多路复用)
每当您打开一个应用程序并希望与该应用程序在客户端的另一端进行连接和通信时(注意:您的客户端可以是某些服务的服务器端!ig 当您在 win 中共享文件夹时..您实际上打开了这些端口 TCP 139, 445 UDP 137, 138 .. 等待建立连接..) 随机为其端口分配一个数字并将其附加到您的 IP(套接字)之后,该套接字与服务器端对话,该服务器端应该具有众所周知的端口号(远程登录 23 , SSH 22 ... )
(动态或专用端口是从 49152 到 65535 的端口)
尝试“netstat -a -n”命令并查看您当前的会话它将帮助您更多地弄清楚
TCP 端口、连接和连接标识
多连接管理
这种同时使用客户端和服务器套接字的连接标识提供了灵活性,允许我们在 Internet 上认为理所当然的设备之间进行多个连接。例如,繁忙的应用程序服务器进程(如 Web 服务器)必须能够处理来自多个客户端的连接,否则万维网将几乎无法使用。由于使用客户端的套接字以及服务器的套接字来标识连接,因此这没有问题。在 Web 服务器维护上面提到的连接的同时,它可以轻松地拥有另一个连接,例如 IP 地址 219.31.0.44 的端口 2,199。这由连接标识符表示:
(41.199.222.3:80, 219.31.0.44:2199)。事实上,我们可以有多个从同一个客户端到同一个服务器的连接。每个客户端进程都会被分配一个不同的临时端口号,因此即使它们都试图访问同一个服务器进程(例如 41.199.222.3:80 的 Web 服务器进程),它们都会有不同的客户端套接字并代表唯一的连接。这使您可以从计算机同时向同一个网站发出多个请求。
同样,TCP 独立跟踪这些连接中的每一个,因此每个连接都不知道其他连接。TCP 可以处理数百甚至数千个同时连接。唯一的限制是运行 TCP 的计算机的容量,以及到它的物理连接的带宽——同时运行的连接越多,每个人共享有限资源的次数就越多。