网络原理之网络层、数据链路层

news2025/3/28 6:01:24

1. 网络层

1.1 IP协议

在这里插入图片描述

1.1.1 基本概念

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

1.1.2 协议头格式

在这里插入图片描述

说明:

  • 4位版本号(version): 指定IP协议的版本,对于IPv4来说,就是4,对于IPv6来说,就是6

  • 4位头部长度(header length): IP头部的长度是多少个32bit,也就是length*4的字节数.4bit表示最大的数字是15,因此IP头部最大长度是60字节.

  • 8位服务类型(Type Of Service): 3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置为0). 4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本.这四者相互冲突,只能选择⼀个.对于ssh/telnet这样的应用程序,最小延时比较重要,对于ftp这样的程序,最大吞吐量比较重要.

  • 16位总长度(totallength): IP数据报整体占多少个字节.

  • 16位标识(id): 唯⼀的标识主机发送的报文.如果IP报文在数据链路层被分片了,那么每⼀个片里面的这个id都是相同的.

  • 3位标志字段:
    第⼀位保留(保留的意思是现在不用,但是还没想好说不定以后要用到).
    第⼆位 置为1表示禁止分片,这时候如果报文长度超过MTU
    在这里插入图片描述
    IP模块就会丢弃报文.第三位表示"更多分片",如果分片了的话,最后⼀个分片置为1,其他是0.类似于⼀个结束标记.

  • 13位分片偏移(framegamentoffset): 是分片相对于原始IP报文开始处的偏移.其实就是在表示当前分片在原报文中处在哪个位置.实际偏移的字节数是这个值*8得到的.因此,除了最后⼀个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了).

  • 8位生存时间(TimeToLive,TTL): 数据报到达目的地的最大报文跳数(⼀般是64),每次经过⼀个路由,TTL-=1,⼀直减到0还没到达,那么就丢弃了.这个字段主要是用来防止出现路由循环
    在这里插入图片描述

  • 8位协议: 表示上层协议的类型

  • 16位头部校验和: 使用CRC进行校验,来鉴别头部是否损坏

  • 32位源地址和32位目标地址: 表示发送端和接收端

  • 选项字段(不定长,最多40字节):

  • 数据: 传输层传来的数据载荷

1.2 地址管理

1.2.1 IP地址

IP地址(Internet ProtocolAddress)是指互联网协议地址,又译为网际协议地址。

IPv4最多可以43亿个IP地址,但是现在上网的设备越来越多,在前文中,我们讨论过使用IPv6的方法,但是由于现在的网络中的主流协议还是IPv4,那么我怎么处理不够用的问题呢??
此时有两种方法

  1. 动态分配置:只给接入网络的设备分配IP地址.因此同⼀个MAC地址的设备,每次接入互联网中,得到的IP地址不⼀定是相同的
  2. NAT技术:见目录下1.2.3介绍

1.2.2 网段划分

IP地址分为两个部分,网络号主机号

  • 网络号: 保证相互连接的两个网段具有不同的标识
  • 主机号: 同⼀网段内,主机之间具有相同的网络号,但是必须有不同的主机号

1.2.3私有IP地址和公网IP地址

如果⼀个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上使用任意的IP地址都可以,但是RFC 1918规定了用于组建局域网的私有IP地址

  • 10.*,前8位是网络号,共16,777,216个地址
  • 172.16.到172.31.,前12位是网络号,共1,048,576个地址
  • 192.168.*,前16位是网络号,共65,536个地址

包含在这个范围中的,都成为私有IP,其余的则称为全局IP(或公网IP)

在这里插入图片描述
在这里插入图片描述

  • 从生活常识中,我们也知道路由器WAN口是插着运营商给定宽带的(光猫),LAN口连接着电脑和其他网络设备
  • ⼀个路由器可以配置两个IP地址,⼀个是WAN口IP,⼀个是LAN口IP(子网IP).
  • 路由器LAN口连接的主机,都从属于当前这个路由器的子网中.
  • 不同的路由器,子网IP其实都是⼀样的(通常都是192.168.1.1).子网内的主机IP地址不能重复.但是子网之间的IP地址就可以重复.
  • 每⼀个家用路由器,其实又作为运营商路由器的子网中的⼀个节点.这样的运营商路由器可能会有很多级,最外层的运营商路由器,WAN口IP就是⼀个公网IP了.
  • 子网内的主机需要和外网进行通信时,路由器将IP首部中的IP地址进行替换(替换成WAN⼝IP),这样逐级替换,最终数据包中的IP地址成为⼀个公网IP.这种技术称为NAT(NetworkAddressTranslation,网络地址转换).
  • 如果希望我们自己实现的服务器程序,能够在公网上被访问到,就需要把程序部署在⼀台具有外网IP的服务器上.这样的服务器可以在阿里云/腾讯云上进行购买

