计算机网络——IP协议

前言 

网络层的主要负责地址分配和路由选择,ip负责在网络中进行数据包的路由和传输。

IPv4报文组成(了解)

  1. IPv4首部:IPv4首部包含了用于路由和传输数据的控制信息,其长度为20个字节(固定长度)。

    • 版本(Version):表示使用的IP协议版本,通常为4。如果版本号是6,则ipv6
    • 4位首部长度(Header Length):表示IPv4首部的长度,以4字节为单位。4个比特位表示的数字范围0~15,有选项(0~15)*4
    • 8位服务类型(Type of Service):可以让ip协议切换形态。有1位保留位(必须设置成0),4位tos标志位,3位优先权字段。4位tos分别表示最小延时,最大吞吐量,最高可靠性,最小成本。指定了数据包的优先级和服务质量要求。最小延时:尽可能快的传输数据包以减小传输延时;最大吞吐量表示数据包的传输速率被最大化以提供高效的数据传输。最小成本表示通过降低带宽和资源占用来减少成本。4选一
    • 16位总长度(Total Length):表示整个IP数据报的长度,包括首部和数据部分。ip协议确实存在64kb的限制,但是它自身支持拆包和组包
    • 16位标识(Identification):用于将分片的数据包进行重新组装时的标识。
    • 3位标志(Flags):包括3位,用于指示是否进行数据分片以及分片的位置。3位标志中有1位允许拆包,还有一位表示是否允许拆包。
    • 13位分片偏移(Fragment Offset):指示分片在原始数据报中的位置。
    • 生存时间(Time to Live):表示数据包在网络中可以经过的最大跳数,每经过一个路由器减1。单位次数。如果数据包已经把ttl耗尽了,还没到达就会被丢弃。数据包构造出来的时候,ttl会被设置成一个初始值32,64.....
    • 协议(Protocol):指定了数据部分即载荷使用的上层协议,如TCP、UDP等。
    • 首部校验和(Header Checksum):用于检测IPv4首部在传输过程中的错误。载荷中udp或者TCP都有自己的校验和方法。
    • 源IP地址(Source IP Address):表示数据包的源地址。
    • 目标IP地址(Destination IP Address):表示数据包的目标地址。
  2. 可选字段(Options):IPv4首部中可以包含一些可选字段,用于提供额外的功能或进行特定的处理。可选字段的长度是可变的,因此必须使用首部长度字段来确定首部的结束位置。

  3. 数据部分:数据部分是传输的实际数据,它的长度可以根据需求而变化

IP 地址是一个 32 位的二进制数,2^32=42亿9千万,通常被分割为 4 “8 位二进制数 (也就是 4 个字节),如:
01100100.00000100.00000101.00000110
通常用 点分十进制 的方式来表示,即 a.b.c.d 的形式( a,b,c,d 都是 0~255 之间的十进制整数)。如:
100.4.5.6

地址管理

地址管理描述设备在网络中的那个位置。ip地址是32位整数,2^32=42亿9千万,并不够用。理论上IP地址不能重复。

1. 动态分配;

2. NAT机制(网络地址转换)

 让一个IP地址代表一批设备,NAT技术不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。相当于一个中转站,内部存有映射表。用于将一个网络的IP地址转换成另一个网络的IP地址。NAT通常在路由器上实现,给设备分配·私有地址,当这些内部设备要发送数据到外部主机或者服务器,路由器将私有IP地址转换为公共IP地址,并且使用端口号进行标识,当数据回来的时候,再把共有地址转变为私有地址,私有地址是不能被共有地址直接访问的,以便在私有网络上使用Internet。当数据返回回来,路由器需要结合端口号(区分不同的主机)知道返回给哪个主机,路由器也可以把相同端口号替换成不同的端口号。

   1)内网(局域网)IP 192.168/172.16

在同一个局域网,IP不能重复;不用局域网,IP可以重复

  2)外网(广域网)IP必须唯一

nat机制+动态分配可以用来解决ip不够用的情况,除非局域网内同一时刻访问同一服务器超过了65535,nat可能会不够用。nat是纯软件的方案!因为nat,局域网内部的机制可以主动去访问外网的设备,而外网设备不能主动访问局域网的设备


IPv6

用16字节128位来表示一个IP地址,2^128二进制转十六进制,能够大大缓解IP地址不足的问题。但IPv6并不是IPv4的简单升级版,它们是互不相干的两个协议,彼此并不兼容,目前已经70%升级了。

 ip网段划分

网络号(标识一个局域网)+主机号(局域网中的设备)

IP地址组成为:网络号+子网号+主机号

子网掩码

之前我们使用五类划分,当前都是子网掩饰

 在cmd窗口输入ipconfig

