了解网络层

目录

一、IP协议

 二、地址管理

IP地址

概念

作用

格式

网段划分

三、路由选择


 

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

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

一、IP协议

协议格式如下:

  •  4位版本号:指定IP协议的版本,对于IPv4来说就是4,二进制表示是0100;对于IPv6来说就是6,二进制表示是0110。
  • 4位头部长度:这个字段指示IP数据报头部的长度。以4字节为单位表示,4位二进制表示最大的数为15,因此IP头部最大长度是60字节(4*15);而最小长度为20字节(不加选项部分),其中选项部分为40字节。
  • 8位服务类型:能够让IP协议切换形态。3位优先权字段(已经弃用),4位TOS字段和1位保留字段(必须置为0)。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个。对于ssh/telent这样的应用程序,最小延时比较重要;对于ftp这样的程序,最大吞吐量比较重要。
  • 16位总长度:该字段表示IP数据报整体占多少个字节。
  • 16位标识:唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每一个片里面的这个id都是相同的。
  • 3位标志字段:第一位保留,第二位表示是否允许拆包,第三位表示是否是最后一个包。第二位置为1,表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。
  • 13位分片偏移:描述了当前每个小的数据包(分片的相对位置)。其实就是在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值*8得到的。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。
  • 8位生存时间:数据报达到目的地的最大报文跳数,描述了这个IP数据报在网络上还能继续存活多久。一般是64.每次经过一个路由,TTL=1,一直减到0还没达到就丢弃了。这个字段主要是用来防止出现路由循环。
  • 8位协议:表示上层协议的类型。
  • 16位头部校验和:使用CRC进行校验,来鉴别头部是否损坏。
  • 32位源地址和32位目标地址:表示发送端IP和接收端IP。
  • 选项字段:不定长,位于头部,最多40字节。

 二、地址管理

IP地址

概念

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址,每个网络设备,在加入网络时都会分配一个IP地址,以便他们在网络进行通信。

作用

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

格式

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:

01100100.00000100.00000101.00000110。

通常用“点分十进制”的方式来表示,即a.b.c.d的形式(a,b,c,d都是0~255之间的十进制整数)。如:100.4.5.6。

IP协议有两个版本,IPv4和IPv6。

IPv4数量为2^32,大约43亿左右,而TCP/IP协议规定,每个主机都需要有一个IP地址。对于全世界计算机来说,这个数量是不够的,所有后来推出了IPv6(长度为128位,是IPv4的4倍),但目前IPv4还广泛使用,且可以使用其他技术来解决IP地址不足的问题,所以IPv6也就没有普及。

以前IPv4是远远够用了,但信息技术的发展,计算机的普及,IPv4是远远不够全世界的人分配的,所以,解决IPv4地址不够用的问题,有三种方案:

1.动态分配IP

这个方案是把IP地址临时的分配给网络中需要使用IP地址的设备,可是治标不治本,提高了IP地址的利用率,并没有增加IP地址的数目。(虽然这是一个过渡的方案,这个方案目前仍然是广泛存在的)。

2.NAT技术(网络地址转换)

NAT技术实际上工作在网络层。NAT的主要作用是司改IP数据包的源地址或目标地址,以便让更多个内部网络设备通过一个公共的IP地址与外部网络网络通信(本质上是让一个IP代表一批设备)。

补充:

首先,IP地址分为两大类

1)内网IP(局域网IP)

如果一个IP地址,是以10.*或者172.16.*-172.31.*或者192.168.*,那么该IP地址就是内网IP;

在同一个局域网内部,内网IP之间不能够重复;

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

2)外网IP(广域网)

除了上面的内网IP,剩下的都是外网IP了,外网IP是不能够重复的。

而在这种情况下,通常都是一个小区/一个学校/一个公司,构成一个大的局域网,这个局域网中可能够成千上万的设备,这样的一个局域网,就共用这一个外网IP即可。

NAT具体工作机制:

