【linux网络(一)】初识网络, 理解四层网络模型

💓博主CSDN主页:杭电码农-NEO💓

⏩专栏分类:Linux从入门到精通⏪

🚚代码仓库:NEO的学习日记🚚

🌹关注我🫵带你学更多操作系统知识
  🔝🔝


在这里插入图片描述

Linux网络

  • 1. 前言
  • 2. 初识网络
  • 3. 网络为什么需要分层?
  • 4. 网络传输的基本流程
  • 5. 初识IP地址和MAC地址
  • 6. 总结

1. 前言

本篇文章开始,会正式学习网络,网络编程的本质依然是使用系统调用,所以这里就不另外开辟专栏来讲解网络,而是直接将系统和网络放在一起,望大家理解!

本章重点:

本篇文章着重讲解网络的基本概念,和网络中的四层模型以及它们对应的协议,最后会带大家初步了解网络传输的基本流程,并且会给大家讲解IP地址和MAC地址的基本概念和区别,为后续学习打下基础


2. 初识网络

网络其实就是进程间通信的一种,跨网络通信是在不同主机上进行的(比如我在杭州要访问软件QQ,而QQ的服务器进程可能在深圳),而通信的复杂度是和距离成正比的.跨网络通信需要解决一些问题,比如:

  1. 如何处理在网络中获取的数据?
  2. 在网络中丢包了应该咋办?
  3. 怎样定位要访问的主机或要访问的进程?
  4. 现实生活中有很多路由器可以当网络的跳板,怎样知晓下一跳往哪儿走?

为了解决上面的一些问题,要制定协议
协议的本质就是一层软件层

而像大家听说过的HTTP,TCP/IP协议
就是在这种场景下诞生的

其实网络模型具体被分为了七层,叫做OSI七层模型,但是工程师发现,其实只用四层模型就能很好的解决问题,所以我们主要学习的也是四层网络模型(又称TCP/IP四层模型). 如果你对OSI七层模型感兴趣,可以阅读这篇文章: OSI七层模型

四层模型以及它们的协议:

  • 应用层(HTTP协议)
  • 传输层(TCP/UDP协议)
  • 网络层(IP协议)
  • 数据链路层(ARP协议)

在这里插入图片描述
物理层偏向硬件,所以后续不会讲解

拓展阅读: 四层模型和七层模型的概念


3. 网络为什么需要分层?

先说结论,进行网络分层的原因:

  • 场景复杂,分层利于拆分复杂场景
  • 功能解耦,便于后续进行各种维护

综上所述,网络进行分层后,不同的层负责不同的功能,互相之间不会干扰,并且每一层都有自己的协议,虽然现在大多数都是使用TCP/IP协议,但是不能保证未来是否会推出更优的协议,所以为了未来的可维护性,进行分层也是很有必要的.除此之外,一旦在网络通信中出现了错误,分层后就能很好的定位错误出现在哪一层,进而改善一些组件

还有一点,网络编程使用的是系统调用.

  • 应用层对应shell,应用软件等
  • 传输层和网络层对应操作系统
  • 数据链路层对应的是驱动板块
  • 而物理层对应的是硬件

在这里插入图片描述


4. 网络传输的基本流程

首先我们需要明确下面的观点:

  1. 每一层都有自己的协议定制的方案
  2. 每一层都要有自己的协议报头(字段)
  3. 从上到下交付数据时,要添加报头
  4. 从下到上递交数据时,要去掉报头

有了上面的观念后,再来看看图解:

在这里插入图片描述

这个图比较抽象,但是可以看出一点,客户端和服务器的每一层使用的协议都是一样的,也就是说,在客户端的X层添加了协议报头的数据,在服务器的X层会使用同样的协议来拆解报头,用这种方法可以达到,数据在客户端的X层和在服务器的X层,看起来都是一样的.除此之外,数据在经过数据链路层后,可能会经过多个路由器才能到达对方服务器

具体的实例来理解传输过程:

在这里插入图片描述

上层数据向下传送时,每一层都有自己的协议,要想对方的同一层根据协议解析数据,就要加一个报头。类似于快递要贴上订单号给每一个快递员或驿站传递信息,收到快递后要把订单号去掉,收到的数据中,多出来的部分就是协议报头

在这里插入图片描述


5. 初识IP地址和MAC地址

