計算機網(wǎng)絡基礎

  • 信號屎即,根據(jù)傳輸介質(zhì)的不同,可以分為光信號(光纖)事富、磁信號(無線電)技俐、電信號(同軸電纜)等

  • 拓撲結(jié)構(gòu),網(wǎng)絡內(nèi)計算機的連接(結(jié)構(gòu))方式统台。
    ①雕擂、稱為總線型:早期,同一網(wǎng)絡內(nèi)的主機都連接到一根同軸電纜上贱勃,稱為總線型井赌。因為使用同一根電纜通訊(通過電壓的變化感受信號),所以在同一時間段內(nèi)募寨,只允許一臺主機給其他主機發(fā)送信息族展,否則會發(fā)生信號沖突。采用的是載波偵聽多路訪問沖突檢測(CSMA/CD)的協(xié)議拔鹰,來解決沖突問題:就是每臺主機在發(fā)送信息的時候先要偵聽線路中是否有人在發(fā)送信息仪缸,沒有的話,就自己發(fā)送信息列肢,有的話就一直偵聽到無人發(fā)送信息時發(fā)送恰画;當發(fā)送的同時偵聽到別人也在發(fā)送信息就會停止發(fā)送,偵聽到無人發(fā)送信息后暫停一個隨機時間繼續(xù)發(fā)送瓷马。另外拴还,信號是有一定的傳輸距離的,超過一定距離就會變?nèi)跖菲福蚤L距離傳輸片林,需要一個能量(電壓)放大設備,中繼器怀骤。
    ②费封、環(huán)形:所有主機連接成一個圓環(huán),在環(huán)上游蕩著一個令牌信號蒋伦,當一個主機要發(fā)送信息時弓摘,它就會抓住這個令牌,待信息發(fā)送完成后再釋放該令牌痕届。只有握有令牌的主機才能發(fā)送信息韧献,環(huán)形網(wǎng)這樣解決沖突問題末患。
    ③、星型:所有主機連接到一個集線器上锤窑,其實這個還是一個總線型(集線器內(nèi)部也是一根銅線璧针,和同軸電纜一樣),它解決的只是方便了將主機連接到總線上的操作果复。之前直接連到同軸電纜不好施工陈莽。

  • 網(wǎng)卡,是網(wǎng)絡中區(qū)分不同主機的標識虽抄,也是主機之間互相通訊(收發(fā)信號)的設備走搁。每塊網(wǎng)卡都有一個全球獨一無二的mac(media access control)地址。

  • 廣播迈窟,之前在同一個(局域)網(wǎng)內(nèi)主機互相通訊時私植,在物理上是通過廣播的形式在傳播,但這只是傳輸信息信號形式上的廣播车酣,因為有明確的目標主機曲稼,其實是單播,而廣播真正的含義湖员,是沒有明確的目標主機贫悄,就是給局域網(wǎng)里所有的主機群發(fā)信息(廣播地址用IP地址“255.255來表示---主機地址全為1表示該網(wǎng)段的廣播地址,主機地址全為0代表該網(wǎng)段娘摔,這個IP地址代表同一子網(wǎng)內(nèi)所有的IP地址)窄坦。所謂廣播,就是喊凳寺,群發(fā)的意思鸭津。當連接在同軸電纜上的一臺主機給目標主機發(fā)信息時,所有連接在該線纜上的主機都能感受到電平信號肠缨,即都能接收到信息逆趋。所以發(fā)送的信息中要包含源主機mac地址和目標mac地址,當目標主機接收到信息時晒奕,發(fā)現(xiàn)目標是自己就會接收并處理信息闻书。其他主機接收到時,發(fā)現(xiàn)不是找自己的脑慧,就不予理會惠窄。
    可是剛一開始,主機要是不知道其他主機的mac地址的呢漾橙。其實,這個還要往上說一下楞卡,在此簡單闡述一下霜运。我們發(fā)送信息給對方時脾歇,首先要知道對方的ip地址(可以先不知道m(xù)ac地址,但一定要先知道目標主機的ip地址淘捡。mac地址屬于物理鏈路層藕各,ip地址屬于網(wǎng)絡層,二者之間的轉(zhuǎn)換是arp協(xié)議焦除,每臺主機或路由器在維護著一個ARP緩存表(ARP table))激况,當確定對方ip地址但不清楚mac地址時,它會在網(wǎng)絡里面廣播(我們暫時不考慮路由器和非同一個網(wǎng)段的情況膘魄,因為有路由器的時候它會直接發(fā)給路由器網(wǎng)關)乌逐,“誰的ip地址是xxx,麻煩告訴我一下,(我的ip地址是yyy,mac地址是efefef)”创葡,這個是真正的廣播浙踢。當目標ip的主機接收到廣播信息后,就會將自己的mac地址告知對方灿渴。洛波、

    廣播是局域網(wǎng)通訊很常見的方式。

  • 廣播域和沖突域骚露。因為使用同一個同軸電纜蹬挤,所有的主機發(fā)信息的時候都像是在廣播,所有主機都可以收得到棘幸,而且同一時間只能有一個主機在發(fā)信息焰扳。所以連接到同一條總線的主機都在同一個廣播域和沖突域內(nèi)。當網(wǎng)絡內(nèi)的主機越來越多時够话,會嚴重影響效率蓝翰,這樣就需要做劃分。我們把網(wǎng)絡一分為二女嘲,中間用網(wǎng)橋連接兩個總線網(wǎng)絡畜份。當網(wǎng)絡中再傳輸信息時,傳播到網(wǎng)橋的時候欣尼,如果檢測到發(fā)送信號的源主機和目標主機在同一側(cè)的總線上爆雹,那么網(wǎng)橋就不會將信息發(fā)送到另一側(cè)去,這樣就分割了沖突域愕鼓,減少了信號沖突钙态。但是如果一個主機要廣播的話(目標ip地址主機位全1,代表整個網(wǎng)絡)菇晃,那么網(wǎng)橋依然會幫著將來自一側(cè)的信號傳到另一側(cè)去册倒。所以說網(wǎng)橋只隔離沖突域,不隔離廣播域磺送。

  • 交換機驻子。如果我們將集線器內(nèi)部同軸電纜去掉灿意,而是改成多條電路,那么所有連到集線器上的主機發(fā)送信息的時候崇呵,如果只傳到它的目標主機那去缤剧,那將大大減少沖突發(fā)生的概率。而具有這種轉(zhuǎn)發(fā)功能的設備就是交換機域慷,而交換機為了擁有這種功能荒辕,需要維護一張mac表,來記錄哪個端口連接的哪臺主機犹褒,當信息來到這里時抵窒,負責轉(zhuǎn)發(fā)到對應的接口。當一臺主機在同一時間只能接收信號或者發(fā)送信號時化漆,那么就是半雙工的模式估脆,當同時既可以發(fā)送信息又可以接收信息時,那就是全雙工座云,雙絞線兩條線路工作疙赠,一條發(fā)送的同時,另一條接收朦拖,不會發(fā)生沖突圃阳。提高了效率。

  • 路由器璧帝。交換機雖然減少了沖突捍岳,但是當網(wǎng)內(nèi)有主機廣播時,它還是會轉(zhuǎn)發(fā)到所有機器睬隶,所以交換機并不會隔離廣播域锣夹,當網(wǎng)絡內(nèi)主機比較多時,還是會影響線路和主機的效率苏潜。我們通過對ip地址進行網(wǎng)段劃分(將ip地址分為網(wǎng)絡位和主機位银萍,子網(wǎng)掩碼和ip地址進行與運算可以得出其網(wǎng)段),當主機發(fā)送信息時恤左,會先用自己的子網(wǎng)掩碼對自己的ip地址和目標主機的ip地址進行與運算贴唇,當發(fā)現(xiàn)不在一個網(wǎng)絡時,那就是跨網(wǎng)訪問飞袋,它就會找一個“中間人”戳气,整個局域網(wǎng)在同其他網(wǎng)段內(nèi)的主機通訊時,都會找該“中間人”巧鸭,這個“中間人”就是網(wǎng)關(網(wǎng)關和nat功能是兩個概念瓶您,網(wǎng)關是不同網(wǎng)段之間的接口,或者說路由功能)。網(wǎng)關就是路由器(具有nat轉(zhuǎn)發(fā)和路由的功能)的一個功能览闰,路由器的每個端口同主機的網(wǎng)卡一樣芯肤,也會有一個mac地址和分配一個ip。

  • 數(shù)據(jù)包压鉴。數(shù)據(jù)都是封裝好的才進行的傳輸。網(wǎng)絡是分層的锻拘,TCP/IP五層網(wǎng)絡協(xié)議(從上至下):應用層油吭、傳輸層、網(wǎng)絡層署拟、鏈路層婉宰、物理層。每層都有其對應的協(xié)議(所謂協(xié)議推穷,就是規(guī)定好的心包,大家都遵循的數(shù)據(jù)格式),ip地址是在網(wǎng)絡層的時候被封裝進去的馒铃,mac地址是在下層的鏈路層封裝進去的蟹腾。發(fā)送方在發(fā)送數(shù)據(jù)之前,是從上至下層層封裝区宇;接收方接收到信息后是從下至上層層解封裝娃殖。就跟套娃一樣,裝的時候由里而外议谷,拆的時候由外而里炉爆。數(shù)據(jù)包在經(jīng)過中間的線路的時候,有的設備會拆一層卧晓,有的會拆兩層芬首。比如交換機,接收到數(shù)據(jù)包時逼裆,拆到鏈路層郁稍,看到mac地址就知道轉(zhuǎn)發(fā)到哪個端口,就不會繼續(xù)拆包了波附。而路由器是在網(wǎng)段之間轉(zhuǎn)發(fā)數(shù)據(jù)包的艺晴,它會拆到網(wǎng)絡層的ip地址。當一個主機在發(fā)送信息給另一個網(wǎng)段的主機時掸屡,它會將數(shù)據(jù)包的目標ip地址封裝為目標主機的ip地址封寞,而目標mac地址封裝為自己同一網(wǎng)段的網(wǎng)關(路由器)的mac地址。數(shù)據(jù)包先傳到交換機那(家庭的直接連到家庭路由器的先不討論仅财,省了一步狈究,反而更簡單,這里就不討論了)盏求,交換機拆開一看目標mac地址是網(wǎng)關的mac地址抖锥,就又封好轉(zhuǎn)發(fā)到網(wǎng)關(路由器)那亿眠,網(wǎng)關接收到拆開一看目標mac地址,是找自己的磅废,但是拆開目標ip地址一看是找另外網(wǎng)段一個主機的纳像,它會根據(jù)自己維護路由表,看看從哪個端口轉(zhuǎn)發(fā)可以到達目標網(wǎng)段拯勉,然后就會交給對應網(wǎng)關(端口)竟趾,該網(wǎng)關負責轉(zhuǎn)發(fā)給另一個網(wǎng)段。由此可以看出宫峦,在網(wǎng)絡內(nèi)部岔帽,是交換機通過維護的mac地址表轉(zhuǎn)發(fā);在跨網(wǎng)段發(fā)送時导绷,靠的是路由器維護的路由表進行轉(zhuǎn)發(fā)犀勒。(注:這里暫無涉及私有、公網(wǎng)ip轉(zhuǎn)換的問題妥曲,討論的前提是假設都是公網(wǎng)ip)

  • 數(shù)據(jù)包經(jīng)由路由轉(zhuǎn)發(fā)時源贾费、目的IP地址及MAC地址變化情況

    A—–(B1-B2)—–(C1-C2)——-E

    如上拓撲圖為例,B1和B2是路由器B上的兩個接口逾一,C1和C2是路由器C上的兩個接口铸本,A和E是PC,由主機A向主機E發(fā)送數(shù)據(jù)包遵堵,那么在主機A形成的數(shù)據(jù)包的目的IP就是E的IP箱玷,源IP就是主機A的IP地址,目標MAC地址就是B1的MAC地址陌宿,源MAC地址就是A的MAC地址

    由A發(fā)給路由器B锡足,B經(jīng)過重封裝后,源IP和目標IP是不變的壳坪,源MAC地址變成B2的MAC地址舶得,目標MAC地址變成C1的MAC地址,封裝完成發(fā)送給路由器C爽蝴,路由器C接收到數(shù)據(jù)包后和B做的操作是一樣的沐批,源IP和目標IP的不變的,源MAC地址變成C2的MAC地址蝎亚,目標MAC地址變成主機E的MAC地址九孩,然后發(fā)送給主機E,這樣E就收到了這個數(shù)據(jù)包发框,當恢復數(shù)據(jù)包的時候就是把收到的數(shù)據(jù)包的源IP地址(主機A的IP地址)和源MAC地址(接口C2的MAC地址)作為他的目標IP和目標MAC地址

    注:這里ip都是假設都是公網(wǎng)ip躺彬,不牽扯nat轉(zhuǎn)化問題。私有ip信息發(fā)送過程參考文章

  • 套接字(socket)宪拥。主機接收和發(fā)送網(wǎng)絡信息都依托ip號仿野。tcp/ip協(xié)議的處理模塊屬于內(nèi)核的一個模塊,ip也歸內(nèi)核管理她君,所以在網(wǎng)絡層層面上脚作,網(wǎng)卡只是一個上下傳遞數(shù)據(jù)包的出入口而已(往下傳遞的時候網(wǎng)卡負責將mac地址填進去并且將數(shù)據(jù)包切片成幀,網(wǎng)卡不管ip層面的東西缔刹,只要是往下傳鳖枕,就加進去mac地址,下面?zhèn)魃蟻淼慕奥荩筒鸢鼨z測mac地址,如果是找自己的就往上傳交給操作系統(tǒng)處理))酿秸。如果一臺機器有兩個網(wǎng)卡(或者設置了兩個ip)灭翔,那么每個ip都有一套單獨的端口,比如ip1辣苏,192.169.0.9:80可以給網(wǎng)站A的web服務肝箱,ip2,192.169.0.20:80 可以留給網(wǎng)站B的web服務;192.169.0.9:8080可以留給appA的服務稀蟋,192.169.0.20:8080可以留給appB的服務煌张。socket 的本質(zhì)是一種資源,它包含了端到端的四元組信息(自己的ip+port退客,對方的ip+port)骏融,用來標識數(shù)據(jù)包的歸屬。因此萌狂,盡管 tcp 協(xié)議的端口號只有 65535 個档玻,但是進程可擁有的 socket 數(shù)據(jù)卻不限于此(受限于進程最大文件描述符數(shù)據(jù));可將每個套接字簡化理解成一個個文件茫藏,應用層進程通過這個文件和tcp/udp進行數(shù)據(jù)通訊误趴;這樣方便理解,進程和socket文件不是一對一的關系务傲,多個用戶的請求對于服務端來說會創(chuàng)建多個socket凉当,但是服務可能用一個進程來處理這些請求,那么一個進程就可以訪問多個套接字售葡。
    socket文件一旦創(chuàng)建看杭,就如同一個數(shù)據(jù)的水池一樣,一方往里面放數(shù)據(jù)天通,一方從里面取數(shù)據(jù)泊窘。
    具體可參考文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市烘豹,隨后出現(xiàn)的幾起案子瓜贾,更是在濱河造成了極大的恐慌,老刑警劉巖携悯,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祭芦,死亡現(xiàn)場離奇詭異,居然都是意外死亡憔鬼,警方通過查閱死者的電腦和手機龟劲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來轴或,“玉大人昌跌,你說我怎么就攤上這事≌昭悖” “怎么了蚕愤?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長饺蚊。 經(jīng)常有香客問我萍诱,道長,這世上最難降的妖魔是什么污呼? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任裕坊,我火速辦了婚禮,結(jié)果婚禮上燕酷,老公的妹妹穿的比我還像新娘籍凝。我一直安慰自己,他們只是感情好悟狱,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布静浴。 她就那樣靜靜地躺著,像睡著了一般挤渐。 火紅的嫁衣襯著肌膚如雪苹享。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天浴麻,我揣著相機與錄音得问,去河邊找鬼。 笑死软免,一個胖子當著我的面吹牛宫纬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播膏萧,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼漓骚,長吁一口氣:“原來是場噩夢啊……” “哼蝌衔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蝌蹂,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤噩斟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后孤个,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體剃允,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年齐鲤,在試婚紗的時候發(fā)現(xiàn)自己被綠了斥废。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡给郊,死狀恐怖牡肉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情淆九,我是刑警寧澤荚板,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站吩屹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拧抖。R本人自食惡果不足惜煤搜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望唧席。 院中可真熱鬧擦盾,春花似錦、人聲如沸淌哟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽徒仓。三九已至腐碱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間掉弛,已是汗流浹背症见。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留殃饿,地道東北人谋作。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像乎芳,于是被迫代替她去往敵國和親遵蚜。 傳聞我的和親對象是個殘疾皇子帖池,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

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

  • 一、什么是TCP/IP 網(wǎng)絡和協(xié)議 1. TCP/IP是一類協(xié)議系統(tǒng)吭净,它是一套支持網(wǎng)絡通信的協(xié)議集合睡汹。網(wǎng)絡是計算機...
    karlon的馬甲閱讀 6,520評論 1 24
  • 轉(zhuǎn)載 :http://www.cnblogs.com/maybe2030/p/4781555.html#_labe...
    奮斗live閱讀 1,362評論 0 10
  • 內(nèi)容來自網(wǎng)絡資料整理 1. 電路交換與分組交換的區(qū)別? 優(yōu)劣對比攒钳。 電路交換是以電路連接為目的的交換方式帮孔,通信之前...
    Tycc閱讀 868評論 0 4
  • 原文地址-程序員的自我修養(yǎng)(2)計算機網(wǎng)絡 幾乎所有的計算機程序,都會牽涉到網(wǎng)絡通信不撑。因此文兢,了解計算機基礎網(wǎng)絡知識...
    EwdAger閱讀 1,503評論 0 4
  • 1,OSI焕檬,TCP/IP姆坚,五層協(xié)議的體系結(jié)構(gòu),以及各層協(xié)議 OSI分層 (7層):物理層实愚、數(shù)據(jù)鏈路層兼呵、網(wǎng)...
    小棋子js閱讀 719評論 0 1