当前位置: 首页 > news >正文

Linux笔记---计算机网络概述

1. 什么是计算机网络

计算机网络是指:将地理位置不同、具备独立数据处理能力的多台计算机(或终端设备,如手机、打印机),通过 "通信线路"(如网线、光纤、无线信号)和 "网络协议"(如 TCP/IP)连接起来,再配合网络操作系统、管理软件的协调,最终实现 "数据传输、资源共享、信息交互" 的系统。

计算机网络不是单一设备,而是 "设备 + 连接 + 规则 + 软件" 的组合,核心目标是 "打破物理距离,让设备之间能 '沟通' "。

简单来说,计算机网络就是以终端设备通信设备为节点,传输介质为线织成的一张大网。各个节点之间通过统一的,预定的规则在网上传递数据,进行通信。

计算机网络的 4 大核心要素

组成部分具体例子核心作用
终端设备个人电脑(PC)、手机、平板、服务器、智能电视、打印机、物联网设备(如智能门锁)网络的 “数据产生 / 接收端”(如手机发消息、打印机接收文件)
通信设备路由器(家用 WiFi 盒)、交换机(公司内网分线器)、调制解调器(光猫)、基站网络的 “数据中转站”(如路由器转发手机到电脑的消息)
传输介质有线:网线(双绞线)、光纤;无线:WiFi 信号(2.4G/5G)、蓝牙、5G/4G 蜂窝信号网络的 “数据传输通道”(如光纤传递高速宽带信号)
网络软件网络协议(TCP/IP、HTTP)、网络操作系统(Windows Server、Linux)、应用程序(浏览器、微信)网络的 “通信规则 + 管理工具”(如 TCP/IP 规定数据怎么传不丢包)

其中,网络软件部分的本质,就是对网络协议的实现,确保数据被正确地发送接收解析

显然,协议是我们学习计算机网络的核心,因为其余的部分都是硬件,我们只需要关注其功能以及其如何服务于协议即可。

2. 协议

在计算机网络领域,协议(Protocol) 是指「不同设备(或设备内部组件)之间进行数据通信时,共同遵守的一套预先约定好的规则、标准或规范集合」。它本质是设备间的 “沟通语言”—— 基于统一的协议,来自不同厂商、不同类型的设备(如手机、路由器、服务器)就能理解彼此发送的数据流代表什么含义,进而完成数据交互。

国际标准化组织(ISO)联合国际电信联盟(ITU-T)制定了 OSI/RM(开放系统互连参考模型,Open Systems Interconnection Reference Model)—— 这是计算机网络发展史上最重要的 “理论框架” 之一。

在这个模型当中,对整个网络数据的传输过程进行了分层,每层根据自己所需的功能,各自定义自己的协议,再由不同厂商生产网络设备网络软件来进行实现。

每一层可以调用下一层提供的服务,最终将数据从一个终端,送到另一个终端。

虽然这个模型在理论研究方面非常完美,但是在时机运用时就显得过于繁琐了,我们正真常用的模型是TCP/IP模型,这也是因特网使用的模型。

