FreshRSS

Zobrazení pro čtení

Jsou dostupné nové články, klikněte pro obnovení stránky.

US lawmakers believe TP-Link networking products come with an 'unusual degree of vulnerabilities' leaving them vulnerable to hackers

Two US Congressmen have called on the Biden administration to launch an investigation over concerns that networking products made by the widely used TP-Link brand could be used to covertly spy on Americans, or be used for cyber attacks.

Republican Representative John Moolenaar and Democratic Representative Raja Krishnamoorthi have formally requested an investigation from the US Department of Commerce citing national security risks. According to a letter posted by the Select Committee on the Chinese Communist Party (via Reuters), "TP-Link’s unusual degree of vulnerabilities and required compliance with PRC law are in and of themselves disconcerting".

TP-Link products are widely used in the US, and can be found inside critical facilities, including US military bases.

Last year, TP-Link routers were used to launch an attack on European foreign affairs organizations. TP-Link firmware was infected with malware, giving attackers the ability to run shell commands, access files and relay communications between devices on the network. TP-Link is not the only manufacturer that can be exploited. Other manufacturers including Cisco and Netgear have also been used to launch attacks from foreign adversaries.

The request for an investigation is just the latest in the US government's actions against Chinese companies, with Huawei and ZTE being forced out of the US market. TikTok is another well known example of a Chinese company facing similar spying concerns.

Most end users are at least somewhat aware of the need to keep devices and PC software updated for security reasons, but there is far less awareness around the potential for router based attacks. I'd place a wager and suggest that a majority of home users have never updated their router's firmware. Now would be a good time to start.

© Future

In Unity/UNet: How do you properly spawn a `NetworkPlayer`?

In Unity/UNet: How do you properly spawn a NetworkPlayer? Right now, I'm doing it like this from inside a NetworkManager derived class:

   public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId) {
        NetworkPlayer newPlayer = Instantiate<NetworkPlayer>(m_NetworkPlayerPrefab);
        DontDestroyOnLoad(newPlayer);
        NetworkServer.AddPlayerForConnection(conn, newPlayer.gameObject, playerControllerId);
   }

This code snippet works pretty well and both clients can communicate with each other. However, there are a few little issues that arise only on the host:

  1. In Unity's hierarchy-view on the host, there are only two NetworkPlayer instances. Shouldn't there be four NetworkPlayer instances on the host? Two client instances and two server instances? If so, do you have any ideas what could cause the missing NetworkPlayer instances?
  2. The two NetworkPlayer instances have both, their isClient and isServer flags set to true. But only one of the has it's isLocalPlayer flag set. Now I wonder if this behavior is as intended? And if so, how do you distinguish between the client and the server instance of a NetworkPlayer?
  3. Two player behavior: If the remote client sends a [Command] that changes a [SyncVar] on the server, then on the host, the [SyncVar]-hook is called only on the NetworkPlayer instance that represents the remote NetworkPlayer. The [SyncVar]-hook is not called on the host's "isLocalPlayer-NetworkPlayer" instance. Shouldn't the [SyncVar]-hook be called on both NetworkPlayer instances?

Any advise is welcome. Thank you!

Realtek Previews Platform for Sub-$100 5GbE Network Switches

One of the more subtle trends at this year's Computex was that the majority of high-end motherboards now come equipped with a 5GbE network controller. At present, this might be considered a limited benefit as 5GbE and 10GbE switches and routers are still pretty expensive. But Realtek is planning on tackling the issue from both ends, as the company is preparing a hardware platform for sub-$100 5GbE switches. 

Realtek’s quad-port 5GbE switch platform consists of five key chips: one RTL9303 switch system-on-chip, and four RTL8251B 5GbE physical interfaces (PHYs). The chips are accompanied by various other components, such as power management ICs, but in general it relies solely on in-house developed components, which is why it can be made so cheap. 

RealTek's platform is meant for home and small offices, which is reflected in the switch's feature set. This is a simple, unmanaged switch with a handful of ports, making it ideal for linking up a few systems, while enterprise users will likely find it a bit too basic.

Segmenting the market like this is ultimately critical for bringing down the price of hardware. The bulk of 5GbE/10GbE switches on the market today are more enterprise-focused managed switches, which carry more features and a price premium to match. So developing a stripped-down platform for cheaper consumer switches is a huge development that should finally make it economical for consumers to adopt faster networking hardware, similar to 2.5GbE a few years ago.

