【JavaEE】(5) 网络原理的基础认识

发布于:2025-06-26 ⋅ 阅读:(21) ⋅ 点赞:(0)

一、国内网络通信的发展史

  • 2000 年左右,大多计算机没有网络,流行玩单机游戏。(自己跟自己玩)
  • 2003 年左右,开始流行局域网对战游戏。(一个网吧人对战)计算机之间如果两两连接,一是没那么多接口,二是线路复杂,所以靠交换机连接。

  • 后来,网游兴起,在广域网上对战。(各个地方的人对战)局域网之间靠路由器连接。

  • 2007 年左右 IPhone 发布,移动互联网时代开启。
  • 2011 年左右 IPhone4 发布,移动互联网崛起。由于 Android 更平民,智能手机开始普及,各种手机应用接踵而至。

二、网络通信基础

1、IP 地址

        IP 地址本质是一个 32 位的整数,但为了便于人理解,将 IP 地址用 3 个 . 分割为了 4 个部分。(点分十进制)每个部分都是一个 0~255 的整数。

        它的用途是区分不同的设备

2、端口号

        本质是一个 16 位的无符号整数,用途是区分同一设备上的不同应用程序

3、协议

        网络本质上是传输“光信号”(光纤,通过不同频率表示0/1)、“电信号”(网线,通过高低电平表示0/1)、“电磁波”(wifi,通过不同频率表示0/1)。

        协议就是通信双方对于0/1数据的传输格式的约定

4、五元组

        一个网络通信由五元组来标识。

  • 源 IP,源端口。(数据从哪来)
  • 目的 IP,目的端口。(到哪去)
  • 协议类型。(如何理解数据)

5、协议分层

5.1、为什么要有协议分层

        用一个协议解决网络通信,非常复杂,因此需要拆分为多个协议,即协议分层,并约定协议与协议之间的调用关系(上层调用下层)。这样有两个好处:

  • 分层后,每个协议只负责一个功能,更易于理解,即封装。
  • 解耦合,可以灵活地对协议进行替换。

5.2、TCP/IP 五层分层模型

        我们的重点是 TCP/IP 五层分层模型,因为它更接近真实的情况:(从下到上:物理层、数据链路层、网络层、传输层、应用层)

  • 物理层:网络通信依赖的硬件设施,如:光纤、电线、天线等。
  • 数据链路层:负责相邻两个节点通信。如:通过硬件设施直接连接两个设备。
  • 网络层:负责任意两个节点之间的路径规划
  • 传输层:只关心传输的起点和终点。
  • 应用层:程序员拿到数据,自行决定如何使用。

5.3、各种网络设备所在分层

  • 一台主机:它的操作系统内核实现了下四层(传输层到物理层)的内容。
  • 一台路由器:实现了下三层
  • 一台交换机:实现了下两层
  • 集线器:实现了物理层

5.4、封装(发送方)

        封装和分用是网络通信的关键环节。以发送 qq 消息为例子。

  • 应用层:用户输入 “hello”,点击发送按钮,qq 应用程序将获取到的字符串封装成应用层数据包。然后调用操作系统的 API 把应用层数据包交给下一层传输层。比如:

  • 传输层:按照传输层协议(主要是 TCP 或 UDP),构造出传输层数据包。然后调用 API 交给网络层。以 UDP 协议为例子:

  • 网络层:主要使用 IP 协议,给传输层数据包填上 IP 报头。然后调用 API 交给数据链路层。

  • 数据链路层:插网线/光纤的网络主要以“以太网协议”,在网络层数据包的基础上,填上以太网帧头、帧尾。

  • 物理层:将数据链路层的0/1数据转换为光信号/电信号/电磁波传输出去。

5.5、分用(接收方)

  • 物理层:将物理信号转为 0/1 数据,交给数据链路层。
  • 数据链路层:以太网协议,去掉以太网帧头、帧尾,交给网络层。
  • 网络层:IP 协议,去掉 IP 报头,交给传输层。
  • 传输层:TCP/UDP 协议,去掉 UDP 报头,交给应用层。
  • 应用层:QQ 的应用层协议对数据进行解析。

5.6、丢包是怎么产生的

        中途会经过很多交换机和路由器,它们分别也会对数据进行封装和解包。在某个时刻,各个主机都在使用网络,导致网络中需要传输的数据量非常大,当超过设备能承受的传输上线,就会丢包(直接丢弃数据。比如玩游戏点击使用装备,展示特效时卡了一下,恢复时直接显示的使用装备状态,如果不丢包,数据在后面又传输过来,就会产生“先使用装备,再展示特效”的违背期望顺序的效果)。


网站公告

今日签到

点亮在社区的每一天
去签到