which is the relationship between ouput adresses and their value in a specific transaction? Some days ago, I write a program to extract output addresses and its value in tx messages of a sample bitcoin pcap.
extracted addresses are all valid and we can find them in block explorers.

after that, just for testing, I send a specific value from one wallet to another wallet and capture all input/output packets during this transfer.

When I test my program with this sample traffic, some addresses and values are generated, one of those addresses was my own address and its value was the same value which I transferred, but some other addresses are generated which are all valid addresses and valid values but I don't know their value.

I guess that these values are UTXOs, but how I can sure about that?
Also, I see same value and same address which i sent in my wallet, in multiple packets with different source and destination IP addresses. for example I send A bitcoin from one wallet to another one, and beside that B bitcoin sent to
When a Bitcoin transaction is created, unspent transaction outputs (UTXOs) are used in the inputs of the transaction. Your wallet will use as many UTXOs (and therefore create as many inputs) as necessary to achieve the value you're trying to send in your transaction.

UTXOs have to be spent completely, so most likely the total value achieved by the sum of the inputs will be greater than the amount you wanted to transfer. There's where change outputs come into play (the additional outputs you're getting). In order to avoid having to send more value than you wanted to the destination address (addr_dst), the difference between the sum of the inputs (vi) and the value to be sent (vo) is sent to a change address (addr_chng), i.e:

vo - fee is sent to addr_dst

vi - vo - fee is sent to addr_chng

That change address is usually owned by you.