层次名称核心功能典型协议 / 技术解释
应用层直接为用户应用提供服务,定义数据格式交互逻辑HTTP、FTP、SMTP、DNS、QQ / 微信协议该层规定了应用程序发送/接收某种特定数据的方式。例如HTTP协议就规定了网页数据的发送/接收方式,遵守该协议的应用就可以正确且高效地相互发送/接收网页对象。
传输层负责两台设备的 “端到端” 数据传输,保障可靠性或实时性TCP、UDP该层规定了在两台终端设备的应用程序之间进行数据传输的方式。发送方在应用层数据传递过来的数据开头添加上具体协议规定的控制信息,封装为数据段,传递给下层;接收方从下层获取数据段,根据头部控制信息判断数据应当被传递给哪个应用程序,以及数据是否正确。
网络层为数据选择跨网络的传输路径(路由),实现不同网络间的通信IP、ICMP(ping)、路由协议(OSPF)该层规定了两台终端设备之间进行数据传输的方式。同样地,发送方会将数据段封装为数据报,接收方去掉头部获取数据段。该层主要由路由器实现,主要功能有两个:路由(规划数据报经过哪些节点到目的端)、转发(决定从哪个端口将数据发到下一节点)。
数据链路层处理同一局域网内的数据帧传输,通过 MAC 地址识别设备,检测传输错误以太网(Ethernet)、WiFi(802.11)、PPP路由器的一端连接的就是一个局域网,网络层负责路由器之间的路由转发,链路层则负责局域网内的转发。链路层封装之后的数据叫做数据帧
物理层定义物理设备的电气 / 机械特性,将数据转换为物理信号(电 / 光 / 无线)传输网线标准(CAT5e)、光纤、无线信号调制实现相邻两个节点之间的数据传输,即如何把发送方的数据推送到物理介质上传输,接收方如何从物理介质上获取数据。

3. TCP/IP模型的工作过程

各层在封装上一层数据时添加的控制信息被称为 "报头""首部" ,这部分信息主要包括首部的长度,报文类型,校验信息,发送端与接收端之间的地址信息等……

每一层都将除开自己报头的部分看作是一个整体的数据段,不关心上层的具体细节。

每一层都认为自己在调用下一层的服务,与接收端的对应层次交流。例如,接收端传输层收到的数据就是发送端传递给下一层的数据。

当你用浏览器访问www.baidu.com时,数据在五层模型中按 “封装→传输→解封装” 流程传递:

发送端(你的电脑):层层封装

  • 应用层:浏览器生成 HTTP 请求数据(如 “获取百度首页”),传给传输层。
  • 传输层:添加 TCP 头部(源端口、目标端口 80、序号等),封装成 TCP 段,传给网络层。
  • 网络层:添加 IP 头部(源 IP、目标 IP,即百度服务器 IP),封装成 IP 数据包,传给数据链路层。
  • 数据链路层:添加 MAC 头部(源 MAC、目标 MAC,即路由器 MAC)和帧尾(校验码),封装成数据帧,传给物理层。
  • 物理层:将数据帧转换为电信号(如网线)或无线信号(如 WiFi),通过传输介质发送。

传输过程:数据通过路由器、交换机等设备转发,每经过一个设备,都会解析对应层的头部信息(如路由器只关心 IP 头部,确定下一跳路径)。


接收端(百度服务器):层层解封装

  • 物理层:将物理信号还原为数据帧,传给数据链路层。
  • 数据链路层:校验帧尾,去除 MAC 头部,将 IP 数据包传给网络层。
  • 网络层:解析 IP 头部,确认目标 IP 匹配,去除 IP 头部,将 TCP 段传给传输层。
  • 传输层:通过 TCP 头部校验数据完整性,按序号重组,去除 TCP 头部,将 HTTP 请求传给应用层。
  • 应用层:服务器解析 HTTP 请求,生成网页数据,再按上述流程反向传回你的浏览器。

4. IP地址

IP 地址(Internet Protocol Address)是互联网中用于唯一标识网络设备(如计算机、路由器、服务器等) 的数字标签,相当于设备在网络中的 “身份证”。

它的核心作用是实现不同设备之间的精准通信 —— 通过 IP 地址,数据才能在复杂的互联网中找到正确的发送目标和返回源头,是 TCP/IP 协议族中实现 “网际互联” 的基础。

IP地址主要在网络层发挥作用,通过报头当中封装的源地址/目的地址标识源端/目的端,以便进行路由转发。