At present, 2.5GbE switches are running at around $20/port, so RealTek's sub-$100 target for a 4-port switch aims to bring 5GbE in at just a slightly higher price tag of $25/port. Or, compared to the handful of unmanaged 10GbE switches on the market, which average $60/port, this will be less than half the price (though at half the bandwidth).

The proliferation of cheap 5GbE network switches will also mark a notable inflection point in Ethernet hardware design, as it's the fastest standard that is rated to work the ubiquitous Cat 5e cable. The NBASE-T standard was penned almost a decade ago in order to cover the missing-middle between 1GbE and 10GbE, while getting more bandwidth out of existing, widely-deployed Cat 5e cabling. So with the release of consumer 5GbE gear, the standard's goals are finally coming to fruition – though it does mean we're finally reaching the end of the road for the oldest network cabling still widely in use.

For now, Realtek is only talking about one customer offering a sub-$100 5GbE switch this September, but something tells me that other partners of the company will come up with similar devices soon enough. As a result of the competition, prices could get even lower, which is always good for buyers.

These benefits should also funnel into Wi-Fi 7 routers, to a limited extent. Wired backhaul speeds need to keep pace with ever-faster Wi-Fi standards in order to keep those newer radios fed, so it's not a coincidence that cheaper 5GbE is finally coming right as Wi-Fi 7 is taking off.

Overall, the company's 5GbE switch platform is part of a larger ecosystem of 5GbE hardware that Realtek was showing off at Computex. In addition to RTL8251B 5GbE PHYs and RTL9303 switch SoC, the company is also preparing their RTL8126 PCIe 3.1 network controller, and RTL8157 NIC for USB dongles.

Tired of slow downloads? Here's how you can upgrade your internet speed.

Od: Asad Khan

No one likes slow internet. Whether you're working on an important project, dealing with work calls, gaming, or watching your favorite movies, bad internet can ruin the whole experience. Now, you could go all out and buy a new Wi-Fi 7 router, get Gigabit internet, and completely overhaul your home network. But let's be real here, that's not always a realistic or affordable option.

How To Deal With Time for Entity Interpolation for Multiplayer Games

I am currently trying to make a simple multiplayer game but had a little bit of trouble implementing client-side entity interpolation for entity movement. For some context, I am aiming to make a server-authoritative entity interpolation system using the method outlined in the famous Source article from Valve: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking (The entity interpolation section)

What I am currently doing is I buffer the packets that I receive from the server and use the bounding states of the time calculated by current_client_time - cl_interp and use the fractional value between the two bounding packet times as the lerp value. However, this is where I face a problem. How do I record the time/timestamp of the packets?

Currently, I am storing and using the client timestamp of the game time I received the packets to compare. However, this led to the problem of the movement looking smooth, yet, slightly "wobbly". This was because although the server sends packet information at a stable rate, the times that the client receives them aren't perfectly stable. This means that there are times when the interval between two packets is short or sometimes longer, leading to a slower or faster interpolation between two states. This was the case even for sending the information through the local host.

I found a post with a similar question on reddit: https://www.reddit.com/r/gamedev/comments/85ndvx/implementation_specifics_for_entity_interpolation/ and the answer suggests using the servers' timestamp instead. However, based on my understanding (please correct me if I am wrong), this would mean that I would have to include the server timestamp in the packet. When I looked up the packet structures for other multiplayer indie games (Terraria, old Minecraft), I noticed that they do not include the timestamp, yet they have relatively smooth movements with no noticeable wobble.

My main question is how do they do it if they do not include the server timestamp included in the packets? Or is there something that I am misunderstanding or is there an alternative approach? If my approach/understanding is wrong, here is some more context of what I want: I don't need client-side prediction as much because I am trying to use a top-down click-to-move system like League of Legends or Starcraft. I just mainly need smooth movement and the latency is less of an issue. I hope someone can point me in the right direction.

I don't know if this will help, but here is the structure of my game. I currently have a separate fixed logic update loop and unfixed loop (mostly for rendering) for the client and a single fixed update loop for the server. The server runs at a rate of 60 ticks per second and periodically sends the positions of moving entities at a stable 20 times per second. The client polls and processes network events at an unfixed rate (though I can easily move this to a fixed one. I'm not sure where to put this but neither really helped with the wobbly behavior). The client's fixed update is also at a rate of 60 ticks per second and an unfixed rate of about 165 times per second (vsync).

Thanks!

Should you buy an extra router for your DIY projects?

