IP协议讲解

news2024/11/22 16:16:11

IP协议

IP协议的本质:提供一种能力,将数据跨网络从A主机传输到B主机

在这里插入图片描述

4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4.

4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit表示最大
的数字是15, 因此IP头部最大长度是60字节.

8位服务类型(Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0). 4位
TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个. 对于
ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要.

16位总长度(total length): IP数据报整体占多少个字节.
16位标识(id): 唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片里面的这个
id都是相同的.

3位标志字段: 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到). 第二位置为1表示禁
止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文. 第三位表示"更多分片", 如果分片了的话,
最后一个分片置为1, 其他是0. 类似于一个结束标记.

13位分片偏移(framegament offset): 是分片相对于原始IP报文开始处的偏移. 其实就是在表示当前分片
在原报文中处在哪个位置. 实际偏移的字节数是这个值 * 8 得到的. 因此, 除了最后一个报文之外, 其他报
文的长度必须是8的整数倍(否则报文就不连续了).

8位生存时间(Time To Live, TTL): 数据报到达目的地的最大报文跳数. 一般是64. 每次经过一个路由, TTL
-= 1, 一直减到0还没到达, 那么就丢弃了. 这个字段主要是用来防止出现路由循环

8位协议: 表示上层协议的类型

16位头部校验和: 使用CRC进行校验, 来鉴别头部是否损坏.

32位源地址和32位目标地址: 表示发送端和接收端.

网段划分

路由器也是一个主网的主机,也要配置ip地址

路由器一定至少连接了2个子网,路由器也就相当于同时在两个子网。

路由器可以配置多个ip。认为路由器有多张网卡即可。路由器可以构建子网。

ip地址 只有在联网的时候才有

在这里插入图片描述

A类网络:2的7次方个A类网络,一共包含了2的24次方台主机。

子网掩码:区分网络号和主机号

122.133.144.155
1111  1111  1000 0000 0000 0000 0000 0000
    

在这里插入图片描述

两个ip地址不用,主机号为0,或者全1

140.252.20.0100 0100
255.255.255.1111 0000  &
140.252.20.0100 0000   

私有IP地址和公网IP地址

如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上 使用任意的IP地址都
可以,但是RFC 1918规定了用于组建局域网的私有IP地址
**10. **前8位是网络号,共16,777,216个地址
172.16.到172.31.,前12位是网络号,共1,048,576个地址
192.168.
,前16位是网络号,共65,536个地址
包含在这个范围中的, 都成为私有IP, 其余的则称为全局IP(或公网IP);

我们使用的ip地址都是私有ip

运营商

我们是怎么上网的?

调制解调器(光猫) : 将光信号转为电信号也就是01序列

家用路由器:构建局域网

NAT

Network Address Translation,网络地址转换)一种用于修改网络数据包中IP地址信息的技术。它在路由器或网关上运行,允许多个设备共享一个公网IP,从而节省IP地址资源。NAT广泛应用于家庭、企业网络及运营商网络中,帮助解决IPv4地址枯竭问题。

NAT的工作原理:

NAT通过将私有IP地址(通常在局域网中使用的地址,如192.168.x.x或10.x.x.x)转换为公共IP地址,实现内网设备与互联网的通信。当内网设备向外发送数据时,NAT会将设备的私有IP替换为路由器的公网IP;当返回的数据包到达时,NAT再将公共IP转换回私有IP,并将数据发送到对应的内网设备。

NAT的类型:

  1. 静态NAT

    • 一对一转换,即每个内部私有IP都有一个固定的公网IP进行映射。常用于某些需要固定IP地址的服务(如企业服务器)。
  2. 动态NAT

    • 路由器从公网IP池中动态分配公网IP给内网设备,当内网设备请求时,它们共享或轮流使用这些IP。动态NAT适合IP数量有限的场景。
  3. PAT(Port Address Translation),也叫端口地址转换

    • 常见的NAT类型,又叫“NAPT”或“过载NAT”。使用一个公网IP,但通过端口号区分多个内网设备的流量。每个内部设备的请求通过不同的端口号映射到相同的外部IP地址,这就是为什么多个设备可以通过一个公网IP访问互联网。

