TCP/IP协议簇

文章目录

  • 应用层
    • http/https
    • DNS
    • 补充
  • 传输层
    • TCP
      • 1. 序列号与确认机制
      • 2. 超时重传
      • 3. 流量控制(滑动窗口机制)
      • 4. 拥塞控制
      • 5. 错误检测与校验
      • 6. 连接管理
      • 总结
  • 网络层
    • ARP
      • **ARP 的核心功能**
      • ARP 的工作流程
        • 1. ARP 请求(Broadcast)
        • 2. ARP 缓存(ARP Table)
      • ARP 的典型应用场景
      • ARP 与其他协议的关系
      • 示例说明
      • 总结
    • ICMP
      • ICMP 的核心功能
      • ICMP 的消息类型
      • ICMP 的工作流程示例
        • 场景:主机 A Ping 主机 B
        • 场景:路由器返回 “目的不可达”
      • ICMP 的典型应用场景
      • ICMP 与其他协议的关系
      • ICMP 的安全性与局限性
      • 总结
    • IGMP
  • 网络接口层
    • 1. 物理层协议
    • 2. 数据链路层协议

应用层

http/https

https://blog.csdn.net/z_ar_d/article/details/146561799?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

DNS

会有链接的(画大饼)

补充

基于tcp的:SMTP(25)\POP3(110)\SSH(22)\FTP(20\21)ssl\tls

基于UDP:DHCP(C68\S67)\NTP(123)\TFTP(69)

传输层

TCP

TCP/IP 协议栈中的 TCP(Transmission Control Protocol) 通过以下核心机制确保数据的可靠传输:

1. 序列号与确认机制

  • 序列号(Sequence Number):TCP 为每个字节的数据分配一个唯一的序列号,确保接收方可以按序重组数据。
  • 确认号(Acknowledgment Number):接收方通过 ACK 报文告知发送方已成功接收的数据字节位置(下一个期望接收的字节序号)。
  • 累积确认(Cumulative ACK):接收方只需确认最后一个连续接收的字节,简化确认流程。

2. 超时重传

  • 重传定时器:发送方发送数据后启动定时器,若超时未收到 ACK,则重新发送未确认的数据段。
  • 自适应重传算法:TCP 动态调整超时时间(RTO,Retransmission Timeout),根据网络延迟变化优化重传策略。

3. 流量控制(滑动窗口机制)

  • 滑动窗口(Sliding Window):接收方通过窗口大小告知发送方当前可接收的数据量,避免接收方缓冲区溢出。
  • 动态调整窗口:窗口大小随接收方缓冲区剩余空间动态变化,发送方根据 ACK 中的窗口字段调整发送速率。

4. 拥塞控制

  • 慢启动(Slow Start):初始阶段逐步增加发送窗口,探测网络容量。
  • 拥塞避免(Congestion Avoidance):当网络出现拥塞(如丢包)时,降低发送速率,避免进一步恶化。
  • 快速重传与快速恢复:若接收方连续收到 3 个重复 ACK,判定数据包丢失,立即重传并调整窗口,减少不必要的等待。

5. 错误检测与校验

  • 校验和(Checksum):TCP 对首部和数据进行校验,检测传输中是否发生错误,错误数据段会被丢弃并重传。

6. 连接管理

  • 三次握手(Three-Way Handshake):建立连接时,双方通过 SYN、SYN-ACK、ACK 报文确认彼此可达。
  • 四次挥手(Four-Way Handshake):断开连接时,双方通过 FIN、ACK 报文确保数据全部传输完毕。

总结

TCP 通过序列号与确认保证数据按序到达,超时重传处理丢失数据,滑动窗口控制流量避免过载,拥塞控制优化网络利用率,校验和检测错误,以及连接管理确保可靠的端到端通信。这些机制共同作用,使 TCP 成为互联网中最常用的可靠传输协议。

网络层

ARP

ARP(Address Resolution Protocol,地址解析协议)是计算机网络中用于将 IP 地址转换为物理 MAC 地址的核心协议,属于 TCP/IP 协议栈的网络层数据链路层之间的桥梁。

