网络层——IP

news2024/11/17 16:50:06

IP地址

结构:
由32位二进制数组成,通常用点分的形式被分为四个部分,每个部分1byte,最大值为255。

从功能的角度看,ip地址由两部分组成,网络号和主机号。网络号标识了ip所在的网段,主机号标识了在该网段中的唯一的一台主机。二者的区分又需要与掩码配合使用,例如192.168.1.2/24,24表示掩码255.255.255.0,将掩码与ip进行按位与操作,获得了192.168.1.0即为该主机所在网段。

将IP地址中的主机地址全部设为0, 就成为了网络号, 代表这个局域网

将IP地址中的主机地址全部设为1, 就成为了广播地址, 用于给同一个链路中相互连接的所有主机发送数据包

网段的划分:

假如一个组织申请到的网段是122.1.1.0/24,组织有三个部门,A部门有125台主机需要上网,B,C部门各有60台主机上网。首先将网段分为两个部分122.1.1.128/25和122.1.1.0/25,这两个网段都可以容纳126台主机(有一个网络号和一个广播地址),将第一个网段分配给A部门,再对第二个网段划分,分为122.1.1.0/26和122.1.1.64/26,这两个网段刚好够B,C部门使用。

分类:

私有ip和公网ip

因为公网ip的最大数量只有42亿多,数量远远不够,需要使用NAT技术解决这个问题。简单来讲一下NAT技术,运营商路由器连接了公网,我们在连接运营商的路由器后,就会加入到该路由器所组织的一个局域网中,这个局域网中的ip都是私有ip。当有主机要访问公网的服务器时,会在NAT网关建立映射(NAT网关会维护一张映射表,将源ip(私有ip),源端口和访问的外网服务器ip记录下来),将ip的请求报文中的源ip替换为公网ip,相当于运营商替我们访问了外网的服务器然后将返回的响应根据映射表发送给私有ip。

注意:

私有ip不能直接访问公网ip;

不同局域网间的私有ip可以有相同;

路由器有两种端口,WAN连接公网(也可能是上一层路由器组织的局域网),LAN连接局域网

IP协议格式

  • 版本:IP的版本,4就代表了IPv4
  • 首部长度:该值的大小*4就是IP首部的字节数,因此首部长度最大是15*4=60byte
  • 服务类型(Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0). 4位 TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个
  • 总长度:整个报文的字节数大小
  • 标识:主机发送的报文的唯一标识,如果主机发送的报文被分片,那么所有的分片的标识都是相同的
  • 标志:标志的第一位保留;第二位是0表示可以分片,是1表示禁止分片;如果进行分片,所有分片的报文除了最后一个第三个标志位是1,其余的都是0,用来标识分片报文的结束 
  • 片偏移:是分片相对于原始IP报文开始处的偏移. 其实就是在表示当前分片 在原报文中处在哪个位置. 实际偏移的字节数是这个值 * 8 得到的. 因此, 除了最后一个报文之外, 其他报 文的长度必须是8的整数倍(否则报文就不连续了)
  • 生存时间:表示报文可以进行的最大跳数,每次递交到路由器后都会减1,如果路由器收到生存时间小于1的报文会直接丢弃
  • 协议:表示上层协议
  • 16位头部校验和: 使用CRC进行校验, 来鉴别头部是否损坏
  • 32位源地址和32位目标地址: 表示发送端和接收端

为什么分片?分片的影响有什么?

因为数据链路层的有效载荷不能太大,最大不超过1500byte,有效载荷越大,数据在传输的过程中越容易发生数据碰撞。分片后,有一个分片丢失,整个报文都会丢失,所以不建议分片。

路由

路由是指数据在复杂的网络中找到通往目的主机的路线。

路由的实现离不开路由器。

路由器其实就是一个子网的主机,其ip一般都是该子网的网络号,有两个功能:实现ip报文的转发,构建子网(局域网)。

路由器自己会维护一张路由表,路由器收到数据包后会查看目的ip,将该ip依次与Genmask作按位与运算,然后与Destination对比,如果符合就直接发送给目标主机或者路由器,如果不符合就发送给默认路由。

假设某主机上的网络接口配置和路由表如下:

假如有一个数据包目的ip是192.168.10.8,就会将该数据包交给端口eth0;

假如有一个数据包目的ip是10.96.0.155,路由器发现没有端口对应这个ip,就交给default的端口eth0

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI大模型:揭秘AI产品经理与传统产品经理的差别与转型攻略

引言: 随着ChatGPT等革命性产品的流行,人工智能(AI)在中国的发展势头愈发强劲。众多企业纷纷投身AI领域,希望在激烈的市场竞争中占据有利位置。在这一背景下,AI产品经理成为了一个备受瞩目的职业角色。那么…

智慧环保大数据平台建设方案

1. 智慧环保现状与挑战 随着环境问题日益严重,环境事件频发,如贵州都匀矿渣污染、云南南盘江水污染等,以及癌症高发率的出现,智慧环保建设显得尤为重要。智慧环保旨在通过技术手段提升环境管理和决策的智能化水平。 2. 宏观环境…

ubuntu系统下,c++图形库Matplot++配置

