从入门到精通:网络基础(一)

前言

计算机网络是现代信息社会的基石,几乎所有的数字通信和数据交换都依赖于网络。理解网络的基本概念和技术,对于每一个IT从业者来说都是必不可少的。在这篇文章中,我们将从网络的起源和发展开始,逐步深入探讨局域网(LAN)和广域网(WAN)的概念,理解网络协议的重要性,重点讲解TCP/IP五层模型,以及网络传输的基本流程,包括数据包的封装和分用。希望通过这篇文章,能够帮助你从入门到精通网络基础知识。


1. 计算机网络背景

网络发展

计算机网络的发展经历了多个阶段,从最初的独立模式,到现在的全球互联网,计算机网络已经成为我们生活和工作中不可或缺的一部分。

独立模式
在计算机发展的初期,每台计算机都是一个孤立的设备,无法与其他计算机进行通信。这种独立模式下,计算机的应用范围非常有限,仅能用于本地的计算和数据处理。随着计算机数量的增加和应用需求的扩大,人们逐渐意识到计算机之间相互通信和数据共享的重要性。

网络互联
为了实现计算机之间的数据共享和通信,人们开始尝试将多台计算机连接在一起,形成一个网络。通过网络,计算机可以共享资源,如文件、打印机和数据库,并且可以相互通信,实现协同工作。这种网络互联的模式极大地扩展了计算机的应用范围,提高了工作效率。

局域网(LAN)
局域网是一种在相对较小的地理范围内(如办公室、建筑物或校园)连接的计算机网络。局域网内的计算机通过交换机和路由器等网络设备连接在一起,可以实现高速的数据传输和资源共享。局域网的特点是高带宽、低延迟和可靠性高,广泛应用于企业、学校和家庭网络中。

广域网(WAN)
随着互联网的发展和全球化的进程,人们需要将地理位置相隔较远的计算机连接在一起,形成广域网。广域网覆盖的范围较大,可以跨越城市、国家甚至大洲。广域网通常通过光纤、卫星和其他高速通信线路连接,具有长距离传输的能力。互联网就是一个典型的广域网,通过它,我们可以实现全球范围内的信息交流和资源共享。

天朝特色的广域网
在某些特定的环境下,广域网也可以被看作是一个较大的局域网。例如,中国的互联网在某种程度上可以被视为一个具有中国特色的广域网。这种网络结构既能提供广域网的功能,又具有局域网的管理和控制特点。

网络的发展不仅改变了计算机的应用模式,也深刻影响了社会的各个方面。通过网络,人们可以方便快捷地获取信息、进行交流和协作,极大地提高了工作效率和生活质量。在未来,随着技术的不断进步,网络将继续发展和演变,为我们的生活带来更多的便利和可能性。


2. 认识协议

什么是协议

网络协议是指计算机之间进行通信所遵循的规则和约定。协议规定了数据传输的格式、步骤和控制信息,确保不同设备之间能够正确理解和处理彼此传输的数据。

协议的意义
计算机网络中的传输媒介是光信号和电信号,通过频率和强弱来表示0和1这样的信息。为了传递各种不同的信息,需要约定好双方的数据格式和通信规则。这就是协议的作用,它确保了不同设备、操作系统和网络硬件能够顺畅地通信。

协议的本质
协议就像是语言中的方言,虽然在一个小范围内(如一个局域网)通信双方可以约定一种特殊的通信方式,但在更大范围内(如互联网)需要遵守统一的标准。这些标准由一些国际组织和机构制定,并在全球范围内推广使用。

协议不仅仅是一个简单的约定,它包含了多个层次的定义和规范,确保数据在传输过程中能够被正确地解析和处理。协议的定义和实现需要考虑到各种可能的情况和问题,如数据丢失、网络拥塞和设备故障等。因此,协议的设计和实现是一个复杂的过程,需要综合考虑各种因素,确保数据传输的可靠性和效率。

网络协议初识

协议分层
为了简化网络通信的复杂性,协议通常被设计成多个层次,每一层实现特定的功能。分层的好处在于,每一层可以独立开发和优化,而不影响其他层。例如,OSI七层模型将网络通信分为七个层次,每一层都有明确的职责和功能。

OSI七层模型
OSI(Open System Interconnection,开放系统互连)七层网络模型是一个逻辑上的定义和规范,将网络从逻辑上分为七层。每一层都有相关、相对应的物理设备,如路由器和交换机。OSI七层模型的主要功能是帮助不同类型的主机实现数据传输,其最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论完整。但由于其复杂性和不实用性,实际应用中更多使用TCP/IP模型。


3. TCP/IP五层模型

TCP/IP模型概述

TCP/IP是一组协议的代名词,包含了许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了五层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

物理层
物理层负责光/电信号的传递方式,如以太网使用的网线(双绞线)、光纤和无线电磁波等。物理层决定了最大传输速率、传输距离和抗干扰性。集线器(Hub)工作在物理层。