2. 数据链路层

2.1 认识以太网

  • "以太网"不是⼀种具体的网络,而是⼀种技术标准;既包含了数据链路层的内容,也包含了⼀些物理层的内容.例如:规定了网络拓扑结构,访问控制方式,传输速率等
  • 例如以太网中的网线必须使用双绞线;传输速率有10M,100M,1000M等
  • 以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,⽆线LAN等

2.2 以太网帧格式

以太网的帧格式如下所示:

在这里插入图片描述

  • 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的
  • 帧协议类型字段有三种值,分别对应IP、ARP、RARP
  • 帧末尾是CRC校验码

2.3 认识MAC地址

  • MAC地址用来识别数据链路层中相连的节点
  • 长度为48位,及6个字节.⼀般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)
  • 在网卡出厂时就确定了,不能修改.mac地址通常是唯⼀的(虚拟机中的mac地址不是真实的mac地址,可能会冲突,也有些网卡支持用户配置mac地址).

3. 重要应用层协议DNS(Domain Name System)

概念:域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射
作用: 原来访问一个网络信息,需要知道对方的IP和端口号,很不方便,但是DNS将IP地址和端口号和域名绑定在了一起,直接搜索网址即可
例如:当访问一个京东网页时,我们需要知道csdn的IP和端口号,有那么多网页,很难记住那么多网页的,此时就需要DNS,我们只要访问www.csdn.com即可
在这里插入图片描述

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

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

相关文章

版本控制器Git ,Gitee如何连接Linux Gitee和Github区别

📖 示例场景 假设你和朋友在开发一个「在线笔记网站」,代码需要频繁修改和协作: 只用本地文件管理 每次修改后手动复制文件,命名为 v1.html、v2.html 问题:无法追踪具体改动内容;多人修改易冲突&#xff1…

【动态规划篇】91. 解码方法

91. 解码方法 题目链接: 91. 解码方法 题目叙述: 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : “1” -> ‘A’ “2” -> ‘B’ … “25” -> ‘Y’ “26” -> ‘Z’ 然而,在解码已编码的消息时,你…

Python高级——类的知识

一、知识梳理: 二、货币场景搭建: 1)代码展示: class RMB:count 0def __init__(self,yuan0,jiao0,fen0):self.__yuan yuanself.__jiao jiaoself.__fen fenRMB.count 1def __add__(self, other):temp RMB()temp.__yuan se…

resnet与densenet的比较

一、 ResNet(残差网络)和 DenseNet(密集连接网络) ResNet(残差网络)和 DenseNet(密集连接网络)都是深度学习中非常经典的卷积神经网络架构,它们在图像分类、目标检测等诸…

【算法day16】电话号码的字母组合

电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 https://leetcode.cn/problems/letter-combinations…

软件工程之软件验证计划Software Verification Plan

个人主页:云纳星辰怀自在 座右铭:“所谓坚持,就是觉得还有希望!” 本文为基于ISO26262软件验证计划模板,仅供参考。 软件验证计划,包括: 1. 软件需求验证计划 2. 软件架构设计验证计划 3. 软件单…

Spring Cloud之负载均衡之LoadBalance

目录 负载均衡 问题 步骤 现象 什么是负载均衡? 负载均衡的一些实现 服务端负载均衡 客户端负载均衡 使用Spring Cloud LoadBalance实现负载均衡 负载均衡策略 ​编辑 ​编辑LoadBalancer原理 服务部署 准备环境和数据 服务构建打包 启动服务 上传J…

分布式任务调度

今天我们讲讲分布式定时任务调度—ElasticJob。 一、概述 1、什么是分布式任务调度 我们可以思考⼀下下⾯业务场景的解决⽅案: 某电商平台需要每天上午10点,下午3点,晚上8点发放⼀批优惠券 某银⾏系统需要在信⽤卡到期还款⽇的前三天进⾏短信提醒 某…

