【JavaEE】计网之IP协议+以太网+DNS

这篇具有很好参考价值的文章主要介绍了【JavaEE】计网之IP协议+以太网+DNS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【JavaEE】计网之IP协议+以太网+DNS

  • 博主简介:想进大厂的打工人
  • 博主主页:@xyk:
  • 所属专栏: JavaEE初阶

网络层重点协议——IP协议,在复杂的网络环境中确定一个合适的路径~

本篇文章我们来讲解什么是 IP协议及以太网,在IP协议中,有 地址管理 和 路由选择 两个方式,IP协议是位于 OSI模型 中第三层(网络层)的协议, 在这层上工作的不止这一个协议, 但 IP协议 是网络层传输所使用的最主流的一种协议。


目录

文章目录

一、IP协议-地址管理

1.1 IPv4报头介绍

1.2 动态分配IP地址(缓解)

1.3 NAT 机制

1.4 使用 IPv6

二、IP地址组成

2.1 分类

2.2 子网掩码

三、路由选择

四、数据链路层——以太网

4.1 ARP协议

五、DNS


一、IP协议-地址管理

在IP地址中,地址管理分配的每一个设备的 IP地址 是唯一的~~~

IP协议是位于OSI模型中第三层(网络层)的协议, 在这层上工作的不止这一个协议, 但IP协议是网络层传输所使用的最主流的一种协议。

有IPv4和IPv6两个版本, 目前IPv4在全球仍然是主流使用的协议, 但IPv6在中国已经基本普及了, 而且中国也是全球IPv6覆盖率最高的国家, 下面内容的介绍以IPv4为主。

1.1 IPv4报头介绍

IPv4协议格式如下:

【JavaEE】计网之IP协议+以太网+DNS

本质上:IP地址,本质上是一个 32 位的整数,通常会把32位的整数,转换成点分十进制的表示方式~~

三个点,把这个整数分成 4 个部分,每个部分,一个字节,每个部分的取值范围 0 - 255

那么 32位 的整数,最多能表示:

  • 它可以表示42亿9千万的数据
  • 2147483648 * 2

转换公式:

  • 0 - 255 ==> -128 - 127(一个字节)
  • 0 - 65535 ==> -32768 - 32767(两个字节)
  • 0 - 42亿9千万 ==> -21亿 - 21亿(四个字节)

 显然,这是不够用的,全世界有很多的电脑,服务器路由器,还有很多很多的手机~

1.2 动态分配IP地址(缓解)

只有设备在上网的时候才分配地址,不上网就不分配地址

  • 可以省下一大批 IP 地址,但是并没有增加 IP 地址的数量
  • 治标不治本,只能缓解~~

路由器的一个功能,DHCP

  • 如果开启了DHCP,此时路由器就自动给你的设备分配一个局域网内唯一的ip
    • 默认是开启自动分配的
    • 不开启也可以,但是需要人工来保证你的ip是唯一的
    • 如果与别人重了,两个人都得寄

昨天的IP和今天的很可能不一样~

1.3 NAT 机制

在 NAT 背景下如何通信?

外网设备 -> 外网设备,不需要任何 NAT,直接就能通信

内网设备 -> 其他内网设备,不允许!!

外网设备 -> 内网设备,不允许!!

内网设备 -> 外网设备,对于的内网设备的路由器,触发 NAT 机制进行ip 替换~~

NAT机制下,把所有的IP地址分为两大类:

1.内网IP(私有IP):【10.* 】或者【172.16.* ~ 172.31.* 】或者 【192.168.* 】

  • 只要是这三种开头的,都被称为内网ip

2.外网IP:剩下的IP地址(唯一)

外网IP是互联网中唯一的地址, 不会出现重复的情况, 分配外网IP的设备可以被互联网中其他的电脑直接访问到.

  • 多个设备一个外网IP,一个设备一个内网IP
  • 不同外网IP的设备,可以有同一个内网IP

例子:在网上购物,收货地址填写的是小区的地址,而小区里面有很多人,每个人用姓名和手机号区分,而进入内网IP 后 则是用端口号区分

如果某个内网里的设备想访问公网的设备, 就需要对应的NAT设备(路由器)把内网IP映射成公网IP, 从而完成网络访问;但是这个外网 IP 不是这个设备独占的,而是这个内网中所以的设备都共用这一个外网 IP 了~~一个外网 IP 代表一系列的设备了~~

反之, 公网的设备也是无法直接访问私网的设备的, 不同局域网的私网的设备没法直接相互访问.