NAT的优势:

  1. IP地址节省:内网设备共享一个或多个公网IP,避免IPv4地址枯竭。
  2. 安全性:内网设备的私有IP隐藏在NAT后,外部设备无法直接访问这些设备,增加了一定的网络安全性。
  3. 灵活性:NAT允许多个设备通过同一个公网IP进行互联网通信,简化了网络管理。

NAT的缺点:

  1. 网络性能:NAT在转换IP地址和端口时会增加一些延迟,特别是在使用大量会话的情况下。
  2. P2P应用支持较差:某些点对点(P2P)协议或应用(如视频通话、在线游戏)可能会受到NAT的限制,因为这些应用通常需要设备之间直接通信。
  3. 影响端到端连接:NAT打破了IP层的端到端通信模型,这使得某些应用程序需要额外的配置才能正常工作,如VPN、VoIP等。

NAT是当前网络环境中重要的基础技术,随着IPv6的逐渐普及,NAT的需求会逐渐减少,但在短期内仍然是IPv4网络中的关键工具。

ARP

(Address Resolution Protocol,地址解析协议)是一种网络协议,主要用于通过已知的IP地址来查找对应的MAC地址。ARP协议在IPv4网络中非常重要,它负责在同一局域网内进行IP地址与物理地址(MAC地址)之间的转换,从而实现设备之间的通信。

ARP的工作原理:

  1. 当一个设备(如电脑)想与同一局域网中的另一台设备通信时,它会先知道目标设备的IP地址,但不一定知道它的MAC地址。
  2. 发送方设备会发送一个ARP请求,其中包含目标设备的IP地址,并询问网络“谁拥有这个IP地址?”
  3. 局域网中的所有设备都会接收到这个ARP请求,拥有该IP地址的设备会回应一个ARP回复,告诉发送方“这个IP地址对应我的MAC地址”。
  4. 发送方接收到ARP回复后,将IP地址与MAC地址的对应关系存储在它的ARP缓存中,以便后续通信中直接使用,无需再次查询。

ARP请求与回复的详细过程:

  • ARP请求:以广播的方式发出,因为发送方不知道目标设备的MAC地址。所有连接到网络的设备都会收到这个请求。
  • ARP回复:目标设备在收到ARP请求后,将自己的MAC地址封装在一个ARP回复中,并将其发给请求设备,这个回复是单播的,只发给请求方。

ARP示例:

假设设备A(IP地址为192.168.1.2,MAC地址为AA:AA:AA:AA:AA:AA)需要与设备B(IP地址为192.168.1.3,MAC地址为BB:BB:BB:BB:BB:BB)通信:

  1. 设备A知道设备B的IP地址(192.168.1.3),但不知道它的MAC地址。
  2. 设备A发送一个ARP请求:“谁是192.168.1.3?”。这个请求以广播形式发送给网络上的所有设备。
  3. 设备B接收到ARP请求后,发送一个ARP回复:“我是192.168.1.3,我的MAC地址是BB:BB:BB:BB:BB:BB。”
  4. 设备A接收到这个ARP回复后,将设备B的IP和MAC地址映射存储在ARP缓存中。
  5. 设备A现在可以直接使用设备B的MAC地址与它通信。

ARP缓存:

ARP缓存是一个临时存储设备IP地址和MAC地址映射的表,设备通过它来避免每次通信时都需要发送ARP请求。ARP缓存中的映射有一定的有效期,通常在几分钟后会过期。

ARP的优缺点:

优点:

  1. 提高网络通信效率:ARP缓存减少了每次通信都要请求MAC地址的频率。
  2. 动态解析:设备无需预先知道所有设备的MAC地址,可以根据需要动态解析。

缺点:

  1. 安全性问题(ARP欺骗/ARP中毒)
    • ARP协议本身没有安全验证机制,因此容易被攻击。例如,在ARP欺骗攻击中,攻击者伪装成局域网中其他设备,向受害设备发送伪造的ARP回复,将受害设备的流量劫持到攻击者那里。这种攻击通常用于网络监听或中间人攻击。

