【计算机网络】网络基础知识

news2024/11/15 4:40:41

一. 网络发展史

  • 独立模式(单机模式):计算机之间相互独立,各自拥有独立的数据。
    在这里插入图片描述

  • 网络互连:将多台计算机连接在一起,完成数据共享。
    在这里插入图片描述

随着时代的发展,越来越需要计算机之间进行互相通信,共享软件和数据,即让多个计算机协同工作来完成业务,因此网络互连随即诞生。

数据共享的本质就是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。

根据网络互连的规模不同,可划分为局域网广域网

局域网(LAN)又称为内网,它英文全称为Local Area Network。若干台计算机可以通过网线、集线器、路由器、交换机 + 路由器等4种方式组成一个局域网,其中同一个局域网的计算机之间可以自由进行网络通信,而不同的局域网之间若没有通过连接,则无法进行通信。通常情况下局域网的范围可覆盖一片地区。
在这里插入图片描述

广域网(WAN)的英文全称为Wide Area Network。一个广域网由若干个局域网组成,各个局域网之间通过路由器相连。通常情况下,一个广域网的范围可以覆盖一座城市,甚至一个国家。
在这里插入图片描述

局域网和广域网是一个相对的概念,在某个程度上,由我们国家形成的广域网也可以看作世界网络关系网中的一个局域网。

注意:以上图片均出自《图解TCP/IP》一书

二. 网络通信基础

网络互连的目的就是网络通信,即网络数据传输,更具体来说是两台主机上不同进程间基于网络进行的数据传输。

1. 网络通信五元组

不同主机进行数据传输主要依靠网络数据包,一个数据包包括 5 个基本属性,也称作五元组。

网络通信五元组包括:

  1. 源 IP 地址
  2. 目的 IP 地址
  3. 源端口号
  4. 目的端口号
  5. 传输协议

以上五个属性共同构成了一个数据包的唯一标识,使一个数据能够从一台主机正确传输到另一台主机。

2. IP

数据在网络传输过程中,如何判断由哪一台主机传送到另一台主机呢?答案其实就是依靠 IP地址!

IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址,它使得数据能够在网络中准确路由和传递。

IP地址就好比收/发快递时,需要为快递公司提供的商家发货地址/顾客收件地址,有了这两个地址,快递员才能正确为顾客派发快递,顾客也能在购买商品不满意时为退货提供寄件依据。

IP地址由一系列数字组成,通常以“点分十进制”表示,主要可以分为 IPv4(Internet Protocol version 4) 和 IPv6(Internet Protocol version 6) 两种类型。

其中 IPv4 是一个32位二进制数字(即4个字节),通常被分割为 4 个“8位二进制数字”,如:01100100.00000100.00000101.00000110。
由于二进制数字表示并不直观,因此通常以“点分十进制”来表示一个IP地址,即 a.b.c.d 的形式(其中a、b、c、d均表示0 ~ 255的十进制整数),如:136.25.45.1。

IPv6 则采用 128位二进制数字(即16字节)来表示一台设备的网络地址,它通常被分割为 8 个 “16位二进制数字”,每16位都使用十六进制表示,用 : 来分隔,如2000:0db8:85a3:0000:0000:8a2e:0370:7334。IPv6 的出现主要是为了解决未来 IPv4 地址空间不足的问题。

3. 端口号

在网络通信中,IP地址 主要用于标识网络设备的唯一网络地址,而端口号则用来标识主机中发送数据/接收数据的进程或网络服务,简单来说:端口号用于定位主机中的进程。

端口号的作用类似于购买快递时填写的收件人信息,某个收货地址(IP地址)可能存在大量不同顾客购买的快递,有了收件人信息(端口号),快递员才能准确将快递送达顾客手上。

端口号是一个 0~65535(2个字节)范围的数字,其中 0号端口通常不使用,1 ~ 1023号端口称为“知名端口号”,通常被系统留作特殊用途,如:HTTP协议(80端口)、HTTPS协议(443端口)、SSH协议(22端口)、FTP协议(21端口)等。在网络通信中,某个进程可以通过绑定的端口号来接收或发送网络数据。

注意:一个进行可以同时绑定多个端口号,但一个端口号号只能被一个进程绑定

4. 协议

什么是协议?

协议是网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。
协议通常由三要素组成:语法、语义、时序。

  1. 语法:即数据与控制信息的结构或格式。
  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。
  3. 时序:即事件实现顺序的详细说明。

协议最终体现为网络传输中数据包的格式。

为什么需要协议?
协议好比一个人为另一个人写一份策划文案,只要做好就能得到相应的奖励,如果文案没有完成或约定的奖励与原先不符,则这次交易就会失败,因此只有双方都遵守约定交易才能顺利达成(网络数据才能被正确传输)。

在真实的网络世界中,数据以光信号或电信号作为媒介,利用信号的“频率”和“强弱”来表示 0、1这样的二进制数字。只有约定好双方的数据格式(即协议),才能保证各式各样的数据被正确传递。

