深入解析网络通信关键要素:IP 协议、DNS 及相关技术

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。

1. IP 协议报头结构

4 位版本:表示 IPv4 / IPv6

4 位首部长度:表示 IP 报头的长度,以 4 字节为单位

8 位服务类型:包括 3 位优先权字段(已弃用),4 位 TOS 字段和 1 位保留字段(必须置为 0),4 位 TOS 字段分别表示:最小延时(数据从 A 到 B 消耗时间短),最大吞吐量(数据从 A 到 B单位时间内传输数量多),最高可靠性,最小成本(设备上消耗的资源少),这四个相互冲突,只能选择一个

16 位总长度:IP 数据报的长度

虽然说设置了数据报的长度,但是并不是只能传 64KB 的数据,IP 协议中内置了拆包组包机制,单个 IP 数据报确实不能超过范围,不过 IP 协议会自动把大的数据包拆成多个 IP 数据报携带传输,在接收方再进行拼接

同一个载荷被拆成多份,交给多个 IP 数据报来携带,这些数据报的 16 位标识是相同的,13 位片偏移决定组包的时候数据包的位置,3 位标志中只有两个有效,一个表示当前包是否需要组包,另一个表示当前包是不是组包的最后一个单位。

8 位生存时间(TTL):一个数据包在网络中最大存活时间。TTL 的单位是次数,发送一个 IP 数据报的时候,会有一个初始的 TTL 值(32,64,128...)数据报每经过一个路由器转发,TTL 的值就会 -1(经过交换机不减),一旦减到 0,此时这个数据包就会被当前的路由器直接丢弃掉。

8 位协议:描述了 IP 数据报中携带的载荷是哪种传输层协议的数据报,以此来确定接下来由哪种协议解析数据

16 位首部检验和:验证数据在传输中是否出错(只是针对首部,IP 报头),载荷部分 TCP/UDP 已经有自己的校验和了

IP 地址也就是用来标识互联网设备的,但是 32 位 IP 放在今天就不够用了,为了解决这个问题,有以下三种方法:

  1. 动态分配 IP 地址:如果当前设备上网就分配 IP ,不上网就不分配,但是这种方面明显不能解决问题,只能说是有所缓解
  2. NAT 网络地址切换:一个设备在进行上网的时候,IP 数据报中的 IP 地址就会被 NAT 设备(通常就是路路由器)进行自动修改。用一个 IP 代表一大波 IP,把 IP 分为了两类:内网(私网)和外网(公网),要求公网 IP 必须是唯一的,但是私网 IP 是可以重复的(在不同的局域网中)

在同一个局域网内,主机 A 访问主机 B 不会涉及到 NAT 机制

公网上的设备 A 访问公网上的设备 B 不会涉及到 NAT

一个局域网中的主机 A 访问另一个局域网的主机 B 在 NAT 机制中是不允许的

NAT 机制主要是针对局域网内部的设备 A ,访问公网上的设备 B 这种情况设置的

当发送方的数据报发送到运营商路由器后就会修改源 IP 为运行商具有的公网 IP( 修改 IP 时会记录相应的映射关系,以便传输回来的时候可以找到原来局域网的 IP )目标公网服务器收到的也是这个 IP ,同时 NAT 不仅可以转换 IP 地址,也可以转换端口号,通过这个方式,多个设备就可以共享一个公有 IP 地址同时访问网络

NAT 虽然可以解决 IP 不够用的问题,但是机制过于复杂,每一次转发都要记录并查询相应的映射关系,所以有了第三种方式:

  1. IPv6。从根本上解决问题,IPv6使用 128 位 16 个字节来表示 IP 地址。

2. IP 地址中的网段划分

IP 地址由网络号和主机号两部分组成,左半部分是网络号,右半部分是主机号,需要通过子网掩码来区分出哪里是网络号,哪里是主机号,子网掩码也是 32 位整数,左半部分都是 1,右半部分都是 0,例如,子网掩码 255.255.255.0 表示前 24 位是网络号,后 8 位是主机号,IP 地址 192.168.1.100 和子网掩码 255.255.255.0 进行逻辑与运算后得到网络地址 192.168.1.0,这就确定了该 IP 地址所在的网段。

在网络中规定,同一个局域网中的设备,网络号必须相同,主机号必须不同,两个相邻的局域网的网络号必须不同

在一个局域网中,如果某个设备的网络号不相同或者和别的主机重复都无法上网

3. 特殊的 IP 地址

  1. 主机号全为 0,此时这个 IP 就是表示当前网段(相当于网络号),因此给局域网中的某个设备分配 IP 地址的时候,不能把主机号全设为 0。
  2. 主机号为全 1,比如子网掩码是 255.255.255.0,IP 就是 192.168.0.255,称为广播 IP,往这个 IP 上发送数据包,就相当于给整个局域网中所有的设备都发送了一次数据包,但其实很多“业务上的广播”都是通过应用层编写代码来实现的,而不是借助广播 IP。用到广播 IP 的例子可以是手机投屏这种,可以知道局域网中有多少个设别允许投屏,在投屏时往对应的广播 IP 上发送一个数据包(UDP,TCP 不支持广播)如果有投屏功能就会返回一个响应
  3. 127.*(环回 IP),往这个 IP 上发一个数据,设备就会从这个 IP 中再收到同一个数据,一般都使用 127.0.0.1,环回 IP 一般用于测试客户端和服务器之间能否正常交互

4. 路由选择的大致流程

