Answer the question
In order to leave comments, you need to log in
How does the network card determine which error correction code to use?
I'm trying to figure out by what principle the codes for detecting and correcting errors on the network card are determined.
Question 1. How does the network card understand which polynomial to use to calculate the CRC checksum?
Question 2. How does the network card understand which error correction code to use?
For example, a network card will receive a message with redundant information that was inserted according to the Hamming type, and it will check according to the principle, say, Viterbi, then nothing will work
(well, if you don’t tell me that the same redundant insertion algorithm is used for all error correction codes information, but only a different implementation of the check).
Question 3: How does the network card distinguish frame formats?
Even the most popular Ethernet format has different types with different notation, so how does a network card distinguish them?
Question 4. On what does the network card execute commands? In C / C ++ or immediately in assembler?
I saw that all examples of error correction codes illustrate work with registers and XOR-type operations, and I thought: under what means does the network card execute commands?
Please answer as detailed as possible)
Answer the question
In order to leave comments, you need to log in
1. There are standards for low level protocols. For ethernet, it's like IEEE_802.3 - both the packet structure and algorithms for working with CRC are described there. The network card is able to work with these packets.
2. 3. 4. https://en.wikipedia.org/wiki/Network_processor Everything is processed by the microcode of the card processor, there is support for standards and the very beginning, when two devices agree with each other on transfer protocols and so on. The physical address is just what the network card knows about even before the operating system.
The network card has a chipset. It also depends on the speed of work. For example, at one time 100Mbit cards were noticeably more expensive than 10Mbit ones precisely because of the more expensive chipset that would have time to process packets. And server cards took on a lot of useful things before the information went to the tcp driver for the main processor.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question