【网络原理】网络层IP协议 | IP报文格式 | IP地址 | 地址管理 | 路由选择

本文主要是介绍【网络原理】网络层IP协议 | IP报文格式 | IP地址 | 地址管理 | 路由选择,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 网络层
    • 一、IP协议
      • 1.IP协议报文格式
      • 2.地址管理
        • IP地址不够用的解决方法:
          • 1.动态分配IP:过渡方案,目前仍广泛存在。
          • 2.NAT机制(网络地址转换)
            • 1.内网IP(局域网IP)
            • 2.外网IP(广域网IP)
          • 3.IPv6
          • 4.网段划分
          • 5.子网掩码
          • 6.特殊的IP地址
      • 3.路由选择


网络层

  • 在复杂的网络环境中确定一个合适的路径

网络层主要做的事情有两方面:

  • 1.地址管理 : 指定一系列的规则,通过地址,描述出网络上一个设备的位置。
  • 2.路由选择 :网络环境是比较复杂的,从一个节点,到另一个节点之间存在很多条不同的路径。就需要通过这种方式,筛选/规划出更合适的路径进行数据的传输。

一、IP协议

1.IP协议报文格式

在这里插入图片描述

  • 四位版本号:4->ipv4 ; 6->ipv6 当前大规模使用的两个版本
  • 四位首部长度:IP协议的报头,也是变长的 (0~0xf 也就是0-15)在此基础上*4 = 0~ 60 个字节
  • 8位服务类型(TOS):能够让IP协议切换形态。3位已被弃用。只有4位TOS字段有效,这四个位彼此是冲突的,只有一位能设为1 ,不同的位设为1表示IP协议不同的形态。还有1位保留字段(必须设为0)。

四个状态:最小延时、最大吞吐量、最高可靠性、最小成本

  • 16位总长度(字节数):描述了IP数据包最长是多长。IP协议也存在64KB大小的限制,但是IP协议自身支持“拆包组包”功能。

  • 16位标识、3位标志位、13位片偏移:依靠这三个属性来实现“拆包组包”

    16位标识:如果一个大的IP数据包需要拆分成多个小的。拆出来的这些小包的16位标识的数值就是相同的

    13位片偏移:描述当前每个小的数据报(分片)的相对位置。片偏移越小,这个数据分片就越靠前。

    3位标志位 :有一位表示是否允许拆包,还有一位表示是否是最后一个包,剩下的一个是保留位。

  • 8位生存时间(TTL):描述了当前这个数据包,在网络上还能存活多久。TTL的单位是次数。数据包构造出来的时候,TTL会被设置成一个初始值(32、64、128…)数据报在转发的过程中,每次经过一个路由器转发,TTL就会-1。换句话说,就是描述这个数据包,能够经过多少个路由器。如果这个数据报,把TTL耗尽了都没有到达,就会被丢弃掉。

    对网络进行了兜底。如果存在一个不存在的地址,耗尽TTL后,就不会再网络上一直传递

  • 8位协议:描述的是,IP数据包的载荷部分是UDP数据包,还是TCP数据包(传输层是哪个协议)

  • 16位首部校验和:这个校验和只校验IP协议的头部,不管IP的载荷。(载荷就TCP/UDP,本身就有校验和)

  • 32位源IP地址、32位目的IP地址 (IP数据报中最关键的内容):IP地址本质上就是一个32位的整数。为了方便理解,会写作 点分十进制的方式。

2.地址管理

IP地址,是一个32位的整数。0~2^32 ,42亿9千万。

地址理论上来说,是不应该重复的,所以这个数远远不够需求

IP地址不够用的解决方法:
1.动态分配IP:过渡方案,目前仍广泛存在。

​ 治标不治本,只是提高了IP地址的利用率,并没有增加IP地址的数目

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

​ 本质上,让一个IP地址,来代表一批设备。

把IP地址分成两个大类:

1.内网IP(局域网IP)

​ 如果一个地址,是以10.* 或者172.16.* ~ 172.31.* 或者 192.168.* 就是内网IP

​ 在同一个局域网之间,内网IP之间是不能重复的。

​ 在不同的局域网中,内网IP之间是可以重复的。

2.外网IP(广域网IP)

​ 剩下的IP就是外网IP,是唯一的,不能重复。

局域网使用一个外网IP,一个外网IP就代表了成千上万个设备

