子进程物理内存空间公平预留


目录

实验环境

  • Ubuntu 21.04
  • python3

实验目的

  • 实现客户端多子进程发送数据包至同一个服务器
  • 为客户端每个子进程预留同样的物理内存空间

成果

  • 客户端
import multiprocessing
import psutil
import os
import resource
from scapy.all import *
def pkt_send(i):
  os.system("prlimit --pid %s --rss=10" %os.getpid())
  os.system("sudo renice -5 -p %s "%(os.getpid()))
  os.system("ps -l -p %s"%os.getpid())
  print("----in 主进程 pid=%d---父进程pid=%d----" % (os.getpid(), os.getppid()))
  p=Ether()/IP(dst="192.168.0.3", src="192.168.0.2")/TCP(sport=5000,dport=80)/"Payload"
  sendp(p,iface='ens33')
  print("This is process",i)
if __name__ == '__main__':
    process_list = []
    for i in range(3):
        p = multiprocessing.Process(target=pkt_send,args=(i,))
        p.start()
        process_list.append(p.pid)
    for i in process_list:
        os.system("prlimit --pid %s --rss" %i)
  • 服务器
from scapy.all import *
import pprint
def packet_callback(packet):
    pprint.pprint(packet)
sniff(filter="ip src 192.168.0.2 and tcp and tcp port 80",prn=packet_callback, count=0)

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/275547.html

(0)
上一篇 2022年7月20日
下一篇 2022年7月20日

相关推荐

发表回复

登录后才能评论