【JavaEE】【网络原理】初识网络

目录

一、网络互联

网络互联

网络互联是指将两个以上的通信网络通过一定的方法,用一种或多种网络通信设备相互连接起来,以构成更大的网络系统。

网络互联的目的是以实现不同网络中的用户可以进行互相通信、共享软件和数据等。

数据共享

数据共享就是让在不同地方使用不同计算机、不同软件的用户能够读取他人数据并进行各种操作、运算和分析。

本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信

根据网络互连的规模不同,可以划分为局域网和广域网。

二、局域网与广域网

局域网 LAN

局域网,即 Local Area Network,简称LAN。

Local 即标识了局域网是本地,局部组建的一种私有网络。

指在较小的地理区域内,通过传输介质连接的一组计算机及其外围设备的网络 。局域网的传输速度较快,一般在几百Mbps到几Gbps,延迟较低。局域网是一种私有网络,一般在一座建筑物内或建筑物附近,主要用于办公室、学校、研究所或家庭等相对较小的地理范围内。局域网便于共享资源,如打印机、文件服务及其他应用程序,并可实现数据和信息的快速交换。

局域网组建网络的方式:

广域网 WAN

广域网,即 Wide Area Network,简称WAN。

通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网。

连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。广域网并不等同于互联网。

三、网络通信基础

3.1 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。

3.2 端口号

端口号:通俗理解,因为一台主机上会有多个应用程序同时使用网络,二端口号就是区分一台主机上多个应用程序的。

端口号格式:

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

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

3.3 网络协议

网络协议:简单理解就是,通信双方对于发送数据,接收数据格式的约定。最终体现为在网络上传输的数据包的格式。

构成三要素:

  1. 语法:即数据与控制信息的结构或格式;
    类似打电话时,双方要使用同样的语言:普通话
  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
    语义主要用来说明通信双方应当怎么做。用于协调与差错处理的控制信息。
    类似打电话时,说话的内容。一方道:你瞅啥?另一方就得有对应的响应:瞅你咋的!
  3. 时序,即事件实现顺序的详细说明。
    时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是
    异步传输。
    女生和男生的通话,总是由男生主动发起通话,而总是在男生恋恋不舍的时候,由女生要求
    结束通话。

3.4 五元组

五元组:进行一次网络通信,5个非常关键的信息,有源IP,源端口,目的IP,目的端口,协议类型。

  1. 源IP:标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的IP:标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议类型:标识发送进程和接收进程双方约定的数据格式

四、协议分层

协议分层:

网络通信的过程非常复杂,如果一个协议包含了网络通信中的各方面问题,这个协议将非常复杂,庞大。

把一个大的协议,拆分成若干个小协议,功能单一的协议,但是这些协议又过多。

我们就将这些小协议进行归类,讲这些小协议以类型进行分层。

只有两个相邻层的协议之间才能进行交互。

协议分层的好处:

  1. 对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
  2. 对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。
  3. 封装:上层协议不需要了解下层协议的细节。
  4. 解耦:分层之后,灵活的替换其中的某一层,对于整体的工作过程影响很小。

4.1 OSI七层网络模型

OSI七层网络模型:这个体系过于复杂,实际应用的真实网络分层方式更简化。

4.2 TCP/IP五层(四层)网络模型

TCP/IP五层(四层)网络模型:TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。

分为以下五层:

  1. 应用层:关注拿到数据之后怎么使用。负责应用程序间沟通,网络编程主要就是针对应用层。
  2. 传输层:关注两个任意设备之间进行通信,但是不关心中间设备,只关心起点与终点,也就是源主机和目的主机。
  3. 网络层:关注两个任意设备之间如何进行通信。负责地址管理和路由选择。
  4. 数据链路层:完成两个相邻设备之间如何进行通信。负责设备之间的数据帧的传送和识别。
  5. 物理层:规定一些网络通信中的硬件设施符合的要求。负责光/电/电磁信号的传递方式。

有些资料将数据链路层和物理层合在一起,所以也叫TCP/IP四层协议。

4.3 网络设备

主机:工作过程中主要涉及物理层到应用层。通过应用程序满足网络通信的需求。

路由器:工作主要涉及物理层到网络层,组建局域网,进行进行网络数据包之间的转发。

交换机:工作主要涉及物理层到数据链路层,对路由器接口的扩展,不需要考虑组网的问题。

但是现实的路由器和交换机很多都有对方的功能了。

五、网络数据通信基本流程。

