詞匯匯總
TCP/IP吟策、TCP核行、UDP精算、HTTP伯病、Socket等
詞匯解析:TCP/IP
百度百科:
Transmission Control Protocol/Internet Protocol的簡(jiǎn)寫,中譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議赠幕,又名網(wǎng)絡(luò)通訊協(xié)議俄精,是Internet最基本的協(xié)議、Internet國(guó)際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ)榕堰,由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成竖慧。TCP/IP 定義了電子設(shè)備如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉?biāo)準(zhǔn)逆屡。協(xié)議采用了4層的層級(jí)結(jié)構(gòu)圾旨,每一層都呼叫它的下一層所提供的協(xié)議來(lái)完成自己的需求。通俗而言:TCP負(fù)責(zé)發(fā)現(xiàn)傳輸的問(wèn)題魏蔗,一有問(wèn)題就發(fā)出信號(hào)砍的,要求重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡剌褐巍6鳬P是給因特網(wǎng)的每一臺(tái)聯(lián)網(wǎng)設(shè)備規(guī)定一個(gè)地址廓鞠。
自我解讀:
TCP/IP其實(shí)就是一系列協(xié)議的集合。計(jì)算機(jī)與計(jì)算機(jī)之間溝通必然和人類之間溝通是一樣的道理谣旁,也需要制定一套規(guī)范的協(xié)議(也就是我們?nèi)祟愓f(shuō)話的語(yǔ)法)來(lái)約束雙方進(jìn)行數(shù)據(jù)的溝通床佳。為什么是一系列協(xié)議呢?這個(gè)得從兩個(gè)方面去解讀:第一個(gè)方面是橫向的榄审,每一層都有很多的不同功能的協(xié)議砌们;其次是縱向的,就是說(shuō)整個(gè)計(jì)算機(jī)從整合數(shù)據(jù)到發(fā)送數(shù)據(jù)出去分了很多功能模塊來(lái)分別處理復(fù)雜的過(guò)程搁进,這就是網(wǎng)絡(luò)中很重要的分層概念了浪感。稍后會(huì)說(shuō)到分層的概念以及TCP/IP到底分幾層。
網(wǎng)絡(luò)分層
為什么分層:
這在工業(yè)設(shè)計(jì)上是非常重要的概念也就是模塊化饼问。就是把一個(gè)具備不同功能的整體劃分成很多個(gè)不同層次的模塊影兽。每一層模塊做各司其職。這種設(shè)計(jì)思想也是為了服務(wù)市場(chǎng)莱革,因?yàn)檫@樣的話市場(chǎng)服務(wù)就能夠細(xì)化峻堰,并且統(tǒng)一,大家只要遵循統(tǒng)一的規(guī)則協(xié)議去生產(chǎn)自己的產(chǎn)品就好了驮吱,我們的網(wǎng)絡(luò)接口后者網(wǎng)絡(luò)傳輸介質(zhì)壞了可以直接換茧妒,不管你是什么牌子的萧吠,這就是遵守標(biāo)準(zhǔn)帶來(lái)的方便左冬。就好比說(shuō)蘋果手機(jī)和安卓手機(jī)一樣,蘋果手機(jī)特立獨(dú)行纸型,這樣的話他就是唯一的拇砰,那么他的配件也就賣的非常貴了梅忌。
不同分層體系:
剛說(shuō)到蘋果手機(jī)和安卓手機(jī),那么網(wǎng)絡(luò)上其實(shí)也有兩套分層標(biāo)準(zhǔn)除破,一套是ISO(國(guó)際標(biāo)準(zhǔn)化組織牧氮,注意不是iOS!9宸恪踱葛!敲黑板!9獍印尸诽!)制定的OSI七層模型;還有一套就是我們的TCP/IP的四層模型(這是事實(shí)標(biāo)準(zhǔn))盯另。
PS: 雖然國(guó)際上認(rèn)可的是OSI模型性含,因?yàn)檫@個(gè)更權(quán)威而且足夠細(xì)致有七層,但是呢在制定這個(gè)標(biāo)準(zhǔn)的時(shí)候鸳惯,TCP/IP這個(gè)標(biāo)準(zhǔn)已經(jīng)執(zhí)行過(guò)一段時(shí)間了商蕴,已經(jīng)成為事實(shí)標(biāo)準(zhǔn)了,所以后面基本上大家都遵循TCP/IP標(biāo)準(zhǔn)芝发,那么OSI模型就用來(lái)給大家研究問(wèn)題和更好的理解網(wǎng)路結(jié)構(gòu)绪商。
OSI七層模型:
物理層
數(shù)據(jù)鏈路層
網(wǎng)絡(luò)層
傳輸層
會(huì)話層
表示層
應(yīng)用層
TCP/IP四層
網(wǎng)絡(luò)接口層(物理層和數(shù)據(jù)鏈路層合并為網(wǎng)絡(luò)接口層)
網(wǎng)絡(luò)層
傳輸層
應(yīng)用層(會(huì)話表示應(yīng)用層統(tǒng)一為應(yīng)用層)
具體的每一層有什么作用,都是用來(lái)干嘛的后德,可以參看文末的參考鏈接
為何叫TCP/IP協(xié)議族
因?yàn)樵诰W(wǎng)絡(luò)的分層結(jié)構(gòu)中部宿,每一層都是有很多的協(xié)議的,如果沒(méi)有這些統(tǒng)一的協(xié)議瓢湃,設(shè)備與設(shè)備之間是無(wú)法進(jìn)行通信的理张,包括物理層打水晶頭都是有標(biāo)準(zhǔn)的,要不然數(shù)據(jù)沒(méi)法進(jìn)行傳輸绵患,就跟我們平時(shí)說(shuō)話一樣雾叭,你說(shuō)的是中文,我說(shuō)的是英語(yǔ)那這樣的很難懂落蝙,有人說(shuō)找個(gè)翻譯织狐,那這樣的話還得找個(gè)不同廠商之間都支持的中間設(shè)備,那這樣是多此一舉的筏勒,所以才有了統(tǒng)一的標(biāo)準(zhǔn)協(xié)議
PS: 水晶頭打法一般有兩種568A移迫、568B,一般現(xiàn)在遵循的是568B打法管行,網(wǎng)線一般有8根線的厨埋,1236負(fù)責(zé)數(shù)據(jù)通信,那么具體的線序標(biāo)準(zhǔn)打法:
橙白捐顷、橙荡陷、綠白雨效、藍(lán)、藍(lán)白废赞、綠徽龟、棕白、棕
跑題了唉地,剛剛說(shuō)到每一層都有每一層的協(xié)議据悔,那么重要的兩層是網(wǎng)絡(luò)和傳輸層,網(wǎng)絡(luò)層主要的協(xié)議為IP(internet protocol)協(xié)議,也叫可路由協(xié)議耘沼,是所以路由協(xié)議的基礎(chǔ)屠尊,這一層很多的動(dòng)態(tài)路由協(xié)議之類的;傳輸層主要有兩個(gè)協(xié)議耕拷,具體如下:
- TCP(Transmission Contorl Protocol)傳輸控制協(xié)議讼昆,控制的意思我的理解是具有確認(rèn)重傳機(jī)制,能夠有效控制數(shù)據(jù)報(bào)文的傳輸骚烧,面向有連接的傳輸協(xié)議
- UDP(User Datagram Protocol)用戶數(shù)據(jù)報(bào)協(xié)議浸赫,我的意思理解是就像發(fā)電報(bào)一樣,只管發(fā)不管收的赃绊,就像諜戰(zhàn)片一樣既峡,約定好時(shí)間發(fā)報(bào)文就一定要發(fā),即便外面有電報(bào)偵查車也得發(fā)碧查,所以很危險(xiǎn)([壞笑][壞笑][壞笑])运敢,所以這個(gè)是實(shí)時(shí)的但是是不可靠的,面向無(wú)連接的傳輸協(xié)議
那么我們基本上用TCP也是比較多忠售,除非一些實(shí)時(shí)性的比如說(shuō)視頻語(yǔ)音之類的會(huì)采用UDP之外很大程度上還是TCP居多传惠,所以傳輸層就用TCP來(lái)代替,這樣TCP/IP協(xié)議族就是這么來(lái)的稻扬。
詞匯解析:TCP
上面講了一點(diǎn)卦方,那這里就不多講了,我下面貼一下鏈接泰佳。重要的是TCP的三次握手和四次揮手盼砍。
- 三次握手:客戶端和服務(wù)器端通過(guò)三次握手建立連接,連接建立好之后就可以通過(guò)這個(gè)連接來(lái)傳輸應(yīng)用數(shù)據(jù)逝她。其中要了解是怎么樣利用這里面的字段來(lái)實(shí)現(xiàn)確認(rèn)和重傳機(jī)制的浇坐。這個(gè)大家要搞清楚。一定要搞清楚確認(rèn)是通過(guò)來(lái)什么來(lái)確認(rèn)報(bào)文的正確性的黔宛,重傳又是根據(jù)什么來(lái)重新傳輸一份數(shù)據(jù)的近刘。這個(gè)很有可能面試會(huì)問(wèn)到。
- 四次揮手:客戶端和服務(wù)端之間解除連接時(shí)候的機(jī)制。
鏈接如下:
《TCP/IP詳解:卷一》-TCP部分講解
詞匯解析:Scoket
何為Scoket跌宛,這個(gè)大家可以百度下,相信大家可能百度一下之后,看下百度的說(shuō)法:
socket(計(jì)算機(jī)專業(yè)術(shù)語(yǔ))
網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換积仗,這個(gè)連接的一端稱為一個(gè)socket疆拘。
建立網(wǎng)絡(luò)通信連接至少要一對(duì)端口號(hào)(socket)。socket本質(zhì)是編程接口(API)寂曹,對(duì)TCP/IP的封裝哎迄,
TCP/IP也要提供可供程序員做網(wǎng)絡(luò)開發(fā)所用的接口,這就是Socket編程接口隆圆;HTTP是轎車漱挚,提供了
封裝或者顯示數(shù)據(jù)的具體形式;Socket是發(fā)動(dòng)機(jī),提供了網(wǎng)絡(luò)通信的能力渺氧。
Socket的英文原義是“孔”或“插座”旨涝。作為BSD UNIX的進(jìn)程通信機(jī)制,取后一種意思侣背。通常也稱作
"套接字"白华,用于描述IP地址和端口,是一個(gè)通信鏈的句柄贩耐,可以用來(lái)實(shí)現(xiàn)不同虛擬機(jī)或不同計(jì)算機(jī)之
間的通信弧腥。在Internet上的主機(jī)一般運(yùn)行了多個(gè)服務(wù)軟件,同時(shí)提供幾種服務(wù)潮太。每種服務(wù)都打開一
個(gè)Socket管搪,并綁定到一個(gè)端口上,不同的端口對(duì)應(yīng)于不同的服務(wù)铡买。Socket正如其英文原意那樣更鲁,像
一個(gè)多孔插座。一臺(tái)主機(jī)猶如布滿各種插座的房間奇钞,每個(gè)插座有一個(gè)編號(hào)岁经,有的插座提供220伏交流
電, 有的提供110伏交流電蛇券,有的則提供有線電視節(jié)目缀壤。 客戶軟件將插頭插到不同編號(hào)的插座,就
可以得到不同的服務(wù)纠亚。
其實(shí)我想說(shuō)下我的理解和看法塘慕。
首先Scoket是套接字編程,它是一套編程接口蒂胞,方便我們開發(fā)人員更好的操作傳輸層建立客戶端與服務(wù)端之間的連接图呢。那怎么建立連接呢就需要我們?nèi)フ{(diào)起TCP發(fā)起連接請(qǐng)求,所以為了方便開發(fā)人員開發(fā)相應(yīng)的功能和業(yè)務(wù)浑劳,就有了這個(gè)套接字編程Scoket編程仰美。所以它不是一個(gè)協(xié)議。
未完待續(xù)...
參考鏈接
iOS網(wǎng)絡(luò)協(xié)議----HTTP/TCP/IP淺析
淺談 CFNetwork (附測(cè)試DEMO)
HTTP協(xié)議—— 簡(jiǎn)單認(rèn)識(shí)TCP/IP協(xié)議
《TCP/IP詳解:卷一》-TCP部分講解
《TCP/IP詳解 卷一:協(xié)議》讀書筆記--概述
[深入淺出Cocoa]iOS網(wǎng)絡(luò)編程之CFNetwork
[深入淺出Cocoa]Bonjour網(wǎng)絡(luò)編程
懵逼的HTTP兵扬、Socket與TCP