linux下安装c图形库Matplot,使得c可以可视化编程;安装Matplot之前,需要先安装一个gnuplot,因为Matplot是依赖于此库 gnuplot下载链接: http://www.gnuplot.info/ 一、gnuplot下载与安装 step1.进入链接点击Release链…

一文了解ChatGPT的发展浪潮

前言 近一段时间在学Prompt,刚好学到了ChatGPT的一些发展史,因此沉淀一些相关的概念内容。 以下开始本文的讲解~👨🚀 一、AI简述 人工智能发展史上的三次浪潮: 人工智能、机器学习和深度学习的关系: 人…

大碗娱乐发布业务调整说明 取消艺人经纪业务

大碗娱乐今日发布业务调整说明:不再负责艺人业务,而贾玲导演将专注内容创作。据悉,其公司旗下艺人张小斐、许君聪、卜钰、何欢、张泰维、朱天福、曹贺军、刘宏禄的经纪合约均已到期,双方不再续约,但未来会共同寻求以其…

Excel的基本应用__3

九九乘法表 MAX函数:找出最大值 FREQUENCY函数:计算符合区间的数量 语法: FREQUENCY(data_array, bins_array) data_array:要计算频率的数据数组或单元格区域。bins_array:用于定义区间的数组或单元格区域。 如果您不按 Ctrl Shift Ent…

Soar项目中添加一条新的SQL审核规则示例

soar是一个开源的SQL规则审核工具,是一个go语言项目,可以直接编译构建成一个可执行程序,而且是一个命令行工具,我们可以利用archey来调用soar进行sql规则审核以及sql的分析,包括执行计划的查看及sql建议等。 soar中已…

django开发流程3(轮播图)

1.在models中创建一个模板 class Ads(models.Model):title models.CharField(verbose_name"标题", max_length30)image models.ImageField(verbose_name"广告图", upload_to"ads")url models.URLField(verbose_name"链接网址", de…

Stable Diffusion绘画 | Checkpoint Merger 模型融合

在我们的模型库中,经常会发现下载的模型,生成的图片颜色发灰,暗沉: 主要原因就是,我们下载的模型,作者训练时并没有加入VAE色调文件。 为了解决这个问题,我们可以使用 SD 自带额模型融合页面&am…

召回08 双塔模型——线上服务、模型更新

线上召回 离线存储: 模型训练好之后,部署到线上做召回,快速找到用户感兴趣的物品。 对训练好的两个塔,线上服务前,先用右边的物品塔提取物品的特征做离线存储,记作特征向量b,把(b…

redux的基础知识

1. 概念 是集中状态管理工具 2. 使用步骤 3. 总结 参考:黑马程序员react教程

Linux Reverse(1)-LD_PRELOAD

LD_PRELOAD 是 Linux 系统中的一个环境变量,它允许用户在程序运行时动态地加载共享库。通过设置该环境变量,用户可以指定一个或多个共享库,这些库中的函数将在其他库或程序调用相同函数时优先使用。这在调试、注入、替换函数实现或修改程序行…

大数据Hologres(二):Hologres 快速入门

文章目录 Hologres 快速入门 一、资源领取 二、入门体验 1、创建数据库 2、创建表 3、导入示例数据 4、查询表中数据 Hologres 快速入门 一、资源领取 领取链接: 阿里云免费试用 - 阿里云 (aliyun.com) 二、入门体验 1、创建数据库 进入Hologres管理控制…

递归,搜索与回溯40道算法题

目录 一递归 1汉诺塔问题 2合并两个有序链表 3反转链表 4两两交换链表的节点 5Pow(x,n) 二二叉树的深搜 1计算布尔二叉树的值 2求根节点到叶节点数字之和 3二叉树剪枝 4验证二叉搜索树 5二叉搜索树中第K小的元素 6二叉树的所有路径 三穷举vs暴搜vs深搜vs回溯vs…

AI 大模型浪潮下,大龄程序员怎样转型求变,攀登技术高峰?

前言 在信息技术迅猛发展的今天,程序员作为技术的创造者和实践者,正面临前所未有的挑战。技术的迭代速度日益加快,传统项目的生命周期不断缩短。同时,人工智能(AI)尤其是大模型技术的兴起,使得…

如何使用ssm实现基于web的学生就业管理系统的设计与实现+vue

TOC ssm726基于web的学生就业管理系统的设计与实现vue 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上…

算法题题解:两个链表的交点

在这篇博客中,请允许我分享一下力扣上的算法题目:“两个链表的交点”,记录一下上面的一个有效的解法。该问题的目标是找到两个单链表的交点节点,若无交点则返回NULL。 题目描述 给你两个单链表的头节点 headA 和 headB &#xf…

【蚂蚁HR-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

每日一练:从前序遍历与中序遍历序列构造二叉树

105. 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode) 题目要求: 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节…

在 Delphi BSD11中安装 DCU 格式的第三方组件库

在 Delphi BSD 11 中安装 DCU 格式的第三方组件库可以按照以下步骤进行: 打开 Delphi:启动 Delphi 开发环境。 选择安装组件: 在菜单栏中,选择 Component -> Install Component。 选择 DCU 文件: 在弹出的对话框中…