【JavaEE】计网之IP协议+以太网+DNS

两台主机在发送给路由器之前,主机的 源ip 是路由器的 内网ip,当主机去访问外网服务器时 IP地址会被路由器替换成 路由器自己的外网IP,站在服务器的角度看,主机的IP地址就是路由器的源IP,服务器返回的响应先发给路由器,路由器随后根据设备的端口号来区分响应发给哪个设备.

内网ip: 

【JavaEE】计网之IP协议+以太网+DNS 

 NAT机制能够有效解决IP地址不够用的问题, 但带来的副作用就是让网络环境更加复杂了…

1.4 使用 IPv6

IPv6 使用16字节表示IP地址,这可表示的IP地址个数就是一个天文数字了,可以把地球上的每一粒沙子都分配一个地址.

IPv6虽然看起来可以完美的解决问题, 但当今世界上仍然是以NAT+ IPV4+动态分配来进行网络组建的,除了国内, 世界上其他地方IPv6的覆盖率还是比较低的, 这是因为, lPv6和IPv4是不兼容的, 要想支持IPv6就需要大范围更换路由器等网络设备, 这个成本是极大的, 而国内环境主要是工信部给力啊.

二、IP地址组成

在IPv4中, IP地址分为两个部分, 即网络号和主机号~

  • 网络号:标识网段,保证相互连接的两个网段具有不同的标识;
  • 主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号;

网络号能够描述当前的网段信息(标识一个局域网), 主机号区分了一个局域网中的主机;

要求在同一个局域网内, 网络号必须相同, 主机号不能相同, 两个相邻的局域网(同一台路由器连接), 网络号不能是相同的.

那么如何划分网络号和主机号呢?

2.1 分类


过去曾经提出一种划分网络号和主机号的方案,把所有IP 地址分为五类,如下图所示(该图出 自
[TCPIP])
【JavaEE】计网之IP协议+以太网+DNS

分 类 范围 适用网络 网络数量 主机最大连接数
A 类 0.0.0.0 ~
127.255.255.255
大型网络 126 16777214
($2^{24}$-2)
B 类 128.0.0.0 ~
191.255.255.255
中等规模网
约16000
65534($2^{16}$-2)
C 类 192.0.0.0 ~
223.255.255.255
小型网络 - 254($2^8$-2)
D 类 224.0.0.0 ~
239.255.255.255
E 类 240.0.0.0 ~
247.255.255.255

这种分配了解就好,已经不常用了!!!

2.2 子网掩码

格式
(1)子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度.

  • 255.255.255.0 => 11111111111111111111111100000000
  • 255.252.0.0 => 11111111111111000000000000000000

下图是一个经典的局域网环境:

【JavaEE】计网之IP协议+以太网+DNS

图中两个相邻的局域网的网络号是不能相同的, 属于一个局域网中的设备网络号都是相同的但主机号是不同的, 通过这样网络号和主机号这样的划分就可以进行组网了

 

【JavaEE】计网之IP协议+以太网+DNS

一个路由器,有两个 ip 地址,分别是在不同的局域网中,一个路由器的作用就是把两个局域网连接起来~~

  1. WAN 口 ip
  2. LAN 口 ip

在上图中,此时这个路由器就把两个局域网连接到一起了,此时这两个局域网就称为“相邻"的局域网,这俩个局域网的网络号,是不能重复的!!!

但网络号的位数与主机号的位数并不是固定的, 在计算机网络, 有一个单独的概念叫做子网掩码, 它也是使用32比特位对应IP地址的每一位, 如果为1就表示这一位是网络号, 为0就表示主机号, 它是独立于IP地址的另一串数字来辅组记录的, 子网掩码不会混着排列, 左边为1表示网络号, 右边为0表示主机号.

对于家用设备来说, 子网掩码最常见的就是255.255.255.0了, 即11111111111111111111111100000000, 表示IP地址中左边24位构成网络号, 右边8位构成主机号.

 还有一些特殊的IP地址有着特殊的作用:

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

例子(投屏):广播地址

  1. 手机投屏到电视机上
  2. 手机和电视机都下载了投屏软件
  3. 手机和电视机在同一个局域网内
  4. 手机发起投屏,有一个自动查找电视机的过程,而这个过程就是,将广播地址发送了数据报,哪个设备有回应,就可能是你的电视机
  5. 因此手机能获取电视机的IP地址

三、路由选择

路由选择其实就是规划路径, 数据想要从一个设备到另一个设备, 需要先规划一条路出来, 然后数据沿着这条路进行传输, 传输到目标IP地址;