ARP 的核心功能

  • IP 地址到 MAC 地址的映射
  • 数据链路层(如以太网)通过 MAC 地址识别设备,而网络层使用 IP 地址。ARP 负责将目标 IP 地址解析为对应的 MAC 地址,确保数据帧能正确送达。
  • 跨层通信的关键
  • 当主机发送数据时:
    • 网络层封装 IP 数据包(含目标 IP 地址)。
    • 数据链路层需将 IP 数据包封装为数据帧(需目标 MAC 地址)。
    • ARP 通过广播或缓存查询获取目标 MAC 地址。

ARP 的工作流程

1. ARP 请求(Broadcast)
  • 场景:主机 A(IP: 192.168.1.1,MAC: AA-AA-AA)要向主机 B(IP: 192.168.1.2)发送数据,但 ARP 缓存中无主机 B 的 MAC 地址。
  • 步骤:
  • 主机 A 发送ARP 请求广播帧(目标 IP=192.168.1.2,目标 MAC=FF:FF:FF:FF:FF:FF)。
  • 局域网内所有主机接收并解析请求。
  • 主机 B 发现请求目标 IP 是自己,发送ARP 应答单播帧(源 IP=192.168.1.2,源 MAC=BB-BB-BB)。
  • 主机 A 将主机 B 的 IP-MAC 映射存入 ARP 缓存。
2. ARP 缓存(ARP Table)
  • 作用:存储近期解析过的 IP-MAC 映射,避免重复广播。
  • 条目生命周期:通常为几分钟(可通过arp -a查看)。
  • 更新机制:若目标 IP 地址的 MAC 地址变化,会触发新的 ARP 请求。

ARP 的典型应用场景

  • 同一局域网通信
  • 主机 A 与主机 B 直接通信时,需通过 ARP 解析对方 MAC 地址。
  • 跨网络通信(通过网关)
  • 主机 A 访问外网(如 IP: 8.8.8.8)时,先通过 ARP 获取网关(路由器)的 MAC 地址,数据经网关转发。
  • ARP 缓存中毒攻击
  • 攻击者伪造 ARP 应答,将目标 IP 地址映射到恶意 MAC 地址,导致数据被窃听或中断(如中间人攻击)。

ARP 与其他协议的关系

  • 与 RARP 的区别:
  • ARP:IP → MAC(常用)。
  • RARP:MAC → IP(已被 DHCP 取代)。
  • 与 ICMP 的关系:
  • ARP 是无连接协议,依赖链路层广播;ICMP 用于网络诊断(如 Ping)。

示例说明

  • 问题:主机 A 无法访问主机 B,可能原因:
  • 主机 B 未开启,无法响应 ARP 请求。
  • ARP 缓存中主机 B 的 MAC 地址过期或错误。
  • 存在 ARP 欺骗攻击,导致数据发送到错误设备。

总结

ARP 是网络通信的基础协议,确保 IP 地址与物理地址的正确映射。合理利用 ARP 缓存可提升效率,但需注意防范 ARP 欺骗等安全风险。理解 ARP 有助于诊断网络连接问题(如 “无法访问目标主机”)和优化网络配置。

ICMP

ICMP(Internet Control Message Protocol,互联网控制消息协议)是 TCP/IP 协议栈中网络层的核心协议之一,主要用于**网络设备之间传递控制信息和错误报告。**它通过封装在 IP 数据包中传输,是网络诊断和维护的重要工具。

ICMP 的核心功能

  • 错误报告
  • 当网络设备(如路由器)发现数据包无法转发时,通过 ICMP 向源主机发送错误消息(如 “目的不可达”)。
  • 网络诊断
  • 提供基础诊断功能(如 Ping、Traceroute),帮助用户验证网络连通性和路径。
  • 流量控制
  • 通过 “源抑制” 消息通知发送方降低发送速率,避免网络拥塞。
  • 路径信息传递
  • 路由器通过 “重定向” 消息告知主机更优的下一跳地址。

ICMP 的消息类型

ICMP 消息分为差错报告查询两大类,常见类型如下:

