网络原理(IP篇)

IP

    • IPv4(Internet Protocol)数据报首部格式
      • 版本
      • 首部长度
      • 可变部分
      • 区分服务
      • 总长度
      • 标识、标志、片偏移
      • 生存时间
      • 协议
      • 首部检验和
      • 源IP地址和目的IP地址
    • NAT 机制(**N**etwork **A**ddress **T**ranslator)网络地址转换
        • NAT将数据的转发由**私网**转向**公网**
        • NAT将数据的转发由**公**网转向**私**网
      • CIDR
    • 数据帧格式

IPv4(Internet Protocol)数据报首部格式

![[Pasted image 20240202133845.png]]


版本

版本:占4bit,表示IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4


首部长度

与TCP中的首部长度含义相同,表示IP数据报 首部 的长度。该字段的取值同样以 4字节 为单位

  • 最小十进制取值为5(0101),表示IP数据报首部只有20字节的固定部分
  • 最大十进制取值为15(1111),表示IP数据报首部包含20字节的固定部分和最大40字节的可变部分

可变部分

  1. 可选字段

    主要功能用来:支持排错、测量及安全等措施。但这也增加了每一个路由器处理IP数据报的开销,实际上可选字段很少被使用。

  2. 填充
    使得添加功能后的数据报能够被4整除(因为首部长度是以4字节为单位的)


区分服务

区分服务:占8bit,用来获得更好的服务。但实际上一直未被使用过

每一位代表1个服务,分别是:3位优先权字段(已弃用);4位TOS字段;1位保留字段(必须置为0)

4位TOS字段分别为:

  1. 最小延时
    该数据报在传输过程中,会追求延时时间最小的路线。也就是从发送到接收的一个最小时间

  2. 最大吞吐量
    单位时间内,传输的数据(进出),尽可能的多

  3. 最高可靠性
    IP并非像TCP一样提供强可靠性,但内部也有一些机制来减少丢包的概率

  4. 最小成本
    成本:指硬件设备上的开销


总长度

总长度:占16bit,表示IP数据报的总长度(首部+数据载荷)


标识、标志、片偏移

这三个字段共同用于IP数据报分片

数据分片:

每一种数据链路层协议都规定了帧的数据载荷的最大长度(帧的数据载荷部分长度是有上限的),称为最大传输单元 MTU
例如:以太网的数据链路层就规定 MTU = 1500 字节
如果某个IP数据报的总长度超过了 MTU,则无法封装成帧,需要将原IP数据报分片为更小的IP数据报,再将各分片后的IP数据报封装成帧。

分成多个IP数据报,每个IP数据报携带一个TCP数据报的部分数据

标识:占16bit,标识分片数据报是否属于同一个数据报。即:哪几个IP数据报的载荷应该组合在一起。

标志:占3bit,每个bit都有不同的含义:

  1. DF位1 表示该数据报不允许分片0 表示允许分片

  2. MF位1 表示 “后面还有分片”;0 表示“这是最后一个分片

  3. 保留位:必须置0

片偏移:占13bit,指明分片数据报的数据载荷部分偏移了多少。即:描述了分片数据报的先后顺序。片偏移以8个字节为单位

注:上述的 “拆包” 过程都是 系统内核 自动完成的,程序员通过软件无法干预。


生存时间

生存时间(TTL):占8bit,现在以 “跳数” 为单位,每经过一个路由器转发该IP数据报,TTL值就 -1,若 不为0转发;若 为0丢弃该包

这个字段的作用防止因为路由环路,导致该数据报在路由环路中永久兜圈

注:TTL一般设置为 32/64,32其实就够用了


协议

协议:占8bit,指明该IP数据报携带的是何种协议数据

假设协议字段 = 6,说明该IP数据报的数据载荷部分是TCP报文段


首部检验和

首部检验和:占16bit,用于检测IP数据报的首部在传输过程中是否出现差错。比CRC检验码简单,称为 “因特网检验和“。(只校验首部,数据载荷部分并不需要,因为像TCP协议已经自带了校验流程)

注:IP数据报每经过一个路由器,路由器都要重新计算首部检验和


源IP地址和目的IP地址

源IP地址目的IP地址:各占32bit,标明源主机的IP地址和接收端的IP地址


NAT 机制(Network Address Translator)网络地址转换

NAT将网络IP地址分为了两大类:私网IP公网IP

