我的计算机网络(总览篇)

news2025/4/18 4:43:12

总览--网络协议的角度

在一个庞大的网络中,该从哪里去了解呢?我先细细的讲一下我们访问一个网站的全部流程,当我们的电脑连上网络的时候,就会启动DHCP协议,来进行IP地址,MAC地址,DNS地址的分配,拿到我们的IP地址后,使用UDP协议进行DNS服务器的查询,DNS有什么?查询什么?可以将DNS服务器理解成一个域名和IP的映射集合,通过域名进行IP的查找,查找到我们所需要访问的网站的IP之后,再次通过UDP数据报返回给我们,然后我们就要面临选择了,如果我们需要实时性,就选择UDP协议,需要安全性就选择TCP协议,我先介绍TCP协议,因为UDP太简单了。首先我们知道了各自的IP,但是还不知道MAC地址,MAC地址在全球具有唯一标识,跟IP地址相比更类似于一个物理标识,而IP更偏向于软件。此时我们通过IP地址,在ARP协议中寻找对应的MAC地址,ARP协议包含了IP和MAC的映射集,然后我们就拥有了和我们目的服务器建立连接的基本条件--IP和MAC,然后就通过TCP三次握手建立连接,之后就可以通过HTTP协议进行数据的交换,但是为什么说TCP协议可以保证安全性呢?因为有HTTPS协议,那么HTTP和HTTPS有什么不同的呢?请记住一个等式:HTTPS=HTTP+SSL/TSL,HTTP协议中文就是超文本传输协议,而SSL/TSL协议就是一种非对称加密协议,经过加密之后别人就别想看了,然后就可以使用HTTP协议进行数据交换了,但是交换的前提就是使用IP协议,IP协议最重要的两个功能就是分组转发和路由选择,何为分组转发?我们将分组(上一层的PDU)转发到目的IP,何为路由选择?我们不能只知道IP目的地,还得知道怎么走,而路由选择就是告诉我们再去往目的IP的这个过程中怎么走,走哪些路由器。我们做完这些之后就可以进行数据交换了,但是数据交换的过程依旧提心吊胆,因为数据如果错误怎么办?数据如果丢失怎么办?数据如果超时怎么办?该怎么保证数据的可靠传输呢?别急!!!针对这三个问题,伟大的前人已经想好了各种协议去解决,我们一个一个来:

面对数据的错误-首先我们可以使用差错校验去进行数据错误的判断,具体的方法有奇偶校验和循环冗余校验,但是奇偶校验会发生漏码,就是特定情况下不能检测出误码,但是循环冗余校验则不会,如果发现误码,接收方就会丢掉。

面对数据的超时-首先进行数据交换的双方非常的有礼貌,当他们收到数据的时候都会回复一个收到,而正是因为这个收到发送方才能知晓对方收到,而这个收到在他们的语言里叫做ACK,如果在规定时间里发送方没有收到ACK,那么就会触发发送方的超时重传,所以无论是超时还是丢失,只要接收方没有发送ACK,那么发送方就会重传。

