A. 網路適配器的用途,運轉,及原理
1.認識網卡,我們上網必備組件之一。
網卡工作在osi的最後兩層,物理層和數據鏈路層,物理層定義了數據傳送與接收所需要的電與光信號、線路狀態、時鍾基準、數據編碼和電路等,並向數據鏈路層設備提供標准介面。物理層的晶元稱之為PHY。數據鏈路層則提供定址機構、數據幀的構建、數據差錯檢查、傳送控制、向網路層提供標準的數據介面等功能。乙太網卡中數據鏈路層的晶元稱之為MAC控制器。很多網卡的這兩個部分是做到一起的。他們之間的關系是pci匯流排接mac匯流排,mac接phy,phy接網線(當然也不是直接接上的,還有一個變壓裝置)。
下面繼續讓我們來關心一下PHY和MAC之間是如何傳送數據和相互溝通的。通過IEEE定義的標準的MII/GigaMII(Media Independed Interfade,介質獨立界面)界面連接MAC和PHY。這個界面是IEEE定義的。MII界面傳遞了網路的所有數據和數據的控制。
而MAC對PHY的工作狀態的確定和對PHY的控制則是使用SMI(Serial Management Interface)界面通過讀寫PHY的寄存器來完成的。PHY裡面的部分寄存器也是IEEE定義的,這樣PHY把自己的目前的狀態反映到寄存器裡面, MAC通過SMI匯流排不斷的讀取PHY的狀態寄存器以得知目前PHY的狀態,例如連接速度,雙工的能力等。當然也可以通過SMI設置PHY的寄存器達到控制的目的,例如流控的打開關閉,自協商模式還是強制模式等。
我們看到了,不論是物理連接的MII界面和SMI匯流排還是PHY的狀態寄存器和控制寄存器都是有IEEE的規范的,因此不同公司的MAC和PHY一樣可以協調工作。當然為了配合不同公司的PHY的自己特有的一些功能,驅動需要做相應的修改。
一片網卡主要功能的實現就基本上是上面這些器件了。其他的,還有一顆EEPROM晶元,通常是一顆93C46。裡面記錄了網卡晶元的供應商ID、子系統供應商ID、網卡的MAC地址、網卡的一些配置,如SMI匯流排上PHY的地址,BOOTROM的容量,是否啟用BOOTROM引導系統等東西。
很多網卡上還有BOOTROM這個東西。它是用於無盤工作站引導操作系統的。既然無盤,一些引導用必需用到的程序和協議棧就放到裡面了,例如RPL、 PXE等。實際上它就是一個標準的PCI ROM。所以才會有一些硬碟防寫卡可以通過燒寫網卡的BootRom來實現。其實PCI設備的ROM是可以放到主板BIOS裡面的。啟動電腦的時候一樣可以檢測到這個ROM並且正確識別它是什麼設備的。AGP在配置上和PCI很多地方一樣,所以很多顯卡的BIOS也可以放到主板BIOS裡面。這就是為什麼板載的網卡我們從來沒有看到過BOOTROM的原因。
2.工作過程
PHY在發送數據的時候,收到MAC過來的數據(對PHY來說,沒有幀的概念,對它來說,都是數據而不管什麼地址,數據還是CRC),每4bit就增加 1bit的檢錯碼,然後把並行數據轉化為串列流數據,再按照物理層的編碼規則(10Based-T的NRZ編碼或100based-T的曼徹斯特編碼)把數據編碼,再變為模擬信號把數據送出去。收數據時的流程反之。現在來了解PHY的輸出後面部分。一顆CMOS製程的晶元工作的時候產生的信號電平總是大於 0V的(這取決於晶元的製程和設計需求),但是這樣的信號送到100米甚至更長的地方會有很大的直流分量的損失。而且如果外部網現直接和晶元相連的話,電磁感應(打雷)和靜電,很容易造成晶元的損壞。
再就是設備接地方法不同,電網環境不同會導致雙方的0V電平不一致,這樣信號從A傳到B,由於A設備的0V電平和B點的0V電平不一樣,這樣會導致很大的電流從電勢高的設備流向電勢低的設備。我們如何解決這個問題呢?
這時就出現了Transformer(隔離變壓器)這個器件。它把PHY送出來的差分信號用差模耦合的線圈耦合濾波以增強信號,並且通過電磁場的轉換耦合到連接網線的另外一端。這樣不但使網線和PHY之間沒有物理上的連接而換傳遞了信號,隔斷了信號中的直流分量,還可以在不同0V電平的設備中傳送數據。
隔離變壓器本身就是設計為耐2KV~3KV的電壓的。也起到了防雷感應(我個人認為這里用防雷擊不合適)保護的作用。有些朋友的網路設備在雷雨天氣時容易被燒壞,大都是PCB設計不合理造成的,而且大都燒毀了設備的介面,很少有晶元被燒毀的,就是隔離變壓器起到了保護作用。
發送數據時,網卡首先偵聽介質上是否有載波(載波由電壓指示),如果有,則認為其他站點正在傳送信息,繼續偵聽介質。一旦通信介質在一定時間段內(稱為幀間縫隙IFG=9.6微秒)是安靜的,即沒有被其他站點佔用,則開始進行幀數據發送,同時繼續偵聽通信介質,以檢測沖突。在發送數據期間,如果檢測到沖突,則立即停止該次發送,並向介質發送一個「阻塞」信號,告知其他站點已經發生沖突,從而丟棄那些可能一直在接收的受到損壞的幀數據,並等待一段隨機時間(CSMA/CD確定等待時間的演算法是二進制指數退避演算法)。在等待一段隨機時間後,再進行新的發送。如果重傳多次後(大於16次)仍發生沖突,就放棄發送。
接收時,網卡瀏覽介質上傳輸的每個幀,如果其長度小於64位元組,則認為是沖突碎片。如果接收到的幀不是沖突碎片且目的地址是本地地址,則對幀進行完整性校驗,如果幀長度大於1518位元組(稱為超長幀,可能由錯誤的LAN驅動程序或干擾造成)或未能通過CRC校驗,則認為該幀發生了畸變。通過校驗的幀被認為是有效的,網卡將它接收下來進行本地處理
B. 計算機網路連接原理是什麼(越詳細越好)
連接原理是TCP/IP原理..
我目前也正在學.
TCP/IP的通訊協議
這部分簡要介紹一下TCP/IP的內部結構,為討論與互聯網有關的安全問題打下基礎。TCP/IP協議組之所以流行,部分原因是因為它可以用在各種各樣的信道和底層協議(例如T1和X.25、乙太網以及RS-232串列介面)之上。確切地說,TCP/IP協議是一組包括TCP協議和IP協議,UDP(User Datagram Protocol)協議、ICMP(Internet Control Message Protocol)協議和其他一些協議的協議組。
TCP/IP整體構架概述
TCP/IP協議並不完全符合OSI的七層參考模型。傳統的開放式系統互連參考模型,是一種通信協議的7層抽象的參考模型,其中每一層執行某一特定任務。該模型的目的是使各種硬體在相同的層次上相互通信。這7層是:物理層、數據鏈路層、網路層、傳輸層、話路層、表示層和應用層。而TCP/IP通訊協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的網路來完成自己的需求。這4層分別為:
應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協議(FTP)、網路遠程訪問協議(Telnet)等。
傳輸層:在此層中,它提供了節點間的數據傳送服務,如傳輸控制協議(TCP)、用戶數據報協議(UDP)等,TCP和UDP給數據包加入傳輸數據並把它傳輸到下一層中,這一層負責傳送數據,並且確定數據已被送達並接收。
互連網路層:負責提供基本的數據封包傳送功能,讓每一塊數據包都能夠到達目的主機(但不檢查是否被正確接收),如網際協議(IP)。
網路介面層:對實際的網路媒體的管理,定義如何使用實際網路(如Ethernet、Serial Line等)來傳送數據。
TCP/IP中的協議
以下簡單介紹TCP/IP中的協議都具備什麼樣的功能,都是如何工作的:
1. IP
網際協議IP是TCP/IP的心臟,也是網路層中最重要的協議。
IP層接收由更低層(網路介面層例如乙太網設備驅動程序)發來的數據包,並把該數據包發送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數據包傳送到更低層。IP數據包是不可靠的,因為IP並沒有做任何事情來確認數據包是按順序發送的或者沒有被破壞。IP數據包中含有發送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。
高層的TCP和UDP服務在接收數據包時,通常假設包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務的認證基礎,這些服務相信數據包是從一個有效的主機發送來的。IP確認包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對於一些TCP和UDP的服務來說,使用了該選項的IP包好象是從路徑上的最後一個系統傳遞過來的,而不是來自於它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來進行平常是被禁止的連接。那麼,許多依靠IP源地址做確認的服務將產生問題並且會被非法入侵。
2. TCP
如果IP數據包中有已經封好的TCP數據包,那麼IP將把它們向『上』傳送到TCP層。TCP將包排序並進行錯誤檢查,同時實現虛電路間的連接。TCP數據包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
TCP將它的信息送到更高層的應用程序,例如Telnet的服務程序和客戶程序。應用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設備驅動程序和物理介質,最後到接收方。
面向連接的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發送和接收域名資料庫),但使用UDP傳送有關單個主機的信息。
3.UDP
UDP與TCP位於同一層,但對於數據包的順序錯誤或重發。因此,UDP不被應用於那些使用虛電路的面向連接的服務,UDP主要用於那些面向查詢---應答的服務,例如NFS。相對於FTP或Telnet,這些服務需要交換的信息量較小。使用UDP的服務包括NTP(網落時間協議)和DNS(DNS也使用TCP)。
欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與UDP相關的服務面臨著更大的危險。
4.ICMP
ICMP與IP位於同一層,它被用來傳送IP的的控制信息。它主要是用來提供有關通向目的地址的路徑信息。ICMP的『Redirect』信息通知主機通向其他系統的更准確的路徑,而『Unreachable』信息則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接『體面地』終止。PING是最常用的基於ICMP的服務。
5. TCP和UDP的埠結構
TCP和UDP服務通常有一個客戶/伺服器的關系,例如,一個Telnet服務進程開始在系統上處於空閑狀態,等待著連接。用戶使用Telnet客戶程序與服務進程建立一個連接。客戶程序向服務進程寫入信息,服務進程讀出信息並發出響應,客戶程序讀出響應並向用戶報告。因而,這個連接是雙工的,可以用來進行讀寫。
兩個系統間的多重Telnet連接是如何相互確認並協調一致呢?TCP或UDP連接唯一地使用每個信息中的如下四項進行確認:
源IP地址 發送包的IP地址。
目的IP地址 接收包的IP地址。
源埠 源系統上的連接的埠。
目的埠 目的系統上的連接的埠。
埠是一個軟體結構,被客戶程序或服務進程用來發送和接收信息。一個埠對應一個16比特的數。服務進程通常使用一個固定的埠,例如,SMTP使用25、Xwindows使用6000。這些埠號是『廣為人知』的,因為在建立與特定的主機或服務的連接時,需要這些地址和目的地址進行通訊。
C. 共用交換機網路共享的原理是什麼,
我們宿舍一個交換機,幾台電腦,只要單台電腦撥號了以後,把本地IP改為192.168.X.1(主機)之後,再把撥號連接的Internet 共享的勾打上就可以實現共享,其他的機子只要設置為192.168.X.Y(同一個區域網)就可以上網了,我想知道為什麼?
re1:當192.168.X.1(主機)設置為共享後,就是提供了一個路由出口(TCP裡面的一個埠),當一個192.168.X.Y(同一個區域網)機器訪問internet的時候,作為交換機(工作在數據鏈路的第二層)會先尋找192.168.X.Y連接的地址,但交換機里沒有這個地址,就會進行第二個工作流程,也就是全網廣播,這是192.168.X.1(主機)提供的路由出口(TCP裡面的一個埠)就會把訪問數據轉發出去,進行連接,最終實現internet訪問。
當我們撥號上網的時候,中國電信分配給了我們一個IP(不是本地IP),例如是113.14.53.100,那麼電信只接受這個IP所發送的數據包,並回復相應的數據包。而其他沒有撥號的機子怎麼上的網?
re2:道理如1,但這里增加出一個NAT技術的出現。工作方式為:一組內部本地地址與一個內部全局地址池(也就是你說的192.168.X.Y)之間建立起一種動態的一一映射關系。這種地址轉換形式下,內部主機可以訪問外部網路,外部主機也能對內部網路進行訪問。
是因為他們的IP(非本地)也是113.14.53.100,還是因為他們先把數據包傳給主機,再由主機傳給伺服器,最後再把伺服器響應數據包發給其他機子?
re3:同1,他們先把數據包傳給主機,再由主機傳給伺服器,最後再把伺服器響應數據包發給其他機子。
如果這樣的話,主機的負擔豈不是很大?
re4:埠通信,這點開銷對計算機的運算能力來說不算什麼。
回答完畢。謝謝@_@