例如快递的地址,是公用一个快递驿站

​ 内网IP无法在广域网上使用,在经过运营商路由器时(也是一个NAT设备),就会对数据包报头的源IP地址进行替换,转换成外网IP。站在服务器的视角,看到的发送方IP就是局域网对应的外网IP。运营商路由器内部,会记录一个映射关系,记录内网IP和外网IP的转换。当报文返回后,就需要把IP再替换回去。

​ NAT设备(运营商路由器)就相当于是一个中转站,发送和接收经过时都会替换IP地址。

当服务器返回数据之后,路由器如何决定这个数据要交给哪个设备?

  • 通过端口号来进行区分,端口号不仅可以区分同一台主机的不同进程,也可以区分不同主机的不同进程。

快递驿站通过电话号,进行具体的区分

  • 如果两个设备的分配的源端口号一样,路由器也会主动把相同的端口,替换成不同的端口

当前的网络环境,就是以NAT+动态分配的方式来解决IP地址不够用的情况。NAT机制最大的优势,就是“纯软件方案”。

3.IPv6

IPv6使用16个字节来表示IP地址。IP地址数量成指数增长,解决了IP不够用的问题。

IPv4是4个字节 :2^32

IPv6是16个字节:2^128 = 2^32 *2^32 * 2^32 * 2^32

4.网段划分

​ 把一个IP地址分成两个部分:

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

  • 同一个局域网的设备IP,网络号必须相同,主机号必须不同。
  • 通过一个路由器连接的两个局域网,网络号不能相同
5.子网掩码
255.255.255.0
11111111 11111111 11111111 00000000

子网掩码用来区分网络号

也是一个32位的整数。左侧都是1,右侧都是0。不会10交替。

被标记为1的部分,就是网络号。这里的1不一定是24个,可以根据网络环境进行配置。

6.特殊的IP地址

如果一个IP地址,主机号全0,当前这个IP就表示“网络号”,代表当前的局域网,不能划分给主机

192.168.100.0
255.255.255.0

如果一个IP地址,主机号全1,表示当前这个IP就是一个“广播地址,同样不能给主机分配

192.168.100.255
255.255.255.0

​ 之前提到,UDP天然支持广播,使用UDP socket给这个地址发送UDP数据报,此时局域网内所有的设备,都能收到这个设备。TCP则无法和这个地址建立连接。

如果一个IP地址是127开头的,这个IP就是"环回IP" (loopback)

127.0.0.1

​ 设备自己发给自己,本质上是操作系统提供了一个特殊的“虚拟网卡”,关联到了这个IP上。主要的用途,进行一些测试性工作。能排除网络不通的因素,方便排查代码的问题。

3.路由选择

  • 描述了IP协议(IP数据报)转发的过程

A->B中间可能会有很多条可行的路径,具体该怎么走。

​ IP数据报转发的时候,每个路由器都是无法知道网络的“全貌”的,只知道一些局部信息(一个路由器能够知道哪些设备和它是相连的)。这就意味着,IP数据报在转发过程中,是“探索式”的过程。很难得到“最优解”,只能是“较优解”

​ 一个网络层的数据报,每到达一个路由器,都会进行“问路”。每个路由器每部都有一个数据结构叫“路由表”,根据数据报当中的目的IP,查路由表。如果查到了 ,就直接按照表给的方向(从哪个网络接口进行转发)继续准发。如果没查到,路由表里有一个“默认的表项”(下一跳地址),按照默认的表项进行转发。

点击移步博客主页,欢迎光临~

偷cyk的图

这篇关于【网络原理】网络层IP协议 | IP报文格式 | IP地址 | 地址管理 | 路由选择的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/949163

相关文章

如何选择适合孤独症兄妹的学校?

在探索适合孤独症儿童教育的道路上,每一位家长都面临着前所未有的挑战与抉择。当这份责任落在拥有孤独症兄妹的家庭肩上时,选择一所能够同时满足两个孩子特殊需求的学校,更显得尤为关键。本文将探讨如何为这样的家庭做出明智的选择,并介绍星贝育园自闭症儿童寄宿制学校作为一个值得考虑的选项。 理解孤独症儿童的独特性 孤独症,这一复杂的神经发育障碍,影响着儿童的社交互动、沟通能力以及行为模式。对于拥有孤独症兄

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依