In GDP, only income generated in domestic product on is counted.
In GNP, we care about who gets the income. Therefore, we add to GDP all those income go from abroad to domestic agents, and subtract from GDP those from here to foreign agents. (i.e. NFP)
Why do GDP and GNP diverge?
Oil-rich countries often tend to have a higher GNP than GDP due to their investment in foreign countries.
Countries that receive a lot of foreign investment often tend to have lower GNP than GDP due to repatriated profits. e.g. Ireland, and developing countries with large natural resources that are extracted by foreign companies.