RAW-socket

一、简介

Internet套接字是大多数操作系统中实现网络通信的方式。它们通常由套接字API提供,并且基于与读取和写入文件相同的原则。程序可以通过操作系统提供的功能获得套接字。然后,该函数返回套接字描述符,通常是一个简单的整数,类似于大多数操作系统提供的用于文件读写操作的描述符。然后,这个套接字描述符可以用于从套接字写入或读取数据。写入套接字的数据通过添加首部和尾部被操作系统封装,然后通过网络接口通过网络将完整的数据包发送到目标主机。从套接字接收到的数据显示给程序,而不带首部和尾部,仅向用户显示用户数据。这样工作的套接字是通过Berkeley套接字API提供的数据报或流套接字。用户不知道底层之间的通信。所有网络通信步骤,例如连接建立,都在用户不知情的情况下进行处理。用户只负责创建套接字,然后提供他希望发送到正确函数的数据:
在这里插入图片描述
用户需要设置的参数是:

  • 源套接字地址(IP地址和端口号的组合)通常可以通过bind()函数设置,也可以直接通过send()函数之一定义。
  • 通过选择DATAGRAM-socket或STREAM-socket,我们可以选择是否要有单独的数据报或字节流。这也会选择正在使用的传输层协议(UDP或TCP)。

如果我们想访问较低层的数据,我们有几种可能:RAW-socket、PACKET-socket、网络驱动程序和数据链路层api。网络驱动程序的编程将在这项工作中不再进一步讨论,因为我们想看看适用于不同操作系统的可移植解决方案。我们将展示的API可以访问的内容如下图2所示:
在这里插入图片描述
通过这些api,应用程序可以更改和访问用于发送数据的网络层的字段。这可能被看作是对传统分层模型的突破,因为我们可以影响较低层提供的服务。

1.1 RAW-sockets

RAW-socket是标准Berkeley套接字和基于它的套接字API的一部分[1]。它们是除了前面提到的DATAGRRAM-socket或STREAM-socket之外的另一个选项,用于使用套接字API创建数据包[1]。除了简单地发送数据和定义地址信息外,RAW-socket还允许用户访问和操作较低层的头和尾信息,更具体地说,是网络层和传输层(OSI模型的第3层和第4层)。由于RAW-socket是Internet套接字API的一部分,因此它们只能用于生成和接收IP数据包。

1.2 //待补充

二、不同系统的实现

首先,我们要简要概述一些可用于RAW-socket和数据链路层网络编程的api和库。一般来说,我们希望将可用的库分为两部分:操作系统提供的api和可用于多个操作系统的独立库。

2.1 Windows

//待补充

2.2 Linux

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Raw Socket(原始套接字)是一种以太网层级别的套接字类型,可以绕过操作系统的网络栈,在数据链路层收发原始数据包。ARP(Address Resolution Protocol,地址解析协议)是TCP/IP协议栈中的一个重要协议,用于将IP地址与MAC地址进行转换。 Raw Socket ARP即通过使用原始套接字来进行ARP协议的操作。利用Raw Socket ARP,我们可以直接发送和接收ARP请求和响应,从而实现对网络上主机的MAC地址解析。 使用Raw Socket ARP有一些优点。首先,我们可以自定义ARP请求和响应报文的内容,灵活控制ARP协议的实现。其次,Raw Socket ARP可以提供更快速的网络响应,因为我们可以选择绕过操作系统的网络栈,直接与底层数据链路层进行交互。此外,我们可以利用Raw Socket ARP来进行网络扫描,定位和识别网络上的主机和设备。 然而,使用Raw Socket ARP也存在一些限制和风险。首先,Raw Socket ARP需要较高的权限,因为它可以绕过操作系统的网络层。这可能会带来安全风险,因此需要严格控制和审查使用Raw Socket ARP的程序和权限。其次,使用Raw Socket ARP可能会影响网络的正常通信。如果使用不当或者频繁发送大量的ARP请求,可能会导致网络拥塞和性能下降。 综上所述,Raw Socket ARP是一种强大的工具,可以用于网络管理和安全性测试,但需要谨慎使用。在使用Raw Socket ARP时,我们应该了解其原理和限制,并确保使用权限和程序的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值