网络原理一> ip协议相关特性

news/2025/2/5 14:40:55/

目录

  • 概述:
  • IP协议结构属性理解:
      • 4位版本:
      • 4位部首长度:
      • 8位服务类型:
      • 16位总长度字节数:
      • 8位生存时间:
      • 8位协议:
      • 16位部首检验和:
      • 32位源IP地址和32位目的IP地址:
  • IP地址不够用的解决方法:
      • 一.动态分配IP地址:
      • 二.NAT机制(当前最主要的方式):
  • IP地址组成:

概述:

IP协议和TCP协议复杂长度差不多,这里可以大概理解一下

IP协议属于网络层的协议,主要功能有两个
1.路由选择:在两个通信节点之间,规划出一条合理的路径
2.地址管理使用IP地址这样的概念,标识网络上某个设备的位置

IP协议结构属性理解:

这里是引用

4位版本:

开发阶段IPV4,和IPV6是当下主要使用的版本
IPv4使用,4个字节最为IP地址
IPv6使用16个字节作为IP地址

4位部首长度:

IP协议报头有选项,所以是边长的结构, 4位部首长度单位是4字节,能表示的最大值为二进制的“1111”就是十进制的15,所以IP协议头部最大长度为15*4=60字节

8位服务类型:

可以让IP协议切换工作状态,在这里插入图片描述

16位总长度字节数:

**包括了IP数据报,报头+载荷的总长度,因为是16位,总长度就是2的16次方减一,就是64KB;但是在实际应用中受数据链路层的MTU限制,数据超过规定MTU,就会把数据包拆成多个IP数据包进行组装

触发后的拆包组包操作是这样的:
16位标识:把把拆出来的包,标记为相同的标识,再把相同标识的数据包组合到一起


3位标志位:描述了其中一个标志位,是否触发了拆包操作,还有一个标志位描述当前数据包是否是最后一个


13位片偏移:描述了组包的先后顺序,偏移小的放到偏移大的前面在这里插入图片描述

注意:面试如果让你设计:怎样让UDP传输超过64KB的数据?就可以根据上面的:16位标识,3位标志位,13位片偏移来设计

8位生存时间:

一个IP数据包,能在网络上传输的最大时间:
IP数据包每经过一次路由转发,TTL值就减一,TTL减到0就表示这个数据包传播到目的地的,被丢弃

8位协议:

标识传输层使用什么协议,在网络层调用下一层分用时候,把数据包交给传输层时,这个时候8位协议就起到区分的效果,效果和应用层的端口号有异曲同工之妙
在这里插入图片描述

16位部首检验和:

IP协议里面一般传输,UDP或者TCP协议时候就,这个两协议的校验和进行检验,不知道校验和的参考上一篇文章–>点击

32位源IP地址和32位目的IP地址:

IP地址最关键的部分,IP地址本质通过32位整数来表示,但是由于32位整数不方便阅读,就用点分十进制表示了–>三个点分出四个部分如下:每个部分范围0~255在这里插入图片描述

这里有个为问题?32位IP地址只够表示42亿9千万的数据,现在肯定不够的,一下我们说明一下解决方式。

IP地址不够用的解决方法:

一.动态分配IP地址:

使用就分配,不使用就不分配

二.NAT机制(当前最主要的方式):

我们知道:公网IP又叫外围IP,私网IP又叫内网IP;公网IP是唯一的不允许重复,同一局域网私网IP不可以重复


NAT机制具体就是网络地址转换,总结就是用一个外网IP,对应一堆内外设备来使用
如图:在这里插入图片描述

IP地址组成:

IP地址由网络号+主机号组成在这里插入图片描述
特殊的IP:主机号为全1为广播,局域网中主机号不能设为0; 网络号127开头用于本机环回测试


http://www.ppmy.cn/news/1569530.html

相关文章

蓝桥杯嵌入式uart,iic,adc_scan模版

本次用到的是ttl电平 1.波特率配置 2.中断使能 为什么会乱码 //uartmy_main.h #include "my_main.h" uint8_t led_sta0x10; char text[30]; char uart_tx[50]; char uart_rx[50];extern struct Bkeys bkey[]; char passwd[3]{1,2,3}; void LED_Disp(uint8_t dsLED)…

redis教程

Redis 教程 Redis 是一个开源的内存数据结构存储系统,用作数据库、缓存和消息代理。以下是一些基础知识和常用操作。 一、简介 Redis 支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。它具有高性能、高可用性和数据持久化的特性。 二、安…

ros 创建Node

1、使用catkin_create_pkg创建一个软件包 catkin_create_pkg ssr_pkg roscpp rospy std_msgs 2、在软件包的src文件夹下创建一个节点的cpp源码文件 3、在CMakeLists.txt中设置节点源码的编译规则 4.编译运行 编译:shiftctrlB 运行: rosrun ssr_pkg …

AI大模型(二)基于Deepseek搭建本地可视化交互UI

AI大模型(二)基于Deepseek搭建本地可视化交互UI DeepSeek开源大模型在榜单上以黑马之姿横扫多项评测,其社区热度指数暴涨、一跃成为近期内影响力最高的话题,这个来自中国团队的模型向世界证明:让每个普通人都能拥有媲…

Modbus Slave RTU 在 AVP28335(兼容德州仪器TMS 320 28335) 上实现含源码及注释。

今天先把题目先给出来, 在近两天会把源码 (含详细注释 )及部署、测试结果给出来, 希望能给大家帮助。(原来这个程序在CSDN中,有小伙伴已经写了一些,但是发现里面埋了很多坑,例如&…

idea隐藏无关文件

idea隐藏无关文件 如果你想隐藏某些特定类型的文件(例如 .log 文件或 .tmp 文件),可以通过以下步骤设置: 打开设置 在菜单栏中选择 File > Settings(Windows/Linux)或 IntelliJ IDEA > Preference…

Linux——网络(tcp)

文章目录 目录 文章目录 前言 一、TCP逻辑 1. 面向连接 三次握手(建立连接) 四次挥手(关闭连接) 2. 可靠性 3. 流量控制 4. 拥塞控制 5. 基于字节流 6. 全双工通信 7. 状态机 8. TCP头部结构 9. TCP的应用场景 二、编写tcp代码函数…

【BUUCTF杂项题】荷兰宽带数据泄露、九连环

一.荷兰宽带数据泄露 打开发现是一个.bin为后缀的二进制文件,因为提示宽带数据泄露,考虑是宽带路由器方向的隐写 补充:大多数现代路由器都可以让您备份一个文件路由器的配置文件,软件RouterPassView可以读取这个路由配置文件。 用…