一、孤兒連接
(1)處于FIN_WAIT_2狀態(tài)的客戶端需要等待服務(wù)器發(fā)送結(jié)束報(bào)文段润努,
才能轉(zhuǎn)移至TIME_WAIT狀態(tài)情连,否則它將一直停留在這個(gè)狀態(tài);
(2)如果不是為了在半關(guān)閉狀態(tài)下繼續(xù)接收數(shù)據(jù)炭菌,連接長時(shí)間地停留在FIN_WAIT_2狀態(tài)并無益處罪佳;
(3)連接停留在FIN_WAIT_2狀態(tài)的情況可能發(fā)生在:
客戶端執(zhí)行半關(guān)閉后,未等服務(wù)器關(guān)閉連接就強(qiáng)行退出了黑低;
此時(shí)客戶端連接由內(nèi)核來接管赘艳,可稱之為孤兒連接(和孤兒進(jìn)程類似);
孤兒連接——占用內(nèi)存克握;
Linux為了防止孤兒連接長時(shí)間存留在內(nèi)核中蕾管,定義了兩個(gè)內(nèi)核參數(shù):
/proc/sys/net/ipv4/tcp_max_orphans 指定內(nèi)核能接管的孤兒連接數(shù)目
/proc/sys/net/ipv4/tcp_fin_timeout 指定孤兒連接在內(nèi)核中生存的時(shí)間
Paste_Image.png
二、TCP超時(shí)重傳
TCP超時(shí)重傳:對方未收到“發(fā)送的包”菩暗;需要重新傳送掰曾;
與TCP超時(shí)重傳相關(guān)的兩個(gè)內(nèi)核參數(shù):
/proc/sys/net/ipv4/tcp_retries1 指定在底層IP接管之前TCP最少執(zhí)行的重傳次數(shù),默認(rèn)值是3停团;
/proc/sys/net/ipv4/tcp_retries2 指定連接放棄前TCP最多可以執(zhí)行的重傳次數(shù)旷坦,默認(rèn)值15(一般對應(yīng)13~30min);
Paste_Image.png
1.固定窗口
Window Size的值固定佑稠;
Window Size=3:發(fā)送和接收的包的數(shù)量均為3秒梅;
Paste_Image.png
2.滑動(dòng)窗口
Window Size的值不固定;
Sender:Window Size=3:發(fā)送的包的數(shù)量為3舌胶;
Receiver:Window Size=2:接收的包的數(shù)量為2番电;
Paste_Image.png
三、擁塞控制
擁塞控制:TCP為提高網(wǎng)絡(luò)利用率,降低丟包率漱办,并保證網(wǎng)絡(luò)資源對每條數(shù)據(jù)流的公平性这刷;
TCP擁塞控制的標(biāo)準(zhǔn)文檔是RFC 5681,其中詳細(xì)介紹了擁塞控制的四個(gè)部分:
慢啟動(dòng)(slow start)
擁塞避免(congestion avoidance)
快速重傳(fast retransmit)
快速恢復(fù)(fast recovery)
擁塞控制算法
reno算法娩井、vegas算法和cubic算法暇屋;它們或者部分或者全部實(shí)現(xiàn)了上述四個(gè)部分;
當(dāng)前所使用的擁塞控制算法
/proc/sys/net/ipv4/tcp_congestion_control
Paste_Image.png
四洞辣、SP和DP
幀
DP | SP |
---|---|
目標(biāo)端口 | 源端口 |
TCP和IP
SP | DP |
---|---|
源端口 | 目標(biāo)端口 |
五咐刨、UDP
傳輸層、傳輸性能高扬霜;無數(shù)據(jù)恢復(fù)特性
Paste_Image.png
六定鸟、Internet層
Paste_Image.png
1.ICMP
TYPE:8——發(fā)送包(請求包)
TYPE:0——返回包(回復(fù)包)
ping 192.168.8.128 -s 1000
-s #:指定幀的大小,#越大(最大為65507)著瓶,測試網(wǎng)絡(luò)穩(wěn)定性联予;
-f:flood泛洪(linux有,windows無)材原;
ping 192.168.8.128 -s 65507 -f 攻擊服務(wù)器沸久,拖垮服務(wù)器;
幀的數(shù)據(jù)最大1500余蟹;
幀+DP+SP+protocol=1514卷胯;
Paste_Image.png
2.ARP
默認(rèn)網(wǎng)關(guān):Default Gateway (1、2威酒、3窑睁、4)
Paste_Image.png
(1)A→C過程(A→1→2→C)
SP | SMAC | DP | DMAC | PATH |
---|---|---|---|---|
ipA | MAC-A | ipC | MAC-1 | A→1 |
ipA | MAC-2 | ipC | MAC-C | 2→C |
(2)無回應(yīng)機(jī)制——可能造成ARP欺騙
ARP欺騙:抓包/獲取對方數(shù)據(jù);
Paste_Image.png
七葵孤、主機(jī)到主機(jī)的包傳遞
ARP過程→3次握手→4次揮手
ARP過程:找MAC地址:(1)(2)
1.(1)本機(jī)的MAC表里是否有目標(biāo)IP對應(yīng)的主機(jī)ID担钮;
(2)有,按照此主機(jī)ID發(fā)送請求包佛呻;
(3)無,廣播尋找病线;
2.(1)其他主機(jī)也可收到請求包吓著,但不是給自己的,不關(guān)心送挑;
(2)服務(wù)器(目標(biāo)主機(jī))收到绑莺,是給我的,接收并在ARP表中記錄對方的ID和IP惕耕,回復(fù)給客戶機(jī)纺裁;
Paste_Image.png
3.(1)源主機(jī)(客戶機(jī))收到回復(fù)后,在ARP表中記錄目標(biāo)主機(jī)的ID和IP;
(2)發(fā)送訪問請求欺缘;3次握手栋豫,建立連接(ESTAB-LISHED);
(3)TCP/SYN(源主機(jī)谚殊,發(fā)送)——SYN/ACK(目標(biāo)主機(jī)丧鸯,回復(fù))——TCP/ACK(源主機(jī),發(fā)送)嫩絮;
Paste_Image.png
4.源主機(jī):封裝(TCP丛肢,SEQ=3/DP/SP/SMAC/DMAC);發(fā)送數(shù)據(jù)剿干;
5.目標(biāo)主機(jī):解封裝蜂怎,回復(fù)(ACK=4,SEQ=3/DP/SP/SMAC/DMAC)
6.客戶機(jī)發(fā)送完數(shù)據(jù)后要求斷開置尔,4次分手杠步;(詳圖參考網(wǎng)絡(luò)管理1)
客戶機(jī)(ESTAB-LISHED))→服務(wù)器(ESTAB-LISHED):FIN=1,seq=u
服務(wù)器(CLOSE-WAIT)→客戶機(jī)(FIN-WAIT-1):ACK=1撰洗,seq=v篮愉,ack=u+1
服務(wù)器(LAST-WAIT)→客戶機(jī)(FIN-WAIT-2):FIN=1,ACK=1差导,seq=w试躏,ack=u+1
客戶機(jī)(TIME-WAIT)→服務(wù)器(CLOSED):ACK=1,seq=u+1设褐,ack=w+1
client | sever | |
---|---|---|
CLOSED | CLOSED | |
SYN-SENT | LISTEN | |
SYN-SENT | SYN-RCVD | |
ESTAB-LISHED | ESTAB-LISHED | |
上面:3次握手 | 下面4次揮手 | |
ESTAB-LISHED | ESTAB-LISHED | |
FIN-WAIT-1 | CLOSE-WAIT | |
FIN-WAIT-2 | LAST-WAIT | |
TIME-WAIT | CLOSED | |
CLOSED | CLOSED | |
CLOSING | 二者同時(shí)要求關(guān)閉 | CLOSING |
八颠蕴、反向ARP(根據(jù)MAC找IP)
Paste_Image.png
(1)主機(jī)無硬盤;數(shù)據(jù)不在硬盤里助析,而在內(nèi)存里犀被;
(2)數(shù)據(jù)在網(wǎng)絡(luò)(內(nèi)存)中——云/網(wǎng)格/
(3)開機(jī)→從服務(wù)器中獲取IP(DHCP)→下載必要文件(如:啟動(dòng)系統(tǒng)文件)到內(nèi)存中→利用軟件連接網(wǎng)絡(luò);
這樣外冀,系統(tǒng)就會(huì)在內(nèi)存中運(yùn)行寡键;
(4)DHCP表:對應(yīng):主機(jī)ID~服務(wù)器所給IP;(每次獲取的IP固定——根據(jù)MAC找IP)
九雪隧、Internet協(xié)議特征
運(yùn)行于OSI網(wǎng)絡(luò)層
面向無連接的協(xié)議
獨(dú)立處理數(shù)據(jù)包
分層編址
盡力而為傳輸
無數(shù)據(jù)恢復(fù)功能
十西轩、IP
header | ||||
---|---|---|---|---|
ethernet header | IP header | TCP header | http header | data |
1.IP的PDU報(bào)頭(ipv4)
Paste_Image.png
(1)版本:ipv4/6
(2)總長度:header+data;data不固定脑沿,總長度不固定藕畔;
(3)標(biāo)識(shí):大包分為多個(gè)片段,這些片段屬于哪個(gè)大包——標(biāo)識(shí)庄拇;
(4)片偏移:片段是所屬大包的第幾個(gè)小段注服;(占12位韭邓,8個(gè)字節(jié)——偏移單位);
(5)標(biāo)志:有3位溶弟,僅2位有效女淑;
DF=0(分片段); DF=1(不分片段)可很;
MF=0(還有片段)诗力; MF=1(最后一個(gè)片段);
(6)生存時(shí)間(TTL):經(jīng)過路由器的數(shù)量:Linux(64)我抠、Windows(128)苇本;
Paste_Image.png
ipv4與ipv6報(bào)頭不同
數(shù)量
ipv4地址:2^32
ipv6地址:2^48
Paste_Image.png
協(xié)議域
Paste_Image.png
2.公共IP地址(分配、花錢菜拓、企業(yè))
任何人瓣窄、任何地方、都能訪問纳鼎;
類 | 公共IP地址范圍 |
---|---|
A | 1.0.0.0—9.255.255.255 |
A | 11.0.0.0—126..255.255.255 |
B | 128.0.0.0—172.15.255.255 |
B | 172.32.0.0—191.255.255.255 |
C | 192.0.0.0—192.167.255.255 |
C | 192.169.0.0—223.255.255.255 |
3.私有IP地址(不會(huì)分配)
局域網(wǎng)中使用俺夕;不同的局域網(wǎng),IP可以相同贱鄙;
類 | 私有IP地址范圍 |
---|---|
A | 10.0.0.0—10.255.255.255 |
B | 172.16.0.0—172.31.255.255 |
C | 192.168.0.0—192.168.255.255 |
4.特殊地址
0.0.0.0不是一個(gè)真正意義上的IP地址劝贸。它表示一個(gè)集合:所有不清楚的主機(jī)和目的網(wǎng)絡(luò);
255.255.255.255限制廣播地址逗宁,對本機(jī)來說映九,這個(gè)地址指本網(wǎng)段內(nèi)(同一廣播域)的所有主機(jī);
127.0.0.1~127.255.255.254
本機(jī)回環(huán)地址瞎颗,主要用于測試件甥;在傳輸介質(zhì)上永遠(yuǎn)不應(yīng)該出現(xiàn)目的地址為“127.0.0.1”的數(shù)據(jù)包;
224.0.0.0到239.255.255.255 組播地址
224.0.0.1特指所有主機(jī)哼拔;224.0.0.2特指所有路由器引有;
224.0.0.5指OSPF路由器,地址多用于一些特定的程序以及多媒體程序倦逐;
169.254.x.x
如果Windows主機(jī)使用了DHCP自動(dòng)分配IP地址譬正,
而又無法從DHCP服務(wù)器獲取地址,系統(tǒng)會(huì)為主機(jī)分配這樣地址檬姥;
5.保留地址(損耗地址)
Paste_Image.png