Network學習-客戶/服務器網絡介紹

1.1理解tcp基礎

? ? tcp/ip = {protocol1和屎, protocol2,……春瞬,protocoln}

? ? Internet是在共享的線路上發(fā)送數據的:

? ? ? ? 在計算機上同時運行的程序通過一條單一的Modem或DSL線路連接互聯網柴信。(有點像電腦只是插了一根網線的感覺)

? ? ? ? ==換句話說==> 程序共享這條線路

? ? ? ? ==如何實現共享==> (相當于要運送一個大部件,通常派送員會選擇將這個大部件拆分成各個小零件宽气,寄到了家之后再通過說明書將其組裝起來【購買的踏步機】)大部件就相當于需要發(fā)送的“數據流”随常,派送員就相當于“tcp”潜沦,各個小零件就是“信息包”,快遞運輸線就好比“Internet”绪氛,寄到了家就是信息包到了”接收者“這里止潮,合起來就是 ==>?tcp把要發(fā)送的數據流分解成很多小信息包在Internet上傳輸(或許還伴有其他程序的信息包),而這些信息包到了接收者的地方會再次重新合成在一起钞楼。

? ? ? ? ==這樣的好處==> 通過分解成小的信息包喇闸,Internet連接就會用很少的時間來發(fā)送數據的每一個比特(bit),而其他程序的信息包也可以同時被傳送询件。

? ? 使用地方:

? ? ? ? 1)你需要一個可靠的數據傳輸燃乍,以確保你的數據完整無缺地到達目的地;

? ? ? ?2)你的協(xié)議需要不止一個請求和服務器的回答宛琅;

? ? ? ?3)你要發(fā)送較多的數據刻蟹;

? ? ? ?4)初始連接出現短暫的延遲是可以容忍的。

(1)尋址(為了實現信息包計劃嘿辟,tcp需要做的事情)

? ? ? ?1)tcp需要識別遠程的機器:基于tcp/ip的網絡舆瘪,每臺機器都有一個唯一的ip地址,識別機器就是知道了接受者機器的ip地址红伦;

? ? ? ? ? ? ==>要知道讓人類記住一串諸如192.168.1.1這樣的數字是很困難的英古,所以有了DNS:

? ? ? ? ? ? 當你要和一個遠程機器建立連接的時候,先申請連接該機器ip地址相對應的dns昙读,例如:www.google.com召调,dns就會提供一個ip地址,接下來就可以建立連接了蛮浑。(python在程序中常常隱藏dns層唠叛,所以很多時候都不需要直到它的存在,第四仗中會詳細介紹dns)

? ? ? ?2)tcp需要知道是與遠程機器上運行的哪個程序通信(例如沮稚,你想給在北京的ann的機器發(fā)送信息艺沼,而她的機器上正運行著兩個聊天客戶端和一個web瀏覽器,她的機器需要直到哪個程序應該接收你傳過來的數據蕴掏。):tcp使用端口號障般。每個程序使用一個唯一的端口號。這些端口號有時事先知道囚似,有時隨機指定剩拢。

? ? ? ? ? ? ==>每個tcp連接的端點是由一個ip地址和一個端口號來唯一標識的。

(2)可靠性

? ? ? ? ? ?在Internet上傳輸數據有很多意外:Modem改變了數據的幾個字節(jié)饶唤、某個路由器或許丟失了一個信息包徐伐、系統(tǒng)或許收到了順序錯誤的信息包、一個信息包或許收到了兩次募狂、一個主要的網絡電纜被鋤頭切斷了等等办素。

? ? ? ? ? ?tcp可靠:除非整個網絡出現問題角雷,數據將被完好地按原樣正確地傳送到另外一端。

? ? ? ? ? ?==怎樣實現的性穿?==>

? ? ? ? ? ?1)每個信息包都包含一個“校驗碼”:保證信息包在傳輸過程中沒有被更改的代碼勺三。當信息包到達目的地的時候,接收方會比對校驗碼和收到的信息中的數據需曾,若校驗碼不對吗坚,該信息包將被省略(drop)。

