【JavaEE初阶】网络初识

摄影分享~~
人间烟火味,最抚凡人心。
【JavaEE初阶】网络初识_第1张图片
【JavaEE初阶】网络初识_第2张图片

文章目录

  • 网络发展
    • 独立模式
    • 网络互联
    • 局域网LAN
    • 广域网WAN
  • 网络通信基础
    • IP地址
    • 端口号
  • 认识协议
    • 概念
    • 五元组
    • 协议分层
    • OSI七层模型
    • TCP/IP五层(或四层)模型
    • 网络设备所在分层
    • 网络分层对应

网络发展

独立模式

独立模式:计算机之间相互独立。
【JavaEE初阶】网络初识_第3张图片

网络互联

随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成
业务,就有了网络互连。
网络互连:将多台计算机连接在一起,完成数据共享。
数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。
根据网络互连的规模不同,可以划分为局域网广域网

局域网LAN

局域网,即 Local Area Network,简称LAN。
Local 即标识了局域网是本地,局部组建的一种私有网络。局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。
(1)基于网线直连
【JavaEE初阶】网络初识_第4张图片
(2)基于集线器组建
【JavaEE初阶】网络初识_第5张图片
(3)基于交换机组建
【JavaEE初阶】网络初识_第6张图片
(4)基于交换机和路由器组建
【JavaEE初阶】网络初识_第7张图片
交换机:组建局域网
路由器:本质是把两个局域网连起来

广域网WAN

广域网,即 Wide Area Network,简称WAN。
通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的
局域网都属于其子网。
【JavaEE初阶】网络初识_第8张图片

网络通信基础

IP地址

IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机
的网络地址。

就像我们发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。

格式:
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:
01100100.00000100.00000101.00000110。
通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如:
100.4.5.6。

特殊IP

127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开
发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。

IP地址解决了网络通信时,定位网络主机的问题,但是还存在一个问题,传输到目的主机后,由哪个进
程来接收这个数据呢?这就需要端口号来标识。

端口号

在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简
单说:端口号用于定位主机中的进程
类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货人(端口号)。

格式:端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。

注意事项:
两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。

认识协议

概念

协议是通信网络中最核心的概念。它是一个约定,商量好数据是啥样的格式来进行传输的。有了这个约定,才能让双方理解对方的含义。

协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从
的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互
通信交流。通常由三要素组成:
(1)语法:即数据与控制信息的结构或格式;

类似打电话时,双方要使用同样的语言:普通话

