socks (sockets)是一種網(wǎng)絡(luò)傳輸協(xié)議。 【主要是用于客戶端和服務(wù)器之間通訊的中間傳遞】
當(dāng)防火墻后的客端要訪問外部的服務(wù)器時(shí),就跟socks代理服務(wù)器連接。這個(gè)代理服務(wù)器控制客戶端訪問外網(wǎng)的資格,允許的話,就將客戶端的請求發(fā)往外部的服務(wù)器。(這樣就實(shí)現(xiàn)了代理服務(wù),經(jīng)常用來實(shí)現(xiàn)翻墻)
最新協(xié)議是版本5,比版本4增加了支持UDP、驗(yàn)證、以及IPv6.
OSI(7層結(jié)構(gòu))模型,socks基于表示層與傳輸層之間的會(huì)話層。
對于各種基于 TCP/IP的應(yīng)用層協(xié)議都能夠適應(yīng),幾乎是萬能的。
(ps:也就是OSI 結(jié)構(gòu)是在會(huì)話層,TCP/IP層是在應(yīng)用層,所以,ping不會(huì)經(jīng)過這層協(xié)議,也就是到達(dá)不到)
socks5####
socks5 是一個(gè)代理協(xié)議,它在使用tcp/ip 通訊的前端機(jī)器和服務(wù)器之間扮演一個(gè)中間的角色(中間媒介)。
使內(nèi)部網(wǎng)中的前端機(jī)器能夠訪問Internet網(wǎng)中的服務(wù)器。(SOCKS5 服務(wù)器通過將前端發(fā)來的請求轉(zhuǎn)發(fā)給真正的目標(biāo)服務(wù)器, 模擬了一個(gè)前端的行為)【前端和SOCKS5之間也是通過TCP/IP協(xié)議進(jìn)行通訊,前端將原本要發(fā)送給真正服務(wù)器的請求發(fā)送給SOCKS5服務(wù)器,然后SOCKS5服務(wù)器將請求轉(zhuǎn)發(fā)給真正的服務(wù)器】
或者使通訊更加安全。
通訊過程的特點(diǎn):(sock5)
SOCKS5 協(xié)議對于處在內(nèi)部網(wǎng)絡(luò)中的機(jī)器, 需要透過網(wǎng)絡(luò)中某些可以聯(lián)通外部 Internet 的機(jī)器訪問外部時(shí),有用。
SOCKS5服務(wù)器在將通訊請求發(fā)送給真正服務(wù)器的過程中,對于請求數(shù)據(jù)包本身不加任何改變。
SOCKS5服務(wù)器接收到真正服務(wù)器的響應(yīng)后,也原樣轉(zhuǎn)發(fā)給前端。
《http代理協(xié)議》###
http 代理協(xié)議與socks5協(xié)議不同,http代理是通過http協(xié)議進(jìn)行的,http代理服務(wù)器軟件了解通訊包的內(nèi)部結(jié)構(gòu),在轉(zhuǎn)發(fā)過程中還要對通訊進(jìn)行某種程序的修改和轉(zhuǎn)換。
socks5 協(xié)議:
和HTTP代理協(xié)議不同,SOCKS5實(shí)際上是一個(gè)傳輸層的代理協(xié)議。我們可以想象,如果每個(gè)具體的應(yīng)用層協(xié)議都要設(shè)計(jì)對應(yīng)的代理協(xié)議表達(dá)辦法,一個(gè)特定的代理服務(wù)器無論如何也支持不過來那么多新出現(xiàn)的協(xié)議。
可以說SOCKS5的出現(xiàn)緩解了各種具體協(xié)議需要專門設(shè)計(jì)代理協(xié)議的困難局面。不過,并不是凡是使用基于TCP/IP協(xié)議的應(yīng)用協(xié)議的軟件,都可以無條件地透過SOCKS5服務(wù)器進(jìn)行通訊,還要求前端軟件本身具有SOCKS5的接口,才能利用SOCKS5代理服務(wù)器。
運(yùn)行狀態(tài)
一個(gè)支持SOCKS5協(xié)議的前端,通常具有兩種運(yùn)行狀態(tài):
1)直接通訊狀態(tài),不使用SOCKS5接口。這時(shí)的通訊是針對最終服務(wù)器進(jìn)行
的。
2)SOCKS5 狀態(tài)。 使用 SOCKS5 接口將本來要發(fā)送給最終服務(wù)器的請求發(fā)
送給 SOCKS5 服務(wù)器。在前端和 SOCKS5 服務(wù)器進(jìn)行初始化會(huì)話的時(shí)候,前端
告訴了 SOCKS5 服務(wù)器關(guān)于最終服務(wù)器的 IP 地址和端口信息,所以 SOCKS5
服務(wù)器能夠忠實(shí)按照前端的要求啟動(dòng)和最終服務(wù)器的通訊過程。
SOCKS這個(gè)名詞并不是一組英文字頭的縮寫,而是一個(gè)和 TCP/IP的Socket端口有關(guān)的安全標(biāo)準(zhǔn),一般防火墻系統(tǒng)通常是象網(wǎng)關(guān)(Gateway)一樣是作用在OSI模型的第七層也就是應(yīng)用層上,對 TCP/IP的高級協(xié)議,如Telnet、FTP、HTTP和SMTP加以管制,而SOCKS作用在OSI模型的第五層也就是會(huì)話層上,象一個(gè)代理一樣對客戶端到服務(wù)器端或服務(wù)器和服務(wù)器之間的數(shù)據(jù)聯(lián)系提供安全上的服務(wù)。
由于SOCKS作用在會(huì)話層上,因此它是一個(gè)提供會(huì)話層到會(huì)話層間安全服務(wù)的方案,不受高層應(yīng)用程序變更的影響。
Socks代理只是簡單地傳遞數(shù)據(jù)包,而不必關(guān)心是何種應(yīng)用協(xié)議(比如FTP、HTTP和NNTP請求),所以Socks代理服務(wù)器比應(yīng)用層代理服務(wù)器要快。
ps: 代理還是沒有理解好socks5協(xié)議和http代理協(xié)議的區(qū)別?