私网IP段有3个:

  1. 10.0.0.0 ~ 10.255.255.255

  2. 172.16.0.0 ~ 172.31.255.255

  3. 192.168.0.0 ~ 192.168.255.255

其余的就都是公网IP了

公网上的设备IP都是唯一的,私网IP只需要保证局域网内部IP不重复即可

所以这就导致:

  1. 不同局域网内的设备,彼此间无法访问(因为IP地址会重复冲突)

  2. 局域网设备访问公网,就需要对局域网设备的 IP 进行地址转换(NAT的核心)

  3. 公网设备无法主动访问局域网设备(同样的还是因为IP会冲突)


NAT将数据的转发由私网转向公网

![[Pasted image 20240202153504.png]]

进行如图所示的替换,本质上就是让一个公网IP能够对应多个设备,从而起到节省IP地址的效果。

注:只有网关路由器才会进行替换,普通路由器也可能是局域网的一部分。


NAT将数据的转发由网转向

网关路由器内部会维护一个,在私网主机发送数据包时,这个表就会记录该数据包的各种信息(如替换前的源IP地址、替换后的IP地址、目的IP地址、源端口号、替换后的端口号、目的端口号),当服务器发送数据过来时,网关路由器就会根据这些信息对照,找到对应的主机转发。

路由器会读取IP地址和端口号,所以说路由器工作在网络层传输层的设备

注:如果多台主机访问的服务器是同一个服务器,才会替换端口号


CIDR

127.* ;作为本地环回测试地址

主机号 为 “全 0” 的地址是网络地址(代表整个网络本身,又称为 “网段”)
主机号 为 “全 1” 的地址是广播地址

注:往广播地址上发消息,那么该广播地址对应的局域网中所有的设备都能收到该消息,但所发送的数据必须是UDP的。(本质上是无连接)


数据帧格式

![[Pasted image 20240203091500.png]]

  1. 目的地址和源地址:指MAC地址

    IP地址侧重全局的转发(从起点到终点)

    MAC地址侧重局部的转发(相邻的设备)

  2. 类型:表示载荷数据的含义

  3. ARP:ARP协议能够通过 IP地址 获取设备的 MAC地址,在路由器/交换机中构建一个转发表

  4. RARP:通过 MAC地址 获取 IP地址

  5. 帧长度限制:以太网数据载荷长度最小46字节,最大1500字节(最大传输单元称为 “MTU”)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

政安晨:【完全零基础】认知人工智能(二)【超级简单】的【机器学习神经网络】—— 底层算法

如果小伙伴第一次看到这篇文章,可以先浏览一下我这个系列的上一篇文章: 政安晨:【完全零基础】认知人工智能(一)【超级简单】的【机器学习神经网络】 —— 预测机https://blog.csdn.net/snowdenkeke/article/details/…

深度学习系列53:大模型微调概述

参考系列文章:https://zhuanlan.zhihu.com/p/635152813 github链接:https://github.com/liguodongiot/llm-action 1 训练范式 下面这种instructive learning,在模型参数达到80亿后,会发生质的提升: 类似的还有手写pr…

RK3568驱动指南|第一篇 驱动基础-第3章 helloworld 驱动实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

Vite 5.0 正式发布

11 月 16 日,Vite 5.0 正式发布,这是 Vite 道路上的又一个重要里程碑!Vite 现在使用 Rollup 4,这已经代表了构建性能的大幅提升。此外,还有一些新的选项可以改善开发服务器性能。 Vite 4 发布于近一年前,它…

什么原因导致百度百科建立一直审核不通过?

百科词条对网络营销实在是太重要了,不管是个人还是企业想在网上开展业务,都必要建立百科词条。自己动手编辑百科词条,搞个几十次也审核不过的情况比比皆是。 为什么百度百科总是审核不通过?百度官方发表过声明表示百度百科词条是人…

骨传导耳机好用吗?如何挑选骨传导耳机?

骨传导耳机是一种非常创新的骨传导耳机,采用耳挂式佩戴,使用起来也非常舒适。 而且骨传导耳机最近几年还是比较火的,骨传导耳机的出现解决了传统入耳式耳机长时间佩戴不舒服、听力受损等问题。但随着骨传导耳机的品牌逐渐变多,很多…

Gin框架: 快速搭建起一个Web应用环境及处理不同类型的响应

