初识网络基础

news2024/11/19 9:38:13

一、网络的发展

1.独立模式: 计算机之间相互独立;

        在早期计算机是孤立的单机系统,无法互相通信或共享资源。

由于缺乏互联性,早期的计算机系统无法实现有效的资源共享。只能依靠光驱和网盘经行将数据拷贝,线下将数据经行传输,每台计算机都需要独立处理自己的任务和数据,导致资源利用率较低。这促使了计算机网络的发展,以实现计算机之间的通信和协作。

2.网络互联,多台计算机连接在一起,实现数据共享

由于数据传输效率太低,于是当时的人们提出了将共享的数据由服务器统一管理起来,也就是说将共享的数据统一交给一个计算器管理储存,此时各个计算机就都能获取到这些共享的数据,所以各个业务在处理就能随时进行切换了。这是将计算机“用线”连接起来,这也就是网络的雏形。

3. 局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起;

后来这样的网络雏形逐渐发展,连入这个网络中的机器变得越来越多,于是就出现了局域网的概念。

在局域网中有一种设备叫做交换机,交换机主要完成局域网内数据的转发工作,也就是在局域网内将数据从一台主机转发给另一台主机。各个局域网之间通过路由器连接起来,路由器主要完成数据的路由转发工作。 

4.广域网WAN:将远隔千里的计算机都连在一起

各个局域网之间通过路由器相互连接在一起,便组成了一个更大的网络结构,我们将其称之为广域网。实际局域网和广域网是一种相对的概念,我们也可以将广域网看作一个比较大的局域网。

所谓 " 局域网 " " 广域网 " 只是一个相对的概念 . 比如 , 我们有 " 天朝特色 " 的广域网 , 也可以看做一个比较大的局域网.

二、认识协议

我们经常听说什么TCP/IP、HTTP、SMTP,其实这些都是协议。

那么为什么要有协议呢?

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

2.1什么是协议

所谓协议其实就是在通信系统中用于规定数据交换和通信的规则和约定的一种规范或标准。它定义了在不同设备之间如何进行通信、数据格式、错误处理等方面的规则,以确保信息的准确传递和互操作性。

看到这里,对于什么是协议可能还是一知半解。在计算机网络和通信领域,协议通常涵盖以下几个方面:

  1. 数据格式: 协议规定了数据在传输中的格式,包括数据的结构、编码方式、数据帧的格式等。这确保了发送方和接收方能够正确地解释和处理交换的数据。

  2. 通信流程: 协议定义了通信的流程,包括建立连接、数据传输、连接终止等步骤。通信流程的规定使得通信设备能够按照一致的方式进行通信。

  3. 错误处理: 协议通常包含对错误和异常情况的处理规则,以确保在数据传输过程中出现问题时能够及时发现和处理,提高通信的可靠性。

  4. 安全性: 一些协议还包含用于保障通信安全性的规定,例如加密算法、认证机制等,以防止未经授权的访问和数据泄露。

  5. 网络拓扑和设备角色: 在网络中,协议规定了设备的角色和网络拓扑,例如哪些设备可以充当服务器,哪些设备可以充当客户端,以及网络的结构是星型、总线型还是其他。

 从上面我们可以看出协议其实是多方面的,网络的传输其实是一个多层的结构不同的层自然有着不同的协议。

2.2协议分层

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

2.3协议由谁来定义

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

而那个站出来的人一定是该领域当中的佼佼者,协议的定制通常由相关领域的专业组织、标准化机构、行业协会或国际组织负责。这确保了协议的制定是基于广泛的共识和专业知识,以满足特定领域的需求并促进设备和系统的互操作性。可以说每一套常见的通用协议都是有大智慧的。

2.4c语言的角度去看协议

我们都知道,操作系统的底层是使用c语言经行编写的,那么我们协议说白了不就是将一些不同类型的数据合并在一起后添加报头之类的东西发送给别的主机吗,那么在C语言中不就是两台主机都一个相同的结构体?协议不就是结构体该如何定义?当然协议还涉及到序列化和反序列化,以及数据的压缩、字段对齐等

三、OSI七层模型

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

 

分层名称功能

7

