【JavaEE】网络基础认识

本文介绍了网络基础中的关键概念,包括IP地址的作用和格式,IPv4与IPv6的区别,子网掩码的用途以及如何划分网络号和主机号。此外,还讨论了MAC地址在网络物理层的重要性,以及网络数据传输的一跳一跳过程,涉及集线器、交换机和路由器的功能。最后提到了ARP协议在寻找MAC地址中的角色,以及冲突域和广播域的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🌷 网络基础

⭐️ 认识IP地址

概念
IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。

作用
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协议有两个版本,IPv4和IPv6。凡是提到IP协议,没有特殊说明的,默认都是指IPv4。 IPv4数量=2^32,大约43亿左右,而TCP/IP协议规定,每个主机都需要有一个IP地址。对于全世界计算机来说,这个数量是不够的,所以后来推出了IPv6(长度128位,是IPv4的4倍)。但因为目前IPv4还广泛的使用,且可以使用其他技术来解决IP地址不足的问题,所以IPv6也就没有普及。

组成

IP地址分为两个部分,网络号和主机号
网络号标识网段,保证相互连接的两个网段具有不同的标识;
主机号标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号; 通过合理设置网络号和主机号,就可以保证在相互连接的网络中,每台主机的IP地址都是唯一的。 那么,如何划分网络号和主机号呢?

分类
image.png
各类地址的表示范围是:
image.png
特殊的IP地址

  • 将IP地址中的主机地址全部设为0,就成为了网络号,代表这个局域网;
  • 将IP地址中的主机地址全部设为1,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包;
  • 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
  • 本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。

⭐️ 子网掩码

格式

  • 子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1 的数目等于网络位的长度;
  • 右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。
    子网掩码也可以使用二进制所有高位1相加的数值来表示,如以上子网掩码也可以表示为24。

作用
(1)划分A,B,C三类 IP 地址子网:
如一个B类IP地址:191.100.0.0,按A ~ E类分类来说,网络号二进制数为16位网络号+16位主机号。
假设使用子网掩码 255.255.128.0(即17) 来划分子网,意味着划分子网后,高17位都是网络位/网络
号,也就是将原来16位主机号,划分为1位子网号+15位主机号。
此时,IP地址组成为:网络号+子网号+主机号,网络号和子网号统一为网络标识(划分子网后的网络号/网段)
image.png
(2)网络通信时,子网掩码结合IP地址,可以计算获得网络号(划分子网后的网络号)及主机号(划分子网后的主机号)。一般用于判断目的IP与本IP是否为同一个网段。
对于网络通信来说,发送数据报时,目的主机与发送端主机是否在同一个网段,流程是不一样的。

计算方式
IP 地址和子网掩码进行“按位与”操作(二进制相同位,与操作,两个都是1结果为1,否则为0),得到的结果就是网络号。
子网掩码二进制按位取反,再与 IP 地址 按位与计算,得到的就是主机号
示例:
image.png

⭐️ 认识MAC地址

MAC地址,即 Media Access Control Address,用于标识网络设备的硬件物理地址。

  • 主机具有一个或多个网卡,路由器具有两个或两个以上网卡;其中每个网卡都有唯一的一个MAC地址。
  • 网络通信,即网络数据传输,本质上是网络硬件设备,将数据发送到网卡上,或从网卡接收数据。
  • 硬件层面,只能基于MAC地址识别网络设备的网络物理地址。

MAC地址用来识别数据链路层中相连的节点;
长度为48位,即6个字节。一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)
在网卡出厂时就确定了,不能修改。虚拟机中的MAC地址不是真实的MAC地址,可能会冲突;也有些网卡支持用户配置MAC地址。

特殊的MAC地址
广播数据报:发送一个广播数据报,表示对同网段所有主机发送数据报。广播数据报的MAC地址为:
FF:FF:FF:FF:FF:FF

⭐️ 一跳一跳的网络数据传输

