The differences are only relevant on 16 bit [1] intel architectures and stopped being significant about 15 years ago. 
In a nutshell virtual addresses on an Intel x86 chip have two components - a selector and an offset. The selector is an index into a table of base addresses [2] and the offset is added onto that base address. This was designed to let the processor access 20 bit (on a 8086/8, 186), 30 bit (286) or 46 bit (386 and later) virtual address spaces without needing registers that big.
So...
'near' pointers don't have a selector - they have an implied selector. They can access 64k off the virtual address space on a 286 and earlier and 4Gb of the addresss space on a 386 or later.
'far' pointers have an explicit selector. However when you do pointer arithmetic on them the selector isn't modified.
'huge' pointers have an explicit selector. When you do pointer arithmetic on them though the selector can change.
'based' pointers... oh, you didn't ask about them.
Basically ignore this. It's not worth the hassle to learn about unless you're an archaeologist.
Cheers,
Abhi
[1] Okay, modern intel processors have all the old segmented guff still hanging about but the OS tends to set the selectors once and then forget about them.
[2] In real mode there is no table of base addresses, the address is just the selector multipled by 16.