學(xué)習(xí)筆記:網(wǎng)絡(luò)協(xié)議之IP協(xié)議

本文僅供學(xué)習(xí)交流使用,侵權(quán)必刪臼节。
不作商業(yè)用途撬陵,轉(zhuǎn)載請(qǐng)注明出處

IP地址,又稱網(wǎng)際協(xié)議地址网缝,由32位組成巨税。IP地址是IP協(xié)議提供的一種統(tǒng)一的地址格式,為網(wǎng)絡(luò)世界中的每一個(gè)網(wǎng)絡(luò)和每一臺(tái)主機(jī)分配一個(gè)邏輯地址粉臊,以此來屏蔽物理地址的差異草添。

IP報(bào)文頭

IP報(bào)文頭
  • Version(版本):4位,定義IP協(xié)議版本扼仲。是使用IPv4還是IPv6远寸。兩臺(tái)機(jī)器必須使用一致的版本號(hào),否則無法建立通信
  • Hdr Len(頭部長度):4位屠凶,定義數(shù)據(jù)報(bào)文頭的長度驰后。協(xié)議頭最小值為5,最大值為15
  • Type of Service(服務(wù)):8位阅畴,該字段定義上層協(xié)議對(duì)處理當(dāng)前數(shù)據(jù)報(bào)所期望的服務(wù)質(zhì)量倡怎,并對(duì)數(shù)據(jù)報(bào)按照重要性級(jí)別進(jìn)行分配。前3位成為優(yōu)先位贱枣,后面4位成為服務(wù)類型监署,最后1位沒有定義。這些8位字段用于分配優(yōu)先級(jí)纽哥、延遲钠乏、吞吐量以及可靠性
  • Identification(標(biāo)識(shí)):表示當(dāng)前是第幾個(gè)分片,數(shù)據(jù)報(bào)文重組時(shí)用到
  • Flag(標(biāo)記):3位春塌,該字段由3位字段構(gòu)成晓避,其中最低位(MF)控制分段簇捍,存在下一個(gè)分段置為1,否則置0代表該分段是最后一個(gè)分段俏拱。中間位(DF)指出數(shù)據(jù)報(bào)是否可進(jìn)行分段暑塑,如果為1則機(jī)器不能將該數(shù)據(jù)報(bào)進(jìn)行分段。第三位即最高位保留不使用锅必,值為0
  • Fragment Offset(分段偏移):13位事格,表示分段數(shù)據(jù)在源數(shù)據(jù)報(bào)文中的相對(duì)位置,
  • TTL(生存時(shí)間):8位搞隐,表示改報(bào)文的存活時(shí)間驹愚。每過1ms或者經(jīng)過一個(gè)網(wǎng)關(guān),TTL的值就減1劣纲。當(dāng)TTL為0時(shí)逢捺,該報(bào)文被認(rèn)為目的主機(jī)不可達(dá),直接丟棄癞季。
  • Protocol(協(xié)議):8位劫瞳,表示上層使用的協(xié)議,例如是TCP余佛、UDP柠新、ICMP、IGP等等辉巡。
  • Header Checksum(頭部校驗(yàn)和):16位恨憎,該字段幫助確保IP協(xié)議頭的完整性。由于某些協(xié)議頭字段的改變郊楣,這就需要對(duì)每個(gè)點(diǎn)重新計(jì)算和檢驗(yàn)憔恳。計(jì)算過程是先將校驗(yàn)和字段置為0,然后將整個(gè)頭部每16位劃分為一部分净蚤,將個(gè)部分相加钥组,再將計(jì)算結(jié)果取反碼,插入到校驗(yàn)和字段中
  • Source IP Address(源地址):32位今瀑,源主機(jī)IP地址
  • Destination IP Address(目的地址):32位程梦,目標(biāo)主機(jī)IP地址

查看IP

日常我們查看IP地址的方式有:ip addr(需要iproute2) 或者 ifconfig(需要net-tools)

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:16:4e:65:ff:fe brd ff:ff:ff:ff:ff:ff
    inet 172.16.176.152/20 brd 172.16.191.255 scope global dynamic eth0
       valid_lft 306370030sec preferred_lft 306370030sec

上面的172.16.176.152/20就是我們的IPv4地址。
ip地址后面的有個(gè)scope是global橘荠,表示eth0這張網(wǎng)卡是對(duì)外的屿附。IP地址上面有一行是link/ether 00:16:3e:15:ff:fe brd ff:ff:ff:ff:ff:ff,這個(gè)是mac地址哥童,就是網(wǎng)卡的物理地址挺份,由6個(gè)byte組成。
上面還有一個(gè)lo(loopback),又稱為回環(huán)接口贮懈,一般就是分配到127.0.0.1這個(gè)地址匀泊。這個(gè)地址一般用于本地优训,不會(huì)出現(xiàn)在網(wǎng)絡(luò)中而是直接經(jīng)過內(nèi)核處理然后返回。