架构设计的灵魂交响曲:系统设计各维度的深度解析与实战指南

引言: 系统设计的背景与重要性 在快速变化的技术环境中,数字化转型成为企业生存与发展的核心驱动力。系统设计能力不仅是技术团队的核心竞争力,也是推动业务创新和提升整体效率的关键因素。根据Gartner的研究,超过70%的数字化转型项目未能实…

[贪心算法]买卖股票的最佳时机 买卖股票的最佳时机Ⅱ K次取反后最大化的数组和 按身高排序 优势洗牌(田忌赛马)

1.买卖股票的最佳时机 暴力解法就是两层循环&#xff0c;找出两个差值最大的即可。 优化&#xff1a;在找最小的时候不用每次都循环一遍&#xff0c;只要在i向后走的时候&#xff0c;每次记录一下最小的值即可 class Solution { public:int maxProfit(vector<int>& p…

【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring MVC 的核心组件:DispatcherServlet 的工作原理

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、Dispat…

第J3周:DenseNet121算法实现01(Pytorch版)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目标 具体实现 &#xff08;一&#xff09;环境 语言环境&#xff1a;Python 3.10 编 译 器: PyCharm 框 架: Pytorch &#xff08;二&#xff09;具体步骤…

webrtc3A算法

使用ubuntu18.04 选择webrtc_audio_processing v0.3 下载地址 https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/tree/master git clone 完 编译 # Initialise into the build/ directory, for a prefixed install into the # install/ directory meson …

让“树和二叉树”埋在记忆土壤中--性质和概念

Nice to meet your! 目录 树的介绍&#xff1a; 树的创建&#xff1a; 二叉树的概念和结构&#xff1a; 二叉树的存储结构&#xff1a; 树的介绍&#xff1a; 概念和结构&#xff1a; 不知你们是否在现实中看见过分为两个叉的枯树&#xff0c;大概长这样&#xff1a; 那…

Spring Boot整合SSE实现消息推送:跨域问题解决与前后端联调实战

摘要 本文记录了一次完整的Spring Boot整合Server-Sent Events&#xff08;SSE&#xff09;实现实时消息推送的开发过程&#xff0c;重点分析前后端联调时遇到的跨域问题及解决方案。通过CrossOrigin注解的实际应用案例&#xff0c;帮助开发者快速定位和解决类似问题。 一、项…

【工具分享】vscode+deepseek的接入与使用

目录 第一章 前言 第二章 获取Deepseek APIKEY 2.1 登录与充值 2.2 创建API key 第三章 vscode接入deepseek并使用 3.1 vscode接入deepseek 3.2 vscode使用deepseek 第一章 前言 deepseek刚出来时有一段时间余额无法充值&#xff0c;导致小编没法给大家发完整的流程&…

康谋方案 | AVM合成数据仿真验证方案

随着自动驾驶技术的快速发展&#xff0c;仿真软件在开发过程中扮演着越来越重要的角色。仿真传感器与环境不仅能够加速算法验证&#xff0c;还能在安全可控的条件下进行复杂场景的重复测试。 本文将分享如何利用自动驾驶仿真软件配置仿真传感器与搭建仿真环境&#xff0c;并对…

Linux内核IPv4路由选择子系统

一、基本知识 1.具体案例&#xff1a;直连路由 结构fib_nh表示下一跳&#xff0c;包含输出网络设备、外出接口索引等信息。 有两个以太网局域网 LAN1 和 LAN2&#xff0c;其中 LAN1 包含子网 192.168.1.0/24&#xff0c;而 LAN2 包含子网 192.168.2.0/24。在这两个 LAN 之…

NWAFU 生物统计实验二 R语言版

#1 setwd(修改为你的工作路径或桌面路径) feed_types <- c("A", "B", "C") weight_gain_means <- c(36.8, 34.9, 21.3) weight_gain_sds <- c(2.4, 2.7, 6.6) weight_gain <- rnorm(3, mean weight_gain_means, sd weight_gain_sd…

Thinkphp指纹识别

识别ThinkPHP框架(指纹) 1.ioc判断 /favicon.ico 2.报错 /1 然后使用工具梭哈