网络基础:TCP/IP五层模型、数据在局域网传输和跨网络传输的基本流程、IP地址与MAC地址的简单解析

news2024/11/28 2:30:26

目录

背景介绍

网络协议

OSI七层模型

TCP/IP五层模型

TCP/IP协议与OS的关系

网络协议的本质

数据在局域网传输的基本流程 

MAC地址

报文的封装和解包

补充内容

数据的跨网络传输基本流程

IP地址

IP地址和MAC地址的区别
​​​


背景介绍

网络的发展经理了四个阶段:独立模式、网络互联、局域网、广域网

注意事项:一台电脑主机内的CPU、显卡等设备都是由一条总线连接起来的,所以可以将一台计算机的内部也看作是一个小型网络结构

网络协议

基本概念:网络协议是指用于在计算机网络中传输数据的规则和标准,它规定了设备如何相互通信、数据格式、传输过程中的错误处理等

产生原因:

  • 互操作性确保不同设备和系统能够相互通信
  • 可靠传输保证数据完整性和正确性,处理传输错误
  • 安全性保护数据在传输中的隐私和安全
  • 管理网络流量优化资源,避免拥堵

OSI七层模型

基本概念:也叫做开放式系统互联参考模型,是一个用于定义网络通信的分层框架,它将网络通信过程分为七个不同的层次,每一层都有特定的功能和作用以及相对应的物理设备(路由器、交换机等)

模型的提出和实现者是不同的,理想很丰满现实很骨感

优点:​​​​​​​

  • 标准化通信:OSI模型为网络通信提供了一个通用的参考框架,标准化了设备之间的通信过程,确保不同厂商的产品能够互操作。

  • 分层设计:通过将通信过程分为七个层次,每一层专注于特定的任务,简化了网络设计、开发和故障排查。每一层可以独立修改,而不影响其他层。

  • 模块化和灵活性:每一层的功能相对独立,可以根据需要进行更新或替换,增强了网络架构的灵活性。

  • 促进互操作性和兼容性:由于模型为每一层定义了明确的接口和标准,它能够确保不同协议和设备之间的互操作性。

  • 故障诊断方便:通过分层模型,网络管理员能够更容易地定位和诊断问题所在的层次,简化了故障排除过程。

  • 支持新技术:模型的分层设计使得新技术能够无缝集成到现有网络中,只需修改对应层次而不需要对整个系统进行改动。​​​​​​​

缺点:

  • 理论性强,实践应用少:虽然OSI模型为理解网络通信提供了很好的参考,但在实际应用中,TCP/IP模型更为流行,OSI模型更多是用于教学和理论参考。

  • 层次划分复杂:某些功能划分到多个层次中,增加了复杂性。例如,数据加密既可以在表示层实现,也可以在应用层或传输层实现,这使得模型在某些情况下不够清晰。

  • 实现效率较低:在实际应用中,完全按照OSI模型的七层来处理通信会增加额外的开销,影响通信效率。许多网络协议简化了这个过程,例如TCP/IP模型只用了四层。

  • 过于理想化:OSI模型虽然提供了一个完整的理论框架,但很多现代网络技术和协议并没有完全遵循它的设计,导致它在实际使用中显得过于理想化。

  • 在实际操作中,会话层和表示层是没有实现的,实际中只有五层:物理层、数据链路层、网络层、传输层、应用层(应用、表示、会话层被归为了一层),这五层模型也叫做TCP/IP五层模型

TCP/IP五层模型

产生原因:通信主机间的距离变远,不同类型的网络和系统之间存在互通问题(因为不同的网络通常使用各自的协议和技术,这些系统通常不能直接进行数据交换)

特点:包含5层,每层都有许多不同的网络协议​​​​​​​​​​​​​​

模型具体内容不再展示,随便一搜都可以搜到

