1、簡述osi七層模型和TCP/IP五層模型
OSI七層模型
應(yīng)用層
表示層
會(huì)話層
傳輸層
網(wǎng)絡(luò)層
數(shù)據(jù)鏈路層
物理接入層
TCP/IP五層模型
應(yīng)用層(應(yīng)用層、表示層、會(huì)話層)
傳輸層
網(wǎng)絡(luò)層(互聯(lián)網(wǎng)層)
數(shù)據(jù)鏈路
物理接入層
TCP/IP四層模型
應(yīng)用層(應(yīng)用層、表示層、會(huì)話層)
傳輸層
網(wǎng)絡(luò)層
網(wǎng)絡(luò)接口層(數(shù)據(jù)鏈路層、物理接入層)
2、總結(jié)描述TCP三次握手四次揮手
TCP三次握手
第一次:A-PC 主動(dòng)打開連接向 B-PC?發(fā)送 "SYN=1,seq=x"(請(qǐng)求連接),并且進(jìn)入 SYN-SENT(同步已發(fā)送)狀態(tài)
第二次:B-PC?被動(dòng)打開連接,進(jìn)入 LISTEN(收聽)狀態(tài),接受到 A-PC 的 "SYN=1,seq=x" 后,回復(fù) "SYN=1,ACK=1,seq=y,ack=x+1"(序號(hào)+1)(回復(fù)確認(rèn),并請(qǐng)求建立連接),并進(jìn)入SYN-RCVD(同步收到)狀態(tài)
第三次:A-PC?在接收到 "SYN=1,ACK=1,seq=y,ack=x+1" (序號(hào)+1)后,向 B-PC 回復(fù) "ACK=1,seq=x+1,ack=y+1(回復(fù)確認(rèn))(序號(hào)+1)" ,確認(rèn)信息后 A-PC 進(jìn)入ESTAB-LISHED(已建立連接狀態(tài)),B-PC 收到 A-PC 發(fā)送的確認(rèn)信息后進(jìn)入 ESTAB-LISHED(已建立連接狀態(tài))。
需要:如果A向B發(fā)送信息,B回復(fù)后,A不回復(fù)確認(rèn)信息,B將進(jìn)入半連接狀態(tài),需要注意半連接攻擊
四次揮手
第一次:A-PC處于 ESTAB-LISHED(已建立連接狀態(tài))向B-PC發(fā)送“FIN=1,seq=u(終止請(qǐng)求信息)”,發(fā)送后立即進(jìn)入FIN-WAIT-1(終止等待1狀態(tài))。
第二次:在收到A-PC發(fā)送的“FIN=1,seq=u(終止請(qǐng)求信息)”前,B-PC處于?ESTAB-LISHED(已建立連接狀態(tài)),當(dāng)B-PC接收到信息后,向A-PC回復(fù)“ACK=1,seq=v,ack=u+1”(序號(hào)+1),然后B-PC進(jìn)入CLOSE-WAIT(關(guān)閉等待狀態(tài)),A-PC收到“ACK=1,seq=v,ack=u+1”后進(jìn)入FIN-WAIT-2(終止等待2狀態(tài))。
第三次:B-PC進(jìn)入CLOSE-WAIT(關(guān)閉等待狀態(tài))后會(huì)繼續(xù)向A-PC發(fā)送數(shù)據(jù)知道發(fā)送完畢后,會(huì)向A-PC發(fā)送“FIN=1,ACK=1,seq=w,ack=u+1”,發(fā)送完畢后直接進(jìn)入LAST-ACK(最后確認(rèn)狀態(tài))。
第四次:A-PC收到B-PC發(fā)送的“FIN=1,ACK=1,seq=w,ack=u+1”后,正常情況下回立即回復(fù)“ACK=1,seq=u+1,ack=w+1(序號(hào)+1)”,A-PC發(fā)出信息后進(jìn)入TIME-WAIT(時(shí)間等待狀態(tài)),B-PC收到A-PC回復(fù)“ACK=1,seq=u+1,ack=w+1(序號(hào)+1)”后,立即端口鏈接,鏈接進(jìn)入CLOSED,A-PC在等待2MSL后未收到B-PC的消息也斷開鏈,鏈接接入CLOSED。
進(jìn)入TIME-WAIT等待2MSL(一般為4分鐘)是為了確保B收到?最終確認(rèn)消息,以及防止B又從新建立建立。如果不等,釋放的端口可能會(huì)重連剛斷開的服務(wù)器端口,這樣依然存活在網(wǎng)絡(luò)里的老的TCP報(bào)文可能與新TCP連接報(bào)文沖突,造成數(shù)據(jù)沖突,為避免此種情況,需要耐心等待網(wǎng)絡(luò)老的TCP連接的活躍報(bào)文全部死翹翹,2MSL時(shí)間可以滿足這個(gè)需求(盡管非常保守)!
3、描述TCP和UDP區(qū)別
TPC和UDP都是傳輸層協(xié)議;能將數(shù)據(jù)切片,排序
主要區(qū)別在
TCP? 面向鏈接協(xié)議;UDP? 非面向鏈接協(xié)議
TCP 全雙工協(xié)議/不是半雙工或單工 ;UDP?可以是單工、半雙工、全雙工
TCP 支持半關(guān)閉 ;UDP不支持半關(guān)閉
TCP 錯(cuò)誤檢查 ;UDP有限的錯(cuò)誤檢查
TCP?擁有確認(rèn)機(jī)制;UDP?無確認(rèn)機(jī)制
TCP 數(shù)據(jù)恢復(fù),重傳 ;UDP?無數(shù)據(jù)恢復(fù),重傳
TCP 流量控制,滑動(dòng)窗口;UDP?無流量控制,滑動(dòng)窗口
TCP 擁塞控制,慢啟動(dòng)或擁塞避免算法;UDP無
TCP?提供可靠的網(wǎng)絡(luò)訪問;UDP?提供不可靠的網(wǎng)絡(luò)訪問
TCP?傳輸性能一般;UDP傳輸性能高
TCP?連接只能點(diǎn)到點(diǎn);UDP?支持1對(duì)1,1對(duì)多,多對(duì)多等交互通訊
TCP開銷為20字節(jié);UDP開銷為8字節(jié)
TCP要求系統(tǒng)資源較多;UDP較少
4、網(wǎng)卡綁定bond0的實(shí)現(xiàn)