应用层应用层为用户提供网络服务和应用程序接口,针对特定应用的协议
6表示层设备格式转换,网络标准数据转换。处理数据的语法语义问题。
5会话层通信管理、负责建立和断开通信连接(数据流动的逻辑通路)、管理传输层以下的分层
4传输层管理两个节点之间的数据传输、负责可靠性传输(确保数据被可靠地传送到目标地址)
3网络层地址管理与路由选择
2数据链路层互联设备之间传送和识别数据帧。处理物理层的错误。该层还负责流控制、错误检测和纠正,以确保可靠的数据传输。
1物理层以0/1代表电压的高低以及灯光的闪灭、界定连接器和网线的规格

四、TCP/IP五层(或四层)模型

虽然OSI模型作为一个理论框架有其价值, 但是, 它既复杂又不实用; 在实际应用中,TCP/IP协议家族更为普及。由于互联网的普及,TCP/IP协议已成为事实上的标准,而OSI模型并没有在实际应用中得到广泛采用。
TCP/IP 通讯协议采用了 5 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求 .
物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆 (现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决 定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测 到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太 网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规 划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标 主机.
应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问 协议(Telnet)等. 我们的网络编程主要就是针对应用层

 

而物理层我们考虑的比较少, 因此很多时候也可以称为 TCP/IP四层模型.

一般来说

对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
对于一台路由器, 它实现了从网络层到物理层;
对于一台交换机, 它实现了从数据链路层到物理层;
对于集线器, 它只实现了物理层;

 4.1集线器

集线器(Hub)是一种传输数据的网络设备,用于在局域网中连接多台计算机或网络设备。它属于物理层设备,主要起到将多个设备连接在一起的作用。虽然集线器在过去曾经常用于网络,但随着技术的进步,它的使用逐渐被交换机所取代。以下是关于集线器的一些基本信息。

同时集线器信号放大,使型号传到更远,是物理层,使相隔千里的设备有了相连的可能性。为了让正确的路径识别,让主机有识别标志。

需要注意的是,集线器属于纯硬件网络底层设备,基本上不具有类似于交换机的“智能记忆”能力和“学习”能力,也不具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送,也就是说,当集线器要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点。

五、网络传输基本流程

 

  1. 应用层:

    • 发送端:应用层负责应用程序与网络的通信。数据由应用程序生成,并在应用层封装成应用层协议的数据包。
    • 接收端:应用层接收到数据包后,将其解封装并交给相应的应用程序处理。
  2. 传输层:

    • 发送端:数据包在应用层后被传递到传输层。传输层主要使用TCP或UDP协议。TCP提供可靠的、面向连接的传输,而UDP提供不可靠的、面向无连接的传输。
    • 接收端:接收端的传输层接收数据包并将其交给上层应用层。
  3. 网络层:

    • 发送端:数据包在传输层后,被传递到网络层。网络层主要使用IP协议,负责在网络中寻址和路由数据包,将数据包传输到目标主机。
    • 接收端:接收端的网络层接收数据包,根据目标地址将其传递给数据链路层。
  4. 数据链路层:

    • 发送端:数据包在网络层后,被传递到数据链路层。数据链路层通常使用以太网协议,将数据包封装成帧,并添加源和目标MAC地址。
    • 接收端:接收端的数据链路层接收帧,进行解封装,然后将数据包传递到网络层。
  5. 物理层:

    • 发送端:数据包在数据链路层后,被传递到物理层。物理层将数字数据转换为电信号,并通过物理介质(如电缆或光纤)传输到接收端。
    • 接收端:接收端的物理层接收电信号,将其转换为数字数据,然后传递给数据链路层。

 整个过程中,数据在每个层次上都会被封装和解封装,最终在接收端被还原成原始数据,传递给接收端的应用程序。这种分层的网络模型有助于实现模块化和可扩展的网络架构。

跨网段的主机的文件传输 . 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器 .

六、数据包封装和分用

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

下图为数据封装的过程:

下图为数据分用的过程

七、网络中的地址管理

前面我们提到集线器采用用广播方式发送,那么他是如何将数据正确的发送到目标电脑上的呢。答案是他需要一个地址来进行路径规划,这个路径就是IP地址。

以太网(局域网)通信,其实就是当一个主机发出信息,然后将该信息发给局域网里面的所有的设备,然后根据MAC地址确定是发给谁的,是自己的就留下,不是自己的就废弃掉。

这个判断是在数据链接层就完成了。这个信号是用光纤传递的,他传递的是高低电频,如果短时间传大量的信息,就会让传的信息失效 ,解决可以加交换机(划分碰撞域)。

令牌环网---和以太网差不多,但是令牌网避免碰撞的原理是,只有拥有令牌数据的主机才能发消息。

7.1认识IP地址

IP 协议有两个版本 , IPv4 IPv6. 我们整个的课程 , 凡是提到 IP 协议 , 没有特殊说明的 , 默认都是指 IPv4
IP地址是在IP协议中, 用来标识网络中不同主机的地址;
对于IPv4来说, IP地址是一个4字节, 32位的整数;
我们通常也使用 "点分十进制" 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

 7.2认识MAC地址

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

 7.3Ip VS Mac

Ip协议屏蔽了底层网络的差异化靠的就是工作在ip层的路由器,所以IP实现了全球的软件虚拟层,一切皆是ip报文。

Ip地址尤其是目的ip一般是不会改变的,协助路径选择,

而mac地址出局域网后源和目的都要改变,由路由器重新分配。

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

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

相关文章

LeetCode:1696. 跳跃游戏 VI(DP, Java)

目录 1696. 跳跃游戏 VI 题目描述: 实现代码与解析: 一眼dp(超时,后面给出优化思路和代码) 原理思路: 优化后代码: 1696. 跳跃游戏 VI 题目描述: 给你一个下标从 0 开始的整数…

VPP学习-VPP初始化流程

概念 VPP作为一个开源的、高性能的用户态网络协议栈,以进程的形式运行于Linux或(类unix)系统下,即VPP实际是一个用户进程,VPP启动后可通过"ps -ef | grep vpp"命令查看。 VPP启动 用户态进程启动都有一个ma…

第7节、双电机直线运动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】,查看本系列全部文章 摘要:前面章节主要介绍单个电机控制,本节内容介绍两个电机完成Bresenham直线运动 一、Bresenham直线算法介绍 Bresenham直线算法由Jack Elton Bresenham于1962年在IBM开发,最初用于计…

Akamai 如何揪出微软 RPC 服务中的漏洞

近日,Akamai研究人员在微软Windows RPC服务中发现了两个重要漏洞:严重程度分值为4.3的CVE-2022-38034,以及分值为8.8的CVE-2022-38045。这些漏洞可以利用设计上的瑕疵,通过缓存机制绕过MS-RPC安全回调。我们已经确认,所…

Transformer实战-系列教程7:SwinTransformer 算法原理 1

🚩🚩🚩Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 1、SwinTransformer SwinTransformer 可以看作为一个backbone用来做分类、检测、分割都是非常好…

紫光展锐M6780丨一语即达,“声”临其境

在前面四期,紫光展锐针对M6780的显示技术进行了系列揭秘。虽名为“智能显示芯片”,但M6780的魅力远不止于超高清智能显示,更有智能语音交互功能,助力打造数字世界的交互新体验。 智能语音技术是一种基于人工智能和语音识别技术的创…

【CSS】margin塌陷和margin合并及其解决方案

【CSS】margin塌陷和margin合并及其解决方案 一、解决margin塌陷的问题二、避免外边距margin重叠(margin合并) 一、解决margin塌陷的问题 问题:当父元素包裹着一个子元素的时候,当给子元素设置margin-top:100px,此时不…

(已解决)vueQQ邮箱注册发送验证码前端设计,如何发送验证码设计倒计时

我们之前已经通过前端测试成功完成qq邮箱动态验证码发送&#xff08;未使用redis&#xff0c;我准备自己了解完后&#xff0c;后期有时间补上&#xff09; 衔接文章&#xff1a; 1&#xff1a; spingboot 后端发送QQ邮箱验证码 2&#xff1a; 这段代码建设图形化界面 <di…

分享springboot框架的一个开源的本地开发部署教程(若依开源项目开发部署过程分享持续更新二开宝藏项目MySQL数据库版)

1首先介绍下若依项目&#xff1a; 若依是一个基于Spring Boot和Spring Cloud技术栈开发的多租户权限管理系统。该开源项目提供了一套完整的权限管理解决方案&#xff0c;包括用户管理、角色管理、菜单管理、部门管理、岗位管理等功能。 若依项目采用前后端分离的架构&#xf…

Nacos1.X源码解读(待完善)

下载源码 1. 克隆git地址到本地 # 下载nacos源码 git clone https://github.com/alibaba/nacos.git 2. 切换分支到1.4.7, maven编译(3.5.1) 3. 找到启动类com.alibaba.nacos.Nacos 4. 启动VM参数设置单机模式, RUN 启动类 -Dnacos.standalonetrue 5. 启动本地服务注册到本…

Spark SQL调优实战

1、新添参数说明 // Driver和Executor内存和CPU资源相关配置 --是否开启executor动态分配&#xff0c;开启时spark.executor.instances不生效 spark.dynamicAllocation.enabledfalse --配置Driver内存 spark.dirver.memory5g --driver最大结果大小&#xff0c;设置为0代…

踩坑了,MySQL数据库生成大量奇怪的大文件

作者&#xff1a;田逸&#xff08;formyz&#xff09; 一大早就收到某个数据库服务器磁盘满的报警信息&#xff0c;其中数据盘使用率超过90%&#xff0c;如下图所示。 这是一台刚上线不久的MySQL从库服务器&#xff0c;数据盘的总容量是300G。先登录系统&#xff0c;查看主从同…

全链游戏的未来趋势与Bridge Champ的创新之路

为了充分探索全链游戏的特点和趋势&#xff0c;以及Bridge Champ如何作为一个创新案例融入这一发展脉络&#xff0c;我们需要深入了解这两者之间的互动和相互影响。全链游戏&#xff0c;或完全基于区块链的游戏&#xff0c;代表了游戏行业的一个重要转型&#xff0c;它们利用区…

【C++】I/O多路转接详解(二)

在上一篇文章【C】I/O多路转接详解&#xff08;一&#xff09; 在出现EPOLL之后&#xff0c;随之而来的是两种事件处理模式的应运而生&#xff1a;Reator 和 Proactor,同步IO模型常用于Reactor模式&#xff0c;异步IO常用于Proactor. 目录 1. 服务器编程框架简介2. IO处理1. R…

【爬虫作业】python爬虫作业——爬取汽车之家

爬取汽车之家期末作业&#xff1a; 代码如下所示&#xff1a; import random import timeimport requests #发送网络请求 import parsel import csv # 1.发送网络请求 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like G…

ELFK日志采 - QuickStart

文章目录 架构选型ELKEFLK ElasticsearchES集群搭建常用命令 Filebeat功能介绍安装步骤Filebeat配置详解filebeat常用命令 Logstash功能介绍安装步骤Input插件Filter插件Grok Filter 插件Mutate Filter 插件常见的插件配置选项&#xff1a;Mutate Filter配置案例&#xff1a; O…

ffmpeg命令生成器

FFmpeg 快速入门&#xff1a;命令行详解、工具、教程、电子书 – 码中人的博客FFmpeg 是一个强大的命令行工具&#xff0c;可以用来处理音频、视频、字幕等多媒体文件。本文介绍了 FFmpeg 的基本用法、一些常用的命令行参数&#xff0c;以及常用的可视化工具。https://blog.mzh…

什么是S参数

S参数是网络参数&#xff0c;定义了反射波和入射波之间的关系&#xff0c;给定频率的S参数矩阵指定端口反射波b的矢量相对于端口入射波a的矢量&#xff0c;如下所示&#xff1a; bS∙a 在此基础上&#xff0c;如下图所示&#xff0c;为一个常见的双端口网络拓扑图&#xff1a;…

GPT-1, GPT-2, GPT-3, GPT-3.5, GPT-4论文内容解读

目录 1 ChatGPT概述1.1 what is chatGPT1.2 How does ChatGPT work1.3 The applications of ChatGPT1.3 The limitations of ChatGPT 2 算法原理2.1 GPT-12.1.1 Unsupervised pre-training2.1.2 Supervised fine-tuning2.1.3 语料2.1.4 分析 2.2 GPT-22.3 GPT-32.4 InstructGPT…

【计算机网络】计算机网络复习资料(期末)

复习要点 一、填空题 1.计算机网络的两个重要基本特点 连通性、共享 2&#xff0e;计算机中的端口号类型 两类端口号 { 服务器端 { 熟知端口号&#xff08;系统端口号&#xff09;数值为0~1023 登记端口号&#xff0c;1024~49151 } 客户端使用的端口号&#xff1a;短…