对于一台计算机,生产厂商有很多,计算机操作系统有很多,计算机网络硬件设备也很多,如何让任意两台主机都能顺利完成通信呢?
答案就是约定一个公共的数据传输标准。并且让大家都去遵守这个约定。简单来说,数据传输的约定就是网络协议!

5. 协议分层

为什么需要进行协议分层?
在网络通信中,一条简单的数据(如:“你好,世界”)的传输需要约定好各种数据格式,如果这些数据格式由一个整体的巨大的协议提供支持,协议会显得十分臃肿和复杂,不利于别人理解。因此,将功能各异的协议进行分层,就显得十分必要了。

协议分层最大的好处:简化协议的复杂性,将协议划分为多个功能不同、相对独立的层次,对于每一层的来说只需利用下层提供的服务来完成本层的通信功能,不必关心下层协议具体的实现细节。

OSI七层模型

OSI:即Open System Interconnection,开放系统互连。它将网络协议从上到下分为以下7层:
在这里插入图片描述
注意:OSI七层模型既复杂且不实用,因此最终没有落地实现。

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

TCP/IP 五层模型将OSI七层模型中的表示层、会话层、应用层的功能合并为一层,从上到下具体表现为 以下5层:

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

参考资料出自:TCP/IP四层模型和OSI七层模型的概念

如何理解TCP/IP五层模型?
还是拿网购一件商品来说,应用层表现为该商品的用途,传输层关注快递的发货地址和收货地址,网络层关注这两个地址间的路径规划(如有多少条路径,每条路径经过哪些地方等),数据链路层关注中间两个路径间该使用什么交通工具去运输更加合适,物理层则是公路、铁路等基础设施,为运输提供最基本的保障。

OSI七层模型与TCP/IP五层模型的对比如下:
在这里插入图片描述

网络设备所在分层

主机:它的操作系统内核实现了TCP/IP五层模型中的下4层,即传输层到物理层。
路由器:它实现了TCP/IP五层模型中的下3层,即网络层到物理层。
交换机:它实现了TCP/IP五层模型中的下2层,即数据链路层到物理层。
集线器:它只实现了物理层。

6. 两台主机之间的网络通信流程

在了解两台主机间通信的具体流程前,我们需要理解客户端和服务器是什么,请求和响应是什么。

客户端:客户端是指连接到服务器的计算机或设备,用于发送请求或处理服务器提供的服务或数据。客户端可以是任何设备,如个人电脑、智能手机、平板电脑等。

服务器:服务器是一种用于存储、处理和传输数据的计算机系统。它通常用于提供网络服务、存储文件和托管网站。服务器可以是物理设备,也可以是虚拟系统。

请求:请求是客户端向服务器发送的消息,用于请求特定的资源或执行特定操作。

响应:响应是服务器对客户端发送的请求的回复,其中包含请求的结果或执行的操作。

TCP/IP 通讯的流程如下图:
在这里插入图片描述

客户端发送的请求数据会从 应用层到数据链路层 会被一层层进行封装,加上数据首部,其中首部信息中包含了类似首部长度、载荷信息和长度、上层协议是什么等信息;当数据包通过传输介质到达目的主机时,数据从下到上又会被一层层解析,去除数据首部信息,并根据这些信息将数据交给不同的协议处理。

封装的过程如下:
在这里插入图片描述

分用的过程如下:

在这里插入图片描述

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

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

相关文章

人工智能_CPU安装运行ChatGLM大模型_ChatGlm-6B_启动命令行对话_安装API调用接口_005---人工智能工作笔记0100

然后我们再进入 /data/module/ChatGLM-6B-main文件夹 然后我们去启动,命令行工具 python3 cli_demo.py 可以看到也是可以用了. 正常可以用了. 然后主要来看,如何使用api来调用呢,这样才可以,做自己的界面 可以看到就非常简单了只需要: 走到 /data/module/

高盛:日本这轮通胀是否可持续,关键看房租

租金在日本CPI中的权重高达20%,高盛预计短期内租金将继续拖累通胀至1.7%或以下,长期有望温和上行,使通胀稳在2%的水平。 日本正在转向“去通缩”,房租能否支撑通胀态势? 在日股今年一路高歌、有望“收复失地”时&…

如何在OpenWRT安装内网穿透工具实现远程访问本地搭建的web网站界面

文章目录 前言1. 检查uhttpd安装2. 部署web站点3. 安装cpolar内网穿透4. 配置远程访问地址5. 配置固定远程地址 前言 uhttpd 是 OpenWrt/LuCI 开发者从零开始编写的 Web 服务器,目的是成为优秀稳定的、适合嵌入式设备的轻量级任务的 HTTP 服务器,并且和…

JAVA高并发——单例模式和不变模式

文章目录 1、探讨单例模式2、不变模式 由于并行程序设计比串行程序设计复杂得多,因此我强烈建议大家了解一些常见的设计方法。就好像练习武术,一招一式都是要经过学习的。如果自己胡乱打,效果不见得好。前人会总结一些武术套路,对…

嵌入式学习-qt-Day2

嵌入式学习-qt-Day2 一、思维导图 二、作业 1.使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 2.将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账…

关于windows上Python3.12.0安装FastAPI入坑指南

