以下內(nèi)用均不是原創(chuàng),都是在網(wǎng)絡摘抄,留著面試用。如若侵權請告知
HTTP 和 HTTPS
- HTTP 的URL 以http:// 開頭,而HTTPS 的URL 以https:// 開頭
- HTTP 是不安全的,而 HTTPS 是安全的
- HTTP 標準端口是80 ,而 HTTPS 的標準端口是443
- 在OSI 網(wǎng)絡模型中,HTTP工作于應用層,而HTTPS 工作在傳輸層5. HTTP 無法加密,而HTTPS 對傳輸?shù)臄?shù)據(jù)進行加密
- HTTP無需證書,而HTTPS 需要CA機構wosign的頒發(fā)的SSL證書
HTTPS缺省工作在TCP協(xié)議443端口,它的工作流程一般如以下方式:
1) 完成TCP三次同步握手
2) 客戶端驗證服務器數(shù)字證書,通過,進入步驟3
3) DH算法協(xié)商對稱加密算法的密鑰、hash算法的密鑰
4) SSL安全加密隧道協(xié)商完成
5)網(wǎng)頁以加密的方式傳輸,用協(xié)商的對稱加密算法和密鑰加密,保證數(shù)據(jù)機密性;用協(xié)商的hash算法進行數(shù)據(jù)完整性保護,保證數(shù)據(jù)不被篡改
如果HTTPS是網(wǎng)銀服務,以上SSL安全隧道成功建立才會要求用戶輸入賬戶信息,賬戶信息是在安全隧道里傳輸,所以不會泄密!
HTTPS = HTTP + SSL + 認證 + 完整保護
計算機網(wǎng)絡5層網(wǎng)絡體系結構
應用層
運輸層
網(wǎng)絡層(網(wǎng)際層)
數(shù)據(jù)鏈路層
物理層
物理層:
主要任務:考慮怎樣才能在連接各種計算的傳輸媒體上傳輸數(shù)據(jù)比特流
數(shù)據(jù)鏈路層(mac層):
主要任務:在同一個局域網(wǎng)中,分組怎樣從一個主機傳送到另一個主機(不經(jīng)過路由器)
將網(wǎng)際層交下來的IP數(shù)據(jù)報組裝成幀,在相鄰結點間的鏈路上傳送幀
幀包括的數(shù)據(jù):同步信息、地址信息、差錯控制等
工作: 1、封裝成幀:數(shù)據(jù)的前后添加首部和尾部
2、透明傳輸:某一個實際存在的事物看起來卻是好像不存在一個(方法:字節(jié)填充法)
3、差錯檢測
協(xié)議:PPP(點對點協(xié)議)
網(wǎng)際層(IP層):
主要任務:分組怎樣從一個網(wǎng)絡通過路由器轉發(fā)到另一個網(wǎng)絡
為交換網(wǎng)上的不同主機提供通信服務
把傳輸層產(chǎn)生的報文段或用戶數(shù)據(jù)報封裝成分組或包進行傳送(IP數(shù)據(jù)報)
選擇合適的路由,使源主機運輸層傳下來的分組能夠通過網(wǎng)絡中的路由器找到目的主機
運輸層(TCP/UDP):
主要任務:向兩個主機中進程之間的通信提供通用的數(shù)據(jù)傳輸服務(也就是提供通信服務)
TCP:面向連接的、可靠的數(shù)據(jù)傳輸服務,傳輸?shù)臄?shù)據(jù)單位是報文段
UDP:無連接的、盡最大努力的數(shù)據(jù)傳輸服務(不可靠的),數(shù)據(jù)傳輸單位是用戶數(shù)據(jù)報
**應用層: **
主要任務:位于不同主機中的多個應用進程之間進行通信和協(xié)同工作
DNS:解析域名
數(shù)據(jù)的整條發(fā)送鏈是:
1、某進程(也就是在應用層)準備好待傳輸數(shù)據(jù),若目的地址是域名則要先通過DNS解析成IP地址
2、交付到運輸層(TCP/UDP層),運輸層對數(shù)據(jù)進行適當?shù)姆纸M等操作,后對每一個分組數(shù)組加上首部形成報文段(或用戶數(shù)據(jù)報)首部包括源地址、源端口、目的地址、目的端口和一些其他的諸如校驗和等數(shù)據(jù)
3、交付到網(wǎng)際層(IP層),對分組數(shù)據(jù)加上首部形成IP數(shù)據(jù)報,首部包括源地址、目的地址(跟運輸層的目的地址不同,運輸層的目的地址是數(shù)據(jù)要傳送的最終地址,而該目的地址是通過路由表信息得出,是該數(shù)據(jù)下一步該轉移的目的計算機)和校驗和等數(shù)據(jù)
4、交付到數(shù)據(jù)鏈路層(mac層),先是對把數(shù)據(jù)封裝成幀(也就是添加首部[SOH]和尾部[EOT]),然后進行透明傳輸(也就是封裝的數(shù)據(jù)里面,如果出現(xiàn)首部SOH和尾部EOT這樣的數(shù)據(jù),對其進行轉義,也就是加上ESC轉義字符,這種方法稱為字節(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ù)端口找到對應的應用,當使用的TCP協(xié)議時,提供一種面向連接的可靠的傳輸服務,可以說是建立了一個虛擬通道,源主機的數(shù)據(jù)通過該虛擬通道進行傳輸;若是使用的UDP協(xié)議時,提供一種面向的非連接的盡最大努力的不可靠的傳輸服務,數(shù)據(jù)傳輸快,但是無法保證數(shù)據(jù)100%傳輸。
10、建立了傳輸連接后,應用開始接收數(shù)據(jù),發(fā)送方數(shù)據(jù)和接收方都必須滿足相同的標準應用層協(xié)議,如http、ftp、smtp等,通過標準協(xié)議應用即可正確的接收源主機發(fā)送過來的數(shù)據(jù)。
11、該計算機不是最終主機,那該計算機就是路由器也就是用于轉發(fā)分組數(shù)據(jù)的中轉站,首先接收數(shù)據(jù)的處理同步驟7和8一樣,然后接下來的流程又是如同步驟3,
12、如此循環(huán)直至找到最終主機,將數(shù)據(jù)傳送到目的應用
簡單的說法:
1)主機A首先將數(shù)據(jù)傳送給本主機的應用層,在應用層上,數(shù)據(jù)加上首部(包含地址),傳給運輸層。
2)加上首部的數(shù)據(jù)傳到運輸層,在加上運輸層的控制信息,傳給網(wǎng)絡層。
3)網(wǎng)絡層把運輸層傳來的數(shù)據(jù)報或報文段,封裝成包或分組,傳給數(shù)據(jù)鏈路層。
4)數(shù)據(jù)鏈路層將ip加上本層的首部和尾部,組裝成幀,由物理層傳輸給主機B的物理層。
5)主機B中物理層的數(shù)據(jù)傳到數(shù)據(jù)鏈路層,網(wǎng)絡層,運輸層,應用層,最后傳給主機B。
ip地址和硬件地址MAC的區(qū)別:
在網(wǎng)絡層,運輸層,應用層使用的都是ip地址,而在數(shù)據(jù)鏈路層使用的是電腦的硬件地址。兩個地址在不同層上。
管道( pipe ):管道是一種半雙工的通信方式,數(shù)據(jù)只能單向流動,而且只能在具有親緣關系的進程間使用。進程的親緣關系通常是指父子進程關系。
有名管道 (named pipe) : 有名管道也是半雙工的通信方式,但是它允許無親緣關系進程間的通信。
信號量( semophore ) : 信號量是一個計數(shù)器,可以用來控制多個進程對共享資源的訪問。它常作為一種鎖機制,防止某進程正在訪問共享資源時,其他進程也訪問該資源。因此,主要作為進程間以及同一進程內(nèi)不同線程之間的同步手段。
消息隊列( message queue ) : 消息隊列是由消息的鏈表,存放在內(nèi)核中并由消息隊列標識符標識。消息隊列克服了信號傳遞信息少、管道只能承載無格式字節(jié)流以及緩沖區(qū)大小受限等缺點。
信號 ( sinal ) : 信號是一種比較復雜的通信方式,用于通知接收進程某個事件已經(jīng)發(fā)生。
共享內(nèi)存( shared memory ) :共享內(nèi)存就是映射一段能被其他進程所訪問的內(nèi)存,這段共享內(nèi)存由一個進程創(chuàng)建,但多個進程都可以訪問。共享內(nèi)存是最快的 IPC 方式,它是針對其他進程間通信方式運行效率低而專門設計的。它往往與其他通信機制,如信號兩,配合使用,來實現(xiàn)進程間的同步和通信。
套接字( socket ) : 套解口也是一種進程間通信機制,與其他通信機制不同的是,它可用于不同及其間的進程通信。