? ? ? ? ? ?2)反饋:防止信息包丟失呆万,tcp要求接收方每收到一個信息包都反饋一下商源。如果接收方沒有反饋,發(fā)送方會自動重發(fā)一次谋减。tcp會一直發(fā)送信息包直到接收者收到位置牡彻,或者tcp判斷出網絡連接斷了,在程序中返回一個錯誤提示出爹。

? ? ? ? ? ?3)序號:為了防止信息包重復或順序錯誤庄吼,tcp每傳送一個信息包都會傳送一個序號。接收方會檢查這個序號严就,確保收到該信息包总寻,并把全部信息包按順序重新合并。同時盈蛮,若果接收方看到了一個已經看過的序號废菱,則該信息包會被丟棄技矮。

(3)路由

? ? ? ? ?信息包在傳遞過程中會經由許多不同網絡抖誉,比如:先通過你的DSL到達電話公司,接著到達你所在城市的一個Internet提供商衰倦,然后經過北京袒炉、上海等到達最終目的地。(dsl數字用戶線路)在此期間的每一站樊零,來自其他成千上萬計算機的信息包也在一起被傳輸我磁。在Internet上負責接收信息包并決定如何把它們傳輸到目的地的設備叫“路由器”。

(4)安全

? ? ? ? ?ssl(secure sockets layer):在tcp連接之上驻襟,與程序代碼混合在一層夺艰。提供服務器的認證(所以你知道你現在在和誰通話)、加密(所以其他人不能看到你的通信)和數據完整性(所以在沒有察覺時沉衣,傳輸途中的信息包沒有人能夠修改)郁副。

? ? ? ? ?tls(transport layer security):與ssl相似,只包含在協(xié)議堆棧(protocol stack)中豌习。

1.2使用客戶/服務器模式?

在客戶/服務器下存谎,服務器一直在聽來自客戶端的請求拔疚,有請求后,就建立連接處理它們既荚。

例如:當你打開一個瀏覽器并訪問www.google.como稚失,瀏覽器會連接www.google.com的服務器,并請求訪問“/”頁(這個“/”頁表示該站點的首頁恰聘。服務器按順序找到這一頁句各,并把它傳送回你的客戶端,接著你的瀏覽器就能按照一定的格式顯示出來晴叨。

關鍵問題:客戶端總是最開始申請連接的一端诫钓,服務器則是等待客戶端連接的一端。

1)服務器端端口號:

在客戶/服務器模式中篙螟,服務器通常是聽一個大家都知道的端口號菌湃。例如:web服務器聽80端口,所以遍略,web瀏覽器知道連接www.google.com的80端口來獲得信息惧所。

(在www.iana.org上有一份由國際因特網地址分配委員會IANA維護的官方已分配的端口列表,在linux中绪杏,可在/etc/services下找到這個列表)

如果你編寫了一個服務器下愈,它的服務不在這個列表上,就選擇一個比“1024”大蕾久,而且在你的機器上沒有被占用的端口號势似,這樣可以盡量避免和其他服務沖突(端口號最大可為65535)。

在linux上僧著,只有系統(tǒng)管理員能請求訪問一個小于1024的端口履因。

2)客戶端端口號

客戶端端口號不是很重要,通常盹愚,客戶端會由操作系統(tǒng)隨機挑選一個保證沒有被使用的栅迄,被稱為“短命”的端口號,當服務器收到一個連接請求的時候皆怕,請求中帶有客戶端的端口號毅舆,數據會被傳輸到該端口上。

1.3理解udp

用處:從一個系統(tǒng)向其他系統(tǒng)傳送非常短的消息愈腾。

提供的保證:你收到的數據是完整的憋活。它不能保證數據是否能被收到,也不能保證數據是不是只接收一次虱黄,還不能保證收到的信息次序是否和發(fā)送時候一樣悦即。

優(yōu)點:因為不需要提供那些保證,所以要比tcp低級,而tcp建立和關閉連接要花費時間盐欺,而udp對連接沒概念赁豆,所以不存在花費時間建立和關閉連接的問題。