If youre putting together a DIY project that needs a network connection, like a NAS or a home media server, plugging into your main network is the end goal, but could cause some problems if youre still experimenting. DIY projects by their very nature can result in a lot of trial and error, and if youve got other members of your home using your home network, they might not think that restarting the router or needing to assign custom IPs to every new device is quite as interesting as you do. For the most part, you won't need another router for DIY projects, but if it involves networking, it's not a bad idea to do your testing on a separate router.

SZBOX G48S is a cheap, fanless mini PC made for networking with Intel N100 and four 2.5 GbE LAN portsrts, and

The SZBOX G48S is a compact computer that looks more like a router than a PC… although the lines between those two product categories are pretty blurry these days. What makes this mode interesting is that it’s a small, affordable, and silent system that pairs an Intel Alder Lake-N processor with support for up to 16GB […]

The post SZBOX G48S is a cheap, fanless mini PC made for networking with Intel N100 and four 2.5 GbE LAN portsrts, and appeared first on Liliputing.

How can I efficiently make a delta snapshot that accounts for entities/components that have been added/removed?

In reference to the snapshot and delta compression approach popularized by Quake 3, but with ECS.

Understand the delta should only contain changes — makes sense.

However, if a snapshot delta no longer contains some component x, how does the client know if it’s because there is no state change or because the server removed the component? Same for entities, an entity may just not have any state change over the last few ticks, or, it may have been destroyed on the server, perhaps it was killed but we missed that state update.

Now, I could:

  1. Encode this into the actual diff as proposed in the comments, e.g. component x from previous snapshot no longer exists in latest snapshot. This of course would not be compatible with how my deltas are currently being auto generated by XORing two snapshots.
  2. Include ALL — in view — entity IDs and component types in a given snapshot delta packet even if the corresponding components are zero'd out (no change). Packet size concerns here as we’re no longer sending ‘only changes’ — e.g. if entity ID is 1 byte, component tag is 1 byte; 100 entities each with 5 networked components is already 600 bytes uncompressed even if the component data is unchanged and zeroed out (such as XOR).
  3. Use a separate command system to relay key entity or component events e.g. entity x destroyed/spawned, etc., but that seems like overkill since it could be handled implicitly via state updates.

Example: P2 -- standing in view of P1 -- goes AFK for a few seconds and so the last x snapshots for P1 didn't contain the P2 entity. P1 doesn't know if P2 is dead and so it’s entity needs destroying, or it's actually just doing nothing. The reverse is also true, i.e. P2 could have been killed and the server destroyed that entity, but P1 missed the state update that indicated the death.

A somewhat related note but please feel free to stop reading: Quake 3 as far as I can see here will include all entities in the snapshot including an indicator if the entity is null (destroyed I assume). In the ECS world where we don’t have one struct representing an entity, but instead have many (components), if the same approach were to be followed for an entity’s components it could lead to a bulky delta — as per my original concern. Whilst not related to my question, diff is also much easier with the single struct approach since it would have many fields and you could simply XOR with a previous version and RLE out the zeros — also doesn’t work for components which would defeat the RLE.

Acknowledgement reliability using UDP

I have a question about UDP. For context, I'm working on a real-time action game.

I've read quite a bit about the differences between UDP and TCP and I feel I understand them quite well, but there's one piece that has never felt correct, and that's reliability, and specifically acknowledgements. I understand that UDP offers no reliability by default (i.e. packets can be dropped or arrive out of order). When some reliability is required, the solution I've seen (which makes sense conceptually) is to use acknowledgements (i.e. the server sends a packet to the client, and when the client receives that message, it sends back an acknowledgement to the server).

What happens when the acknowledgement is dropped?

In the example above (one server sending a packet to one client), the server handles potential packet loss by re-sending packets every frame until acknowledgements are received for those packets. You could still run into issues of bandwidth or out-of-order messages, but purely from a packet-loss perspective, the server is covered.

