Why does data link layer have sub layer but other layers don't have sub layer.
1 Answer
The concept of "layers" is an aid to thinking about networking, about where network functions are best implemented. It's not a hard-and-fast set of requirements: the ISO and IETF family of protocols even have different notions of how many layers there are, and which functions belong in each layer. The implementation of a modern ethernet controller breaks layering really hard, but the concept of layers is still use in thinking about what that controller is doing. Remember that it is just a "model", an abstract and simplifing description of the real world as an aid to thought.
It's generally held that link layers need a "sublayer" to implement the near-but-not-really-electrical nitty gritty: detecting the start and end of packets, detecting media availability, manipulating the bit arrangements so that DC bias to be held within bounds, detecting and correcting errors, some sorts of encryption. And between this nitty gritty and the link layer proper we often want some signalling channel: the SONET overhead, the Ethernet autonegotiation and OAM. A lot of the determination of if a function is in the link layer or sublayer depends how we implement the feature. So the definition of sublayer functions gets extremely wobbly.
The same is true for other layers as well. Rather than call these "sublayers" they are usually called "x.5" layers. So ATM, MPLS and some tunnels are "Layer 2.5" as they present a link layer service implemented using network-layer services.
Edit: "near-but-not-really-electrical nitty gritty" might be better described as "electrical concerns addressed by the link layer plus computing functions needed to establish the link later, implemented out-of-band".