(2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;

语义主要用来说明通信双方应当怎么做。用于协调与差错处理的控制信息。
类似打电话时,说话的内容。一方道:你瞅啥?另一方就得有对应的响应:瞅你咋的!

(3)时序,即事件实现顺序的详细说明

时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是
异步传输。
女生和男生的通话,总是由男生主动发起通话,而总是在男生恋恋不舍的时候,由女生要求
结束通话。

网络通信,是一个比较复杂的史强,需求场景复杂了,实现功能也会比较复杂,如果这个协议太复杂,那么学习成本,使用成本,理解成本,维护成本都会比较高。因此,实际中,是针对这个复杂的大协议,拆成若干个相对简单的小协议。

针对这些小的协议,再进行“分类”。(分层)

五元组

在TCP/IP协议中,用五元组来标识一个网络通信:

  1. 源IP:标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的IP:标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双方约定的数据格式【JavaEE初阶】网络初识_第9张图片

协议分层

协议分层有很多好处

  1. 降低学习和维护成本
  2. 灵活的针对这里的某一层协议进行替换

【JavaEE初阶】网络初识_第10张图片

OSI七层模型

当前互联网世界,协议分层有两种风格:
(1) OSI七层网络模型
(2)TCP\IP五层网络模型
OSI七层模型分为以下七层:
【JavaEE初阶】网络初识_第11张图片
【JavaEE初阶】网络初识_第12张图片
OSI 七层模型既复杂又不实用:所以 OSI 七层模型没有落地、实现。
实际组建网络时,只是以 OSI 七层模型设计中的部分分层,也即是以下 TCP/IP 五层(或四层)模型来实现。

TCP/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
【JavaEE初阶】网络初识_第13张图片
越往下的,越接近硬件设备。越往上,就越接近用户。
网络分层:相当于上层协议要调用下层协议。下层协议给上层协议提供服务。

举个:
我在淘宝上买了一件衣服,需要填写收件人地址和收件人姓名。

物理层:约定了网络通信中基础的硬件设备。
数据连接层/网卡层:主要负责相邻的两个节点之间具体的传输。

(相邻的两个节点就是指从浙江到湖南,从湖南到陕西这种传输途径。)

网络层:主要负责路径规划,走那条路比较划算。

(比如快递是从浙江义乌到西安,有很多途径可以选择,走哪一条路,怎么走,就是网络层关心的)

传输层:只关心起点到终点(端与端之间的传输)。

(站在我和商家的角度。我们不关心快递传输的过程,只关心起点和终点。这个过程就是传输层的工作。)

应用层:描述了数据的传输。用户要怎么来使用。

(我买了一个刷子,我可以用来刷鞋,刷梳子,刷羽绒服…)

【JavaEE初阶】网络初识_第14张图片
节点:上述设备的统称,任何一个连入网络的交换机,路由器,电脑都可以成为“节点”。
相邻节点:通过一根线连在一起。
【JavaEE初阶】网络初识_第15张图片

网络设备所在分层

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四 层
  • 对于一台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层;
  • 对于一台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;
  • 对于集线器,它只实现了物理层;

注意我们这里说的是传统意义上的交换机和路由器,也称为二层交换机(工作在TCP/IP五层模型的下两
层)、三层路由器(工作在TCP/IP五层模型的下三层)。
随着现在网络设备技术的不断发展,也出现了很多3层或4层交换机,4层路由器。我们以下说的网络设
备都是传统意义上的交换机和路由器。

网络分层对应

用户在输入框输入“hello”这个字符串,qq这个应用程序,就把这个字符串,构造成一个应用层数据报。
应用层数据报本质上就是一个遵守了约定格式的字符串。

发送方:

  1. 应用层
    一个假设的应用层协议的格式:
    发送QQ号;发送时间;接收方QQ号;消息内容
    【JavaEE初阶】网络初识_第16张图片
    程序要调用操作系统的api,把这个应用层数据,交给传输层。

  2. 传输层(进入操作系统内核)
    在传输层中,要把上述应用层程序构造成传输层的 数据报。
    传输层使用到的协议:最知名的UDP和TCP
    比如此处使用UDP,就需要构造出UDP数据报。(在应用层基础上,加上UDP报头)
    【JavaEE初阶】网络初识_第17张图片
    此处相当于字符串拼接,将报头和后面数据拼接在一起。
    所谓“报头”就是一个“标签”
    通过标签标示出当前要把这个消息怎样进行传输。
    传输层就把这个UDP数据报交给“网络层”。

那么为什么要网上拼报头呢?
商家给我们发货,也是要套上包装的。比如一件T恤,要先套上一层塑料,再套一个纸盒。外面再套纸壳的盒…
一方面是防止衣服脏了或者运输过程损坏了。另一方面,可以在包装上面贴标签。标签上可以写一些信息。
这是快递传输中必要的内容。

  1. 网络层
    最知名的协议:IP协议。IP协议要基于上述数据,打包成一个IP数据报。
    【JavaEE初阶】网络初识_第18张图片
    这里的IP报头也相当于是一个字符串,包含了另外一组信息(最核心的信息,源IP和目的IP)
    网络层数据准备好,还需要进一步的交给数据链路层。
  2. 数据链路层
    最知名的协议:以太网。基于上述数据,还要打包成一个以太网数据帧
    【JavaEE初阶】网络初识_第19张图片

接下来这个数据继续往下传输,交给物理层。

  1. 物理层
    把上述二进制的数据(一串101010)转换成电信号/光信号。

此时就把真正的数据发出去了。

知识拓展:
表示一个网络传输的数据单位
包(packet)
报(datagram)
帧(frame)
端(segment)

上述过程,从应用层到物理层,层层加码,这个过程称为封装。

接收方:
(1)物理层
网卡接收到的信号是光信号和电信号,是在物理层,把这个光电信号转换回二进制的数据
转换回的这个数据,其实是一个以太网数据帧。

(2)把这个数据交给数据链路层尽心解析:

【JavaEE初阶】网络初识_第20张图片
数据链路层没需要去掉帧头帧尾。取出中间的载荷。再交给上层的网络层。IP协议
以太网数据帧帧头里也会记录,这个载荷是不是一个IP数据报。

(3)网络层,IP写针对这里进行解析,解析出IP报头,取出IP协议的载荷,把这里得到的数据层数据报,交给上层传输层。
【JavaEE初阶】网络初识_第21张图片
IP报头里会记录载荷是UDP还是TCP

(4)传输层:UDP再进行解析,取出报头,取出载荷,再把这个载荷交给对应的应用程序层。
【JavaEE初阶】网络初识_第22张图片
UDP报头中有一个重要字段“目的端口”,目的端口是一个具体的应用程序,关联在一起的。因此就可以根据这个端口来把数据交给应用程序了。

(5)应用层:QQ应用程序,QQ就会针对应用层协议进行解析,显示到页面上。
【JavaEE初阶】网络初识_第23张图片
上述过程,从下到上,层层解析,这个过程称为“分用”。

封装:包装快递
分用:拆快递。

整个的网络协议中,协议分为了很多层。
上层协议要调用下层协议(上层吧数据交给下层,继续封装)。
下层要给上层协议提供支持(下层协议解析好数据,交给上层)。

这里的几层协议之间是有明确的层级关系的,只有响铃的两层之间才能够进行交互。(不能跨层交互)

你可能感兴趣的:(JavaEE初阶,网络,智能路由器,运维)