In IoT, alternatives to cloud computing architecture exist which perform parts of computation in lower layers. Edge computing and fog computing are among these alternatives.
What are the differences between edge computing and fog computing?
Marketing, it's mainly just marketing...
There is one possible interpretation that has fog computing being more of a distributed system in that nodes on the edge of the network share information laterally between themselves vs edge computing which does data aggregation and reduction before forwarding on to a central point.
... but it really is just marketing
I would second that, they are both Embedded Systems / network architectures rather than much else. These solutions have been in use for many, many years in the embedded and distributed systems industries. The new terms of IoT, Edge, Fog, etc all really dress technical architectures for mass market hysteria. The critical thing is to determine if your processing needs to be done at the sensor interface, Edge; or whether it can be done at the server level. This saves power, but reduces capability. Fog is really how the sensors interact, are they mesh network, or star, or ... other. All long used and long documented approaches, given new short pithy names. ;)