数据链路层
数据链路层负责设备之间的数据帧的传送和识别,例如网卡设备的驱动、帧同步、冲突检测和数据差错校验等。交换机(Switch)工作在数据链路层。

网络层
网络层负责地址管理和路由选择,通过IP地址标识主机,并通过路由表规划数据传输的线路。路由器(Router)工作在网络层。

传输层
传输层负责两台主机之间的数据传输,如传输控制协议(TCP),能够确保数据可靠地从源主机发送到目标主机。

应用层
应用层负责应用程序间的沟通,如简单电子邮件传输协议(SMTP)、文件传输协议(FTP)和网络远程访问协议(Telnet)等。网络编程主要针对应用层。


4. 网络传输基本流程

数据包封装和分用

网络传输中,不同协议层对数据包有不同的称谓。在传输层称为段(segment),在网络层称为数据报(datagram),在链路层称为帧(frame)。当应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。封装过程确保数据在传输中能够被正确识别和处理。

数据封装成帧后,通过传输介质到达目的主机后,每层协议再剥掉相应的首部,根据首部中的上层协议字段将数据交给对应的上层协议处理,这个过程称为分用(Decapsulation)。

网络中的地址管理

认识IP地址
IP地址是在IP协议中,用来标识网络中不同主机的地址。IPv4地址是一个32位的整数,通常用点分十进制表示,如192.168.0.1。每个数字表示一个字节,范围是0到255。

认识MAC地址
MAC地址用来识别数据链路层中相连的节点,长度为48位(6个字节),一般用16进制数字加冒号表示,如08:00:27:03:fb:19。MAC地址在网卡出厂时确定,通常是唯一的。


总结

通过本文的学习,我们了解了计算机网络的基本概念和发展历程,掌握了局域网和广域网的区别,认识了网络协议的重要性和分层结构,重点学习了TCP/IP五层模型以及网络传输的基本流程,包括数据包的封装和分用。

嗯,就是这样啦,文章到这里就结束啦,真心感谢你花时间来读。

觉得有点收获的话,不妨给我点个赞吧!

如果发现文章有啥漏洞或错误的地方,欢迎私信我或者在评论里提醒一声~

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

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

相关文章

Selenium WebDriver - 浏览器交互

本文翻译整理自:https://www.selenium.dev/documentation/webdriver/interactions/ 文章目录 一、获取浏览器信息1、获取头衔2、获取当前URL 二、浏览器导航1、导航到2、后退3、往前4、刷新 三、JavaScript警报、提示和确认1、警报2、确认3、提示 四、使用cookie1、…

STM32学习 修改系统主频

前面时钟树的学习说明单片机的主频是可以修改的,那么怎么更改系统的主频,这里做一个简单的介绍。首先要明白,单片机的程序是如何运行,这里简单说明一下。 对应的代码在startup_stm32....文件里面,这里是复位程序的汇编…

多分类情绪识别模型训练及基于ChatGLM4-9B的评论机器人拓展

你的下一个微博罗伯特何必是罗伯特 这是一篇我在使用开源数据集(Twitter Emotion Dataset (kaggle.com))进行情绪识别的分类模型训练及将模型文件介入对话模型进行应用的过程记录。当通过训练得到了可以输入新样本预测的模型文件后,想到了或许可以使用模型文件对新样…

JavaScript的学习之旅之初始JS

目录 一、认识三个常见的js代码 二、js写入的第二种方式 三、js里内外部文件 一、认识三个常见的js代码 <script>//写入js位置的第一个地方// 控制浏览器弹出一个警告框alert("这是一个警告");// 在计算机页面输入一个内容&#xff08;写入body中&#xff…

【计算机网络仿真实验-实验3.1、3.2】交换路由综合实验

实验3.1 交换路由综合实验——作业1 一、实验目的 运用实验二&#xff08;可前往博主首页计算机网络专栏下查看&#xff09;中学到的知识&#xff0c;将这个图中的PC机连接起来组网并分析&#xff0c;本篇涉及代码以截图展示&#xff0c;过于简单的代码及操作不再详细介绍&…

JAVA特点

Java 的特点如下&#xff1a; 简单性&#xff1a;Java 设计时考虑到了易用性&#xff0c;它的语法相对简洁&#xff0c;并且去掉了一些容易出错的编程元素&#xff0c;比如指针。面向对象&#xff1a;Java 是一种面向对象的编程语言&#xff0c;这意味着它使用类和对象来设计程…

RPC通信原理以及项目的技术选型

目录 1.引言 2、RPC通信原理 3.图示解析 4.再举个例子 1.引言 根据上一篇博客《单机&#xff0c;集群和分布式》的举的例子。 我们最终合理地通过对大型软件的合理划分&#xff0c;划分成不同模块&#xff0c;按需求&#xff08;硬件需求&#xff0c;高并发需求&#xff09…

K8S - 理解ClusterIP - 集群内部service之间的反向代理和loadbalancer

