JAVA EE_初始网络原理

我仰观峰岭插天,那似乎站着一个人,那人的身影宛如我的镜像

----------陳長生.


1.网络发展历史

1.1.独立模式

独立模式就是计算机之间相互独立

A,B,C三台机子中存有不同的资源,设A机有视频资源,B机有图片资源,c机有音乐资源,假陈长生要其中的两个资源,就要在两台机子中操作,十分麻烦。

但随着时代的进步,人们也解决了这个问题,于是就出现了网络互联的时代。

1.2.网络互联

网络互联就是把各个机子连接在一起,使其能够相互通信以及共享资源。

共享资源为网络互联的主要目的,它的本质就是网络数据传输,即计算机之间通过网络传输数据,我们通常这称为网络通信。

但由于共享的规模 不相同,于是我们又可以分为局域网(小范围)广域网(大范围)

2.网络规模

2.1.局域网LAN

  • 局域网(Local Area Network)简称LAN
  • 局域网为局部区域的私有网络
  • 局域网中的主机能够相互连接,但两个没有建立连接的局域网不能够相互连接

2.1.1.基于网线直连

2.1.2.基于集线器组建

2.1.3.基于路由器组建

2.1.4.基于交换机和路由器组建

2.2.广域网WAN

  • 广域网(Wide Area Network)简称WAN
  • 广域网通过路由器将多个局域网连接在一起,其中的局域网都为它的子网
  • 广域网可以跨城市甚至国家的计算机连接在一起

3.网络通信基础

3.1.IP地址

概念

IP地址是网络中对计算机的唯一标识,用于定义计算机的网络位置

可以理解成网购的时候我们要选择一个地址,这样才能让快递找到客户所在的位置进行配送

格式

IP地址是由32位2进制组成,通常分为4组"8为二进制的树"(称为4个字节)

通常我们使用"点分十进制表示",即a.b.c.d(四个字母的数字范围为0~255)

例子:

255.216.110.110的32位2进制表示为

11111111.11011000.01101110.01101110

3.2.端口号

概念

IP地址是用来标识计算机的网络地址,则端口号就是标识计算机中的进程(应用程序)

依然是网购,我们填入了地址之后,要写我们的姓名和电话号码吧,那么姓名和电话号码就相当于端口号,如果没有这两条信息,快递小哥即使到了地方也不知道要交给谁,同理,计算机的端口号就是在信息传输的时候找到计算机中的目标进程并发送数据。

格式

端口号的范围为0~65535,计算机中的进程可以绑定一个端口号,来发送和接受传输的数据。

3.3.认识协议

虽然通过IP地址和端口号知道目标位置和进程,但是计算机中还有多种格式内容,目标机器如何知道该格式内容是什么呢?

就像我们相亲的时候,如果没有事先说好自己什么样子,即使说好了地点,但又正好有两对相亲对象,这时候就很有可能认错。那么这时候我们就需要约定对方穿什么样的衣服,这样我们就可以识别对方是不是自己的相亲对象。

相对的,在计算机中,相互通信就需要相互约定规则,而这就是网络协议。

3.4.五元组

在TCP/IP中,需要用五元组来标识网络通信

  • 源IP:发送数据的主机
  • 源端口号:发送数据主机的进程
  • 目标IP:接受数据的主机
  • 目标端口号:接受数据主机的进程
  • 协议号:数据双方约定的通信规则

相信大家都看过西游记吧,里面的唐僧讲过:贫僧自东土大唐而来,前往西天拜佛求经

这边的协议号我们就理解成语言吧,如果两个人约定是将中文的情况下,唐僧就能顺利取得真经了

4.协议分层

4.1.什么是协议分层

协议分层类似于打电话,定义不同层次的协议

将语言和设备层分为两层,虽然其中一层会变动,但他们的通信依旧可以进行。

4.2.分层的作用

  • 分层之后,只需要负责自己的功能,使协议变得更加简单
  • 能做到解耦合的现象,单层的内容怎样变动都不会影响到其他层
  • 只需提供端和使用端之间定义好接口规范,两端遵守这个规范来沟通
  • 提供端利用了封装的特性,只需要提供开放端口
  • 使用端不需要知道提供端如何实现接口,只需要使用就好了

4.3.OSI七层模型

OSI(Open Systems Interconnection)开放系统互连模型

  • 为不同计算机之间提供数据传输

|---|-------|---------------------|---|
| 层 | 名称 | 功能 | |
| 7 | 应用层 | 为应用提供各种协议 | |
| 6 | 表示层 | 为计算机固有的数据格式进行转换 | |
| 5 | 会话层 | 建立与断开通信,管理传输层以下 | |
| 4 | 传输层 | 提供点到点的连接 | |
| 3 | 网络层 | 路由功能,网络互联,资源共享,地址管理 | |
| 2 | 数据链路层 | 为连接的设备传送与转换帧 | |
| 1 | 物理层 | 进行物理连接 | |

4.4.TCP/IP模型

TCP/IP即 传输控制协议/互联网协议

|---|-------|-------------|----------------------|
| 层 | 名称 | 对应OSI模型层 | 功能 |
| 4 | 应用层 | 应用层,表示层,会话层 | 负责应用程序之间的沟通 |
| 3 | 传输层 | 传输层 | 提供可靠(TCP)与不可靠(UDP)传输 |
| 2 | 网络层 | 网络层 | 提供地址管理与路由选择 |
| 1 | 网络接口层 | 数据链路层,物理层 | 帧的传输与转换,物理连接 |

4.5.网络设备所在分层

  • 主机的操作系统:在应用层,实现了四层及以下
  • 路由器:在网络层,实现二层及以下
  • 二层交换机:在网络接口层,主要实现数据链路层功能,实现了一层

4.6.封装和分用

不同协议层对数据包多有不同的称谓,例如传输层为段(segment),网络层为包(datagram),数据链路层为帧(frame)。

在应用层发送一个数据给目标主机时,每个协议层都会加一个数据首部(header),该步骤称为封装(Encapsulation)

数据封装成帧后传输到目标主机上时,每一层协议都会刨析对应的数据首部,然后转交给上一层协议处理 ,最后到应用层,使用户能看得见。

这就相当于寄快递和收快递

封装是我们寄快递的时候需要拿箱子装我们寄的东西,然后再贴快递标签,再由快递公司寄出去

分用则是我们收到快递,把标签和箱子去掉,然后再拿到对方给我们寄的东西

相关推荐
ホロHoro8 分钟前
数据结构非线性部分(1)
java·数据结构·算法
Rinai_R12 分钟前
Go 的调度模型
开发语言·后端·golang
t1987512819 分钟前
计算力学中经典四阶常微分方程的MATLAB求解方法
开发语言·matlab
沉下去,苦磨练!20 分钟前
实现二维数组反转
java·数据结构·算法
日更嵌入式的打工仔23 分钟前
Ethercat COE 笔记
网络·笔记·ethercat
桦说编程28 分钟前
实现一个简单的并发度控制执行器
java·后端·性能优化
wjs202429 分钟前
MySQL 复制表
开发语言
Spring AI学习37 分钟前
Spring AI深度解析(11/50):异常处理与容错机制实战
java·人工智能·spring
laocooon52385788642 分钟前
相对名次算法的处理python
开发语言·python·算法
沐知全栈开发42 分钟前
CSS Overflow
开发语言