TCP協(xié)議知識(shí)盤點(diǎn)

首先需要回顧:TCP與UDP的區(qū)別予弧、差異鼓寺、以及應(yīng)用場景

TCP對應(yīng)的協(xié)議和UDP對應(yīng)的協(xié)議

TCP對應(yīng)的協(xié)議
(1) FTP(21):定義了文件傳輸協(xié)議丑搔,使用21端口勾缭。常說某某計(jì)算機(jī)開了FTP服務(wù)便是啟動(dòng)了文件傳輸服務(wù)疏遏。下載文件脉课,上傳主頁,都要用到FTP服務(wù)财异。
(2) Telnet(23):(遠(yuǎn)程登陸協(xié)議)它是一種用于遠(yuǎn)程登陸的端口倘零,用戶可以以自己的身份遠(yuǎn)程連接到計(jì)算機(jī)上,通過這種端口可以提供一種基于DOS模式下的通信服務(wù)戳寸。如以前的BBS是-純字符界面的呈驶,支持BBS的服務(wù)器將23端口打開,對外提供服務(wù)疫鹊。
(3) SMTP(25):定義了簡單郵件傳送協(xié)議袖瞻,現(xiàn)在很多郵件服務(wù)器都用的是這個(gè)協(xié)議,用于發(fā)送郵件拆吆。如常見的免費(fèi)郵件服務(wù)中用的就是這個(gè)郵件服務(wù)端口聋迎,所以在電子郵件設(shè)置-中常看到有這么SMTP端口設(shè)置這個(gè)欄锈拨,服務(wù)器開放的是25號(hào)端口砌庄。
(4) POP3(110):它是和SMTP對應(yīng),POP3用于接收郵件。通常情況下娄昆,POP3協(xié)議所用的是110端口佩微。也是說,只要你有相應(yīng)的使用POP3協(xié)議的程序(例如Fo-xmail或Outlook)萌焰,就可以不以Web方式登陸進(jìn)郵箱界面哺眯,直接用郵件程序就可以收到郵件(如是163郵箱就沒有必要先進(jìn)入網(wǎng)易網(wǎng)站,再進(jìn)入自己的郵-箱來收信)扒俯。
(5)HTTP(80)協(xié)議:是從Web服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議奶卓。
UDP對應(yīng)的協(xié)議
(1) DNS(53):用于域名解析服務(wù),將域名地址轉(zhuǎn)換為IP地址撼玄。DNS用的是53號(hào)端口夺姑。
(2) RIP:路由信息協(xié)議,端口520
(2) SNMP(161):簡單網(wǎng)絡(luò)管理協(xié)議掌猛,使用161號(hào)端口盏浙,是用來管理網(wǎng)絡(luò)設(shè)備的。由于網(wǎng)絡(luò)設(shè)備很多荔茬,無連接的服務(wù)就體現(xiàn)出其優(yōu)勢废膘。
(3) TFTP(69)(Trival File Transfer Protocal),簡單文件傳輸協(xié)議慕蔚,該協(xié)議在熟知端口69上使用UDP服務(wù)丐黄。

HTTP協(xié)議是TCP對應(yīng)協(xié)議之一,主要用于web超文本網(wǎng)絡(luò)訪問孔飒。

DNS是UDP隊(duì)員協(xié)議之一灌闺,主要用于域名解析

Http request的幾種類型

HTTP協(xié)議中共定義了八種方法或者叫“動(dòng)作”來表明對Request-URI指定的資源的不同操作方式,具體介紹如下:

GET:向特定的資源發(fā)出請求十偶。
【1】GET請求的數(shù)據(jù)會(huì)附在URL之后(就是把數(shù)據(jù)放置在HTTP協(xié)議頭中)菩鲜,以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連惦积,所以相對安全性低接校,可以直接從包頭來分析數(shù)據(jù)。且傳送的數(shù)據(jù)量較小狮崩,不能大于2KB蛛勉。注意在FORM(表單)中,Method默認(rèn)為"GET"睦柴。

POST:向指定資源提交數(shù)據(jù)進(jìn)行處理請求(例如提交表單或者上傳文件)诽凌。數(shù)據(jù)被包含在請求體中。POST請求可能會(huì)導(dǎo)致新的資源的創(chuàng)建和/或已有資源的修改坦敌。 .POST把提交的數(shù)據(jù)則放置在是HTTP包的包體中侣诵,相對安全性高痢法,且數(shù)據(jù)量一般不受限制(所以基本都用post來請求,先post json字段自證身份杜顺,然后接收回來的信息)财搁。

PUT:向指定資源位置上傳其最新內(nèi)容。
DELETE:請求服務(wù)器刪除Request-URI所標(biāo)識(shí)的資源躬络。
HEAD:請求讀取由URL所標(biāo)志的信息的首部尖奔。
OPTIONS:返回服務(wù)器針對特定資源所支持的HTTP請求方法。也可以利用向Web服務(wù)器發(fā)送'*'的請求來測試服務(wù)器的功能性穷当。
TRACE:回顯服務(wù)器收到的請求提茁,主要用于測試或診斷。
CONNECT:HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器馁菜。

