網(wǎng)絡(luò)概述
- 什么是網(wǎng)絡(luò)
網(wǎng)絡(luò)一般分2種 局域網(wǎng)和廣域網(wǎng)
- 局域網(wǎng)
局部區(qū)域網(wǎng)絡(luò)(local area network)通常簡(jiǎn)稱為"局域網(wǎng)",縮寫(xiě)為L(zhǎng)AN周叮。局域網(wǎng)是結(jié)構(gòu)復(fù)雜程度最低的計(jì)算機(jī)網(wǎng)絡(luò)。局域網(wǎng)僅是在同一地點(diǎn)上經(jīng)網(wǎng)絡(luò)連在一起的一組計(jì)算機(jī)沥邻。局域網(wǎng)通常挨得很近瞻讽,它是目前應(yīng)用最廣泛的一類網(wǎng)絡(luò)诈皿。通常將具有如下特征的網(wǎng)稱為局域網(wǎng)逸绎。
1)網(wǎng)絡(luò)所覆蓋的地理范圍比較小时肿。通常不超過(guò)幾十公里赃蛛,甚至只在一幢建筑或一個(gè)房間內(nèi)盆昙。
2)延遲比較低
3)傳輸速度非常快
4)支持CSMA/CD
- 城域網(wǎng)MAN
介于 LAN和WAN之間的 - 廣域網(wǎng)
廣域網(wǎng)(wide area network, WAN )它是影響廣泛的復(fù)雜網(wǎng)絡(luò)系統(tǒng)焊虏。
WAN由兩個(gè)以上的LAN構(gòu)成淡喜,這些LAN間的連接可以穿越30mile以上的距離。大型的WAN可以由各大洲的許多LAN和MAN組成诵闭。最廣為人知的WAN就是Internet炼团,它由全球成千上萬(wàn)的LAN和WAN 組成。
有時(shí)LAN疏尿、MAN和WAN間的邊界非常不明顯瘟芝,很難確定LAN在何處終止、MAN或WAN在何處開(kāi)始褥琐。但是可以通過(guò)四種網(wǎng)絡(luò)特性-通信介質(zhì)锌俱、協(xié)議、拓?fù)湟约八接芯W(wǎng)和公共網(wǎng)間的邊界點(diǎn)來(lái)確定網(wǎng)絡(luò)的類型敌呈。通信介質(zhì)是指用來(lái)連接計(jì)算機(jī)和網(wǎng)絡(luò)的電纜贸宏、光纖 電纜、無(wú)線電波或微波磕洪。通常LAN結(jié)束在通信介質(zhì)改變的地方吭练,如從基于電線的電纜轉(zhuǎn)變?yōu)楣饫w。電線電纜的LAN通常通過(guò)光纖電纜與其他的LAN連接析显。
- 協(xié)議
約定俗成的東西就稱之為協(xié)議
我們買(mǎi)東西用什么來(lái)交易啊
是不是用人民幣 默認(rèn)情況下就是人民幣吧 那么是誰(shuí)規(guī)定的 是不是國(guó)家規(guī)定了 這個(gè)就叫做協(xié)議 約定俗成的 不需要去問(wèn)別人的情況下就知道該怎么做這就是一種協(xié)議
那么在計(jì)算機(jī)網(wǎng)絡(luò)當(dāng)中我們?cè)趺赐ㄐ?是不是也需要一個(gè)東西來(lái)規(guī)定一個(gè)規(guī)則來(lái)實(shí)現(xiàn)不同系統(tǒng)不同的設(shè)備之間的通信
我們就使用一種大家都認(rèn)可的協(xié)議鲫咽,那么計(jì)算機(jī)之前的通信協(xié)議就叫做TCP/IP協(xié)議
它是一種通用協(xié)議 不管你用什么設(shè)備 什么系統(tǒng)都是遵從這個(gè)協(xié)議
協(xié)議就是一種完成進(jìn)程之間通信的一種規(guī)范 -
TCP/IP協(xié)議(族)
族的意思是 這里面有許多的協(xié)議 不是一個(gè)協(xié)議
在早期的計(jì)算機(jī)網(wǎng)絡(luò)中,都是由各自的廠商自己規(guī)定一套協(xié)議谷异,IBM,Apple和microsoft都有自己的網(wǎng)絡(luò)協(xié)議互不兼容分尸,為了把全世界所有的設(shè)備(計(jì)算機(jī),手機(jī)歹嘹,路由等等)都連接起來(lái)箩绍,就必須規(guī)定一套全球通用的協(xié)議,為了實(shí)現(xiàn)互聯(lián)網(wǎng)這個(gè)目標(biāo)荞下,互聯(lián)網(wǎng)協(xié)議簇(Internet Protocol Suite)就是通用協(xié)議標(biāo)準(zhǔn)
因?yàn)榛ヂ?lián)網(wǎng)協(xié)議中包含了非常多的協(xié)議標(biāo)準(zhǔn)伶选,但是最重要的就是2個(gè)協(xié)議一個(gè)是TCP一個(gè)是IP協(xié)議史飞,所以大家把互聯(lián)網(wǎng)的協(xié)議簡(jiǎn)稱TCP/IP協(xié)議
下圖包含了常用的網(wǎng)絡(luò)協(xié)議
大家看上圖中由幾個(gè)層次 比如應(yīng)用層 傳輸層 網(wǎng)絡(luò)層 網(wǎng)絡(luò)接口層 這幾個(gè)層是干什么用的 根據(jù)所用的功能不一樣分了幾個(gè)層
TCP協(xié)議有二種分法 一種是七層一種是4層
理論是7層 但是我們實(shí)際應(yīng)用的時(shí)候一般是按4層來(lái)開(kāi)發(fā)
這個(gè)內(nèi)容經(jīng)常會(huì)面試的時(shí)候提到請(qǐng)大家務(wù)必記住
端口
- 什么是端口
端口就好比是我們的手機(jī)號(hào)碼 你要跟你女朋友聯(lián)系是不是需要打她的手機(jī)號(hào)碼,這個(gè)手機(jī)號(hào)碼就相當(dāng)于一個(gè)端口仰税,那么你去打電話的時(shí)候构资,是不是你自己也需要一個(gè)手機(jī)號(hào)碼才可以打電話啊,我們是不是找特定的人給特定的人打電話啊
我們回到應(yīng)用程序
在linux系統(tǒng)中陨簇,端口可以有65535(2的16次方)個(gè)
既然有這么多吐绵,操作系統(tǒng)為了統(tǒng)一管理,所以進(jìn)行了編號(hào)這就是端口號(hào)
- 端口號(hào)
端口是通過(guò)端口號(hào)來(lái)標(biāo)記的河绽,端口號(hào)只有整數(shù)己单,范圍是從0到65535
3.端口是怎樣分配的
按端口號(hào)可分為3大類:
(1)公認(rèn)端口(WellKnownPorts):從0到1023,它們緊密綁定(binding)于一些服務(wù)耙饰。通常這些端口的通訊明確表明了某種服務(wù)的協(xié)議纹笼。例如:80端口實(shí)際上總是HTTP通訊。
公認(rèn)端口就是非常出名的端口好比苟跪,大家都知道110,119,120是干什么用的廷痘,公認(rèn)端口也是一樣的,它是一些非常出名的服務(wù)的端口
比如我們?cè)谠L問(wèn)www.baidu.com的時(shí)候件已,默認(rèn)訪問(wèn)的就是80端口
(2)注冊(cè)端口(RegisteredPorts):從1024到49151笋额。它們松散地綁定于一些服務(wù)。也就是說(shuō)有許多服務(wù)綁定于這些端口篷扩,這些端口同樣用于許多其它目的兄猩。例如:許多系統(tǒng)處理動(dòng)態(tài)端口從1024左右開(kāi)始。
(3)動(dòng)態(tài)和/或私有端口(Dynamicand/orPrivatePorts):從49152到65535鉴未。理論上枢冤,不應(yīng)為服務(wù)分配這些端口。實(shí)際上歼狼,機(jī)器通常從1024起分配動(dòng)態(tài)端口掏导。但也有例外:SUN的RPC端口從32768開(kāi)始。
- 總結(jié)
端口區(qū)分程序
pid只能在一臺(tái)機(jī)器上面區(qū)分進(jìn)程
怎么區(qū)分不同服務(wù)器的端口 是 ip+端口來(lái)區(qū)分
需要連接的端口是固定的羽峰,但是連接段會(huì)隨即生成一個(gè)端口
IP地址
-
ip地址是什么
地址是用來(lái)標(biāo)識(shí)位置的
在邏輯上標(biāo)記一臺(tái)唯一的電腦
- ip地址分類
192.168.1.1 4組數(shù)字 4個(gè)字節(jié) 1個(gè)字節(jié)8個(gè)比特位
A類地址 192 __ __ __ 前1個(gè)不可變 后面3個(gè)可變
B類地址 192.168.__ __ 前2個(gè)不可變 最后2個(gè)可變
C類地址 192.168.1__ 前3個(gè)不可變 最后1個(gè)可變
那么我們地址最大的長(zhǎng)度是多少
192.168.1. 1-254 2^8 有2個(gè)地址需要注意 一個(gè)是0 192.168.1.0 是你的網(wǎng)絡(luò)號(hào)
192.168.1.255 是廣播地址 最小的和最大的不讓用 1也不讓用 因?yàn)?是網(wǎng)關(guān)
1~254
同一個(gè)網(wǎng)段 就在一個(gè)局域網(wǎng) 不允許出現(xiàn)2個(gè)ip地址一模一樣 回出現(xiàn)ip沖突
為什么要?jiǎng)澐諥BC類地址
254個(gè)地址夠了
如果是大公司類 比如阿里 幾萬(wàn)個(gè)員工 那么我地址就不夠了
B類有多少個(gè)地址 2^16次方 64435
在很早的時(shí)候美國(guó)的科學(xué)家就已經(jīng)意識(shí)到IP地址不夠用了,所以出了一個(gè)技術(shù)叫做私有網(wǎng)絡(luò) 也就是通過(guò)net協(xié)議來(lái)上網(wǎng)睡蟋,到后來(lái)IP地址已經(jīng)被瓜分玩了狡门,每個(gè)國(guó)家都定義好了鹅经,這個(gè)IP給你 別人就不能用了
如果以后非洲的小伙伴也要用怎么辦,在2001年就提出了ipv6的概念 在ipv6的宣傳圖上有這么一句話
地球上的每一粒沙子都有一個(gè)ip地址
- A類地址
A類地址的表示范圍為:0.0.0.0~126.255.255.255坯汤,默認(rèn)網(wǎng)絡(luò)掩碼為:255.0.0.0;A類地址分配給規(guī)模特別大的網(wǎng)絡(luò)使用搀愧。A類網(wǎng)絡(luò)用第一組數(shù)字表示網(wǎng)絡(luò)本身的地址惰聂,后面三組數(shù)字作為連接于網(wǎng)絡(luò)上的主機(jī)的地址疆偿。分配給具有大量主機(jī)(直接個(gè)人用戶)而局域網(wǎng)絡(luò)個(gè)數(shù)較少的大型網(wǎng)絡(luò)。例如IBM公司的網(wǎng)絡(luò)搓幌。 - B類地址
B類地址的表示范圍為:128.0.0.0~191.255.255.255杆故,默認(rèn)網(wǎng)絡(luò)掩碼為:255.255.0.0;B類地址分配給一般的中型網(wǎng)絡(luò)溉愁。B類網(wǎng)絡(luò)用第一处铛、二組數(shù)字表示網(wǎng)絡(luò)的地址,后面兩組數(shù)字代表網(wǎng)絡(luò)上的主機(jī)地址。 - C類地址
C類地址的表示范圍為:192.0.0.0~223.255.255.255讨衣,默認(rèn)網(wǎng)絡(luò)掩碼為:255.255.255.0值依;C類地址分配給小型網(wǎng)絡(luò)愿险,如一般的局域網(wǎng)和校園網(wǎng)价说,它可連接的主機(jī)數(shù)量是最少的鳖目,采用把所屬的用戶分為若干的網(wǎng)段進(jìn)行管理彻磁。C類網(wǎng)絡(luò)用前三組數(shù)字表示網(wǎng)絡(luò)的地址尘喝,最后一組數(shù)字作為網(wǎng)絡(luò)上的主機(jī)地址磁浇。
實(shí)際上置吓,還存在著D類地址和E類地址构拳。但這兩類地址用途比較特殊斗埂,在這里只是簡(jiǎn)單介紹一下:D類地址稱為多播地址(一般用于視頻會(huì)議)某些人能看,某些人不能看建瘫,供特殊協(xié)議向選定的節(jié)點(diǎn)發(fā)送信息時(shí)用啰脚。E類地址保留給將來(lái)使用。
私有ip
在這么多網(wǎng)絡(luò)IP中准给,國(guó)際規(guī)定有一部分IP用于我們的局域網(wǎng)使用讹剔,也就是私網(wǎng)地址油讯,它們的范圍是:
10.0.0.0~10.255.255.255
172.16.0.0~172,31.255.255
192.168.0.0~192.168.255.255特殊ip
127.0.0.1 測(cè)試網(wǎng)卡的
socket(套接字)簡(jiǎn)介
- 本地的進(jìn)程間通信有很多方式 列如
- 隊(duì)列
- 同步
以上通信方式都是在一臺(tái)機(jī)器上不同進(jìn)程之間的通信方式详民,那么網(wǎng)絡(luò)當(dāng)中的進(jìn)程之間怎么通信
- 網(wǎng)絡(luò)中進(jìn)程之間如何通信
首先要解決的問(wèn)題是如果唯一標(biāo)識(shí)一個(gè)進(jìn)程,如果沒(méi)有唯一標(biāo)識(shí)符 就不能通信
在本地可以通過(guò)進(jìn)程管理 pid來(lái)唯一標(biāo)識(shí)一個(gè)進(jìn)程陌兑,但是在網(wǎng)絡(luò)中行不通
其實(shí)TCP/IP協(xié)議已經(jīng)幫我們解決了這個(gè)問(wèn)題沈跨,在網(wǎng)絡(luò)層中的'IP地址'就是可以唯一標(biāo)識(shí)網(wǎng)絡(luò)中主機(jī)的,而傳輸層加了'協(xié)議+端口' 來(lái)識(shí)別主機(jī)中應(yīng)用程序(進(jìn)程)
這樣我們就可以聽(tīng)過(guò) ip地址+協(xié)議+端口兔综,就可以標(biāo)識(shí)網(wǎng)絡(luò)的進(jìn)程了饿凛,網(wǎng)絡(luò)中的進(jìn)程通信就可以利用這個(gè)標(biāo)識(shí)于其他進(jìn)程進(jìn)行交互 - 什么是socket
socket是進(jìn)程間通信的一種方式,它于其他進(jìn)程間通信的主要一個(gè)不同是:
它可以實(shí)現(xiàn)不同主機(jī)間的進(jìn)程通信软驰,我們網(wǎng)絡(luò)上大部分的服務(wù)都是基于socket來(lái)完成的
列如我們每天瀏覽網(wǎng)頁(yè)涧窒,qq聊天,微信聊天锭亏,email等等