【JavaEE】计网之IP协议+以太网+DNS 

在网络上,网络环境更复杂,没这么容易

  • 某个路由器,是无法把整个网络环境的模样记录下来的
    • 路由器只能记录周围的情况(较小范围,认识邻居或者邻居的邻居)
  • 路由器内部使用,路由表这种数据结构来记录邻居的信息~

实际的转发过程,就类似于”问路“这样的过程,逐渐接近目标的

【JavaEE】计网之IP协议+以太网+DNS

  1. 如果的“目的IP”在路由表里有,直接指明道路
  2. 如果没有,它会根据路由表给你规划一条合理的走向目的IP的路

四、数据链路层——以太网

数据链路层中使用的典型协议也有很多, 其中最知名常用的就是 "以太网"了, 考虑的是相邻两个节点(通过网线/光纤/无线直接相连的两个设备)之间的传输.

以太网帧体格式如下:

【JavaEE】计网之IP协议+以太网+DNS

  1. 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的;(出厂写死的)
  2. 帧协议类型字段有三种值,分别对应IP、ARP、RARP;
  3. 帧末尾是CRC校验码

目的地址, 源地址(6字节): 数据链路层的地址是MAC地址, 表示物理层地址, 这个地址和IP地址是完全独立的另一套地址体系, 每一个设备只有一个物理层地址, 在网卡等硬件设备出厂时这个地址就已经写死了(大部分), 使用6个字节来表示, 地址长度比IPv4长了6w多倍

把这个数据链路层数据帧,最大载荷长度,称为 MTU.以太网帧中的数据长度规定最小46字节,最大1500字节.

如果承载的数据,长度超过 MTU,就会在IP层进行分包~~使每个分出来的结果,都能在 MTU 之内~~

 【JavaEE】计网之IP协议+以太网+DNS

【JavaEE】计网之IP协议+以太网+DNS 

【JavaEE】计网之IP协议+以太网+DNS

 

4.1 ARP协议

ARP不是一个单纯的数据链路层的协议,而是一个介于数据链路层和网络层之间的协议

ARP协议的作用:

ARP协议建立了主机 ip地址 和 MAC地址 的映射关系

  • 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;
  • 数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;
  • 因此在通讯前必须获得目的主机的硬件地址
     

五、DNS

DNS,即Domain Name System,域名系统。DNS是一整套从域名映射到IP的系统。

TCP/IP中使用IP地址来确定网络上的一台主机,但是IP地址不方便记忆,且不能表达地址组织信息,于是人们发明了域名,并通过域名系统来映射域名和IP地址
 

域名是一个字符串,如 www.baidu.com , hr.nowcoder.com


域名系统为一个树形结构的系统,包含多个根节点。其中:
1. 根节点即为根域名服务器,最早IPv4的根域名服务器全球只有13台,IPv6在此基础上扩充了数量。
2. 子节点主要由各级DNS服务器,或DNS缓存构成。

  • DNS域名服务器,即提供域名转换为IP地址的服务器。
  • 浏览器、主机系统、路由器中都保存有DNS缓存。
  • Windows系统的DNS缓存在 C:\Windows\System32\drivers\etc\hosts 文件中,
  • Mac/Linux系统的DNS缓存在 /etc/hosts 文件中

在早期的时候, 互联网上的服务器很少, 这域名和IP这样的映射关系只是使用一个hosts文件来维护, 每个用户只需要手动自己的hosts文件就可以了, 现在的电脑还是有这个文件的, 也可以使用. 

【JavaEE】计网之IP协议+以太网+DNS

网络通信发送数据时,如果使用目的主机的域名,需要先通过域名解析查找到对应的IP地址,
如果电脑的DNS服务器配置不对, 或者是DNS服务器挂了, 就会出现一个典型的情况: 网络正常的情况下, QQ等应用程序可以用, 但是网页打不开了.

我们自己电脑的DNS服务器可以通过如下方式配置,首先打开设置中 “网络和Internet” 中的 “高级网络设置” , 点击 “更多网络适配器器选项”.

【JavaEE】计网之IP协议+以太网+DNS

然后右击WLAN或者以太网, 选择属性.

【JavaEE】计网之IP协议+以太网+DNS

 然后选择IPv4的的字段就可以进行配置了.

【JavaEE】计网之IP协议+以太网+DNS

这里可以自己去配置DNS服务器的地址, 常用地址百度一下就行, 很多的, 也可以选择自动获取(从路由器中获取).文章来源地址https://www.toymoban.com/news/detail-442988.html

