【网络基础知识铺垫】

文章目录

  • 1 :peach:计算机网络背景:peach:
    • 1.1 :apple:网络发展:apple:
  • 2 :peach:协议:peach:
    • 2.1 :apple:协议分层:apple:
    • 2.2 :apple:OSI七层模型:apple:
    • 2.3 :apple:TCP/IP模型:apple:
    • 2.4 :apple:TCP/IP模型与操作系统的关系:apple:
  • 3 :peach:网络传输基本流程:peach:
  • 4 :peach:网络中的地址管理:peach:
    • 4.1 :apple:MAC地址:apple:
    • 4.2 :apple:IP地址:apple:
    • 4.3 :apple:端口号:apple:


1 🍑计算机网络背景🍑

1.1 🍎网络发展🍎

独立模式: 计算机之间相互独立。
在这里插入图片描述
网络互联: 多台计算机连接在一起, 完成数据共享。
在这里插入图片描述局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起。
在这里插入图片描述
广域网WAN: 将远隔千里的计算机都连在一起。
在这里插入图片描述所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域网。


2 🍑协议🍑

我们知道计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式。

计算机生产厂商有很多;,计算机操作系统, 也有很多;,计算机网络硬件设备, 还是有很多, 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来, 约定一个共同的标准, 大家都来遵守, 这就是网络协议

2.1 🍎协议分层🍎

首先来举一个通俗易懂的栗子:比如我们打电话。
在这里插入图片描述
两个人互相拿着电话通信,在他们的视角上其实认为他们是直接在通信,但实际上并不是这样的,而是他们电话机之间的通信,也就是说此时电话机为用户提供了通信服务,并且用户不关心服务的具体实现,只关心如何使用服务,这样就把用户与电话机分在了不同层次,当哪一部分出现问题时就只处理那一部分就行了。

在这个例子中, 我们的协议只有两层; 但是实际的网络通信会更加复杂, 需要分更多的层次.分层最大的好处在于 “封装”。

2.2 🍎OSI七层模型🍎

  • OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
  • 把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输; 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
  • 但是, 它既复杂又不实用; 所以我们按照TCP/IP四层模型来讲解。

在这里插入图片描述

2.3 🍎TCP/IP模型🍎

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.。
TCP/IP通讯协议采用了5层的层级结构 (本来TCP/IP通讯协议采用的是4层协议,但是为了教学完整便把物理层也加在了里面,所以为5层,但是我们讲解的重点并不在物理层,所以这里会讲的很简略) ,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 1️⃣物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
  • 2️⃣数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
  • 3️⃣网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
  • 4️⃣传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
  • 5️⃣应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层。

在这里插入图片描述
一般而言对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;对于一台路由器, 它实现了从网络层到物理层;对于一台交换机, 它实现了从数据链路层到物理层;对于集线器, 它只实现了物理层;
但是并不绝对. 很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发)。

2.4 🍎TCP/IP模型与操作系统的关系🍎

我们可以用下图来表示CP/IP模型与操作系统的关系:
在这里插入图片描述我们知道操作系统的管理包含一下四个模块:进程管理,文件管理,内存管理,驱动管理。那么网络这部分是属于哪一个呢?其实在Linux中,对于网络这部分的管理是属于文件管理。为什么呢?因为在Linux下一切皆文件,那么也就说明我们未来学到的很多网络接口都跟文件是相关的。我们要学习的网络在本质上就是操作系统的一部分,我们在上图的右侧里面的系统调用(socket编程)就是操作系统为网络通信所创建的接口。


3 🍑网络传输基本流程🍑

同一个网段内的两台主机进行文件传输:
在这里插入图片描述两台计算机通过TCP/IP协议通讯的过程如下:
在这里插入图片描述跨网段的主机的文件传输.。数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器:
在这里插入图片描述
通过前面我们讲解打电话的栗子中我们不难知道在物理上"数据"的传输是从上到下,在从下到上的;但在逻辑上"数据"的传输可以认为是同层间直接进行交互

