The 64 byte (Ethernet) minimum limit is based on the fact that - if you follow the standards for cable lengths and number of hops in the Ethernet segment - one node may not "hear" the transmission of another node until the transmitting node has transmitted the 64th byte of data (if the two nodes are far apart from each other, it will take that long for the signal to propogate down the wire(s)).
In CSMA/CD, the transmitting node is listening for collisions while it transmits it's frame. Once it's finished transmitting the final bit without hearing a collision, it presumes the transmission was successful.
If one node were to transmit a very small frame, it could finish the transmission before a remote node heard the first bits. If the remote node starts to transmit it's own frame (because it hasn't heard the transmission of the first node yet), then there will be a collision, but the first node will no longer be listening for collisions because it finished it's transmission.
In Ethernet, we presume that by the time one node has finished transmitting the 64th byte, that all other nodes will have heard the transmission and will wait before trying to transmit their own data., So we don't normally expect collisions to occur after the 64th byte.
As a matter of fact, if you look at a switch and see counters for "collisions" and "late collisions" - the late collissions are collisions that occurred after the 64th byte was transmitted. Usually the only time where you'd expect to see late collisions is when the network is not cabled properly (cable distances are too long or too many hops), or if there's a duplex mismatch between two devices (one is half duplex - listening to the media before transmitting; and the other is full duplex - transmitting it's data at any time).
As for the maximum frame size, I'm not 100% sure, but I believe it was designed to keep any node from monopolizing the network for too long of a period. If a node has to stop transmitting after 1518 bytes (presuming Ethernet), then it gives other nodes a chance to transmit their data. Another consideration on some technologies is that nodes synchronize their send/receive clocks using the flags (aka prefix, starting delimiter, preamble) that are sent at the beginning and sometimes end of each frame. By keeping the frame size relatively small, these synchronization bits are sent/received more often and will help to keep the nodes' clocks synchronized.
I do know that there are Ethernet switches and NICs that support frames larger than 1518 bytes ("jumbo frames") - if you enable them to do so.
沒有留言:
張貼留言