JAVA EE初阶---DAY 2 计算机网络

本系列可作为JAVAEE初阶学习系列的笔记,文中提到的一些练习的代码,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。

点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励! 

系列文章目录

JAVA初阶---------已更完

JAVA数据结构---------已更完

数据库已更完-----------已更完

JAVA EE初阶---DAY 1 计算机是如何工作的

JAVA EE初阶---DAY 2 计算机网络


目录

目录

系列文章目录

目录

前言

一、网络发展史

1.1 独立模式

独立模式的问题

二、网络互连

网络互连本质

三、局域网 LAN

3.1 什么是局域网

3.2 局域网特点

3.3 局域网组建方式

第一种:网线直连

第二种:集线器 Hub

第三种:交换机 Switch

第四种:交换机+路由器

四、广域网 WAN

4.1 什么是广域网

4.2 互联网是什么

五、网络通信基础

六、IP地址

6.1 为什么需要IP

6.2 IP地址作用

6.3 IP地址格式

6.4 为什么每段最大255

七、端口号 Port

7.1 为什么需要端口

7.2 端口作用

7.3 端口范围

八、协议 Protocol

8.1 为什么需要协议

8.2 协议定义

8.3 协议的现实例子

九、五元组

五元组组成

举例

快递理解法

十、查看五元组

十一、协议分层思想

为什么要分层

分层好处

低耦合

高扩展

易维护

十二、OSI七层模型

七层结构

应用层

表示层

会话层

传输层

网络层

数据链路层

物理层

十三、TCP/IP五层模型

五层结构

应用层

传输层

网络层

数据链路层

物理层

十四、网络设备工作在哪一层

集线器 Hub

交换机 Switch

路由器 Router

十五、封装与分用(面试高频)

封装

封装口诀

十六、分用

第一步

第二步

第三步

第四步

第五步

十七、面试总结(必须背下来)

IP和端口区别

为什么需要协议

五元组

OSI七层

TCP/IP五层

设备工作层次

封装与分用

总结

总结


前言

小编作为新晋码农一枚,会定期整理一些写的比较好的代码,作为自己的学习笔记,会试着做一下批注和补充,如转载或者参考他人文献会标明出处,非商用,如有侵权会删改!欢迎大家斧正和讨论!

很多同学刚接触网络时都会有这样的疑问:

  • 微信消息为什么能发送到别人手机?

  • 浏览器输入网址之后发生了什么?

  • 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网络层

封装与分用

发送:

应用层
↓
传输层
↓
网络层
↓
链路层
↓
物理层

接收:

物理层
↑
链路层
↑
网络层
↑
传输层
↑
应用层

总结

学习网络原理最重要的主线只有一句话:

数据如何从一个进程,经过协议栈、网络设备和传输介质,最终到达另一个进程。

整个过程涉及:

  1. IP地址定位主机;

  2. 端口号定位进程;

  3. 协议规定数据格式;

  4. 五元组唯一标识通信;

  5. TCP/IP协议栈负责分层处理;

  6. 交换机负责二层转发;

  7. 路由器负责三层转发;

  8. 数据通过封装与分用完成跨网络传输。

掌握这些内容后,你就具备了学习:

  • Socket编程

  • TCP/IP

  • HTTP

  • Netty

  • Linux网络编程

  • 分布式系统

的基础。

适合收藏背诵的一句话:

网络通信 = IP定位主机 + Port定位进程 + Protocol规定格式 + TCP/IP协议栈完成数据传输。


总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yvonne爱编码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值