由于网络是一个非常复杂的网状结构,一台设备发送大另一台设备可能会存在多条路线

  1. 当源设备有数据要发送时,它会将数据封装成数据包,数据包中包含源 IP 地址、目的 IP 地址、数据内容等信息。
  2. 源设备首先查询自己的路由表(路由器内部维护的重要的数据结构),以确定如何将数据包发送到目的地址。路由表中包含了不同目的网络的信息以及到达这些网络的下一跳地址。如果在路由表中找到与目的 IP 地址匹配的条目,源设备将根据该条目确定下一跳地址,并将数据包发送给该地址,如果没有查到路由表就会有一个默认的表项(指向更高级层路由器)

接下来看数据链路层的协议

目的地址和源地址:这里的地址存储的是 MAC 地址,并不是之前的 IP 地址,

关于 MAC 地址和 IP 地址:在网络通信中,MAC 地址和 IP 地址相互配合,共同完成数据的传输。当一个设备要发送数据时,它会首先使用目标设备的 IP 地址来确定数据包的传输路径。然后,它会将自己的 MAC 地址作为源地址添加到数据包中,并将目标设备的 MAC 地址作为目的地址添加到数据包中。

  1. MAC 地址使用 6 个字节表示,一般一个网卡在出厂的时候,MAC 地址就被分好了,并且不能修改,MAC 地址可以作为设备的身份标识
  2. MAC 地址使用在数据链路层,用来实现相邻设备之间的数据转发,IP 地址使用在网络层,立足于整个转发流程,进行路径规划

以太网数据帧里面的 MAC 地址随着转发的过程,时刻都在变化(每经过一个交换机/路由器都会发生上述变化)

MTU(最大传输单元)和硬件直接相关,不同的硬件设备,对应到了不同的数据链路层协议,也对应了不同的 MTU,以太网的 MTU是非常短的,只有 1500 字节,此处 MTU 的限制就会对上层协议(例如 IP 协议)产生直接影响,当一个 IP 数据包达到 1500 字节以上,就会自动拆包了

类型:表示以太网帧格式中的帧格式类型

这里是十六进制的表示,ARP 数据报 / 协议,可以视为是让当前设备获取到周围设备 IP 地址和 MAC 地址之间的映射关系,在 IP 协议路由转发的过程中,是根据 IP 地址来进行查路由表的,得到的是“网络接口”,具体点就是传输给哪个 MAC 地址的设备,这个环节就涉及到了 IP 到 MAC 地址的转换,ARP 协议就是用来建立上述的映射关系的,当前设备接入网络的时候,就会往广播地址发送 ARP 报文,收到 ARP 请求的设备就会返回响应,响应中告知自己的 IP 和 MAC 地址

5. DNS 协议

DNS 是应用层的协议,也可以理解为一套系统(域名解析系统),主要负责将易于人类理解的域名(如 www.aaa.com)转换为计算机可识别的 IP 地址(如 192.168.1.1),域名和 IP 地址存在对应关系,一般是一个域名对应一个或多个 IP,也可能多个域名对应一个 IP。

早期的域名解析系统非常简单,通过一个 hosts 文件来实现,记录了 IP 地址和域名的对应关系(现在这种方式已经不用了,网站和域名太多了,IP 地址也多,靠文件来维护不方便),为了解决这个问题,搭建了 DNS 服务器,把 hosts 文件放到 DNS 服务器中,当某个电脑需要进行域名解析,直接访问 DNS 服务器即可,但是一台服务器肯定不够用,所以就又有了许多镜像服务器,每个人上网时就会就近访问 DNS 服务器,如果有数据变更,针对这种变更,需要约定某个服务器(根服务器)的数据为基准,一旦有变更,就修改这个基准的服务器,其他服务器从基准的服务器同步数据。

目录
打赏
0
5
5
0
94
分享
相关文章
算力流动的基石:边缘网络产品技术升级与实践探索
本文介绍了边缘网络产品技术的升级与实践探索,由阿里云专家分享。内容涵盖三大方面:1) 云编一体的混合组网方案,通过边缘节点实现广泛覆盖和高效连接;2) 基于边缘基础设施特点构建一网多态的边缘网络平台,提供多种业务形态的统一技术支持;3) 以软硬一体的边缘网关技术实现多类型业务网络平面统一,确保不同网络间的互联互通。边缘网络已实现全球覆盖、差异化连接及云边互联,支持即开即用和云网一体,满足各行业需求。
YOLOv11改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
YOLOv11改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
63 10
YOLOv11改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
RT-DETR改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
RT-DETR改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
25 4
RT-DETR改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
为何长效代理静态IP是网络管理的关键要素
在信息化时代,静态长效IP代理对网络管理至关重要。它能提升网络服务质量,确保远程办公、视频会议等应用的稳定性和连续性;减少延迟和网络拥堵,加快数据传输;提高网络安全,便于设置访问权限,防止未授权访问。91HTTP高质量代理IP服务商助力高效信息获取。
44 23
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
38 11
AI时代的网络安全:传统技术的落寞与新机遇
在AI时代,网络安全正经历深刻变革。传统技术如多因素身份认证、防火墙和基于密码的系统逐渐失效,难以应对新型攻击。然而,AI带来了新机遇:智能化威胁检测、优化安全流程、生物特征加密及漏洞管理等。AI赋能的安全解决方案大幅提升防护能力,但也面临数据隐私和技能短缺等挑战。企业需制定清晰AI政策,强化人机协作,推动行业持续发展。
69 16
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
138 2
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是"将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建型模式分为5种:单例模式、工厂方法模式抽象工厂式、原型模式、建造者模式。
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式分为以下 7 种: • 代理模式 • 适配器模式 • 装饰者模式 • 桥接模式 • 外观模式 • 组合模式 • 享元模式
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等