#工作笔记# 先说下起因: 年前兄弟说有个webapi的需求看怎么解决,抽空想到Python比较容易上手,而且FastAPI性能号称拥有可与NodeJS和Go并肩的极高性能。 FastAPI官网注明使用 Python 3.8+ ,而我本机又有从Py3.6到Py3.12的每个大版本,见下图 接着入坑开始了。。。 #问题描述…

webpack的使用(上)

前言:在项目中安装和配置webpack、配置打包的入口与出口、配置webpack的自动打包功能、配置 html-webpack-plugin 生成预览页面、配置自动打包相关的参数等相关内容 一、了解webpack 1、概念 webpack 是一个流行的前端项目构建工具(打包工具),可以解决…

SpringCloud(15)之SpringCloud Gateway

一、Spring Cloud Gateway介绍 Spring Cloud Gateway 是Spring Cloud团队的一个全新项目,基于Spring 5.0、SpringBoot2.0、 Project Reactor 等技术开发的网关。旨在为微服务架构提供一种简单有效统一的API路由管理方式。 Spring Cloud Gateway 作为SpringCloud生态…

运维SRE-18 自动化批量管理-ansible4

12.2handles handles触发器(条件),满足条件后再做什么事情应用场景:想表示:配置文件变化,再重启服务 配置handlers之前,每次运行剧本都会重启nfs,无论配置文件是否变化。 [rootm01 /server/ans/playbook]…

前端项目如何准确预估个人工时

补充 看来很多小伙伴对这个问题感兴趣,大家不要忽视了压工时这个事。 领导为什么会压工时? 使他的KPI更好看不清楚做这个东西实际要多长时间因为第2点的原因,他也无法去争取合理时间部分人看着下属加班,有种大权在握&#xff0…

题目 1226: 方砖问题

题目描述: 用边长小于N的正方形方砖(注意,不要求所有的方砖大小相同,请看样例说明)不重叠地铺满N*N的正方形房间,最少要几块方砖。 解题思路: 1.n是偶数时,都可以用4块边长为n/2的方砖填满;例…

2024/2/22

P8680 [蓝桥杯 2019 省 B] 特别数的和 题目描述 小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 00),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共28 个,他们的和是574。 请问,在…

SCI一区 | Matlab实现GAF-PCNN-MSA格拉姆角场和双通道PCNN融合注意力机制的多特征分类预测

SCI一区 | Matlab实现GAF-PCNN-MSA格拉姆角场和双通道PCNN融合注意力机制的多特征分类预测 目录 SCI一区 | Matlab实现GAF-PCNN-MSA格拉姆角场和双通道PCNN融合注意力机制的多特征分类预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 1.【SCI一区级】Matlab实…

以 All-in-One 模式安装 KubeSphere时避坑

环境 ubuntu 18.04 准备 安装服务插件 socat 必须 可选但建议 conntrack 必须 可选但建议 ebtables 可选但建议 可选但建议 ipset 可选但建议 可选但建议 命令 sudo apt-get install socat安装docker 建议自行安装,不用KubeSphere 自带的 处理服务器配置 1…

RISC-V架构——CLINT中断控制器初始化(直接模式、向量模式)

1、前言 CLINT(Core-Local Interruptor)翻译过来是核本地中断控制器,是比较简单的中断控制器,通常和PLIC(Platform-Level Interrupt COntroller)搭配使用使用CLINT涉及的MTVEC、MCAUSE寄存器,CLIC控制器也同样会使用&…

python(23)——while循环

前言 在Python中,while 循环用于重复执行一段代码块,只要指定的条件保持为真(True)。一旦条件变为假(False),循环就会终止。while 循环通常用于在不知道循环将执行多少次的情况下进行迭代。 w…

【快速搞定Webpack5】修改输出文件目录及自动清理上次打包文件(五)

介绍 默认情况下webpack打包后,我们的图片和js等文件都会被打包到dist目录下,文件多了混淆在一起一方面不利于文件的查找和管理,另外一方面看上去也不美观。 所以今天我们学习的内容就是控制输出后的文件进入不同的目录。 一、配置 新增4…

对象池模式-Object Pool Pattern

原文地址:https://jaune162.blog/design-pattern/object-pool-pattern/ 原文中可下载高清SVG矢量类图 引言 对象池模式(Object Pool Pattern)是一种创建一组可重用对象的设计模式。它通过维护一个预分配的对象集合,避免了频繁地创建和销毁对象所带来的性能开销。在需要使用…

力扣145 二叉树的后序遍历 Java版本

文章目录 题目描述递归解法代码 非递归解法思路代码 题目描述 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[3,2,1] 示例 2: 输入:root [] 输出…

指针笔试题(C语言进阶)

目录 前言 1、案例一 1.1 答案 1.2 解析 2、案例二 2.1 答案 2.2 解析 3、案例三 3.1 答案 3.2 解析 4、案例四 4.1 答案 4.2 解析 5、案例五 5.1 答案 5.2 解析 总结 前言 “纸上得来终觉浅,绝知此事要躬行”。本篇通过对指针实际案例的分析&…