[JAVAEE] 网络基础
目录
一. IP Port
二. 网络协议
三. 五元组
四. 协议分层
五. OSI七层模型
六. TCP/IP五层模型
七. 其他补充
八. 总结
一. IP Port
IP地址: 标记网络中一台设备的位置, 即用来定位主机的网络地址.
IP地址是一个32位的二进制数, 被分割成4个 "八位的二进制数".
例如: 00000000.00000000.00000000.00000000.
通常用点分十进制的方法表示, 即a.b.c.d.
例如: 127.0.0.1
所以, IP地址表示的最大范围是, 255.255.255.255 (2^8-1)
端口号: 区分一台主机上的不同应用程序, 即用来定位主机上的进程.
端口号是0~65535之间的数字. (2^16-1)
端口号之间存在竞争的关系.
二. 网络协议
网络协议, 简称协议. 是通信双方发送/接受数据的约定, 是双方共同的规范.
最终体现为网络上传输的数据包的格式.
三. 五元组
在TCP/IP协议(后面介绍)中, 用五元组来标记一个网络通信:
源IP: 标识源主机.
源端口: 标识源主机中此次网络通信发送数据的进程.
目的IP: 标识目的主机.
目的端口: 标识目的主机中此次网络通信接收数据的进程.
协议:标识发送进程和接收进程双方约定的数据格式.
四. 协议分层
每一个层次, 定义不同的协议.(相同层次, 协议相同)
同一层之间的设备通讯, 不需要关注底层是如何实现的, 只需要调用底层的接口进行信息传输即可.
注意: 不能够跨层交互, 而是每两层之间进行交互.
协议分层的好处: 1. 封装 2. 解耦合
分为使用方和提供方:
对于使用方来说, 不需要关系接口内部是如何实现的, 只需要会使用即可.
对于提供方来说, 利用封装的特性, 隐藏了接口内部的实现细节, 对外只提供一些接口.
五. OSI七层模型
OSI open system interconnection, 即开放系统互连.
六. TCP/IP五层模型
但是OSI七层模型既复杂也不使用, 因此使用更多的还是 TCP/IP五层模型.
应用层: 负责应⽤程序间沟通,如简单电⼦邮件传输(SMTP)、⽂件传输协议(FTP)、⽹络远 程访问协议(Telnet)等。我们的⽹络编程主要就是针对应⽤层.
传输层: 负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发 送到⽬标主机.
网络层: 负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识⼀台主机,并通过路由表 的⽅式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)⼯作在⽹路层。
数据链路层: 负责设备之间的数据帧的传送和识别。例如⽹卡设备的驱动、帧同步(就是说从⽹线上 检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就⾃动重发)、数据差错校验等⼯作。 有以太⽹、令牌环⽹,⽆线LAN等标准。交换机(Switch)⼯作在数据链路层。
物理层: 负责光/电信号的传递⽅式。⽐如现在以太⽹通⽤的⽹线(双绞 线)、早期以太⽹采⽤的的同 轴电缆(现在主要⽤于有线电视)、光纤,现在的wifi⽆线⽹使⽤电磁波等都属于物理层的概念。物理 层的能⼒决定了最⼤传输速率、传输距离、抗⼲扰性等。集线器(Hub)⼯作在物理层
一些网络设备所在分层:(重要)
集线器: 物理层
交换机: 物理层, 数据链路层
路由器: 物理层, 数据链路层, 网络层
主机: 物理层, 数据链路层, 网络层, 传输层
七. 其他补充
1. 序列化: 结构化的数据 => 二进制/字符流
反序列化: 二进制/字符流 => 结构化的数据
2. 数据报/包 = 报头 + 载荷
报头中存储的是IP/Port, 载荷中存储的是数据信息.
八. 总结
1. IP地址和端口号 IP定位主机的网络地址, 端口号定位主机中进程
2. 网络协议, 通信双方发送/接收数据的约定, 共同遵守的规范.
3. 五元组(源ip, 源端口, 目的ip, 目的端口, 网络协议)
4. 协议分层(封装, 解耦合)
5. OSI七层模型, TCP/IP五层模型
6. 数据包 = 报头 + 载荷 (报头中存储的是IP/Port, 载荷中存储的是数据信息)
7. 序列化, 反序列化