MMCT TEAM
Server IP : 103.53.40.154  /  Your IP : 3.12.34.209
Web Server : Apache
System : Linux md-in-35.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : ppcad7no ( 715)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /../sys/../usr/share/doc/apr-1.4.8/../nethogs-0.8.5/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //../sys/../usr/share/doc/apr-1.4.8/../nethogs-0.8.5/DESIGN
Rough design notes:

decpcap handles pcap. nethogs.cpp asks to be notified of all IPv4 or IPv6
TCP packets.

the IP callbacks store the source and destination addresses into the user
data. The TCP callback makes a Packet out of it, finds the Connection 
corresponding to that packet, and adds the packet to the connection.

If no connection is found, a new one is constructed, and the process
related to that connection is found though getProcess.

If needed, the screen is refreshed.

If, in getProcess, no corresponding process is found, the connection is
added to the 'unknown' process.

To prevent connections from accidentally ending up in the 'unknown' process,
and then staying there indefinitely, we should maybe walk though
the unknownproc's connections whenever the connection-to-inode table is
refreshed.
And maybe, while there are still unknown connections, the connection-to-inode 
table should be updated regularly.


There are some global data structures:
connection.cpp:
  connections. 'ConnList' list containing all currently known connections.
  A connection removes itself from the global 'connections' list in its 
  destructor.

  processes. 'ProcList *' containing all processes.

MMCT - 2023