IP协议讲解

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次方台主机。

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

c++ 复制代码
122.133.144.155
1111  1111  1000 0000 0000 0000 0000 0000
    

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

c++ 复制代码
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缓存。
相关推荐
小宇python19 分钟前
动态调试对安全研究有什么帮助?
网络·安全·web安全
Hacker_xingchen25 分钟前
网络安全之内网安全
网络·安全·web安全
Ray55051 小时前
bridge-multicast-igmpsnooping
linux·服务器·网络
中国云报1 小时前
金融数据中心容灾“大咖说” | Commvault的“网络弹性”之道
网络·金融
hgdlip2 小时前
使用代理ip和本地网络的区别是什么
网络·网络协议·tcp/ip
^Lim3 小时前
esp32 JTAG 串口 bootload升级
java·linux·网络
Linux运维老纪3 小时前
交换机配置从IP(Switch Configuration from IP)
linux·服务器·网络·安全·运维开发·ip
加载中loading...3 小时前
C/C++实现tcp客户端和服务端的实现(从零开始写自己的高性能服务器)
linux·运维·服务器·c语言·网络
m0_547486665 小时前
计算机网络名词解释汇总
网络·计算机网络
麻瓜也要学魔法10 小时前
链路状态路由协议-OSPF
网络