㈠ 電腦如何檢測ip沖突
你好 這個判斷方式很簡單。
ip地址是為互聯網上的每一個網路和每一台主機分配的一個邏輯地址,以此來屏蔽物理地址的差異。在同一個網段中 ip 地址都有唯一性。所以,只要你輸入 ip 地址,並確認後,網路會自動判斷這 ip 地址是否合法(有沒有沖突)。
因此,不需要你檢測,只要使用原有的地址,網路就會告訴你這個地址有沒有人在用。
㈡ 誰能詳細地解釋一下TCP/IP
仔細看看這歸咎好啦,不過別做損人利己的事哦,呵呵
TCP/IP(圖片請參考我的參考資料網址)
1. 前言
本文用於介紹TCP/IP協議的最基本內容,十分簡單,也十分基本,如果希望了解詳細的內容,請參閱其它資料,這只是給初學者用的。
2. TCP/IP介紹
TCP/IP通常指的是關於TCP和IP的任何東西,它是一個統稱,它既可以包括其它協議,其它應用程序,還可以包括網路介質。
2.1 基本結構
為了理解這個技術,最好稱理解下圖:
這個結構存在於Internet中計算機之中,它決定了計算機在網路上的動作。
2.2 名詞
數據塊的名稱會因為它處於不同的協議棧而不同。這里給出一個總結:在乙太網時,它稱為一個乙太網幀,在IP上時,它稱為IP包,如果數據在IP和UPD之間一般稱為UDP數據報,而數據如果在IP和TCP之間,則稱為TCP段(或消息),而數據在應用程序中時,則稱為應用程序消息。這種定義不是絕對的,不同的文章會有不同的說法。
2.3 數據流
數據流從應用程序流向TCP或UDP,我們通常知道的FTP是應用TCP協議的,而SNMP協議卻是使用UDP協議的。數據由不同協議模塊流向同一個乙太網適配器。由適配器將數據傳送到網路介質上去。上面的過程在接收方反向發生。
以太幀傳送到ARP或IP模塊中,而以太幀中的數據決定此數據是由IP還是由ARP處理。如果是供IP處理的包,則由IP模塊直接傳送給TCP或UPD,具體傳送給誰這由IP包頭決定。而UDP包內的數據決定了應該由UPD協議上層的哪一個應用程序接收這個數據,這一點和TCP是一致的。數據在從應用程序下傳到網路時,過程比較簡單,各層把在數據上加入自己的包頭信息,然後傳送給下一層就行了。雖然Internet支持多種網路介質,但是一般我們都拿乙太網範例。這里我們需要記住的是以太地址是唯一的,全球唯一的。計算機同時也擁有一個四個位元組的IP地址,這個地址用於標記IP模塊的地址,但對於Internet來說,IP地址不見得是唯一的。一台運行著的計算機通常知道自己的IP地址和以太地址。
2.4 兩個網路介面
下圖中一台計算機連接了兩個乙太網。
請注意:上圖中的計算機擁有兩個IP地址和以太地址。這時IP模塊將對應於多個物理適配器。
多個IP模塊對應多個物理適配器時,情況要復雜一些。
上圖說明了IP轉發的過程,專用於轉發IP包的計算機我們稱為IP路由器。從上圖中我們可以看出,IP轉發的時候根本不需要TCP和UDP,所以有些IP路由器的實現中根本沒有TCP和UPD模塊。
2.5 IP創建信號邏輯網路
數據在從應用程序向網路介質傳送的過程中,被各種協議加上包頭,而由網路介質向應用程序傳送時,這些加入的包頭被一個個取消,而IP層加入的信息構成了一個邏輯網路,這個邏輯網路是相對於多個物理網路而言的。多個物理網路相互連接,就是我們現在經常聽到的Internet的由來。
2.6 物理網路獨立性
IP將下層的網路結構對上層的應用程序隱藏起來,如果您發明了一種新的網路,您只需要實現一種驅動程序,讓它能夠和IP進行通信就可以使您的網路連接入Internet。
2.7 互連性
如果Internet上的兩台計算機能夠進行通信,我們稱它們互連了。我們的計算機一般都具有互連性,因此我們購買的計算機一般都可以在網路上相互通信。
3. Ethernet
下面我們看看以太技術,一個以太幀包括源地址,目的地址,類型域和數據。一個以太地址6個位元組,每個以太適配器都有唯一的以太地址,而地址"FF-FF-FF-FF-FF-FF"代表一個廣播地址。乙太網使用CSMA/CD技術,這個技術使設備共享一條傳輸介質,某一時刻只能一台設備傳送數據,如果兩台同時傳送就會產生沖突,而解釋這種沖突的辦法就是兩個設備停一會兒(一個隨機的時間)再傳送數據。
我們可以把以太技術想成許多人在一個黑屋子裡說話,如果每次只有一個人說,那麼對這個話感興趣的人就會聽到,記錄下來,而不感興趣的人就不管它就是了。如果兩個人同時說,兩個人就會聽到自己在說話的時候還有另外一個人也在說,於是就停下來,過一會兒再說,這樣來達到傳送消息的目的。這里需要注意的是,屋子裡的每個人有一個唯一的名字,這個名字就是以太地址,而如果某個人想對所有人說話,它就應用那個廣播地址傳送消息就可以了。
4. ARP
ARP是為了解決IP包發出後,目的以太地址如何確定的問題。ARP是用來將IP地址解釋為以太地址的協議,這個協議只對由IP傳出的數據有用。
4.1 ARP地址翻譯表
這個翻譯的過程中通過查詢一張表進行的,每個機器的IP地址和乙太網卡號就在這個表中,如果我想向一個IP地址發送消息,只需要查詢一下這張表,知道目的以太地址是什麼就可以了。下面就是一張這個的ARP表:
IP地址 以太地址
223.1.2.1 08-00-39-00-2F-C3
223.1.2.3 08-00-5A-21-A7-22
223.1.2.4 08-00-10-99-AC-54
圖1. ARP表
IP地址在機器內部是一個4位元組數,而人類的表示是如上表中的表示方法,這種方法稱為點為十進制。這種翻譯表是必須的,因為IP地址的選擇和以太地址的選擇是獨立進行的。以太地址是生產廠商根據分配給它的地址空間直接燒結在網卡上的。
4.2 經典的翻譯過程
在通常網路操作進行時,應用程序發送消息到TCP(或UDP),由TCP(或UDP)傳送消息到IP模塊,目的IP地址是已知的,在將這個包傳送到以太適配器時一定要查找這個翻譯表知道目的以太地址是什麼。而這時ARP就管用了。
4.3 ARP請示/響應對
但是,ARP表如何從空變得那麼充實呢?這是由ARP協議來完成填充工作的,它工作的基本過程是「需時再取」的原則。當ARP不能用於查詢以太地址時,會發生下面兩件事情:
1. ARP用以太廣播地址發送一個以太包到網路上,所有的計算機都會接收到這個包;
2. 將需要發送的IP包放入發送隊列中;
發出的那個以太包就象一個問路的人一樣,它帶有如下信息:「如果您的IP地址和我想找的IP地址一樣,請告訴我您的以太地址」,下面是一個ARP請示包的例子:
發送者IP地址 223.1.2.1
發送者以太地址 08-00-39-00-2F-C3
目標IP地址 223.1.2.2
目標以太地址 (空)
表2. ARP請示包例子
每台計算機的ARP模塊檢查自己的IP地址是不是和這個包內的IP地址一致,如果不一致,就什麼也不幹,如果一致,則返回一個響應,其中包括的信息指出了這個IP地址的以太地址。下面是一個響應包的例子:
發送者IP地址 223.1.2.2
發送者以太地址 08-00-28-00-38-A9
目標IP地址 223.1.2.1
目標以太地址 08-00-39-00-2F-C3
表3. ARP響應包例子
這個響應由原來發出請求的計算機接收,ARP就將相應的IP地址和以太地址加入ARP表中,這個過程不斷地發生,這個表也就不斷地加大了,更新過的ARP表如下圖所示:
IP地址 以太地址
223.1.2.1 08-00-39-00-2F-C3
223.1.2.2 08-00-28-00-38-A9
223.1.2.3 08-00-5A-21-A7-22
223.1.2.4 08-00-10-99-AC-54
表4. 更新後的ARP表
這個請求與響應的過程十分迅速,放入隊列的IP包現在可以取出發送了,因為所需要的以太地址已經有了,可以發送了。如果沒有目的主機,發出的請求就不會有回應,IP層拋棄需要發送的IP包,而上層協議也不清楚是網路斷了,還是不存在目的主機,IP層不負責報告錯誤類型。
5. Internet協議
IP模塊是Internet技術的核心,而它的路由技術是它成為核心的基礎。了解路由需要也解互連是什麼。
5.1 直接路由
下圖是一個只有三台計算機的小網路,每台計算機有運行一個TCP/IP協議棧,每個計算機配有以太適配器,每個計算機都被指定一個獨立的IP地址。
當A發送IP包到B時,IP包頭包括A的IP地址(這是源地址)和A的以太地址(這是源以太地址);同時這個包也包括B的IP地址和以太地址作為目的地址。
地址 源 目的
IP頭 A B
以太頭 A B
表5. 從A到B的IP包
在這種情況下,使用IP是多餘的,因為它根本沒有起到什麼作用,用IP只能增加多餘的處理時間,佔用了多餘的傳輸帶寬。B接收到這個包後,IP層檢查這個包內的目的地址是不是和自己的IP地址一致,如果一致則將數據返回給上層協議。這稱為直接路由。
5.2 間接路由
下面這個示意圖更接近Internet真實的情況。三個小的乙太網,每個網路中有三台計算機,它們有唯一以太地址,IP地址,這三個網路通過一台路由器連接,這台路由器有一個IP地址和三個以太地址,因為它和三個網路連接,當然要三個了。這里一定要記住,IP地址只有一個。
計算機D是一台路由器,它的TCP/IP協議棧內可能根本沒有TCP和UDP,而可能有多個ARP模塊和多個以太驅動程序(因為有多個以太適配器,所以要多個驅動程序才可以)。網路管理員為每個子網(上圖中有三個子網)指定一個網路號,是這個網路的名稱,這個名稱在上圖是沒有表示。
如果計算機A希望和計算機B通信,採用直接路由就可以了。這個過程上面已經說過了。在同一個子網內均採用直接路由。如果計算機D希望和計算機A通信,這也是直接路由,直接通信就行了,D和其它所有計算機的通信都是直接通信。但是如果計算機A希望和非本子網內的計算機通信就不能採用直接路由了,它發送的IP包必須發到計算機D,由計算機D向其它網路發送,這種通信就是非直接的。
路由對於IP協議上層的協議來說是透明的,它們根本不知道有什麼路由存在。
請注意下面的圖,源地址是計算機A的,目的IP地址是計算機E,而目的以太地址卻是計算機D的,這是因為計算機A和計算機E不處於同一個子網內,不能直接通信,需要由計算機D進行轉發,因此這包只能發往計算機。
地址 源 目的
IP頭 A E
以太頭 A D
表6. 從計算機A到計算機E以太幀示意圖
對於計算機D來說,它的以太幀地址如下:
地址 源 目的
IP頭 A E
以太頭 D E
表7. 從計算機D到計算機E以太幀示意圖
因為計算機D和計算機E可以直接通信。我們可以看到,在直接通信時,目的IP地址和以太地址都是接收者的,而在非直接通信時,目的IP地址是接收者的,而目的以太地址卻是路由器的。上面的例子比較簡單,真實的路由要比這個復雜得多,因為現實中的網路十分大,要許多路由器同時工作,這時的情況就比較復雜了。
5.3 IP路由規則
對於要發出的IP包,IP必須決定如何發送,是採用直接發送還是非直接發送,這是在路由表的幫助下完成的。對於傳入的IP包,IP模塊必須能夠識別它是不是自己需要的包,如果是自己需要的,就把數據傳送到上一層協議中,如果不需要則進行轉發。在IP包達到目的地址後,它不再轉發了。
5.4 IP地址
IP地址是由網路管理者為一台計算機指定的地址,IP地址的一部分作為網路號,另一部分作為網路中的主機號。具體內容請大家查詢相關資料。IP地址是由NIC管理的,所有直接連接到Internet上的計算機如果需要IP地址,必須和NIC聯系,則它指定;如果您需要建立自己的網路,那相應的網路號也需要從NIC取得。
5.5 名稱
人們喜歡使用計算機的名稱,而不喜歡使用數字來標記一台計算機,對於小型網路,計算機名和IP地址的對應表可以保存在每台計算機上,如果是一個大型網路,則需要一台專用的計算機來負責IP地址到計算機名的轉換。下面就是一個IP地址和計算機名的對應表。
223.1.2.1 alpha
223.1.2.2 beta
223.1.2.3 gamma
223.1.2.4 delta
223.1.3.2 epsilon
223.1.4.2 iota
前一列是IP地址,後一列是計算機名。您可以為一個計算機名指定多個IP地址,那麼通過哪一個IP地址都可以訪問這台計算機。這個擁有多個IP地址的計算機在接收到包後,可以根據目的地址知道是不是發向自己的包,這個目的地址可以是自己的任何一個地址。名稱也用於網路號,下面就是一個例子:
223.1.2 development
223.1.3 accounting
223.1.4 factory
前一列是IP地址,後一列是網路名。我們可以這個表上面的表對比一下,看看各個計算機屬於什麼網路。
5.6 IP路由表
我們上面已經提到過路由表這個名詞,下面我們就仔細看一下這張表。它通常是由下面幾列構成的:IP網路號,直接/非直接標記,路由器IP地址和介面號。這張表一般由管理員負責維護,因為是他為你的計算機指定了IP地址。
5.7 直接路由
下面我們仔細看一下我們上面看過的直接路由的例子。
在計算機alpha內的路由表如下所示:
網路 直接/非直接標記 路由器 介面號
development 直接 (空) 1
表8. 路由表範例
我們可能通過UNIX下的"netstat -r"命令看到類似這樣的結果。
5.8 實例
Alpha發送IP包到beta,alpha中的IP包的目的地址是beta的地址(223.1.2.2)。IP取得網路號部分,查詢路由表中的第一部分,看這個包應該包到什麼地方,它發現這個網路和表中的第一個項目一致。而這個項目中的其它信息表示,目的計算機可以直接通信,於是直接進行ARP翻譯(解析),通過介面1發送數據。
5.9 非直接路由
下面我們仔細看一下我們上面看過的非直接路由的例子。
計算機alpha內的路由表如下所示:
網路 直接/非直接標記 路由器 介面號
development 直接 (空) 1
accounting 非直接 devnetrouter 1
factory 非直接 devnetrouter 1
表10. Alpha內的路由表
5.10 實例
Alpha發送IP包到epsilon,IP包內的目的地址是epsilon的(223.1.3.2)。IP分析目的地址的網路號部分,查詢路由表中的第一列,發現第二個項目符合條件。此項目中的信息表示計算機可以由路由器devnetrouter達到,Alpha的IP模塊進行ARP解析,將數據通過介面1傳送到devnetrouter的IP地址上。這個包仍然包括著目的機IP地址223.1.3.2。這個包到達development網路介面,傳送到delta計算機的IP模塊,delta計算機發現這個包不是給它的,於是決定轉發。Delta的IP模塊從目的地址中解析出網路號,查詢路由表,Delta的路由表如下所示:
網路 直接/非直接標記 路由器 介面號
development 直接 (空) 1
factory 直接 (空) 3
accounting 直接 (空) 2
表11. Delta的路由表
第二條符合條件,於是IP模塊介面3將數據發送到計算機epsilon,IP包到達epsilon時,epsilon的IP模塊發現目的地址和自己的一致,於是將接收到的數據向上一層協議傳送。
5.11 路由總結
在一個大型網路中,IP包在到達目的計算機前一般需要經過多個路由器,它前進的路線不是事先定好的,而是在各個路由器上一步步查詢出來的,每個計算機只管一段,只保證把數據傳送到下一站,至於下一站怎麼辦,它就不管了。
5.12 管理路由
在大型網路的每台機器上支持一張路由表可不是件容易事,路由器如果出了問題會對網路傳輸不能進行。我們也可以使用ICMP協議對網路進行監控。一台機器從一個地方移到另一個地方必須更改計算機的IP地址,如果要更新主機地址文件,這簡單是不可能的,而DNS幫助解決這個問題。
6. 用戶數據報協議(UDP)
UDP是在IP上的兩個重要協議之一,它為用戶的網路應用程序提供服務,我們經常使用的NFS,SNMP就是使用UDP協議的。UDP協議不是面向連接的。這一點是和TCP協議不同的。UDP在IP包上加上了埠號和校驗碼兩個參數。
6.1 埠
一台計算機上的客戶程序如何達到伺服器呢?應用程序和UDP的通信線路是通過UDP埠一樣的,這些埠是數字的,以0開始,一個埠一般和一個服務對應。伺服器和客戶就在這個埠等待對方的請求(或應答)。UDP保留由應用程序定義的消息邊界。它決不把兩個消息連接起來,或把一個消息分成兩部分。
6.2 校驗碼
如果接收到的IP包內有一個標記「UDP」,IP模塊就把數據傳送到UDP,UDP檢查校驗碼,如果運算得出的結果為0,數據是正確的。UDP的校驗碼可以產生也可以不產生。傳送來的UDP包如果超過了上層應用程序的處理能力,就會暫時保存起來,如果保存的數據已經超過一定限制,則把UDP丟棄。
7. 傳輸控制協議(TCP)
TCP提供的服務不同於UDP,它們的最大區別在於TCP是面向連接的,TCP保證數據一定傳送到接收者,而UDP可不保證。TCP用於一定要保證數據傳輸的場合,我們通常知道的FTP,TELNET是基於TCP協議的,而其它的一些TCP網路應用程序包括X-Window系統,rcp(遠程復制)和R系列命令也是使用TCP的,TCP提供這樣好的服務也是有代價的,它需要更多的CPU處理時間和網路帶寬,TCP模塊的復雜度也比UDP大得多。
與UDP相同的是,應用程序必須和TCP埠連接請求服務,接收和發送數據。在應用程序開始運行時,伺服器和客戶機上的TCP模塊開始相互通信,這兩個TCP包含了狀態信息,維持一條虛鏈路,這條虛鏈路是全雙工的。TCP可以任意打包數據,不必管什麼邊界。例如,應用程序可以在一個埠寫5次,遠方的應用程序可以讀10次把數據讀完,這和UDP不同,在UDP下,在一個埠寫幾次,遠程應用程序就要讀幾次。
TCP支持滑動窗口協議,雙方都進行流量控制,因此不會讓緩沖區滿。這也和UDP不同,在UDP的情況下,緩沖區可能因為應用程序的處理能力不足而變滿。對於滑動窗口協議,它指定了一個窗口大小,這個大小指的是,在未接收到確認信息之前允許發送的數據數,在TCP中,窗口的大小是以位元組為單位的。
8. 網路應用程序
TCP和UDP提供不同的服務,不同的應用程序會選擇不同的協議,這里請您注意,如果您選擇使用UDP進行可靠傳輸,那隻能在UDP上層來提供可靠性。下面我們舉出幾個常用的應用程序。
TELNET使用TCP提供遠程登錄。TELNET工作得非常好,它雖然古老,但是現在仍然在廣泛使用,它經常用於在不同的操作系統間進行互連。 FTP協議和TELNET歲數差不多大了,它也使用TCP服務,在FTP時,您好象登錄到遠程計算機上,但您能夠使用的命令卻不那麼多,FTP提供用戶在計算機間復制文件的服務。UNIX中的遠程命令一般都以R開始,這些命令一般都通過網路進行,我們就稱它們為R系列命令,這些命令通常在UNIX系統中使用,它對安全性考慮不多,但是非常好用。NFS由Sun公司開發,它使用UDP,它用於在不同的計算機上載入UNIX文件系統,在這一點上它做得非常好。NFS為網路加重了負擔,在慢速連接的網路上工作得不好,但它的功能可卻是不錯。隨著網路規模不斷擴大,原來的網路管理協議ICMP已經不能提供滿意的服務了,於是在這一要求下提出了SNMP協議,它檢測網路中各種設備的情況,根據這種情況對網路進行監控。X Window系統使用X Window協議,X Window協議也使用TCP服務
㈢ 請前輩講解一下TCP/IP的知識
TCP/IP應該是個協議集,根據OS的七層理論,TCP/IP分為四層.分別是應用,傳輸,Interne和網路界面.
我們一般說TCP在傳輸層,而IP在Internet層.
TCP/IP的應用程序包括我們平時經常用到的Ping,Telnet,Ftp,Finger等等
配置TCP/IP包括IP地址,子網掩碼和預設網關
正確檢測TCP/IP的四個步驟:PIng 127.0.0.1(回環地址)如果通表示TCP/IP已經裝入,Ping自己表明客戶機正常(主要是網卡),Ping網關表示區域網正常,Ping路由外地址表示完全正常,當然你也可以直接進行第四步,一般來說沒這么麻煩的,但理論是基礎:-)
IP地址是四段八位的二進制數組成的,IP分為A,B,C,D,E五類地址
A類高端為0,從1.x.y.z~126.x.y.z .B類高端為10,從128.x.y.z~191.x.y.z C類高端為110,從192.x.y.z~223.x.y.z D類高端為1110是保留的IP地址 E類高端為1111,是科研用的IP地址
其中255是廣播地址,127是內部回送函數
若公司不上Internet,那一定不會煩惱IPAddress的問題,因為可以任意使用所有的IPAddress,不管是AClass或是BClass, 這個時候不會想到要用SubNet,但若是上Internet那IPAddress 便彌足珍貴了,目前全球一陣Internet熱,IPAddress已經愈來愈少了,而所申請的IPAddress目前也趨保守,而且只有經申請的IPAddress能在Internet使用,但對某些公司只能申請到一個CCLass的IPAddress,但又有多個點需要使用,那這時便需要使用到Subnet,這篇短文說明Subnet的原理及如 何規劃。
SubnetMask的介紹
設定任何網路上的任何設備不管是主機、PC、Router等皆需要設定IPAddress,而跟隨著IPAddress的是所謂的NetMask, 這個NetMask主要的目的是由IPAddress中也能獲得NetworkNumber ,也就是說IPAddress和NetMask作AND而得到NetworkNumber,如下所 示
IPAddress 192.10.10.611000000.00001010.00001010.00000110
NetMask 255.255.255.011111111.11111111.11111111.00000000
AND -------------------------------------------------------------------
etworkNumber 192.10.10.011000000.00001010.00001010.00000000
NetMask有所謂的預設值,如下所示
ClassIPAddress范圍NetMask
A 1.0.0.0-126.255.255.255255.0.0.0
B 128.0.0.0-191.255.255.255255.255.0.0
C 192.0.0.0-223.255.255.255255.255.255.0
在預設的NetMask都只有255的值,在談到SubnetMask時這個值便不一定是255了。
在完整一組CClass中如203.67.10.0-203.67.10.255NetMask255.255.255.0, 203.67.10.0稱之NetworkNumber(將IPAddress和Netmask作AND),而 203.67.10.255是Broadcast的IPAddress,所以這?兩者皆不能使用,實際只能使用203.67.10.1--203.67.10.254等254個IPAddress,這是以 255.255.255.0作NetMask的結果,而所謂SubnetMsk尚可將整組C Class分成數組NetworkNumber,這要在NEtMask作手腳,若是要將整組CCLass分成2個NetworkNumber那NetMask設定為255.255.255.192, 若是要將整組CCLass分成8組NetworkNumber則NetMask要為 255.255.255.224,這是怎麽來的,由以上知道NetworkNumber是由IP Address和NetMask作AND而來的,而且將NetMask以二進位表示法知道是1的會保留,而為0的去掉
192.10.10.193--11000000.00001010.00001010.10000001
255.255.255.0--11111111.11111111.11111111.00000000
--------------------------------------------------------------
192.10.10.0--11000000.00001010.00001010.00000000
以上是以255.255.255.0為NetMask的結果,NetworkNumber是192.10.10.0, 若是使用255.255.255.224作NetMask結果便有所不同
192.10.10.193--11000000.00001010.00001010.10000000
255.255.255.224--11111111.11111111.11111111.11100000
--------------------------------------------------------------
192.10.10.192--11000000.00001010.00001010.10000000
此時NetworkNumber變成了192.10.10.192,這便是Subnet。
那要如何決定所使用的NetMask,255.255.255.224以二進位表示法為11111111.11111111.11111111.11100000,變化是在最後一組,11100000 便是224,以三個Bit可表示2的3次方便是8個NetworkNumber
NetMask二進位表示法可分幾個Network
255.255.255.0 11111111.11111111.11111111.000000001
255.255.255.128 11111111.11111111.11111111.100000002
255.255.255.192 11111111.11111111.11111111.110000004
255.255.255.224 11111111.11111111.11111111.111000008
255.255.255.240 11111111.11111111.11111111.1111000016
255.255.255.248 11111111.11111111.11111111.1111100032
255.255.255.252 11111111.11111111.11111111.1111110064
以下使用255.255.255.224將C Class203.67.10.0分成8組NetworkNumber,各個NetworkNumber及其BroadcastIPAddress及可使用之IPAddress
序號NetworkNumberBroadcast可使用之IPAddress
1 203.67.10.0 203.67.10.31 203.67.10.1-203.67.10.30
2 203.67.10.32 203.67.10.63 203.67.10.33-203.67.10.62
3 203.67.10.64 203.67.10.95 203.67.10.65-203.67.10.94
4 203.67.10.96 203.67.10.127 203.67.10.97-203.67.10.126
5 203.67.10.128 203.67.10.159 203.67.10.129-203.67.10.158
6 203.67.10.160 203.67.10.191 203.67.10.161-203.67.10.190
7 203.67.10.192 203.67.10.223 203.67.10.193-203.67.10.222
8 203.67.10.224 203.67.10.255 203.67.10.225-203.67.10.254
可驗證所使用的IPAddress是否如上表所示
203.67.10.115--11001011.01000011.00001010.01110011
255.255.255.224--11111111.11111111.11111111.11100000
--------------------------------------------------------------
203.67.10.96--11001011.01000011.00001010.01100000
203.67.10.55--11001011.01000011.00001010.00110111
255.255.255.224--11111111.11111111.11111111.11100000
--------------------------------------------------------------
203.67.10.32--11001011.01000011.00001010.00100000
其他的NetMask所分成的NetworkNumber可自行以上述方法自行推演出來。
Subnet的應用
使用Subnet是要解決只有一組CClass但需要數個NetworkNumber的問題,並不是解決IPAddress不夠用的問題,因為使用 Subnet反而能使用的IPAddress會變少,Subnet通常是使用在總公司在台北,但分公司在台中,兩者之間使用Router連線 ,同時也上Internet,但只申請到一組CCLassIPAddress,過Router又需不同的Network,所以此時就必須使用到Subnet,當然二辦公司間可以RemoteBridge連接,那便沒有使用Subnet的問題,這點在此不討論,所以在以上情況下的網路連線架構及IPAddress的使用
TCP/IP(傳輸控制協議/ 網間協議)是一種網路通信協議,它規范了網路上的所有通信設備,尤其是一個主機與另一個主機之間的數據往來格式以及傳送方式。 TCP/IP是INTERNET的基礎協議,也是一種電腦數據打包和定址的標准方法。在數據傳送中,可以形象地理解為有兩個信封,TCP和IP就像是信封,要傳遞的信息被劃分成若干段,每一段塞入一個TCP信封,並在該信封面上記錄有分段號的信息,再將TCP信封塞入IP大信封,發送上網。在接受端,一個TCP軟體包收集信封,抽出數據,按發送前的順序還原,並加以校驗,若發現差錯,TCP將會要求重發。因此,TCP/IP在INTERNET中幾乎可以無差錯地傳送數據。
在任何一個物理網路中, 各站點都有一個機器可識別的地址,該地址叫做物理地址. 物理地址有兩個
特點:
物理地址的長度,格式等是物理網路技術的一部分, 物理網路不同,物理地址也不同.
同一類型不同網路上的站點可能擁有相同的物理地址.
以上兩點決定了,不能用物理網路進行網間網通訊.
在網路術語中,協議中,協議是為了在兩台計算機之間交換數據而預先規定的標准。TCP/IP並不是一個而是許多協議,這就是為什麼你經常聽到它代表一個協議集的原因,而TCP和IP只是其中兩個基本協議而已。
你裝在計算機-的TCP/IP軟體提供了一個包括TCP、IP 以及TCP/IP協議集中其它協議的工具平台。特別是它包括一些高層次的應用程序和FTP(文件傳輸協議),它允許用戶在命令行上進行網路文件傳輸。
TCP/IP是美國政府資助的高級研究計劃署(ARPA)在二十世紀七十年代的一個研究成果,用來使全球的研究網路聯在一起形成一個虛擬網路,也就是國際互聯 網。原始的
Internet通過將已有的網路如ARPAnet轉換到TCP/IP上來而形成,而這個Internet最終成為如今的國際互聯網的骨幹網。
如今TCP/IP如此重要的原因,在於它允許獨立的網格加入到Internet或組織在一起形成私有的內部網(Intranet)。構成內部網的每個網路通過一種-做路由器或IP路由器的設備在物理上聯接在一起。路由器是一台用來從一個網路到另一個網路傳輸數據包的計算機。在一個使用TCP/IP的內部網中,信息通過使用一種獨立的叫做IP 包(IPpacket)或IP數據報(IPdatagrams)的數據單元進--傳輸。TCP/IP 軟體使得每台聯到網路上的計算機同其它計算機「 看」起來一模一樣,事實上它隱藏了路由器和基本的網路體系結構並使其各方面看起來都像一個大網。如同聯入乙太網時需要確認一個48位的乙太網地址一樣,聯入一個內部網也需要確認一個32位的IP地址。我們將它用帶點的十進制數表示,如128.10.2.3。給定一個遠程計算機的IP地址,在某個內部網或Internet上的本地計算機就可以像處在同一個物理網路中的兩台計算機那樣向遠程計算機發送數據。
TCP/IP提供了一個方案用來解決屬於同一個內部網而分屬不同物理網的兩台計算機之間怎樣交換數據的問題。這個方案包括許多部分,而TCP/IP協議集的每個成員則用來解決問題的某一部分。如TCP/IP協議集中最基本的協議-IP協議用來在內部網中交換數據並且執行一項重要的功能:路由選擇--選擇數據報從A主機到B主機將要經過的路徑以及利用合適的路由器完成不同網路之間的跨越(hop)。
TCP是一個更高層次的它允許運行在在不同主機上的應用程序相互交換數據流。TCP將數據流分成小段叫做TCP數據段(TCPsegments),並利用IP協議進行傳輸。在大多數情況下,每個TCP數據段裝在一個IP數據報中進行發送。但如需要的話,TCP將把數據段分成多個數據報,而IP數據報則與同一網路不同主機間傳輸位流和位元組流的物理數據幀相容。由於IP並不能保證接收的數據報的順序相一致,TCP會在收信端裝配TCP數據段並形成一個不間斷的數據流。FTP和Telnet就是兩個非常流行的依靠TCP的TCP/IP應用程序。
另一個重要的TCP/IP協議集的成員是用戶數據報協議(UDP),它同TCP相似但比TCP原始許多。TCP是一個可靠的協議,因為它有錯誤檢查和握手確認來保證數據完整的到達目的地。UDP是一個「不可靠」的協議,因為它不能保證數據報的接收順序同發送順序相同,甚至不能保證它們是否全部到達。如果有可靠性要求,則應用程序避免使用它。同許多TCP/IP工具同時提供的SNMP( 簡單網路管理協議)就是一個使用UDP協議的應用例子。
其它TCP/IP協議在TCP/IP網路中工作在幕後,但同樣也發揮著重要作用。例如地址轉換協議(ARP)將IP地址轉換為物理網路地址如乙太網地址。而與其對應的反向地址轉換協議(RARP)做相反的工作,即將物理網路地址轉換為IP地址。網際控制報文協議(ICMP)則是一個支持性協議,它利用IP完成IP數據報在傳輸時的控制信息和錯誤信息的傳輸。例如,如果一個路由器不能向前發送一個IP數據報,它就會利用ICMP來告訴發送者這里出現了問題。
網路設計者在解決網路體系結構時經常使用ISO/OSI(國際標准化組織/開放系統互連)七層模型,該模型每一層代表一定層次的網路功能。最下面是物理層,它代表著進行數據轉輸的物理介質,換句話說,即網路電纜。其上是數據鏈路層,它通過網路介面卡提供服務。最上層是應用層,這里運行著使用網路服務的應 用程序。
TCP/IP是同ISO/OSI模型等價的。當一個數據單元從網路應用程序下流到網路介面卡,它通過了一列的TCP/IP 模塊。這其中的每一步,數據單元都會同網路另一端對等TCP/IP模塊所需的信息一起打成包。這樣當數據最終傳到網卡時,它成了一個標準的以太幀(假設物理網路是乙太網)。而接收端的TCP/IP軟體通過剝去乙太網幀並將數據向上傳輸過TCP/IP棧來為處於接收狀態的應用程序重新恢復原始數據(一種最好的了解TCP/IP工作實質的方法,是使用探測程序來觀察網路中的到處流動的幀中被不同TCP/IP模塊所加上的信息)。
為了勾勒TCP/IP在現實網路世界中所扮演的角色,請考慮當使用HTTP(超文本傳輸協議)的Web瀏覽器從連接在Internet上的Web伺服器上獲取一頁HTML數據時所發生的情況。為形成同Web伺服器的虛鏈路,瀏覽器使用一種被抽象地稱為套介面(socket)的高層軟體。為了獲取Web頁,它通過向套介面向套介面寫入HTTPGET命令來向Web 伺服器發出該指令。接下來套介面軟體使用TCP協議向 Web伺服器發出包含GET命令的位元組流和位流,TCP將數據分段並將各獨立段傳到IP模塊,該模塊將數據段轉換成數據報並發送給Web伺服器。
如果瀏覽器和伺服器運--在不同物理網路的計算機上(一般情況如此),數據報從一個網路傳到另一個網路,直到抵達伺服器所在的那個網。最終,數據被傳輸到目的地址並被重新裝配,這樣Web伺服器通過讀自己的套介面來獲得數據主幹,並進而查看連續的數據流。對瀏覽器和伺服器來說,數據在這一端寫入套介面而在另一端出現如同魔術一般,但這只是底下發生的各種復雜的交互,它創造了數據經過網路無 縫傳輸的假象。
這就是TCP/IP所做的:將許多小網聯成一個大網。並在這個大網也就是Internet上提供應用程序所需要的相互通信的服務。
評論:
對於TCP/IP有許多可談的,但這里僅講三個關鍵 點:
·TCP/IP是一族用來把不同的物理網路聯在一起構成網際網的協議。TCP/IP聯接獨立的網路形成一個虛擬的網,在網內用來確認各種獨立的不是物理網路地址,而是IP地址。
·TCP/IP使用多層體系結構,該結構清晰定義了每個協議的責任。TCP和UDP向網路應用程序提供了高層的數據傳輸服務,並都需要IP來傳輸數據包。IP有責任為數據包到達目的地選擇合適的路由。
·在Internet主機上,兩個運行著的應用程序之間傳送要通過主機的TCP/IP堆棧上下移動。在發送端TCP/IP 模塊加在數據上的信息將在接收端對應的TCP/IP模塊上濾掉,並將最終恢復原始數據。
如果你有興趣學習更多的TCP/IP知識,這里有兩個較高層次的信息源RFC(RequestforComment)1180——叫做「TCP/IP Tutorial」的文檔,你可以從許多普及的RFC的Internet節點上下載。另一個是InternetworkingwithTCP/IP的第一卷:Principles,Protocols,and Architectures,作者DouglasE.Comer(1995,Prentice-Hall)。作為該系三部曲中的第一部分,許多人把看成是一本TCP/IP聖經。(原文刊載於Vol.15No.20)
二、傳輸層的安全性
在Internet應用編程序中,通常使用廣義的進程間通信(IPC)機制來與不同層次的安全協議打交道。比較流行的兩個IPC編程界面是BSD Sockets和傳輸層界面(TLI),在Unix系統V命令里可以找到。
在Internet中提供安全服務的首先一個想法便是強化它的IPC界面,如BSD Sockets等,具體做法包括雙端實體的認證,數據加密密鑰的交換等。Netscape通信公司遵循了這個思路,制定了建立在可靠的傳輸服務(如TCP/IP所提供)基礎上的安全套接層協議(SSL)。SSL版本3(SSL v3)於1995年12月制定。它主要包含以下兩個協議:
SSL記錄協議它涉及應用程序提供的信息的分段、壓縮、數據認證和加密。SSL v3提供對數據認證用的MD5和SHA以及數據加密用的R4和DES等的支持,用來對數據進行認證和加密的密鑰可以通過SSL的握手協議來協商。
SSL握手協議 用來交換版本號、加密演算法、(相互)身份認證並交換密鑰。SSL v3 提供對Deffie-Hellman密鑰交換演算法、基於RSA的密鑰交換機制和另一種實現在 Fortezza chip上的密鑰交換機制的支持。
Netscape通信公司已經向公眾推出了SSL的參考實現(稱為SSLref)。另一免費的SSL實現叫做SSLeay。SSLref和SSLeay均可給任何TCP/IP應用提供SSL功能。Internet號碼分配當局(IANA)已經為具備SSL功能的應用分配了固定埠號,例如,帶SSL的 HTTP(https)被分配的埠號為443,帶SSL的SMTP(ssmtp)被分配的埠號為465,帶SSL的NNTP(snntp)被分配的埠號為563。
微軟推出了SSL2的改進版本稱為PCT(私人通信技術)。至少從它使用的記錄格式來看,SSL和PCT是十分相似的。它們的主要差別是它們在版本號欄位的最顯著位(The Most Significant Bit)上的取值有所不同: SSL該位取0,PCT該位取1。這樣區分之後,就可以對這兩個協議都給以支持。
1996年4月,IETF授權一個傳輸層安全(TLS)工作組著手制定一個傳輸層安全協議(TLSP),以便作為標准提案向IESG正式提交。TLSP將會在許多地方酷似SSL。
前面已介紹Internet層安全機制的主要優點是它的透明性,即安全服務的提供不要求應用層做任何改變。這對傳輸層來說是做不到的。原則上,任何TCP/IP應用,只要應用傳輸層安全協議,比如說SSL或PCT,就必定要進行若干修改以增加相應的功能,並使用(稍微)不同的IPC界面。於是,傳輸層安全機制的主要缺點就是要對傳輸層IPC界面和應用程序兩端都進行修改。可是,比起Internet層和應用層的安全機制來,這里的修改還是相當小的。另一個缺點是,基於UDP的通信很難在傳輸層建立起安全機制來。同網路層安全機制相比,傳輸層安全機制的主要優點是它提供基於進程對進程的(而不是主機對主機的)安全服務。這一成就如果再加上應用級的安全服務,就可以再向前跨越一大步了。
㈣ 5種檢測IP地址是否是代理的方法
通常,當任何人想要檢測IP是否是代理時,這是因為他們正試圖決定減少對該代理的訪問,並因此禁止使用代理的人。
那是你的意圖嗎?如果是這樣,那很好。
但是,要知道,本文更多是關於為代理用戶(而非阻止者)提供工具,以便更深入地了解他們使用的技術,並在免費代理和代理提供者上運行自己的測試。
我之所以這樣說,主要是因為我支持使用代理,而且我不認為它們應該被公司直接屏蔽。
也就是說,討論代理用戶為什麼要檢入某些IP地址是很重要的。
最常見的原因是確定免費代理的合法性。除了檢查匿名,透明或精英級別之外,重要的是要查看使用的是哪種代理用戶(請參見下文)以及代理的原始來源。如果您要使用免費代理,最好知道它的來源。
是否可以找到可靠且有效的公共代理?
第二個主要原因是要檢查出售特定種類的代理(尤其是「 住宅 」)的服務。實際上,有無數的企業在出售住宅代理,而他們使用的是隱藏的數據中心代理。
知道差異是關鍵,因為它可以為您節省很多錢,還能讓你的企業更加誠信。
您可能不是一家公司,但仍然想更多地了解代理,並研究不同公司提供的數量和類型。了解IP是否實際上是代理以及它是什麼類型的代理是非常有效的。
你可能不是一家公司,但你仍然想要了解更多關於代理的信息,並對不同公司的代理數量和類型進行研究。了解IP是否真的是代理,它是什麼類型的代理,這是非常有效的。
下面將通過特定的檢測方案來探索所有這些。
粗略了解IP地址是否是代理伺服器(以及有關它的其他詳細信息)的第一種主要方法是通過Web應用程序。
這些典型的免費工具是由公司開發的,他們希望你訪問他們的網站,注冊他們的半相關服務,或點擊某種從屬鏈接。您無需執行任何這些操作,並且通常仍可以使用免費工具,這很好。
也有付費的Web應用程序,但是我不會在這里討論,因為您可能不需要復雜而強大的功能(更不用說昂貴的功能了)。
免費的Web應用程序將:
1.檢查你當前的IP地址(不管它是什麼),然後告訴你他們是否認為這是一個代理。
2.告訴您ISP和組織的名稱。
3.告訴您IP主機的名稱。
4.告訴您IP所在的國家/地區。
5.告訴您IP所在的地區或狀態。
6.提供有關IP所在城市的最佳猜測。
7.猜測該位置的緯度和經度。
對於簡單的查找,有很多信息。從所有方面來看,為什麼有人要使用代理是有道理的。如果您不使用它,那麼所有這些信息都會清楚地指出您的位置以及從何處購買互聯網。根據以上信息,服務將確定IP地址是否是代理,並告知您。
為此,我使用WhatIsMyIPAddress代理檢查器-它簡單,直接,並且不會打亂廣告。去那裡將專門檢查您的計算機或設備正在使用的代理。
如果要檢查另一個IP地址(而不是您正在使用的IP地址),它們的IP查找也非常有用。您可以在那裡輸入任何IP地址並獲得相同的信息。但是,您必須了解有關代理和IP地址的更多信息,這將導致以下步驟。
確定一個IP地址是否真實,最好的方法 之一是使用像上面那樣的檢查,並以位置為中心。檢查顯示代理位於哪裡,對於一個真實人來說,這個地方網上生活和購物是否現實?
這些問題的答案可能相差很大,因此了解問題背後的框架非常重要。
代理有兩種主要方式:數據中心和住宅。我在上面提到了這些,它們在代理功能的良好程度以及它是否實際上是代理方面起著至關重要的作用。
從字面上看,住宅意味著IP地址與單獨的房屋、付費用戶和Internet服務提供商(ISP)相關聯。數據中心意味著IP地址是在大型伺服器中心中創建的,並與數十萬其他IP地址一起輸出,所有這些IP地址都將用作代理。
確定IP地址代理狀態的主要方法之一是通過查找帶來的位置。
數據中心或伺服器中心通常位於大而平坦的地方,在那裡人們可以建立大量的計算機倉庫。在美國,這意味著內布拉斯加州、堪薩斯州和愛荷華州。是的,到處(以及在大多數州)都有專用的數據中心,但通常它們都位於美國中部。
考慮到查找甚至提供了城市和緯度/經度坐標,您可以縮小查看IP地址是否為某個家庭中的個人所有和使用,或者是否為某個欄位中的某個大型中心。
在你的國家之外
另一個版本是,如果你在尋找國外的代理。為了繞開地理定位,從全球各地獲取和使用代理是一種常見的做法。
因此,例如,如果你發現一個IP地址在挪威,它可能是一個數據中心代理。這很難確定,但大多數情況下,除非有特別的廣告,否則在您自己國家以外使用的IP地址肯定是一個代理。
在上述方法的基礎上,您接下來將看一下Internet服務提供商(ISP)。此信息也來自查找,是一種更確定IP地址是否為代理的可靠方法。
基本上,IP地址的ISP是製造和擁有該IP的人。在美國,常見的ISP是Comcast,Time Warner Cable,Spectrum,Cogent,AT&T等。基本上,您呼叫的大型公司在家裡安裝互聯網。為了安裝上述互聯網,他們必須給您一個IP地址,即您的IP。
在其他國家,這仍然是正確的,但是公司會有所不同。查看查詢中提供的信息時,請參閱「 ISP」或「組織」列出的內容。它是您國家/地區公認的Internet提供商嗎?
還是公司名稱中包含「伺服器」,「緩存」,「主機」,「代理」等字樣?
如果它是一家不折不扣的公司,則可能意味著該IP地址是由代理公司擁有和製造的,並且通常位於某個數據中心中。
這是確定IP地址是否是代理的最可靠方法。
OVH和Hostgator是最常用的兩個代理主機名,但是有很多。
同樣,分配給它們的IP數量較少的ISP或ASN更可能被檢測為代理伺服器。
用戶代理是任何IP地址發送到網站的一組標識因素。它包括像你電腦的操作系統和你使用的瀏覽器,特別是什麼版本。
這使網站可以將最新的圖形和編碼發送回給用戶,從而使您的Web瀏覽體驗變得無縫。
僅當它是您的常規ISP IP地址時,才如此。代理可以手動或通過代理提供程序通過預設來更改用戶代理。
檢查一個IP地址是否是代理的一個好方法是尋找過時或奇怪的東西。如果IP顯示的是四年前的ie版本,那麼這個人不太可能是真人,因為那個版本現在已經更新過了。操作系統也是如此。
如何檢查用戶代理
就像在位置和主機方面檢查IP信息的Web應用程序一樣,有一些免費的工具可以檢查IP的用戶代理。
UserAgentString是最好的工具之一,因為它為您提供了用戶代理的所有不同方面的詳細含義。它會檢查您當前用於訪問該站點的IP地址,這意味著您必須將有問題的IP地址載入到瀏覽器中,然後訪問以檢查其用戶代理。
如果它提供了一堆關於您的計算機的不正確信息,則它是代理。
您可以使用AtomURL查看ISP IP用戶代理字元串,也可以輸入任何代理以檢查其用戶代理字元串。
但是,這不是完全驗證的方法,因為許多代理不會自行更改用戶代理。一個好的代理就不會,因為更改用戶代理會大大改變您在網頁上查看的內容,而這可能是您不想要的。
這意味著您應該將這一步驟與其他步驟結合使用,以獲取有關該IP地址的完整信息。
您可以使用User Agent Switcher更改用戶代理字元串,但這更多地用於代理的使用,而不是識別它們。
使用代理的主要原則是使代理看起來像真人一樣。人們這樣做是為了使這些代理不會被Google和其他搜索引擎禁止或阻止。這些引擎是為人而不是機器設計的。
代理無法執行此操作的最常見情況是,它檢查網站的頁面以及訪問的頁面數。如果它在網頁上顯示2秒鍾,並且在一分鍾內訪問了1,000個頁面,那麼它就是代理。
沒有人能做到這一點,即使他們有一隻機械手,否則不可能點擊那麼快。
您可以使用這個規則來確定一個IP地址是否在internet上快速行走,從而將其標識為代理。如果沒有,它可能只是一個普通的ISP IP。
如何檢查訪問頁面和訪問頁面的時間
實際的操作方法比想法要復雜。這取決於您是否有權訪問IP地址,是否從外部查看IP地址以及是否具有可以監視使用情況的特定內部網路。
監視自己對IP地址的使用很容易,但是在那種情況下,您可能會知道它是否是代理。我不推薦使用像Scrapebox這樣的工具來增加頁面瀏覽時間,也不推薦使用訪問頁面來查看IP地址是否是代理——它要麼是,並且將被禁止,要麼不是,也會被禁止。兩者都是負面的,後者可能導致麻煩與您的ISP。
如果您有一個網站,並且想了解更多有關網站IP地址的信息,則可以在Google Analytics(分析)等分析面板中查找使用情況統計信息。在其中,您可以看到一個IP地址,該IP地址已經在短時間內記錄了大量的頁面訪問,然後進行其餘的研究,以查看它是否是代理。再一次,任何人類不可能進行的活動都意味著它是代理。
結論
以上五種方法都是檢查IP地址性質的相當簡單、免費的方法。不管你是出於什麼原因想知道它是否是代理,這些都會有用。
最好是對所有這些都進行批判性觀察,描繪出IP地址在做什麼、怎麼做、從哪裡做,然後決定它是不是一個代理。
建議資源: Bright Data
㈤ TCP-IP協議詳解(3) IP/ARP/RIP/BGP協議
網路層(network layer)是實現互聯網的最重要的一層。正是在網路層面上,各個區域網根據IP協議相互連接,最終構成覆蓋全球的Internet。更高層的協議,無論是TCP還是UDP,必須通過網路層的IP數據包(datagram)來傳遞信息。操作系統也會提供該層的socket,從而允許用戶直接操作IP包。
IP數據包是符合IP協議的信息(也就是0/1序列),我們後面簡稱IP數據包為IP包。IP包分為頭部(header)和數據(Data)兩部分。數據部分是要傳送的信息,頭部是為了能夠實現傳輸而附加的信息(這與乙太網幀的頭部功能相類似,如果對幀感到陌生,可參看 小喇叭 一文)。
IP協議可以分為IPv4和IPv6兩種。IPv6是改進版本,用於在未來取代IPv4協議。出於本文的目的,我們可以暫時忽略兩者的區別,只以IPv4為例。下面是IPv4的格式
IPv4包 我們按照4 bytes將整個序列折疊,以便更好的顯示
與幀類似,IP包的頭部也有多個區域。我們將注意力放在紅色的發出地(source address)和目的地(destination address)。它們都是IP地址。IPv4的地址為4 bytes的長度(也就是32位)。我們通常將IPv4的地址分為四個十進制的數,每個數的范圍為0-255,比如192.0.0.1就是一個IP地址。填寫在IP包頭部的是該地址的二進制形式。
IP地址是全球地址,它可以識別」社區」(區域網)和」房子」(主機)。這是通過將IP地址分類實現的。
IP class From To Subnet Mask
A 1.0.0.0 126.255.255.255 255.0.0.0
B 128.0.0.0 191.255.255.255 255.255.0.0
C 192.0.0.0 223.255.255.255 255.255.255.0
每個IP地址的32位分為前後兩部分,第一部分用來區分區域網,第二個部分用來區分該區域網的主機。子網掩碼(Subnet Mask)告訴我們這兩部分的分界線,比如255.0.0.0(也就是8個1和24個0)表示前8位用於區分區域網,後24位用於區分主機。由於A、B、C分類是已經規定好的,所以當一個IP地址屬於B類范圍時,我們就知道它的前16位和後16位分別表示區域網和主機。
網路協議概覽 中說,IP地址是分配給每個房子(計算機)的「郵編」。但這個說法並不精確。IP地址實際上識別的是網卡(NIC, Network Interface Card)。網卡是計算機的一個硬體,它在接收到網路信息之後,將信息交給計算機(處理器/內存)。當計算機需要發送信息的時候,也要通過網卡發送。一台計算機可以有不只一個網卡,比如筆記本就有一個乙太網卡和一個WiFi網卡。計算機在接收或者發送信息的時候,要先決定想要通過哪個網卡。
NIC
路由器(router)實際上就是一台配備有多個網卡的專用電腦。它讓網卡接入到不同的網路中,這樣,就構成在 網路協議概覽 中所說的郵局。比如下圖中位於中間位置的路由器有兩個網卡,地址分別為199.165.145.17和199.165.146.3。它們分別接入到兩個網路:199.165.145和199.165.146。
IP包的傳輸要通過路由器的接力。每一個主機和路由中都存有一個路由表(routing table)。路由表根據目的地的IP地址,規定了等待發送的IP包所應該走的路線。就好像下圖的路標,如果地址是「東京」,那麼請轉左;如果地址是「悉尼」,那麼請向右。
A real world routing table
比如我們從主機145.17生成發送到146.21的IP包:鋪開信紙,寫好信的開頭(剩下數據部分可以是TCP包,可以是UDP包,也可以是任意亂寫的字,我們暫時不關心),註明目的地IP地址(199.165.146.21)和發出地IP地址(199.165.145.17)。主機145.17隨後參照自己的routing table,裡面有三行記錄:
145.17 routing table (Genmask為子網掩碼,Iface用於說明使用哪個網卡介面)
Destination Gateway Genmask Iface
199.165.145.0 0.0.0.0 255.255.255.0 eth0
0.0.0.0 199.165.145.17 0.0.0.0 eth0
這里有兩行記錄。
第一行表示,如果IP目的地是199.165.145.0這個網路的主機,那麼只需要自己在eth0上的網卡直接傳送(「本地社區」:直接送達),不需要前往router(Gateway 0.0.0.0 = 「本地送信」)。
第二行表示所有不符合第一行的IP目的地,都應該送往Gateway 199.165.145.17,也就是中間router接入在eth0的網卡IP地址(郵局在eth0的分支)。
我們的IP包目的地為199.165.146.21,不符合第一行,所以按照第二行,發送到中間的router。主機145.17會將IP包放入幀的payload,並在幀的頭部寫上199.165.145.17對應的MAC地址,這樣,就可以按照 乙太網與wifi協議 中的方法在區域網中傳送了。
中間的router在收到IP包之後(實際上是收到以太協議的幀,然後從幀中的payload讀取IP包),提取目的地IP地址,然後對照自己的routing table:
Destination Gateway Genmask Iface
199.165.145.0 0.0.0.0 255.255.255.0 eth0
199.165.146.0 0.0.0.0 255.255.255.0 eth1
0.0.0.0 199.165.146.8 0.0.0.0 eth1
從前兩行我們看到,由於router橫跨eth0和eth1兩個網路,它可以直接通過eth0和eth1上的網卡直接傳送IP包。
第三行表示,如果是前面兩行之外的IP地址,則需要通過eth1,送往199.165.146.8(右邊的router)。
我們的目的地符合第二行,所以將IP放入一個新的幀中,
在幀的頭部寫上199.165.146.21的MAC地址,直接發往主機146.21。
(在Linux下,可以使用$route -n來查看routing table)
IP包可以進一步接力,到達更遠的主機。IP包從主機出發,根據沿途路由器的routing table指導,在router間接力。IP包最終到達某個router,這個router與目標主機位於一個區域網中,可以直接建立連接層的通信。最後,IP包被送到目標主機。這樣一個過程叫做routing(我們就叫IP包接力好了,路由這個詞實在是混合了太多的意思)。
整個過程中,IP包不斷被主機和路由封裝入幀(信封)並拆開,然後藉助連接層,在區域網的各個NIC之間傳送幀。整個過程中,我們的IP包的內容保持完整,沒有發生變化。最終的效果是一個IP包從一個主機傳送到另一個主機。利用IP包,我們不需要去操心底層(比如連接層)發生了什麼。
在上面的過程中,我們實際上假設了,每一台主機和路由都能了解區域網內的IP地址和MAC地址的對應關系,這是實現IP包封裝(encapsulation)到幀的基本條件。IP地址與MAC地址的對應是通過ARP協議傳播到區域網的每個主機和路由。每一台主機或路由中都有一個ARP cache,用以存儲區域網內IP地址和MAC地址如何對應。
ARP協議(ARP介於連接層和網路層之間,ARP包需要包裹在一個幀中)的工作方式如下:主機會發出一個ARP包,該ARP包中包含有自己的IP地址和MAC地址。通過ARP包,主機以廣播的形式詢問區域網上所有的主機和路由:我是IP地址xxxx,我的MAC地址是xxxx,有人知道199.165.146.4的MAC地址嗎?擁有該IP地址的主機會回復發出請求的主機:哦,我知道,這個IP地址屬於我的一個NIC,它的MAC地址是xxxxxx。由於發送ARP請求的主機採取的是廣播形式,並附帶有自己的IP地址和MAC地址,其他的主機和路由會同時檢查自己的ARP cache,如果不符合,則更新自己的ARP cache。
這樣,經過幾次ARP請求之後,ARP cache會達到穩定。如果區域網上設備發生變動,ARP重復上面過程。
(在Linux下,可以使用$arp命令來查看ARP的過程。ARP協議只用於IPv4。IPv6使用Neighbor Discovery Protocol來替代ARP的功能。)
我們還有另一個假設,就是每個主機和路由上都已經有了合理的routing table。這個routint table描述了網路的拓撲(topology)結構。如果你了解自己的網路連接,可以手寫自己主機的routing table。但是,一個路由器可能有多個出口,所以routing table可能會很長。更重要的是,周圍連接的其他路由器可能發生變動(比如新增路由器或者路由器壞掉),我們就需要routing table能及時將交通導向其他的出口。我們需要一種更加智能的探測周圍的網路拓撲結構,並自動生成routing table。
我們以北京地鐵為例子。如果從機場前往朝陽門,那麼可以採取2號航站樓->>三元橋->>東直門->>朝陽門。2號航站樓和朝陽門分別是出發和目的主機。而三元橋和東直門為中間的兩個router。如果三元橋->>東直門段因為維修停運,我們需要更改三元橋的routing table,從而給前往朝陽門的乘客(IP包)指示:請走如下路線三元橋->>芍葯居。然後依照芍葯居的routing table前往朝陽門(芍葯居->>東直門->>朝陽門)。
一種用來生成routing table的協議是RIP(Routing Information Protocol)。它通過距離來決定routing table,所以屬於distance-vector protocol。對於RIP來說,所謂的距離是從出發地到目的地途徑的路由器數目(hop number)。比如上面從機場到朝陽門,按照2號航站樓->>三元橋->>東直門->>朝陽門路線,途徑兩個路由器,距離為2。我們最初可以手動生成三元橋的routing table。隨後,根據RIP協議,三元橋向周圍的路由器和主機廣播自己前往各個IP的距離(比如到機場=0,團結湖=0,國貿=1,望京西=1,建國門=2)。收到RIP包的路由器和主機根據RIP包和自己到發送RIP包的主機的距離,算出自己前往各個IP的距離。東直門與三元橋的距離為1。東直門收到三元橋的RIP包(到機場的距離為0),那麼東直門途徑三元橋前往機場的距離為1+0=1。如果東直門自己的RIP記錄都比這個遠(比如東直門->>芍葯居->>三元橋->>機場 = 2)。那麼東直門更改自己的routing table:前往機場的交通都發往三元橋而不是芍葯居。如果東直門自身的RIP記錄並不差,那麼東直門保持routing table不變。上述過程在各個點不斷重復RIP廣播/計算距離/更新routing table的過程,最終所有的主機和路由器都能生成最合理的路徑(merge)。
(RIP的基本邏輯是:如果A距離B為6,而我距離A為1,那麼我途徑A到B的距離為7)
RIP出於技術上的原因(looping hops),認為距離超過15的IP不可到達。所以RIP更多用於互聯網的一部分(比如整個中國電信的網路)。這樣一個互聯網的部分往往屬於同一個ISP或者有同一個管理機構,所以叫做自治系統(AS,autonomous system)。自治系統內部的主機和路由根據通向外部的邊界路由器來和其它的自治系統通信。各個邊界路由器之間通過BGP(Border Gateway Protocol)來生成自己前往其它AS的routing table,而自治系統內部則參照邊界路由器,使用RIP來決定routing table。BGP的基本工作過程與RIP類似,但在考慮距離的同時,也權衡比如政策、連接性能等其他因素,再決定交通的走向(routing table)。
我們一開始講述了IP包根據routing table進行接力的過程。為了順利實現接力,我們又進一步深入到ARP和RIP/BGP。這三個協議都協助了IP傳輸。ARP讓每台電腦和路由器知道自己區域網內IP地址和MAC地址的對應關系,從而順利實現IP包到幀的封裝。RIP協議可以生成自治系統內部合理的routing table。BGP協議可以生成自治系統外部的routing table。
在整個過程中,我們都將注意力放在了IP包大的傳輸過程中,而故意忽略一些細節。 而上面的IP接力過程適用於IPv6。
【TCP/IP詳解】系列教程
互聯網協議入門 1
互聯網協議入門 2
TCP-IP協議詳解(1)網路協議概觀
TCP-IP協議詳解(2) 乙太網與WiFi協議
TCP-IP協議詳解(3) IP/ARP/RIP/BGP協議
TCP-IP協議詳解(4)IPv4與IPv6地址
TCP-IP協議詳解(5)IP協議詳解
TCP-IP協議詳解(6) ICMP協議
TCP-IP協議詳解(7) UDP協議
TCP-IP協議詳解(8) TCP協議與流通信
TCP-IP協議詳解(9) TCP連接
TCP-IP協議詳解(10) TCP滑窗管理
TCP-IP協議詳解(11) TCP重傳
TCP-IP協議詳解(12) TCP堵塞控制
TCP-IP協議詳解(13) DNS協議
TCP-IP協議詳解(14) CIDR與NAT
TCP-IP協議詳解(15) HTTP協議概覽
圖解TCP-IP協議
㈥ 區域網如何抓包
你是網路管理員嗎?你是不是有過這樣的經歷:在某一天的早上你突然發現網路性能急劇下降,網路服務不能正常提供,伺服器訪問速度極慢甚至不能訪問,網路交換機埠指示燈瘋狂地閃爍、網路出口處的路由器已經處於滿負荷的工作狀態、路由器CPU已經到了百分之百的負荷……重啟動後沒有幾分鍾現象又重新出現了。
這是什麼問題?設備壞了嗎?不可能幾台設備同時出問題。一定是有什麼大流量的數據文件,耗盡了網路設備的資源,它們是什麼?怎麼看到它們?這時有經驗的網管人員會想到用區域網抓包工具來分析一下。
你一定聽說過紅色代碼、Nimda、沖擊波以及震盪波這些臭名昭著的網路殺手。就是它們製造了上述種種惡行。它們來勢洶洶,阻塞網路、感染主機,讓網路管理員苦不堪言。當網路病毒出現時,如何才能及時發現染毒主機?下面我根據網路病毒都有掃描網路地址的特點,給大家介紹一個很實用的方法:用抓包工具尋找病毒源。
1.安裝抓包工具。目的就是用它分析網路數據包的內容。找一個免費的或者試用版的抓包工具並不難。我使用了一種叫做SpyNet3.12 的抓包工具,非常小巧, 運行的速度也很快。安裝完畢後我們就有了一台抓包主機。你可以通過SpyNet設置抓包的類型,比如是要捕獲IP包還是ARP包,還可以根據目的地址的不同,設置更詳細的過濾參數。
2.配置網路路由。你的路由器有預設網關嗎?如果有,指向了哪裡?在病毒爆發的時候把預設網關指向另外一台路由器是很危險的(除非你想搞癱這台路由器)。在一些企業網里往往僅指出網內地址段的路由,而不加預設路由,那麼就把預設路由指到抓包主機上吧(它不下地獄誰下地獄?當然這台主機的性能最好是高一點的,否則很容易被病毒沖擊而亡)。這樣可以讓那些病毒主機發出的絕大部分掃描都自動送上門來。或者把網路的出口映像到抓包主機上,所有對外訪問的網路包都會被分析到。
3.開始抓包。抓包主機已經設置好了,網路里的數據包也已經送過來了,那麼我們看看網路里傳輸的到底是些什麼。打開SpyNet 點擊Capture 你會看到好多的數據顯示出來,這些就是被捕獲的數據包(如圖)。
圖中的主體窗口裡顯示了抓包的情況。列出了抓到數據包的序號、時間、源目的MAC地址、源目的IP地址、協議類型、源目的埠號等內容。很容易看出IP地址為10.32.20.71的主機在極短的時間內向大量的不同主機發出了訪問請求,並且目的埠都是445。
4.找出染毒主機。從抓包的情況看,主機10.32.20.71值得懷疑。首先我們看一下目的IP地址,這些地址我們網路里存在嗎?很可能網路里根本就沒有這些網段。其次,正常情況下訪問主機有可能在這么短的時間里發起這么多的訪問請求嗎?在毫秒級的時間內發出幾十甚至幾百個連接請求,正常嗎?顯然這台10.32.20.71的主機肯定有問題。再了解一下Microsoft-DS協議,該協議存在拒絕服務攻擊的漏洞,連接埠是445,從而進一步證實了我們的判斷。這樣我們就很容易地找到了染毒主機的IP地址。剩下的工作就是給該主機操作系統打補丁殺病毒了。
既然抓到了病毒包,我們看一下這個數據包二進制的解碼內容:
這些數據包的長度都是62個位元組。數據包前12個位元組包括了目的MAC和源MAC的地址信息,緊跟著的2位元組指出了數據包的類型,0800代表的是IP包格式,0806代表ARP包格式。接著的20個位元組是封裝的IP包頭,包括了源、目的IP地址、IP版本號等信息。剩下的28個位元組封裝的是TCP包頭,包括了源、目的埠,TCP鏈接的狀態信息等。這就構成了一個62位元組的包。可以看出除了這些包頭數據之外,這個包沒有攜帶其他任何的有效數據負荷,所以這是一個TCP要求445埠同步的空包,也就是病毒主機在掃描445埠。一旦染毒主機同步上沒有採取防護措施的主機445埠,便會利用系統漏洞傳播感染。
㈦ 在區域網中,在ip地址為192.168.1.2主機上,如何測試與ip地址為192.168.1.1
打開開始菜單,點擊運行,輸入「CMD」,確定後進入命令行模式,在命令輸入提示符後輸入ping 192.168.1.1 後按回車鍵(enter),然後你就看到了測試結果
一般情況下,2ms以內是正常的,如果不是那就肯定連接有問題,不是網線的問題,就是介面的問題
㈧ 請教 在網路上,傳說中的抓包是什麼怎樣抓包
抓包就是將網路傳輸發送與接收的數據包進行截獲、重發、編輯、轉存等操作,也用來檢查網路安全,但往往被某些無恥之徒用來網游作弊。
英文名稱為Sniffer,中文可以翻譯為嗅探器,是一種威脅性極大的被動攻擊工具。使用這種工具,可以監視網路的狀態、數據流動情況以及網路上傳輸的信息。當信息以明文的形式在網路上傳輸時,便可以使用網路監聽的方式來進行攻擊。將網路介面設置在監聽模式,便可以將網上傳輸的源源不斷的信息截獲。黑客們常常用它來截獲用戶的口令。據說某個骨幹網路的路由器曾經被黑客攻人,並嗅探到大量的用戶口令。本文將詳細介紹Sniffer的原理和應用。
下面是抓包的方法
1.安裝抓包工具。
目的就是用它分析網路數據包的內容。找一個免費的或者試用版的抓包工具並不難。我使用了一種叫做SpyNet3.12 的抓包工具,非常小巧, 運行的速度也很快。安裝完畢後我們就有了一台抓包主機。你可以通過SpyNet設置抓包的類型,比如是要捕獲IP包還是ARP包,還可以根據目的地址的不同,設置更詳細的過濾參數。
2.配置網路路由。
你的路由器有預設網關嗎?如果有,指向了哪裡?在病毒爆發的時候把預設網關指向另外一台路由器是很危險的(除非你想搞癱這台路由器)。在一些企業網里往往僅指出網內地址段的路由,而不加預設路由,那麼就把預設路由指到抓包主機上吧(它不下地獄誰下地獄?當然這台主機的性能最好是高一點的,否則很容易被病毒沖擊而亡)。這樣可以讓那些病毒主機發出的絕大部分掃描都自動送上門來。或者把網路的出口映像到抓包主機上,所有對外訪問的網路包都會被分析到。
3.開始抓包。
抓包主機已經設置好了,網路里的數據包也已經送過來了,那麼我們看看網路里傳輸的到底是些什麼。打開SpyNet 點擊Capture 你會看到好多的數據顯示出來,這些就是被捕獲的數據包(如圖)。 圖中的主體窗口裡顯示了抓包的情況。列出了抓到數據包的序號、時間、源目的MAC地址、源目的IP地址、協議類型、源目的埠號等內容。很容易看出IP地址為10.32.20.71的主機在極短的時間內向大量的不同主機發出了訪問請求,並且目的埠都是445。
4.找出染毒主機。
從抓包的情況看,主機10.32.20.71值得懷疑。首先我們看一下目的IP地址,這些地址我們網路里存在嗎?很可能網路里根本就沒有這些網段。其次,正常情況下訪問主機有可能在這么短的時間里發起這么多的訪問請求嗎?在毫秒級的時間內發出幾十甚至幾百個連接請求,正常嗎?顯然這台10.32.20.71的主機肯定有問題。再了解一下Microsoft-DS協議,該協議存在拒絕服務攻擊的漏洞,連接埠是445,從而進一步證實了我們的判斷。這樣我們就很容易地找到了染毒主機的IP地址。剩下的工作就是給該主機操作系統打補丁殺病毒了。 既然抓到了病毒包,我們看一下這個數據包二進制的解碼內容: 這些數據包的長度都是62個位元組。數據包前12個位元組包括了目的MAC和源MAC的地址信息,緊跟著的2位元組指出了數據包的類型,0800代表的是IP包格式,0806代表ARP包格式。接著的20個位元組是封裝的IP包頭,包括了源、目的IP地址、IP版本號等信息。剩下的28個位元組封裝的是TCP包頭,包括了源、目的埠,TCP鏈接的狀態信息等。這就構成了一個62位元組的包。可以看出除了這些包頭數據之外,這個包沒有攜帶其他任何的有效數據負荷,所以這是一個TCP要求445埠同步的空包,也就是病毒主機在掃描445埠。一旦染毒主機同步上沒有採取防護措施的主機445埠,便會利用系統漏洞傳播感染。
㈨ 簡述TCP/IP工作原理
TCP/IP模型包括:
● 網路層
● 網際層
● 傳輸層
● 應用層
一、網路層
是模型的最低層,負責將幀放進線路,或從線路中取下幀。
TCP/IP的網路層對應著OSI的物理層和數據鏈路層。這也就是為什麼這一層包含物理通信介質和在這些介質上傳送幀的通信協議。
二、網際層
網際層(互聯網層):負責提供基本的數據封包傳送功能,讓每一塊數據包都能夠到達目的主機(但不檢查是否被正確接收),如網際協議(IP)。
● ICMP網際控制消息協議:問題出現時向IP發送錯誤報告。
我們平時用的ping用它。
● IGMP網際分組管理協議:向路由器通知多播組成員的存在。
廣播不能跨路由器,路由器是隔離廣播的,但它隔離不了多播,它可以跨路由器。
● ARP地址解析協議:判斷主機的硬體地址。
三、傳輸層
傳輸層是TCP/IP模型中非常特殊和重要的一層,它包括了OSI傳輸層、會話層、表示層和應用層的各部分功能,包括兩個傳輸協議(TCP協議和UDP協議)在計算機之間提供通信對話。
四、應用層
應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協議(FTP)、網路遠程訪問協議(Telnet)等。
㈩ 電信共享上網被檢測的解決方法是什麼
1、利用寬頻路由器的snmp功能(161埠),直接查看網內電腦的數量
2、檢測網內主機的mac地址確定主機數
3、檢測ip數據包中的id選項
4、檢測tcp數據包中的時間戳選項
5、利用客戶端瀏覽器的cookies功能識別客戶機
說說這幾種方法可行性(nat環境):
第一種方法需要網路設備支持snmp才能可行,目前的寬頻路由器支持的不多,所以可行但通用性不大。
第二種方法完全不可行,網內的數據包從寬頻路由器出去的都是三層以上的數據包,無論nat或是路由都不可能包含有網內電腦的mac地址,所以根本無法測到網內電腦的mac地址,也就無法知道有多少電腦在共享上網。
第三種方法是可行的,一般的nat設備通常只更改了數據包的源地址和埠,不會改ip包中的id選項。一般各台電腦發出去的ip包中第一個id是隨機,以後是連續的,例如某一時間段一台電腦發出去的ip包中id是54625-54700,另一台網內電腦的ip id是4562-4600,所以只要截ip包分析一下有多少個連續的ip id就能知道有多少電腦在共享上網。
第四種方法也是可行的,windows系統默認是填寫tcp包中的時間戳選項的,因為每台電腦的時間不可能完全相同(除非同步過),所以只要分析某一時刻所有tcp包中的時間戳選項有多少個不同的數值,就能知道有多少台電腦在共享上網。
第五種方法就比較流氓了,需要更改發向客戶端的http包內容,從而讓客戶機的瀏覽器去訪問檢測的網頁,通過檢測的網頁在每台客戶機上設置不同的cookies值並讀取,就可以查到有多少台電腦在共享上網。其原理有點和網頁上掛馬類似。這種方法也有一定局限性,需要客戶機瀏覽網頁才能被檢測到。
接下來說說破解辦法:
第一種只要關掉設備的snmp功能或者換個不支持snmp的寬頻路由器。
第三種方法的破解有點麻煩了,如果路由器夠高級或者用的軟路由,就把通過路由器出去的ip數據包的id選項改成連續,或者乾脆打散,改成全部不連續。還有一個辦法就是在內網的每台電腦上把ipid弄成不連續。這兩個辦法網上都有現成的軟體可以用的。
第四種方法的破解可以在網關路由器或者在客戶機上把時間戳去掉,windows系統下可以改注冊表HKEY_LOCAL_下的Tcp1323Opts鍵關閉。或者把每台電腦的時間都同步。
第五種方法的破解可以半閉瀏覽器的cookies功能,或者把檢測網站的ip屏蔽掉。