以下內(nèi)用均不是原創(chuàng)脐区,都是在網(wǎng)絡(luò)摘抄捐韩,留著面試用瘟仿。如若侵權(quán)請告知
HTTP 和 HTTPS
- HTTP 的URL 以http:// 開頭脊串,而HTTPS 的URL 以https:// 開頭
- HTTP 是不安全的凉泄,而 HTTPS 是安全的
- HTTP 標(biāo)準(zhǔn)端口是80 躏尉,而 HTTPS 的標(biāo)準(zhǔn)端口是443
- 在OSI 網(wǎng)絡(luò)模型中,HTTP工作于應(yīng)用層后众,而HTTPS 工作在傳輸層5. HTTP 無法加密胀糜,而HTTPS 對傳輸?shù)臄?shù)據(jù)進行加密
- HTTP無需證書,而HTTPS 需要CA機構(gòu)wosign的頒發(fā)的SSL證書
HTTPS缺省工作在TCP協(xié)議443端口蒂誉,它的工作流程一般如以下方式:
1) 完成TCP三次同步握手
2) 客戶端驗證服務(wù)器數(shù)字證書教藻,通過,進入步驟3
3) DH算法協(xié)商對稱加密算法的密鑰右锨、hash算法的密鑰
4) SSL安全加密隧道協(xié)商完成
5)網(wǎng)頁以加密的方式傳輸括堤,用協(xié)商的對稱加密算法和密鑰加密,保證數(shù)據(jù)機密性绍移;用協(xié)商的hash算法進行數(shù)據(jù)完整性保護悄窃,保證數(shù)據(jù)不被篡改
如果HTTPS是網(wǎng)銀服務(wù),以上SSL安全隧道成功建立才會要求用戶輸入賬戶信息蹂窖,賬戶信息是在安全隧道里傳輸轧抗,所以不會泄密!
HTTPS = HTTP + SSL + 認證 + 完整保護
計算機網(wǎng)絡(luò)5層網(wǎng)絡(luò)體系結(jié)構(gòu)
應(yīng)用層
運輸層
網(wǎng)絡(luò)層(網(wǎng)際層)
數(shù)據(jù)鏈路層
物理層
物理層:
主要任務(wù):考慮怎樣才能在連接各種計算的傳輸媒體上傳輸數(shù)據(jù)比特流
數(shù)據(jù)鏈路層(mac層):
主要任務(wù):在同一個局域網(wǎng)中恼策,分組怎樣從一個主機傳送到另一個主機(不經(jīng)過路由器)
將網(wǎng)際層交下來的IP數(shù)據(jù)報組裝成幀鸦致,在相鄰結(jié)點間的鏈路上傳送幀
幀包括的數(shù)據(jù):同步信息潮剪、地址信息、差錯控制等
工作: 1分唾、封裝成幀:數(shù)據(jù)的前后添加首部和尾部
2抗碰、透明傳輸:某一個實際存在的事物看起來卻是好像不存在一個(方法:字節(jié)填充法)
3、差錯檢測
協(xié)議:PPP(點對點協(xié)議)
網(wǎng)際層(IP層):
主要任務(wù):分組怎樣從一個網(wǎng)絡(luò)通過路由器轉(zhuǎn)發(fā)到另一個網(wǎng)絡(luò)
為交換網(wǎng)上的不同主機提供通信服務(wù)
把傳輸層產(chǎn)生的報文段或用戶數(shù)據(jù)報封裝成分組或包進行傳送(IP數(shù)據(jù)報)
選擇合適的路由绽乔,使源主機運輸層傳下來的分組能夠通過網(wǎng)絡(luò)中的路由器找到目的主機
運輸層(TCP/UDP):
主要任務(wù):向兩個主機中進程之間的通信提供通用的數(shù)據(jù)傳輸服務(wù)(也就是提供通信服務(wù))
TCP:面向連接的弧蝇、可靠的數(shù)據(jù)傳輸服務(wù),傳輸?shù)臄?shù)據(jù)單位是報文段
UDP:無連接的折砸、盡最大努力的數(shù)據(jù)傳輸服務(wù)(不可靠的)看疗,數(shù)據(jù)傳輸單位是用戶數(shù)據(jù)報
**應(yīng)用層: **
主要任務(wù):位于不同主機中的多個應(yīng)用進程之間進行通信和協(xié)同工作
DNS:解析域名
數(shù)據(jù)的整條發(fā)送鏈?zhǔn)牵?/strong>
1、某進程(也就是在應(yīng)用層)準(zhǔn)備好待傳輸數(shù)據(jù)睦授,若目的地址是域名則要先通過DNS解析成IP地址
2两芳、交付到運輸層(TCP/UDP層),運輸層對數(shù)據(jù)進行適當(dāng)?shù)姆纸M等操作去枷,后對每一個分組數(shù)組加上首部形成報文段(或用戶數(shù)據(jù)報)首部包括源地址怖辆、源端口、目的地址删顶、目的端口和一些其他的諸如校驗和等數(shù)據(jù)
3竖螃、交付到網(wǎng)際層(IP層),對分組數(shù)據(jù)加上首部形成IP數(shù)據(jù)報逗余,首部包括源地址特咆、目的地址(跟運輸層的目的地址不同,運輸層的目的地址是數(shù)據(jù)要傳送的最終地址录粱,而該目的地址是通過路由表信息得出腻格,是該數(shù)據(jù)下一步該轉(zhuǎn)移的目的計算機)和校驗和等數(shù)據(jù)
4、交付到數(shù)據(jù)鏈路層(mac層)关摇,先是對把數(shù)據(jù)封裝成幀(也就是添加首部[SOH]和尾部[EOT])荒叶,然后進行透明傳輸(也就是封裝的數(shù)據(jù)里面,如果出現(xiàn)首部SOH和尾部EOT這樣的數(shù)據(jù)输虱,對其進行轉(zhuǎn)義些楣,也就是加上ESC轉(zhuǎn)義字符,這種方法稱為字節(jié)/字符填充)
5宪睹、交付到物理層愁茁,根據(jù)數(shù)據(jù)鏈路層的mac知道要傳輸?shù)侥康挠嬎銠C,通過特定的傳輸介質(zhì)傳送到下一個地址
6亭病、若源主機與最終目的主機在同一個網(wǎng)段鹅很,則該地址是最終的目的主機,開始接收數(shù)據(jù)罪帖,進入第7步驟促煮,若源主機和最終目的主機不在同一個網(wǎng)段邮屁,進入第11步驟
7、交付到數(shù)據(jù)鏈路層菠齿,對數(shù)據(jù)進行卸裝佑吝,該層會對接收的數(shù)據(jù)進行差錯檢測,有差錯的數(shù)據(jù)都會被丟棄
8绳匀、交付到IP層芋忿,解幀校驗
9、交付到運輸層疾棵,在該主機上戈钢,根據(jù)端口找到對應(yīng)的應(yīng)用,當(dāng)使用的TCP協(xié)議時是尔,提供一種面向連接的可靠的傳輸服務(wù)殉了,可以說是建立了一個虛擬通道,源主機的數(shù)據(jù)通過該虛擬通道進行傳輸拟枚;若是使用的UDP協(xié)議時宣渗,提供一種面向的非連接的盡最大努力的不可靠的傳輸服務(wù),數(shù)據(jù)傳輸快梨州,但是無法保證數(shù)據(jù)100%傳輸。
10田轧、建立了傳輸連接后暴匠,應(yīng)用開始接收數(shù)據(jù),發(fā)送方數(shù)據(jù)和接收方都必須滿足相同的標(biāo)準(zhǔn)應(yīng)用層協(xié)議傻粘,如http每窖、ftp、smtp等弦悉,通過標(biāo)準(zhǔn)協(xié)議應(yīng)用即可正確的接收源主機發(fā)送過來的數(shù)據(jù)窒典。
11、該計算機不是最終主機稽莉,那該計算機就是路由器也就是用于轉(zhuǎn)發(fā)分組數(shù)據(jù)的中轉(zhuǎn)站瀑志,首先接收數(shù)據(jù)的處理同步驟7和8一樣,然后接下來的流程又是如同步驟3,
12污秆、如此循環(huán)直至找到最終主機劈猪,將數(shù)據(jù)傳送到目的應(yīng)用
簡單的說法:
1)主機A首先將數(shù)據(jù)傳送給本主機的應(yīng)用層,在應(yīng)用層上良拼,數(shù)據(jù)加上首部(包含地址)战得,傳給運輸層。
2)加上首部的數(shù)據(jù)傳到運輸層庸推,在加上運輸層的控制信息常侦,傳給網(wǎng)絡(luò)層浇冰。
3)網(wǎng)絡(luò)層把運輸層傳來的數(shù)據(jù)報或報文段,封裝成包或分組聋亡,傳給數(shù)據(jù)鏈路層肘习。
4)數(shù)據(jù)鏈路層將ip加上本層的首部和尾部,組裝成幀杀捻,由物理層傳輸給主機B的物理層井厌。
5)主機B中物理層的數(shù)據(jù)傳到數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層致讥,運輸層仅仆,應(yīng)用層,最后傳給主機B垢袱。
ip地址和硬件地址MAC的區(qū)別:
在網(wǎng)絡(luò)層墓拜,運輸層,應(yīng)用層使用的都是ip地址请契,而在數(shù)據(jù)鏈路層使用的是電腦的硬件地址咳榜。兩個地址在不同層上。
管道( pipe ):管道是一種半雙工的通信方式爽锥,數(shù)據(jù)只能單向流動涌韩,而且只能在具有親緣關(guān)系的進程間使用。進程的親緣關(guān)系通常是指父子進程關(guān)系氯夷。
有名管道 (named pipe) : 有名管道也是半雙工的通信方式臣樱,但是它允許無親緣關(guān)系進程間的通信。
信號量( semophore ) : 信號量是一個計數(shù)器腮考,可以用來控制多個進程對共享資源的訪問雇毫。它常作為一種鎖機制,防止某進程正在訪問共享資源時踩蔚,其他進程也訪問該資源棚放。因此,主要作為進程間以及同一進程內(nèi)不同線程之間的同步手段馅闽。
消息隊列( message queue ) : 消息隊列是由消息的鏈表飘蚯,存放在內(nèi)核中并由消息隊列標(biāo)識符標(biāo)識。消息隊列克服了信號傳遞信息少捞蛋、管道只能承載無格式字節(jié)流以及緩沖區(qū)大小受限等缺點孝冒。
信號 ( sinal ) : 信號是一種比較復(fù)雜的通信方式,用于通知接收進程某個事件已經(jīng)發(fā)生拟杉。
共享內(nèi)存( shared memory ) :共享內(nèi)存就是映射一段能被其他進程所訪問的內(nèi)存庄涡,這段共享內(nèi)存由一個進程創(chuàng)建,但多個進程都可以訪問搬设。共享內(nèi)存是最快的 IPC 方式穴店,它是針對其他進程間通信方式運行效率低而專門設(shè)計的撕捍。它往往與其他通信機制,如信號兩泣洞,配合使用忧风,來實現(xiàn)進程間的同步和通信。
套接字( socket ) : 套解口也是一種進程間通信機制球凰,與其他通信機制不同的是狮腿,它可用于不同及其間的進程通信。