解决ARP欺骗的对策:

  1. 静态ARP表:可以手动配置静态ARP条目,使得特定IP地址只能与指定的MAC地址对应。这可以防止ARP表被恶意篡改,但手动管理复杂,适合较小的网络。
  2. 安全网络设备:很多交换机和路由器支持ARP防护机制(如动态ARP检测,DAI),可以检测和阻止异常的ARP流量。
  3. 加密通信:通过加密数据传输(如VPN、SSL等)可以在ARP欺骗攻击发生时保护通信内容。

ARP的常见类型:

  1. ARP请求:用于查询IP地址对应的MAC地址,发出时是广播帧。
  2. ARP回复:用于响应ARP请求,提供MAC地址,发出时是单播帧。
  3. G ratuitous ARP(无偿ARP):当一个设备启动或IP地址改变时,它会发送无偿ARP告诉网络中的其他设备自己的IP地址和MAC地址。这通常用于检测IP地址冲突或更新其他设备的ARP缓存。

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

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

相关文章

Linux(三)文件管理、复杂操作与实用工具详解

Linux学习笔记(三)文件管理、复杂操作与实用工具详解 Linux 学习笔记(二):深入理解用户管理、运行级别与命令行操作 1.文件操作的基本操作 1.1 创建 创建目录 mkdir:创建目录 mkdir /home/dog # 创建单级…

【顺序表使用练习】发牌游戏

【顺序表使用练习】发牌游戏 1. 介绍游戏2. 实现52张牌3. 实现洗牌4. 实现发牌5. 效果展示 1. 介绍游戏 首先先为大家介绍一下设计要求 实现52张牌(这里排除大小王)洗牌——打乱牌的顺序发牌——3个人,1人5张牌 2. 实现52张牌 创建Code对象创…

NVIDIA G-Assist 项目:您的游戏和应用程序AI助手

NVIDIA G-Assist 是一个革命性的人工智能助手项目,旨在通过先进的AI技术提升玩家的游戏体验和系统性能。这个项目在2024年Computex上首次亮相,展示了其在游戏和应用程序中的潜在应用。 喜好儿网 G-Assist 的核心功能是提供上下文感知的帮助。它能够接收…

OLED移植

一、在D盘中找到OLED文件包 二、新建一个HAL库工程 只需要配好RCC和SYS以及时钟树就可以,不开启任何引脚 三、移植文件 把文件放在Core->Src里面 四、在Kile5中添加文件 五、注意 (1)下载的时候要开启Rsset and Run 不然下载不进程序 &a…

关于malloc,calloc,realloc

1.引用的头文件介绍&#xff1a; 这三个函数需要调用<stdlib.h>这个头文件 2.malloc 2.1 函数简单介绍&#xff1a; 首先这个函数是用于动态开辟一个空间&#xff0c;例如数组在c99标准之前是无法arr[N]的&#xff0c;这个时候就需要使用malloc去进行处理&#xff0c…

kettle从入门到精通 第八十八课 ETL之kettle kettle连接sqlserver彻底搞明白

场景&#xff1a;时不时群里面会有小伙伴咨询使用kettle连接ms sqlserver 数据库&#xff0c;折腾很久浪费时间&#xff0c;今天刚好有时间把这一块梳理下&#xff0c;希望能让大家节省时间提高效率。 1、首先要知道连接sqlserver 有两种方式&#xff0c;JTDS jdbc驱动和微软的…

Web安全 - 重放攻击(Replay Attack)

文章目录 OWASP 2023 TOP 10导图1. 概述2. 重放攻击的原理攻击步骤 3. 常见的重放攻击场景4. 防御重放攻击的技术措施4.1 使用时效性验证&#xff08;Time-Based Tokens&#xff09;4.2 单次令牌机制&#xff08;Nonce&#xff09;4.3 TLS/SSL 协议4.4 HMAC&#xff08;哈希消息…

4.1、FineReport单元格扩展和父子格

单元格扩展 1、配置数据集 2、纵向扩展 方法一&#xff1a; 方法二&#xff1a; 结果 多个字段纵向 2、横向扩展 方法一&#xff1a; 方法二&#xff1a; 结果 父子格 没什么特殊要求&#xff0c;就保持默认 1、右边的值默认以左边为左父格 2、下边的值默认以上边…

