NTP is just simple mechanism for computers to check what time it is. Most of home computers are getting the time form a time server (a small but durable computer) connected somewhere to the Internet. Who gets to manage it could make tremendous difference. The best are once provided by governments (example USA). But anybody can set one up and connect to the Internet (World). Works very simple. Lets imagine that a the Internet message is a tennis ball. You write on the ball the time you think it is and throw it to a time server. Server will catch that ball and write the time he thinks he got it. Then throw it back at you writing the time he thinks he throw it. Once you get the ball you write the time you think you got it. Now you have in your hand a ball which can tell you how much off you watch is comparing to the servers clock. Out of that 4 time stamps you can figure out time how long ball was traveling to the server, time of the server, and server internal delay. Here are 4 time stamps in order: T1, T2, T3, T4. T1 and T4 are your stamps and T2, and T3 servers. So entire operation was: t0=T4-T1 long. Server took t1=T3-T2 to answer. Then round trip ball fly time was t0-t1 and one way was (t0-t1)/2. Then the time is server send time T3 plus ball one way fly time (t0-t1)/2. In conclusion: T3+(t0-t1)/2. That was the timewhen you got the ball T4. So adjustment required is: T4 - (T3+(t0-t1)/2). It is amazing how quickly simple things are getting complicated :)
You can obviously can see multiple problems with that coming from real life applications. Some of which was fixed in PTP protocol.
One more word about the Leap Second.