精华内容
下载资源
问答
  • 本章目录数据封装数据解封装PDU 数据封装 在网络中传输数据需要对其进行封装,也就是加入网络参考模型中各层对应头部信息,这些头部信息主要作用是用来帮助中间传输系统将数据传输到一个正确的目的地,它不是...

    数据封装

    在网络中传输数据需要对其进行封装,也就是加入网络参考模型中各层对应的头部信息,这些头部信息的主要作用是用来帮助中间传输系统将数据传输到一个正确的目的地,它不是为了给接收方看的。
    数据的封装过程如下图,传输层的传输是端到端的,类似于我们将信封交到邮递员手上;数据链路层主要负责本地区域的传输,类似邮递员将信封交到邮局;而网络层的传输是点到点的,类似信封被邮局发出去在不同城市间传输;所有的数据要转换成物理信号比特流在物理层传输。
    在这里插入图片描述

    数据解封装

    而到接收方那边时,他不关心这个数据是如何发送过来的,对接收方来说数据才是最重要的所以要对数据进行解封装,将封装的一些头部都去掉,解封装过程如下图,与封装过程相反。
    在这里插入图片描述

    PDU

    另外说明一点,在不同层,对封装的数据有不同的名称,PDU协议数据单元就是用来描述这些每层封装的内容和格式。希望大家记一记,每层封装的名称。
    在这里插入图片描述

    晚安,希望大家开心!!!

    展开全文
  • 数据封装:在网络中传输数据需要对其进行封装,也就是加入网络参考模型中各层对应头部信息,这些头部信息主要作用是用来帮助中间传输系统将数据传输到一个正确的目的地,它不是为了给接收方看。数据封装过程...

    数据封装:在网络中传输数据需要对其进行封装,也就是加入网络参考模型中各层对应的头部信息,这些头部信息的主要作用是用来帮助中间传输系统将数据传输到一个正确的目的地,它不是为了给接收方看的。数据的封装过程传输层的传输是端到端的,类似于我们将信封交到邮递员手上;数据链路层主要负责本地区域的传输,类似邮递员将信封交到邮局;而网络层的传输是点到点的,类似信封被邮局发出去在不同城市间传输;所有的数据要转换成物理信号比特流在物理层传输。
    数据解封装
    而到接收方那边时,他不关心这个数据是如何发送过来的,对接收方来说数据才是最重要的所以要对数据进行解封装,将封装的一些头部都去掉与封装过程相反。

    五层协议

    • 应用层:为特定应用程序提供数据传输服务,例如 HTTP、DNS 等。数据单位为报文。邮件、http、域名 [1123]
    • 传输层:为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。tcp、udp [1122]
    • 网络层:为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。ip地址,子网划分,等 [1121]
    • 数据链路层:网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。频分复用、码分复用 [1120]
    • 物理层:考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。调制解调 [1125]

    应用层 : 原始数据(应用层数据);
    传输层:目标端口 + 源端口 + 原始数据;
    网络层:目标IP + 源IP + 目标端口 + 源端口 + 原始数据;
    数据链路层:目标Mac + 源Mac + 目标IP + 源IP + 目标端口 + 源端口 + 原始数据;
    物理层:转换成二进制数据表示的高低电压;

    数据封装和解封过程中,在各层分别有如下操作:

    • 应用层:
      • 封装:将数据封装在对应的应用层协议数据体中,添加应用层协议的协议头,如HTTP协议的请求头和请求体(数据通常封装在请求体)
      • 解封:通过协议规范,将协议头和数据体拆分,数据从协议数据体中提取
    • 传输层
      • 封装:将应用层数据报封装在数据包的数据体中,添加传输层协议头,如TCP首部
      • 解封:将协议头和数据体拆分,根据协议头的信息来将数据体交给应用层来处理
    • 网络层:
      • 封装:将传输层的数据报封装在网络层的数据体中,添加网络层协议头,如IP首部
      • 解封:将协议头和数据体拆分,根据协议头的信息来将数据体交给传输层来处理
    • 数据链路层:
      • 封装:将网络层的数据报封装在数据链路层的数据体中,添加数据链路层协议头,如MAC地址等信息
      • 解封:将协议头和数据体拆分,根据协议头的信息来将数据体交给网络层来处理
    • 物理层:
      • 封装:物理层负责将数字信号转换为电信号发送
      • 解封:物理层负责将接收的电信号转换为数字信号

    分别来看封装和解封

    数据封装

    • 应用层:产出要被传输的数据。
    • 传输层:这一层是TCP与UDP协议,这两个协议都是基于端口的,数据在这一层被包裹上目标端口与应用在当前主机上的原端口。
    • 网络层:通过IP协议来确定目标主机,在这一层会被包裹上目标主机IP与当前主机IP。
    • 链路层:包裹上目标主机的mac地址与当前主机的mac地址。
    • 物理层:经过网卡调制变成二进制再转换成电压。

    数据解封装

    • 应用层:使用数据。
    • 传输层:找到对应端口传输数据。
    • 网络层:对比当前IP地址是否与目标IP地址一致。
    • 链路层:对比当前mac地址是否与目标mac地址一致。
    • 物理层:将电压转换成二进制数据。
    展开全文
  • 因为在一个路由器转发数据包的时候,除了知道目的地怎么去(有路由),还需要二层的正确封装,否则就算有路由的话,也无法进行通信。 这是卷一提到过的,虽然没有像协议卷一说得那么细,但是,它也说明了,必须...

    二层封装

    为什么需要了解二层封装呢? 因为在一个路由器转发数据包的时候,除了知道目的地怎么去(有路由),还需要二层的正确封装,否则就算有路由的话,也无法进行通信。

    tcpip
    这是卷一提到过的,虽然没有像协议卷一说得那么细,但是,它也说明了,必须获取数据链路层的信息才能正常进行封装,而这个二层的信息通常就是目的mac地址,而提供这个IP对应MAC的机制,就通过ARP来完成,并且通过缓存保存下来。而网络层,则是通过静态或者动态路由协议获取相关的信息,保存在路由表中,也叫路由选择信息库 RIB。

    tcpip
    这个拓扑主要介绍ARP和代理ARP在以太网类型中起一个什么作用。IP地址信息如图上所示

    证明一

    第一个证明,二层如果没有获取到封装的信息,则数据包都不会发送出去。
    根据这个图就配置了IP地址,右边路由有一跳缺省路由,这时候随便测试一个不存在的地址,查看数据包发送的情况。
    在R2上telnet 12.1.1.3,一个不存在的地址 。

    tcpip
    没有响应是正常的,但是这个没响应,到低是因为找不到二层的封装,还是应用层没有响应呢。 三层信息路由是没有问题的,因为是直连网段,,那么以太网通信,必须知道对方的MAC地址,而默认情况下,是不知道的,那么就需要一个机制来进行查询,就是ARP了。

    tcpip
    发送了三个ARP查询,而网络中没有人进行响应,所以,二层无法得到封装(没有获取12.1.1.3的MAC地址)则通信失败。

    这时候,我们做一个静态ARP绑定,然后在进行telnet,MAC地址可以随意定义。

    tcpip
    其中1.1.1就是表示MAC 0001.0001.0001 可以省略写的。

    tcpip
    tcpip
    发现了什么? 因为MAC地址有了封装(就是手工绑定的),它直接发送TCP连接给12.1.1.3了,发送了4个SYN的包,因为对方没有响应SYN+ACK,所以这个TCP会话没有继续进行下去。

    结论: 无论在一个相同网段,还是不同网段的情况下,如果二层的介质是以太网,那么就必须获取对方的MAC地址信息,相同网段则是目的地址的MAC地址,不同网段则是路由表中的下一跳 ,一种特殊情况下,就是启用了代理arp的话,那么也是目的地址,但是MAC则是下一跳。 这也是在当前IPV4的网络中,ARP是一个非常不安全的协议,因为很容易就实现攻击了,只要网关的MAC被攻击者以错误的MAC告诉当前网络的设备,那么整个网络就通信不正常了。

    证明二

    第二个证明:路由器在路由模式和主机模式下,数据包是怎么通信的。

    tcpip
    还是这个拓扑,在右边路由器上关闭路由功能,no ip routing,那么能与 1.1.1.1通信么?

    答案是:可以的。

    tcpip

    通了是通了,那么它是怎么通的呢

    tcpip

    在show arp后,发现除了有12.1.1.1的MAC地址信息(之前ping过了),还有1.1.1.1对应的MAC信息,另外一个重要的信息就是12.1.1.1和1.1.1.1的MAC地址信息都是关于12.1.1.1的,这是为什么? 这就是所谓的代理ARP和主机模式工作的工程。

    主机模式工作:

    1、无网关情况下:当没有网关的情况下,它会对当前网络进行ARP查询,询问访问的目的地址的MAC地址信息,如果这个时候,网关知道怎么去这个目的地址,并且开启了代理ARP的功能,那么就会回应这个ARP响应,那么回应的内容就是这个目的地址的MAC地址是自己,这对于PC或者主机路由器来说是不知道的,它就认为这个MAC是对应目的主机,每次发送去往这个目的地址的时候,二层就封装这个目的MAC,然后发送出去。

    2、有网关的情况下:当有网关的情况下,它只会询问网关的MAC是多少,如果网关响应了后,那么PC或主机路由器,就会把这个数据包发送出去,它不管网关是否知道怎么去往这个目的地址不。

    可以进行证明:1、在没有网关的情况下,把R1的代理ARP给关闭了,默认是打开的,并且把ARP 缓存清掉 shutdown接口,clear arp

    TCPIP

    tcpip
    不通,因为R1的接口已经关闭了代理ARP了,所以不不会去响应这个ARP的Request。

    2、设置网关为R1的接口,并且发送一个去往2.2.2.2的telnet的会话,看TCP会话是否会发出去,如果出去了,就证明之前说的是对的,不管网关是否知道目的地可达,PC或主机路由器都会发送。

    tcpip
    这时候开始telnet 2.2.2.2

    tcpip
    telnet2.2.2.2 ,提示目的不可达,或者网关和主机是downde

    tcpip
    首选,路由器发送ARP的Request选为12.1.1.1(GW)的MAC地址是多少。R1响应这个ARP的请求。紧接着一个TCP会话发送出去,R1直接回复一个ICMP的差错报文,主机不可达。

    路由模式下的路由器:

    路由模式的数据包转发,不跟主机模式一样,主机模式是只要设置了网关或者没设置都会发送arp请求,但是,路由模式的话,先查看路由表,如果路由表中没有该路由,则不做任何动作。

    tcpip
    tcpip
    tcpip
    可以看出,因为路由表没有去往2.2.2.2的路由信息,所以不采取任何动作,连ARP都没有发送。

    证明三

    第三个证明:两个不同网段的主机,能否进行通信?
    在设置有GW的情况下,肯定是不可能的,但是,在某种情况下,它却成为可能,那就是两个主机都不设置IP,并且有代理ARP功能。

    tcpip
    说明:R1和R2都是关闭了路由功能的路由器,并且接口开启了代理ARP功能。IP地址与图

    从R1开始ping 2.2.2.2,并且抓取R1的数据包进行分析。

    tcpip
    tcpip

    没看错,R1与R2可以通信了,仔细看抓包的内容,首先R1发送一个arp的查询,{how has 2.2.2.2? tell 1.1.1.1}一个询问2.2.2.2的MAC Request包就发送出去了,因为R2与R1是直连(链路),所以,R2收到了这个ARP 的Request,而且R2是开启了代理ARP功能的,也就是说只要R2知道2.2.2.2怎么去,就会响应这个ARP的请求(这里明显就是自己),所以第二个诉举报就是arp的reply{2.2.2.2 is at c0:01:05:04:00:00},那么这时候R1就有R2的mac地址映射了,所以就发送了数据包出去,也就是icmp的echo,这时候R2收到,需要回应这个数据包,但是,它并不知道对方的MAC是什么,紧接着也发送了一个ARP的请求过去,询问1.1.1.1的MAC,然后,R1回复这个ARP请求。后续,通信就正常了。
    注意:如果是正常的ARP询问,那么只要一方放送ARP请求,另外一份响应的时候,还会把请求方的ARP的信息缓存起来。并且在主机模式下的路由器是不能关闭代理ARP的,就算接口下关闭了,也一样会响应请求。

    其实,不只有代理ARP能实现这个需求,比如在PC的情况下,因为PC没有代理ARP机制,所以,可以直接把1.1.1.1的网关设置为2.2.2.2,2.2.2.2的网关为1.1.1.1,它一样能通信,因为它会发送ARP信息来请求网关。

    注意:并不是所有的操作系统都是能执行的,有些是禁止的,之所有说明这个案例,主要是说明ARP在MAC和IP对应时候的作用,已经二层封装

    如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路Blog(其他平台同名),版权归网络之路Blog所有,原创不易,侵权必究,觉得有帮助的,关注、转发、点赞支持下!~。

    展开全文
  • 路由的工作原理和封装过程以及配置命令路由器的工作原理路由概况路由器的工作原理即根据路由表转发数据,主要过程如下:路由表的形成静态路由和默认路由静态路由默认路由路由转发数据包封装的过程 路由器的工作原理 ...

    路由器的工作原理

    路由概况

    路由:就是从源主机到目的主机的转发过程
    路由器:能够将数据包转发到正确的目的地,并在转发过程中选择最佳路径的设备
    在这里插入图片描述

    路由器的工作原理即根据路由表转发数据,主要过程如下:

    1、主机1.1要发送数据到4.1,因为是跨网通信,所以必须通过网关(通过ARP广播找到E0端口口的MAC地址),路由器收到数据包后,解封装数据包,发现里面的目标IP为4.1,查找路由表

    在这里插入图片描述
    2、路由器A查找路由表后,转发数据到S0接口,
    在这里插入图片描述
    3、路由器A通过ARP广播找到B路由器S0口的MAC地址后,将数据转发过去 ,
    在这里插入图片描述
    4、数据包到达B路由器后,查看目标IP地址并查找路由表 ,B路由器查找路由表发现4.0网段在E0接口,转发数据到E0接口。
    在这里插入图片描述
    5、数据通过ARP广播找到主机4.1的MAC地址,然后将数据包转发过去,这样主机4.1就成功接收到数据包了。
    在这里插入图片描述

    路由表的形成

    路由表是路由器维护的路由条目的集合,路由器根据路由表做路径的选择
    路由表又分为直连网段和非直连网段
    在这里插入图片描述
    如图所示,路由器A和路由器B就是直连网段,直连网段需要配置IP地址,端口UP状态,形成直连路由。(例如两个路由器相连,一般配32位的IP地址,配的是同一网段,配完IP地址端口就是UP状态,直连网段就形成了)
    非直连网段:需要静态路由或动态路由,将网段添加到路由表中。
    在这里插入图片描述

    静态路由和默认路由

    静态路由

    静态路由是由管理员手工配置的,是单向的,准确性高;但是,它缺乏灵活性。它是指定了数据从哪条路走,
    在这里插入图片描述
    如图,A向C发送数据,A的网段是10.0.0.0,那么,需要在路由器B配置IP为10.0.0.0、端口为S0的静态路由,数据才能从A转发到C。

    默认路由

    当路由器在路由表中找不到目标网络的路由条目时,路由器请求转发到默认路由接口
    在这里插入图片描述
    如图所示,路由器B是末节路由,最初端的路由器不知道该往哪走,只知道末节路由的网段和端口,那么,初端路由器只需要把数据包送到下一个路由器即可。
    默认路由是一种特殊的静态路由。

    路由转发数据包封装的过程

    在这里插入图片描述
    Host A向Host B发送数据,路由器对数据包的封装过程如下图所示:
    (1) Host A在网络层将来自上层的报文封装成IP数据包,其首部包含了源地址和目的地址。源地址即本机IP地址192.168.1.2,目的地址为HostB的IP地址 192.168.2.2。Host A 和 Host B 地址不在同一网段,因此发往HostB的数据包需要经过网关路由器A转发;
    (2)Host A 通过ARP请求获得默认网关路由器 A 的 EO 端口MAC地址00-11- 12-21-22-22。在数据链路层Host A将IP数据包封装成以太网数据帧,在以太网帧首部的源MAC地址为00-11-12-21-11-11,目的MAC地址为网关 E0 端口的MAC地址00-11-12-21-22-22;
    (3)路由器人从 E0 端口接收到数据帧,把数据链路层的数据解封装。路由器A查找自己的路由表, 寻找到与目标IP地址192. 16.2.2相匹配的路由表项即 E1 端口,然后封装数据,根据路由表的下一跳地址将数据包转发到 E1 端口;
    (4)在 EI 端口路由器 A 重新封装以太网帧,此时源MAC地址为路由器A的 E1 端口MAC地址00-11-12-21-33-33,目的MAC地址为与之相连的路由器B的E1端口MAC地址00-11-12-21-44-44。 路由器A发送ARP请求,路由器B做应答,实现单播;
    (5)路由器B从E1接口接收到数据帧,同样会把数据链路层的封装去掉,对目的IP地址进行检查,并与路由表进行匹配,然后根据路由表的下一跳信息将数据包转发到E0端口。路由器B发现目的网段与自己的E0端口直接相连,通过ARP广播, 路由器B获得Host B以太口的MAC地址00-11-12-21-66-66。路由器B再将IP数据包封装成以太网帧,源MAC地址为路由器B的E0接口的MAC地址00-11-12-21-55-55,目的MAC地址为Host B的MAC地址00-11-12-21-66-66。封装完毕,将以太网帧从E0接口发往HostB。

    展开全文
  • 当我们在七层协议最上层,主机A想和其它主机通信, 比如telnet到主机B,各层都为数据打包后再封装上自己能识别的数据标签,现在我们只说四层以下通信过程。 1、当一个高层数据包到达传输层,由于telnet使用TCP...
  • 7.数据转发的过程

    2020-08-11 11:29:17
    掌握数据封装和解封装的过程 处理数据转发过程中的基本故障 3.数据转发过程概述 数据可以在同一网络内或者不同网络间传输,数据转发过程也分为本地转发和远程转发,但两者的数据转发原理是基本一样的,都是遵循TCP...
  • 路由工作原理、路由转发数据包的封装过程、基础配置命令一、路由器工作原理1.1 路由概况1.2 路由器工作原理二、路由表形成 一、路由器工作原理 1.1 路由概况 路由:就是从源主机到目的主机转发过程 ...
  • 网络数据包封装过程

    千次阅读 2014-03-26 20:00:09
    1、当一个高层数据包到达传输层,由于telnet使用TCP协议,传输层将上层传过来的数据不变在封装TCP包头以便目标主机可以正确解包,继续向下层(网络层)传递。 2、网络层同样不会改变之前数据包,当然也包括...
  • 1.7、数据转发过程

    2020-07-05 18:30:54
    对于网络工程师来说,只有深入地理解数据在不同设备上转发过程,才能够对网络进行正确的分析和检测。 数据转发过程概述 数据包在相同网段内或不同网段之间转发所依据原理基本一致 TCP封装 当主机...
  • 数据转发过程前言数据转发过程概述TCP...对于网络工程师来说,只有深入地理解了数据在各种不同设备上转发过程,才能够对网络进行正确的分析和检测。 数据转发过程概述 数据包在相同网段内或不同网段之间转发所依据
  • 在开发过程中,结合 Vue 组件化特性,开发通用组件是很基础且重要工作 通用组件必须具备高性能、低耦合特性 为了满足这些特性,开发时候有很多需要注意地方,这里我和大家分享一下我心得     一...
  • 数据转发过程(转)

    千次阅读 2019-06-08 10:25:00
    数据传输过程是一个非常复杂的过程,例如数据在转发的过程中会进行一系列的封装和解封装。 所以网络工程师,深入地了解数据在各种不同设备上转发过程,才能够对网络在进行正确地分析和检测。 ...
  • 数据传输过程是一个非常复杂的过程,例如数据在转发的过程中会进行一系列的封装和解封装。对于网络工程师来说,只有深入地理解了数据在各种不同设备上转发过程,才能够对网络进行正确的分析和检测。 网关:Gateway...
  • 8.HCNA-HNTD——数据转发过程

    千次阅读 2015-02-26 08:59:49
    TCP/IP协议族和底层协议配合,保证了数据能够实现端到端的传输。数据传输过程是一个非常... 掌握数据封装和解封装的过程 2. 处理数据转发过程中的基本故障 数据可以在同一网络内或者不同网络间传输,数据转发过程
  • 在基于微服务架构风格的项目开发过程中,为了提高快速开发的目的,提高开发效率,集成了 MyBatisPlus,对于 MyBatisPlus 封装的 CRUD API 接口已经非常强大了,但是有时还是需要使用其动态 SQL 的拼接,在单个模块...
  • 交换功能的重要责任是将数据包封装成适用于传出数据链路的正确数据帧类型。  交换功能是指路由器在一个接口接收数据包并将其从另一个接口转发出去的过程。交换功能的重要责任是将数据包封装成适用于传出数据链路...
  • 当我们在七层协议最上层,主机A想和其它主机通信, 比如telnet到主机B,各层都为数据打包后再封装上自己能识别的数据标签,现在我们只说四层以下通信过程。1、当一个高层数据包到达传输层,由于telnet使用TCP协议...
  • 路由交换中封装

    2009-09-23 12:00:26
    交换功能的重要责任是将数据包封装成适用于传出数据链路的正确数据帧类型。 对于从一个网络传入,以另一个网络为目的地的数据包,路由器会进行哪些处理?路由器主要执行以下三个步骤: 1. 通过删除第 2 层帧头...
  • 在做数据报表和后台管理系统开发的过程中,经常会遇到对拿到的数据再进行求和以及过滤操作,其实实现它们并不难,只是多个页面都要进行这些操作话,再一点一点去写,好麻烦。当一些代码重复率太高时候,...
  • 封装:将实现细节进行隐藏,将属性私有化,通过公共的方法访问私有的属性,这个过程就是对对象的...给数据进行了过滤,保证数据的正确性  2.增加了代码的重用性  3.将属性进行了私有化,可以保证属性的安全性
  • 详解路由交换中封装机制

    千次阅读 2015-04-24 13:15:55
    交换功能的重要责任是将数据包封装成适用于传出数据链路的正确数据帧类型。 对于从一个网络传入,以另一个网络为目的地的数据包,路由器会进行哪些处理?路由器主要执行以下三个步骤: 1. 通过删除第 2
  • JsonCpp 简易封装 v2.1

    2018-09-12 16:56:23
    JsonCpp 简易封装除了封装基础API调用,还提供C++数据结构转换到json格式一...v2.1在v2代码基础上做了局部优化整理,主要是对于C++数据结构字符串转换到Json格式的过程做了优化,以正确处理超长字符串转换。
  • 路由转发时以太帧的封装机制

    千次阅读 2014-04-26 21:17:05
    交换功能的重要责任是将数据包封装成适用于传出数据链路的正确数据帧类型。 对于从一个网络传入,以另一个网络为目的地的数据包,路由器会进行哪些处理?路由器主要执行以下三个步骤: 1. 通过删除第 2 层...
  • PCB设计过程最重要环节就是“造库” - 根据你要使用元器件的数据手册制作这些器件“库” - 原理图符号库、PCB封装库(3D模型也越来越重要)、元器件信息描述。制作正确的库非常费时费力,尤其是对于那些管脚...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 499
精华内容 199
关键字:

数据封装的正确过程