为什么要分层:两个相隔很远的主机进行通信时需要经历重重问题的阻碍,解决完一个新的问题就会有下一个问题出现,因此对于不同类型的问题,要进行分别对待,即分层

  1. 主机A要与主机B进行通信,首先要把自己想发给主机B的数据发给跟自己连接的路由器,该怎么发送?
  2. 网络中有很多的主机如何定位到主机B?
  3. 如果主机A发送给主机B的数据在传输过程中丢失了怎么办?
  4. 主机B接收到主机A的数据后,如何知道该数据如何处理?

​​​​​​​结论:TCP/IP协议的本质就是一种解决方案,需要分层就是因为上述的这些问题可以分层

TCP/IP协议与OS的关系

基本概念:在网络通信中,尽管各主机上安装的OS可以不同(实际上,操作系统在不同设备间通常是不同的,因为没有统一的操作系统标准),但所有主机上的网络协议栈必须按照相同的标准进行实现。这确保了不同操作系统之间的主机能够相互通信。
网络协议栈:是一组网络协议的集合,这些协议按照层次排列,并协同工作来完成从发送端到接收端的通信任务。每一层都有明确的功能,并依赖于上一层和下一层来完成其任务(传输层依赖于网络层将数据包路由到目标主机,而应用层则依赖传输层来确保数据的可靠性和完整性)

为什么叫做TCP/IP网络协议栈:是因为其中传输层的核心协议是TCP(Transmission Control Protocol,传输控制协议),它负责确保数据的可靠传输;而网络层的核心协议是IP(Internet Protocol,互联网协议),它负责为数据包的路由选择和地址管理。在TCP/IP五层模型中,传输层和网络层是两个关键的层,它们负责从数据的路由到可靠传输的核心功能。这两个层次的功能必须在操作系统的内核中实现,这是因为它们直接与硬件交互,管理数据包的传输、路由和网络接口

(因为除了计算机早期为了适应更多的网络连接需求,所以出现了TCP和IP协议,慢慢的基于这两个协议有进行了相关的补充最后才形成了当今的TCP/IP网络协议栈,且当前正常情况下所有的主机只会使用该网络协议栈)

网络协议的本质

问题:假设进行通信的两台主机A和主机B使用了不同的OS,同时在传输层中都定义了一个结构体protocol,此时主机A发送结构体对象data给主机B,主机B是否能识别这一内容?

回答:可以,主机A通过网络协议栈发送这个结构体数据给主机B。虽然两个主机的操作系统不同,但因为双方都使用相同的网络协议栈,所以接收方(主机B)能够正确解析这个结构化数据,确保数据能够准确无误地传输并被解读

结论:网络协议的本质就是通信算双方都认识的数据结构(协议定义了通信双方都能识别的结构化数据类型,即便操作系统不同,通过标准的协议解析,数据传输也不会出错​​​​​​​)

举例说明:快递 = 快递单 + 物品,快递单上的寄件人姓名、地址等需要填写的信息就类似于一个数据结构,寄件人(主机A)在发送快递时要填写这些内容(结构体中的变量),然后和物品(要发送的数据)一起进行传递出去,快递员(主机B的网络协议栈)在派送快递时会读取快递单上的内容最后将快递中的物品交给收件人(主机B)

概念替换:在网络的数据传输中,快递被叫做报文,快递单叫做包头、物品叫做有效载荷

  • 报文:也称数据包,是传输的完整单元,由包头和有效载荷构成
  • 包头:位于报文的前端,提供报文如何传输的元数据信息,例如源地址、目标地址、协议类型、校验信息等,可能有多个包头用于处理不同协议层间数据的传输
  • 有效载荷:紧随包头之后,包含了实际传输的数据,例如要发送的某个文件的具体内容

注意事项: 一个完整的报文可能包含多个包头(有时也称报头,二者是一样的)

当一个TCP报文通过IP层传输时,它的结构大致如下:
[IP包头] [TCP包头] [有效载荷(实际数据)]

数据在局域网传输的基本流程 

基本概念:两台主机在同一局域网内,可以进行通信(教室里老师可以和你进行交流),并且每台主机在局域网上都要有一个唯一的标识,来保证当前主机在局域网内的唯一性,这一标识也叫做mac地址

