1、簡(jiǎn)述osi七層模型和TCP/IP五層模型
OSI七層模型
第7層 應(yīng)用層
應(yīng)用層(Application Layer)提供為應(yīng)用軟件而設(shè)的接口,以設(shè)置與另一應(yīng)用軟件之間的通信喧笔。例如: HTTP、HTTPS迷殿、FTP乱顾、TELNET、SSH绪妹、SMTP甥桂、POP3、MySQL等
第6層 表示層
表示層(Presentation Layer)把數(shù)據(jù)轉(zhuǎn)換為能與接收者的系統(tǒng)格式兼容并適合傳輸?shù)母袷?/p>
第5層 會(huì)話層
會(huì)話層(Session Layer)負(fù)責(zé)在數(shù)據(jù)傳輸中設(shè)置和維護(hù)電腦網(wǎng)絡(luò)中兩臺(tái)電腦之間的通信連接邮旷。
第4層 傳輸層
傳輸層(Transport Layer)把傳輸表頭(TH)加至數(shù)據(jù)以形成數(shù)據(jù)包黄选。傳輸表頭包含了所使用的協(xié)議等發(fā)送信息。例如:傳輸控制協(xié)議(TCP)等婶肩。
第3層 網(wǎng)絡(luò)層
網(wǎng)絡(luò)層(Network Layer)決定數(shù)據(jù)的路徑選擇和轉(zhuǎn)寄办陷,將網(wǎng)絡(luò)表頭(NH)加至數(shù)據(jù)包,以形成報(bào)文律歼。網(wǎng)絡(luò)表頭包含了網(wǎng)絡(luò)數(shù)據(jù)懂诗。例如:互聯(lián)網(wǎng)協(xié)議(IP)等。
第2層 數(shù)據(jù)鏈接層
數(shù)據(jù)鏈路層(Data Link Layer)負(fù)責(zé)網(wǎng)絡(luò)尋址苗膝、錯(cuò)誤偵測(cè)和改錯(cuò)殃恒。當(dāng)表頭和表尾被加至數(shù)據(jù)包時(shí),會(huì)形成信息框(Data Frame)辱揭。數(shù)據(jù)鏈表頭(DLH)是包含了物理地址和錯(cuò)誤偵測(cè)及改錯(cuò)的方法离唐。數(shù)據(jù)鏈表尾(DLT)是一串指示數(shù)據(jù)包末端的字符串。例如以太網(wǎng)问窃、無(wú)線局域網(wǎng)(Wi-Fi)和通用分組無(wú)線服務(wù)(GPRS)等亥鬓。分為兩個(gè)子層:邏輯鏈路控制(logical link control,LLC)子層和介質(zhì)訪問(wèn)控制(Media access control域庇,MAC)子層
第1層 物理層
物理層(Physical Layer)在局部局域網(wǎng)上傳送數(shù)據(jù)幀(Data Frame)嵌戈,它負(fù)責(zé)管理電腦通信設(shè)備和網(wǎng)絡(luò)媒體之間的互通。包括了針腳听皿、電壓熟呛、線纜規(guī)范、集線器尉姨、中繼器庵朝、網(wǎng)卡、主機(jī)接口卡等。
TCP/IP五層模型
不同于OSI七層模型九府,TCP/IP五層模型將會(huì)話層椎瘟,表示層應(yīng)用層合并為應(yīng)用層。是通過(guò)實(shí)際應(yīng)用而的出來(lái)的侄旬。
TCP/IP和OSI模型的比較
相同點(diǎn)
兩者都是以協(xié)議棧的概念為基礎(chǔ)肺蔚。
協(xié)議棧中的協(xié)議彼此相互獨(dú)立。
下層對(duì)上層提供服務(wù)儡羔。
不同點(diǎn)
OSI是先有模型宣羊;TCP/IP是先有協(xié)議,后有模型笔链。
OSI是國(guó)際標(biāo)準(zhǔn)段只,適用于各種協(xié)議棧腮猖。
TCP/IP實(shí)際標(biāo)準(zhǔn)鉴扫,只適用于TCP/IP網(wǎng)絡(luò),層次數(shù)量不同澈缺。
2坪创、總結(jié)描述TCP三次握手四次揮手
TCP三次握手流程
三次握手流程如下圖所示:
服務(wù)端為被動(dòng)監(jiān)聽(tīng)狀態(tài),監(jiān)聽(tīng)端口往往與開(kāi)啟的協(xié)議相關(guān)姐赡,通常為固定端口莱预。
第一次握手:
客戶向服務(wù)器發(fā)送連接請(qǐng)求段:SYN 報(bào)文段:(SYN=1,seq=n)
SYN=1:建立連接請(qǐng)求控制段。
seq=n:表示傳輸?shù)膱?bào)文段的第 1 個(gè)數(shù)據(jù)字節(jié)的序列號(hào)是 n项滑,并以此序列號(hào)代表
整個(gè)報(bào)文段的序號(hào)(補(bǔ)充:sequence number依沮,序號(hào)的意思。)
客戶端進(jìn)入 SYN_SENT(同步發(fā)送)枪狂。
第二次握手:
服務(wù)器收到 TCP 連接請(qǐng)求段后危喉,如果同意,則發(fā)回確認(rèn)報(bào)文段:
(SYN=1,ACK=1,seq=m, ack_seq=n+1)州疾。
SYN=1:同意建立新連接的確認(rèn)段辜限。
ack_seq=n+1:表示已經(jīng)收到了序列號(hào)為 n 的報(bào)文段,準(zhǔn)備接收序列號(hào)為 n+1
的報(bào)文段严蓖。
seq=m:服務(wù)器告訴客戶確認(rèn)報(bào)文段的第 1 個(gè)數(shù)據(jù)字節(jié)的序列號(hào)是 m薄嫡。
服務(wù)器由 LISTEN 進(jìn)入 SYN_RCVD(同步收到)。
第三次握手:只有第三次握手可攜帶數(shù)據(jù)颗胡。
客戶對(duì)服務(wù)器的 同意連接報(bào)文段 進(jìn)行確認(rèn)(ACK=1,seq=n+1,ack_seq=m+1)毫深。
seq=n+1:客戶傳輸?shù)膱?bào)文段的第一個(gè)數(shù)據(jù)字節(jié)的序列號(hào)是 n+1。
ack_seq=m+1:客戶期望接收服務(wù)器序列號(hào)為 m+1 的報(bào)文段毒姨。當(dāng)客戶發(fā)送 ACK 時(shí)费什,客戶端進(jìn)入 ESTAB-LISHED 狀態(tài);當(dāng)服務(wù)收到 ACK 后,也進(jìn)入 ESTAB-LISHED 狀態(tài)鸳址;
TCP四次揮手流程
TCP四次揮手流程如下圖所示:
注意:這里不考慮服務(wù)端異常斷開(kāi)情況瘩蚪,默認(rèn)服務(wù)端正常。
第一次揮手:
客戶向服務(wù)器發(fā)送釋放連接報(bào)文段:(FIN=1,seq=j)稿黍。
首部的 FIN=1:TCP 報(bào)文段的發(fā)送端數(shù)據(jù)發(fā)送完畢疹瘦,請(qǐng)求釋放連接。
序號(hào) seq=j:表示傳輸?shù)牡谝粋€(gè)數(shù)據(jù)字節(jié)的序號(hào)是 j 客戶端狀態(tài)ESTABLISHED 進(jìn)入 FIN_WAIT_1(終止等待 1 狀態(tài))巡球。
第二次揮手:
服務(wù)器向客戶發(fā)送確認(rèn)段:(ACK=1,seq=k,ack_seq=j+1) 言沐。
ACK=1:標(biāo)識(shí)確認(rèn)字號(hào)段有效。
確認(rèn)序號(hào) ack_seq=j+1:表示服務(wù)器期望接收客戶數(shù)據(jù)包序號(hào)為 j+1 的包酣栈。
序號(hào) seq=k:表示服務(wù)器傳輸?shù)牡谝粋€(gè)數(shù)據(jù)字節(jié)的序號(hào)是 k险胰。
服務(wù)器狀態(tài)由 ESTABLISHED 進(jìn)入 CLOSE_WAIT(關(guān)閉等待) 客戶端收到 ACK 段后,由 FIN_WAIT_1 進(jìn)入 FIN_WAIT_2矿筝。
第三次揮手:
服務(wù)器向客戶發(fā)送釋放連接報(bào)文段:(FIN=1,ACK=1,seq=o,ack_seq=j+1)起便。
FIN=1:請(qǐng)求釋放連接。
ACK=1:標(biāo)識(shí)確認(rèn)字號(hào)段有效窖维。
確認(rèn)序號(hào) ack_seq=j+1:表示服務(wù)器期望接收客戶數(shù)據(jù)包序號(hào)為 j+1 的包榆综。
序號(hào) seq=o:表示自己傳輸?shù)牡谝粋€(gè)數(shù)據(jù)字節(jié)的序號(hào)是 o。
服務(wù)器狀態(tài)由 CLOSE_WAIT 進(jìn)入 LAST_ACK(最后確認(rèn)狀態(tài))铸史。
第四次揮手:
客戶向服務(wù)器發(fā)送確認(rèn)段:(ACK=1,seq=j+1,ack_seq=o+1) 鼻疮。
ACK=1:標(biāo)識(shí)確認(rèn)字號(hào)段有效。
確認(rèn)序號(hào) ack_seq=o+1:表示客戶期望接收服務(wù)器數(shù)據(jù)包序號(hào)為 o+1 的包琳轿。
序號(hào) seq=j+1:表示客戶傳輸?shù)牡谝粋€(gè)數(shù)據(jù)字節(jié)的序號(hào)是 j+1 客戶端狀態(tài)由FIN_WAIT_2 進(jìn)入 TIME_WAIT判沟,等待 2MSL 時(shí)間,進(jìn)入 CLOSED狀態(tài)崭篡,釋放連接挪哄。
服務(wù)器在收到最后一次 ACK 段后,由 LAST_ACK 進(jìn)入 CLOSED媚送,釋放連接中燥。
3、描述TCP和UDP區(qū)別
1塘偎、TCP 提供面向連接疗涉、可靠、有序吟秩、字節(jié)流傳輸服務(wù)咱扣; UDP 提供無(wú)連接、不可靠的數(shù)據(jù)報(bào)盡力傳輸服務(wù)涵防。
2闹伪、UDP 具有較好的實(shí)時(shí)性,工作效率比 TCP 高,適用于對(duì)高速傳輸和實(shí)時(shí)性 較高的通信或廣播通信偏瓤。
3杀怠、UDP 沒(méi)有擁塞控制,因此網(wǎng)絡(luò)出現(xiàn)擁塞不會(huì)使源主機(jī)的發(fā)送速率降低厅克。
4赔退、每一條 TCP 連接只能是點(diǎn)到點(diǎn)的; UDP 支持一對(duì)一证舟、一對(duì)多硕旗、多對(duì)一和多對(duì)多的交互通信。
5女责、TCP 首部開(kāi)銷(xiāo) 20 字節(jié)漆枚;UDP 的首部開(kāi)銷(xiāo)小,只有 8 個(gè)字節(jié)抵知。
6墙基、TCP 對(duì)系統(tǒng)資源要求較多; UDP 對(duì)系統(tǒng)資源要求較少辛藻。
7碘橘、TCP 的邏輯通信信道是全雙工的可靠信道互订。 UDP 則是不可靠信道吱肌。
4、網(wǎng)卡綁定bond0的實(shí)現(xiàn)
bond前仰禽,模擬設(shè)備兩個(gè)網(wǎng)卡
[root@centos7localdomain ~]# ip a
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
inet6 ::1/128 scope host
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:0c:29:52:db:59 brd ff:ff:ff:ff:ff:ff
inet 192.168.138.135/24 brd 192.168.138.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::f323:b826:9335:ed45/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:52:db:63 brd ff:ff:ff:ff:ff:ff
inet 192.168.138.130/24 brd 192.168.138.255 scope global noprefixroute dynamic eth1
valid_lft 1797sec preferred_lft 1797sec
inet6 fe80::76ff:4854:8ef0:8dd4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@centos7localdomain ~]#
將eth0和eht1 使用active-backup(主備)模式bond氮墨。
添加bonding接口
[root@centos7localdomain ~]# nmcli connection add type bond con-name testbond0 ifname bond0 mode active-backup ipv4.method manual ipv4.address 192.168.138.135/24
Connection 'testbond0' (14084817-ce5e-4ca6-9acb-f9af1f49e50f) successfully added.
添加從屬接口
[root@centos7localdomain ~]# nmcli connection add type bond-slave ifname eth0 master bond0 #將eth0添加到bond0
Connection 'bond-slave-eth0' (0ab43f21-240a-431f-9058-fd41c36b5033) successfully added.
[root@centos7localdomain ~]# nmcli connection add type bond-slave ifname eth1 master bond0 #將eth1添加到bond0
Connection 'bond-slave-eth1' (cd81fd3e-beee-4c2a-b99b-4f0de8369538) successfully added.
先啟動(dòng)從屬接口
[root@centos7localdomain ~]# nmcli connection up bond-slave-eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@centos7localdomain ~]# nmcli connection up bond-slave-eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
啟動(dòng)bond0接口
[root@centos7localdomain ~]# nmcli connection up testbond0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
bonding后的接口
eth0和eth1 的ip地址消失了,新增一個(gè)bond0的網(wǎng)卡設(shè)備吐葵。測(cè)試時(shí)候可以將任意一個(gè)網(wǎng)卡禁用规揪,網(wǎng)絡(luò)依然是正常的。
[root@centos7localdomain ~]# ip a
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
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:52:db:59 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:52:db:59 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:52:db:59 brd ff:ff:ff:ff:ff:ff
inet 192.168.138.135/24 brd 192.168.138.255 scope global noprefixroute bond0
valid_lft forever preferred_lft forever
inet6 fe80::d374:f715:59f0:71f0/64 scope link noprefixroute
valid_lft forever preferred_lft forever