Gin 框架简介 Gin是Golang应用最为广泛的框架之一Gin是轻量级http web框架,简易而高性能,专注于处理高并发场景 Gin框架环境搭建 基于已完成的Go环境, 参考 go mod 环境搭建 ↓ https://blog.csdn.net/Tyro_java/article/details/135297367 在初始化好…

【STM32 CubeMX】SPI HAL库编程

文章目录 前言一、CubeMX配置SPI Flash二、SPI HAL编程2.1 查询方式函数2.2 使用中断方式2.3 DMA方式 总结 前言 STM32 CubeMX 是一款由 STMicroelectronics 提供的图形化配置工具,用于生成 STM32 微控制器的初始化代码和项目框架。在 STM32 开发中,使用…

在Linux系统中设置HTTP隧道以实现网络穿透和端口转发

在数字化世界中,网络穿透和端口转发成为了许多开发者和系统管理员必备的技能。而在Linux系统中,通过设置HTTP隧道,我们可以轻松实现这一目标,让我们的服务即便在内网环境中也能被外部世界所访问。 那么,如何在Linux系…

idea 打不开项目 白屏

使用IDEA打开项目, 不知名原因崩溃了, 直接出现缩略图白屏。 解决过程: 尝试过重启IDEA,重启过电脑,重新引入相同项目(使用不同路径,存在缓存记录,依然打不开)&#xff…

磁盘删除的文件怎么恢复?4个简单方法(2024更新版)

“我有很多文件都保存在电脑磁盘里了,想问问电脑磁盘删除的文件有什么方法可以快速恢复吗?非常感谢大家!” 在日常工作和生活中,我们经常会在磁盘中存储大量的文件。这些文件对我们来说或许都有特殊的意义。磁盘删除的文件怎么恢复…

C#,二进制数的按位旋转(Bits Rotate)算法与源代码

1 二进制数的按位旋转 二进制数的按位旋转(翻转)是编程中常见的按位运算方法。 二进制数的按位旋转分为左转、右转。 左转意味着数据变大,右转意味着数据变小(有损)。 2 源程序 using System; using System.Text; us…

TCP三次握手、四次挥手(简易版)

TCP是面向连接的:在真正通讯之前,必须先建立一条通讯线路,必须先完成连接。 TCP完成连接的过程:(保证通讯线路畅通) 建立连接: 三次握手基本过程 ①客户端首先向服务器发送一个建立连接的…

如何在亚马逊,美客多,阿里国际,速卖通上安全地进行自养号测评?

借鉴亚马逊等跨境电商市场的经验,我们建议选取具备以下特点的产品在平台上销售,以实现需求稳定、竞争较低、利润较高,同时规避法律纠纷和质检问题。首先,应选择体积小、重量轻、易于运输的商品,这有助于降低运输成本和…

Java 2:运算符、表达式和语句

2.1 运算符与表达式 Java提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。Java语言中的绝大多数运算符和C语言相同,基本语句如条件分支语句,循环语句等,也和C语言类似。 2.1.1算术运算符与算术表达式 1…

vue打包优化,webpack的8大配置方案

vue-cli 生成的项目通常集成Webpack ,在打包的时候,需要webpack来做一些事情。这里我们希望它可以压缩代码体积,提高运行效率。 文章目录 (1)代码压缩:(2)图片压缩:&…

计算机网络——17多路复用和解复用

多路复用和解复用 多路复用/解复用 在发送方主机多路复用 从多个套接字接收来自多个进程的报文,根据套接字对应的IP地址和端口号等信息对报文段用头部加以封装(连头部信息用于以后的解复用) 在接收方主机多路解复用 根据报文段的头部信息中…

揭秘铷原子钟:北斗卫星系统的“心脏”

揭秘铷原子钟:北斗卫星系统的“心脏” 近日,中国科学院精密测量科学与技术创新研究院的梅刚华团队发布了一项重要成果。他们成功将铷原子钟的短期频率稳定度提高到了E-14(即10的负14次方,相当于百万亿分之一)的量级&a…

七个常用的机器学习算法详解:决策树与随机森林的深入解析

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在机器学习中,决策树和随机森林是两个非常常用的算法。它们都属于监督学习的…

Nginx学习笔记

Bilibili尚硅谷视频 Nginx 简介 Nginx 概述 Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数 。 正向代理 正向代理:如…