Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!mailrus!wuarchive!zaphod.mps.ohio-state.edu!usc!ucsd!rutgers!bellcore-2!envy!karn From: karn@envy..bellcore.com (Phil Karn) Newsgroups: comp.dcom.lans Subject: Re: How an Ethernet controller knows where is CRC in a frame? Message-ID: <1990Sep3.213044.764@bellcore-2.bellcore.com> Date: 3 Sep 90 21:30:44 GMT References: <65138@yarra.oz.au> Sender: usenet@bellcore-2.bellcore.com (Poster of News) Reply-To: karn@envy.bellcore.com (Phil Karn) Organization: Bell Communications Research, Inc Lines: 16 In article <65138@yarra.oz.au> chris@yarra.oz.au (Chris Jankowski) writes: >How an Ethernet controller knows where is the CRC in the frame? It's fairly straightforward. CRCs are checked at the receiver with a 32-stage shift register with the appropriate feedback. Each bit in the packet is in turn fed into the shift register, and the state of the shift register can be examined in parallel. If the CRC is correct, the shift register will always contain the same value after the last bit of the CRC has been received, regardless of the data in the packet. So you just wait until the receive clock stops (which is how you detect the end of an Ethernet frame) and look at the contents of the shift register. If it contains anything other than the correct residue, you know that there has been a CRC error. Phil