网络的相关概念
网络通信
网络
1. 要想实现网络通信,需要解决的三个问题:
问题1:如何准确地定位网络上一台或多台主机
问题2:如何定位主机上的特定的应用
问题3:找到主机后,如何可靠、高效地进行数据传输
2. 实现网络传输的三个要素:(对应解决三个问题)
- 使用IP地址(准确地定位网络上一台或多台主机)
- 使用端口号(定位主机上的特定的应用)
- 规范网络通信协议(可靠、高效地进行数据传输)
3. 通信要素1:IP地址
3.1 作用
IP地址用来给网络中的一台计算机设备做唯一的编号
3.2 IP地址分类
IP地址分类方式1
IPv4(占用4个字节)
IPv6(占用16个字节)
IP地址分类方式2
公网地址(万维网使用)和私有地址(局域网使用,以192.168开头)
3.3 本地回路地址:127.0.0.1
本地回路地址通常指的是IPv4地址的环回地址(Loopback Address),在大多数情况下是 127.0.0.1
。IPv6的环回地址则是 ::1
。
3.4 域名:便捷的记录ip地址
4.通信要素2:端口号
- 可以唯一标识主机中的进程(应用程序)
- 不同的进程分配不同的端口号
- 范围:0~65535
5.InetAddress的使用
5.1 作用
InetAddress类的一个实例就代表一个具体的ip地址。
5.2 实例化方式
InetAddress getByName(string host)
:获取指定ip对应的InetAddress的实例
InetAddress getLocalHost()
:获取本地ip对应的InetAddress的实例
public class InetAddressTest {
public static void main(String[] args) {
try {
// 1.实例化
// getByName(String host):获取指定ip对应的InetAddress的实例
InetAddress inet1 = InetAddress.getByName("192.168.23.31");
System.out.println(inet1); // /192.168.23.31
InetAddress inet2 = InetAddress.getByName("www.bilibili.com");
System.out.println(inet2); // www.bilibili.com/121.194.11.73
//getLocalHost():获取本地ip对应的InetAddress的实例
InetAddress inet3 = InetAddress.getLocalHost();
System.out.println(inet3); // LAPTOP-04B9NQB6/192.168.1.70\
InetAddress inet4 = InetAddress.getByName("127.0.0.1");
System.out.println(inet4); // /127.0.0.1
// 2.两个常用的方法
// 获取对应的域名
System.out.println(inet2.getHostName()); // www.bilibili.com
// 获取对应的ip地址
System.out.println(inet2.getHostAddress()); // 121.194.11.73
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
5.3 常用方法
6.通信要素3:通信协议
6.1 网络通信协议的目的
为了实现可靠而高效的数据传输。
6.2 网络参考模型
0SI参考模型:将网络分为7层,过于理想化,没有实施起来。
TCP/IP参考模型:将网络分为4层:应用层、传输层、网络层、物理+数据链路层。事实上使用的标准