IP和端口号
IP地址 和 端口号。你可以把它们理解为一个完整的“通信地址”,缺一不可。
IP地址 - 互联网上的“门牌号”
-
1.IP地址是什么呢?
- IP地址是为互联网上的每一个网络设备(如电脑、手机、服务器、智能家居设备等)分配的一个唯一逻辑地址。它的作用类似于我们在现实世界中的“家庭住址”,用于在庞大的互联网中准确地找到目标设备。
-
- 主要作用
-
标识主机:唯一地标识网络中的一台设备。
-
寻址和路由:数据包在互联网上传输时,路由器就像邮局分拣员,它们查看数据包的目标IP地址,来决定下一步该往哪个方向传递,最终将数据包准确地送到目的地。
-
- 版本:IPv4 和 IPv6
由于设备数量爆炸式增长,IP地址主要有两个版本:
-
IPv4(运用频率高)
-
格式:由4个0-255之间的十进制数组成,用点分隔。例如:192.168.1.1、8.8.8.8(谷歌的公共DNS服务器)。
-
地址空间:约42.9亿个。这远远不够全球设备使用,因此出现了NAT(网络地址转换)等技术来缓解。
-
-
IPv6
-
格式:由8组4位的十六进制数组成,用冒号分隔。例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。
-
地址空间:数量极其庞大(2^128个),可以为地球上的每一粒沙子都分配一个IP地址,从根本上解决了地址耗尽问题。
-
- 版本:IPv4 和 IPv6
NAT(网络地址转换)简单来说是一种网络技术,它允许多个设备在私有网络中使用私有IP地址,通过一个或少数几个公共IP地址访问互联网。
-
- 分类:公网IP vs 私网IP
- 公网IP:全球唯一,在互联网上可以直接被访问。它就像你家的“街道地址”,快递员(数据包)可以通过这个地址找到你所在的小区(路由器)。
-
私网IP:在局域网(如家庭、公司网络)内部使用,仅在局域网内唯一。不同的局域网可以使用相同的私网IP段。常见的私网IP段有:
-
192.168.x.x
-
10.x.x.x
-
172.16.x.x - 172.31.x.x
-
设备通过路由器使用NAT技术共享一个公网IP来访问互联网。
-
-
比喻:一栋办公楼(局域网)有一个公网地址“XX路100号”(公网IP)。楼里每个房间都有内部编号“101、102…”(私网IP)。外界寄信到“XX路100号-101室”,大楼前台(路由器)负责把信送到101房间。
- 分类:公网IP vs 私网IP
NAT(Network Address Translation,网络地址转换)简单来说是一种网络技术,它允许多个设备在私有网络中使用私有IP地址,通过一个或少数几个公共IP地址访问互联网。
想详细了解的小伙伴可以点击–>NAT
端口号 - 设备上的“房间号”或“应用程序门牌”
-
1.端口号是什么?
- 端口号是一个16位的整数,范围是 0 ~ 65535。它用于标识一台设备上的特定应用程序或服务。
-
- 为什么需要端口号?
- 一台设备(一个IP地址)上可能同时运行着很多网络程序,比如一边用浏览器上网,一边用微信聊天,一边在玩网络游戏。当设备收到一个数据包时,它需要知道这个数据包是交给浏览器、微信还是游戏。
-
端口号就是用来解决这个问题的。它告诉操作系统:“这个数据是发给哪个程序的?”
-
- 端口号的分类
为了方便管理,端口号被分为三个范围:
- 端口号的分类
-
知名端口:0 - 1023
-
分配给系统或公认的、重要的网络服务。
-
例如:
-
80:HTTP(网页服务)
-
443:HTTPS(加密的网页服务)
-
21:FTP(文件传输)
-
22:SSH(安全远程登录)
-
53:DNS(域名解析)
-
25:SMTP(邮件发送)
-
-
-
注册端口:1024 - 49151
-
分配给用户安装的应用程序或服务。许多商业软件会在这里注册。
-
例如:
-
3306:MySQL数据库
-
3389:Windows远程桌面
-
8080:常用于HTTP代理或备用网页服务
-
-
-
动态/私有端口:49152 - 65535
-
一般不固定分配给某个服务,而是由客户端程序临时使用。
-
当你的浏览器访问一个网站时,它会随机打开一个动态端口(例如54321)来接收网站服务器(端口80)返回的数据。
-
IP和端口号的协同工作 - “IP:端口号”套接字
IP地址和端口号组合在一起,就构成了一个网络通信的端点,称为 套接字。
格式:IP地址:端口号
完整通信过程比喻:
假设你想用电脑(客户端)访问百度网站(服务器)。
-
目标地址:你的电脑知道要访问 www.baidu.com。通过DNS解析,得到百度的服务器IP地址,比如 39.156.66.10,并且知道网页服务默认使用端口 80。
-
你的地址:你的电脑有自己的IP地址(比如公网IP 123.123.123.123),并随机开启一个动态端口(比如 55555)来准备接收数据。
-
发送请求:你的电脑发送一个数据包:
-
目标地址:39.156.66.10:80(寄到百度大厦的“网页服务办公室”)
-
源地址:123.123.123.123:55555(回信请寄到我家门牌,并注明“55555房间的浏览器收”)
-
-
服务器响应:百度服务器收到请求后,处理完毕,发送网页数据回来:
-
目标地址:123.123.123.123:55555(寄到你家,并注明给55555房间)
-
源地址:39.156.66.10:80(从百度网页服务办公室发出)
-
-
客户端接收:你的电脑收到数据包,一看端口号是 55555,操作系统就知道应该把这个数据包交给正在监听 55555 端口的那个浏览器进程。
小结
核心关系:
IP地址负责把数据包送到正确的设备,端口号负责告诉设备把这个数据包交给哪个程序处理。 两者结合在一起(IP:Port)才能实现精确的、多任务并发的网络通信。