5.1 封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报
    (datagram),在链路层叫做帧(frame)。
  • 应⽤层数据通过协议栈发到⽹络上时,每层协议都要加上⼀个数据⾸部(header),称为封装
    (Encapsulation)。
  • ⾸部信息中包含了⼀些类似于⾸部有多⻓,载荷(payload)有多⻓,上层协议是什么等信息。
  • 数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部,根据⾸部中的"上层协议字段"将数据交给对应的上层协议处理,称为分用。

5.2 简述过程

我们就使用两个设备之间的通信,简述发出和接收两个过程。

封装:

  1. 应用程序,获取到用户输入,构造一个"用户数据包 "。
    1.1. 这个用户数据包遵守开发这个程序的程序猿定义的应用层协议。
  2. 应用程序调用传输层提供的API,把数据交给传输层。传输层拿到数据之后构造出"传输层数据段 "。
    2.1. 这个"传输层数据段 "遵守传输层协议,主要是TCP协议,UDP协议。
    2.2. 以TCP协议来说:传输层数据段 ,也就是TCP数据段由TCP段头+TCP载荷。TCP载荷就是"用户数据包 "。
  3. 传输层构造好"传输层数据段 "后,继续调用网络层的API,把"传输层数据段 "交给网络层,网络层拿到数据后构造出"网络层数据报 "。
    3.1. 这个"网络层数据报"遵守网络层协议,主要是IP协议。
    3.2. 以IP协议来说:"网络层数据报 ",也就是IP数据段由IP报头+IP载荷。IP载荷就是"传输层数据段 "。
  4. 网络层构造好"网络层数据报 "后,继续调用数据链路层的API,把"网络层数据报"交给数据链路层,数据链路层拿到后构造出"数据链路层数据帧 "
    4.1. "数据链路层数据帧 " 遵守数据链路层协议,主要是以太网协议。
    4.2. 以以太网协议为例:数据链路层数据帧 ,也就是以太网数据帧由以太网帧头+以太网载荷+以太网帧尾。以太网载荷就是网络层数据报
  5. 数据链路层构造好"数据链路层数据帧 "后,继续调用物理层的API,把"数据链路层数据帧"交给物理层,物理层给网卡,网卡将上诉二进制数据,最终以光/电/电磁信号发送出去。

分用:

  1. 信号到达接受方网卡,网卡将这些信号还原为二进制数据,交给上层数据链路层。
  2. 数据到达数据链路层,通过帧头帧尾包含的数据反应出使用的数据链路层协议,按该协议进行解析,将载荷数据传给上层网络层。
  3. 数据到达网络层,通过报头包含的数据反应出使用的网络层协议,按该协议进行解析,将载荷数据传给上层传输层。
  4. 数据到达传输层,通过段头包含的数据反应出使用的传输层协议,按该协议进行解析,将载荷数据传给上层应用层。
  5. 数据到达应用层,按照程序的应用层协议解析,将信息输出给接受者。

当涉及到路由器与交换机时就有下面工作流程:

路由器工作:

主机的数据 =>路由器,路由器收到之后,物理层,数据链路层,网络层解析 (没有传输层),重新构造出新的网络数据包,构造出以太网数据帧,构造出二进制数据,进行转发。

路由器是工作在网络层,这也叫三层转发。

交换机工作:

主机的数据 =>交换机,交换机收到之后,物理层解析,数据链路层解析(没有网络层了),重新构造出新的以太网数据帧,发给下一个设备数据链路层中,得到的以太网数据帧的帧头,信息就足以支持交换机进行下一步工作。

交换机是工作在数据链路层。这也叫二层转发。

相关推荐
Lws2 小时前
CS144 lab0(个人理解)
网络协议
C++忠实粉丝6 小时前
计算机网络socket编程(2)_UDP网络编程实现网络字典
linux·网络·c++·网络协议·计算机网络·udp
添砖java_8576 小时前
UDP数据报套接字编程
网络·网络协议·udp
lxkj_20248 小时前
修改ffmpeg实现https-flv内容加密
网络协议·https·ffmpeg
千羽星弦8 小时前
Apache和HTTPS证书的生成与安装
网络协议·https·apache
LIT-涛8 小时前
JavaEE初学07
数据库·oracle·java-ee
&梧桐树夏9 小时前
JavaEE 线程安全
java-ee·多线程
界面开发小八哥9 小时前
「Java EE开发指南」如何使用Visual JSF编辑器设计JSP?(一)
java·ide·java-ee·编辑器·myeclipse
先睡9 小时前
javaEE
java·java-ee
冷心笑看丽美人9 小时前
Spring 框架七大模块(Java EE 学习笔记03)
学习·spring·架构·java-ee