點對點 (P2P) 網路與協議/IRC 世界
網際網路中繼聊天,通常縮寫為 IRC 是一種即時基於文字的多使用者通訊協議規範和實現;它在網路上中繼使用者之間的訊息。 IRC 的誕生可以追溯到 1988 年,由 Jarkko Oikarinen 構思。根據 IRChelp.org(http://www.irchelp.org/irchelp/rfc/),IRC 的官方規範是在 1993 年以 RFC 格式編寫的。該協議定義在“RFC 1459:網際網路中繼聊天協議”中,這是一個非常優秀的介紹 IRC 協議的資料來源。
IRC 最大的架構單元是 IRC 網路。世界上可能有數百個 IRC 網路,每個網路都並行執行且相互獨立。連線到一個網路的客戶端只能與同一個網路上的其他客戶端通訊,而不能與其他網路上的客戶端通訊。每個網路都包含一個或多個 IRC 伺服器。IRC 客戶端是一個程式,它連線到給定的 IRC 伺服器,以便該伺服器將通訊中繼到同一個網路上的其他客戶端,但並不一定是在同一個伺服器上。
IRC 上的訊息以塊的形式傳送。也就是說,其他 IRC 客戶端不會看到一個人在打字和編輯時的情況。一個人建立一個訊息塊(通常只是一句話),然後一次性傳輸該塊,該塊被伺服器接收,並根據地址將其傳遞給相應的客戶端,或將其中繼到其他伺服器,以便再次傳遞或中繼,等等。要了解 IRC 網路上交換的訊息,您可以檢視(http://www.alien.net.au/irc/irc2numerics.html),它清楚地標識了多個實現和功能。
連線到伺服器後,可以透過 IRC 暱稱 對其他客戶端進行定址。暱稱只是一個唯一的 ASCII 字串,用於識別特定客戶端。雖然實現方式各不相同,但對暱稱的限制通常規定它們只能由字元 a-z、A-Z、0-9、下劃線和連字元組成。
IRC 中的另一種定址方式,可以說是它的一個定義特徵,是 IRC 頻道。IRC 頻道通常與 CB 無線電(公民無線電)頻道相比。在 CB 無線電中,一個人被認為是在“收聽”一個頻道,而在 IRC 中,一個人的客戶端被認為是“加入”了該頻道。傳送到該頻道的任何通訊都會被客戶端“聽到”或看到。另一方面,同一個網路或同一個伺服器上的其他客戶端,但不在同一個頻道上的客戶端,將不會看到傳送到該頻道的任何訊息。
可以在 IRC.org 上獲取有關 IRC 的最新資訊,以及對 IPv6 的支援和新的技術論文,IETF(網際網路工程任務組)批准了最新的技術草案(2000 年 4 月 - 作者為 C Kalt)。
RFC 2810 : IRC Architecture RFC 2811 : IRC Channel-Management RFC 2812 : IRC Client-Protocol RFC 2813 : IRC Server-Protocol
這些文件已在 IRC.org 的官方 FTP 伺服器上提供,可以訪問 ftp://ftp.irc.org/irc/server。
雖然 IRC 按定義不是一個 P2P 協議,但 IRC 確實有一些擴充套件可以支援直接從客戶端到客戶端傳輸文字和檔案,而無需任何中繼。這些擴充套件被稱為 DCC(直接客戶端到客戶端)和 CTCP(客戶端到客戶端協議)。
在 RFC 1413 中指定了 Ident 協議,它是一種網際網路協議,用於幫助識別特定 TCP 連線的使用者,並將他們與在伺服器上共享相同連線的其他使用者區分開來。
Ident 協議的設計目的是作為伺服器 守護程序 在使用者計算機上執行,它接收發送到指定 埠(通常為 113)的請求。然後,伺服器將傳送一個專門設計的響應,以標識當前使用者的使用者名稱。
大多數獨立的 Windows 機器預設情況下都沒有執行或存在 Ident 服務,在這種情況下,您可能需要在自己的計算機上執行 Ident 伺服器(有幾個獨立的伺服器可用),另一方面,如果您使用的是 Unix/Linux 機器,該服務預設情況下是存在的。一些 Windows IRC 客戶端也有內建的 Ident 伺服器。
執行 Ident 伺服器的原因是 IRC 伺服器出於安全原因使用這些資訊(這不是一種特別有效的方式),有些伺服器甚至會阻止沒有 Ident 響應的客戶端,主要原因是它使得透過“開放代理”或透過某種形式的單一帳戶被入侵的系統連線變得更加困難,但您沒有 root 許可權。
使用 CTCP,客戶端可以實現諸如“ctcp 暱稱 版本”或“ctcp 暱稱 ping”之類的命令,以獲取有關其他使用者的一些有趣資訊(就像 mIRC 一樣)。
IRC 系統也支援(r)機器人,在這種情況下,它們不是真正的使用者,而是一組從指令碼(文字)檔案中載入到 IRC 客戶端的命令,甚至是一個連線到 IRC 頻道的獨立程式。它們的作用是簡化人機互動,提供某種自動化,甚至測試或實現某種 AI。
以下是一些 IRC 的基本命令
| 命令 | 功能 | 示例 |
|---|---|---|
| /attach /server |
登入伺服器 | /attach irc.freenode.net /server irc.freenode.net |
| /nick | 設定您的暱稱 | /nick YourName |
| /join | 加入頻道 | /join #wikibooks |
| /msg | 傳送訊息(可以是私信,也可以是傳送到整個頻道) | 向頻道傳送訊息:/msg #wikibooks hello world! 傳送私信:/msg JohnDoe Hi john. |
| /whois | 顯示伺服器上某個使用者的相關資訊 | /whois JohnDoe |
| /clear /clearall |
清除頻道的文字。 清除所有開啟的頻道的文字。 |
/clear
/clearall |
| /away | 設定離開資訊。注意:再次鍵入 /away 可從離開狀態返回。 | /away I'm away because... |
| /me | 向頻道傳送動作。請參閱示例。 | 以下 /me loves pie. 如果 JohnDoe 執行此操作,則會在聊天中顯示為 JohnDoe loves pie. |
半操作員、頻道操作員、頻道所有者和管理員的命令
| 命令 | 功能 | 示例 |
|---|---|---|
| /kick | 踢出或將使用者從頻道中逐出。您必須是半操作員或更高許可權才能執行此操作。 | 將使用者從頻道踢出並附帶原因:/kick JohnDoe I kicked you because... |
| /ban /unban |
禁止使用者進入頻道。您必須是頻道操作員或更高許可權才能執行此操作。 取消對使用者的頻道禁令。您必須是頻道操作員或更高許可權才能執行此操作。 |
/ban JohnDoe /unban JohnDoe |
IRC 網路
[edit | edit source]- EFnet
- Undernet
- Dalnet
- 葡萄牙 IRC 網路 (PTnet) ( http://www.ptnet.org/ ) 是最大的葡萄牙 IRC 網路,成立於 1997 年,您可以獲取其伺服器的更新列表 ( http://www.ptnet.org/servidores )。
安全風險
[edit | edit source]
軟體實現
[edit | edit source]- KVIrc ( http://www.kvirc.net/ ) 是一款基於 Qt GUI 工具包並使用 C++ 編寫的開源 (GPL) 行動式 IRC 客戶端。
- Bersirc ( http://bersirc.free2code.net/index.php/home/ ),一款使用 C 語言編寫的開源 IRC 客戶端 (LGPL),運行於 Windows (Linux 和 Mac OS X 埠正在開發中),並利用 Claro GUI 工具包。
- XChat ( http://www.xchat.org/ ) 是一款適用於 Windows 和 UNIX (Linux/BSD) 作業系統的 IRC (聊天) 程式。 IRC 代表 Internet Relay Chat。XChat 在大多數 BSD 和 POSIX 相容的作業系統上執行。開源 (GPL),使用 C 語言編寫。
- Irssi ( http://irssi.org/ ),一款 IRC 客戶端程式,最初由 Timo Sirainen 編寫,並根據 GNU 通用公共許可證條款釋出。它使用 C 程式語言編寫,在正常操作中使用文字模式使用者介面。
- mIRC ( http://www.mirc.co.uk/ ),一款為 Windows 設計的共享軟體 Internet Relay Chat 客戶端,由 Khaled Mardam-Bey 於 1995 年建立並開發。最初它只用於此目的,但由於其整合的指令碼語言,它已經發展成為一個可以用於多種目的的高可配置工具。
您還可以檢視維基百科 IRC 客戶端列表 和 Internet Relay Chat 客戶端比較 (未更新)...
隱形 IRC 專案
[edit | edit source]由 invisibleNET 建立的,與普通 IRC 網路相關的技術進步,invisibleNET 是一家以研發為主導的組織,其主要重點是智慧網路技術的創新。其目標是在廣泛使用但安全性 notoriously 低的網際網路上提供最高的安全和隱私標準。
隱形 IRC 專案 (http://invisibleip.sourceforge.net/iip/) 是一個三層,對等分散式網路,旨在成為一種安全且私密的傳輸介質,用於高速、低容量、動態內容。 特徵
- 使用 Diffie-Hellman 金鑰交換協議的完美前向安全性
- 持續的會話金鑰輪換
- 128 位 Blowfish 節點到節點加密
- 160 位 Blowfish 端到端加密
- 填充流量以阻止流量分析
- 使用加密簽名名稱空間進行節點識別的安全動態路由
- 節點級泛洪控制
- 無縫使用標準 IRC 客戶端
- GUI 介面
- 對等分散式拓撲結構,用於保護使用者身份
- 完全模組化設計,所有協議都支援外掛
IIP 軟體根據 GPL 許可證釋出,可用於 Windows 98/ME/NT/2000/XP、*nix/BSD 和 Mac OSX,使用 C 語言編寫。
