TCP/IP系列之網(wǎng)絡層IP協(xié)議
當數(shù)據(jù)要在網(wǎng)際直接傳輸?shù)臅r候,路由器根據(jù)IP數(shù)據(jù)報進行路由.
當一臺主機要發(fā)送數(shù)據(jù)的時候,其目的主機一般為局域網(wǎng)內的主機或者網(wǎng)外的主機.
如果是局域網(wǎng)內的主機,主機發(fā)送的以太網(wǎng)幀的頭部目的mac地址為目的主機的mac地址,不需要路由.
如果是網(wǎng)外的主機,則將數(shù)據(jù)發(fā)到默認的網(wǎng)關,由網(wǎng)關路由器進行路由到目的主機,主機發(fā)送的以太網(wǎng)幀
頭部的目的mac地址為網(wǎng)關的mac地址.
IP數(shù)據(jù)報的協(xié)議規(guī)定的數(shù)據(jù)報格式如下圖:
IP協(xié)議不保證送達,不保證順序.可靠性由上層協(xié)議保證.上層協(xié)議如TCP,UDP的信息在IP數(shù)據(jù)報的數(shù)據(jù)部分.
下圖是通過Wireshark抓取的一個數(shù)據(jù)包:
路由器就要通過ip包的信息來為ip包尋找到一個合適的目標來進行傳遞,比如合適的主機,或者合適的路由.路由器或者主機將會用如下的方式來處理某一個IP數(shù)據(jù)包
如果IP數(shù)據(jù)包的TTL(生命周期)以到,則該IP數(shù)據(jù)包就被拋棄.
搜索路由表,優(yōu)先搜索匹配主機,如果能找到和IP地址完全一致的目標主機,則將該包發(fā)向目標主機 搜索路由表,如果匹配主機失敗,則匹配同子網(wǎng)的路由器,這需要“子網(wǎng)掩碼(1.3.)”的協(xié)助.
如果找到路由器,則將該包發(fā)向路由器. 搜索路由表,如果匹配同子網(wǎng)路由器失敗,則匹配同網(wǎng)號路由器,如果找到路由器,則將該包發(fā)向路由器.
搜索路由表,如果以上都失敗了,就搜索默認路由,如果默認路由存在,則發(fā)包
如果都失敗了,就丟掉這個包.
作者 kkdelta