在Micro Service的治理中。 有两个很重要的点&#xff0c; 集群外部的用户/service 如何访问集群内的 入口服务(例如UI service&#xff09;集群内的service A 如何 访问 集群内的service B 为什么有上面的问题 无非是&#xff1a; 集群内的service 都是多实例的每个servic…

【区块链】区块链架构设计:从原理到实践

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 区块链架构设计&#xff1a;从原理到实践引言一、区块链基础概念1.1 区块链定义…

[系统运维|Xshell]宿主机无法连接上NAT网络下的虚拟机进行维护?主机ping不通NAT网络下的虚拟机,虚拟机ping的通主机!解决办法

遇到的问题&#xff1a;主机ping不通NAT网络下的虚拟机&#xff0c;虚拟机ping的通主机 服务器&#xff1a;Linux&#xff08;虚拟机&#xff09; 主机PC&#xff1a;Windows 虚拟机&#xff1a;vb&#xff0c;vm测试过没问题&#xff0c;vnc没测试不清楚 虚拟机网络&#xff1…

【React】高阶组件

概述 高阶组件并非一个组件&#xff0c;而是增强组件功能的一个函数。 高阶组件的作用是对多个组件公共逻辑进行横向抽离。 高阶组件 – React (reactjs.org) 示例 ChildCom1.jsx import React from react;function ChildCom1(props) {return (<div>这是子组件1<d…

基础算法---滑动窗口

文章目录 什么是滑动窗口1.长度最小的子数组2.无重复字符的最长子串3.最大连续1的个数4.将x减到0的最小操作数5.最小覆盖子串总结 什么是滑动窗口 滑动窗口&#xff08;Sliding Window&#xff09;是一种在计算机科学中用于解决各种子数组或子字符串问题的技术。滑动窗口技术通…

JavaScripts数组里的对象排序的24个方法

1. 使用 Array.prototype.sort() 这是最基本、也是最常用的方法。sort() 方法会原地修改数组&#xff0c;并返回排序后的数组。你需要传入一个比较函数来定义排序逻辑。 const array [{ name: Alice, age: 25 },{ name: Bob, age: 22 },{ name: Charlie, age: 30 } ];// 按照…

【SQL每日一练】HackerRan-Basic Join-Challenges练习

文章目录 题目题析题解1.sqlserver 题目 编写一个查询来打印 hacker _ id、 name 和每个学生创建的挑战的总数。按照挑战的总数按降序对结果进行排序。如果不止一个学生创建了相同数量的挑战&#xff0c;那么按 hacker _ id 对结果进行排序。如果不止一个学生创建了相同数量的…

北京BJ90升级新款迈巴赫大连屏四座头等舱行政四座马鞍

北京BJ90升级奔驰迈巴赫头等舱行政四座大联屏的内饰效果会非常出色&#xff0c;将为车辆带来更豪华、高端的内饰氛围。以下是升级后可能的效果&#xff1a; • 科技感提升&#xff1a;奔驰的中控系统一直以来都以其先进的科技和用户友好的界面而闻名。升级后&#xff0c;北京B…

Windows Api如何创建一个快捷方式并且在开始菜单搜索到自己的应用

原文链接&#xff1a;http://cshelloworld.com/home/detail/1804473083243925504 当我们点击win10系统搜索框的时候&#xff0c;输入名称 &#xff0c;win10会帮助我们匹配到对应的应用。这里搜索框实际上就是windows系统的开始菜单。 接下来我们随便找一个应用&#xff0c;右…

湖北民族大学2024年成人高等继续教育招生简章

湖北民族大学&#xff0c;这所承载着深厚文化底蕴和卓越教育理念的学府&#xff0c;在崭新的2024年再次敞开怀抱&#xff0c;热烈欢迎有志于深化学习、提升自我的成人学员们。今年的成人高等继续教育招生&#xff0c;不仅是学校对于终身教育理念的具体实践&#xff0c;更是为广…

每日签到页面模板组件,简单好用,用了会上瘾的那种

uni-app 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到iOS、Android、Web&#xff08;响应式&#xff09;、以及各种小程序&#xff08;微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝&#xff09;、快应用等多个平台。 今日给…

机器学习算法(二):1 逻辑回归的从零实现(普通实现+多项式特征实现非线性分类+正则化实现三个版本)

文章目录 前言一、普通实现1 数据集准备2 逻辑回归模型3 损失函数4 计算损失函数的梯度5 梯度下降算法6 训练模型二、多项式特征实现非线性分类1 数据准备与多项式特征构造2 逻辑回归模型三、逻辑回归 --- 正则化实现1 数据准备2 逻辑回归模型3 正则化损失函数4 计算损失函数的…

前端下载文件流,axios设置responseType: arraybuffer/blob无效

项目中调用后端下载文件接口&#xff0c;设置responseType: arraybuffer,实际拿到的数据data是字符串 axios({method: post,url: /api/v1/records/recording-file/play,// 如果有需要发送的数据&#xff0c;可以放在这里data: { uuid: 06e7075d-4ce0-476f-88cb-87fb0a1b4844 }…