到了这里,关于【JavaEE】计网之IP协议+以太网+DNS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 以太网协议介绍(ARP、UDP、ICMP、IP)

    请求: 应答: ARP协议: 以太网ARP数据包格式: FCS:校验 在以太网帧头部分也包含了目的地址的mac和ip地址。 以太网通信是通过包的形式进行传输的,不像串口协议一样单位是byte。 帧间隙: TCP和UDP的区别 ​ osi 7层模型:实现通信的任务 对于fpga开发,只需要关注传输层,

    2024年02月03日
    浏览(51)
  • 【计算机网络】 IP协议格式以及以太网帧结构

    IP工作在网络层 IP头分为两部分,固定部分和可变部分,固定部分就是一定要带这些数据,正常存储应该是连续的,并不是像图中这样会换行,图中只是为了方便观察。 首先是一个版本号,也就是看是ipv4还是ipv6,然后是首部长度,就是我们ip头的首部长度,是为了能将首部和

    2024年02月09日
    浏览(56)
  • TwinCAT3以太网TCP/IP自由协议通讯

    目录 一、TwinCAT3以太网TCP/IP客户端创建 1、系统连接示意图 1、程序创建 (1)工程创建和授权添加  (2)库文件添加  (3)变量创建 (4)程序 2、测试 (1)网络调试助手创建服务端监听 (2)PLC端的Client连接服务端  (3)PLC端给服务端发送数据  (4)服务端给PLC发送数据 二、

    2024年02月15日
    浏览(46)
  • 万兆以太网MAC设计(6)IP协议报文格式详解以及IP层模块设计

    参考:https://sunyunqiang.com/blog/ipv4_protocol_rfc791/这篇文章内容很丰富,建议看看 Version : 长度为 4 比特, 表征 IP 协议的版本号, 对 IPv4 来说该字段的值为 4 IHL : 长度为 4 比特, IHL 是 Internet Header Length 的缩写, 以 4 字节为单位指示 IP Header 的长度, 对于 IPv4 来说, Header 的最小长度为

    2024年04月28日
    浏览(41)
  • TCP/IP网络参考模型(端口号、TCP滑动窗口、TCP拥塞控制、IP协议号、以太网帧)

    目录 TCP/IP四/五层模型 应用层常见协议——传输数据PDU 传输层协议——传输数据段 端口号 TCP面向连接服务CONS  TCP报文格式 TCP数据传输——ACK确认机制 TCP会话建立——三次握手 TCP会话结束——四次握手 TCP流量控制——滑动窗口协议 TCP可靠传输机制 TCP拥塞控制 UDP无面向连

    2024年02月03日
    浏览(55)
  • 网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报

    欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。 专栏:《网络编程》 传输层及其以下的机制由内

    2024年01月16日
    浏览(64)
  • 数据链路层协议 ——— 以太网协议

    IP拥有将数据跨网络从一台主机送到另一台主机的能力,但IP并不能保证每次都能够将数据可靠的送到对端主机,因此IP需要上层TCP为其提供可靠性保证,比如数据丢包后TCP可以让IP重新发送数据,最终在TCP提供的可靠性机制下IP就能够保证将数据可靠的发送到对端主机。 TCP除

    2024年02月01日
    浏览(65)
  • 以太网协议学习笔记

    以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY两大部分构成。 PHY在发送数据时,接收MAC发过来的数据,把并行的数据转化为串行流数据,按照物理层的编码规则把数据编码转化为模拟信号发送出去,接收数据时的流程反之。 MAC和PHY芯片有一个配置接口,

    2024年02月14日
    浏览(45)
  • 以太网协议详解

      假设有这样一张网络拓扑图:   在拓扑图中有A、B、C三台计算机,并且它们三个是通过中间的 路由器 连接的。这时候计算机A要向计算机C发送一条数据,那么数据是怎么样到达计算机C呢?也就是说路由器是怎么知道A要发送数据给谁呢?   这就是接下来要讲的 以太

    2024年02月06日
    浏览(47)
  • 汽车以太网协议栈

    《大师说》栏目上线啦# 《大师说》栏目是怿星科技2023年推出的深度思考栏目,通过邀请内部专家,针对智能汽车行业发展、技术趋势等输出个性化的观点。每期一位大师,每位一个话题,本期由我们怿星的CTO虞胜伟,进行分享。👏👏 随着车载领域智能化,网联化的发展,

    2024年02月10日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包