IP地址特性

  • 唯一性:在全球公共互联网中,每台直接接入的设备(或设备的网络接口)都必须拥有唯一的 IP 地址(通过 ISP 分配),避免通信时出现 “地址冲突” 导致数据发送错误。
    注意,IP地址并不和设备绑定,它可以是人为设置的(在可用集合当中选择),也可以是在接入网络时由DHCP服务器自动分配的。
  • 层次性:IP 地址的结构包含 “网络部分”(前缀)“主机部分”(后缀),这种分层设计能高效划分网络、简化路由选择(路由器只需根据 “网络部分” 确定数据转发方向,无需关注具体主机。即路由到网络,剩下的交给链路层)。某一种前缀,就代表一个子网。路由器的一端,就连接着一个子网,下图中就存在2个子网(192.168.2.0和172.168.2.0)。

IP 地址的两大版本

对比维度IPv4(互联网协议第 4 版)IPv6(互联网协议第 6 版)
地址长度32 位(二进制),通常用 “点分十进制” 表示128 位(二进制),通常用 “冒分十六进制” 表示
地址格式例:192.168.1.1(4 个 0-255 的十进制数,用.分隔)例:2001:0db8:85a3:0000:0000:8a2e:0370:7334(8 组 4 位十六进制数,用:分隔,可简化连续 0)
地址数量约 43 亿个(理论值,实际因预留 / 划分更少)约 3.4×10³⁸个(几乎满足未来全球设备接入需求)
主流应用目前仍广泛用于家庭、企业局域网和互联网正逐步普及(如 5G 网络、数据中心、物联网设备)

5. MAC地址

MAC 地址(Media Access Control Address,媒体访问控制地址)是网络设备(如网卡、路由器端口、交换机端口等)出厂时由硬件厂商烧录在设备网卡芯片中的唯一标识符,相当于设备在 “链路层” 的 “物理身份证”,用于在局域网内实现设备间的直接通信。

网卡是终端设备接入网络的物理接口,所以相比于IP地址,MAC地址是与设备绑定的。

MAC地址用于链路层的局域网寻址,寻址的方式我们暂且不讨论。

其中,所有终端设备都在路由器同一端或者没有路由器参与其中的一个局部网络系统,就叫做局域网

http://www.dtcms.com/a/362017.html

相关文章:

  • 视频动作识别模型-C3D
  • 线程池项目代码细节5(解决linux死锁问题)
  • 关系型数据库——GaussDB的简单学习
  • 《投资-43》- 自然=》生物=》人类社会=》商业=》金融=》股市=》投资的共同逻辑:生存竞争与进化论
  • 前端实现查询数据【导出】功能
  • 自制扫地机器人(二) Arduino 机器人避障设计——东方仙盟
  • A股大盘数据-20250901 分析
  • 设计模式:代理模式(Proxy Pattern)
  • HOW - 前端团队组长提升(沟通篇)
  • kubectl-etcd
  • RSA的CTF题目环境和做题复现第1集
  • nacos微服务介绍及环境搭建
  • linux 函数 kthread_should_stop
  • 「Unity3D」RectTransform的AnchorMin与Max直接定位到Rect四角,使得Left-Top-Right-Bottom都为0
  • 【Spark Core】(三)RDD的持久化
  • MT-Workflow: Odoo 可视化工作流引擎
  • 程序员与杀毒软件:一场不必要的“战争”?程序员用什么杀毒软件?-优雅草卓伊凡
  • 人工智能语音交互开发(五)麦克风频率响应范围
  • PostgreSQL 索引大全
  • 奇偶破题:当反函数撞上奇函数
  • Nano Banana一战封神,我总结了10种官方不会告诉你的神级技巧。
  • 太浅显数学常识暴露太重大数学真相:同样是有首项的无穷数列,此列的项可多于彼列的项
  • 使用修改过的arj源码编译和测试
  • java中常见的几种排序算法
  • 算法练习——189.轮转数组
  • 二、SVN基础命令速查表
  • Python OpenCV图像处理与深度学习:Python OpenCV对象检测入门-Haar级联分类器与人脸检测
  • LeetCode刷题-top100( 除自身以外数组的乘积)
  • MATLAB 实现同步压缩小波变换
  • C++ 虚继承:破解菱形继承的“双亲困境”