zoukankan      html  css  js  c++  java
  • 数据帧、数据包、数据报以及数据段

    数据帧、数据包、数据报以及数据段 

    OSI参考模型的各层传输的数据和控制信息具有多种格式,常用的信息格式包括帧、数据包、数据报、段、消息、元素和数据单元。

    信息交换发生在对等OSI层之间,在源端机中每一层把控制信息附加到数据中,而目的机器的每一层则对接收到的信息进行分析,并从数据中移去控制信息,下面是各信息单元的说明:

    数据帧(Frame):是一种信息单位,它的起始点和目的点都是数据链路层
    数据包(Packet):也是一种信息单位,它的起始和目的地是网络层
    数据报(Datagram):通常是指起始点和目的地都使用无连接网络服务的的网络层的信息单元。
    段(Segment):通常是指起始点和目的地都是传输层的信息单元。
    消息(message):是指起始点和目的地都在网络层以上(经常在应用层)的信息单元。

    元素(cell)是一种固定长度的信息,它的起始点和目的地都是数据链路层

    元素通常用于异步传输模式(ATM)和交换多兆位数据服务(SMDS)网络等交换环境。

    数据单元(data unit)指许多信息单元。常用的数据单元有服务数据单元(SDU)、协议数据单元(PDU)。

    SDU是在同一机器上的两层之间传送信息。PDU是发送机器上每层的信息发送到接收机器上的相应层(同等层间交流用的)。

    Packet(数据包):封装的基本单元,它穿越网络层和数据链路层的分解面。通常一个Packet映射成一个Frame,但也有例外:即当数据链路层执行拆分或将几个Packet合成一个Frame的时候。

    数据链路层的PDU叫做Frame(帧);
    网络层的PDU叫做Packet(数据包);
    TCP的叫做Segment(数据段);
    UDP的叫做Datagram。(数据报)——在网络层中的传输单元(例如IP)。一个Datagram可能被封装成一个或几个Packets,在数据链路层中传输

    帧和数据包都是数据的传输形式。帧,工作在二层,数据链路层传输的是数据帧,包含数据包,并且增加相应MAC地址与二层信息;数据包,工作在三层,网络层传输的是数据包,包含数据报文,并且增加传输使用的IP地址等三层信息。

    数据包: 
        “包”(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。有人说,局域网中传输的不是“帧”(Frame)吗?没错,但是TCP/IP协议是工作在OSI模型第三层(网络层)、第四层(传输层)上的,而帧是工作在第二层(数据链路层)。上一层的内容由下一层的内容来传输,所以在局域网中,“包”是包含在“帧”里的。 名词解释:OSI(Open System Interconnection,开放系统互联)模型是由国际标准化组织(ISO)定义的标准,它定义了一种分层体系结构,在其中的每一层定义了针对不同通信级别的协议。OSI模型有7层:
    上四层协议有:
    第7层应用层(Application)协议和应用:http,ftp,tftp,telnet,dns,smtp
    此层是用户与计算机进行实际通信的地方.只是当马上就要访问网络时,才会实际上用到这一层.
    第6层表示层(Presnation)协议和应用:ebcdic,ascii,jpeg,tiff,midi,mpeg
    第5层会话层(Session)协议和应用:nfs,sql,rpc,x-windows,netbios
    下四层协议有:
    第4层传输层(Transport 此层数据单位【段segment】)协议和应用:tcp,udp,spx
    第3层网络层(Network   此层数据单位【包packet】)协议和应用:ip,ipx,appletalk,icmp
    第2层链路层(Data Link 此层数据单位【帧Frame】)协议和应用:802.3,802.2,atm,fr
    第1层物理层(Physical此层数据单位【比特流Bit】)协议和应用:v.35,eia/tia 323

    OSI模型在逻辑上可分为两个部分:低层的1�4层关注的是原始数据的传输;高层的5�7层关注的是网络下的应用程序。 我们可以用一个形象一些的例子对数据包的概念加以说明:我们在邮局邮寄产品时,虽然产品本身带有自己的包装盒,但是在邮寄的时候只用产品原包装盒来包装显然是不行的。必须把内装产品的包装盒放到一个邮局指定的专用纸箱里,这样才能够邮寄。这里,产品包装盒相当于数据包,里面放着的产品相当于可用的数据,而专用纸箱就相当于帧,且一个帧中只有一个数据包。 “包”听起来非常抽象,那么是不是不可见的呢?通过一定技术手段,是可以感知到数据包的存在的。比如在Windows 2000 Server中,把鼠标移动到任务栏右下角的网卡图标上(网卡需要接好双绞线、连入网络),就可以看到“发送:××包,收到:××包”的提示。通过数据包捕获软件,也可以将数据包捕获并加以分析。 就是用数据包捕获软件Iris捕获到的数据包的界面图,在此,大家可以很清楚地看到捕获到的数据包的MAC地址、IP地址、协议类型端口号等细节。通过分析这些数据,网管员就可以知道网络中到底有什么样的数据包在活动了。 附: 数据包的结构 数据包的结构非常复杂,不是三言两语能够说清的,在这里主要了解一下它的关键构成就可以了,这对于理解TCP/IP协议的通信原理是非常重要的。数据包主要由“目的IP地址”、“源IP地址”、“净载数据”等部分构成。 数据包的结构与我们平常写信非常类似,目的IP地址是说明这个数据包是要发给谁的,相当于收信人地址;源IP地址是说明这个数据包是发自哪里的,相当于发信人地址;而净载数据相当于信件的内容。 正是因为数据包具有这样的结构,安装了TCP/IP协议的计算机之间才能相互通信。我们在使用基于TCP/IP协议的网络时,网络中其实传递的就是数据包。理解数据包,对于网络管理的网络安全具有至关重要的意义。 

    数据帧 
        “帧”数据由两部分组成:帧头和帧数据。帧头包括接收方主机物理地址的定位以及其它网络信息。帧数据区含有一个数据体。为确保计算机能够解释数据帧中的数据,这两台计算机使用一种公用的通讯协议。互联网使用的通讯协议简称IP,即互联网协议。IP数据体由两部分组成:数据体头部和数据体的数据区。数据体头部包括IP源地址和IP目标地址,以及其它信息。数据体的数据区包括用户数据协议(UDP),传输控制协议(TCP),还有数据包的其他信息。这些数据包都含有附加的进程信息以及实际数据。

  • 相关阅读:
    2020 Java开发者数据分析:中国已成为 Java 第一大国
    居然仅用浏览器,就完成了Spring Boot应用的开发与部署!
    Serverless 初体验:快速开发与部署一个Hello World(Java版)
    聊聊算法——回文字符串
    Redis Lua脚本完全入门
    Mock测试你的Spring MVC接口
    HTTPS证书知识扫盲
    Java中类型判断的几种方式
    山寨一个Spring的@Component注解
    如何自动填充SQL语句中的公共字段
  • 原文地址:https://www.cnblogs.com/qiaoyanlin/p/6767557.html
Copyright © 2011-2022 走看看