首页 > 其他分享 >Ethernet 系列(6)-- 基础学习::OSI Model

Ethernet 系列(6)-- 基础学习::OSI Model

时间:2024-10-31 18:20:20浏览次数:3  
标签:标头 -- 主机 地址 OSI MAC IP地址 Ethernet 数据

(写在前面:最近在学习车载以太网的知识,顺便记录一下知识点。)

OSI(Open System Interconnect )模型是一种网络通信框架,由国际标准化组织(‌ISO)在1985年提出,旨在为不同制造商和技术提供商的网络设备和软件提供一个通用的兼容和通信标准。这个模型将复杂的网络通信过程分解为七个独立的层次,使得网络交互更加清晰和易于管理。OSI模型的主要目的是提供一个通用的框架,确保不同系统之间的互操作性和应用的可移植性。

目录

1.OSI Model每层的功能:

 1.1 Physical layer(物理层)

1.2 Data link layer(数据链路层)

1.3 Network layer(网络层)

1.4 Transport layer(传输层)

1.5 Session, Presentation, Application Layer(会话,展示,应用层)

2. 封装和去封装过程:

2.1 封装过程

2.2 去封装过程

3. 结论:


1.OSI Model每层的功能:

OSI模型包含7层:

 1.1 Physical layer(物理层)

  • 计算机数据以位(1和0)的形式存在。必须有东西在计算机之间传输这些比特。这个东西是物理层。换句话说,物理层的目标是传输比特。
  • 任何有助于在计算机之间移动这些比特的东西都被称为第1层技术。示例:电缆、Wifi、中继器、集线器。

1.2 Data link layer(数据链路层)

  • 该层将与物理层交互,这意味着它将在线路上放置比特并从线路中检索比特。 
  • 无论计算机中的电线连接到什么,它都被认为是第2层技术。示例:NIC(网络接口卡)、Wifi接入卡、交换机。 
  • 数据链路层的目标是跳到跳,这意味着它将从这个NIC获取比特流并将其放入另一个NIC。为了实现这一目标,第2层将使用寻址方案,称为MAC地址。

1.3 Network layer(网络层)

  • 这一层的目标是端到端交付。为了实现这一目标,第3层将使用称为IP地址的寻址方案。 
  • 第3层技术包括:路由器、主机或任何具有IP地址的设备都可以被视为第3层的技术。 
  • 到目前为止,问题是为什么我们需要MAC地址和IP地址?要回答这个问题,让我们看一下这个插图:

假设我们有以下组件: 

  • 主机A的IP地址为10.1.1.11,MAC地址为a1a1。 
  • 主机B的IP地址为10.8.8.88,MAC地址为e8e8。 
  • 具有MAC地址b2b2和b3b3的路由器1。 
  • 路由器2的MAC地址为c4c4和c5c5。 
  • 路由器3的MAC地址为d6d6和d7d7
  • 我们希望将数据(0和1位的流)从主机a传递到主机B。此时,层2和层3不知道这些数据意味着什么,它只知道需要将这些位从主机a传输到主机B即可。步骤如下:
  • Step 1: 由于主机A知道数据需要到达主机B,它将向该数据添加第3层信息,以便从一端到另一端获取信息。

  • Step 2: 主机A知道它首先需要将数据传输到路由器1。为此,主机A需要向该数据添加第2层信息,以便跳到路由器1。

当添加第2层信息时,数据可以被传递到路由器1。

  • Step 3: 一旦数据到达路由器1,第2层信息就会被删除。记住,第2层信息的全部目的只是逐跳传递。

  • 重复步骤2和3,调整MAC地址,直到数据可以到达主机B。一旦数据到达主机B,就可以删除第2层和第3层信息。第2层信息可以被删除,因为它已经完成了将数据从路由器3带到主机B的任务。

这就是为什么我们需要MAC和IP地址的原因,因为它服务于不同的目的。IP地址和MAC地址作为独立的功能工作,有一个协议将这两个功能联系在一起,称为ARP(地址解析协议)。

1.4 Transport layer(传输层)

这一层的目标是服务到服务的交付,这意味着正确的程序接收正确的数据包。换句话说,这一层的目标是区分数据流。

与第2层和第3层一样,第4层也使用称为Port的寻址方案来实现其目标。有2组端口:

  • 0-65535 for TCP.
  • 0-65535 for UDP.
  • TCP和UDP是区分数据流的两种不同策略。TCP有利于可靠性,UDP有利于效率。

每个预期接收或向线路发送数据的程序都与特定的端口号相关联。因此,当数据到达线路时,它将包括第4层信息以及第3层和第2层信息。第4层信息指示应该接收哪个特定程序的数据。

还有一件更重要的事情应该记住:客户端为每个连接随机选择端口。在下图中,这意味着在端口8888上返回的任何内容都将被提供给服务bank.com,在端口7777上返回的所有内容都将提供给服务聊天服务器。

此外,当客户端使用同一程序打开多个选项卡时,会相应地建立随机端口。

1.5 Session, Presentation, Application Layer(会话,展示,应用层)

  • OSI模型中的其他层具有不同的功能,但当涉及到第5、6、7层时,这种区别有些不清楚。这三层通常被认为是一个通用应用层。 
  • 这一层的目标是赋予数据意义。

2. 封装和去封装过程:

2.1 封装过程

  • 主机A有一个正在生成数据以发送到主机B的应用程序。这些数据将经过封装过程。

  • 这些数据将首先发送到第4层。此层将向数据添加一个标头,以促进第4层:服务到服务交付的目标。特别是,TCP标头将包含此数据的源端口和目标端口。第4层标头+数据的构造称为Segment。

  • 该段将传递到第3层。此层将为此数据添加另一个标头,以促进第3层:端到端交付的目标。特别是,IP报头将包含此数据的源IP地址和目标IP地址。第3层标头+数据的构造称为Packet。

请注意,在Packet的数据内部是一个第4层标头和应用层的数据,但在第3层,它不在乎数据内部是什么,它只知道数据是一堆需要传递到另一端的0和1。

  • 该数据包将再次向下传递到第2层。此层将向此数据添加另一个标头,以促进第2层的目标:跳到跳交付。特别地,第2层报头将包含此数据的源MAC地址和目的MAC地址。第2层标头+数据的构造称为Frame。

  • 该帧最终将转换为1和0,并放置在导线上。

2.2 去封装过程

  • 另一端,接收主机将执行去封装过程。这意味着,它将把这些1和0从线上取下,并转换为Frame。接下来,第2层将查看第2层标头,以确保这是此主机NIC的MAC地址。如果地址正确,它将丢弃第2层标头并将其传递给第3层。

  • 在第3层,它将查看IP标头,以确保它是此主机IP地址的IP地址。如果IP地址正确,它将丢弃IP报头并将其传递到第4层。

  • 在第4层,它将查看TCP标头,以确定将此数据发送到哪个端口,然后将数据传递给正确的应用程序。

  • 应用程序最终可以处理数据。

3. 结论:

  • 网络设备在特定层上运行,这意味着例如第2层设备只会查看数据报直到第2层报头才能做出决定。 
  • 例如,交换机仅查看第2层标头以做出决定,它将忽略查看有效载荷内部(第3层和第4层标头)。

标签:标头,--,主机,地址,OSI,MAC,IP地址,Ethernet,数据
From: https://blog.csdn.net/qq_41602272/article/details/141899784

相关文章

  • 《使用Gin框架构建分布式应用》阅读笔记:p272-p306
    《用Gin框架构建分布式应用》学习第15天,p272-p306总结,总35页。一、技术总结1.TDD(test-drivendevelopment)虽然经常看到TDD这个属于,从本人的工作经历看,实际开发中用得相对较少。2.unitest(单元测试)go语言开发中,使用testify进行单元测试开发。(1)创建测试文件测试文件以xx......
  • 深入计算机语言之C++:内存管理
    ......
  • A股\美股\港股 WebSocket实时行情接口接入
    Websocket行情接入请按照下面的步骤完成沪深、港股或美股的行情接入。原文地址:https://jvquant.com/wiki.html#websocket-分配服务器为实现更好的用户体验,系统将自动为您分配合适的服务器。注意:每次分配的服务器地址会发生变化,连接服务前,请务必调用该接口获取最新的服务器地......
  • 域适应(Domain Adaptation, DA)、域泛化(Domain Generalization, DG)和测试时域适应(Test T
    域适应(DomainAdaptation,DA)、域泛化(DomainGeneralization,DG)和测试时域适应(TestTimeAdaptation,TTA)是迁移学习领域中处理分布差异的三个重要概念,它们既有联系也有区别1、DomainAdaptation(域适应,DA)1.1、DA定义域适应的目标是将一个在源域上训练好的模型调整或......
  • swiftui 轮播图切换
    importSwiftUIstructBanner:View{@Statevarcat=0@Statevarpage=0varbody:someView{ZStack{Color.gray.edgesIgnoringSafeArea(.all)VStack{......
  • swiftui轮播图
    importSwiftUIstructPost:Identifiable{varid=UUID().uuidStringvarpostImage:String}importSwiftUIstructSnapCarousel<Content:View,T:Identifiable>:View{varcontent:(T)->Contentvarlist:[T]/......
  • 极验4 文字点选 拉勾网 分析
    声明:本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!有相关问题请第一时间头像私信联系我删除博客!前言简单分析一下极验4文字点选。逆向过程训练和孪生......
  • Java基础篇 (一)(JDK安装教程 零基础谁都可以学会!!!)
    前言大家好,我是小斜。俗话说的好,十年树木,百年树人。欲成大事,必须要坚持不懈努力。学习编程也一样,只有通过日积月累地学习才能有质的飞跃!我在这里给刚入门的大伙们提几点小建议:1.知行合一,编程归根结底就是要我们把思考出来的东西,再让它通过代码实现的一个过程。如果仅仅停留......
  • git常用命令
    git常用命令一、获取日志并回退到历史版本1.获取历史日志gitreflog2.回退到历史版本gitreset--hardHEAD@{n}HEAD@{n}其中一个历史版本号(n越大,历史版本越早)如HEAD@{2}表示HEAD指针在两次移动之前的情况;3.删除初始化文件(慎用)rm-rf.git二、git上传代码......
  • AI 辅助编程的效果如何衡量?
    作者:耘越本文主要介绍了如何度量研发效能,以及AI辅助编程是如何影响效能的,进而阐述如何衡量AI辅助编程带来的收益。理解度量:有效区分度量指标为了帮助研发团队更好地理解和度量研发效能,可以将指标分为三类:能力和行为指标、交付效能指标和业务结果指标。该分类有助于从不同维度评......