无线局域网适配器 WLAN:连接特定的 DNS 后缀 . . . . . . . :本地链接 IPv6 地址. . . . . . . . : fe80::be76:c0d0:8d69:c6f8%20IPv4 地址 . . . . . . . . . . . . : 192.168.8.192子网掩码  . . . . . . . . . . . . : 255.255.255.0默认网关. . . . . . . . . . . . . : 192.168.8.1

其中子网掩码255.255.255.0,这·也是32位整数,左边全是1,右边是0,不会1,0交替出现。

1111 1111 1111 1111 1111 1111 0000 0000,

被标记为1的就是网络号,1的个数根据实际定。

如果一个IP地址的主机号全是0,那他表示网络号。eg:192.168.100.0

如果一个ip地址主机号全是1,那他就是个广播地址。使用UDP socket给这个地址发送udp数据报,此时局域网内所有设备都能收到这个数据报。eg:192.168.100.255

如果以127开头的ip就是环回IP,eg:127.0.0.1就是发送给自己设备的,这个是操作系统提供了一个特殊的虚拟网卡关联到这个ip上。

路由选择

描述ip数据报的转发过程

是 探索式 的过程......

一个网络层数据报,每次到达一个路由器,都会进行一个类似“问路”的操作。每个路由器内部都有一个路由表的数据结构,根据目的IP,去查询路由表,

如果查到了,就按照路由表给定的方向(从哪一个网络接口进行转发),继续转发;

如果没查到,路由表里有一个默认的选项,就是下一跳地址,按照默认的表项继续转发;

IP 地址描述的是 路途总体的起点和终点 ;是给人使用的网络逻辑地址。
MAC 地址描述的是路途上的每一个区间的起点和终点,即 每一跳的起点和终点 ;是给网络硬件设 备使用的网络物理地址

 。

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

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

相关文章

图灵之旅--ArrayList顺序表LinkedList链表栈Stack队列Queue

目录 线性表顺序表ArrayList简介ArrayList使用ArrayList的构造ArrayList常见操作ArrayList的遍历ArrayList的扩容机制利用ArrayList洗牌ArrayList的优缺点 链表链表的实现双向链表的实现 LinkedListLinkedList引入LinkedList的使用LinkedList的构造LinkedList的常用方法介绍Lin…

Power ModeII 插件的下载与使用-----idea

下载 Marketplace里面搜索下载即可 使用 下载后重启软件就可以用了 下面是一些关于Power ModeII ,我的个性化设置截图 以及相关设置解释 插件或扩展的设置面板【用于给代码编辑器或集成开发环境(IDE)添加视觉效果】 主要设置 ENTER POWE…

Maven安装,学习笔记,详细整理maven的一些配置

Maven 1. 初识Maven 2. Maven概述 Maven模型介绍 Maven仓库介绍 Maven安装与配置 3. IDEA集成Maven 4. 依赖管理 01. Maven课程介绍 1.1 课程安排 学习完前端Web开发技术后,我们即将开始学习后端Web开发技术。做为一名Java开发工程师,后端 Web开发技术…

STM32——USART

一、通信 1.1通信是什么; 通信是将一个设备的数据发送到另一个设备中,从而实现硬件的扩展; 1.2通信的目的是什么; 实现硬件的扩展-在STM32中集成了很多功能,例如PWM输出,AD采集,定时器等&am…

数据结构和算法笔记5:堆和优先队列

今天来讲一下堆,在网上看到一个很好的文章,不过它实现堆是用Golang写的,我这里打算用C实现一下: Golang: Heap data structure 1. 基本概念 满二叉树(二叉树每层节点都是满的): 完全二叉树&a…

STM32标准库——(5)EXTI外部中断

1.中断系统 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行 中断优先级&#xff…

【QT+QGIS跨平台编译】之十一:【libzip+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、libzip介绍二、文件下载三、文件分析四、pro文件五、编译实践一、libzip介绍 libzip是一个开源C库,用于读取,创建和修改zip文件。 libzip可以从数据缓冲区,文件或直接从其他zip归档文件直接复制的压缩数据中添加文件。在不关闭存档的情况下所做的更改可以还原…

uniapp微信小程序-input默认字的样式

需要的是这样的 问题 正常是在input框上面写样式就行&#xff0c;但是uniapp不起作用 解决 直接在input上写placeholder-style"color就解决了 <input class"findInput" type"text" placeholder"关键词查询"placeholder-style"co…

Phoncent博客,探索Rie Kudan的GPT创作之举

近日&#xff0c;大家都在谈论日本作家Rie Kudan&#xff0c;她凭借其小说《东京共鸣塔》&#xff08;"Tokyo-to Dojo-to"&#xff09;荣获了日本极具声望的芥川奖。这本小说引起了广泛的讨论和思考&#xff0c;因为令人惊讶的是&#xff0c;Kudan在其中直接引用了人…