在这里我们简单讲解下以太网和令牌环的通信原理:

  • 以太网的通信原理:在发送数据的时候,站点将自己要发送的数据帧在这个信道上进行广播,以太网上的所有其他站点都能够接收到这个帧,他们通过比较自己的MAC地址和数据帧中包含的目的地MAC地址来判断该帧是否是发往自己的,一旦确认是发给自己的,则复制该帧做进一步处理。
  • 令牌环的通信原理:所有设备被连接成一个环状结构;一开始,一个固定数量的令牌在环上被初始化;这些令牌以一定的速率在网络上轮流传递,直到被使用完毕;设备只有在它拥有令牌时才能发送数据包;设备在发送数据包后将令牌返回到环上,以便其它设备可以使用它们。

数据包封装和分用
但是数据在传输过程中为了每一层能够正确接受的转发数据,我们还得进行数据包的封装和分用。
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation).。
首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息。
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理。

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


4 🍑网络中的地址管理🍑

4.1 🍎MAC地址🍎

MAC地址用来识别数据链路层中相连的节点;

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

4.2 🍎IP地址🍎

IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4.

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

那么IP地址跟MAC地址有啥区别呢?
我们可以举一个简单的栗子来理解理解:
比如西天取经的栗子,唐僧在取经的路上盖通关文牒的时候,总是会被询问:你是从哪儿来的,要去往哪里?你的上一站是在哪里,下一站又要往哪里去?在这些问题中,MAC地址就是上一站地址和下一站地址,而源IP地址就是唐僧的出发点,目的IP地址就是唐僧的最终目的地。

4.3 🍎端口号🍎

端口号(port)是传输层协议的内容:

  • 端口号是一个2字节16位的整数;
  • 端口号用来标识一个进程, 告诉操作系统, 当前的这个数据要交给哪一个进程来处理;
  • IP地址 + 端口号能够标识网络上的某一台主机的某一个进程;
  • 一个端口号只能被一个进程占用,一个进程可以可以绑定多个端口号

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

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

相关文章

Apache2.4源码安装与配置

环境准备 openssl-devel pcre-devel expat-devel libtool gcc libxml2-devel 这些包要提前安装,否则httpd编译安装时候会报错 下载源码、解压缩、软连接 1、wget下载[rootnode01 ~]# wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.gz --2023-07-20 …

CVE漏洞复现-CVE-2021-3493 Linux 提权内核漏洞

CVE-2021-3493 Linux 提权内核漏洞 漏洞描述 CVE-2021-3493 用户漏洞是 Linux 内核中没有文件系统中的 layfs 中的 Ubuntu over 特定问题,在 Ubuntu 中正确验证有关名称空间文件系统的应用程序。buntu 内核代码允许低权限用户在使用 unshare() 函数创建的用户命名…

面试热题(最长上升子序列)

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 输入&#xff1…

智慧影院--java开源电影票优惠券制作系统快速开发

搭建一个智慧影院可以通过使用Java开源电影票优惠券制作系统来快速开发。这个系统可以帮助影院管理电影票的销售和优惠活动,提供便捷的购票方式和优惠券的生成与使用功能。 首先,我们需要建立一个数据库来存储电影、影厅、放映计划、订单等信息。在数据…

Spring Security6入门及自定义登录

一、前言 Spring Security已经更新到了6.x,通过本专栏记录以下Spring Security6学习过程,当然大家可参考Spring Security5专栏对比学习 Spring Security5专栏地址:security5 Spring Security是spring家族产品中的一个安全框架,核心功能包括…

Oracle 开发篇+Java通过HiKariCP访问Oracle数据库

标签:HikariCP、数据库连接池、JDBC连接池、释义:HikariCP 是一个高性能的 JDBC 连接池组件,号称性能最好的后起之秀,是一个基于BoneCP做了不少的改进和优化的高性能JDBC连接池。 ★ Java代码 import java.sql.Connection; impor…

大数据传输的定义与大数据传输解决方案的选择

当我们需要处理大量的数据时,我们就要把数据从一个地方移动到另一个地方。这个过程就叫做大数据传输。它通常需要用到高速的网络连接、分散的存储系统和数据传输协议,以保证数据的快速、可靠和安全的移动。常用的大数据传输技术有Hadoop分布式文件系统&a…

整理mongodb文档:改

个人博客 整理mongodb文档:改 求关注,求批评,求进步 文章概叙 本文主要讲的是mongodb的updateOne以及updateMany,主要还是在shell下进行操作,也讲解下主要的参数upsert以及更新的参数。 数据准备 本次需要准备的数据不是很多…

