数据包的游走

2024-06-09 13:38
文章标签 数据包 游走

本文主要是介绍数据包的游走,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    数据包在网络的游走: 先从本地的路由开始找起,数据包到达路由时,路由会先对数据包进行解剖,然后通过其目的ip选择其在网络上的最优路径(这也就是所谓的路由功能了)。当其选择了所谓的最优路径之后,数据包同样也会产生相应的变化。一个数据包的结构中目的ip与源ip载整个传输过程中是不会改变的。但是其每当经过一个路由节点时数据包中的源mac与目的mac则会发生改变。打一个比方,我现在本机想google发送一个访问请求时,数据包先发送给本地路由,路由先是做一些基本判断(例如是否在同一个网段,那就不必要在网络上走那些多余的节点了)。判断完成后路由则开始修改数据包了,将数据包中的源mac地址改成路由的mac地址,而目的mac地址则是通过路由所选择的最佳路径(通过路由表)的下一个节点的mac地址。这样一层一层的传递下去,知道访问到最后一个路由。在局域网内,这个数据包停留在路由上,然而接下来的步骤我有点不明白了。路由是直接对数据包解剖 获取其目的ip 然后对局域网发送一个arp请求 ,获取其mac地址,再把将数据包进行修改,最后发送到目的ip用户。

    之前的一段时间看iptables,发现大多数的pc的默认tables都是对tcp,udp,icmp这几个网络层的数据包进行过滤,我开始奇怪,那http等其他协议的数据包为什么不加以过滤。经过网上的资料查找,了解了一下数据包的封装,其流程如图的

举个例子:用户在浏览网页时候应用层先整理数据,然后一层一层往下传递,没经过一层都会在他的包头加东西,直到最后一层物理层,然后发送数据包,而数据包在网络中路由的时候达到某个节点的时候又是逆向上述过程然后就是对数据包中的数据进行分析(就如开始所说的)。然后再往下走,再发送!


个人还太菜,如果错误,望大神指点。

这篇关于数据包的游走的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1045335

相关文章

ChatTCP:一款离线TCP数据包分析macOS APP,致力于让分析TCP数据包像看聊天记录一样简单

ChatTCP是一款离线TCP数据包分析macOS APP,致力于让分析TCP数据包像看聊天记录一样简单!已为UI交互方式申请专利,独家聊天会话方式分析TCP数据包,给你不一样的TCP数据包分析体验! ChatTCP是Easy TCP Analysis的离线版本,离线版本更名为ChatTCP,目前只提供macOS版本。经过一段时间的迭代,目前离线版本功能基本追上在线版本。 当前有哪些功能?

Wireshark 认识捕获的分析数据包(及各个分层协议的介绍)

综述:认识Wireshark捕获数据包 当我们对Wireshark主窗口各部分作用了解了,学会捕获数据了,接下来就该去认识这些捕获的数据包了。Wireshark将从网络中捕获到的二进制数据按照不同的协议包结构规范,显示在Packet Details面板中。为了帮助用户能够清楚的分析数据,本节将介绍识别数据包的方法。 在Wireshark中关于数据包的叫法有三个术语,分别是帧、包、段。下面通过分

Fiddler 抓取Iphone / Android数据包

Fiddler 抓取Iphone / Android数据包 想要Fiddler抓取移动端设备的数据包,其实很简单,先来说说移动设备怎么去访问网络,看了下面这张图,就明白了。 可以看得出,移动端的数据包,都是要走wifi出去,所以我们可以把自己的电脑开启热点,将手机连上电脑,Fiddler开启代理后,让这些数据通过Fiddler,Fiddler就可以抓到这些包,然后发给路由器(如图)

GNN-节点向量(Node Embedding)的表征学习-发展:随机游走/一阶二阶相似度(静态表征)【直接学习出各个节点的向量表示】 -->图卷积(动态表征)【学习节点间聚合函数的参数】

静态表征 基于“随机游走”、“Word2vec”的:DeepWalk、Node2vec、Metapath2vec;基于“一阶相似度”、“二阶相似度”的:LINE、SDNE; 动态表征(GCN、GraphSAGE、GAT)【训练聚合函数的参数】

java转发IP/TCP和IP/UDP数据包

java转发IP/TCP和IP/UDP数据包 程序原理程序代码程序如何安装使用如何搭建服务器如何使用客户端 程序原理 读取头部信息,创建Socket 将IP数据发送给服务器 收到数据加入头部信息返回 程序代码 查看 github 程序如何安装使用 文件说明: build/XiGuaVpn.jar为服务器程序 build/XiGuaVpn.apk为android客户端程序

【使用 Python 的 Scapy 库解析网络数据包的一般步骤】

以下是一个使用 Python 的scapy库捕获网络数据包并保存到本地文件的示例代码: from scapy.all import sniffdef save_packets_to_file(packets):with open('network_packets.txt', 'a') as f:for packet in packets:f.write(str(packet) + '\n')#

SX127X -数据包结构以及数据传输时间

LoRa™ 调制解调器采用隐式和显式两种数据包格式。其中,显式数据包的报头较短,主要包含字节数、编码率及是否在数据包中使用循环冗余 (CRC)等信息,数据包格式见下图。 LoRa™ 的数据包包含以下三个组成部分: 前导码可选报头数据有效负载 1、Preamble 前导码用于保持接收机与输入的数据流同步。。作用是提醒接收芯片,即将发送的是有效信号,注意接收,以免丢失有用信号,当前导码

python使用 pcap 库捕获网络数据包,附示例

以下为您提供使用 Python 的 pcap 库捕获网络数据包的示例及相关信息: 在 Python 中,可以使用 pcap 库来实现网络数据包的捕获。例如: import pcap# 创建 pcap 实例pc = pcap.pcap()# 设置过滤条件,例如捕获 TCP 端口为 80 的数据包pc.setfilter('tcp port 80')# 开始抓包for timestamp,

Python随机生成数据包并计算它们的累计大小,直到达到指定的大小

import randomimport argparse# 缓冲区大小 32MBBUFFER_SIZE_MB = 32BUFFER_SIZE_BYTES = BUFFER_SIZE_MB * 1024 * 1024 # 转换为字节def generate_random_packet_size(min_size, max_size, method):"""根据指定的方法生成随机数