Lesson 10
网络Networks
基本认知
前端后端 与 前台后台
英文 | 中文 | 解释 | 案例 |
---|---|---|---|
Backend / Server | 后端 | 服务器,看不见的逻辑 | Spring |
Frontend | 前端 | 网页 / 客户端 / CLI,看得见的 | React / iOS / aws cli |
Admin Page | 后台 | 给管理员看的 | 订单管理 |
Customer Page | 前台 | 给用户看的 | 客户下单 |
事实
前台 和 后台 都是 前端,都有对应的后端
服务器 与 服务器
概念 | 案例 |
---|---|
硬件 | 一个 用于运行服务器软件的 机器 |
软件 | 一个 运行在服务器硬件上的 程序 |
通信
通信概念
比如 一台机器里的程序 想发送信息 给 另外一台机器里的程序
就像 一个大楼里的小明 想发送情书 给 另外一个大楼里的小红
问题
如何确保情书发到小红?
如何确保是小红收到了情书?
需要提出哪些概念来保障物流配送的运转?
IP 地址 与 街道号码
什么是
计算机里的虚拟的街道号码
99.17.00.02 IPv4
0-255 x 4

Mask 掩码 与 IP 范围
99.17.00.00 / 8
代表
99.xx.xx.xx

原因
99.17.00.00 01100011.00010001.00000000.00000000 --------/8
分配
国家、公司 都有 预分配的 ip 地址范围

特性分析
低可读性
不能作为广告内容
低稳定性
同一个 ip 地址,在不同的时间 可能是不同的真实用户
Domain Name 域名
是什么
人能看懂的地址的名称
zzax.io
DNS 域名服务器
用于域名解析
把 域名 变成 IP 地址
存储着 域名 -> ip 的映射

ping 指令
ping <domain name>
Mac 地址
背景
一台设备会在联网时绑定一个 ip
在换地址之后,会绑定新的 ip

诉求
不要把消息发错人
什么是
每台计算机的网卡都有自己的身份证号码
Port 端口号
是什么
一个网卡可以认为是一栋楼
里面会有多个房间
Port 是端口号
是程序 发给 程序

认知
一栋楼 有 2万多个 port 可以使用
一个 port 只能供给一个 program
一个 program 可以占用多个 port
物流公司
TCP / IP
IP + Port
我们家不会丢包,但是速度慢
相关名词
Socket
UDP
我们家发的快,但是丢包我不管
TCP 与 Socket 通信
TCP 基本步骤
建立连接
服务器等待连接
客户端发起连接
互发数据
接收方等待数据
发送方发送数据
服务器等待连接
需要监听端口
代码会在此行卡顿,类似 Console.readInt()
1 ServerSocket serverSocket = new ServerSocket(8080);
客户端发起连接
需要指明 host 地址(ip / 域名)
需要指明 端口号
1 Socket socket = new Socket("localhost", 8080);
接收方等待数据
等待输入流的数据
1 2+3+ServerSocket serverSocket = new ServerSocket(8080);int value = socket.getInputStream().read();System.out.println(value);
发送方发送数据
发送数据
1 2+Socket socket = new Socket("localhost", 8080);socket.getOutputStream().write(3);
备注
服务器返回数据给客户端
服务器不死
byte数组与序列化