網(wǎng)卡名稱旁邊有一行<BROADCAST,MULTICAST,UP,LOWER_UP>的是網(wǎng)絡(luò)設(shè)備的狀態(tài)標(biāo)識(shí)(net_device flags)

  • UP代表處于啟動(dòng)狀態(tài)
  • BROADCAST表示這個(gè)網(wǎng)卡可以發(fā)送廣播包
  • MULTICAST表示可以發(fā)送多播包
  • LOWER_UP代表插著網(wǎng)線

mtu是最大傳輸單元各聘。mtu 1500表示ip packet不能超過1500byte揣非。包括mac頭不超過1518byte(其中mac頭14字節(jié),尾4字節(jié))

qdisc這個(gè)是排隊(duì)規(guī)則伦吠,這里排隊(duì)規(guī)則采用的是pfifo_fast妆兑。排隊(duì)規(guī)則的作用是內(nèi)核通過網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的時(shí)候魂拦,按照這個(gè)接口配置的排隊(duì)規(guī)則將數(shù)據(jù)包push到隊(duì)列中毛仪。pfifo_fast采用先進(jìn)先出的方式,但是pfifo_fast這種規(guī)則的隊(duì)列包含三個(gè)band芯勘,這里面的原理暫時(shí)不太了解箱靴,后面有空再深入學(xué)習(xí)。

CIDR(無類型域間選路)

IP地址172.16.176.152/20荷愕,這個(gè)地址用的就是CIDR表示法衡怀。IP地址由<網(wǎng)絡(luò)號(hào)><主機(jī)號(hào)>組合而成。172.16.176.152/20表示前20位表示網(wǎng)絡(luò)號(hào)安疗,后12位表示主機(jī)號(hào)抛杨。

子網(wǎng)掩碼

另外我們可以通過子網(wǎng)掩碼跟ip地址做按位與運(yùn)算得到網(wǎng)絡(luò)號(hào)。而子網(wǎng)掩碼的二進(jìn)制值就是網(wǎng)絡(luò)位都為1荐类,主機(jī)號(hào)都為0怖现。
那么我的子網(wǎng)掩碼就是255.255.240.0,跟ip地址做按位與運(yùn)算得到網(wǎng)絡(luò)號(hào)為172.16.176.0

廣播地址

廣播地址一般是網(wǎng)絡(luò)號(hào)不變玉罐,主機(jī)號(hào)的二進(jìn)制位都為1屈嗤。得出廣播地址為172.16.191.255

機(jī)器是如何通過IP通信

機(jī)器1需要與機(jī)器2通信,首先會(huì)先判斷兩個(gè)IP地址是否在同一個(gè)網(wǎng)段中吊输,如果是同一個(gè)網(wǎng)段饶号,機(jī)器1直接發(fā)送ARP請(qǐng)求獲取MAC地址。如果不是季蚂,Linux的邏輯判斷如果是一個(gè)跨網(wǎng)段的通信茫船,它會(huì)獲取網(wǎng)關(guān)的MAC地址,然后將包發(fā)過去扭屁。
這里只是非常簡單描述IP層的聯(lián)系算谈,網(wǎng)絡(luò)通信底層邏輯是極其復(fù)雜的。

持續(xù)更新...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疯搅,一起剝皮案震驚了整個(gè)濱河市濒生,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌幔欧,老刑警劉巖罪治,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丽声,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡觉义,警方通過查閱死者的電腦和手機(jī)雁社,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晒骇,“玉大人霉撵,你說我怎么就攤上這事『槎冢” “怎么了徒坡?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瘤缩。 經(jīng)常有香客問我喇完,道長,這世上最難降的妖魔是什么剥啤? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任锦溪,我火速辦了婚禮,結(jié)果婚禮上府怯,老公的妹妹穿的比我還像新娘刻诊。我一直安慰自己,他們只是感情好牺丙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布则涯。 她就那樣靜靜地躺著,像睡著了一般赘被。 火紅的嫁衣襯著肌膚如雪是整。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天民假,我揣著相機(jī)與錄音浮入,去河邊找鬼。 笑死羊异,一個(gè)胖子當(dāng)著我的面吹牛事秀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播野舶,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼易迹,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了平道?” 一聲冷哼從身側(cè)響起睹欲,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后窘疮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袋哼,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年闸衫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涛贯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蔚出,死狀恐怖弟翘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情骄酗,我是刑警寧澤稀余,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站酥筝,受9級(jí)特大地震影響滚躯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嘿歌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望茁影。 院中可真熱鬧宙帝,春花似錦、人聲如沸募闲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浩螺。三九已至靴患,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間要出,已是汗流浹背鸳君。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留患蹂,地道東北人或颊。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像传于,于是被迫代替她去往敵國和親囱挑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容