【Spring】使用注解的方式获取Bean对象(对象装配)

目录 一、了解对象装配 1、属性注入 1.1、属性注入的优缺点分析 2、setter注入 2.1、setter注入的优缺点分析 3、构造方法注入 3.1、构造方法注入的优缺点 二、Resource注解 三、综合练习 上一个博客中,我们了解了使用注解快速的将对象存储到Spring中&#x…

《大型网站技术架构设计》第二篇 架构-性能

不同视角下的网站性能 1、用户 从用户角度,网站性能就是用户在浏览器上直观感受到的网站响应速度快还是慢。用户感受到的时间。 2、开发人员 开发人员关注的主要是应用程序本身及其相关子系统的性能,包括响应延迟、系统吞吐量、并发处理能力、系统稳定…

nsqd的架构及源码分析

文章目录 一 nsq的整体代码结构 二 回顾nsq的整体架构图 三 nsqd进程的作用 四 nsqd启动流程的源码分析 五 本篇博客总结 在博客 nsq整体架构及各个部件作用详解_YZF_Kevin的博客-CSDN博客 中我们讲了nsq的整体框架,各个部件的大致作用。如果没看过的&…

【100天精通python】Day30:使用python操作数据库_数据库基础入门

专栏导读 专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html 1 数据库基础知识介绍 1.1 什么是数据库? 数据库是一个结构化存储和组织数据的集合,它可以被有效地访问、管理和更新。数据库的目的是为了提供一种可靠的…

paddleseg数据集自定义比例划分为测试集test.txt,训练集train.txt,验证集val.txt

将语义分割的数据集标注好后如下所示: 整理好图片和标签文后需要按照比例划分为训练集,验证集,测试集。 具体划分代码见下: import glob import os.path import argparse import warnings import numpy as npdef parse_args():p…

“清凉计划”KCOFFEE来了,华为天气和肯德基携手提升你的冰凉咖位

八月的热浪席卷着城市,开启了高温酷暑的“闷烤”模式,此时“怕热星人”急需一杯冰爽的冷饮,为了拯救热热热亻七的你们,华为天气联手肯德基带着超强冷势力,发起“清凉计划”,送上一杯KCOFFEE现磨冰咖啡&…

Debian10:安装PHPVirtualBox

PHPVirtualBox 是一个用 PHP 编写,用于管理 VirtualBox 的 Web 前端(由AJAX实现)。 参考文章:VirtualBoxPHPVirtualBox部署_骡子先生的博客-CSDN博客php virualbox,浏览器远程控制VBox 虚拟机phpVirtualBox_weixin_39815879的博客…

编写一个指令(v-focus2end)使输入框文本在聚焦时焦点在文本最后一个位置

项目反馈输入框内容比较多时候,让鼠标光标在最后一个位置,心想什么奇葩需求,后面试了一下,是有点影响体验,于是就有了下面的效果,我目前的项目都是若依的架子,用的是vue2版本。vue3的朋友想要使…

JVM—编译器、类加载的过程、双亲委派机制这些你还记得吗?

背景介绍 这两天在对JVM的知识进行回顾,顺便来分享分享,接下来也会有系列文章,欢迎大家一起讨论。 过程 为什么叫JVM? Java Virtual Machine,java虚拟机。可以理解成一个以字节码为机器指令的CPU 有哪些特点呢&#…

【Flutter】【packages】simple_animations 简单的实现动画

package:simple_animations 导入包到项目中去 可以实现简单的动画, 快速实现,不需要自己过多的设置 有多种样式可以实现[ ] 功能: 简单的用例:具体需要详细可以去 pub 链接地址 1. PlayAnimationBuilder PlayAnima…

递归神经网络简介

一、说明 说起递归神经网络,递归神经网络(RNN)主要包括以下几种类型: 简单的RNN(Simple RNN):最基本的RNN类型,每个时刻的输出都与前面时刻的状态有关。 循环神经网络(R…

Blazor前后端框架Known-V1.2.10

V1.2.10 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。 Gitee: https://gitee.com/known/KnownGithub:https://github.com/known/Known 概述 基于C#和Blazo…