IP协议

1.IP协议格式

在这里插入图片描述

  1. 4位版本:用来表示IP协议的版本,目前有两个版本,IPv4和IPv6
  2. 4位首部长度IP头部的长度是多少个32bit,也就是 length * 4 的字节数.4bit表示最大的数字是15,因此IP头部最大长度是60节
  3. 8位服务类型:其实只有四位是有效果的.
    最小延时:传输一个数据报的时间尽量短.
    最大吞吐量:一定时间内传输的数据尽量多.
    最高可靠性:在传输过程中最不容易丢包.
    最小成本:在传输过程中消耗的硬件资源最低.
    这四种形态是互斥的,只能切换到其中一种形态.
  4. 16位总长度:指定整个IP数据包的长度,如果需要携带比较长的数据,IP协议会自动的把一个数据报拆分成多个数据报,接收方在进行分用的时候,也会把多个数据报合并成一个数据报
  5. 16位标识:表示属于同一个数据包的各个分片,在进行分片的时候,标识原始数据的部分,每一片的标识位是相同的
  6. 3位标志位:
    bit1:保留位为0(不用)
    bit2:是否允许拆包
    bit3:标识"结束标记",标识当前的包是否是最后一个,为0则表示是最后一个包
  7. 13位片偏移:表示当前分片在原报文中处在哪个位置,通过片偏移,就可以区分包的先后顺序.
  8. 8位生存时间:数据报到达目的的最大报文跳数,单位是次,初始情况下会有个数值(32/64/128),通常是64为,每次经过一个路由器转发,TTL就会-1,减到0了就会被丢弃,
  9. 8位协议:描述上层的协议类型
  10. 16位首部校验和:鉴别头部是否错误
  11. 32位源IP地址和32位源IP目的地址:表示发送端和接收端

2.IP地址

IP地址:标识每个主机的具体位置,它为互联网上的每一个网络和每一台主机分配一个逻辑地址.来屏蔽物理地址上的差异.
IP地址,其实是一个32位的整数(4个字节),按照32位的表示方式,使整个数字会变得很大,于是就采用点分十进制的方式表示,使用三个".",把32位分成4个部分,每个部分就是8位,1个字节,每个字节的范围就是0-255.
IP地址分为两个部分:网络号和主机号
1.网络号:表示网段,保证相互连接的两个网段有不同的标识
2.主机号:标识主机,同一个网段内,主机之间具有相同的网络号,但必须有不同的主机号
在这里插入图片描述
如何区分主机号和网络号?
将IP地址和子网掩码进"按位与"操作(二进制相同位,与操作,两个都是1结果为1,否则就为0)就得到的就是网络号
将子网掩码二进制按位取反,再与IP地址按位与,得到的就是主机号
在这里插入图片描述

特殊的IP地址:

  • 将IP中的主机地址全都设为0,就成了网络号,代表这个局域网
  • 将IP地址中的主机地址全设为1,就成了广播地址,用于给同一个链路中互相连接的所有主机发送数据包,例如手机投屏到电视,处于同一个局域网中.
    127.0.0.1本机环回测试

2.1 解决IP地址不够用的方案

其实32位表示的数据量非常有限,也就是42亿9千万,并且IP不能够重复.这就会导致IP地址不够用的问题.针对这样的问题有多种解决方案,这里采用两点:1.动态分配IP地址(DHCP),2.NAT机制(网络地址转换)

1.动态分配IP地址:采用的按需分配,当一个设备不需要上网时,就不会分配IP地址,只有需要的时候,才会分配.通过优化DHCP配置,确保IP地址的有效和及时回收

2.NAT机制(网络地址转换):
把IP地址分为两类:
1.内网IP:不同的局域网内的设备,内网IP可以重复,同一个局域网内的设备,IP不能重复.比如以:10.,172.16.-172.31.*,192.168.开头的都属于是内网IP.
2.外网IP:外网IP不能重复.
1)局域网内之间的设备进行通信,是可以通信的,局域网内部IP地址都是唯一的.
2)A局域网中的设备,想和B局域网中的设备通信,这个时候就需要带有一个外网IP的设备进行中转
3)局域网内部的设备访问带有外网IP的设备.

在这里插入图片描述

我们平时使用到的手机等电子设备,他们都会有一个内网IP,还有一类设备就是"服务器",服务器可以有外网IP,
客户端请求:

1)客户端向服务器发送一个请求,其中包含源IP(例如10.0.0.10)和目标IP(例如202.244.174.37)。此请求包括IP头和有效载荷。
NAT转换(出站):
2)当请求通过带有NAT的路由器时,路由器会将IP头中的源IP(10.0.0.10)替换为自己的外部IP地址(例如163.221.120.9)。这是为了确保服务器的响应可以正确路由回内部网络中的正确设备。
服务器响应:
3)服务器接收到具有翻译后源IP(163.221.120.9)的请求并发送响应。响应包括源IP(例如202.244.174.37)和目标IP(例如163.221.120.9),以及源端口和目标端口。
NAT转换(入站):
4)当响应通过路由器时,NAT机制使用其映射表将IP头中的目标IP(163.221.120.9)替换为原始的内部IP地址(例如10.0.0.10)。这确保了响应被正确定向到内部网络上的正确客户端。
客户端接收响应:
5)客户端接收响应,通信成功完成。

其实当触发NAT的时候,就会维护一个映射表,其中记录了替换前的IP和替换后的IP.

3.IPv6
IPv6是16个字节,128位,表示IP地址,相比IPv4的32位地址提供了更多的地址组合,解决了IPv4地址空间有限的问题。

相关推荐

  1. <span style='color:red;'>IP</span><span style='color:red;'>协议</span>

    IP协议

    2023-12-13 06:24:03      40 阅读
  2. <span style='color:red;'>ip</span> <span style='color:red;'>协议</span>

    ip 协议

    2023-12-13 06:24:03      14 阅读
  3. <span style='color:red;'>IP</span><span style='color:red;'>协议</span>

    IP协议

    2023-12-13 06:24:03      13 阅读
  4. 网络协议学习——IP协议

    2023-12-13 06:24:03       14 阅读
  5. TCP/IP协议

    2023-12-13 06:24:03       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-13 06:24:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-13 06:24:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-13 06:24:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-13 06:24:03       18 阅读

热门阅读

  1. DP算法入门(3)

    2023-12-13 06:24:03       37 阅读
  2. 自建网站如何快速被搜索引擎搜索到?

    2023-12-13 06:24:03       39 阅读
  3. react中使用antd的tabs进行标签切换时,销毁dom

    2023-12-13 06:24:03       38 阅读
  4. Flink之keyby状态

    2023-12-13 06:24:03       37 阅读
  5. Linux驱动开发中private_data变量的理解

    2023-12-13 06:24:03       35 阅读
  6. TCP/UDP 的区别及优缺点

    2023-12-13 06:24:03       36 阅读
  7. 如何用WireShark分析HFP协议

    2023-12-13 06:24:03       40 阅读
  8. 第三十三课 电商控制台增删改查接口的编写

    2023-12-13 06:24:03       44 阅读