實例:1)通常udp會用在客戶端向服務器申請一個bit的信息冗美,如果沒有收到答復就會繼續(xù)申請魔种。用得最廣的udp應用軟件是dns系統(tǒng)。2)udp還常被用在流式的音頻和視頻應用軟件粉洼,因為udp只是偶爾丟棄一個信息包节预,而tcp會過于嚴格地取出那些被丟棄的信息包,這樣音頻效果就會差很多属韧。

使用地方:

1)不關心信息包是否到達或者不在意信息包到達的順序是否正確安拟,再或者你可以自己察覺這些問題且自己解決;

2)你的協(xié)議只包括基本請求和回答宵喂;

3)你需要盡快建立網絡回話糠赦;

4)只傳送很少一部分數據。udp的限制是一個信息包不超過64KB的數據锅棕,通常人們只用udp傳送1KB以下的數據拙泽。

1.4理解物理傳輸和以太網

可在不同物理網絡硬件間傳送數據:以太網、端對端(PPP裸燎,Peer-Peer Protocol)撥號連接顾瞻、令牌環(huán)連接、DSL連接德绿、cable modems連接的網絡荷荤、人造衛(wèi)星連接、移動電話以及T1專線連接==>TCP/IP

以太網:可向本地網絡所有的工作站廣播信息包移稳。==>可用來給一個服務做廣告蕴纳、向那些設計好的終端廣播、向所有人的PC廣播警告信息秒裕。

一個通過tcp/ip連接以太網的計算機有一個和該網絡接口相關的ip地址袱蚓。它與本網絡的機器通信時,只要直接向該計算機發(fā)送消息就可以几蜻。如果要和網外的、在Internet上的其他機器通信体斩,就必須把信息先發(fā)送到一個本地網絡上的路由器梭稚,然后由路由器決定信息包該發(fā)向哪里。

為了知道哪些機器是本地的絮吵,哪些是遠程的弧烤,網絡軟件會檢查源計算機和目的計算機ip地址的頭幾位(最有效部分)是不是相同的。每個網絡接口上都有網絡掩碼表明需要比較幾位蹬敲。如果比較失敗了暇昂,說明開始的幾位是不同的莺戒,那么信息包必須經過路由器。其他在范圍之內的計算機利用廣播或直接傳輸則可以直接到達急波。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末从铲,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子澄暮,更是在濱河造成了極大的恐慌名段,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泣懊,死亡現場離奇詭異伸辟,居然都是意外死亡,警方通過查閱死者的電腦和手機馍刮,發(fā)現死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門信夫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人卡啰,你說我怎么就攤上這事忙迁。” “怎么了碎乃?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵姊扔,是天一觀的道長。 經常有香客問我梅誓,道長恰梢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任梗掰,我火速辦了婚禮嵌言,結果婚禮上,老公的妹妹穿的比我還像新娘及穗。我一直安慰自己摧茴,他們只是感情好,可當我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布埂陆。 她就那樣靜靜地躺著苛白,像睡著了一般。 火紅的嫁衣襯著肌膚如雪焚虱。 梳的紋絲不亂的頭發(fā)上购裙,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天,我揣著相機與錄音鹃栽,去河邊找鬼躏率。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的薇芝。 我是一名探鬼主播蓬抄,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼夯到!你這毒婦竟也來了嚷缭?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤黄娘,失蹤者是張志新(化名)和其女友劉穎峭状,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體逼争,經...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡优床,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了誓焦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胆敞。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖杂伟,靈堂內的尸體忽然破棺而出移层,到底是詐尸還是另有隱情,我是刑警寧澤赫粥,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布观话,位于F島的核電站,受9級特大地震影響越平,放射性物質發(fā)生泄漏频蛔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一秦叛、第九天 我趴在偏房一處隱蔽的房頂上張望晦溪。 院中可真熱鬧,春花似錦挣跋、人聲如沸三圆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舟肉。三九已至,卻和暖如春牌借,著一層夾襖步出監(jiān)牢的瞬間度气,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工膨报, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓现柠,卻偏偏與公主長得像院领,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子够吩,可洞房花燭夜當晚...
    茶點故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內容