【个人笔记】计算机网络五层结构理解

2024-02-12 06:52

本文主要是介绍【个人笔记】计算机网络五层结构理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#纯属个人笔记 作为学习记录用途

#较多个人比较好理解的说法 可能不太准确 若发现错误 欢迎评论区指正 不希望误导小白 详细的概念请以书本的定义为准

目录

正片


传统的五层结构  如下:

  1. 物理层(Physical Layer):

    • 负责传输比特流,通过物理媒介(如电缆、光纤等)传输数据。
    • 定义了电压、电流、物理连接等细节规范,确保数据的可靠传输。
  2. 数据链路层(Data Link Layer):

    • 提供节点之间可靠的数据传输。
    • 将比特组装成帧,并在物理连接中进行错误检测和纠正。
    • 通过MAC地址标识设备,进行链路的访问控制。
  3. 网络层(Network Layer):

    • 负责数据包的路由和转发,跨越多个节点的网络进行通信。
    • 使用IP协议进行数据包寻址和路由选择。
    • 处理不同网络之间的互联,如互联网。
  4. 传输层(Transport Layer):

    • 提供端到端的可靠数据传输服务。
    • 使用TCP和UDP协议,通过端口号标识应用程序。
    • 进行数据的分段、流量控制和错误恢复。
  5. 应用层(Application Layer):

    • 提供特定网络应用的服务和协议。
    • 支持各种应用,如电子邮件、网页浏览、文件传输等。
    • 使用HTTP、FTP、SMTP等协议进行应用层通信。

但我更喜欢倒过来看:

  1. 应用层(Application Layer):

  2. 传输层(Transport Layer):

  3. 网络层(Network Layer):

  4. 数据链路层(Data Link Layer):

  5. 物理层(Physical Layer):


我们把计算机当中的行为具象为人  概念理解起来就很容易懂了  

计算机之间的行为无非就是在做一件事嘛:交流。那就举一个最简单的事情,

正片

咱们假设隔壁老王跟隔壁村那头的小美 看对眼了 希望得到深入交流 正好过几天是情人节 老王就想给人家送个礼物

“老妹 过几天 哥给你整个你稀罕滴”老王漏出他的大金牙龇牙咧嘴的在微信里说道,小美说“好”,于是这里就达成了初步的协议  在这个协议当中 请求是老王发出的,请求内容是他说要给小美送礼物 然后小美的响应是“好” 那么这个初步的交互就完成了---这里就是应用层 

但是 老王得送礼物(传输数据)啊 这事从何办起? 不能打草惊蛇啊 毕竟人小美家里还有老公,这事得办 就得办的漂亮 于是老王来到村口 专门办差事的小吴 他把礼物(数据)交给了小吴,小吴是当地快递站的头头 他专门负责送各种东西(给计算机提供通用的数据传输)  ---这里就是传输层,

至于用一对一实名签收的方式(TCP),还是随便把货往那一丢(UDP)的送货方式,则取决于委托人的想法 给多点钱就办多少事嘛,老王当然希望送到对方手里(安全可靠因为UDP会丢包),于是选择了一对一实名签收(TCP)  --这里就是数据传输服务了  也就是运输层

人家小吴是当地的快递头头 怎么说也是个经理级别 办这点事总不能自己来,他把礼物往手底下的手下来负责依据快递单地址(IP)来决定走哪一条线路(这里的线路可以理解成,途径哪几个周转站点,例如广州-深圳-北京,深圳就是中转站。映射到网络里就是路由器生成转发表,转发表会决定把数据转发到哪个路由器)  ---这里就是网络层

小吴手底下的差人决定了,骑个三轮把礼物送到对方家里去,于是就要有人把礼物从快递站搬到三轮车上 这个过程就是数据链路层

 那么 最后 快递员只需要通过各种各样的物理方式(在网络中就是 各种光纤 宽带之类的),把礼物(数据)送到指定的地点

这篇关于【个人笔记】计算机网络五层结构理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/701943

相关文章

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

深入理解go中interface机制

《深入理解go中interface机制》本文主要介绍了深入理解go中interface机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前言interface使用类型判断总结前言go的interface是一组method的集合,不

SpringBoot利用树形结构优化查询速度

《SpringBoot利用树形结构优化查询速度》这篇文章主要为大家详细介绍了SpringBoot利用树形结构优化查询速度,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一个真实的性能灾难传统方案为什么这么慢N+1查询灾难性能测试数据对比核心解决方案:一次查询 + O(n)算法解决

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语