1哺呜、OSI七層協(xié)議
#1、OSI七層協(xié)議
五層協(xié)議
應用層
傳輸層
網(wǎng)絡層
數(shù)據(jù)鏈路層
物理層
協(xié)議:規(guī)定數(shù)據(jù)的組織格式
格式:頭部+數(shù)據(jù)部分
封包裹的過程:數(shù)據(jù)外加頭
拆包裹的過程:拆掉頭獲取數(shù)據(jù)
2箕戳、五層協(xié)議
#2某残、五層協(xié)議
計算機1: 計算機2:
應用層 應用層
傳輸層 傳輸層
網(wǎng)絡層 網(wǎng)絡層
數(shù)據(jù)鏈路層 數(shù)據(jù)鏈路層
物理層 <===========交互機===========> 物理層
0101010101010
(源mac地址,xxxx)(源ip地址陵吸,目標ip地址)數(shù)據(jù)
(源mac地址玻墅,網(wǎng)關的mac地址)(172.16.10.10/24,101.100.200.11/10)數(shù)據(jù)
事先知道的是對方的ip地址
但是計算機的底層通信是基于ethernet以太網(wǎng)協(xié)議的mac地址通信
ARP:
所以必須能夠將ip地址解析成mac地址
3壮虫,協(xié)議詳解
#2.1 物理層負責發(fā)送電信號
一組物理層數(shù)據(jù)稱之為:位
單純的電信號毫無意義澳厢,必須對其進行分組
#2.2 數(shù)據(jù)鏈路層:ethernet以太網(wǎng)協(xié)議
規(guī)定1:一組數(shù)據(jù)稱之為一個數(shù)據(jù)幀
規(guī)定2:數(shù)據(jù)幀分成兩部分=》頭+數(shù)據(jù)
頭包含:源地址與目標地址环础,該地址是mac地址
數(shù)據(jù)包含:包含的是網(wǎng)絡層發(fā)過來的整體的內容
規(guī)定3:規(guī)定但凡接入互聯(lián)網(wǎng)的主機必須有一塊網(wǎng)卡,每塊網(wǎng)卡在出廠時都燒制好一個全世界獨一無二的地址剩拢,該地址稱之為mac地址
注意:計算機通信基本靠吼线得,即以太網(wǎng)協(xié)議的工作方式是廣播
#2.3 網(wǎng)絡層:IP協(xié)議
要達到的目的:
劃分廣播域
每一個廣播域但凡要接通外部,一定要有一個網(wǎng)關幫內部的計算機轉發(fā)包到公網(wǎng)
網(wǎng)關與外界通信走的是路由協(xié)議
規(guī)定1:一組數(shù)據(jù)稱之為一個數(shù)據(jù)包
規(guī)定2:數(shù)據(jù)幀分成兩部分=》頭+數(shù)據(jù)
頭包含:源地址與目標地址徐伐,該地址是IP地址
數(shù)據(jù)包含的:傳輸層發(fā)過來的整體的內容
ipv4地址:
8bit.8bit.8bit.8bit
0.0.0.0
255.255.255.255
子網(wǎng)掩碼:
8bit.8bit.8bit.8bit
255.255.255.0對應的二進制表達
11111111.11111111.11111111.00000000
一個合法的ipv4地址組成部分=ip地址/子網(wǎng)掩碼地址
172.16.10.1/255.255.255.0
172.16.10.1/24
計算機1:
172.16.10.1: 10101100.00010000.00001010.000000001
255255.255.255.0: 11111111.11111111.11111111.000000000
172.16.10.0: 10101100.00010000.00001010.000000000
計算機2:
172.16.10.2: 10101100.00010000.00001010.000000010
255.255.255.255.0: 11111111.11111111.11111111.000000000
172.16.10.0: 10101100.00010000.00001010.000000000
# 兩臺計算機在同一個局域網(wǎng)內
計算機1:172.16.10.10/24 直接 計算機2:172.16.10.11/24
ARP:
自己的ip贯钩,對方的ip
1、計算二者網(wǎng)絡地址办素,如果一樣角雷,拿到計算機2的mac地址就可以了
2、發(fā)送廣播包
發(fā)送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.11/24 數(shù)據(jù)
# 兩臺計算機不在同一個局域網(wǎng)內
計算機1:172.16.10.10/24 網(wǎng)關 計算機2:101.100.200.11/10
ARP:
自己的ip摸屠,對方的ip
1谓罗、計算機二者網(wǎng)絡地址,如果不一樣季二,應該拿到網(wǎng)關的mac地址
2檩咱、發(fā)送廣播包
發(fā)送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.1/24 數(shù)據(jù)
ip地址+mac地址=》標識全世界范圍內獨一無二的一臺計算機
或者:
ip地址=》標識全世界范圍內獨一無二的一臺計算機
4,tcp詳解
五層協(xié)議
計算機1: 計算機2:
應用層 應用層 ---> http/https/ftp協(xié)議
socket socket
傳輸層 段 傳輸層 ---> tcp/udp協(xié)議
網(wǎng)絡層 包 網(wǎng)絡層 ---> ip胯舷,arp協(xié)議-----> 夠將ip地址解析成mac地址
數(shù)據(jù)鏈路層 幀 數(shù)據(jù)鏈路層 ---> mac地址
物理層 <===========交互機===========> 物理層
客戶端軟件send 服務端軟件recv
操作系統(tǒng) 操作系統(tǒng)
計算機硬件<====物理介質=====>計算機硬件
ethernet頭+ip頭+tcp頭+應用層的頭+應用層數(shù)據(jù)
#一:傳輸層 tcp\udp=》基于端口
端口范圍0-65535刻蚯,0-1023為系統(tǒng)占用端口
ip+port=》標識全世界范圍內獨一無二的一個基于網(wǎng)絡通信的應用程序
基于tcp協(xié)議通信之前:必須建立一個雙向通信的鏈接
C-------------------->S
C<--------------------S
三次握手建立鏈接:
建立鏈接是為了傳數(shù)據(jù)做準備的,三次握手即可
四次揮手斷開鏈接
斷開鏈接時桑嘶,由于鏈接內有數(shù)據(jù)傳輸炊汹,所以必須分四次斷開
tcp是可靠傳輸?shù)? 發(fā)送數(shù)據(jù)必須等到對方確認后才算完成,才會將自己內存中的數(shù)據(jù)清理掉逃顶,否則重傳
ps:
建立連接時讨便,服務端大量RCVD,要不洪水攻擊/要不高并發(fā)(高并發(fā)的情況可以打開半鏈接池以政,只接受客戶端請求霸褒,沒有數(shù)據(jù))
四次握手,當服務端大量處于TIME_WAIT狀態(tài)時意味著服務端正在經歷高并發(fā)
tcp協(xié)議的半連接池:
backlog
[鏈接請求1,鏈接請求2,鏈接請求3,鏈接請求5]---》 當處理鏈接請求5時盈蛮,鏈接請求5從backlog移除废菱,再新進一個請求
半鏈接池只是原理上說得通對洪水攻擊沒有用,backlog是系統(tǒng)上一部分內存給backlog
#二:應用層:
可以自定義協(xié)議=》頭部+數(shù)據(jù)部分
自定義協(xié)議需要注意的問題:
1抖誉、兩大組成部分=頭部+數(shù)據(jù)部分
頭部:放對數(shù)據(jù)的描述信息
比如:數(shù)據(jù)要發(fā)給誰殊轴,數(shù)據(jù)的類型,數(shù)據(jù)的長度
數(shù)據(jù)部分:想要發(fā)的數(shù)據(jù)
2袒炉、頭部的長度必須固定
因為接收端要通過頭部獲取所接接收數(shù)據(jù)的詳細信息
http https ftp