2023美赛A题之Lotka-Volterra【完整思路+代码】

这是2023年的成功&#xff0c;考虑到曾经付费用户的负责&#xff0c;2024年可以发出来了。去年我辅导队伍数量&#xff1a;15&#xff0c;获奖M为主&#xff0c;个别F&#xff0c;H&#xff0c;零S。言归正传&#xff0c;这里我开始分享去年的方案。由于时间久远&#xff0c;我…

【华为 ICT HCIA eNSP 习题汇总】——题目集9

1、缺省情况下&#xff0c;广播网络上 OSPF 协议 Hello 报文发送的周期和无效周期分别为&#xff08;&#xff09;。 A、10s&#xff0c;40s B、40s&#xff0c;10s C、30s&#xff0c;20s D、20s&#xff0c;30s 考点&#xff1a;①路由技术原理 ②OSPF 解析&#xff1a;&…

【ArcGIS微课1000例】0099:土地利用变化分析

本实验讲述在ArcGIS软件中基于两期土地利用数据,做土地利用变化分析。 文章目录 一、实验描述二、实验过程三、注意事项一、实验描述 对城市土地利用情况进行分析时,需要考虑不同时期土地利用图层在空间上的差异性,如农用地转建筑用地的空间变化。而该变化过程表现为各时期…

【LeetCode】排序精选12题

目录 排序&#xff1a; 1. 合并区间&#xff08;中等&#xff09; 2. 数组的相对排序&#xff08;简单&#xff09; 快速排序&#xff1a; 1. 颜色分类&#xff08;中等&#xff09; 2. 排序数组&#xff08;中等&#xff09; 3. 数组中的第K个最大元素&#xff08;中等…

HCIA-HarmonyOS设备开发认证-3.内核基础

目录 前言目标一、进程与线程待续。。。 前言 对于任何一个操作系统而言&#xff0c;内核的运行机制与原理是最为关键的部分。本章内容从多角度了解HarmonyOS的内核运行机制&#xff0c;涵盖进程与线程的概念&#xff0c;内存管理机制&#xff0c;网络特性&#xff0c;文件系统…

Arduino开发实例-DRV8833电机驱动器控制直流电机

DRV8833电机驱动器控制直流电机 文章目录 DRV8833电机驱动器控制直流电机1、DRV8833电机驱动器介绍2、硬件接线图3、代码实现DRV8833 使用 MOSFET,而不是 BJT。 MOSFET 的压降几乎可以忽略不计,这意味着几乎所有来自电源的电压都会传递到电机。 这就是为什么 DRV8833 不仅比基…

Excel中将16进制数转化成10进制(有/无符号)

Excel中将16进制数转化成10进制&#xff08;有/无符号&#xff09; Excel或者matlab中常用XXX2XXX进行不同进制的转换 16进制转10进制&#xff08;无符号数&#xff09;&#xff1a;HEX2DEC 16进制转10进制&#xff08;有符号数&#xff09;&#xff1a; FA46为例&#xff0c…

【ARM Trace32(劳特巴赫) 使用介绍 6.1 -- 外设寄存器查看与修改】

请阅读【Trace32 ARM 专栏导读】 文章目录 外设寄存器查看与修改寄存器值修改外设寄存器查看与修改 外设寄存器的查看与修改,离不开TRACE32的外设文件(*.per),per文件一般存在于TRACE32的安装根目录下。 一般情况下,在调试时,TRACE32会根据当前选择的芯片名自动选择合适的…

STM32+ESP8266 实现物联网设备节点

目录 一、硬件准备 二、编译环境 三、源代码地址 四、说明 五、测试方法 六、所有测试工具和文档 本项目使用stm32F103ZEesp8266实现一个物联网的通信节点&#xff0c;目前支持的协议有mqtt&#xff0c;tcp。后续会持续更新&#xff0c;增加JSON&#xff0c;传感器&#…

【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]

阅读导航 引言一、设计模式概念&#xff08;了解&#xff09;二、单例模式1. 饿汉模式&#xff08;1&#xff09;概念&#xff08;2&#xff09;模拟实现&#xff08;3&#xff09;优缺点&#xff08;4&#xff09;适用场景 2. 懒汉模式&#xff08;1&#xff09;概念&#xff…

SpringBoot 结合 liteflow 规则引擎使用

1、前言 在日常的开发过程中&#xff0c;经常会遇到一些串行或者并行的业务流程问题&#xff0c;而业务之间不必存在相关性。 在这样的场景下&#xff0c;使用策略和模板模式的结合可以很好的解决这个问题&#xff0c;但是使用编码的方式会使得文件太多,在业务的部分环节可以…