However, if the client sends an acknowledgement that never arrives, the server would have no choice but to eventually stop sending that message, which could break the game if the information contained in that packet was required. You could take a similar approach to the server (i.e. keep sending acknowledgements until you receive an ack for the ack?), but that approach would have you looping back and forth forever (since you'd need an ack for the ack for the ack and so on).

I feel my basic logic is correct here, which leaves me with two options.

  1. Send a single acknowledgment packet and hope for the best.
  2. Send a handful of acknowledgment packets (maybe 3-4) and hope for the best, assuming that not all of them will be dropped.

Is there an answer to this problem? Am I fundamentally misunderstanding something? Is there some guarantee of using UDP I'm not aware of? I feel hesitant to move forward with too much networking code until I feel comfortable that my logic is sound.

Trouble with NetworkDriver.Create in Unity Networking

I'm encountering an issue while using the NetworkDriver.Create method in Unity Networking and I could use some assistance.

Here's the code snippet where I'm facing the problem:

s_networkDriver = NetworkDriver.Create(new ReliableUtility.Parameters { WindowSize = 32 });

Whenever I run this line, I receive the following error:

error CS0315: The type 'Unity.Networking.Transport.Utilities.ReliableUtility.Parameters' cannot be used as type parameter 'N' in the generic type or method 'NetworkDriver.Create<N>(N)'. There is no boxing conversion from 'Unity.Networking.Transport.Utilities.ReliableUtility.Parameters' to 'Unity.Networking.Transport.INetworkInterface'.

I'm not entirely sure what this error means or how to resolve it. Can someone please provide some guidance on how to properly use NetworkDriver.Create in Unity Networking?

Is this enough calculation on server-side to be secure?

I'm a beginner about client/server calculations and relationships (never trust the client), and I would like to know if I did or didn't get the concept right.

My weapons are calling this function inside their OnTriggerEnter2D:

[Rpc(SendTo.Server, RequireOwnership = false)]
public void TakeDamageServerRpc()
{
    //Calculate damage and stuff


    //then send to Rpc client
    TakeDamageClientRpc(1, RpcTarget.Single(OwnerClientId, RpcTargetUse.Temp));
}

This means the damage calculation (here it just sends 1) is done on the servers; afterwards, I call the function on the corresponding client side which looks like this:

[Rpc(SendTo.SpecifiedInParams)]
private void TakeDamageClientRpc(int damage, RpcParams rpcParams = default)
{
    if (state == STATE.DEAD)
        return;

    if (damage >= 1)
        state = STATE.DEAD;
}

My questions here are :

  1. Is the state variable on the player safe here? (I'd say yes.)
  2. Can the integer damage sent to the client be manipulated? (I'd say no.)
  3. Should TakeDamageServerRpc have an entry variable, can I trust it? (I'd say no.)

Best Wi-Fi router for long range

Without a doubt, coverage and speed are the two most important considerations when choosing a router, but it can be hard to find one with the right balance. While most routers strive for good coverage, some models excel more than others with clever antenna designs and modern technology support like OFDMA and beamforming. If youre willing to go with one of the best mesh systems, you have a lot more options, but if you just want a single router that can do it all, and maybe expand with a mesh later on, youll want something with a bit more power.

How to fix: Router doesn't connect to the internet after a reset

Resetting your router can be a quick way to solve some connectivity issues or to get a fresh start, but if your internet connection doesnt come back on, its very frustrating. Your router is part of a large collection of devices that directs data from your connected devices to the right server online and back again, so there are a lot of things that can prevent your connection from working. If youve reset your router, and it wont connect to the internet, there are some quick fixes you can try.

Wi-Fi Alliance Introduces Wi-Fi CERTIFIED 7: 802.11be Prepares for Draft Standard Exit

The final approval of the 802.11be standard may only be scheduled for December 2024, but that has not put a spanner in the works of the Wi-Fi Alliance in creating a Wi-Fi 7 certification program.

At the 2024 CES, the program was officially announced with products based on silicon from Broadcom, Intel, Mediatek, and Qualcomm obtaining the Wi-Fi CERTIFIED 7 tag. Broadcom, Mediatek, and Qualcomm have already been through two generations of Wi-Fi 7 products, and it is promising to finally see Wi-Fi 7 exit draft status. This enables faster adoption on the client side, as well. The key features of Wi-Fi CERTIFIED 7 are based on the efforts of the IEEE 802.11be EHT (Extremely High Throughput) working group.

The introduction of 6 GHz support in Wi-Fi 6E in select regions opened up channels that were hitherto unavailable for in-home wireless use. Wi-Fi CERTIFIED 7 brings in support for 320 MHz channels. These ultra-wide channels are available only in the 6 GHz band.

These channels are responsible for the high throughput promised in Wi-Fi CERTIFIED 7. However, the non-availability of 6 GHz in many regions has proved to be a deterrent for client device vendors. Many of these companies do not want to spend extra for features that are not available across all geographies. It is likely that many client devices (particularly on the smartphone side) will ship without support for 320 MHz channels initially.

Multi-Link Operation (MLO) is yet another technique to boost available bandwidth for a single client. Wi-Fi CERTIFIED 7 allows clients to connect to the access point through multiple bands at the same time. It also increases the reliability of connections.

Wi-Fi 7 also brings in 4K QAM , allowing up to 12 bits to be encoded per symbol. This represents an increase in spectral efficiency of 20% over Wi-Fi 6 (which only required support for 1024 QAM).

Dense constellations require extremely sophisticated circuitry at both the transmitter (linear power amplifiers) and receiver ends (to avoid symbol decoding without errors). Those are part of the advancements that we can see in Wi-Fi CERTIFIED 7 devices.

Some of the other key updates in Wi-Fi CERTIFIED 7 include support for 512 compressed block acks, multiple resouce units to a single station / client, and triggered uplink access.

802.11n introduced the concept of block acks at the MAC layer where multiple wireless 'frames' (MAC Protocol Data Units or MPDUs to be more exact) can be acknowledged by the receiver in one response. The ack indicates the missed MPDUs, if any, in the previously transmitted set. In Wi-Fi 6, the limit for the number of MPDUs per block ack was 256. In Wi-Fi 7, this has been pushed up to 512. Spreading out this communication allows for better resource usage.

Wi-Fi 6 introduced the concept of resource units in the OFDMA scheme wherein the radio channel gets partitioned into smaller frequency allocations called RUs. These allow small packets to be transmitted to multiple users at the same time. In Wi-Fi 6, each user could get only one RU. Wi-Fi 7 allows for better efficiency by enabling allocation of non-contiguous RUs to a single user.


Benefits of Multiple RU Allocation to a Single User (Source: Mediatek)

Wi-Fi 6 introduced the concept of triggered uplink access, allowing clients to simultaneously transmit data back to the access point in an independent manner. This transmission is synchronized by the AP sending out a trigger frame containing the resource unit allocation information for each client. Wi-Fi 7 optimizes this scheme further for QoS requirements and latency-sensitive streams.

In the meanwhile, the 802.11 working group has already started the ground work for Wi-Fi 8. 802.11bn (ultra-high reliability or UHR) aims to bring more resilience to high-speed Wi-Fi networks by allowing multi-link operation distributed over multiple access points, coordination between multiple access points, and power saving features on the access point side.


Timeline for 802.11bn (EHR): Wi-Fi 8 Deployments in 2027 - 2028? (Source: What Will Wi-Fi 8 Be? A Primer on IEEE 802.11bn Ultra High Reliability [PDF])

The Wi-Fi Alliance expects a wide range of application scenarios for Wi-Fi 7, now that certification is in place.

These include mobile gaming, video conferencing, industrial IoT, automotive, multi-user AR / VR / XR, immersive e-training modules, and other use-cases. Wi-Fi 6 brought in a number of technological advancements to Wi-Fi, and Wi-Fi 7 has added to that. Unfortunately, AR / VR / XR has been trying to break into the mainstream for quite some time, but has met with muted success. It is one of the primary single-client use-cases that can benefit from features like MLO in Wi-Fi 7.

Advancements in spectral efficiency over the last few generations have helped greatly in enterprise deployments. These are scenarios where it is necessary to service a large number of clients with a single access point while maintaining acceptable QoS. User experience in MDUs (multi-dwelling units / apartments) where multiple wireless networks jostle with each other has also improved. That said, vendors are still in search of the ideal single-client scenario to bring out the benefits of Wi-Fi 7 - wireline speeds have largely been stagnant over the last decade, and there are very few ISPs offering gigabit speeds at reasonable prices or over a wide enough area. Both wireline and wireless technologies have to evolve in tandem to bring consumer benefit and pull them in with attractive use-cases. As it currently stands, the pace of progress in Wi-Fi has largely surpassed wired networks over the last couple of decades.

This mini-ITX motherboard has a Ryzen 7 7840HS processor, four 2.5 GbE LAN ports, and up to 9 SATA drives

The Chinese PC makers behind that build-your-own NAS motherboard with an Intel Alder Lake-N processor and a lot of networking and storage options are back, and this time they’re selling a higher-performance model powered by an AMD Ryzen 7 7840HS processor and featuring support for even more storage. The Topton N11 mini-ITX motherboard is available now from AliExpress for […]

The post This mini-ITX motherboard has a Ryzen 7 7840HS processor, four 2.5 GbE LAN ports, and up to 9 SATA drives appeared first on Liliputing.

❌