上面这种是简单的情况下,如果局域网内有多个主机同时访问同一网站的服.务器,此时当服务器返回响应的时候,经过路由器,应该交给哪个主机呢? 回答:用端口号区分。

 端口号可以用来区分同一个主机的不同进程,也可以区分不同主机的不同进程。当服务器返回响应的时候,在同一主机一样的情况下,通过替换后的映射,目的端口是10001的这个就需要把IP:123.139.168.15转换为192.168.0.100,同理目的端口为8888的IP就能转换为对应的IP。

那如果不同主机IP下,他们的端口号都相同怎么办呢?

如果端口号都相同的情况下,路由器的NAT机制需要把源端口都替换掉,同时记录替换前与替换后的映射关系,以便返回响应能够正确找到目标IP。

当前的网络环境就是以NAT+动态分配的方式来解决IP地址不够用的问题的,当然,也正是因为这个机制,局域网内部设备能够主动访问外网设备,外网设备无法主动访问局域网内部设备。

3.使用IPv6(根本上解决)

IPv6使用16个字节即128位来表示IP地址,IPv6从根本上解决了IPv4不够用的问题,IPv6的数目为2^128,这是一个天文数字,远远要比IPv4要大得多的。

但是实际上IPv6的普及程度其实是比较低的,其最大的问题是与IPv4不兼容,想要能够支持IPv6就得换设备。而在我国,IPv6的普及也是相当高的了,一般来说,IPv6手动设置才能开启的。

网段划分

网段划分是指在网络中将一个大范围的IP地址空间分割成多个较小的部分,以便更好地管理和分配网络资源。

把一个IP地址分成两部分:网络号(标识了一个局域网)+主机号(标识了一个局域网的设备)

比如下面的例子:

 由图中可以看出,同一个局域网中的网络设备,网络号必须相同,主机号必须不同;而对比这两个相邻的局域网,网络号是不能相同的。

当然一个IP地址,哪个部分是网络号,哪个部分是主机号那是不确定的,一般都是通过子网掩码来确定网络号的,具体内容不再详细赘述,简单介绍。


三、路由选择

路由选择就是描述了IP协议(IP数据报)转发的过程。

对于以上经过的设备:

  • 主机:配有IP地址,但是不进行路由控制的设备。
  • 路由器:既配有IP地址,又能进行路由控制。
  • 节点:主机和路由器的统称。

对于网络数据传输,不是想象中的那样,数据直接从源主机到达目的主机,而是类似在地图中从A到B的过程:A->1->2->3->B。

一个网络层的数据报,每次到达一个路由器,也会进行问路的过程,每个路由器内部会有一个路由表,根据数据报中的目的IP,查路由表,如果查到了,就直接按照路由表给定的方向(网络转发接口)继续转发,直到到达目的主机。

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

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

相关文章

NO.11十六届蓝桥杯备战|if-else语句|嵌套if|悬空else|练习4道(C++)

if-else语句 if语句 if语句的语法形式如下: if ( 表达式 ) 语句;表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏ 0为假,⾮0表⽰真,也就是…

Json-RPC框架项目(一)

目录 1. 项目介绍: 2. 技术选择; 3. 第三方库介绍; 4. 项目功能; 5. 模块功能; 6. 项目实现: 1. 项目介绍: RPC是远程过程调用, 像调用本地接口一样调用远程接口, 进行完成业务处理, 计算任务等, 一个完整的RPC包括: 序列化协议, 通信协议, 连接复用, 服务注册, 服务发…

Discourse 创建和配置用户自定义字段

用户自定义字段能够让你在用户注册的是要求用户提供更多的信息。这些用户提供的信息可以在用户名片,用户摘要页面下显示,甚至还可以通过 Data Explorer plugin 插件进行查询。 本文能够帮助你对这些字段进行配置和设置。 添加一个用户字段 进入 Admin…

从零到一:我的元宵灯谜小程序诞生记

缘起:一碗汤圆引发的灵感 去年元宵节,我正捧着热腾腾的汤圆刷朋友圈,满屏都是"转发锦鲤求灯谜答案"的动态。看着大家对着手机手忙脚乱地切换浏览器查答案,我突然拍案而起:为什么不做一个能即时猜灯谜的微信…

【C++11】lambda和包装器