Node.JS 版本管理工具 Fnm 安装及配置(Windows)

Fnm 安装及配置&#xff08;Windows&#xff09; Fnm&#xff08;Fast Node Manager&#xff09;&#x1f680; 一个快速而简单的 Node.js 版本管理工具&#xff0c;使用 Rust 编写。 1 安装 官网&#xff1a;Fnm&#xff08;镜像网站 &#xff09;。下载&#xff1a;Fnm&a…

高德POI数据下载详细说明

本文详细总结了如何利用地图资源下载工具&#xff08;geodatatool&#xff09;下载高德POI数据。下载POI数据相对比较复杂。加上地图资源下载工具&#xff08;geodatatool&#xff09;下载功能越来越多、越复杂&#xff01;很多时候我给网友介绍的时候也会出现纰漏&#xff01;…

第4篇:如何在百万行代码里发现隐藏的后门----应急响应篇

试想一下&#xff0c;如果你的网站被入侵&#xff0c;攻击者留下隐藏的后门&#xff0c;你真的都可以找出来嘛&#xff1f;面对一个大中型的应用系统&#xff0c;数以百万级的代码行&#xff0c;是不可能做到每个文件每段代码进行手工检查的。 即使是一款拥有99.9%的Webshell检…

鸿蒙NEXT开发-组件事件监听和状态管理(基于最新api12稳定版)

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…

SpringBoot + ITextPdf:高效生成 PDF 预览文件

问过神奇的chatgpt后&#xff0c;了解到iTextPdf这个库&#xff0c;应该是比较好的选择。 解决方案 我们先观察下真实的开票预览的模板。 发票信息由两部分组成&#xff1a; 固定信息&#xff0c;例如购买方信息、销售方信息。 商品信息&#xff0c;可能有多行&#xff0c;需…

基于yolov8的100种中草药智能识别系统python源码+pt模型+训练日志+精美GUI界面

【算法介绍】 基于YOLOv8的100种中草药智能识别系统是一款利用最新的YOLOv8算法开发的高效、准确的识别工具。该系统能够精准快速地识别100种不同的中草药类别&#xff0c;对于传统中药行业是一次重要的革新。 该系统通过搜集不同中草药的相关数据图片&#xff0c;并基于YOLO…

【leetcode】122. 买卖股票的最佳时机 II

题目描述 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买&#xff0c;然后在 同一天 出售。 返回 你能获得的 最大 利润 。…

nacos client 本地缓存问题

问题&#xff1a; nacos 更新了配置文件&#xff0c;更新了以后重新启动还是旧的配置信息。 NACOS版本&#xff1a; 1.1.4 解决&#xff1a; 配置缓存 Nacos Client 会将从 Nacos 服务器获取的配置信息缓存在本地。这样&#xff0c;即使 Nacos 服务器不可用&#xff0c;客…

成都大学体育场馆预约系统—计算机毕业设计源码37087

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

AMD CDNA™2 GPU 中的寄存器压力

Register pressure in AMD CDNA™2 GPUs — ROCm Blogs 注意&#xff1a; 此博客以前是 AMD实验室笔记 博客系列的一部分。 GPU kernel 中的寄存器压力对高性能计算 (HPC) 应用程序的整体性能有着巨大的影响。理解和控制寄存器的使用可以让开发者精心设计代码&#xff0c;以最…

解决银河麒麟中`/etc/sudoers`权限问题

解决银河麒麟中/etc/sudoers权限问题 1、问题描述2、解决方法 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 当你在银河麒麟操作系统中使用sudo命令时&#xff0c;如果遇到“/etc/sudoers可被任何人写”的错误&#xff0c;说明/etc/sudoer…

国庆节快乐

葡萄城在这里祝大家国庆快快乐&#xff1a; 10月葡萄城活动&#xff1a; 公开课 【从软件应用走向数据应用——葡萄城技术赋能数据挖掘】 新版本发布&#xff1a; 活字格 V10.0 Update1新版本发布