Hello Sahil,
The graph showing the relationship between the price of a bond and its yield duration with respect to changes in interest rates is non-linear, therefore it is curved. The reasons that lead to the curve are discussed in the article: maturity, coupon, and yield.
Duration, a sibling to convexity, is basically the time weighted average of when you get paid back by owning a bond. Because most bonds pay back principal only at the very end of the bond term, it causes a skewing of duration toward the end of the term. In turn, this skewing causes the curve to bend.
As alluded to immediately above, time causes bending, too. That is because of the time value of money. A rupee received today is much more valuable than one received in the future. The further into the future the payback of the rupee, the lower its value to you today in a normal world of positive interest rates. This makes sense, right? After all, if I borrow a rupee from you today and promise to pay it back in 1,000 years, my promise to pay it back has very little value to you. As the maturity is pushed further into the future this causes a non-linear effect on bond pricing today. Put another way, the 999th year of interest is not really that different to you than the 1,000th year of interest. That's because as you go further in time the value between interest payments diminishes. Compare that 1,000 year bond to getting paid back in two years. In this case, there is a big difference between this year and next year in percentage terms. Two years from today is 100% longer away from you than next year. Consequently, there is a bigger, more linear effect on duration with short maturities.
The next thing to understand is the spread between the stated coupon rate of a bond and the current interest rate. The wider this spread, the more non-linear the effect on price of the bond.
If you have access to a desktop computer, download the spreadsheets associated with this post, and play around with the assumptions so that you can see the effect of changes on convexity.
I hope that this helps,
Jason