OSI互联数据包封装与解封装过程
当我们在七层协议最上层,主机A想和其它主机通信, 比如telnet到主机B,各层都为数据打包后再封装上自己能识别的数据标签,现在我们只说四层以下的通信过程。
、当一个高层的数据包到达传输层,由于telnet使用TCP协议,传输层将上层传过来的数据不变再封装TCP的包头以便目标主机可以正确解包,继续向下层(网络层)传递。 、网络层同样不会改变之前的数据包,当然也包括之前封装的任何包头,
首先主机A要对目标主机作判断,他会用自己的IP地址和自己的子网掩码进行与运算结果是172.16.12.,
然后在拿自己的掩码和主机B的IP地址作与运算,假若结果是172.16.12.,这个时候他知道他们在同一网段内,这时他会封装自己的IP及目标的IP地址,同上层传下来的数据一下向下传。
假若是61.152.251.,发现不在同一个网段,注意:这时也是用自己IP和目标IP进行封装,然后向下层传递。
在数据链路层这时就不会封装目的的MAC地址,他也不知道MAC地址是什么,这时他会封装网关的MAC地址,而让网关将数据转发出去。
同时在网关收到数据时候,他会查看目标IP地址,当然不是他自己的IP地址了,所以他知道这个数据包是要由他路由出去的,然后路由器查找自己的路由表,若存在到该网络的路由便按路由表从对应接口发出去,
若路由表中没有到该网络的路由则检查是否存在默认路由,如果没有则丢弃数据包,并向源主机发送网络不可达icmp消息。
若一切正常,路由器会把数据包发给了他的邻居或网络运营商的路由器上去,重复以上动作,在TTL值为0之前将数据传递给某X官方网站,数据传递成功! 、数据链路层其实包括两个子层,一是LLC子层另一个是MAC子层。我们知道在以太网中通信是物理寻址的,在这层中会封装自己的MAC地址及对方的MAC地址。
当然用户是没有通知他MAC地址是多少的,这时主机会查自己的缓存表,看有没有主机B的MAC地址,
如果有就封装,否则他会发一个ARP的地址解析广播包,该包虽然可以向所有处在同一广播域中的主机发送,
但只会传递到不同网络的主机的数据链路层,更确切的说传递到了不同一网络的主机的数据链路层的高层后就被丢弃了。 、接着该数据会从我们的网线等传输介质传出去,主机B当收到数据的时候进行相同的工作但是作相反的操作
OSI互联数据包封装与解封装过程的更多相关文章
- IP数据包格式详解(转)
摘自:http://blog.163.com/hlz_2599/blog/static/1423784742011112195857956/</> TCP/IP协议定义了一个在因特网上传输 ...
- TCP/IP数据包结构详解
一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解网络数据包的结构,以及协议分析.如:网络监控,故障排查等…… IP包是不安全的,但是 ...
- WebSocket数据包协议详解
其实我一直想不明白HTML5包装个应用层办议作为Socket通过基础目的是为了什么,其实直接支持Socket tcp相对来说更加简单灵活.既然标准已经制定而浏览器也支持那对于我们开发者来说只能用的分. ...
- sk_buff封装和解封装网络数据包的过程详解(转载)
http://dog250.blog.51cto.com/2466061/1612791 可以说sk_buff结构体是Linux网络协议栈的核心中的核心,几乎所有的操作都是围绕sk_buff这个结构体 ...
- 计算机网络参考模型,IP地址及MAC地址查看方法,数据包封装过程
分层思想 首先,计算机网络参考模型,是基于分层思想而出现的.分层思想,就是将复杂流程分解为几个功能单一的子过程. 优点: 可以让整个流程更加清晰, 让复杂问题简单化, 更容易发现问题,并真对性的解决问 ...
- GRE封装解封装过程
GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(IPX, AppleTalk, IP,etc.)的数据报文进行封装,使这些被封装的数据报文能够 ...
- FFmpeg(二) 解封装相关函数理解
一.解封装基本流程 ①av_register_All()////初始化解封装,注册解析和封装的格式. ②avformat_netword_init()//初始化网络,解析rtsp协议 ③avforma ...
- CCNA - Part10 数据包的通信过程
这篇文章主要是对数据包在同网段和不同网段的转发流程梳理,使用 ping 命令进行实际抓包测试. 网关的概念: 对于像 PC 等终端设备来说,通过交换机可以实现同网段的通信.但如果想要给其他网段发生数据 ...
- 用Java代码实现拦截区域网数据包
起因: 吃饭的时间在想如果区域网内都是通过路由器上网,那如何实现拦截整个区域网的数据包,从而实现某种窥探欲. 思路: 正常是通过电脑网卡预先设置或分配的IP+网关对路由器进行通讯,比如访问百 ...
随机推荐
- MTK 精简ROM
PhaseBeam.apk--------------------------------------动态壁纸光之韵律(可删) Phone.apk--------------------------- ...
- 【动态规划】数字分组I
[动态规划]数字分组I 时间限制: 1 Sec 内存限制: 64 MB提交: 10 解决: 6[提交][状态][讨论版] 题目描述 给出一堆魔法石的重量,问如何分成两堆,使得它们质量和之差最小,求 ...
- Apache双机热备
部署方案 1.1 方案设计 1.2 方案描述 如上图所示,我们要有三个可用的IP地址(切记不能与网络中其他机器IP重复),针对我使用的三个IP地址做如下说明: 10.16.252.10 //这个IP地 ...
- Floyd算法解说
開始知道Floyd算法是在<大话数据结构>这本书的无向带权图求最短路径看到的, 可是第一次没怎么看懂,所以就不看了,后来又看了两遍还是没明确,我以为是我理解能力有问题 后来从百度百科上看了 ...
- 使用HTML5监测网站性能
在这个信息爆炸的互联网时代,越来越多的人缺少了等待的耐心,网站性能对于一个网站来说越来越重要.以下为监控到的网站打开时间对跳出率的影响: 当网站打开时间在0-1秒时,跳出率为12% 当网站打开时间在1 ...
- 【代码审计】iZhanCMS_v2.1 前台GoodsController.php页面存在SQL注入漏洞分析
0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...
- ActiveX 控件导入程序
ActiveX 控件导入程序将 ActiveX 控件的 COM 类型库中的类型定义转换为 Windows 窗体控件. http://msdn.microsoft.com/zh-cn/library/8 ...
- java.util.concurrent.RejectedExecutionException 线程池饱和
java.util.concurrent.RejectedExecutionException at java.util.concurrent.ThreadPoolExecutor$AbortPoli ...
- firefox 好用的插件
firefox一直是各位渗透测试必备的利器,这里整理了34款Firefox插件和几款Chrome的插件,其中包含渗透测试.信息收集.代理.加密解密等功能. Firefox插件 1:Firebug Fi ...
- Spring Web 应用的最大败笔
开发人员在使用Spring应用是非常擅长谈论依赖注入的好处.不幸的是,他们不是那么真的利用它的好处,如单一职责原则,分离关注原则.如果我们一起来看看大部分Spring的Web应用程序,常见的错误的设计 ...