数据的可靠传输-我们之前所说的超时重传依赖的就是ACK,而这种方式又叫做停止-等待协议(SW,顾名思义如果没有接收到ACK,那就停止发送,等待至规定时间,然后触发重传,除此之外还有回退N帧协议(GBN)。

在进行完数据交换之后,就进行TCP四次挥手,至此连接断开。

总览--网络分层的角度

我们现在换一个角度去理解计算机网络,那就是分层协议,分层协议可以有两种,一种就是法律意义上的OSI协议,总共有七层,依次是物理层,数据链路层网络层传输层,会话层,表示层,应用层,另一个就是在商业被广泛使用的TCP/IP四层模型:网络接口层,网络层,传输层,应用层。一个数据会经过这些层层包装,然后转发,转发,之后又会层层卸掉包装,那为什么OSI有七层,TCPIP只有四层呢?首先要说的是OSI协议已经不被使用了,因为过于复杂,而且运行效率很低,而且成本很高,缺乏实际经验,没有商业驱动力,所以能够占领市场的就是标准--TCP/IP协议,OSI的表示层,会话层被合并到了TCPIP的应用层,数据链路层和物理层被合并到了网络接口层。那每一层都是干嘛的呢?我们先从繁琐的OSI七层开始讲起。

OSI七层模型概述

物理层:我们熟知的光纤电缆,这种通过物理介质传输的就是物理层的作用

数据链路层:将比特流封装成帧,而且进行流量控制,差错检验,MAC寻址

网络层:通过IP协议进行路由选择,分组转发,实现主机之间的连接

传输层:建立端口到端口的通信,使用TCP/UDP协议

会话层:管理应用之间的对话,支持断点续传和同步

表示层:处理数据格式之间的转换

应用层:直接面向用户,提供网络服务接口,如:HTTP,HTTPS

TCP/IP四层模型概述

网络接口层:封装成帧,将帧转化为比特流,在物流层面进行传输

网络层:通过IP协议,进行路由选择和分组转发,实现主机之间的通信

传输层:通过TCP或者UDP协议实现端口之间的通信,也就是应用之间的通信

应用层:OSI的会话层,表示层,应用层

通过以上的介绍,我们不难发现OSI有两层没有和其他层整合在一起--传输层和网络层,这两层也是所有分层中最重要的。现在我们具体介绍一下,一个数据在每一层都会发生什么,又是通过什么协议发生改变的?

数据在各个分层的状态

首先在应用层,我们的要发送的数据位于应用层,这些数据被称为应用层的PDU,然后这些数据到了传输层,传输层建立端口之间的链接,将这些数据拆分成若干个报文段,将这些报文段进行改造,改造成本层的PDU,经过哪些改造呢?对原报文段增加头部,头部包含源端口和目的端口。然后来到了网络层,还是得在强调一下网络层的作用:分组转发和路由选择,以此实现主机之间的通信,这个分组就是指数据报,这实在是太重要了,网络层拿到了传输层的PDU,然后还要改造,也是要添加头部,头部里包含源IP地址和目的IP地址,这就构成了网络层的IP数据包,然后到了数据链路层,数据链路层给IP数据报添加帧首部和帧尾部,这就是数据链路层的分装成帧,帧首部包含了帧开始符,帧的源地址和目的地址,而帧尾部包含了帧结束符,到了物理层,如何识别比特流中的帧呢?就是靠帧的开始符和结束符,也就是帧定界。

从网络分层和网络协议两个角度去理解计算机网络的全过程就结束了,接下来就是逐个介绍一些很重要的协议了!!!

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

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

相关文章

文件IO6(开机动画的显示原理/触摸屏的原理与应用)

开机动画的显示原理 ⦁ 基本原理 一般电子产品在开机之后都会加深用户印象,一般开机之后都会播放一段开机动画(视频、GIF…),不管哪种采用形式,内部原理都是相同,都是利用人类的眼睛的视觉暂留效应实现的…

低代码开发能否取代后端?深度剖析与展望-优雅草卓伊凡

低代码开发能否取代后端?深度剖析与展望-优雅草卓伊凡 在科技迅猛发展的当下,软件开发领域新思潮与新技术不断涌现,引发行业内外热烈探讨。近日,笔者收到这样一个颇具争议的问题:“低代码开发能取代后端吗&#xff1f…

反向代理断线重连优化

背景 1. 部分时候,反向代理因为路由重启,或者其他断网原因,等网络恢复后,无法对隧道重连。 2. 增加了心跳机制 在DEBUG调试过程中,发现禁用网卡后,在反向代理重连时候,服务器没有释放掉占用的…

array和list在sql中的foreach写法

在MyBatis中&#xff0c;<foreach>标签用于处理集合或数组类型的参数&#xff0c;以便在SQL语句中动态生成IN子句或其他需要遍历集合的场景。以下是array和list在SQL中的<foreach>写法总结。 <if test"taskIds ! null and taskIds.length > 0">…

SDP(一)

SDP(Session Description Protocol)会话描述协议相关参数 Session Description Protocol Version (v): 0 --说明&#xff1a;SDP当前版本号 Owner/Creator, Session Id (o): - 20045 20045 IN IP4 192.168.0.0 --说明&#xff1a;发起者/创建者 会话ID&#xff0c;那么该I…

STM32 模块化开发指南 · 第 2 篇 如何编写高复用的外设驱动模块(以 UART 为例)

本文是《STM32 模块化开发实战指南》的第 2 篇,聚焦于“串口驱动模块的设计与封装”。我们将从一个最基础的裸机 UART 初始化开始,逐步实现:中断支持、环形缓冲收发、模块接口抽象与测试策略,构建一个可移植、可扩展、可复用的 UART 驱动模块。 一、模块化 UART 的设计目标…

小推桌面tv-小推电视桌面好用吗

想知道小推电视桌面是否好用&#xff1f;来一探究竟&#xff01;小推电视桌面安全稳定&#xff0c;且支持自由定制。它有影视、壁纸、酒店等多种主题&#xff0c;适配不同场景。内置小推语音助手&#xff0c;还支持第三方语音助手&#xff0c;操作便捷。自带正版影视搜索功能&a…

深入解析嵌入式Linux系统架构:从Bootloader到用户空间 - 结合B站视频教学

B站视频链接,请多多关注本人B站&#xff1a; &#x1f4cc; Yocto项目实战教程&#xff1a;第二章 视频讲解 目录 第2章 Linux系统架构 2.1 GNU/Linux2.2 Bootloader2.3 内核空间2.4 用户空间 总结 第2章 Linux系统架构 {#linux系统架构} 嵌入式Linux系统是Linux内核的精简版…

Vue.js组件安全开发实战:从架构设计到攻防对抗

目录 开篇总述&#xff1a;安全视角下的Vue组件开发新范式 一、Vue.js组件开发现状全景扫描 二、安全驱动的Vue组件创新架构 三、工程化组件体系构建指南 四、深度攻防对抗实战解析 五、安全性能平衡策略 结语&#xff1a;安全基因注入前端开发的未来展望 下期预告&…

质因数之和-蓝桥20249

题目&#xff1a; 代码&#xff1a;无脑直接根据题目&#xff0c;一步步操作就行 #include <iostream> using namespace std;int gcd(int a,int b){if(b0) return a;return gcd(b,a%b); }bool exist_gcd(int a,int b){if(gcd(a,b)1) return false;return true; }bool is…

《栈区、堆区和静态区:内存管理的三大支柱》

&#x1f680;个人主页&#xff1a;BabyZZの秘密日记 &#x1f4d6;收入专栏&#xff1a;C语言 &#x1f30d;文章目入 一、栈区&#xff08;Stack&#xff09;&#xff08;一&#xff09;栈区的定义&#xff08;二&#xff09;栈区的特点&#xff08;三&#xff09;栈区的使用…

今日行情明日机会——20250411

今天缩量&#xff0c;上方压力依然在&#xff0c;外围还在升级&#xff0c;企稳还需要时日。 2025年4月11日A股涨停主要行业方向分析 一、核心主线方向 芯片&#xff08;半导体&#xff09; • 涨停家数&#xff1a;24家&#xff08;当日最强方向&#xff09;。 • 驱动逻辑&…

【Linux】TCP_Wrappers+iptables实现堡垒机功能

规划 显示jumpserver的简单功能&#xff0c;大致的网络拓扑图如下 功能规划 & 拓扑结构 JumpServer&#xff08;堡垒机&#xff09;主要功能&#xff1a; 对访问目标服务器进行统一入口控制&#xff08;例如 nginx、mysql、redis&#xff09;。使用 iptables 做 NAT 转…

ssh 登录报错集合(FQA)

1、使用root登录失败&#xff08;远程主机不允许root登录&#xff09; 问题&#xff1a;通过 ssh 连接远程主机&#xff08; ubuntu &#xff09;时报错&#xff0c;Permission denied 如下&#xff1a; 解决方法&#xff1a;确认root的登录密码没错&#xff0c;且可以正常与远…

使用Mybatis时在XML中SQL高亮显示的方法

如图所示&#xff0c;上方的SQL代码很像是一个字符串&#xff0c;那么如何把上方的SQL改成和下方一样的SQL,使得IDEA可以识别SQL方言呢&#xff1f; 1.选中SQL中的一部分代码&#xff0c;此时左侧会出现一个黄色的灯泡图案&#xff0c;点击2.选择这个注入语言或者引用

机场跑道异物检测数据集VOC+YOLO格式33793张31类别

数据集分辨率都是300x300,都是贴近地面拍摄&#xff0c;具体看图片 据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;33793 标注数量(xml文件…

掌握C语言文件操作:从理论到实战指南

文件操作是C语言编程中不可或缺的一部分&#xff0c;它使得程序能够持久化存储数据&#xff0c;并在需要时高效读写。本文将从基础概念到实战技巧&#xff0c;系统讲解C语言文件操作的核心知识点&#xff0c;并结合代码示例帮助读者深入理解。 一. 为什么需要文件操作&#xf…

在 Linux 上安装 MongoDB Shell

1. 下载 MongoDB Shell Download | MongoDB wget https://downloads.mongodb.com/compass/mongosh-2.5.0-linux-x64.tgz 2. tar -zxvf mongosh-2.5.0-linux-x64.tgz 3. copy 命令 sudo cp mongosh /usr/local/bin/ sudo cp mongosh_crypt_v1.so /usr/local/lib/ 4. …

数据结构-复杂度详解

前言&#xff1a;大家好&#xff01;本文带来的是数据结构-复杂度的讲解&#xff0c;一起来看看吧&#xff01; 1.算法的时间复杂度和空间复杂度 1.1算法的效率 复杂度&#xff1a;衡量一个算法的好坏&#xff08;效率&#xff09;&#xff0c;从两个维度衡量&#xff0c;时…

安宝特新闻丨Vuzix Core™波导助力AR,视角可调、高效传输,优化开发流程

Vuzix Core™ 光波导技术 近期&#xff0c;Vuzix Core™光波导技术赋能AR新视界&#xff01;该系列镜片支持定制化宽高比调节及20至40视场角范围&#xff0c;可灵活适配各类显示引擎。通过创新的衍射光波导架构&#xff0c;Vuzix Core™实现了光学传输效率与图像质量的双重突破…