一、基本概念
1.1 什么是網(wǎng)絡(luò)協(xié)議倡勇?
- 互聯(lián)網(wǎng)上端對端實(shí)現(xiàn)互聯(lián)過程中逞刷,必須有各種各樣的協(xié)議規(guī)定傳輸?shù)姆绞剑渲凶畛R姷膮f(xié)議就是 HTTP
1.2 Java跨平臺原理
-
利用各個平臺安裝的JVM(Java虛擬機(jī))妻熊,運(yùn)行Java程序夸浅, 一次編譯,多端運(yùn)行
1.3 C/C++ 跨平臺原理
-
使用平臺自己的編譯器生成對應(yīng)平臺的可執(zhí)行文件
1.4 網(wǎng)絡(luò)互連模型
1.5 請求過程
- 每一層對數(shù)據(jù)進(jìn)行包裝后扔役,傳給下一層帆喇,下一層再進(jìn)行包裝,依次類推
-
每一次向上回傳時,解除自己對應(yīng)層的包裝后,傳給上一層源梭,以此類推
1.6 每個層對應(yīng)的協(xié)議和應(yīng)用
1.7 計算機(jī)互連方式
網(wǎng)線直連
-
同軸電纜
- 半雙工通信
- 容易沖突
- 不安全
-
中間斷了氓侧,整個癱瘓
-
集線器(Hub)
-
跟同軸電纜一樣
-
-
網(wǎng)橋
-
能夠通過自學(xué)習(xí)得知每個接口那側(cè)的地址,從而起到隔絕沖突域的作用
育
-
-
交換機(jī)
- 相當(dāng)于更多接口的網(wǎng)橋
- 全雙工通信
- 比集線器安全
-
路由器
- 多個不同網(wǎng)段之間轉(zhuǎn)發(fā)數(shù)據(jù)举农。(網(wǎng)線直連,同軸電纜、集線器突颊、網(wǎng)橋、交換機(jī)只能在同一網(wǎng)段诱桂,連接設(shè)備處于同一廣播域)
- 隔絕廣播域(ARP廣播)
二洋丐、MAC地址和IP地址
2.0 網(wǎng)絡(luò)連接流程:由對方IP地址解析成MAC物理網(wǎng)卡地址再進(jìn)行連接通信
2.1 ARP
- 通過IP地址發(fā)出ARP廣播,獲取設(shè)備的MAC地址
2.2 RAPP挥等、DHCP
- 逆地址解析友绝,由MAC地址解析出IP地址
2.2 ICMP
- 互聯(lián)網(wǎng)控制消息協(xié)議
- 用于返回錯誤信息
2.3 IP地址的組成
- 網(wǎng)絡(luò)ID + 主機(jī)ID (由子網(wǎng)掩碼計算出來)
2.4 IP地址的分類
- A類:1 ~ 126
- B類:127 ~ 191
- C類:192 ~223
- D類:224 ~ 239
2.5 子網(wǎng)掩碼的CIDR表示法
- 192.168.1.100/24,代表子網(wǎng)掩碼有24個1肝劲,也就是255.255.255.0
- 123.210.100.200/16迁客,代表子網(wǎng)掩碼有16個1,也就是255.255.0.0
- 計算工具:https://www.sojson.com/convert/subnetmask.html
2.6 為什么要進(jìn)行子網(wǎng)劃分
- 讓更多同類IP劃分到同一網(wǎng)段辞槐,節(jié)省IP地址資源
三掷漱、路由
3.0 作用:跨網(wǎng)段通信
3.1 公網(wǎng)IP、私網(wǎng)IP
- 公網(wǎng)IP由ISP(通信運(yùn)營商向Inter NIC(因特網(wǎng)信息中心)申請)
- 私網(wǎng)IP主要用于局域網(wǎng)
- Internet上的路由器只有達(dá)到公網(wǎng)的路由表榄檬,沒有達(dá)到私網(wǎng)的路由表
- 公網(wǎng)就是我們?nèi)粘I暇W(wǎng)用到的IP卜范,私網(wǎng)就是公司內(nèi)部服務(wù)器的私有IP
3.2 NAT
- 私網(wǎng)IP訪問公網(wǎng)IP需要進(jìn)行NAT轉(zhuǎn)換
- 可以節(jié)約公網(wǎng)IP資源
- 會隱藏內(nèi)部正式IP
- 靜態(tài)轉(zhuǎn)換
- 動態(tài)轉(zhuǎn)換
- PAT,多對一轉(zhuǎn)換鹿榜,采用端口多路復(fù)用海雪,是目前使用最廣泛的方式
四锦爵、物理層
4.0 主要定義了接口標(biāo)準(zhǔn)、線纜標(biāo)準(zhǔn)奥裸、傳輸速率险掀、傳輸方式
4.1 數(shù)字信號、模擬信號
主要是物理設(shè)備湾宙,比如光貓樟氢,把模擬信號轉(zhuǎn)化為數(shù)字信號,這部分沒什么好說的
五侠鳄、數(shù)據(jù)鏈路層
5.0 從1個節(jié)點(diǎn)到相鄰節(jié)點(diǎn)的一段物理路線(有線或無線)埠啃,中間沒有其他交換交點(diǎn)
六、網(wǎng)絡(luò)層
6.0 決定數(shù)據(jù)的路徑選擇和轉(zhuǎn)寄畦攘,將網(wǎng)絡(luò)表頭(NH)加至數(shù)據(jù)包霸妹,以形成分組。網(wǎng)絡(luò)表頭包含了網(wǎng)絡(luò)資料知押。例如:互聯(lián)網(wǎng)協(xié)議(IP)等叹螟。
七、傳輸層
7.0 主要有兩個協(xié)議
- TCP
-
UDP
詳情請看:
八、應(yīng)用層
8.1 應(yīng)用場景
- 超文本傳輸:HTTP静盅、HTTPS
- 文件傳輸:FTP
- 電子郵件:SMTP良价、POP3、IMAP
- 動態(tài)主機(jī)配置:DHCP
- 域名系統(tǒng):DNS
8.0 DNS
- 將域名轉(zhuǎn)化為IP地址
- 基于UDP或TCP協(xié)議蒿叠,占用53端口
8.1 DHCP
- 動態(tài)主機(jī)配置協(xié)議
- 基于UDP協(xié)議明垢,客戶端口為68端口
- DHCP服務(wù)器會從IP地址池中,挑選一個IP地址“出租“給客戶端一段時間市咽,時間到期就回收它們
- 平時家里上網(wǎng)的路由器就可以充當(dāng)DHCP服務(wù)器
九痊银、HTTP
9.0 超文本傳輸協(xié)議
- 是互聯(lián)網(wǎng)中應(yīng)用最廣泛的應(yīng)用層協(xié)議之一
- 設(shè)計HTTP最初的目的是:提供一種發(fā)布和接收HTML頁面的方法,由URI來標(biāo)識具體的資源
- 后面用HTTP來傳遞的數(shù)據(jù)格式不僅僅是HTML施绎,應(yīng)用非常廣泛
- HTML( Hyper Text Markup Language):超文本標(biāo)記語言
- 用以編寫網(wǎng)頁
9.1 歷代版本
- 1991年 HTTP/0.9:只是Get請求
- 1996年 HTTP/1.0 :
- 支持POST溯革、HEAD等請求方法,支持請求頭谷醉、響應(yīng)頭等致稀,支持更多種數(shù)據(jù)類型(不再局限于文本數(shù)據(jù))
- 瀏覽器的每次請求都需要與服務(wù)器建立一個TCP連接,請求處理完成后立即斷開TCP連接
- 1997年俱尼,HTTP/1.1(最經(jīng)典抖单、使用最廣泛的版本)
- 支持PUT、DELETE等請求方法
- 采用持久連接(Connection: keep-alive),多個請求可以共用同一個TCP連接
- 2015年矛绘,HTTP/2.0
- 2018年躺酒,HTTP/3.0
9.2 報文
9.3 請求方式
9.4 狀態(tài)碼
9.5 代理
- 正向代理:代理的對象是客戶端
- 作用:隱藏客戶端身份、繞過防火墻蔑歌、Internet訪問控制、數(shù)據(jù)過濾
- 反向代理:代理的對象是服務(wù)器
- 作用:隱藏服務(wù)器身份揽碘、安全防護(hù)次屠、負(fù)債均衡
9.6 抓包工具的原理
- Fiddler、Charles等抓包工具的原理:在客戶端啟動了正向代理服務(wù)
- Wireshark的原理是:通過底層驅(qū)動雳刺,攔截網(wǎng)卡上流過的數(shù)據(jù)
9.7 CDN 內(nèi)容分發(fā)網(wǎng)絡(luò)
- 利用最靠近每位用戶的服務(wù)器
- 更快更可靠地將音樂劫灶、圖片、視頻等資源文件(一般是靜態(tài)文件)放到CDN服務(wù)器掖桦,再由CDN服務(wù)器傳遞給用戶
十本昏、網(wǎng)絡(luò)安全
10.1 網(wǎng)絡(luò)層---ARP欺騙
- 可讓攻擊者獲取局域網(wǎng)上的數(shù)據(jù)包甚至可篡改數(shù)據(jù)包
- 可讓網(wǎng)絡(luò)上特定電腦之間無法正常通信(例如網(wǎng)絡(luò)執(zhí)法官這樣的軟件)
- 讓送至特定IP地址的流量被錯誤送到攻擊者所取代的地方
10.2 ARP欺騙---防護(hù)
- 靜態(tài)ARP
- DHCP Snooping
- 網(wǎng)絡(luò)設(shè)備可借由DHCP保留網(wǎng)絡(luò)上各電腦的MAC地址,在偽造的ARP數(shù)據(jù)包發(fā)出時即可偵測到
- 利用一些軟件監(jiān)聽ARP的不正常變動
10.3 Dos枪汪、DDos攻擊
- DoS攻擊(拒絕服務(wù)攻擊涌穆,Denial-of-Service attack)
- 使目標(biāo)電腦的網(wǎng)絡(luò)或系統(tǒng)資源耗盡,使服務(wù)暫時中斷或停止雀久,導(dǎo)致其正常用戶無法訪問
- DDoS攻擊(分布式拒絕服務(wù)攻擊宿稀,Distributed Denial-of-Service attack)
- 黑客使用網(wǎng)絡(luò)上兩個或以上被攻陷的電腦作為“僵尸”向特定的目標(biāo)發(fā)動DoS攻擊 -
- 2018年3月,GitHub遭到迄今為止規(guī)模最大的DDoS攻擊
- DoS攻擊可以分為2大類
- 帶寬消耗型:UDP洪水攻擊赖捌、ICMP洪水攻擊
- 資源消耗型:SYN洪水攻擊祝沸、LAND攻擊
10.4 Dos、DDos防御
-
防御方式通常為:入侵檢測越庇、流量過濾罩锐、和多重驗證
- 堵塞網(wǎng)絡(luò)帶寬的流量將被過濾,而正常的流量可正常通過
-
防火墻
- 防火墻可以設(shè)置規(guī)則卤唉,例如允許或拒絕特定通訊協(xié)議涩惑,端口或IP地址
- 當(dāng)攻擊從少數(shù)不正常的IP地址發(fā)出時,可以簡單的使用拒絕規(guī)則阻止一切從攻擊源IP發(fā)出的通信
- 復(fù)雜攻擊難以用簡單規(guī)則來阻止搬味,例如80端口遭受攻擊時不可能拒絕端口所有的通信境氢,因為同時會阻止合法流量
- 防火墻可能處于網(wǎng)絡(luò)架構(gòu)中過后的位置,路由器可能在惡意流量達(dá)到防火墻前即被攻擊影響
交換機(jī):大多數(shù)交換機(jī)有一定的速度限制和訪問控制能力
路由器:和交換機(jī)類似碰纬,路由器也有一定的速度限制和訪問控制能力
-
黑洞引導(dǎo)
- 將所有受攻擊計算機(jī)的通信全部發(fā)送至一個“黑洞”(空接口或不存在的計算機(jī)地址)或者有足夠能力處理洪流的網(wǎng)絡(luò)設(shè)備商萍聊,以避免網(wǎng)絡(luò)受到較大影響
-
流量清洗
- 當(dāng)流量被送到DDoS防護(hù)清洗中心時,通過采用抗DDoS軟件處理悦析,將正常流量和惡意流量區(qū)分開
- 正常的流量則回注回客戶網(wǎng)站
10.5 應(yīng)用層 --- DNS挾持
- DNS劫持寿桨,又稱為域名劫持
?攻擊者篡改了某個域名的解析結(jié)果,使得指向該域名的IP變成了另一個IP
?導(dǎo)致對相應(yīng)網(wǎng)址的訪問被劫持到另一個不可達(dá)的或者假冒的網(wǎng)址
?從而實(shí)現(xiàn)非法竊取用戶信息或者破壞正常網(wǎng)絡(luò)服務(wù)的目的 - 為防止DNS劫持,可以考慮使用更靠譜的DNS服務(wù)器亭螟,比如:114.114.114.114
?谷歌:8.8.8.8挡鞍、8.8.4.4
?微軟:4.2.2.1、4.2.2.2
?百度:180.76.76.76
?阿里:223.5.5.5预烙、223.6.6.6 - HTTP劫持:對HTTP數(shù)據(jù)包進(jìn)行攔截處理墨微,比如插入JS代碼
?比如你訪問某些網(wǎng)站時,在右下角多了個莫名其妙的彈窗廣告
10.5 HTTP協(xié)議的安全問題
? HTTP協(xié)議默認(rèn)是采取明文傳輸?shù)谋獾В虼藭泻艽蟮陌踩[患 ?常見的提高安全性的方法是:對通信內(nèi)容進(jìn)行加密后翘县,再進(jìn)行傳輸
? 常見的加密方式有
?不可逆
? 單向散列函數(shù):MD5、SHA等 ?可逆
? 對稱加密:DES谴分、3DES锈麸、AES等 ? 非對稱加密:RSA等
?其它
? 混合密碼系統(tǒng)
? 數(shù)字簽名
?證書
TODO:待續(xù)