A method for transmitting data upstream from a plurality of customer premises equipment cable data modems (hereafter RUs or remote units), each RU coupled to one or more sources of data, said RUs coupled to a head end cable data modem (hereafter CU) over a transmission media, said CU being coupled to a router and a wide area network, said upstream data transmission accomplished using an ATM protocol and synchronous code division multiple access (hereafter SCDMA), comprising:
- at each RU:
- receiving a plurality of LAN packets from said one or more sources;
- adding predetermined LAN packet identifier bits identifying the packet as a LAN packet to the front of each said LAN packet;
- adding a sufficient number of pad bits to each LAN packet prior to calculation of a predetermined number of CRC bits so as to make the total number of bits in said packet, counting said predetermined LAN packet identifier bits added to the front of each packet, the LAN packet itself, said CRC bits and said pad bits, equal to an integer number of cells, each cell comprised of 48 8-bit bytes, and inserting said pad bits into each said LAN packet just preceding said CRC bits to turn each LAN packet into an AAL5 sequence packet;
- computing CRC bits on each LAN packet including said predetermined LAN packet identifier bits, said LAN packet and said pad bits, and appending said CRC bits to the end of each said LAN packet after said pad bits;
- segmenting each AAL5 sequence packet into one or more optimized upstream ATM cell payloads, each said payload comprising 48 8-bit bytes;
- adding a 9th bit to each of said 48 8-bit bytes in each ATM cell payload to generate a plurality of optimized upstream ATM cells, and encoding a first predetermined plurality of 9th bits of each optimized upstream ATM cell with data which defines whether the cell is a normal cell, an idle cell for which the payload may be discarded or is the last cell in the AAL5 sequence packet, and encoding a second predetermined plurality of said 9th bits with a unique start code by which the start of each optimized upstream ATM cell can be determined, and receiving code assignment information for a frame in a virtual link assigned to said RU, said virtual link established using one or more SCDMA spreading codes assigned to encoding data to be transmitted between said RU and said CU over the transmission media coupling said RU to said CU, said code assignment information defining the SCDMA spreading codes assigned to said RU for transmission of data during said frame;
- receiving said optimized upstream ATM cells, and parsing each optimized upstream ATM cell into smaller groups of sequential 9-bit bytes, one said smaller group per frame, the number of 9-bit bytes in each group being equal in number to the number of SCDMA spreading codes assigned to said RU's virtual link for the frame corresponding to said group;
- transmitting each said group of sequential 9-bit bytes to said CU using a synchronous code division multiple access (hereafter SCDMA) transmitter in said RU by spreading the spectrum thereof using spreading codes assigned to said RU's virtual link for said frame to generate spread spectrum data, and modulating said spread spectrum data onto one or more carriers and transmitting the resulting modulated carrier(s) to said CU;
- and, at the CU:
- receiving the modulated carrier(s) and recovering the 9-bit bytes that were sent by said RU and sending each 9-bit byte to a formatting process along with information indicating from which RU each said 9-bit byte was transmitted, and using said recovered 9-bit bytes to reconstruct said optimized upstream ATM cells comprised of 48 9-bit bytes transmitted from said RU by determining from said second plurality of 9th bits with which of said collected 9-bit bytes the 48 9-bit byte optimized upstream ATM cell starts and then, starting from that byte, concatenating 48 9-bit bytes from the collected 9-bit bytes in the same sequence in which they were sent by said RU to said SCDMA transmitter in said RU and repeating this process for all 48 9-bit byte optimized upstream ATM cells sent by said RU;
- and
- using information identifying the virtual link in which each ATM cell was transmitted to construct predetermined fields of a standard 5 byte ATM cell header, and using the virtual link information and the information encoded into said first plurality of 9th bits to reconstruct a standard 5 byte ATM cell header for each optimized 48 9-bit bytes upstream ATM cell so as to generate a plurality of 53 byte upstream ATM cells;
- stripping off said 9th bits of each said 53 byte upstream ATM cell to generate standard 53 8-bit byte ATM cells, and transmitting said standard 53 8-bit byte ATM cells to a SAR process;
- in said router coupled to said CU:
- reconstructing AAL5 sequence packets by locating the packet boundaries by locating the 53 8-bit byte ATM cell which contains said predetermined LAN packet identifier bits and the 53 8-bit byte ATM cell indicated by a PTI field in the header thereof to be the last ATM cell into which said AAL5 sequence packet was parsed at said RU, and reconstructing said AAL5 sequence packet using these two ATM cells as the first and last groups of bytes in said AAL5 sequence packet after stripping off the 5 bytes of header information in each cell and using the sequence of all the 53 8-bit byte ATM cells between these first and last cells, minus the 5 byte header information of middle cells falling between said first and last cells, to comprise the middle portion of said packet;
- using CRC bits in said AAL5 sequence packet to error check said packet and, if there are no errors, stripping off said predetermined LAN packet identifier bits, said CRC bits and said pad bits to leave a packet with a LAN header, an IP header and a payload, and transmitting said packet to a routing process.