以下为主机B传输数据到主机C经过的网络设备:
image.png
对于以上经过的网络设备:

  • 主机:配有IP地址,但是不进行路由控制的设备;
  • 路由器:即配有IP地址,又能进行路由控制;
  • 节点:主机和路由器的统称;

集线器和二层交换机不会对数据报封装和分用,不算在下一跳设备。

⭐️ 总结IP地址和MAC地址

IP地址描述的是路途总体的起点和终点;是给人使用的网络逻辑地址。
MAC地址描述的是路途上的每一个区间的起点和终点,即每一跳的起点和终点;是给网络硬件设备
使用的网络物理地址。

⭐️ 网络设备及相关技术

集线器:转发所有端口

image.png
集线器是工作在物理层的网络设备,发送到集线器的任何数据,都只是简单的将数据复制并转发到其他所有端口。(端口指集线器后边的物理端口)
image.png

交换机:MAC地址转换表+转发对应端口

image.png
交换机工作在数据链路层,交换机内部会记录并维护一张MAC地址转换表:

  1. MAC地址转换表主要记录MAC地址与端口之间的映射。(端口指交换机后边的物理端口)
  2. 主机连接到交换机,及主机发送数据的时候,交换机可以学习并记录该主机MAC地址与端口信息。
  3. 交换机接收到数据报以后,在MAC地址转换表中,通过目的MAC查找到对应的端口,则目的主机
    为该端口相连接的主机。只需要将数据报转发到对应端口上即可。

image.png

  1. 以上是使用MAC地址转换表,通过目的MAC能找到对应端口的情况;如果找不到,交换机设置数
    据报目的MAC为广播地址FF:FF:FF:FF:FF:FF,发送到其他所有端口,目的主机返回响应后,交换机再记录该主机MAC与端口的映射信息。

主机:网络分层从上到下封装
发送数据报时,发送端主机都需要先根据网络分层从上到下封装:
image.png

由“一跳一跳的网络数据传输”可知,以上:

  • 源IP与目的IP标识整个路途的起点和终点;
  • 源MAC与目的MAC标识了每一跳的起点和终点;

此时,需要根据发送端主机(源主机)与接收端主机(目的主机)是否在同一网段,来设置下一跳设备:

  • 源主机和目的主机在同一个网段时,下一跳设备就是目的主机;
  • 发送端主机和接收端主机在不同网段时,发送端主机是无法知道目的主机在哪,此时会设置下一跳设备为网关设备;

所谓网关,我们这里可以简单理解为,不同网段的网络互连时,需要使用网关设备。
通常的网关设备是路由器,可以划分公网和局域网(内网),同时还可以把局域网划分为多
个子网(不同网段)
Windows中,可以在网络设置中,更改适配器设置查看网关IP:
image.png

以上两种情况,下一跳设备IP地址都可以获取到,但该设备的MAC地址(即目的MAC)可能不知道,就需要使用以下ARP寻址:

主机&路由器:ARP缓存表+ARP寻址

首先,ARP是一个介于数据链路层和网络层之间的协议;ARP协议建立了IP地址与MAC地址的映射关
系。
在数据链路层,寻找下一跳设备MAC地址的过程,称为ARP寻址:
(1)主机和路由器中都保存了一张ARP缓存表:通过IP地址可以找到对应的MAC地址。
(2)根据下一跳设备的IP地址,在ARP缓存表中能找到对应的MAC地址,则可以设置目的MAC并发送数据报。
(3)如果找不到,则发送ARP广播数据报:目的MAC为广播地址,询问下一跳设备的MAC地址。
这个过程类似于QQ群喊话:张三(下一跳设备IP地址),我要给你发快递(发送数据报),请告诉我
你的收货地址(MAC地址)。
参见以下流程:
image.png

路由器:路由+NAPT

