在《在深談TCP/IP三步握手&四步揮手原理及衍生問題—長文解剖IP》里面提到
單個TCP包每次打包1448字節(jié)的數(shù)據(jù)進(jìn)行發(fā)送(以太網(wǎng)Ethernet最大的數(shù)據(jù)幀是1518字節(jié)稿辙,以太網(wǎng)幀的幀頭14字節(jié)和幀尾CRC校驗(yàn)4字節(jié)?
seq編碼,在RFC793中丽蝎,建議ISN和一個假的時鐘綁在一起嘁傀,這個時鐘會在每4微秒對ISN做加一操作湘纵,直到超過2^32
據(jù)此推算嘱兼,貌似單一線路邦邦,網(wǎng)絡(luò)傳輸速度也就1.5*(1/4*10^6) = 375M/bs
對此的論據(jù)是:segments packets frame 是一對一的關(guān)系悦冀,層層套趋翻,一個個依次發(fā)送,如圖所示
如此,豈不是對于千兆網(wǎng)卡盒蟆,千G踏烙、千T,以及5G網(wǎng)絡(luò) 是 瞎子點(diǎn)燈历等?
注:
在鏈路層讨惩,由以太網(wǎng)的物理特性決定了數(shù)據(jù)幀的長度為(46+18)-(1500+18),其中的18是數(shù)據(jù)幀的頭和尾寒屯,也就是說數(shù)據(jù)幀的內(nèi)容最大為1500(不包括幀頭和幀尾)荐捻,即MTU(Maximum Transmission Unit)為1500;
在網(wǎng)絡(luò)層寡夹,因?yàn)镮P包的首部要占用20字節(jié)处面,所以這的MTU為1500-20=1480;
在傳輸層菩掏,對于UDP包的首部要占用8字節(jié)魂角,所以這的MTU為1480-8=1472;
所以智绸,在應(yīng)用層野揪,你的Data最大長度為1472。當(dāng)我們的UDP包中的數(shù)據(jù)多于MTU(1472)時瞧栗,發(fā)送方的IP層需要分片fragmentation進(jìn)行傳輸斯稳,而在接收方IP層則需要進(jìn)行數(shù)據(jù)報(bào)重組,由于UDP是不可靠的傳輸協(xié)議迹恐,如果分片丟失導(dǎo)致重組失敗冗美,將導(dǎo)致UDP數(shù)據(jù)包被丟棄贫途。?
千兆網(wǎng)卡理論最大傳輸速度是(1024Mbit/s=128MByte/s),注意b與B差了8倍笨觅。
這個迷惑一直困擾著我度迂。百思不得騎姐
然后開始
從網(wǎng)卡發(fā)送接收數(shù)據(jù)入手,對TCP/IP再開墾一番
網(wǎng)卡如何發(fā)送數(shù)據(jù)包:
IP報(bào)文可以看作一個包靡挥。
Linux網(wǎng)卡驅(qū)動程序,將IP包添加14字節(jié)的MAC包頭,構(gòu)成MAC包廊酣。
MAC包中含有發(fā)送端和接收端的MAC地址信息。既然是驅(qū)動程序創(chuàng)建的MAC包頭信息赏枚,當(dāng)然可以隨便輸入地址信息的亡驰,主機(jī)偽裝就是這么實(shí)現(xiàn)的。
驅(qū)動程序?qū)AC包拷貝到網(wǎng)卡芯片內(nèi)部的緩存區(qū)饿幅,就算完事了凡辱。有網(wǎng)卡芯片接手處理。網(wǎng)卡芯片對MAC包栗恩,再次封裝成物理幀透乾,添加頭部同步信息和CRC校驗(yàn)。然后丟到網(wǎng)線上磕秤,就完成一個IP報(bào)文的發(fā)送乳乌。所有掛接到本網(wǎng)線的網(wǎng)卡都可以看到該物理幀。
網(wǎng)卡接收數(shù)據(jù)包
正常情況:
網(wǎng)線上的物理幀首先被網(wǎng)卡芯片獲取市咆,網(wǎng)卡芯片會檢查物理幀的CRC汉操,保證完整性。
其次蒙兰,網(wǎng)卡芯片將物理幀頭去掉磷瘤,得到MAC包。
網(wǎng)卡芯片檢查MAC包內(nèi)的目的MAC地址信息搜变,和本網(wǎng)卡的MAC地址是否一致采缚?不一致,拋棄痹雅。
網(wǎng)卡芯片將MAC幀拷貝到網(wǎng)卡內(nèi)部的緩沖區(qū)仰担,觸發(fā)中斷。
驅(qū)動程序通過中斷绩社,將MAC包拷貝到系統(tǒng)中摔蓝,構(gòu)建sk_buff。告訴上層愉耙。
上層去掉MAC包頭贮尉,得到需要的IP包。
?過程中朴沿,網(wǎng)卡芯片對物理幀進(jìn)行了MAC匹配過濾猜谚。這樣做可以減小系統(tǒng)負(fù)荷败砂。
試想一下,若網(wǎng)卡芯片對所有的MAC幀不加判斷的直接提供給驅(qū)動魏铅,讓CPU判決會是什么樣子呢昌犹?
當(dāng)總線上數(shù)據(jù)繁忙,CPU將浪費(fèi)大部分時間去判斷該MAC包是否是自己需要的览芳,效率低下斜姥。
不正常模式(混聽):
網(wǎng)線上的物理幀首先被網(wǎng)卡芯片獲取,網(wǎng)卡芯片會檢查物理幀的CRC沧竟,保證完整性铸敏。
其次,網(wǎng)卡芯片將物理幀頭去掉悟泵,得到MAC包杈笔。
網(wǎng)卡芯片發(fā)現(xiàn)自己當(dāng)前被配置為混聽模式,就不對MAC包過濾糕非。
網(wǎng)卡芯片將MAC幀拷貝到網(wǎng)卡內(nèi)部的緩沖區(qū)蒙具,觸發(fā)中斷。
驅(qū)動程序通過中斷峰弹,將MAC包拷貝到系統(tǒng)中店量,構(gòu)建sk_buff芜果。告訴上層鞠呈。
上層去掉MAC包頭,得到需要的IP包右钾。
顯然蚁吝,這里的IP包并一定是發(fā)給自己的。
驅(qū)動的問題
網(wǎng)卡到底能不能接收其他MAC包舀射,完全取決于網(wǎng)卡芯片中RCR(receive control register)配置窘茁。
驅(qū)動程序是決定網(wǎng)卡能否工作與混聽模式的橋梁。
混聽模式會加重CPU的負(fù)荷脆烟,而且也是不符合標(biāo)準(zhǔn)應(yīng)用的山林!
所有的車輛都要從加油站穿過,(有些都不加油)邢羔,加油站工作人員的任務(wù)量就可想而知驼抹。
當(dāng)然也有例外,有些程序不通過驅(qū)動拜鹤,也可以直接訪問網(wǎng)卡芯片RCR達(dá)到設(shè)置混聽模式框冀。
所謂? 條條大路通香港,就是這個道理:)沒有絕對的
本機(jī)和本機(jī)Socket通信會走網(wǎng)卡嗎
先說結(jié)論:不走網(wǎng)卡敏簿,不走物理設(shè)備明也,但是走虛擬設(shè)備宣虾,loopback device環(huán)回(本地回環(huán)).
本機(jī)的報(bào)文的路徑是這樣的:應(yīng)用層-> socket接口 -> 傳輸層(tcp/udp報(bào)文) -> 網(wǎng)絡(luò)層 -> back to 傳輸層 -> backto socket接口 -.> 傳回應(yīng)用程序在網(wǎng)絡(luò)層,會在路由表查詢路由温数,路由表(軟件路由绣硝,真正的轉(zhuǎn)發(fā)需要依靠硬件路由,這里路由表包括快速轉(zhuǎn)發(fā)表和FIB表)初始化時會保存主機(jī)路由(host route撑刺,or 環(huán)回路由)域那, 查詢(先匹配mask,再匹配ip猜煮,localhost路由在路由表最頂端次员,最優(yōu)先查到)后發(fā)現(xiàn)不用轉(zhuǎn)發(fā)就不用走中斷,不用發(fā)送給鏈接層了王带,不用發(fā)送給網(wǎng)絡(luò)設(shè)備(網(wǎng)卡)淑蔚。像網(wǎng)卡發(fā)送接收報(bào)文一樣,走相同的接收流程愕撰,只不過net device是loopback device刹衫,最后發(fā)送回應(yīng)用程序。這一套流程當(dāng)然和轉(zhuǎn)發(fā)和接收外網(wǎng)報(bào)文一樣搞挣,都要經(jīng)過內(nèi)核協(xié)議棧的處理带迟,不同的是本機(jī)地址不用掛net device.
網(wǎng)卡,交換機(jī)囱桨,網(wǎng)橋仓犬,路由器,網(wǎng)關(guān)工作在OSI模型哪一層
網(wǎng)橋:工作在數(shù)據(jù)鏈路層舍肠,在不同或相同類型的LAN之間存儲并轉(zhuǎn)發(fā)數(shù)據(jù)幀搀继,必要時進(jìn)行鏈路層上的協(xié)議轉(zhuǎn)換〈溆铮可連接兩個或多個網(wǎng)絡(luò)叽躯,在其中傳送信息包。
交換機(jī):工作在數(shù)據(jù)鏈路層肌括,原理等同于多端口網(wǎng)橋点骑。作用是連接數(shù)個相同網(wǎng)段的不同主機(jī),減少網(wǎng)內(nèi)沖突谍夭,隔離沖突域黑滴。利用存儲轉(zhuǎn)發(fā)和過濾技術(shù)來從物理上分割網(wǎng)段
路由器:工作在網(wǎng)絡(luò)層,在不同的網(wǎng)絡(luò)間存儲并轉(zhuǎn)發(fā)分組慧库□喂颍可在異種網(wǎng)絡(luò)之間(即不同類型的局域網(wǎng)互連,局域網(wǎng)與廣域網(wǎng)齐板,廣域網(wǎng)與廣域網(wǎng))傳輸數(shù)據(jù)并進(jìn)行路徑選擇吵瞻,使用專門的軟件協(xié)議從邏輯上對整個網(wǎng)絡(luò)進(jìn)行劃分葛菇。
網(wǎng)關(guān):對高層協(xié)議(包括傳輸層及更高層次)進(jìn)行轉(zhuǎn)換的網(wǎng)間連接器。允許使用不兼容的協(xié)議橡羞,比如SPX/IPX和TCP/IP的系統(tǒng)和網(wǎng)絡(luò)互連眯停。因?yàn)閰f(xié)議轉(zhuǎn)換是網(wǎng)關(guān)最重要的功能,所以答案是工作在傳輸層及以上層次卿泽。
網(wǎng)卡:在物理層上網(wǎng)卡主要是完成物理接口的連接,電信號的傳送以及將數(shù)據(jù)分解為適當(dāng)大小的數(shù)據(jù)包之后向網(wǎng)絡(luò)上發(fā)送的功能. 數(shù)據(jù)鏈路層功能包括鏈路建立和拆除莺债,幀定界同步順序差錯控制這些。大多認(rèn)為主要工作在物理層签夭。
網(wǎng)卡核心電器元件
網(wǎng)卡的組成:
主芯片:網(wǎng)卡的主控制芯片是網(wǎng)卡的核心元件齐邦,一塊網(wǎng)卡性能的好壞和功能的強(qiáng)弱多寡,主要就是看這塊芯片的質(zhì)量
BOOTROM槽:BOOTROM 插座也就是常說的無盤啟動ROM 接口第租,其是用來通過遠(yuǎn)程啟動服務(wù)構(gòu)造無盤工作站的
數(shù)據(jù)泵:作用一是傳輸數(shù)據(jù)措拇;二是隔離網(wǎng)線連接的不同網(wǎng)絡(luò)設(shè)備間的不同電平,還能對設(shè)備起到一定的防雷保護(hù)作用
晶振即石英振蕩器:提供基準(zhǔn)頻率
?MAC 控制器&PHY
以太網(wǎng)卡中數(shù)據(jù)鏈路層的芯片一般簡稱之為 MAC 控制器慎宾,物理層的芯片我們簡稱之為PHY丐吓。即使把它們做到同一塊芯片,但是MAC 和PHY 的機(jī)制還是單獨(dú)存在的趟据,只是外觀的表現(xiàn)形式是一顆單芯片券犁。
?數(shù)據(jù)鏈路層MAC 控制器
以太網(wǎng)數(shù)據(jù)鏈路層其實(shí)包含MAC(介質(zhì)訪問控制)子層和LLC(邏輯鏈路控制)子層。
一塊以太網(wǎng)卡MAC 芯片的作用不但要實(shí)現(xiàn)MAC 子層和LLC 子層的功能汹碱,還要提供符合規(guī)范的PCI 界面以實(shí)現(xiàn)和主機(jī)的數(shù)據(jù)交換粘衬。
MAC 從PCI 總線收到IP 數(shù)據(jù)包(或者其他網(wǎng)絡(luò)層協(xié)議的數(shù)據(jù)包)后,將之拆分并重新打包成最大1518Byte比被,最小64Byte 的幀色难。這個幀里面包括了目標(biāo)MAC 地址泼舱、自己的源MAC 地址和數(shù)據(jù)包里面的協(xié)議類型(比如IP 數(shù)據(jù)包的類型用80 表示)等缀。最后還有一個DWORD(4Byte)的CRC 碼。
可是目標(biāo)的 MAC 地址是哪里來的呢娇昙?這牽扯到一個ARP 協(xié)議(介乎于網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層的一個協(xié)議)尺迂。第一次傳送某個目的IP 地址的數(shù)據(jù)的時候,先會發(fā)出一個ARP 包冒掌,其MAC 的目標(biāo)地址是廣播地址噪裕,里面說到:"誰是xxx.xxx.xxx.xxx 這個IP 地址的主人?"因?yàn)槭菑V播包股毫,所有這個局域網(wǎng)的主機(jī)都收到了這個ARP 請求膳音。收到請求的主機(jī)將這個IP地址和自己的相比較,如果不相同就不予理會铃诬,如果相同就發(fā)出ARP 響應(yīng)包祭陷。這個IP 地址的主機(jī)收到這個ARP 請求包后回復(fù)的ARP 響應(yīng)里說到:"我是這個IP 地址的主人"苍凛。這個包里面就包括了他的MAC 地址。以后的給這個IP 地址的幀的目標(biāo)MAC 地址就被確定了兵志。(其它的協(xié)議如IPX/SPX 也有相應(yīng)的協(xié)議完成這些操作醇蝴。)IP 地址和MAC 地址之間的關(guān)聯(lián)關(guān)系保存在主機(jī)系統(tǒng)里面,叫做ARP 表想罕,由驅(qū)動程序和操作系統(tǒng)完成悠栓。在Microsoft 的系統(tǒng)里面可以用 arp -a 的命令查看ARP 表。
收到數(shù)據(jù)幀的時候也是一樣按价,做完CRC 以后惭适,如果沒有CRC 效驗(yàn)錯誤,就把幀頭去掉楼镐,把數(shù)據(jù)包拿出來通過標(biāo)準(zhǔn)的借口傳遞給驅(qū)動和上層的協(xié)議客棧腥沽,最終正確的達(dá)到我們的應(yīng)用程序。還有一些控制幀鸠蚪,例如流控幀也需? ? ?要MAC 直接識別并執(zhí)行相應(yīng)的行為今阳。以太網(wǎng)MAC芯片的一端接計(jì)算機(jī)PCI 總線,另外一端就接到PHY 芯片上茅信。以太網(wǎng)的物理層又包括MII/GMII(介質(zhì)獨(dú)立接口)子層盾舌、PCS(物理編碼子層)、PMA(物理介質(zhì)附加)子層蘸鲸、PMD(物理介質(zhì)相關(guān))子層妖谴、MDI 子層。而PHY 芯片是實(shí)現(xiàn)物理層的重要功能器件之一酌摇,實(shí)現(xiàn)了前面物理層的所有的子層的功能膝舅。
物理層PHY
PHY 在發(fā)送數(shù)據(jù)的時候,收到MAC 過來的數(shù)據(jù)(對PHY 來說窑多,沒有幀的概念仍稀,對它來說,都是數(shù)據(jù)而不管什么地址埂息,數(shù)據(jù)還是CRC)技潘,每4bit 就增加1bit 的檢錯碼,然后把并行數(shù)據(jù)轉(zhuǎn)化為串行流數(shù)據(jù)千康,再按照物理層的編碼規(guī)則(10Based-T 的NRZ 編碼或100based-T的曼徹斯特編碼)把數(shù)據(jù)編碼享幽,再變?yōu)槟M信號把數(shù)據(jù)送出去。(注:關(guān)于網(wǎng)線上數(shù)據(jù)是數(shù)字的還是模擬的比較不容易理解清楚拾弃。最后我再說)收數(shù)據(jù)時的流程反之值桩。發(fā)送數(shù)據(jù)時,PHY 還有個重要的功能就是實(shí)現(xiàn)CSMA/CD 的部分功能豪椿,它可以檢測到網(wǎng)絡(luò)上是否有數(shù)據(jù)在傳送奔坟。網(wǎng)卡首先偵聽介質(zhì)上是否有載波(載波由電壓指示)斯入,如果有,則認(rèn)為其他站點(diǎn)正在傳送信息蛀蜜,繼續(xù)偵聽介質(zhì)刻两。一旦通信介質(zhì)在一定時間段內(nèi)(稱為幀間縫隙IFG= 9.6 微秒)是安靜的,即沒有被其他站點(diǎn)占用滴某,則開始進(jìn)行幀數(shù)據(jù)發(fā)送磅摹,同時繼續(xù)偵聽通信介質(zhì),以檢測沖突霎奢。在發(fā)送數(shù)據(jù)期間户誓,如果檢測到?jīng)_突,則立即停止該次發(fā)送幕侠,并向介質(zhì)發(fā)送一個“阻塞”信號帝美,告知其他站點(diǎn)已經(jīng)發(fā)生沖突,從而丟棄那些可能一直在接收的受到損壞的幀數(shù)據(jù)晤硕,并等待一段隨機(jī)時間(CSMA/CD 確定等待時間的算法是二進(jìn)制指數(shù)退避算法)悼潭。在等待一段隨機(jī)時間后,再進(jìn)行新的發(fā)送舞箍。如果重傳多次后(大于16 次)仍發(fā)生沖突舰褪,就放棄發(fā)送。接收時疏橄,網(wǎng)卡瀏覽介質(zhì)上傳輸?shù)拿總€幀占拍,如果其長度小于64 字節(jié),則認(rèn)為是沖突碎片捎迫。如果接收到的幀不是沖突碎片且目的地址是本地地址晃酒,則對幀進(jìn)行完整性校驗(yàn),如果幀長度大于1518 字節(jié)(稱為超長幀窄绒,可能由錯誤的LAN 驅(qū)動程序或干擾造成)或未能通過CRC校驗(yàn)贝次,則認(rèn)為該幀發(fā)生了畸變。通過校驗(yàn)的幀被認(rèn)為是有效的颗祝,網(wǎng)卡將它接收下來進(jìn)行本地處理許多網(wǎng)友在接入 Internt 寬帶時浊闪,喜歡使用"搶線"強(qiáng)的網(wǎng)卡,就是因?yàn)椴煌腜HY 碰撞后計(jì)算隨機(jī)時間的方法設(shè)計(jì)上不同螺戳,使得有些網(wǎng)卡比較"占便宜"。不過折汞,搶線只對廣播域的網(wǎng)絡(luò)而言的倔幼,對于交換網(wǎng)絡(luò)和ADSL 這樣點(diǎn)到點(diǎn)連接到局端設(shè)備的接入方式?jīng)]什么意義。而且"搶線"也只是相對而言的爽待,不會有質(zhì)的變化损同。
關(guān)于網(wǎng)絡(luò)間的沖突
現(xiàn)在交換機(jī)的普及使得交換網(wǎng)絡(luò)的普及翩腐,使得沖突域網(wǎng)絡(luò)少了很多,極大地提高了網(wǎng)絡(luò)的帶寬膏燃。但是如果用HUB茂卦,或者共享帶寬接入Internet 的時候還是屬于沖突域網(wǎng)絡(luò),有沖突碰撞的组哩。交換機(jī)和HUB 最大的區(qū)別就是:一個是構(gòu)建點(diǎn)到點(diǎn)網(wǎng)絡(luò)的局域網(wǎng)交換設(shè)備等龙,一個是構(gòu)建沖突域網(wǎng)絡(luò)的局域網(wǎng)互連設(shè)備。我們的 PHY 還提供了和對端設(shè)備連接的重要功能并通過LED 燈顯示出自己目前的連接的狀態(tài)和工作狀態(tài)讓我們知道伶贰。當(dāng)我們給網(wǎng)卡接入網(wǎng)線的時候蛛砰,PHY 不斷發(fā)出的脈沖信號檢測到對端有設(shè)備,它們通過標(biāo)準(zhǔn)的"語言"交流黍衙,互相協(xié)商并卻定連接速度泥畅、雙工模式、是否采用流控等琅翻。通常情況下位仁,協(xié)商的結(jié)果是兩個設(shè)備中能同時支持的最大速度和最好的雙工模式。這個技術(shù)被稱為Auto Negotiation 或者NWAY方椎,它們是一個意思--自動協(xié)商障癌。
PHY 的輸出部分
現(xiàn)在來了解 PHY 的輸出后面部分。一顆CMOS 制程的芯片工作的時候產(chǎn)生的信號電平總是大于0V 的(這取決于芯片的制程和設(shè)計(jì)需求)辩尊,但是這樣的信號送到100 米甚至更長的地方會有很大的直流分量的損失涛浙。而且如果外部網(wǎng)現(xiàn)直接和芯片相連的話,電磁感應(yīng)(打雷)和靜電摄欲,很容易造成芯片的損壞轿亮。再就是設(shè)備接地方法不同,電網(wǎng)環(huán)境不同會導(dǎo)致雙方的0V 電平不一致胸墙,這樣信號從A傳到B我注,由于A 設(shè)備的0V 電平和B 點(diǎn)的0V 電平不一樣,這樣會導(dǎo)致很大的電流從電勢高的設(shè)備流向電勢低的設(shè)備迟隅。我們?nèi)绾谓鉀Q這個問題呢但骨?這時就出現(xiàn)了 Transformer(隔離變壓器)這個器件。它把PHY 送出來的差分信號用差模耦合的線圈耦合濾波以增強(qiáng)信號智袭,并且通過電磁場的轉(zhuǎn)換耦合到連接網(wǎng)線的另外一端奔缠。這樣不但使網(wǎng)線和PHY 之間沒有物理上的連接而換傳遞了信號,隔斷了信號中的直流分量吼野,還可以在不同0V 電平的設(shè)備中傳送數(shù)據(jù)校哎。隔離變壓器本身就是設(shè)計(jì)為耐 2KV~3KV 的電壓的。也起到了防雷感應(yīng)(我個人認(rèn)為這里用防雷擊不合適)保護(hù)的作用。有些朋友的網(wǎng)絡(luò)設(shè)備在雷雨天氣時容易被燒壞闷哆,大都是PCB 設(shè)計(jì)不合理造成的腰奋,而且大都燒毀了設(shè)備的接口,很少有芯片被燒毀的抱怔,就是隔離變壓器起到了保護(hù)作用劣坊。
關(guān)于傳輸介質(zhì)
隔離變壓器本身是個被動元件,只是把PHY 的信號耦合了到網(wǎng)線上屈留,并沒有起到功率放大的作用局冰。那么一張網(wǎng)卡信號的傳輸?shù)淖铋L距離是誰決定的呢?一張網(wǎng)卡的傳輸最大距離和與對端設(shè)備連接的兼容性主要是 PHY 決定的绕沈。但是可以將信號送的超過100 米的PHY 其輸出的功率也比較大锐想,更容易產(chǎn)生EMI 的問題。這時候就需要合適的Transformer 與之配合乍狐。作PHY 的老大公司Marvell 的PHY赠摇,常常可以傳送180~200米的距離浅蚪,遠(yuǎn)遠(yuǎn)超過IEEE 的100 米的標(biāo)準(zhǔn)藕帜。RJ-45 的接頭實(shí)現(xiàn)了網(wǎng)卡和網(wǎng)線的連接。它里面有8 個銅片可以和網(wǎng)線中的4 對雙絞(8根)線對應(yīng)連接惜傲。其中100M 的網(wǎng)絡(luò)中1洽故、2 是傳送數(shù)據(jù)的,3盗誊、6 是接收數(shù)據(jù)的时甚。1、2 之間
是一對差分信號哈踱,也就是說它們的波形一樣荒适,但是相位相差180 度,同一時刻的電壓幅度互為正負(fù)开镣。這樣的信號可以傳遞的更遠(yuǎn)刀诬,抗干擾能力強(qiáng)。同樣的邪财,3陕壹、6 也一樣是差分信號。網(wǎng)線中的 8 根線树埠,每兩根扭在一起成為一對糠馆。我們制作網(wǎng)線的時候,一定要注意要讓1弥奸、2 在其中的一對榨惠,3、6 在一對盛霎。否則長距離情況下使用這根網(wǎng)線的時候會導(dǎo)致無法連接或連接很不穩(wěn)定≡龋現(xiàn)在新的 PHY 支持AUTO MDI-X 功能(也需要Transformer 支持)。它可以實(shí)現(xiàn)RJ-45接口的1愤炸、2 上的傳送信號線和3期揪、6 上的接收信號線的功能自動互相交換。有的PHY 甚至支持一對線中的正信號和負(fù)信號的功能自動交換规个。這樣我們就不必為了到底連接某個設(shè)備需要使用直通網(wǎng)線還是交叉網(wǎng)線而費(fèi)心了凤薛。這項(xiàng)技術(shù)已經(jīng)被廣泛的應(yīng)用在交換機(jī)和SOHO 路由器上。在 1000Basd-T 網(wǎng)絡(luò)中诞仓,其中最普遍的一種傳輸方式是使用網(wǎng)線中所有的4 對雙絞線缤苫,其中增加了4、5 和7墅拭、8 來共同傳送接收數(shù)據(jù)活玲。由于1000Based-T 網(wǎng)絡(luò)的規(guī)范包含了AUTOMDI-X 功能,因此不能嚴(yán)格確定它們的傳出或接收的關(guān)系谍婉,要看雙方的具體的協(xié)商結(jié)果舒憾。
PHY 和MAC 之間如何進(jìn)行溝通
下面繼續(xù)讓我們來關(guān)心一下 PHY 和MAC 之間是如何傳送數(shù)據(jù)和相互溝通的。通過IEEE 定義的標(biāo)準(zhǔn)的MII/GigaMII(Media Independed Interfade穗熬,介質(zhì)獨(dú)立界面)界面連接MAC和PHY镀迂。這個界面是IEEE 定義的。MII 界面?zhèn)鬟f了網(wǎng)絡(luò)的所有數(shù)據(jù)和數(shù)據(jù)的控制唤蔗。而 MAC 對PHY 的工作狀態(tài)的確定和對PHY 的控制則是使用SMI(Serial ManagementInterface)界面通過讀寫PHY 的寄存器來完成的探遵。PHY 里面的部分寄存器也是IEEE 定義的,這樣PHY 把自己的目前的狀態(tài)反映到寄存器里面妓柜,MAC 通過SMI 總線不斷的讀取PHY 的狀態(tài)寄存器以得知目前PHY 的狀態(tài)箱季,例如連接速度,雙工的能力等领虹。當(dāng)然也可以通過SMI設(shè)置PHY 的寄存器達(dá)到控制的目的规哪,例如流控的打開關(guān)閉,自協(xié)商模式還是強(qiáng)制模式等塌衰。我們看到了诉稍,不論是物理連接的 MII 界面和SMI 總線還是PHY 的狀態(tài)寄存器和控制寄存器都是有IEEE 的規(guī)范的,因此不同公司的MAC 和PHY 一樣可以協(xié)調(diào)工作最疆。當(dāng)然為了配合不同公司的PHY 的自己特有的一些功能杯巨,驅(qū)動需要做相應(yīng)的修改。
網(wǎng)卡的供電
最后就是電源部分了努酸。大多數(shù)網(wǎng)卡現(xiàn)在都使用 3.3V 或更低的電壓服爷。有的是雙電壓的。因此需要電源轉(zhuǎn)換電路。而且網(wǎng)卡為了實(shí)現(xiàn) Wake on line 功能仍源,必須保證全部的PHY 和MAC 的極少一部分始終處于有電的狀態(tài)心褐,這需要把主板上的5V Standby 電壓轉(zhuǎn)換為PHY 工作電壓的電路。在主機(jī)開機(jī)后笼踩,PHY 的工作電壓應(yīng)該被從5V 轉(zhuǎn)出來的電壓替代以節(jié)省5V Standby 的消耗逗爹。(許多劣質(zhì)網(wǎng)卡沒有這么做)。有 Wake on line 功能的網(wǎng)卡一般還有一個WOL 的接口嚎于。那是因?yàn)镻CI2.1 以前沒有PCI設(shè)備喚醒主機(jī)的功能掘而,所以需要著一根線通過主板上的WOL 的接口連到南橋里面以實(shí)現(xiàn)WOL 的功能。新的主板合網(wǎng)卡一般支持 PCI2.2/2.3于购,擴(kuò)展了PME#信號功能袍睡,不需要那個接口而通過PCI 總線就可以實(shí)現(xiàn)喚醒功能。
電腦之間通過網(wǎng)線傳送的信號是交流高頻信號肋僧,電壓不超過3伏斑胜,帶不動任何負(fù)載。
需要帶負(fù)載的POE電壓是48V色瘩。RJ45的接口 最大持續(xù)工作電壓是8V
電話通過網(wǎng)線傳送的信號直流48—50V伪窖,摘機(jī)狀態(tài)下是直流6-12V,振鈴信號是交流90V 100m以太網(wǎng)的數(shù)據(jù)發(fā)送和接收時傳送的信號是交流高頻信號居兆,電壓不超過3伏覆山。
電話線上的電壓平時是直流48V,而且是高內(nèi)阻的電源泥栖,手碰上絕對安全簇宽。但如果動手時正好有電話打入,此時振鈴電壓是75V交流電壓吧享,會有很強(qiáng)的麻手感覺魏割,但沒有危險。為了保險钢颂,可以在動手時將電話機(jī)外線臨時短路钞它,電壓為0,也不會再有電話能打入殊鞭。裝好以后將短路線拆除遭垛。
最后附上經(jīng)典:
英文版地址:http://pcvr.nl/tcpip/
參考文章:
Maximum Segment Size操灿,TCP一次傳輸發(fā)送的最大數(shù)據(jù)段長度
網(wǎng)卡锯仪,交換機(jī),網(wǎng)橋趾盐,路由器庶喜,網(wǎng)關(guān)工作在OSI模型哪一層
————總結(jié)性長文小腊,非原創(chuàng),如有不妥之處久窟,請告知秩冈,多謝