1、簡(jiǎn)述osi七層模型和TCP/IP五層模型
OSI 7層模型
第7層 應(yīng)用層
應(yīng)用層(Application Layer)提供為應(yīng)用軟件而設(shè)的接口,以設(shè)置與另一應(yīng)用軟件之間的通信。例如: HTTP暑中、HTTPS、FTP、TELNET锋八、SSH、SMTP护盈、POP3挟纱、MySQL等針對(duì)特定應(yīng)用的協(xié)議。
第6層 表示層
主條目:表示層(Presentation Layer)把數(shù)據(jù)轉(zhuǎn)換為能與接收者的系統(tǒng)格式兼容并適合傳輸?shù)母袷?設(shè)備固有數(shù)據(jù)格式和網(wǎng)絡(luò)標(biāo)準(zhǔn)數(shù)據(jù)格式的轉(zhuǎn)換
第5層 會(huì)話層
會(huì)話層(Session Layer)負(fù)責(zé)在數(shù)據(jù)傳輸中設(shè)置和維護(hù)電腦網(wǎng)絡(luò)中兩臺(tái)電腦之間的通信連接腐宋。 通信管理紊服,負(fù)責(zé)建立和斷開通信連接(數(shù)據(jù)流動(dòng)的邏輯通路)管理傳輸層以下的分層。
第4層 傳輸層
傳輸層(Transport Layer)把傳輸表頭(TH)加至數(shù)據(jù)以形成數(shù)據(jù)包胸竞。傳輸表頭包含了所使用的協(xié)議 等發(fā)送信息欺嗤。例如:傳輸控制協(xié)議(TCP)等。 管理兩個(gè)節(jié)點(diǎn)之間的數(shù)據(jù)s傳輸卫枝,負(fù)責(zé)可靠傳輸(確保數(shù)據(jù)被可靠地傳送到目標(biāo)地址)
第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)等筒溃。地址管理和路由選擇問(wèn)題“解決走哪條路問(wèn)題” ,比如網(wǎng)絡(luò)設(shè)備路由器
第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)子層 解決子網(wǎng)內(nèi)部通信問(wèn)題夭委,互聯(lián)設(shè)備之間傳送和識(shí)別幀
第1層 物理層
物理層(Physical Layer)在局部局域網(wǎng)上傳送數(shù)據(jù)幀(Data Frame),它負(fù)責(zé)管理電腦通信設(shè)備和網(wǎng) 絡(luò)媒體之間的互通募强。包括了針腳株灸、電壓、線纜規(guī)范擎值、集線器慌烧、中繼器、網(wǎng)卡鸠儿、主機(jī)接口卡等
TCP/IP 介紹
Transmission Control Protocol/Internet Protocol 傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議 TCP/IP是一個(gè)Protocol Stack屹蚊,包括TCP、IP进每、UDP汹粤、ICMP、RIP田晚、TELNET嘱兼、FTP、SMTP贤徒、ARP等許多 協(xié)議 最早發(fā)源于1969年美國(guó)國(guó)防部(縮寫為DoD)的因特網(wǎng)的前身ARPA網(wǎng)項(xiàng)目芹壕,1983年1月1日,TCP/IP取 代了舊的網(wǎng)絡(luò)控制協(xié)議NCP接奈,成為今天的互聯(lián)網(wǎng)和局域網(wǎng)的基石和標(biāo)準(zhǔn),由互聯(lián)網(wǎng)工程任務(wù)組負(fù)責(zé)維護(hù) 3.1.2 TCP/IP 分層 共定義了四層踢涌,和OSI參考模型的分層有對(duì)應(yīng)關(guān)系
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 三次握手
第一步:客戶端發(fā)送SYN 給服務(wù)端堡僻,并從closed 調(diào)整SYN-SENT狀態(tài)
第二步:服務(wù)端收到SYN后發(fā)送ACK SYN給客戶端表示收到請(qǐng)求并要求對(duì)方反饋是否收到信息糠惫,從LISTEN 調(diào)整為SYN-RECEIVED 狀態(tài)
第三步:客戶端收到服務(wù)端反饋后發(fā)送ACK 給服務(wù)端,表示可以收到信息钉疫。雙方開始通信調(diào)整到ESTABLISHED 狀態(tài)
TCP 四次揮手
第一步:客戶端發(fā)送FIN給服務(wù)端硼讽,并從ESTABLISHED 變成FIN-WAIT1
第二步:服務(wù)端收到FIN后通知應(yīng)用進(jìn)程并發(fā)送ACK確認(rèn)給客戶端,狀態(tài)從ESTABLISHED變成CLOSE-WAIT牲阁,客戶端收到ACK后從FIN-WAIT1 到FIN-WAIT2
第三步:服務(wù)端發(fā)送FIN ACK 給客戶端固阁,從CLOSE-WAIT 狀態(tài)到LAST-ACK
第四步:客戶端收到服務(wù)端FIN ACK后發(fā)送ACK確認(rèn),并從FIN-WAIT2 到TIME-WAIT, 服務(wù)端收到ACK后從LAST-ACK 變成CLOSED 狀態(tài)城菊,客戶端等待2MSL 數(shù)據(jù)傳送后由TIME-WAIT變成CLOSED备燃,雙方通信斷開。
客戶端先發(fā)送一個(gè)FIN給服務(wù)端凌唬,自己進(jìn)入FIN_WAIT_1狀態(tài)并齐,這時(shí)等待接收服務(wù)端報(bào)文,該報(bào)文會(huì)有三
種可能:
只有服務(wù)端的ACK
只有服務(wù)端的FIN
基于服務(wù)端的ACK客税,又有FIN
1况褪、只收到服務(wù)器的ACK,客戶端會(huì)進(jìn)入FIN_WAIT_2狀態(tài)更耻,后續(xù)當(dāng)收到服務(wù)端的FIN時(shí)测垛,回應(yīng)發(fā)送一個(gè)
ACK,會(huì)進(jìn)入到TIME_WAIT狀態(tài)秧均,這個(gè)狀態(tài)會(huì)持續(xù)2MSL(TCP報(bào)文段在網(wǎng)絡(luò)中的最大生存時(shí)間, RFC
1122標(biāo)準(zhǔn)的建議值是2min).客戶端等待2MSL食侮,是為了當(dāng)最后一個(gè)ACK丟失時(shí),可以再發(fā)送一次熬北。因?yàn)?br>
服務(wù)端在等待超時(shí)后會(huì)再發(fā)送一個(gè)FIN給客戶端疙描,進(jìn)而客戶端知道ACK已丟失
2、只有服務(wù)端的FIN時(shí)讶隐,回應(yīng)一個(gè)ACK給服務(wù)端,進(jìn)入CLOSING狀態(tài)久又,然后接收到服務(wù)端的ACK時(shí)巫延,進(jìn)
入TIME_WAIT狀態(tài)
3、同時(shí)收到服務(wù)端的ACK和FIN地消,直接進(jìn)入TIME_WAIT狀態(tài)
有限狀態(tài)機(jī) FSM:Finite State Machine
CLOSED 沒(méi)有任何連接狀態(tài)
LISTEN 偵聽(tīng)狀態(tài)炉峰,等待來(lái)自遠(yuǎn)方TCP端口的連接請(qǐng)求
SYN-SENT 在發(fā)送連接請(qǐng)求后,等待對(duì)方確認(rèn)
SYN-RECEIVED 在收到和發(fā)送一個(gè)連接請(qǐng)求后脉执,等待對(duì)方確認(rèn)
ESTABLISHED 代表傳輸連接建立疼阔,雙方進(jìn)入數(shù)據(jù)傳送狀態(tài)
FIN-WAIT-1 主動(dòng)關(guān)閉,主機(jī)已發(fā)送關(guān)閉連接請(qǐng)求,等待對(duì)方確認(rèn)
FIN-WAIT-2 主動(dòng)關(guān)閉,主機(jī)已收到對(duì)方關(guān)閉傳輸連接確認(rèn),等待對(duì)方發(fā)送關(guān)閉傳輸連接請(qǐng)求
TIME-WAIT 完成雙向傳輸連接關(guān)閉婆廊,等待所有分組消失
CLOSE-WAIT 被動(dòng)關(guān)閉,收到對(duì)方發(fā)來(lái)的關(guān)閉連接請(qǐng)求迅细,并已確認(rèn)
LAST-ACK 被動(dòng)關(guān)閉,等待最后一個(gè)關(guān)閉傳輸連接確認(rèn),并等待所有分組消失
CLOSING 雙方同時(shí)嘗試關(guān)閉傳輸連接淘邻,等待對(duì)方確認(rèn)
3.描述TCP和UDP區(qū)別
TCP特性:
工作在傳輸層
面向連接協(xié)議
全雙工協(xié)議
半關(guān)閉
錯(cuò)誤檢查
將數(shù)據(jù)打包成段茵典,排序
確認(rèn)機(jī)制
數(shù)據(jù)恢復(fù),重傳
流量控制宾舅,滑動(dòng)窗口
擁塞控制统阿,慢啟動(dòng)和擁塞避免算法
TCP協(xié)議PORT
傳輸層通過(guò)port號(hào),確定應(yīng)用層協(xié)議筹我,范圍0-65535
0-1023:系統(tǒng)端口或特權(quán)端口(僅管理員可用) 扶平,眾所周知,永久的分配給固定的系統(tǒng)應(yīng)用使用蔬蕊, 22/tcp(ssh), 80/tcp(http), 443/tcp(https)
1024-49151:用戶端口或注冊(cè)端口结澄,但要求并不嚴(yán)格,分配給程序注冊(cè)為某應(yīng)用使用袁串, 1433/tcp(SqlServer), 1521/tcp(oracle),3306/tcp(mysql),11211/tcp/udp (memcached)
49152-65535:動(dòng)態(tài)或私有端口概而,客戶端隨機(jī)使用端口,范圍定 義:/proc/sys/net/ipv4/ip_local_port_range
UDP特性
工作在傳輸層
提供不可靠的網(wǎng)絡(luò)訪問(wèn)
非面向連接協(xié)議
有限的錯(cuò)誤檢查
傳輸性能高
無(wú)數(shù)據(jù)恢復(fù)特性
UDP包頭