Wireshark之网络通信原理(二)

一、数据流经OSI参考模型

        先考虑一个问题:网络数据是如何流经OSI参考模型的各个层次呢?

        在网络上传输的初始数据首先在传输网络的应用层开始,沿着OSI参考模型的七层逐层向下,直到物理层。在物理层上,传输系统将数据发送到接受系统。接受系统从它的物理层获取传输数据,然后向上逐层处理,直到最高的应用层。

        在OSI参考模型任意层次上由不同协议提供的服务并不是多余的。例如,如果某层上的一个网络协议提供了一种服务,那么再没有任何其他层的协议将提供与之完全相同的服务。不同层次的协议可能有目标类似的功能,但它们会以不同的方式来实现。

        发送和接受计算机相同层上的网络协议是相互配合的。例如,发送系统在第7层的某个协议是负责对传输数据进行加密的,那么往往在接受系统的第7层有着相应的网络协议,负责对网咯数据进行解密。

        OSI参考模型中的每一层只能和直接的上层与下层进行通信。例如,第2层只能从第1层与第3层发送和接受数据。



二、数据封装

        A、数据封装原理:

        OSI参考模型不同层次上的协议在数据封装的帮助下进行通信传输。协议栈中的每层协议都负责在传输数据上增加一个协议头部或尾部,其中包含了使协议栈之间能够进行通信的额外信息。例如,当传输层从会话层接受数据时,它会在将数据传递到下一层之前,增加自己的头部信息数据。

        数据封装过程将创建一个协议数据单元(PDU),其中包括正在发送的网络数据,以及所有增加的头部与尾部协议信息。随着网络数据沿着OSI参考模型向下流动,PDU逐渐变化和增长,各层协议均将其头部和尾部信息添加进去,直到物理层时达到其最终的形式,并发送给目标计算机。接受计算机收到PDU后,沿着OSI参考模型往上处理,逐层剥去协议头部和尾部,当PDU达到OSI参考模型的最上层时,将只剩下原始传输数据。


        B、举例:

        假设这样一个情形:我们试着在计算机上浏览http://www.google.com/。在这个过程中,我们首先必须产生一个请求数据包,从客户端计算机传输到目标服务器上。


        我们从客户端计算机的应用层开始,在我们浏览一个网站时,所使用的应用层协议是HTTP,通过此协议发出请求命令,从google.com下载index.html文件。一旦我们的应用层协议已经确定我们要完成的任务,我们现在关心的是数据包如何发送到目的地。数据包中封装的应用层数据将沿着协议栈传递给传输层。HTTP是一个使用TCP(或在TCP协议之上)的应用层协议,因此传输层中将使用TCP协议来确保数据包的可靠投递。所以一个包括序列号和其他数据的TCP协议头部将被创建,并添加到数据包中,以确保数据包能够被正确交付。

        在完成这项工作之后,TCP协议将数据包交付给IP协议,也就是在第3层上负责问数据包进行逻辑寻址的协议。IP协议创建一个包含有逻辑寻址信息的头部,并将数据包传递给数据链路层上的以太网,然后以太网物理地址会被添加并存储在以太网帧头中。现在数据包已经完全封装好,然后传递给物理层,在这里数据包变成0、1信号通过网络完成传输。

        封装好的数据包将穿越网络线缆,最终达到Google的Web服务器。Web服务器开始读取数据包,从下往上,这意味着它首先读取数据链路层,从中提取到所包含的物理以太网寻址信息,确定数据包是否是发往这台服务器的。一旦处理完这些信息,第2层头部与尾部的信息将被剥除,并进入第3层的信息处理过程中。

        读取IP寻址信息的方式和第2层相同,目的是确认数据包被正确转发,以及数据包未进行分片处理。这些数据也同样被剥离,并交到下一层进行处理。

        现在第4层TCP信息被读取,以确保数据包是按序达到的。然后第4层报头信息被剥离,留下的只有应用层数据。这些数据会被传递到Web服务器应用程序。为了响应客户端发过来的这个数据包,服务器应该发回一个TCP确认数据包,使客户端知道它的请求已经被接收,并可以等待获取index.html文件内容了。

        所有数据包都会以这个例子中描述的过程进行创建和处理,而无论使用那种协议。

        但同时,请牢记并非每个网络数据包都是从应用层协议产生的,所以你会进一步看到只包含第2层、第3层或第4层协议信息的数据包








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l357630798

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值