Osi七層參考模型:
應(yīng)用層
表示層
會(huì)話層
--------前三層控制層面
--------后四層數(shù)據(jù)層面
傳輸層:
區(qū)分不同的流量,定義傳輸方式(tcp/udp),定義端口號(hào)(區(qū)分不同的服務(wù))
網(wǎng)絡(luò)層:
尋址,編址(ipv4地址)
數(shù)據(jù)鏈路層:
定義局域網(wǎng)的封裝,Ethernet 2 IEEE802.3封裝
物理層
Tcp/ip參考模型:
應(yīng)用層(等于osi上三層)
主機(jī)到主機(jī)層(等于osi傳輸層)
互聯(lián)網(wǎng)層(等于osi網(wǎng)絡(luò)層)
網(wǎng)絡(luò)接口層
在實(shí)際生活中我們通常使用的是tcp/ip參考模型。
在osi中tcp的三次握手機(jī)制與四次揮手機(jī)制保證tcp的面向連接,確認(rèn)重傳機(jī)制保證tcp的可靠性。
一個(gè)完整的數(shù)據(jù)包:
? ? ? ? ? ?2層? ? ? ? ? ? ? ? ? ?3層? ? ? ? ? ? ? ? 4層
Tcp數(shù)據(jù)包頭的結(jié)構(gòu):
?
每一行32個(gè)bit,4個(gè)字節(jié)。
Data:你要傳輸?shù)臄?shù)據(jù)(列如http,telnet)
Options:為可選項(xiàng),默認(rèn)為空。Padding:填充項(xiàng)。該兩項(xiàng)默認(rèn)為空。
所以,一個(gè)表準(zhǔn)的tcp數(shù)據(jù)頭部大小為20個(gè)字節(jié)。
Source Port:源端口
Destination Port:目標(biāo)端口,該端口為你要訪問的服務(wù)的端口。
Sequence Number:序列號(hào),為所發(fā)送的數(shù)據(jù)的編號(hào)(順序),序列號(hào)一般開始時(shí)是從1開始的。占32個(gè)bit。
Acknowledgment Number:確認(rèn)號(hào),用來確認(rèn)時(shí)使用,當(dāng)不用時(shí)為全0,占32個(gè)bit。
Data Offset:代表數(shù)據(jù)的偏移值(一個(gè)較大的數(shù)據(jù)傳輸時(shí)進(jìn)行分片傳輸,第一個(gè)分片值為0,第二個(gè)分片值為第一個(gè)分片的大小,第三個(gè)分片值為前兩個(gè)分片的大小。),表示該分片距離完整數(shù)據(jù)包頭部的偏移值。
Reserved:保留位。
URG:緊急指針
ACK:標(biāo)記位
PSH:暫停位,如果PSH=1表示tcp暫停數(shù)據(jù)的傳輸。
RST:重置位,
SYN:同步。
FIN:終止。
Window:?jiǎn)挝唬ㄗ止?jié)),代表一次性發(fā)送數(shù)據(jù)的多少進(jìn)行確認(rèn)。
Checksum:校驗(yàn)和,計(jì)算完整性。
Urgent pointer:緊急指針。默認(rèn)為0,基本不用。
UDP數(shù)據(jù)包頭結(jié)構(gòu):
?????????????
?
IPV4與IPV6數(shù)據(jù)包結(jié)構(gòu):
???????????
IPV4:一行32個(gè)bit,4字節(jié);
默認(rèn)情況下ipv4的數(shù)據(jù)包為20個(gè)字節(jié)。
Version:版本,占4bit大小。
IHL:描述的是ip的頭部的長(zhǎng)度(大小),占4bit。 ?默認(rèn)值為0101,單位是32bit(4字節(jié)),0101的十進(jìn)制大小是5,所以ip頭部大小是20個(gè)字節(jié)。所以ipv4頭部大小的范圍是(20-60字節(jié)),ipv4的頭部大小只能以4字節(jié)的倍數(shù)增加。
Type of Service:描述服務(wù)類型,占8bit。對(duì)流量(數(shù)據(jù))進(jìn)行標(biāo)記時(shí)使用。
Total Length:描述ip數(shù)據(jù)包的總長(zhǎng)度(ip數(shù)據(jù)包頭部+data),占16個(gè)bit,
Identification:占16個(gè)bit,標(biāo)識(shí)符。當(dāng)同一個(gè)數(shù)據(jù)被分片成多個(gè)分片傳輸時(shí),在這個(gè)數(shù)據(jù)中的所有的分片的Identification值相同(這個(gè)值是隨機(jī)的)表示是同一個(gè)數(shù)據(jù)的分片。
Flags:占3bit,3個(gè)bit的第一位叫做R:保留位,第二位叫做DF:不分片位,第三位叫做MF:更多分片位。
????????????DF:如果當(dāng)這個(gè)bit等于1,則表示該數(shù)據(jù)沒有被分片過。如果等于0,則表示該數(shù)據(jù)被分片。
???????????MF:當(dāng)這個(gè)bit等于1時(shí),表示你還沒收完的該數(shù)據(jù)的分片,后面還有該數(shù)據(jù)的分片,當(dāng)它為0時(shí)則表示該分片時(shí)該數(shù)據(jù)的最后一個(gè)分片(該數(shù)據(jù)的分片已經(jīng)被收完)。
Fragment Offset:表示分片偏移,占13個(gè)bit。描述的是該分片距離完整數(shù)據(jù)包的頭部的大小,單位字節(jié)。第n個(gè)分片的偏移值為前n-1個(gè)分片的大小(第一個(gè)分片的值為0,第二個(gè)分片的值為第一個(gè)分片的大小,第三個(gè)分片的值為前兩個(gè)分片的大小之和。)
Time to Live(TTL):占8bit,生存時(shí)間(范圍:0-255),可被路由次數(shù),路由器查看一次路由表TTL值減一,當(dāng)為0時(shí)將被丟棄。(可以避免環(huán)路帶來的危害)
Protocol:占8bit,范圍:1-255(0被保留),描述的是上層使用的是什么協(xié)議。Tcp的協(xié)議號(hào):6,udp的協(xié)議號(hào):17,ICMP的協(xié)議號(hào):1(ICMP為跨層封裝),ospf的協(xié)議號(hào)為:89(ospf協(xié)議為跨層封裝),eigrp的協(xié)議號(hào)為:88(跨層封裝),當(dāng)值為6時(shí)表示ip的上層使用的是tcp協(xié)議。
Header Checksum:占16個(gè)bit,包頭校驗(yàn)和,對(duì)ipv4的頭部信息進(jìn)行校驗(yàn)。當(dāng)校驗(yàn)失敗則說明該數(shù)據(jù)封裝錯(cuò)誤,或者該數(shù)據(jù)已經(jīng)被人篡改。
Source Address:占32bit,源地址。
Destination Address:占32bit,目標(biāo)地址。
Options:為可選項(xiàng),默認(rèn)為空。Padding:填充項(xiàng)。該兩項(xiàng)默認(rèn)為空。
IPV6:
Traffic Class:表示流量分類。作用與ipv4中Type of Service字段作用一樣。
Payload lengh:表示總長(zhǎng)度,作用與ipv4中Total Length字段作用一樣。
Hop limit:表示跳數(shù),作用與ipv4中的TTL字段作用一樣。
Next Header:表示下一個(gè)頭部,作用與ipv4中Protocol字段一樣。文章來源:http://www.zghlxwxcb.cn/news/detail-721029.html
Flow lable:目前來說是一個(gè)保留字段文章來源地址http://www.zghlxwxcb.cn/news/detail-721029.html
到了這里,關(guān)于各種數(shù)據(jù)包頭的詳解(tcp,udp,ipv4,ipv6)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!