A software upgrading method for a distributed communication device, applied to a software upgrading system for the distributed communication device that comprises an active main control unit, a standby main control unit and a line card, the method comprising: notifying, by the active main control unit, the standby main control unit to launch a new version of a software and run said new version of the software in a standby state, and performing data and data state recovery on said new version of the software on the standby main control unit through an old version of the software on the active main control unit; performing active/standby state inversion between the active main control unit and the standby main control unit, wherein the active/standby state inversion is performed such that the active main control unit being inverted to a current standby main control unit and the standby main control unit being inverted to a current active main control unit; launching, by the line card, a new version of a software of a control plane and of a management plane and running said new version of the software in a standby state, and performing data and data state recovery on said new version of the software on the line card through a current active main control unit, or performing data and data state recovery on said new version of the software on the line card through an old version of the software of the control plane and of the management plane on the line card; cancelling, by the line card, said old version of the software of the control plane and of the management plane, and running said new version of the software of the control plane and of the management plane in an active state; and refreshing, by the line card, data of and a data state of a software of a forwarding plane. notifying, by the active main control unit, the standby main control unit to launch a new version of a software and run said new version of the software in a standby state, and performing data and data state recovery on said new version of the software on the standby main control unit through an old version of the software on the active main control unit; performing active/standby state inversion between the active main control unit and the standby main control unit, wherein the active/standby state inversion is performed such that the active main control unit being inverted to a current standby main control unit and the standby main control unit being inverted to a current active main control unit; launching, by the line card, a new version of a software of a control plane and of a management plane and running said new version of the software in a standby state, and performing data and data state recovery on said new version of the software on the line card through a current active main control unit, or performing data and data state recovery on said new version of the software on the line card through an old version of the software of the control plane and of the management plane on the line card; cancelling, by the line card, said old version of the software of the control plane and of the management plane, and running said new version of the software of the control plane and of the management plane in an active state; and refreshing, by the line card, data of and a data state of a software of a forwarding plane.