MAC地址

基本概念:用于唯一标识网络中的每个设备的网卡或网络接口,每个网络设备的MAC地址在制造时就被烧录在其网络接口中,因此理论上每个设备的MAC地址都是全球唯一的

以太网:以太网是实现局域网的技术之一,但局域网可以通过不同的技术来实现,比如有线和无线​​​​​​​

注意​​​​​​​事项:在以太网中任何时刻只允许一台机器向网络中发送数据,如果有多台同时发送会发生数据干扰,我们称之为数据碰撞,所有发送数据的主机要进行碰撞检测碰撞避免,没有交换机的情况下,一个以太网就是一个碰撞域局域网通信的过程中,主机对收到的报文确定是否是发送给自己的,是通过发送者的目标mac地址判定的

报文的封装和解包

基本概念:从逻辑层面来讲,每一层协议都认为自己是在与对等层的协议直接通信(因为网络协议提出的的每一层都专注于处理特定的功能,而不需要了解其他层的具体实现,比如应用层协议HTTP认为它与另一端的应用层协议直接通信,而不必了解下层的传输细节),但在实际的传输过程中,数据并不是直接从一台设备的某层传送到另一台设备的相同层,而是通过逐层封装和解封装进行传递

封装:应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称之为封装​​​​​​​,并且在数据向下封装时每一层都不关心上一层发来的数据是什么,只会把它当作有效载荷,然后在该有效载荷的头部加上自己层独有的报头后继续向下传递数据

​​​​​​​解包和分用:不断去除原始数据包中的之前各个层添加的报头并取出有效载荷的过程叫做解包(或者解封装),将接收到的数据正确地交给合适的上层协议进行处理的过程叫做分用(因为每一层中都会有很多的协议,通常情况下数据包在封装过程中就会对当前封装时使用的是什么协议进行标识,便于后续解包过程中的分用)

  • 这也是为什么称这些每个层中的网络协议的集合为网络协议栈的原因:先进后出

注意事项:数据在网络中发送时,最终一定是在硬件上传递的

 假设有一个HTTP请求从主机A传递到主机B:

  • 传输过程(主机A到主机B):

    • 主机A的应用层生成HTTP请求数据。
    • 传输层(TCP)将HTTP请求数据封装为TCP段,添加TCP包头(如源端口、目的端口)。
    • 网络层(IP)将TCP段封装为IP数据包,添加IP头(如源IP地址、目标IP地址)。
    • 数据链路层将IP数据包封装为以太网帧,添加以太网头(如源MAC地址、目的MAC地址)。
    • 物理层通过网络介质(如网线或无线)传输这些数据。
  • 接收过程(主机B):

    1. 解包:主机B接收到数据后,物理层开始接收信号,逐层解包:

      • 数据链路层去掉以太网头,提取出IP数据包;
      • 网络层去掉IP头,提取出TCP段;
      • 传输层去掉TCP头,得到HTTP请求数据。
    2. 分用:解包过程中,分用操作会根据不同的标识符将数据传递给相应的协议或应用程序:

      • 数据链路层通过以太网帧中的EtherType字段,将IP数据包交给IP协议进行处理;
      • 网络层通过IP头中的协议字段,将TCP段交给TCP协议进行处理;
      • 传输层通过TCP头中的端口号,将HTTP请求数据交给Web服务器进行处理。 

补充内容

  1. 不同的协议层对数据包有不同的叫法,在传输层叫做段、在网络层叫做数据报、在数据链路层叫做帧
  2. 首部(报头)信息中包含了一些类似于首部有多长、有效载荷有多长、上层协议是什么等信息
  3. 在学习网络协议的过程中,我们应该从以下两个层面来看待一个网络协议:
  • 从解包层面来看:​​​​​​​当前的协议是如何解包的?
  • 从分用层面来看:当前协议是如何将自己的有效载荷交付给上层协议的?​​​​​​​

数据的跨网络传输基本流程

大多数时候数据都不是在局域网中传输的而是范围更大的跨网络传输(互联网/广域网)

