本系列可作为JAVAEE初阶学习系列的笔记,文中提到的一些练习的代码,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。
点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励!
系列文章目录
目录
目录
[1.1 独立模式](#1.1 独立模式)
[三、局域网 LAN](#三、局域网 LAN)
[3.1 什么是局域网](#3.1 什么是局域网)
[3.2 局域网特点](#3.2 局域网特点)
[3.3 局域网组建方式](#3.3 局域网组建方式)
[第二种:集线器 Hub](#第二种:集线器 Hub)
[第三种:交换机 Switch](#第三种:交换机 Switch)
[四、广域网 WAN](#四、广域网 WAN)
[4.1 什么是广域网](#4.1 什么是广域网)
[4.2 互联网是什么](#4.2 互联网是什么)
[6.1 为什么需要IP](#6.1 为什么需要IP)
[6.2 IP地址作用](#6.2 IP地址作用)
[6.3 IP地址格式](#6.3 IP地址格式)
[6.4 为什么每段最大255](#6.4 为什么每段最大255)
[七、端口号 Port](#七、端口号 Port)
[7.1 为什么需要端口](#7.1 为什么需要端口)
[7.2 端口作用](#7.2 端口作用)
[7.3 端口范围](#7.3 端口范围)
[八、协议 Protocol](#八、协议 Protocol)
[8.1 为什么需要协议](#8.1 为什么需要协议)
[8.2 协议定义](#8.2 协议定义)
[8.3 协议的现实例子](#8.3 协议的现实例子)
[集线器 Hub](#集线器 Hub)
[交换机 Switch](#交换机 Switch)
[路由器 Router](#路由器 Router)
前言
小编作为新晋码农一枚,会定期整理一些写的比较好的代码,作为自己的学习笔记,会试着做一下批注和补充,如转载或者参考他人文献会标明出处,非商用,如有侵权会删改!欢迎大家斧正和讨论!
很多同学刚接触网络时都会有这样的疑问:
-
微信消息为什么能发送到别人手机?
-
浏览器输入网址之后发生了什么?
-
IP地址到底是什么?
-
为什么还需要端口号?
-
TCP/IP 和 OSI 七层模型有什么区别?
-
路由器、交换机分别工作在哪一层?
这些问题看似复杂,其实都建立在网络原理的基础之上。
学习网络最重要的一件事:
理解数据是如何从一台计算机传输到另一台计算机的。
掌握这一点之后:
-
Socket编程
-
TCP/IP协议
-
HTTP协议
-
Web开发
-
分布式系统
-
云计算
都会变得容易理解。
一、网络发展史
1.1 独立模式
最早期的计算机是彼此独立工作的。
例如:
计算机A
计算机B
计算机C
三台机器之间互不通信。
每台机器:
-
保存自己的数据
-
运行自己的程序
-
互相不知道对方存在
这种模式称为:
独立模式(Standalone Mode)
独立模式的问题
假设:
小松在电脑A工作
小竹在电脑B工作
小梅在电脑C工作
如果需要共享数据:
A → U盘 → B
只能通过人工拷贝。
问题:
-
效率低
-
数据不一致
-
协同困难
因此出现了网络。
二、网络互连
随着业务的发展,人们希望:
-
共享软件
-
共享数据
-
多台计算机协同工作
于是出现:
网络互连(Network Interconnection)
网络互连本质
很多同学认为:
网络 = 上网
其实不是。
网络本质:
数据传输
即:
计算机A
↓
网络
↓
计算机B
把数据传过去。
因此:
数据共享的本质就是网络数据传输。
三、局域网 LAN
3.1 什么是局域网
LAN:
Local Area Network
即:
局域网
特点:
-
本地网络
-
私有网络
-
范围较小
例如:
-
家庭网络
-
学校机房
-
公司办公室
都属于局域网。
3.2 局域网特点
局域网中的主机:
PC1
PC2
PC3
可以方便通信。
因此局域网又叫:
内网
不同局域网之间:
LAN1
LAN2
如果没有连接:
不能通信
3.3 局域网组建方式
课件介绍了四种方式。
第一种:网线直连
PC1 ----- PC2 ----- PC3
优点:
- 简单
缺点:
-
扩展困难
-
管理困难
第二种:集线器 Hub
Hub
/ | \
/ | \
PC1 PC2 PC3
特点:
- 所有数据广播
例如:
PC1发送数据
Hub
↓↓↓
PC1 PC2 PC3
全部收到。
第三种:交换机 Switch
Switch
/ | \
/ | \
PC1 PC2 PC3
交换机比Hub智能。
它知道:
谁是谁
因此:
定向转发
效率更高。
第四种:交换机+路由器
企业网络常见结构:
Router
/ \
/ \
SwitchA SwitchB
形成多个网段。
四、广域网 WAN
4.1 什么是广域网
WAN:
Wide Area Network
即:
广域网
多个局域网通过路由器连接起来形成的大型网络。
例如:
北京公司
上海公司
深圳公司
通过专线连接。
形成:
WAN
4.2 互联网是什么
互联网:
Internet
其实也是:
广域网
只不过是:
全球最大的广域网
课件中特别强调:
互联网属于广域网的一个子集。
五、网络通信基础
网络互连的目的:
通信
进一步说:
进程与进程之间通信
而不是:
电脑与电脑通信
本质:
QQ进程
↓
微信进程
↓
浏览器进程
之间的数据交换。
六、IP地址
6.1 为什么需要IP
假设快递:
寄给张三
首先需要:
地址
网络同理。
必须知道:
发送给哪台主机
因此需要:
IP地址
6.2 IP地址作用
IP:
Internet Protocol Address
作用:
定位主机
即:
网络中的门牌号
6.3 IP地址格式
IPv4:
32位二进制
例如:
01100100
00000100
00000101
00000110
写作:
100.4.5.6
称:
点分十进制
6.4 为什么每段最大255
因为:
8位二进制
最大:
11111111
即:
255
所以:
0~255
七、端口号 Port
7.1 为什么需要端口
有了IP只能找到电脑。
例如:
192.168.1.100
但是电脑中运行:
微信
QQ
浏览器
IDEA
MySQL
到底给谁?
需要:
端口号
7.2 端口作用
端口:
定位进程
所以:
IP = 找电脑
Port = 找程序
7.3 端口范围
0 ~ 65535
因为:
16位
最大:
2^16 - 1
=
65535
八、协议 Protocol
8.1 为什么需要协议
网络上传输:
010101010101
接收方怎么知道:
-
是图片?
-
是视频?
-
是文本?
不知道。
所以:
双方必须约定格式
这就是协议。
8.2 协议定义
协议:
Protocol
即:
网络通信规则
包括:
-
如何连接
-
如何识别
-
如何传输
最终体现:
数据包格式
8.3 协议的现实例子
见网友:
胸前插玫瑰花
双方提前约定:
玫瑰花 = 接头暗号
这就是协议。
九、五元组
TCP/IP中:
一个网络通信由五元组唯一确定。
五元组组成
源IP
源端口
目的IP
目的端口
协议号
举例
微信发送消息:
源IP:
192.168.1.100
源端口:
50000
目的IP:
42.156.xxx.xxx
目的端口:
443
协议:
TCP
这五个信息一起:
唯一标识一次通信
快递理解法
寄件地址
寄件人
收件地址
收件人
快递公司
对应:
源IP
源端口
目的IP
目的端口
协议
课件专门用快递进行了类比。
十、查看五元组
Windows:
netstat -ano
查看:
-
IP
-
Port
-
状态
-
PID
过滤:
netstat -ano | findstr 8080
查看指定端口。
十一、协议分层思想
为什么要分层
网络太复杂。
如果所有内容写一起:
10万行代码
无法维护。
因此:
分层
课件把它类比为:
面向接口编程
分层好处
低耦合
调用者:
service.login()
不用关心实现。
高扩展
修改底层:
WiFi
↓
5G
应用层不变。
易维护
出现问题:
定位到具体层
即可。
十二、OSI七层模型
OSI:
Open System Interconnection
开放系统互连模型。
七层结构
7 应用层
6 表示层
5 会话层
4 传输层
3 网络层
2 数据链路层
1 物理层
应用层
面向应用。
协议:
-
HTTP
-
FTP
-
SMTP
功能:
直接服务用户
表示层
负责:
编码转换
格式转换
加密解密
会话层
负责:
建立会话
维持会话
关闭会话
传输层
负责:
可靠传输
典型协议:
TCP
UDP
网络层
负责:
IP寻址
路由选择
典型协议:
IP
数据链路层
负责:
帧传输
差错检测
MAC地址
物理层
负责:
光信号
电信号
无线电波
十三、TCP/IP五层模型
OSI太复杂。
现实世界真正使用:
TCP/IP模型
五层结构
应用层
传输层
网络层
数据链路层
物理层
应用层
协议:
HTTP
HTTPS
FTP
SMTP
DNS
程序员最常接触的一层。
传输层
协议:
TCP
UDP
功能:
可靠传输
网络层
协议:
IP
功能:
寻址和路由
数据链路层
协议:
以太网
802.11(WiFi)
负责:
局域网传输
网线/光纤对应以太网协议,WiFi对应802.11协议,本质都属于数据链路层协议。
物理层
负责:
0和1的传输
介质:
-
网线
-
光纤
-
电磁波
十四、网络设备工作在哪一层
集线器 Hub
工作:
物理层
只负责转发电信号。
交换机 Switch
工作:
数据链路层
二层转发。
交换机 = 二层设备
路由器 Router
工作:
网络层
三层转发。
路由器 = 三层设备
十五、封装与分用(面试高频)
这是网络最核心知识之一。
课堂笔记中专门用 QQ 消息进行了完整演示。
封装
发送:
hello
应用层:
hello
↓
TCP层加头
TCP头
hello
↓
IP层加头
IP头
TCP头
hello
↓
以太网层加头尾
帧头
IP头
TCP头
hello
帧尾
↓
转成:
01010101
发送。
封装口诀
层层加头
最后发走
十六、分用
接收方过程相反。
第一步
网卡收到:
01010101
恢复数据。
第二步
数据链路层解析:
帧头
帧尾
去掉。
第三步
网络层解析:
IP头
去掉。
第四步
传输层解析:
TCP头
去掉。
第五步
应用层得到:
hello
显示给用户。
课堂笔记将此过程称为:
分用
十七、面试总结(必须背下来)
IP和端口区别
IP:
定位主机
端口:
定位进程
为什么需要协议
统一数据格式
五元组
源IP
源端口
目的IP
目的端口
协议号
OSI七层
应用
表示
会话
传输
网络
数据链路
物理
口诀:
应表会传网数物
TCP/IP五层
应用
传输
网络
数据链路
物理
设备工作层次
| 设备 | 工作层 |
|---|---|
| Hub | 物理层 |
| Switch | 数据链路层 |
| Router | 网络层 |
封装与分用
发送:
应用层
↓
传输层
↓
网络层
↓
链路层
↓
物理层
接收:
物理层
↑
链路层
↑
网络层
↑
传输层
↑
应用层
总结
学习网络原理最重要的主线只有一句话:
数据如何从一个进程,经过协议栈、网络设备和传输介质,最终到达另一个进程。
整个过程涉及:
-
IP地址定位主机;
-
端口号定位进程;
-
协议规定数据格式;
-
五元组唯一标识通信;
-
TCP/IP协议栈负责分层处理;
-
交换机负责二层转发;
-
路由器负责三层转发;
-
数据通过封装与分用完成跨网络传输。
掌握这些内容后,你就具备了学习:
-
Socket编程
-
TCP/IP
-
HTTP
-
Netty
-
Linux网络编程
-
分布式系统
的基础。
适合收藏背诵的一句话:
网络通信 = IP定位主机 + Port定位进程 + Protocol规定格式 + TCP/IP协议栈完成数据传输。

总结
以上就是今天要讲的内容,本文简单记录了数据结构学习内容,仅作为一份简单的笔记使用,大家根据注释理解,您的点赞关注收藏就是对小编最大的鼓励!