I too am old - seems most of get that way originally…
Monitoring an analog - depends on how many/how often.
You can use main memory - if you only want say 32k
You could use some frams - can store lots quickly.
You could use a sd card - fairly quick and holds lots of data…
If you are capturing slow enough, make a couple of buffers in main memory - say 1k each.
Use the s/w timers to capture the data into a buffer and switch to another buffer when full - have loop send full buffer via TCP/Ip to somewhere else.
So - whilst your questions appear on the surface to be simple (and good questions BTW), there are multiple ways of achieving your aims.
FWIW - here is how I would go.
Start by implimenting the timers (look for timer library). and capture into one of two buffers.
Have a simple print “Buffer X Full” when ever buffer gets full and switch to secondary buffer.
Once this is all working, try to write some dummy code that uses TCP/IP to send some data to another TCP/IP listener.
Once you have this working, merge the two programs together.
I may have some sample code that impliments double buffering (I think it stores to a SD card).