電腦上訪問一個(gè)網(wǎng)頁茴扁,整個(gè)過程是怎么樣的:DNS、HTTP火邓、TCP丹弱、OSPF、IP铲咨、ARP

  1. 瀏覽器分析連接指向的頁面URL(http://www.baidu.com)
  2. 瀏覽器向DNS請求www.baidu.com.的IP地址(需要了解DNS是UDP的對應(yīng)協(xié)議之一)
  3. 域名系統(tǒng)DNS解析出百度官網(wǎng)的服務(wù)器IP地址
  4. 瀏覽器與該服務(wù)器建立TCP連接(默認(rèn)端口80)(需要了解TCP三次握手連接過程)
  5. 瀏覽器發(fā)出HTTP請求獲取指定頁面。(需要了解HTTP與HTTPS的區(qū)別)
  6. 服務(wù)器通過HTTP響應(yīng)把文件對應(yīng)頁面發(fā)送給瀏覽器蜓洪。
  7. TCP連接釋放纤勒。
  8. 瀏覽器將文件進(jìn)行解析,并將web網(wǎng)頁顯示給用戶隆檀。(需要了解本地解析方式)

HTTPS要了解SSL

SSL協(xié)議及完整交互過程

SSL是Netscape公司所提出的安全保密協(xié)議摇天,在瀏覽器(如Internet Explorer、Netscape Navigator)和Web服務(wù)器(如Netscape的Netscape Enterprise Server恐仑、ColdFusion Server等等)之間構(gòu)造安全通道來進(jìn)行數(shù)據(jù)傳輸泉坐,SSL運(yùn)行在TCP/IP層之上、應(yīng)用層之下裳仆,為應(yīng)用程序提供加密數(shù)據(jù)通道腕让,它采用了RC4、MD5 以及RSA等加密算法歧斟,使用40 位的密鑰纯丸,適用于商業(yè)信息的加密。

開始加密通信之前静袖,客戶端和服務(wù)器首先必須建立連接和交換參數(shù)觉鼻,這個(gè)過程叫做握手(handshake)。
1 客戶端發(fā)出請求(ClientHello)
首先队橙,客戶端(通常是瀏覽器)先向服務(wù)器發(fā)出加密通信的請求坠陈,這被叫做ClientHello請求萨惑。在這一步,客戶端主要向服務(wù)器提供以下信息仇矾。
(1) 支持的協(xié)議版本庸蔼,比如TLS 1.0版。
(2) 一個(gè)客戶端生成的隨機(jī)數(shù)若未,稍后用于生成"對話密鑰"朱嘴。
(3) 支持的加密方法,比如RSA公鑰加密粗合。
(4) 支持的壓縮方法萍嬉。

4.2 服務(wù)器回應(yīng)(SeverHello)
服務(wù)器收到客戶端請求后,向客戶端發(fā)出回應(yīng)隙疚,這叫做SeverHello壤追。服務(wù)器的回應(yīng)包含以下內(nèi)容:
(1) 確認(rèn)使用的加密通信協(xié)議版本,比如TLS 1.0版本供屉。如果瀏覽器與服務(wù)器支持的版本不一致行冰,服務(wù)器關(guān)閉加密通信。
(2) 一個(gè)服務(wù)器生成的隨機(jī)數(shù)伶丐,稍后用于生成"對話密鑰"悼做。
(3) 確認(rèn)使用的加密方法,比如RSA公鑰加密哗魂。
(4) 服務(wù)器證書肛走。(公鑰)
4.3 客戶端回應(yīng)
客戶端收到服務(wù)器回應(yīng)以后,首先驗(yàn)證服務(wù)器證書录别。如果證書不是可信機(jī)構(gòu)頒布朽色、或者證書中的域名與實(shí)際域名不一致、或者證書已經(jīng)過期组题,就會(huì)向訪問者顯示一個(gè)警告葫男,由其選擇是否還要繼續(xù)通信。
如果證書沒有問題崔列,客戶端就會(huì)從證書中取出服務(wù)器的公鑰梢褐。然后,向服務(wù)器發(fā)送下面三項(xiàng)信息峻呕。
(1) 一個(gè)隨機(jī)數(shù)利职。該隨機(jī)數(shù)用服務(wù)器公鑰加密,防止被竊聽瘦癌。
(2) 編碼改變通知猪贪,表示隨后的信息都將用雙方商定的加密方法和密鑰發(fā)送。
(3) 客戶端握手結(jié)束通知讯私,表示客戶端的握手階段已經(jīng)結(jié)束热押。這一項(xiàng)同時(shí)也是前面發(fā)送的所有內(nèi)容的hash值西傀,用來供服務(wù)器校驗(yàn)。
上面第一項(xiàng)的隨機(jī)數(shù)桶癣,是整個(gè)握手階段出現(xiàn)的第三個(gè)隨機(jī)數(shù)拥褂,又稱"pre-master key"。有了它以后牙寞,客戶端和服務(wù)器就同時(shí)有了三個(gè)隨機(jī)數(shù)饺鹃,接著雙方就用事先商定的加密方法,各自生成本次會(huì)話所用的同一把"會(huì)話密鑰"间雀。(會(huì)話秘鑰是采用對稱加密方式悔详,而這里的公鑰是采用非對稱加密)
4 服務(wù)器的最后回應(yīng)
服務(wù)器通過私鑰解密收到客戶端的第三個(gè)隨機(jī)數(shù)pre-master key之后,計(jì)算生成本次會(huì)話所用的"會(huì)話密鑰"惹挟。然后茄螃,向客戶端最后發(fā)送下面信息。
(1)編碼改變通知连锯,表示隨后的信息都將用雙方商定的加密方法和密鑰發(fā)送归苍。
(2)服務(wù)器握手結(jié)束通知,表示服務(wù)器的握手階段已經(jīng)結(jié)束运怖。這一項(xiàng)同時(shí)也是前面發(fā)送的所有內(nèi)容的hash值拼弃,用來供客戶端校驗(yàn)。
至此摇展,整個(gè)握手階段全部結(jié)束肴敛。接下來,客戶端與服務(wù)器進(jìn)入加密通信吗购,就完全是使用普通的HTTP協(xié)議,只不過用"會(huì)話密鑰"加密內(nèi)容砸狞。

https處理的一個(gè)過程捻勉,對稱加密和非對稱加密

這里之前有面試官問過,用RSA以及AES兩個(gè)算法刀森,設(shè)計(jì)一套簡單的加密通信邏輯踱启,當(dāng)時(shí)回答的就是這個(gè)。

  1. SSL原理很簡單研底。當(dāng)你的瀏覽器向服務(wù)器請求一個(gè)安全的網(wǎng)頁(通常是 https://)
  2. 服務(wù)器就把它的證書和公匙發(fā)回來
  3. 瀏覽器檢查證書是不是由可以信賴的機(jī)構(gòu)頒發(fā)的埠偿,確認(rèn)證書有效和此證書是此網(wǎng)站的。
  4. 瀏覽器使用公鑰加密了一個(gè)隨機(jī)對稱密鑰榜晦,包括加密的URL一起發(fā)送到服務(wù)器冠蒋。
  5. 服務(wù)器用自己的私匙解密了你發(fā)送的鑰匙。然后用這把對稱加密的鑰匙給你請求的URL鏈接解密乾胶。
  6. 服務(wù)器用你發(fā)的對稱鑰匙給你請求的網(wǎng)頁加密抖剿。你也有相同的鑰匙就可以解密發(fā)回來的網(wǎng)頁了

之前那個(gè)問題朽寞,簡單說就是因?yàn)镽SA非對稱加密,公鑰是假定所有人都知道的也可以獲取斩郎,密鑰則不行脑融。

所以你我雙方通信,我有RSA公鑰無私鑰缩宜,我作為客戶端肘迎。

則先拋開證書,假定你的RSA公鑰是可信的锻煌,所以就是我先用RSA的公鑰加密一段數(shù)據(jù)(里面包含我設(shè)置的AES的密鑰)妓布,發(fā)送給你。

你拿私鑰解密炼幔,得到AES的密鑰秋茫,然后你有了AES的對稱密鑰,就可以進(jìn)行加密通信了乃秀。

原理是一樣肛著,但是要說清楚~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市跺讯,隨后出現(xiàn)的幾起案子枢贿,更是在濱河造成了極大的恐慌,老刑警劉巖刀脏,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件局荚,死亡現(xiàn)場離奇詭異,居然都是意外死亡愈污,警方通過查閱死者的電腦和手機(jī)耀态,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暂雹,“玉大人首装,你說我怎么就攤上這事『脊颍” “怎么了仙逻?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長涧尿。 經(jīng)常有香客問我系奉,道長,這世上最難降的妖魔是什么姑廉? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任缺亮,我火速辦了婚禮,結(jié)果婚禮上庄蹋,老公的妹妹穿的比我還像新娘瞬内。我一直安慰自己迷雪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布虫蝶。 她就那樣靜靜地躺著章咧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪能真。 梳的紋絲不亂的頭發(fā)上赁严,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音粉铐,去河邊找鬼疼约。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蝙泼,可吹牛的內(nèi)容都是我干的程剥。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼汤踏,長吁一口氣:“原來是場噩夢啊……” “哼织鲸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起溪胶,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤搂擦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后哗脖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瀑踢,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年才避,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了橱夭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡桑逝,死狀恐怖徘钥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肢娘,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布舆驶,位于F島的核電站橱健,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏沙廉。R本人自食惡果不足惜拘荡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撬陵。 院中可真熱鬧珊皿,春花似錦网缝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至驶兜,卻和暖如春扼仲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抄淑。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工屠凶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肆资。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓矗愧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親郑原。 傳聞我的和親對象是個(gè)殘疾皇子唉韭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容