• 0 Posts
  • 168 Comments
Joined 5 months ago
cake
Cake day: December 6th, 2024

help-circle
  • Look, I’m extrapolating from the general rule to the specific case of torrenting.

    The general rule is that, because the IP protocol requires numerical addresses to connect to a remote machine, if what you have is a site name you have to translate that name into a numerical address before you can actually establish a connection, and a DNS query is how you translate site names into their numerical IP addresses.

    Now, if you look at the contents of a tracker, what you see are not numerical addresses but site names, so those must be translated into numerical addresses before your client can connect to those trackers, hence DNS queries are done to do that translation.

    Meanwhile, if you look at the “peers” section in an active torrent in your torrenting program, you see that they all have numerical IP addresses, not site names. This makes sense for two reasons:

    • Most of those machines are user machines, and usually users don’t just buy a domain to have site names for the machines they used only as clients (i.e. browsing, torrenting and so on) since that is not at all needed. Site names are required for machines which serve stuff (literally, “server machines”, such as machines hosting websites) to arbitrary clients that by their own initiative connect to that machine - they’re meant as a human readable memorable alias for the numerical IP address of a machine, which people can enter in appropriate fields of client applications to connect to that site (i.e. putting “lemmy.dbzer0.com” in your browser rather than having to remember that its IP address is “51.77.203.116”)
    • As I said, IP connections require IP numerical addresses to be established. For performance reasons it makes sense that in the torrent protocol the information exchanged about peers and between peers is always and only the machine’s numerical IP address since with those there is no need to do the additional step which is the DNS query before they can be used by the networking layer to open TCP/IP or UDP/IP connections to those peers.

    Hence my conclusion is that the torrenting protocol itself will only deal with site names (which require DNS queries before network connections can be made to them) for the entrance into the protocol (i.e. start up and connect to trackers) and then deal with everything else using numerical IP addresses only, both because almost no peer will actually have a site name and because it’s low performance and doesn’t make sense to get site names from peers and have to resolve those into numerical addresses when then peer itself already knows its numerical address and can directly provide it. Certainly that’s how I would design it.

    Now, since I didn’t actually read the protocol or logged the network connections in a machine torrenting to see what’s going one, I’m not absolutely certain there are now DNS queries at all after the initial resolution of the trackers of a torrent. I am however confident that it is so because that makes sense from a programming point of view.


  • Well, if the trackers are specified as names (and a quick peek at some random torrent shows that most if not all all), those do have to be resolved to IP adresses and if that DNS query is happening outside the VPN then your ISP as well as the DNS server being queried can see you’re interest in those names (and it wouldn’t be hard to determine with a high probability that you are indeed torrenting something, though WHAT you are torrenting can’t really be determined by you merely accessing certain servers which have torrent trackers active, unless a specific server only tracks a single torrent, which would be pretty weird).

    Things like peers aren’t DNS resolved since they already come as IP adresses.

    So when it comes to torrenting as far as I know all that the DNS can leak is the information that you ARE torrenting but not specifically WHAT you are torrenting.

    It’s more in things were you’re constantly doing DNS queries, such as browsing, that DNS leaking can endanger you privacy: if for example somebody is going to “hotsheepbestialityporn.com”, somebody at their ISP could determine that person’s very specific sexual tastes from seeing the DNS queries for hotsheepbestialityporn.com coming in the open from their connection.


  • It might be a DNS problem.

    I vaguely remember that Mullvad has a setting to make sure that DNS queries go via the VPN but maybe that’s not enabled in your environment?!

    Another possibility is that Mullvad going down and then back up along with your physical connection when your ISP forces a renewal of the DHCP is somehow crapping up the DNS client on your side.

    If you have the numerical IP address of a site, you can try and access the site by name in your browser when you have problems in the morning and then try it by nunerical IP address - if it doesn’t work by name but it does by numerical IP it’s probably a DNS issue.

    PS: you can just run the “ping” command from the command line to see if your machinr can reach a remote machine (i.e. “ping lemmy.dbzer0.com”) and don’t need to use a browser (in fact for checking if you can reach machines without a webserver, the browser won’t work but the ping command will).


  • Even if Mullvad did erroneously allow applications to access your physical network connection for a moment, because you bound qbittorrent explicitly to the network device of the Mullvad VPN, qbittorrent will never use the physical connection.

    You can check this out easily by disconnecting Mullvad and trying to torrent something on qbittorrent and also browsing the Net: you’ll notice the browser gets through just fine but qbittorrent will not.

    Mullvad leaking would be a problem if what you’re worried about is loss of privacy or government surveillance, not for torrenting if your torrent server is correctly bound to the VPN device.



  • Well, this being the Internet it’s natural to expect less than impeccable truth from strangers here, both because a lot of people just want to feel like they “won” the argument no matter what so they’ll bullshit their way into a “win”, because most people aren’t really trained in the “trying to be as completed and clear as possible” mental processes as Engineers and Scientists (so there’s a lot of “I think this might be such” being passed as “it is such”) and because it simply feels bad to be wrong so most people don’t want to accept it when somebody else proves them wrong and react badly to it.

    I’m actually a trained Electronics Engineer but since I don’t actually work in that domain and studied it decades ago, some of what I wrote are informed extrapolations based on what learned and stuff I read over the years rather than me being absolutely certain that’s how things are done nowadays (which is why looking up and reading that Intel spec was very interesting, even if it turned out things are mainly is as I expected).

    Also I’m sorry for triggering you, you don’t need to say sorry for your reaction and I didn’t really took it badly: as I said, this is the Internet and a lot of people are argumentative for the sake of “winning” (probably the same motivation as most gaslighters) so I expect everybody to be suspicious of my motivations, same as they would be for all other people since from their point of view I’m just another random stranger ;)

    Anyways, cheers for taking the trouble of explaining it and making sure I was okay with out interaction - that’s far nicer and more considerate than most random internet strangers.



  • Well, I wasn’t sure if you meant that I did say that or if you just wanted an explanation, so I both clarified what I said and I gave an explanation to cover both possibilities :)

    I think the person I was replying to just got confused when they wrote “integrated memory” since as I explained when main memory is “integrated” in systems like these, that just means it’s soldered on the motherboard, something which really makes no difference in terms of architecture.

    There are processing units with integrated memory (pretty much all microcontrollers), which in means they come with their own RAM (generally both Flash Ram and SRAM) in the same integrated circuit package or even the same die, but that’s at the very opposite end of processing power of a PC or PS5 and the memory amounts involved tend to be very small (a few MB or less).

    As for the “integrated graphics” bit, that’s actually the part that matters when it comes to performance of systems with dedicate CPU and GPU memory vs systems with shared memory (integrated in the motherboard or otherwise, since being soldered on the motherboard or coming as modules doesn’t really change the limitations of each architecture) which is what I was talking about back in the original post.


  • Hah, now you made me look that stuff up since I was talking anchored on my knowledge of systems with multiple CPUs and shared memory, since that was my expectation about the style of system architecture of the PS5, since in the past that’s how they did things.

    So, for starters I never mentioned “integrated memory”, I wrote “integrated graphics”, i.e. the CPU chip comes together with a GPU, either as two dies in the same chip package or even both on the same die.

    I think that when people talk about “integrated memory” what they mean is main memory which is soldered on the motherboard rather than coming as discrete memory modules. From the point of view of systems architecture it makes no difference, however from the point of view of electronics, soldered memory can be made to run faster because soldered connections are much closer to perfect than the mechanical contact connections you have for memory modules inserted in slots.

    (Quick explanation: at very high clock frequencies the electronics side starts to behave in funny ways as the frequency of the signal travelling on the circuit board gets so high and hence the wavelength size gets so small that it’s down to centimeters or even milimeters - around the scale of the length of circuit board lines - and you start getting effects like signal reflections and interference between circuit lines - because they’re working as mini antennas so can induce effects on nearby lines - hence it’s all a lot more messy than if the thing was just running at a few MHz. Wave reflections can happen in connections which aren’t perfect, such as the mechanical contact of memory modules inserted into slots, so at higher clock speeds the signal integrity of the data travelling to and from the memory is worse than it is with soldered memory whose connections are much closer to perfect).

    As far as I know nowadays L1, L2 and L3 caches are always part of the CPU/GPU die, though I vaguelly remember that in the old days (80s, 90s) memory cache might be in the form of dedicated SRAM modules on the motherboard.

    As for integrated graphics, here’s some reference for an Intel SoC (system on a chip, in this case with the CPU and GPU together in the same die). If you look at page 5 you can see a nice architecture diagram. Notice how memory access goes via the memory controller (lower right, inside the System Agent block) and then the SoC Ring Interconnect which is an internal bus connecting everything to everything (so quite a lot of data channels). The GPU implementation is the whole left side, the CPU is top and there is a cache slice (at first sight an L4 cache) at the bottom shared by both.

    As you see there, in integrated graphics the memory access doesn’t go via the CPU, rather there is a memory controller (and in this example a memory cache) for both and memory access for both the CPU and the GPU cores goes through that single controller and shares that cache (but lower level caches are not shared: notice how the GPU implementation contains its own L3 cache - bottom left, labelled “L3$”)

    With regards to the cache dirty problems I mentioned in the previous post, at least that higher level (L4) cache is shared so instead of cache entries being made invalid because of the main memory being changed outside of it, what you get is a different performance problem were there is competiton for cache usage between the areas of memory used by the CPU and areas of memory used by the GPU (as the cache is much smaller than the actual main memory, it can only contain copies of part of the main memory, and if two devices are using different areas of the main memory they’re both causing those areas to get cached but the cache can’t fit both so depending on the usage pattern it might constantly be ejecting entries for one area of memory to make room for entries for the other area of memory and back, which in practice makes it as slow as not having any cache there - there are lots of tricks to make this less of a problem but it’s still slower than if there was just one processing device using that cache such as you get with each processing device having its own cache and its own memory).

    As for contention problems, there are generally way more data channels in an internal interconnect as the one you see there than in the data bus to the main memory modules, plus that internal interconnect will be way faster, so the contention in memory access will be lower for cached memory but with cache misses (memory locations not in cache and hence that have to be loaded from main memory) that architecture will still suffer from two devices sharing the main memory hence that memory’s data channels having to be shared.


  • When two processing devices try and access the same memory there are contention problems as the memory cannot be accessed by two devices at the same time (well, sorta: parallel reads are fine, it’s when one side is writing that there can be problems), so one of the devices has to wait, so it’s slower than dedicated memory but the slowness is not constant since it depends on the memory access patterns of both devices.

    There are ways to improve this: for example, if you have multiple channels on the same memory module then contention issues are reduced to the same memory block, which depends on the block-size, though this also means that parallel processing on the same device - i.e. multiple cores - cannot use the channels being used by a different device so it’s slower.

    There are also additional problems with things like memory caches in the CPU and GPU - if an area of memory cached in one device is altered by a different device that has to be detected and the cache entry removed or marked as dirty. Again, this reduces performance versus situations where there aren’t multiple processing devices sharing memory.

    In practice the performance impact is highly dependent on if an how the memory is partitioned between the devices, as well as by the amount of parallelism in both processing devices (this latter because of my point from above that memory modules have a limited number of memory channels so multiple parallel accesses to the same memory module from both devices can lead to stalls in cores of one or both devices since not enough channels are available for both).

    As for the examples you gave, they’re not exactly great:

    • First, when loading models into the GPU memory, even with SSDs the disk read is by far the slowest part and hence the bottleneck, so as long as things are being done in parallel (i.e. whilst the data is loaded from disk to CPU memory, already loaded data is also being copied from CPU memory to GPU memory) you won’t see that much difference between loading to CPU memory and then from there to GPU memory and direct loading to GPU memory. Further, the manipulation of models in shared memory by the CPU introduces the very performance problems I was explaining above, namely contention problems from both devices accessing the same memory blocks and GPU cache entries getting invalidated because the CPU altered that data in the main memory.
    • Second, if I’m not mistaken tone mapping is highly parallelizable (as pixels are independent - I think, but not sure since I haven’t actually implemented this kind of post processing), which means that the best by far device at parallel processing - the GPU - should be handling it in a shader, not the CPU. (Mind you, I might be wrong in this specific case if the algorithm is not highly parallelizable. My own experience with doing things via CPU or via shaders running in the GPU - be it image shaders or compute shaders - is that in highly parallelizable stuff, a shader in the GPU is way, way faster than an algorithm running in the CPU).

    I don’t think that direct access by the CPU to manipulate GPU data is at all a good thing (by the reasons given on top) and to get proper performance out of a shared memory setup at the very least the programming must done in a special way that tries to reduce collisions in memory access, or the whole thing must be setup by the OS like it’s done on PCs with integrated graphics, were a part of the main memory is reserved for the GPU by the OS itself when it starts and the CPU won’t touch that memory after that.



  • Just to add to this, the reason you only see shared memory setups on PCs with integrated graphics is because it lowers performance compared to dedicated memory, which is less of a problem if your GPU is only being used in 2D mode such as when doing office work (mainly because that uses little memory), but more of a problem when used in 3D mode (such as in most modern games) which is as the PS5 is meant to be used most of the time.

    So the PS5 having shared memory is not a good thing and actually makes it inferior compared to a PC made with a GPU and CPU of similar processing power using the dominant gaming PC architecture (separate memory).




  • Gzip encoding has been part of the HTTP protocol for a long time and every server-side HTTP library out there supports it, and phishing/scrapper bots will be done with server-side libraries, not using browser engines.

    Further, judging by the guy’s example in his article he’s not using gzip with maximum compression when generating the zip bomb files: he needs to add -9 to the gzip command line to get the best compression (but it will be slower). (I tested this and it made no difference at all).


  • Aceticon@lemmy.dbzer0.comtoPrivacy@lemmy.ml"You need to try Linux"
    link
    fedilink
    English
    arrow-up
    43
    ·
    edit-2
    11 days ago

    One should be have been assuming since Windows 7 and automated online updates that the Microsoft key used to sign OS updates is in the hands of at least the NSA (and hence probably the Israeli equivalent) and they can push whatever they want to your computer as an OS update, bypassing all protections.

    In fact the same applies to Linux updates of certain distros - if they’re maintained by a company based in the US they can be forced by FISA courts to provide the signing keys to the US Government.

    More in general, just go read about FISA courts and their secret court orders - companies based in the US or hosting things in the US can be secretly forced to just “give the keys of the Realm” to parts of the US Government.

    Since things like the Patriot act one should be treating companies based in the US as just as untrustworthy as companies based in China.

    (By the way, some other supposed Democratic countries have similar or worse systems - for example the equivalent of FISA courts in the UK have things like secret court sessions were the side which is not the State is not authorized to have a legal representation, see most of the evidence or even know the decision of the court).

    Have people already forgot most of what came out in the Snowden Revelations?!


  • From my own impression as a member of a small political party in my own country who joined not out of tribalism but simply because they seemed to mostly want the same things as I do, party members live in a bubble of people who are heavilly into politics and understand the importance of politics, whilst the leadership specifically in addition to this are also mostly surrounded by generally unquestioningly hero worship from the common party members plus they tend to have quite limited life experience outside the party as they’ve joined it as young adults (maybe when they were at university and involved in student movements) and it and its internal environment have always been a large part of their lives.

    Those people usually see the supporters of their political adversaries in the same way as fans of a sports club see fans of other clubs, and don’t really “get” the point of view of people who don’t vote at all.


  • I think people are mainly driver by the tabu against eating human meat rather than any kind of proper thinking about it, but the tabu itself probably came to be because people kept getting sick when they ate human meat but not when they ate other meats.

    You see a lot of that kind of thing in other tabus, for example the ones against incest (inbreeding tends to produce offspring with health problems) or handling feces (because the bacteria in feces tend to cause disease much more than the bacteria in things like dirt).