类型代码描述
3 - 目的不可达0-15目标网络 / 主机 / 协议 / 端口不可达(如主机未开机、防火墙拦截)
11 - 超时0-1TTL 耗尽(如 Traceroute 利用此消息跟踪路径)或分片重组超时
5 - 重定向0-3路由器通知主机使用更优的下一跳地址
8 - 回显请求0Ping 请求(如ping 192.168.1.1
0 - 回显应答0Ping 响应,确认目标可达

ICMP 的工作流程示例

场景:主机 A Ping 主机 B
  • 主机 A 发送 ICMP 回显请求(类型 8)数据包,目标 IP 为 B 的 IP 地址。
  • 主机 B 接收到请求后,发送 ICMP 回显应答(类型 0)给主机 A。
  • 主机 A 根据应答判断主机 B 是否可达。
场景:路由器返回 “目的不可达”
  • 若主机 A 尝试访问不存在的 IP 地址,路由器会发送 ICMP 目的不可达消息(类型 3,代码 1)。

ICMP 的典型应用场景

  • 网络连通性测试
  • Ping 工具:通过回显请求 / 应答验证主机是否可达。
  • 示例:ping -c 4 8.8.8.8(向谷歌 DNS 服务器发送 4 个 Ping 请求)。
  • 路径跟踪
  • Traceroute 工具:利用 ICMP 超时消息(类型 11)逐步显示数据包经过的路由器。
  • 示例:traceroute www.example.com
  • 故障诊断
  • 分析 ICMP 错误消息定位问题(如防火墙规则、路由配置错误)。

ICMP 与其他协议的关系

  • 与 IP 协议:ICMP 是 IP 层的一部分,所有 IP 实现必须支持 ICMP。
  • 与 TCP/UDP:ICMP 不用于传输用户数据,而是辅助 IP 层处理错误和控制信息。
  • 与 ARP:ARP 负责 IP 到 MAC 的解析,ICMP 负责网络层的控制和诊断。

ICMP 的安全性与局限性

  • 安全风险
  • Ping Flood 攻击:发送大量 ICMP 回显请求,耗尽目标带宽。
  • Smurf 攻击:利用广播地址放大攻击流量(已较少见)。
  • 防范措施:通过防火墙禁用 ICMP 消息或限制速率。
  • 局限性
  • ICMP 消息本身不可靠,可能因网络拥塞或过滤被丢弃。
  • 某些网络设备(如 NAT 网关)可能拦截 ICMP 消息,导致诊断失败。

总结

ICMP 是网络的 “神经系统”,通过传递控制和错误信息帮助维护网络健康。掌握 ICMP 原理有助于诊断网络问题(如主机不可达、路由黑洞),但需注意其安全性风险。常见工具如 Ping 和 Traceroute 是 ICMP 的典型应用,是网络工程师的必备技能。

IGMP

IGMP(Internet Group Management Protocol)是TCP/IP 协议族中的网络层协议(IP 协议号为 2),用于管理主机与组播路由器之间的组成员关系。其核心功能是让组播路由器动态了解哪些主机属于哪些组播组,从而高效转发组播数据包
1. 核心功能

  • 成员关系管理:
    • 主机通过 IGMP 向路由器报告加入或离开某个组播组的请求。
    • 路由器通过定期查询,维护各网段的组播组成员信息。
  • 优化组播转发:
    • 路由器仅向有成员的网段转发组播数据,避免带宽浪费。
      2. 版本演进
  • IGMPv1:
    • 支持基本的加入 / 离开机制,但离开时需依赖超时机制检测。
    • 查询器选举由组播路由协议(如 PIM)决定。
  • IGMPv2:
    • 增加离开组消息,允许主机主动通知路由器退出组播组。
    • 引入特定组查询,减少非组成员的响应流量。
    • 查询器选举改为最小 IP 地址优先,无需依赖外部协议。
  • IGMPv3:
    • 支持源过滤(INCLUDE/EXCLUDE 模式),允许主机指定接收或拒绝特定源的组播流量。
    • 新增特定源组查询,进一步优化流量控制。
      3. 工作机制
  • 主机加入组播组:
    • 主机发送成员报告报文(Membership Report),声明加入目标组播组。
  • 主机离开组播组:
    • 主机发送离开组报文(Leave Group),路由器收到后发送特定组查询,确认无其他成员后删除该组。
  • 路由器维护成员关系:
    • 路由器定期发送普遍组查询(General Query),主机响应报告以维持成员资格。
    • 若主机未及时响应,路由器认为该组无成员,停止转发数据。
      4. 报文类型
  • 成员报告:主机加入组播组时发送,或响应查询时确认成员身份。
  • 普遍组查询:路由器周期性发送,询问所有组播组的成员状态。
  • 特定组查询:路由器收到离开消息后,针对特定组播组发送的查询。
  • 特定源组查询(v3):针对特定组播组和源地址的查询。
    5. 应用场景
  • 流媒体传输(如视频会议、在线直播):高效分发数据到多个接收端。
  • 在线游戏:实时同步多玩家数据。
  • 企业内部通信:共享文件、软件更新等。
    6. 与其他协议的关系
  • 组播路由协议(如 PIM、DVMRP):依赖 IGMP 提供的成员信息,构建组播转发树。
  • IGMP 侦听(IGMP Snooping):交换机通过侦听 IGMP 报文,优化二层组播转发,减少不必要的流量泛洪。
    7. 注意事项
  • 安全性:IGMP 缺乏认证机制,可能被滥用(如伪造成员报告引发流量攻击)。
  • 版本兼容性:高版本(如 v3)兼容低版本,但需注意配置一致性。
  • IPv6 替代:IPv6 中使用 MLD(多播侦听发现协议) 替代 IGMP。
    总结
    IGMP 是组播通信的核心协议,通过动态管理组成员关系,实现了高效的网络资源利用。其版本演进逐步增强了灵活性和性能,适用于多种需要数据多播的场景。理解 IGMP 的工作机制有助于优化网络配置,解决组播相关的故障(如流量缺失、带宽浪费)。

网络接口层

1. 物理层协议

  • Ethernet(以太网)、Wi-Fi、光纤、DSL 等。

2. 数据链路层协议

  • PPP(点对点协议)、SLIP(串行线路协议)、MAC 地址管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot分布式项目订单管理实战:Mybatis最佳实践全解

一、架构设计与技术选型 典型分布式订单系统架构: [网关层] → [订单服务] ←→ [分布式缓存]↑ ↓ [用户服务] [支付服务]↓ ↓ [MySQL集群] ← [分库分表中间件]技术栈组合: Spring Boot 3.xMybatis-Plus 3.5.xShardingSpher…

微服务架构中的精妙设计:环境和工程搭建

一.前期准备 1.1开发环境安装 Oracle从JDK9开始每半年发布⼀个新版本, 新版本发布后, ⽼版本就不再进⾏维护. 但是会有⼏个⻓期维护的版本. ⽬前⻓期维护的版本有: JDK8, JDK11, JDK17, JDK21 在 JDK版本的选择上,尽量选择⻓期维护的版本. 为什么选择JDK17? S…

Maven 构建配置文件详解

Maven 构建配置文件详解 引言 Maven 是一个强大的项目管理和构建自动化工具,广泛应用于 Java 开发领域。在 Maven 项目中,配置文件扮演着至关重要的角色。本文将详细介绍 Maven 构建配置文件的相关知识,包括配置文件的作用、结构、配置方法等,帮助读者更好地理解和应用 M…

【YOLO系列】基于YOLOv8的无人机野生动物检测

基于YOLOv8的无人机野生动物检测 1.前言 在野生动物保护、生态研究和环境监测领域,及时、准确地检测和识别野生动物对于保护生物多样性、预防人类与野生动物的冲突以及制定科学的保护策略至关重要。传统的野生动物监测方法通常依赖于地面巡逻、固定摄像头或无线传…

Hive UDF开发实战:构建高性能JSON生成器

目录 一、背景与需求场景 二、开发环境准备 2.1 基础工具栈 2.2 Maven依赖配置 三、核心代码实现

分布式特性对比

以下是关于 分片(Sharding)、一致性哈希、两阶段提交(2PC)、Paxos、Raft协议、数据局部性 的对比分析与关联性总结,涵盖核心机制、适用场景及相互关系: 一、概念对比与关联 概念核心目标关键特性典型应用场景与其它技术的关联分片(Sharding)数据水平拆分按规则(哈希、…

历史分钟高频数据

外盘期货高频分钟历史回测行情数据下载 链接: https://pan.baidu.com/s/1RUbAMxfiSyBlXfrwT_0n2w?pwdhgya 提取码: hgya通过美国期货高频交易所历史行情可以看到很多细节比如品种之一:FGBX_1min (1)在2024-02-29 11:14:00关键交易时刻,一笔大规模订单突…

final+模版设计模式的理解

模板设计模式在 Java 里是一种行为设计模式,它在抽象类里定义算法的骨架,把部分步骤的具体实现延迟到子类。如此一来,子类可以在不改变算法结构的基础上,重新定义算法中的特定步骤。 模式组成 抽象类(Abstract Class…

JAVA接口调用限速器

目录 1、并发限速 2、串行限速 需求:批量调用第三方ERP接口,对方接口限流时,减缓调用速率。 1、并发限速 Slf4j RestController public class ApiCallTask {//第三方接口Resourceprivate ErpService erpService;//异步线程池Resourcepriv…

STM32 CAN控制器硬件资源与用法

1、硬件结构图 以STM32F4为例,他有2个can控制器,分别为 CAN1 CAN2。 每个CAN控制器,都有3个发送邮箱、2个接收fifo,每个接收fifo又由3个接收邮箱组成。也即每个CAN控制器都有9个邮箱,其中3个供发送用,3个…

【C++ 继承】—— 青花分水、和而不同,继承中的“明明德”与“止于至善”

欢迎来到ZyyOvO的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由ZyyOvO原创✍️,感谢支持❤️!请尊重原创&#x1…

Qt warning LNK4042: 对象被多次指定;已忽略多余的指定

一、常规原因: pro或pri 文件中源文件被多次包含 解决:删除变量 SOURCES 和 HEADERS 中重复条目 二、误用 对于某些pri库可以使用如下代码简写包含 INCLUDEPATH $$PWDHEADERS $$PWD/*.hSOURCES $$PWD/*.cpp但是假如该目录下只有头文件,没…

Visual Studio Code 无法打开源文件解决方法

🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 🔥 系列专栏:C从入门到精通 目录 一:🔥 突发状况 二:🔥 共勉 一:🔥 突发状况 🐬…

js文字两端对齐

目录 一、问题 二、原因及解决方法 三、总结 一、问题 1.text-align: justify; 不就可以了吗?但是实际测试无效 二、原因及解决方法 1.原因:text-align只对非最后一行文字有效。只有一行文字时,text-align无效,要用text-alig…

LeetCode算法题(Go语言实现)_20

题目 给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,请你返回一个长度为 2 的列表 answer ,其中: answer[0] 是 nums1 中所有 不 存在于 nums2 中的 不同 整数组成的列表。 answer[1] 是 nums2 中所有 不 存在于 nums1 中的 不同 整数组成…

每天认识一个设计模式-桥接模式:在抽象与实现的平行宇宙架起彩虹桥

一、前言:虚拟机桥接的启示 使用过VMware或者Docker的同学们应该都接触过网络桥接,在虚拟机网络配置里,桥接模式是常用的网络连接方式。选择桥接模式时,虚拟机会通过虚拟交换机与物理网卡相连,获取同网段 IP 地址&…

java笔记02

运算符 1.隐式转换和强制转换 类型转换的分类 1.隐式转换: 取值范围小的数值 转换为 取值范围大的数值 2.强制转换: 取值范围大的数值 转换为 取值范围小的数值隐式转换的两种提升规则 取值范围小的,和取值范围大的进行运算,小的…

Redis-07.Redis常用命令-集合操作命令

一.集合操作命令 SADD key member1 [member2]: sadd set1 a b c d sadd set1 a 0表示没有添加成功,因为集合中已经有了这个元素了,因此无法重复添加。 SMEMBERS key: smembers set1 SCARD key: scard set1 SADD key member1 …

李飞飞、吴佳俊团队新作:FlowMo如何以零卷积、零对抗损失实现ImageNet重构新巅峰

目录 一、摘要 二、引言 三、相关工作 四、方法 基于扩散先前的离散标记化器利用广告 架构 阶段 1A:模式匹配预训练 阶段 1B:模式搜索后训练 采样 第二阶段:潜在生成建模 五、Coovally AI模型训练与应用平台 六、实验 主要结果 …

CSS3:现代Web设计的魔法卷轴

一、布局革命:从平面到多维空间 1.1 Grid布局的次元突破 星际战舰布局系统 .galaxy {display: grid;grid-template-areas: "nav nav nav""sidebar content ads""footer footer footer";grid-template-rows: 80px 1fr 120p…