基本概念:跨网络的主机的数据传输,数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器 

IP地址

基本概念:是IP协议中用于标识网络中不同主机的数字地址,理论上在全球网络中每台主机的IP地址都是独一无二的(实际中还有局域网中的私有IP,它就不是了独有的,多个局域网中可以存在相同的私有IP,只要符合规定即可),分为IPv4(4字节、32位的整数)和IPv6(16字节,128位的整数),通常用"点分十进制"的字符串来表示IP地址(例如192.168.10.1)用点分割的每一个数字表示一个字节,范围是0-255

意义:屏蔽底层网络的差异,从应用层来看所有的网络都是IP网络

​​​​​​​

IP地址和MAC地址的区别

基本概念:IP地址存放的是源目标和最终目标,MAC地址存放的是上一个和下一个目标的地址,数据在经过路由器的时会根据源IP和目的IP在路由表中进行查找,并及时更换自己的MAC地址

补充内容:IP地址用于标识主机的唯一性(在公网IP中每台主机是唯一的,但是在两个不同的局域网中可以存在相同的IP地址),而MAC虽然也可以用于标识主机的唯一性但是是在其所在的局域网中无法跨网段标识

~over~

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

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

相关文章

dijstra算法——单元最短路径算法

Dijkstra算法 用来计算从一个点到其他所有点的最短路径的算法,是一种单源最短路径算法。也就是说,只能计算起点只有一个的情况。Dijkstra的时间复杂度是O(n^2),它不能处理存在负边权的情况。 算法描述: 设起点为s,d…

云原生(四十六) | MySQL软件安装部署

文章目录 MySQL软件安装部署 一、MySQL软件部署步骤 二、安装MySQL MySQL软件安装部署 一、MySQL软件部署步骤 第一步:删除系统自带的mariadb 第二步:下载MySQL源,安装MySQL软件 第三步:启动MySQL,获取默认密码…

【无标题】提升快递管理效率的必备技能:教你批量查询与导出物流信息

在当今快节奏的商业环境中,快递与物流行业的效率直接关系到企业的运营成本和客户满意度。随着订单量的不断增加,如何高效地管理和追踪大量的物流信息成为了企业面临的一大挑战。批量查询与导出物流信息作为一种高效的数据处理手段,正逐渐成为…

信息安全工程师(33)访问控制概述

前言 访问控制是信息安全领域中至关重要的一个环节,它提供了一套方法,旨在限制用户对某些信息项或资源的访问权限,从而保护系统和数据的安全。 一、定义与目的 定义:访问控制是给出一套方法,将系统中的所有功能和数据…

ElliQ 老年身边的陪伴

前记 国庆回家发现爸爸之前干活脚崴了,找个临时拐杖撑住,我心里很不是滋味。虽然总和爸妈说,不要干重活,但老人总是担心成为儿女的负担,所以只要能动,就找活干。 给爸妈一点零花钱,老妈只收了…

多系统萎缩患者的运动指南【健康守护,动出希望】

亲爱的朋友们,今天我们来聊聊一个特别而重要的话题——多系统萎缩患者的运动指南。面对这一挑战,适量的运动不仅能缓解病情,还能提升生活质量。让我们一起,用爱与坚持,为生命加油! 🌈 ‌为什么…

Linux系统字符命令关机方法对比

一、相同点:都可以达到关机或重启系统的目的。 二、不同点:命令内部的工作过程不同。 1、shutdown 安全的关机命令:系统管理员会通知所有登录的用户系统将要关闭且 login 指令会被冻结,即新的用户不能再登录。根据使用的参数不同…

Spring Boot RESTful API开发教程

一、RESTful API简介 RESTful API是一种基于HTTP协议的Web API,其设计原则是简单、可扩展、轻量级、可缓存、可靠、可读性强。RESTful API通常使用HTTP请求方法(GET、POST、PUT、DELETE等)来操作资源,使用HTTP状态码来表示操作结…

SysML案例-电磁轨道炮

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>> 图片示例摘自intercax.com,作者是Intercax公司总裁Dirk Zwemer博士。