认识IP地址:
IP协议有两个版本, IPv4和IPv6.
我们只讲IPv4,也是最常用的

  • IP地址是在IP协议中, 用来标识网络中不同主机的地址;
  • 对于IPv4来说, IP地址是一个4字节, 32位的整数;
  • 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

认识MAC地址:

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

IP地址和MAC地址的区别:

IP地址标识的是从当前主机到目标主机的起点与终点.而MAC地址标识的是从当前主机到目标主机的路程中,下一跳要往哪儿跳?我们用唐僧取经的例子来说明,唐僧从东土大唐去西天取经,那么源IP地址就是东土大唐,目的IP地址就是西天.而去西天可能要经过车迟国,黑风岭,火焰山,女儿国等地方,假设下一站是火焰山,那么目的MAC地址就是火焰山


6. 总结

本篇文章着重讲解网络的基础知识,
意在为后面的网络学习打下基础


🔎 下期预告:套接字编程 🔍

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

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

相关文章

nacos 启动 报堆内存问题

** nacos 启动 报堆内存问题 ** “nacos is starting with cluster” Error occurred during initialization of VM Could not reserve enough space for object heap 1、打开 …/nacos/bin/ startup.cmd 修改以下项( nacos1.x 版本,如:na…

在 Linux/Ubuntu/Debian 上安装 SQL Server 2019

Microsoft 为 Linux 发行版(包括 Ubuntu)提供 SQL Server。 以下是有关如何执行此操作的基本指南: 注册 Microsoft Ubuntu 存储库并添加公共存储库 GPG 密钥: sudo wget -qO- https://packages.microsoft.com/keys/microsoft.as…

rancher2.6部署

rancher2.6部署 1、准备环境镜像 2、部署3、密码获取密码设置新密码 4、设置语言5、导入已有集群 1、准备 环境 docker-ce-20.10.23-3.el8.x86_64.rpm以及依赖rpm kubernetes:v1.23.17 镜像 (rancher和k8s有个版本对应关系,rancher2.5就不…

免费redis可视化工具windows/mac都可以使用,开源免费

官方地址:RedisInsight | The Best Redis GUI github开源地址:GitHub - RedisInsight/RedisDesktopManager Redis Desktop Manager – Redis可视化管理工具、redis图形化管理工具、redis可视化客户端、redis集群管理工具。 官方下载方式 滚动到页面底…

RHCE:请给openlab搭建web

1.关闭所有安全软件已经防火墙 2.安装所需软件 3.在Windows 文件中进行DNS映射 C:\Windows\System32\drivers\etc\hosts 文件进 行DNS 映射 4.创建www.openlab.com网站 5.创建教学资料子网站 6.创建学生信息子网站 进行验证 7.创建缴费子网站

【进程概念】Linux进程状态 | 僵尸进程 | 孤儿进程

目录 Linux中的进程状态 R运行状态&S休眠状态 T/t停止状态stopped(tracing stop) D磁盘休眠状态Disk sleep X死亡状态dead&Z僵尸状态zombie 僵尸进程 僵尸进程的理解 演示僵尸进程 僵尸进程的危害 孤儿进程 孤儿进程的理解 演示孤儿进程 进程状态的查看…

【Java程序设计】【C00352】基于Springboot的疫情隔壁酒店管理系统(有论文)

基于Springboot的疫情隔壁酒店管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 项目获取 🍅文末点击卡片获取源码🍅 开发环境 运行环境:推荐jdk1.8; 开发工具:eclipse以…

数据库系统概论(超详解!!!) 第四节 关系数据库标准语言SQL(Ⅲ)

1.连接查询 连接查询&#xff1a;同时涉及多个表的查询 连接条件或连接谓词&#xff1a;用来连接两个表的条件 一般格式&#xff1a; [<表名1>.]<列名1> <比较运算符> [<表名2>.]<列名2> [<表名1>.]<列名1> BETWEEN [&l…

Typecho 博客文章评论添加显示 UserAgent(UA)的功能

本篇文章实现了为 Typecho 博客文章评论添加显示 UserAgent&#xff08;UA&#xff09;的功能本功能可替代 UserAgent 插件&#xff0c;更美观、简洁且好看 效果显示 大概就是这样了&#xff0c;实际效果请看我的评论&#xff01; 目前可以识别的操作系统以及浏览器 食用方…

用redis lua脚本实现时间窗分布式限流

需求背景&#xff1a; 限制某sql在30秒内最多只能执行3次 需求分析 微服务分布式部署&#xff0c;既然是分布式限流&#xff0c;首先自然就想到了结合redis的zset数据结构来实现。 分析对zset的操作&#xff0c;有几个步骤&#xff0c;首先&#xff0c;判断zset中符合rangeS…

吴恩达深度学习笔记:浅层神经网络(Shallow neural networks)3.1-3.5

目录 第一门课&#xff1a;神经网络和深度学习 (Neural Networks and Deep Learning)第三周&#xff1a;浅层神经网络(Shallow neural networks)3.1 神经网络概述&#xff08;Neural Network Overview&#xff09;3.2 神经网络的表示&#xff08;Neural Network Representation…

ArkTS编写的HarmonyOS原生聊天UI框架

简介 ChatUI&#xff0c;是一个ArkTS编写的HarmonyOS原生聊天UI框架&#xff0c;提供了开箱即用的聊天对话组件。 下载安装 ohpm install changwei/chatuiOpenHarmony ohpm 环境配置等更多内容&#xff0c;请参考如何安装 OpenHarmony ohpm 包 接口和属性列表 接口列表 接…

Qt实现简易的多线程TCP服务器(附源码)

目录 一.UI界面的设计 二.服务器的启动 三.实现自定义的TcpServer类 1.在widget中声明自定义TcpServer类的成员变量 2.在TcpServer的构造函数中对于我们声明的m_widget进行初始化&#xff0c;m_widget我们用于后续的显示消息等&#xff0c;说白了就是主界面的更新显示等 …

【Java常用API】带目的的爬虫

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …

学习SpringBoot笔记--知识点(1)

目录 SpringBoot介绍 创建一个最基础的springbooot项目 使用Spring Initializr创建springboot项目 Spring Boot 自动配置机制 SpringBoot常用注解 1.组件注册 2.条件注解 3.属性绑定 SpringBoot自动配置流程​编辑 学习SpringBoot的方法 ​编辑 SpringBoot日志配置…

西井科技与安通控股签署战略合作协议 共创大物流全新生态

2024年3月21日&#xff0c;西井科技与安通控股在“上海硅巷”新象限空间正式签署战略合作框架协议。双方基于此前在集装箱物流的成功实践与资源优势&#xff0c;积极拓展在AI数字化产品、新能源自动驾驶解决方案和多场景应用&#xff0c;以及绿色物流链等领域的深度探索、强强联…

视频汇聚平台EasyCVR启用图形验证码之后调用login接口的操作方法

视频综合管理平台EasyCVR视频监控系统支持多协议接入、兼容多类型设备&#xff0c;平台可以将区域内所有部署的监控设备进行统一接入与集中汇聚管理&#xff0c;实现对监控区域的实时高清视频监控、录像与存储、设备管理、云台控制、语音对讲、级联共享等&#xff0c;在监控中心…

Windows如何搭建 ElasticSearch 集群

单机 & 集群 单台 Elasticsearch 服务器提供服务&#xff0c;往往都有最大的负载能力&#xff0c;超过这个阈值&#xff0c;服务器 性能就会大大降低甚至不可用&#xff0c;所以生产环境中&#xff0c;一般都是运行在指定服务器集群中。 除了负载能力&#xff0c;单点服务器…

【Unity】从0到1的横版2d制作笔记-DAY3

确定碰撞体积 选择rigidbody2d&#xff0c;创建player重力 创建player碰撞体积 创建瓦片地图碰撞体积 使平台变成一个整体 ​​​​​ 设置Body Type为Static&#xff08;避免平台也因为重力影响下落&#xff09; 回到Player&#xff0c;在Rigidbody2D中设置为冻结旋转 Player设…

2016年认证杯SPSSPRO杯数学建模C题(第二阶段)如何有效的抑制校园霸凌事件的发生全过程文档及程序

2016年认证杯SPSSPRO杯数学建模 C题 如何有效的抑制校园霸凌事件的发生 原题再现&#xff1a; 近年来&#xff0c;我国发生的多起校园霸凌事件在媒体的报道下引发了许多国人的关注。霸凌事件对学生身体和精神上的影响是极为严重而长远的&#xff0c;因此对于这些情况我们应该…