什么是计算机网络
计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。若计算机各自通讯协议不统一,则无法进行通讯
网络编程中两个主要问题
- 如何准确定位网络中的一台或多台主机
- 找到主机之后如何进行通信
网络编程中的要素
- IP (JAVA中对应类为
Inet4Address
) - 端口号
- 通信协议
IP地址
计算机的网络接口(通常是网卡)在网络中的唯一标识,是IP 协议提供的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
简单来说,就是用于定位网络上的一台计算机。
-
IPv4/IPv6
目前常说的IP地址指的是IPV4地址,IPv4采用32位地址(四个字节组成),类似101.202.99.12
,而IPv6采用128位地址(8个无符号整数),类似2001:0DA8:100A:0000:0000:1020:F2F3:1428
。IPv4的地址目前已耗尽,部署IPv6是解决IPv4地址不足的最终方案。 -
公网(互联网)/私网(局域网)
192.168.xx.xx:常见的局域网形式,一般给组织内部使用
ABCD类IP地址
-
A类一般用于大型网络
(1.0.0.0-126.0.0.0)(默认子网掩码:255.0.0.0或 0xFF000000)
第一个字节为网络号,后三个字节为主机号。
该类IP地址的最前面为“0”,所以地址的网络号取值于1~126之间。 -
B类一般用于中等规模网络
(128.1.0.0-191.255.0.0)(默认子网掩码:255.255.0.0或0xFFFF0000)
前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为“10”,所以地址的网络号取值于128~191之间。 -
C类一般用于小型网络
(192.0.1.0-223.255.255.0)(子网掩码:255.255.255.0或 0xFFFFFF00)
前三个字节为网络号,最后一个字节为主机号。该类IP地址的最前面为“110”,所以地址的网络号取值于192~223之间。 -
D类:是多播地址
该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。一般用于多路广播用户 。 -
E类:是保留地址
该类IP地址的最前面为“1111”,所以地址的网络号取值于240~255之间。
回送地址:127.0.0.1。 也是本机地址,等效于localhost或本机IP。 一般用于测试使用。例如:ping 127.0.0.1来测试本机TCP/IP是否正常,在不连网的情况下也可以ping通
域名
解决IP记忆问题
端口
端口表示计算机上一个程序的进程,不同的进程有不同的端口号
被规定:0-65535
TCP/UDP:65535*2
其中单个协议下端口号不能冲突(不同协议下端口号可以相同
端口分类
- 公有端口:0-1023
- HTTP:80
- HTTPS:443
- FTP:21
- Telent:23
- 程序注册端口:1024-49151
- Tomcat:8080
- MySQL:3306
- Oracle:1521
- 动态端口/私有端口:49152-65535
查看所有端口:netstat -ano
查找特定端口:netstat -ano|findstr "端口号"
查看指定端口的进程:tasklist|findstr "端口号"
打开任务管理器:Ctrl+Shift+ESC
通信协议
TCP/IP
是指利用 IP 进行通信时所必须用到的协议群的统称,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。
- TCP:用户传输协议
- UDP:用户数据报协议
- IP:网络互连协议
为了使计算机接入互联网,必须使计算机遵循TCP/IP协议
遵循其他协议如:NetBIOS、AppleTalk协议等无法接入互联网