方法A
vim /etc/sysconfig/network-scripts/ifcfg-bond0
添加以下內(nèi)容
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.200
PREFIX=24
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
vim?/etc/sysconfig/network-scripts/ifcfg-eth1
添加以下內(nèi)容
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
vim?/etc/sysconfig/network-scripts/ifcfg-eth2
添加以下內(nèi)容
NAME=eth2
DEVICE=eth2
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
重啟網(wǎng)絡(luò)服務(wù)
?????CentOS7
service network restart
? ? CentOS8
nmcli c reload
nmcli c up bond0
nmcli d reapply bond0
nmcli d connect bond0
? ? ubuntu
sudo systemctl restart NetworkManager.service
或
sudo nmcli networking off
sudo nmcli networking on
查看bond0狀態(tài)
cat /proc/net/bonding/bond0

查看IP
ip a

斷開一路網(wǎng)絡(luò)檢測是否正常
ping?10.0.0.200



查看bond模式
cat /sys/class/net/bond0/bonding/mobe

刪除bond0
modprobe -r bonding
ifconfig bond0 down
rmod bonding
rm?/etc/sysconfig/network-scripts/ifcfg-eth1
rm??/etc/sysconfig/network-scripts/ifcfg-eth2
CentOS7
service network restart?
????CentOS8
nmcli c reload
nmcli c up bond0?
nmcli d reapply bond0
nmcli d connect bond0???
方法B
#ubuntu ( apt install network-manager )
#nmcli con add type bond con-name bond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 10.0.0.100/24
#nmcli con add type bond-slave ifname eth1 master bond0
#nmcli con add type bond-slave ifname eth2 master bond0
#nmcli con show
#nmcli con up bond-slave-eth1
#nmcli con up bond-slave-eth2
#nmcli con up bond0
#root@ubuntu18-yang:~# nmcli connection delete bond-slave-eth{1,2}
#root@ubuntu18-yang:~# nmcli connection delete bond0
ubuntu18.04
vim /etc/netplan/00-installer-config.yaml





CentOS
nmcli con add type bond con-name bond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 10.0.0.101/24
nmcli con add type bond-slave ifname eth1 master bond0
nmcli con add type bond-slave ifname eth2 master bond0
nmcli con up bond-slave-eth1
nmcli con up bond-slave-eth2
nmcli con up bond0