image.png
路由器主要有两个作用:
(1)网关
路由器作为网关,可以划分公网和局域网,某些路由器还可以将局域网划分为多个子网(不同网段)
公网端口即WAN口,为单独的网卡,具有公网IP地址和公网MAC地址。
划分的多个子网,是由局域网端口即LAN口划分,每个端口都有单独的网卡,具有该网段IP地址和MAC地址。
了解:家庭用的路由器不能划分局域网子网,企业级专业路由器才能划分。
image.png
路由器作为网关:

  1. 划分局域网多个子网时,可以直接通过ARP寻址找到局域网任意主机。(这里的局域网就是路由器
    下的多个子网组成的局域网)。
  2. 划分公网和局域网时,局域网内主机发送数据报到公网主机时,需要基于NAPT协议,将局域网主机的IP地址和端口号,转换为路由器公网IP和端口号(指路由器中运行的程序的端口)。
    局域网IP+端口需要转换为公网IP+端口,原因是接收端返回的响应数据报,目的IP和目的端口无法使用局域网IP和端口。
    (2)路由
    所谓路由,即在复杂的网络结构中,找出一条通往终点的路线;
    网络通信(网络数据传输),路由器中的路由功能,就类似于规划路线,往哪个方向行进能更快到达目的地。

⭐️ 冲突域

主机之间通过网络设备(集线器、交换机)的物理端口、网线相连时,两个主机在同一时刻同时发送数据报,如果存在冲突,则该网络范围为一个冲突域(Collision Domain)。
冲突域是基于第一层物理层,又称为碰撞域。

所谓的冲突,类似两个人(主机)在一个房间(网络范围)同时说话,导致房间内其他人无法听清讲话的内容,即产生了冲突。
冲突域中的网络通信,要解决冲突,就得按时间顺序来发送多个数据报:同一时刻,网络设备只能接收并转发一个数据报,多余的会丢弃,让发送端主机重新发送。

  • 集线器接收到数据报后,是将数据报简单的复制、转发到其他所有端口,如果有两个数据报要同时转发,就会出现冲突。整个集线器,即集线器的所有端口为一个冲突域
  • 交换机接收到数据报后,是将数据报转发到对应的一个端口:两个数据报同时转发到不同端口不存在冲突,但同时转发到一个端口就出现冲突。即交换机可以分割冲突域,分割后,一个端口为一个冲突域

⭐️ 广播域

广播是指某个网络中的主机同时向网络中其它所有主机发送数据(IP、MAC地址设置为广播地址),这个数据所能传播到的范围即为广播域(Broadcast Domain)。
广播域基于第二层数据链路层。

  • 集线器接收到广播数据报,仍是简单的复制、转发到其他所有端口,所以集线器的所有端口为一个广播域
  • 交换机接收到广播数据报,会转发到其他所有端口;而路由器可以隔离广播域

路由器某个LAN口网卡接收到广播数据报,如果发现是同网段,则丢弃,即广播数据不会扩
散到路由器以外。

🌷 网络数据传输流程

⭐️ 局域网传输流程:集线器

使用集线器网络互联的情况下,发送端主机发送数据包时,需要先从上到下封装数据报。但封装时,目的MAC可能并不知道,需要先进行ARP寻址:

(1)发送端在本机ARP缓存表中,根据目的IP查找对应的MAC地址
(2)如果找到,则可以在数据链路层以太网帧头中,设置目的MAC并发送数据包
(3)如果没有找到,需要先发送ARP广播请求,让接收端,即目的主机告诉自己,目的MAC是多少
(4)发送端更新本机ARP缓存表:保存目的IP与目的MAC的映射 (5)有了目的MAC,就可以按照第(2)个步骤发送数据了。

以下为本机ARP缓存表能找到目的MAC的流程:
涉及的知识:封装,集线器转发,ARP寻址
image.png

如果本机ARP缓存表中找不到目的MAC,则需要先发送广播请求:
涉及的知识:ARP寻址,ARP广播
image.png

⭐️ 局域网传输流程:交换机

涉及的知识:交换机MAC地址转换表
image.png

⭐️ 局域网传输流程:交换机+路由器

涉及的知识:子网掩码,网关
image.png
广域网数据传输流程
涉及的知识:DNS,NAPT,路由
image.png

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值