1.新的类功能 1.1默认的移动构造和移动赋值 原来C类中,有6个默认成员函数:构造函数/析构函数/拷⻉构造函数/拷⻉赋值重载/取地址重 载/const 取地址重载,最后重要的是前4个,后两个⽤处不⼤,默认成员函数就是我们不写…

Java企业电子招投标系统:Spring Cloud微服务架构-强化企业招采竞争力:电子化招投标平台助力效率与成本控制-支持二次开发

​在当今激烈的市场竞争环境下,企业规模的持续扩大使得招采管理变得日益重要,已成为企业提升核心竞争力的关键一环。为了实现更高效、更高质量的招采成果,我们设计了一套基于电子化平台的解决方案,旨在通过电子化招投标系统&#…

计算机毕业设计Spark+大模型知网文献论文推荐系统 知识图谱 知网爬虫 知网数据分析 知网大数据 知网可视化 预测系统 大数据毕业设计 机器学习

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

打家劫舍3

今天和打家讲一下打家劫舍3 题目: 题目链接:337. 打家劫舍 III - 力扣(LeetCode) 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为root。 除了 root 之外,每栋房子有且只有一个“父“…

指定路径安装Ollama

通过鼠标双击安装,默认会安装到C盘下,如果需要更换默认路径则可以通过命令的方式将Ollama安装到其他盘的某个目录下。 OllamaSetup.exe /DIR"D:\Ollama" #DIR指定安装路径 执行上述命令后,会弹出OllamaSetup.exe安装窗体界面&…

Linux:库

目录 静态库 动态库 目标文件 ELF文件 ELF形成可执行 ELF可执行加载 ELF加载 全局偏移量表GOT(global offset table) 库是写好的,成熟的,可以复用的代码 现实中每个程序都要依赖很多的基础的底层库,不可能都是从零开始的 库有两种…

心脏滴血漏洞复现(CVE-2014-0160)

漏洞范围: OpenSSL 1.0.1版本 漏洞成因: Heartbleed漏洞是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进 行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复 制到缓存当中再返回缓存内容,…

一文学会:用DeepSeek R1/V3 + AnythingLLM + Ollama 打造本地化部署的个人/企业知识库,无须担心数据上传云端的泄露问题

文章目录 前言一、AnythingLLM 简介&基础应用1.主要特性2.下载与安装3.配置 LLM 提供商4.AnythingLLM 工作区&对话 二、AnythingLLM 进阶应用:知识增强使用三、AnythingLLM 的 API 访问四、小结1.聊天模式2.本地存储&向量数据库 前言 如果你不知道Olla…

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 0基础…

探秘AES加密算法:多种Transformation全解析

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

html文件怎么转换成pdf文件,2025最新教程

将HTML文件转换成PDF文件,可以采取以下几种方法: 一、使用浏览器内置功能 打开HTML文件:在Chrome、Firefox、IE等浏览器中打开需要转换的HTML文件。打印对话框:按下CtrlP(Windows)或CommandP(M…

DFS+回溯+剪枝(深度优先搜索)——搜索算法

DFS也就是深度优先搜索,比如二叉树的前,中,后序遍历都属于DFS。其本质是递归,要学好DFS首先需要掌握递归。接下来咱们就一起来学习DFS涉及的算法。 一、递归 1.什么是递归? 递归可以这样理解把它拆分出来&#xff0…

DeepSeek从入门到精通教程PDF清华大学出版

DeepSeek爆火以来,各种应用方式层出不穷,对于很多人来说,还是特别模糊,有种雾里看花水中望月的感觉。 最近,清华大学新闻与传播学院新媒体研究中心,推出了一篇DeepSeek的使用教程,从最基础的是…

idea Ai工具通义灵码,Copilot我的使用方法以及比较

我用过多个idea Ai 编程工具,大约用了1年时间,来体会他们那个好用,以下只是针对我个人的一点分享,不一定对你适用 仅作参考。 介于篇幅原因我觉得能说上好用的 目前只有两个 一个是阿里的通义灵码和Copilot,我用它来干…

C++ Primer sizeof运算符

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

【C++】命名空间

🌟 Hello,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 目录 背景知识 命名空间(namespace) 为何引入namespace namespace的定义 namespace的使用 背景知识 C的起源要追溯到1979年&#xff0…