【需求分析】软件系统需求设计报告,需求分析报告,需求总结报告(原件PPT)

第1章 序言 第2章 引言 2.1 项目概述 2.1.1 项目背景 2.1.2 项目目标 2.2 编写目的 2.3 文档约定 2.4 预期读者及阅读建议 第3章 技术要求 3.1 软件开发要求 3.1.1 接口要求 3.1.2 系统专有技术 3.1.3 查询功能 3.1.4 数据安全 3.1.5 可靠性要求 3.1.6 稳定性要求 3.1.7 安全性…

车载入行:HIL测试、功能安全测试、CAN一致性测试、UDS测试、ECU测试、OTA测试、TBOX测试、导航测试、车控测试

FOTA模块中OTA的知识点:1.测试过程中发现哪几类问题? 可能就是一个单键的ecu,比如升了一个门的ecu,他的升了之后就关不上,还有就是升级组合ecu的时候,c屏上不显示进度条。 2.在做ota测试的过程中&#xff…

【Python】Streamlit:为数据科学与机器学习打造的简易应用框架

Streamlit 是一个开源的 Python 库,专为数据科学家和机器学习开发者设计,旨在快速构建数据应用。通过简单的 Python 脚本,开发者无需掌握前端技术,即可将数据分析和模型结果转化为直观、交互式的 Web 应用。其简洁的 API 设计使得…

SOMEIP_ETS_164: SD_SubscribeEventgroup_with_unallowed_option_ip_2

测试目的: 验证DUT能够拒绝一个在请求中包含错误参数(端点选项中包含无效IPv4地址,即111.111.111.111)的SubscribeEventgroup消息,并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协…

自动驾驶系列—线控悬架技术:自动驾驶背后的动力学掌控者

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

【Java并发编程的艺术3】Java内存模型(上)

文章目录 Java内存模型的基础并发编程模型的两个关键问题通信同步 Java内存模型的抽象结构并发编程模型的分类happens-before简介 Java内存模型的基础 并发编程模型的两个关键问题 在并发编程中,需要处理两个关键问题:线程之间如何通信以及线程之间如何…

JavaScript 中最快的循环是什么?

无论使用哪种编程语言,循环都是一种内置功能。JavaScript 也不例外,它提供了多种实现循环的方法,偶尔会给开发人员带来困惑:哪一种循环才是最快的? 以下是Javascript中可以实现循环的方法: For Loop While …

【GEE学习第三期】GEE常用函数总结

【GEE学习第三期】GEE常用函数总结 数据统计类ee.List.sequence函数 图像处理类ee.Geometry类‌defaultVisualizationVis函数 数据输入输出数值与绘图导出影像 参考 数据统计类 ee.List.sequence函数 用法如下: ee.List.sequence (开始,结…

FFT 分析进阶-笔记

FFT 分析进阶 边界不连续与泄漏效应解决方法增加窗函数海宁窗与哈布什窗混叠效应频率高到什么程度会出现混叠现象呢?那我们有办法去应对这个混叠吗?经典平均指数平均关于结果的显示模式FFT计算的三个常见的范例计算FFT图谱中某一段的总值,图中…

已解决:ValueError: Shape of passed values is (1509, 1), indices imply (1509, 2)

已解决:ValueError: Shape of passed values is (1509, 1), indices imply (1509, 2) 文章目录 写在前面问题描述报错原因分析: 解决思路解决办法1. 确认并调整数据的形状2. 使用 pd.concat() 或 pd.merge() 时检查数据3. 确保赋值时数据的形状匹配4. 重…

《PMI-PBA认证与商业分析实战精析》第7章 解决方案评价

第7章 解决方案评价 本章主要内容: 评价的建议思维 解决方案的评价计划 确定评价什么 何时以及如何验证解决方案的结果 评价验收标准和解决缺陷 促进通过/不通过的决策 获得解决方案的签字确认 评价解决方案的长期绩效 解决方案替换/淘汰 本章涵盖的考试…