Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụng

Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Moät soá khaùi nieäm cô baûn.  
Muïc Luïc  
ï
ï
--0O0--  
Giôùi thieäu ñeà taøi............................................................................................................... 6  
Phaàn 1 Tìm hieåu Internet Relay Chat Protocol ......................................................... 7  
Giôùi thieäu toång quan veà IRC...................................................................................... 8  
Chöông I: Moät soá khaùi nieäm cô baûn ......................................................................... 9  
1. Servers.............................................................................................................. 9  
2. Clients .............................................................................................................. 9  
2.1. Operators................................................................................................ 9  
3. Channels:.......................................................................................................... 10  
3.1.Channels operation : ............................................................................... 11  
4. Caùc khaùi nieäm veà truyeàn thoâng........................................................................ 11  
4.1. Truyeàn thoâng moät – moät (one – to – one communication).................... 11  
4.2. Truyeàn thoâng moät – nhieàu (one – to – many communication) ............. 11  
4.2.1. Döïa treân danh saùch (one – to – List communication) .................... 11  
4.2.2.Döïa vaøo channel (one – to – group communication)....................... 12  
4.2.3.Truyeàn thoâng ñeán - host /server mask ............................................. 12  
4.3. Truyeàn thoâng moät - taát caû(one to all Communication )........................ 13  
4.3.1.Client to Client ................................................................................ 13  
4.3.2.Client to Server ............................................................................... 13  
Chöông II: Nhöõng quy ñònh trong IRC...................................................................... 13  
1. Quy ñònh veà code ............................................................................................. 13  
2. Message ........................................................................................................... 13  
2.1 Ñònh daïng moät message........................................................................14  
3. Giaù trò soá traû veà (numeric replies).................................................................... 15  
Chöông III: Chi tieát cho töøng message ..................................................................... 15  
1. Nhoùm message ñaêng kyù keát noái....................................................................... 15  
1.1 Server Message....................................................................................... 20  
1.2 Server Quit Message............................................................................... 21  
- Trang 1  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Moät soá khaùi nieäm cô baûn.  
1.3 Operator message ................................................................................... 21  
1.4 Quit message........................................................................................... 21  
1.5 Pass message........................................................................................... 22  
1.6 NickMessage........................................................................................... 22  
1.7 User Message.......................................................................................... 24  
2. Nhoùm message duøng cho vieäc ñieàu khieån Channel ........................................ 24  
2.1 Join message.......................................................................................... 24  
2.2 part message.......................................................................................... 25  
2.3 Mode message....................................................................................... 26  
2.3.1 Channel mode.................................................................................. 26  
2.3.2 User mode........................................................................................ 26  
2.4 Topic message ....................................................................................... 27  
2.5 Names message..................................................................................... 28  
2.6 List message .......................................................................................... 28  
2.7 Invite message....................................................................................... 29  
2.8 Kick command ...................................................................................... 29  
3. Nhoùm message truy vaán ñeán server(server query and command)................... 30  
3.1 Version message..................................................................................... 30  
3.2 Stats Message.......................................................................................... 30  
3.3 Link Message.......................................................................................... 31  
3.4 Time Message......................................................................................... 31  
3.5 Connect message .................................................................................... 32  
3.6 Trace Message........................................................................................ 32  
3.7 Admin Message ...................................................................................... 33  
3.8 Info Message........................................................................................... 33  
4. Nhoùm message gôûi text (sending message)..................................................... 33  
4.1 Private Message...................................................................................... 34  
4.2Notice Message........................................................................................ 34  
5. Nhoùm message do client truy vaán ñeán server (user-based query)................... 35  
- Trang 2  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Moät soá khaùi nieäm cô baûn.  
5.1 Who Query.............................................................................................. 35  
5.2 Who is Query .......................................................................................... 35  
5.3 Whowas Message.................................................................................... 36  
6. Nhoùm message khaùc (miscellaneous message) ............................................... 37  
6.1 Kill Message ........................................................................................... 37  
6.2 Ping Message .......................................................................................... 37  
6.3 Pong Message ......................................................................................... 37  
6.4 Error Message......................................................................................... 38  
7. Nhoùm message tuøy choïn(option message) ..................................................... 38  
7.1 Away Message........................................................................................ 38  
7.2 Rehast Message ..................................................................................... 38  
7.3 Restart Message...................................................................................... 39  
7.4 Summon Message ................................................................................... 39  
7.5 Users Message ........................................................................................ 39  
7.6 Operwall Message .................................................................................. 40  
7.7 Userhost Message ................................................................................... 40  
7.8 Ison Message........................................................................................... 40  
Phaàn II: Tìm Hieåu Kyõ Thuaät Laäp Trình Socket............................................................... 41  
Chöông I: Caùc Khaùi Nieäm Cô Baûn Veà Heä Thoáng Maïng........................................... 42  
1. Moâ hình maïng, moâ hình OSI, moâ hình TCP..................................................... 42  
1.1 Moâ Hình Maïng ......................................................................................... 42  
1.2 Moâ hình OSI ............................................................................................. 43  
1.3 Moâ hìnhTCP/IP......................................................................................... 44  
2. Giao Thöùc TCP vaø UDP................................................................................... 44  
2.1 Giao Thöùc UDP ........................................................................................ 46  
2.2 Giao thöùc TCP .......................................................................................... 48  
3. Ñòa Chæ IP......................................................................................................... 49  
3.1 Giôùi thieäu ñòa chæ IP.................................................................................. 49  
3.2 Phaân Loaïi Ñòa Chæ IP................................................................................ 49  
- Trang 3  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Moät soá khaùi nieäm cô baûn.  
3.3. Subnet Mask (maët naï con)....................................................................... 50  
Chöông II: Moät Soá Haøm Socket................................................................................. 50  
1. Khaùi nieäm veà socket ........................................................................................ 50  
2. Thö vieän caùc haøm socket (API) trong Java. ..................................................... 51  
2.1 Lôùp InetAddress ....................................................................................... 51  
2.2 Lôùp Socket................................................................................................ 52  
2.3 Lôùp ServerSocket..................................................................................... 53  
2.4 Lôùp DatagramSocket................................................................................ 53  
2.5 Lôùp DatagramPackage ............................................................................. 54  
3. Chöông trình minh hoïa cho vieäc söû duïng socket trong Java ............................ 54  
3.1 Chöông trình hoaït ñoäng theo giao thöùc TCP............................................. 54  
3.1.1 Chöông trình client chaïy treân maùy khaùch........................................ 54  
3.1.2 Chöông trình server chaïy treân maùy chuû........................................... 55  
3.2 Chöông trình hoaït ñoäng theo giao thöùc UDP............................................ 56  
3.2.1 Chöông trình client chaïy treân maùy khaùch........................................ 56  
3.2.2 Chöông trình server chaïy treân maùy chuû........................................... 59  
Phaàn III: Xöû Lyù Ña Tieán Trình (multitasking) vaø Ña Luoàng (multithreading) ............... 62  
Chöông I: Ña Tieán Trình (multitasking)................................................................... 62  
Chöông II: Ña Luoàng (multithreading) .................................................................... 64  
1. Khaùi nieäm luoàng .............................................................................................. 64  
2. Nhöõng tieän ích khi duøng thread (Advantages of multithreading)..................... 64  
3. Caùc khoù khaên khi duøng thread ......................................................................... 65  
4. Moâ hình hieåu trình (thread) trong JAVA.......................................................... 66  
5. Tính chaát thread. .............................................................................................. 67  
6. Ñoàng boä hoùa caùc thread ................................................................................... 68  
7. Caùc phöông thöùc ñoàng boä (synchronized) ........................................................ 68  
8. Caùc traïng thaùi cuûa thread ................................................................................ 70  
Phaàn IV:Yeâu caàu & Kieán truùc chöông trình: .................................................................. 72  
Chöông I: Yeâu caàu chöùc naêng vaø phi chöùc naêng: ........................................................ 73  
- Trang 4  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Moät soá khaùi nieäm cô baûn.  
A. ChatClient:....................................................................................................... 73  
B. ChatServer:...................................................................................................... 74  
Chöông II: Kieán truùc chöông trình: .............................................................................. 75  
A. ChatClient:...................................................................................................... 77  
B.ChatServer:...................................................................................................... 78  
Keát luaän ........................................................................................................................... 79  
Höôùng phaùt trieån ñeà taøi.................................................................................................... 79  
Taøi lieäu tham khaûo........................................................................................................... 80  
Phuï Luïc............................................................................................................................ 81  
- Trang 5  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Moät soá khaùi nieäm cô baûn.  
Giôùi Thieäu Ñeà Taøi  
ä à ø  
ù
—ª–  
Ñeà Taøi: Internet Relay Chat Protocol tìm hieåu vaø öùng duïng do thaày Mai Vaên  
Cöôøng höôùng daãn, luaän vaên sau ñaây giôùi thieäu moät öùng duïng hay noùi ñuùng hôn laø  
moät chöông trình cho pheùp ngöôøi söû duïng chat vôùi nhau treân Internet. Chöông trình  
hoaït ñoäng theo ñuùng giao thöùc chuaån do uûy ban IAB veà caùc giao thöùc chuaån (IAB  
Official Protocol Standards) quy ñònh, quy ñònh naøy ñöôïc ñònh nghóa trong boä RFC  
1459, 2810, 2811, 2812, 2813.  
Luaän vaên goàm 3 phaàn chính  
Ø Phaàn I trong luaän vaên laø tìm hieåu Internet Relay Chat Protocol (IRC  
protocol)  
Internet Relay Chat Protocol laø giao thöùc chuaån cho caùc chöông trình chat  
hieän taïi, caùc chöông trình muoán thöïc hieän ñöôïc treân Internet phaûi tuaân theo giao  
thöùc naøy. Noäi dung chính cuûa giao thöùc naøy laø caùc message ñöôïc gôûi vaø nhaän giöõa  
client vaø server.  
Ø Phaàn II caùc khaùi nieäm veà maïng vaø moâ hình socket ñeå taïo giao tieáp phuïc vuï  
cho vieäc truyeàn nhaän döõ lieäu, chöông trình chat application chuû yeáu söû duïng nhöõng  
phöông thöùc cuûa socket ñeå hoaït ñoäng.  
Ø Phaàn III moät soá vaán ñeà ña xöû lyù vaø ña luoàng giuùp cho chöông trình hoaït  
ñoäng hieäu quaû hôn.  
Ø Phaàn IV caùc yeâu caàu chöùc naêng, phi chöùc naêng vaø kieán truùc cuûa chöông  
trình  
Ø Phaàn cuoái laø höôùng phaùt trieån ñeà taøi vaø taøi lieäu tham khaûo, phaàn phuï luïc  
daønh ñeå tham khaûo giaù trò traû veà trong boä giao thöùc  
- Trang 6  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Moät soá khaùi nieäm cô baûn.  
Phaàn I:  
à
Tìm Hieåu Internet Relay Chat  
å
(IRC) protocol  
ü Giôùi thieäu toång quan veà IRC  
ü Chöông I: Moät soá khaùi nieäm cô baûn  
ü Chöông II: Nhöõng quy ñònh trong IRC  
üChöông III: Chi tieát cho töøng message  
- Trang 7  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Moät soá khaùi nieäm cô baûn.  
Giôùi Thieäu Toång Quan Veà IRC  
ù
ä
å
à
—&–  
Hieän nay treân Internet coù nhieàu loaïi dòch vuï, moãi dòch vuï cung caáp cho  
chuùng ta moät tieän ích khaùc nhau, trong ñoù coù dòch vuï chat. Ñaây laø loaïi dòch vuï  
cho pheùp moïi ngöôøi treân khaép haønh tinh coù theå gaëp gôõ, trao ñoåi thoâng tin vôùi  
nhau maø khoâng caàn phaûi gaëp nhau tröïc tieáp. Dòch vuï naøy raát phaùt trieån, coù ñeán  
haøng trieäu ngöôøi treân theá giôùi ñang söû duïng dòch vuï naøy. Vì vaäy vaán ñeà ñaët ra laø  
phaûi coù moät quy ñònh chung cho heä thoáng maïng IRC(Internet Relay Chat). UÛy  
Ban IAB veà caùc giao thöùc chuaån (IAB Official Protocol Standards) ñaõ ñöa ra moät  
giao thöùc chuaån (Standard protocol) duøng cho taát caû caùc chöông trình chat ñang  
toàn taïi. Ñoù laø IRC (Internet Relay Chat) protocol ñöôïc ñònh nghóa trong  
RFC(Request For Comment) 1459, 2810, 1324, 2811, 2813.  
IRC Protocol ñöôïc ñöa ra vaøo naêm 1980, tieàn thaân cuûa noù, duøng cho caùc  
thaønh vieân trong maïng BBS trao ñoåi thoâng tin vôùi nhau, daàn daàn ñöôïc caûi tieán vaø  
trôû thaønh giao thöùc chuaån cho caùc chöông trình IRC. Quy moâ cuûa IRC protocol laø  
treân toaøn caàu, goàm coù 2 thaønh phaàn Client vaø Server.  
Hieän nay IRC Protocol ñöôïc xaây döïng treân hoï giao thöùc maïng phoå bieán nhaát  
laø TCP/IP (TCP/IP Net Work Protocol) lyù do vieäc söû duïng hoï giao thöùc naøy laø  
tính chính xaùc, tin caäy, phoå bieán, raát thích cho caùc cuoäc thaûo luaän töø xa.  
IRC Protocol duøng moâ hình client – server, vì theá chuùng ta coù theå chaïy nhieàu  
maùy treân moâi tröôøng phaân taùn (distributed enviroment). Trong ñoù maùy ñoùng vai troø  
laø server cung caáp moät ñieåm taäp trung (central point) cho caùc client keát noái ñeán, vaø  
ñoàng thôøi thöïc hieän quaù trình truyeàn nhaän message töø caùc client naøy ñeán caùc client  
khaùc.  
- Trang 8  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Moät soá khaùi nieäm cô baûn.  
Chöông I: Moät soá khaùi nieäm cô baûn.  
1. Servers:  
:
Server1  
:
:
:
Server2  
Server3  
Server4  
:
7
:
Server5  
Client2  
Server6  
7
Client4  
7
7
Client3  
Client1  
Hình 1: moâ hình heä thoáng maïng IRC  
Server ñöôïc xem laø xöông soáng cuûa maïng IRC, moãi server laø moät taâm ñieåm trong heä  
thoáng caùc server, chuùng cho pheùp client vaø server khaùc keát noái vaøo. Nhöõng server naøy ñöôïc keát  
noái theo bieåu ñoà hình caây (spanning tree).  
Ví duï: client 1 muoán trao ñoåi thoâng tin vôùi client 3 chuùng phaûi thoâng qua server5, server6,  
server 3.  
2. Clients:  
Client laø moät maùy tính maø noù ñöôïc keát noái ñeán server vaø maùy tính ñoù khoâng phaûi laø  
server (Xem :Hình1.1)  
Client laø thieát bò ñaàu cuoái noù khoâng chuyeån tieáp message cho baát cöù maùy tính naøo khaùc  
Moãi client ñöôïc phaân bieät vôùi nhau thoâng qua Nickname (Nickname laø chuoãi coù giaù trò toái  
ña 9 kyù töï ). Server duøng Nickname ñeå quaûn lyù caùc client.  
Khi coù söï tham gia cuûa moät client vaøo heä thoáng, taát caû caùc server phaûi coù thoâng tin veà  
client ñoù nhö laø teân client (Hostname), teân server maø noù keát noái ñeán v.v ...  
2.1. Operators:  
Ñeå coù theå quaûn lyù soá löôïng user tham gia treân maïng (IRC network) ngöôøi ta xaây döïng  
moät nhoùm user goïi laø “client operator” nhoùm naøy coù ñaày ñuû moïi quyeàn haïn treân maïng (IRC  
network). Maëc duø quyeàn haïn (caáp cho client operation ) coù theå ñöôïc xem laø “nguy hieåm”, nhoùm  
- Trang 9  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Moät soá khaùi nieäm cô baûn.  
“client operator” coù theå thöïc hieän caùc taùc vuï nhö huûy boû keát noái (disconnecting) cuûa moät client  
naøo ñoù hoaëc taùi keát noái (reconnecting) ñeán server naøo ñoù. Nhöõng taùc vuï naøy coù theå thöïc hieän khi  
coù moät server bò hoûng hay khi coù söï coá veà ñöôøng truyeàn vaø nhieàu nguyeân nhaân khaùc. Chính vì  
khaû naêng ñoù neân ngöôøi ta cho raèng nhoùm “client operators” coù theå nguy hieåm. vì coù theå nhoùm  
client naøy huûy boû keát noái cuûa moät client khaùc maø khoâng coù lyù do hôïp lyù, hay muïc ñích chính  
ñaùng.  
3. Channels:  
Channel laø teân nhoùm moät hay nhieàu client, maø nhöõng client naøy seõ cuøng ñöôïc nhaän caùc  
message gôûi ñeán channel ñoù, noùi caùch khaùc laø caùc client thuoäc veà moät channel seõ nhaän ñöôïc  
message gôûi ñeán channel ñoù. Nhöõng client trong cuøng moät channel môùi coù theå nhaän thaáy nhau.  
Moät channel ñöôïc ngaàm taïo ra khi coù client ñaàu tieân tham gia vaø keát thuùc khi client cuoái  
cuøng ngöng keát noái. Trong khi channel ñang toàn taïi thì client coù theå tham gia vaøo channel ñoù  
baèng caùch duøng teân channel.  
Teân cuûa channel coù theå leân ñeán 200 kyù töï vaø baét ñaàu baèng kyù töï ‘&’ hoaëc kyù töï ‘#’, Teân  
channel khoâng coù kyù töï khoaûng traéng (‘ ‘), Ctr+G(^G or ASCII 7), daáu phaåy (‘,’ ).  
Ñeå coù theå taïo ra moät channel hay laø tham gia vaøo moät channel coù saün client phaûi gôûi JOIN  
message ñeå tham gia vaøo channel ñoù.  
3.1.Channels operation :  
Channel oprerator coøn ñöôïc goïi laø “chop” hoaëc “chanop”. Khi coù moät user taïo ra channel  
thì maët nhieân user ñoù trôû thaønh channel operator, laø ngöôøi sôû höõu channel user (channel operator)  
coù ñaày ñuû moïi quyeàn haïn treân channel ñoù. Ñeå quaûn lyù caùc client channel operator coù theå thöïc  
hieän quyeàn cuûa mình nhö :  
ð KICH  
- ñaåy moät client ra khoûi channel  
ð MODE  
ð INVITE  
- thay ñoåi mode cuûa channel  
- goïi moät client tham gia vaøo channel maø noù ñang ôû traïng thaùi  
invite-only (mode i+).  
ð TOPIC  
- thay ñoåi topic channel, channel naøy ñang ôû traïng thaùi +t(mode +t).  
Ngoaøi ra channel operator coù theå caáp quyeàn cho client khaùc hay nhöôøng quyeàn channel  
operator laïi. Tuy nhieân quyeàn haïn naøy khoâng ñöôïc chính xaùc vì nhöõng nguyeân nhaân ñaõ ñöôïc  
trình baøi phaàn treân.  
Moät channel operation thì ñöôïc nhaän daïng bôûi kyù töï baét ñaàu “@” tieáp theo laø nickname  
(nick name cuûa user taïo ra channel ñoù). Ví duï @HappyMan  
- Trang 10  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Moät soá khaùi nieäm cô baûn.  
4. Caùc khaùi nieäm veà truyeàn thoâng:  
4.1. Truyeàn thoâng moät – moät (one – to – one communication)  
7
7
Client 1  
:
:
Client 4  
Server A  
Server D  
7
Client 2  
:
:
Server B  
Server C  
7
Client 3  
:
Server E  
Hình 2  
Truyeàn thoâng 1-1 phuïc vuï cho vieäc chuyeån thoâng ñieäp giöõa hai client. Chuyeån thoâng ñieäp  
naøy mang yù nghóa laø rieâng bieät giöõa 2 client nhöng thaät ra vaãn phaûi thoâng qua caùc server maø  
nhöõng client ñoù keát noái ñeán.  
Ví duï : xem hình 1.2 : client 1 giao tieáp vôùi client 2 thoâng qua Server A.  
Message töø client 1 ñeán client 3 phaûi ñöôïc chuyeån qua ServerA vaø ServerB trong khi ñoù caùc  
Server vaø client coøn laïi khoâng ñöôïc nhaän message.  
4.2. Truyeàn thoâng moät – nhieàu (one – to – many communication)  
Muïc ñích cuûa loaïi truyeàn thoâng naøy laø cung caáp cho caùc cuoäc hoäi thaûo, thaûo luaän v.v...  
Loaïi truyeàn thoâng naøy döïa treân nhieàu caùch.  
4.2.1. Döïa treân danh saùch (one – to – List communication)  
Ñaây laø caùch truyeàn thoâng ñieäp keùm hieäu quaû nhaát trong truyeàn thoâng 1-n. Danh saùch naøy coù  
theå laø caùc client, caùc server, hoaëc laø caùc mask. Server khi nhaän ñöôïc thoâng ñieäp coù ñích ñeán laø moät  
danh saùch, noù seõ chuyeån thoâng ñieäp naøy ñeán taát caû caùc ñích. Caùch chuyeån naøy khoâng hieäu quaû ôû  
choã noù khoâng kieåm tra caùc ñích ñeán coù cuøng treân moät con ñöôøng khoâng, vaø nhö vaäy coù khaû naêng seõ  
coù nhieàu thoâng ñieäp gioáng nhau cuøng chuyeån treân moät con ñöôøng.  
- Trang 11  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Moät soá khaùi nieäm cô baûn.  
4.2.2.Döïa vaøo channel (one – to – group communication)  
7
7
Client 1  
:
:
Client 4  
Server A  
Server D  
7
Client 2  
:
:
Server B  
Server C  
Channel B  
7
Client 3  
:
Server E  
Channel A  
Hình 1.3  
Moät channel ñöôïc taïo ra “ñoäng”(dynamic). Vì khi coù moät user tham gia, noù ñöôïc taïo ra vaø  
bò huûy khi user cuoái rôøi khoûi. Treân thöïc teá, message gôûi ñeán channel thì chæ gôûi duy nhaát moät laàn.  
¯ Neáu coù nhieàu user treân cuøng server maø nhöõng user naøy thuoäc veà moät channel, message  
gôûi ñeán channel sau ñoù ñöôïc server chuyeån ñeán caùc thaønh vieân do noù quaûn lyù.  
¯ Neáu coù nhieàu user treân nhöõng server khaùc nhau vaø chuùng trong cuøng moät channel,  
message gôûi ñeán channel seõ ñöôïc gôûi ñeán caùc server coù user keát noái ñeán, vieäc coøn laïi do server  
chuyeån message ñoù cho caùc thaønh vieân cuûa noù.  
Víduï: Xem hình Hình1.3 ta thaáy client 1, 2, 3 trong channelA.  
Khi coù message vaøo channelA. Neáu message ñeán client 1, 2 thì noù chuyeån ñeán cho  
serverA, message ñeán client 3 vaø chuyeån ñeán cho server B, neáu message chuyeån cho caû  
channelA thì noù seõ chuyeån ñeán caû hai server A vaø B.  
Ñoái vôùi loaïi PRIVMSG message khi vaøo channel, noù ñöôïc chuyeån ñeán server (coù user  
nhaän), coâng vieäc coøn laïi laø server chuyeån cho user ñoù.  
4.2.3Truyeàn thoâng ñeán - host /server mask  
Truyeàn thoâng ñieäp ñeán host/server mask laø caùch ñeå göûi thoâng ñieäp ñeán cho nhieàu ngöôøi  
duøng coù cuøng moät vaøi thoâng tin ñaëc ñieåm veà host vaø server naøo ñoù.  
Caùch truyeàn thoâng naøy gaàn gioáng nhö channel.  
Ví duï: coù 3 ngöôøi duøng vôùi host nhö sau : abc.pacific.au, abd.gulu.fi, def.gulu.au. Khi ta ñeà  
caäp ñeán caùc ngöôøi duøng coù host mask *.au töùc laø noùi ñeán abc.pacific.au, def.gulu.au  
- Trang 12  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong  
IRC  
4.3. Truyeàn thoâng moät - taát caû(one to all Communication )  
Coù theå xem kieåu truyeàn thoâng naøy gioáng nhö phaùt quaûng baù (broadcast). Trong ñoù,  
message ñöôïc gôûi ñeán taát caû caùc client vaø Server treân maïng vaø chuùng seõ töï tìm kieám con ñöôøng  
treân maïng ñeå ñeán taát caû caùc ñòa chæ ñích ( client destination )  
4.3.1.Client to Client  
Khaùi nieäm töông töï nhö treân. Message töø moät client ñeán moät client khaùc.  
4.3.2.Client to Server  
Haàu heát nhöõng taùc vuï command maø chuùng coù khaû naêng laøm thay ñoåi traïng thaùi hoaït ñoäng  
nhö laø: Channel membership, channel mode, user status, v, v.phaûi ñöôïc gôûi ñeán server server ñeå  
thöïc hieän, nhöõng giaù trò naøy khoâng ñöôïc thay ñoåi bôûi baát cöù client naøo.  
Chöông II: Nhöõng quy ñònh trong IRC  
1. Daïng chung cuûa thoâng ñieäp  
Thoâng ñieäp thöôøng coù 2 daïng:  
Caùc thoâng ñieäp xuaát phaùt töø leänh (thoâng ñieäp ñöôïc phaùt sinh töø moät leänh): laø thoâng ñieäp  
ñöôïc client göûi leân server ñeå yeâu caàu moät muïc ñích naøo ñoù (ví duï nhö hoûi thoâng tin moät nick naøo  
ñoù, hay hoûi thoâng tin caùc channel, hoaëc chæ ñôn giaûn laø muoán göûi thoâng ñieäp caàn noùi treân channel).  
Caùc thoâng ñieäp naøy coù theå khoâng coøn nguyeân thuûy nhö khi user goõ vaøo, maø chuùng ñöôïc gaén theâm  
prefix (ñòa chæ host, nickname... cuûa user göûi).  
Thoâng ñieäp traû veà: laø thoâng ñieäp ñöôïc server göûi veà client ñeå traû lôøi laïi caùc yeâu caàu cuûa  
client.  
Caùc thoâng ñieäp coù hai daïng: thoâng ñieäp baèng chöõ vaø thoâng ñieäp baèng soá.  
2. Message  
Message laø thoâng ñieäp töø client gôûi cho server hoaëc ngöôïc laïi, neáu trong message chöùa  
leänh (leänh naøy seõ ñöôïc moâ taû phaàn sau), thì nhöõng leänh naøy seõ ñöôïc ñaùp laïi baèng thoâng ñieäp  
phaûn hoài (reply message).  
Moãi message goàm coù 3 phaàn chính: phaàn ñaàu coøn goïi laø tieáp ñaàu ngöõ (prefix), tieáp theo  
ñoù laø phaàn leänh (command) vaø cuoái cuøng laø danh saùch ñoái soá(parameters list), moãi phaàn caùch  
nhau bôûi kyù töï khoaûng traéng(ASCII 0x20). Baét ñaàu prefix laø kyù töï “:” (ASCII 0x3b) chính nhôø  
vaøo kyù töï naøy maø server nhaän bieát chính xaùc phaàn leänh(command), nhöõng cuù phaùp leänh seõ ñöôïc  
moâ taû chi tieát trong phaàn ñònh daïng message(format message).  
Neáu message töø client gôûi ñeán maø khoâng nhaän thaáy phaàn ñaàu (prefix) thì server xem nhö  
message ñoù ñöôïc gôûi töø client maø noù keát noái tröïc tieáp, vì theá caùc client muoán gôûi message ñeán  
server maø noù keát noái tröïc tieáp khoâng neân duøng phaàn prefix, neáu söû duïng caàn phaûi söû duïng chính  
xaùc vì neáu prefix khoâng ñuùng thì server khoâng ñaùp laïi maø noù im laëng.  
Phaàn leänh (command) laø nhöõng thaønh phaàn thuoäc veà IRC( ñöôïc moâ taû chi tieát trong phaàn  
message detail ), chieàu daøi leänh vaø danh saùch ñoái soá cho pheùp laø 510 kyù töï , cuoái moãi message  
coù kyù töï keát thuùc (CR-LF) nhö theá toång chieàu daøi chuùng laø 512 kyù töï.  
- Trang 13  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong  
IRC  
2.1 Ñònh daïng moät message  
Vaán ñeà ñaët ra laø laøm sao coù theå nhaän daïng vaø phaân tích ra töø nhöõng luoàng tuaàn töï caùc  
message gôûi ñeán, ñeå giaûi quyeát vaán ñeà naøy ngöôøi ta laäp ra quy ñònh cho message.  
Nhö ñaõ moâ taû ôû phaàn treân, moät message luoân coùù kyù töï keát thuùc nhôø vaøo kyù töï naøy maø  
server coù theå taùch message ra khoûi luoàng (stream). Sau khi taùch ra chuùng ñöôïc phaân tích thaønh 3  
thaønh phaàn chính. chuùng ta seõ khaûo saùt chuùng trong phaàn sau.baây giôø chuùng ta phaân tích caáu truùc  
toång quaùt cho moät message:  
[‘:’<prefix><SPACE>] <command> <SPACE> <params> <cr-lf>  
Phaàn ñaàu(prefix) Leänh  
DS ñoái soá  
kyù töï keát thuùc  
Giaûi thích cuù phaùp:  
@ Ñoái töôïng naèm trong daáu [ ] coù theå coù hoaëc khoâng coù.  
@ Ñoái töôïng naèm trong daáu < > laø baét buoät phaûi coù.  
@ Toaùn töû ‘ | ’ laø coù khaû naêng choïn moät trong hai ví duï: “<a> | <b>” coù theå choïn <a>  
hoaëc choïn <b>.  
@ Ñoái töôïng naèm trong daáu {} coù theå xuaát hieän nhieàu laàn.  
3 thaønh phaàn chính cuûa message:  
ØPhaàn ñaàu(prefix)  
Phaàn prefix coù theå khoâng coù, baét ñaàu prefix phaûi coù daáu ‘:’ :  
<prefix> ::=<servername > | <nick> [!<user> ][@<host> ]  
ÔÛ ñaây chuùng ta coù theå thaáy prefix coù theå laø servername hoaëc nickname ngoaøi ra coøn coù  
theå coù theâm username hay hostname hoaëc caû hai. Nhöng ñoái vôùi username phaûi coù kyù töï ‘!’  
ñöùng tröôùc, töông töï nhö theá hostname phaûi coù kyù töï ‘@’ñöùng ñaàu.  
ØPhaàn Leänh(command)  
Phaàn leänh coù theå ôû daïng chuoãi hoaëc soá :  
<command> ::=<letter> {<letter>} | <number> <number> <number>  
deã daøng chuùng ta coù theå nhaän thaáy leänh coù theå do moät hay nhieàu kyù töï hoaëc giaù trò soá goàm 3 chöõ  
soá.  
ØPhaàn danh saùch ñoái soá(parameters list)  
<params> ::=<SPACE> [‘:’ <trailing> | <middle> <params>]  
Chuùng ta thaáy ñoái soá coù theå khoâng xuaát hieän, giaûi thích theâm veà <trailing><middle>  
<trailing> laø chuoãi kyù töï ñaïi dieän trong ñoù khoâng coù kyù töï NULL hoaëc CR, LF. Chuoãi naøy ñöôïc  
ñaët giöõa hai kyù töï * * ”  
- Trang 14  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong  
IRC  
<middle> cuõng laø chuoãi ñaïi dieän nhöng coù söï phaân bieät, kyù töï ñaàu chuoãi khoâng ñöôïc laø kyù töï  
‘:’(ASCII 0x3b).  
Ví duï: * !* “ ñaïi dieän cho taát caû caùc user.  
*@* “ ñaïi dieän cho taát caû host name.  
*.edu “ ñaïi dieän cho nhoùm server coù phaàn cuoái laø edu.  
3. Giaù trò soá traû veà (numeric replies)  
Sau khi khaûo saùt veà caáu truùc cuûa moät message, chuùng ta ñöôïc bieát moät message ñöôïc  
nhaän daïng nhö theá naøo. Sau khi nhaän ñöôïc message, server seõ phaùt ra message phaûn hoài (reply  
message). Reply Message ñöôïc hieåu töông töï nhö laø message, thaät söï noù goàm 3 phaàn: sender  
prefix, giaù trò soá goàm 3chöõ soá vaø target.  
Ø sender prefix laø nickname cuûa client gôûi.  
Ø giaù trò soá ñöôïc moâ taû phaàn sau.  
Ø <taget> ::= <channel> | <user> @<servername> | <nick> | <mask> [ “,” <taget>] ñeå  
nhaän bieát reply message ñeán client naøo chuùng döïa vaøo <target>.  
ÔÛ ñaây chuùng ta coù 2 loaïi message phaûn hoài:  
error reply  
normal reply  
Löu yù: chæ coù server môùi coù khaû naêng phaùt ra reply message.  
Chöông III: Chi tieát cho töøng message(Message detail)  
Ñaây laø phaàn moâ taû chính cho moãi loaïi message, ñeå sever vaø client coù theå nhaän bieát chuùng.  
Server seõ nhaän message vaø phaân tích chuùng, sau ñoù traû laïi thoâng baùo thích hôïp. Neáu phaân tích  
message maø gaëp phaûi loãi(error). Khi ñoù server phaûi coù cô cheá thoâng baùo cho client.  
Moät loãi(error) sinh ra thöôøng do nhöõng nguyeân nhaân sau:  
þ Sai ñoái soá (incorrect parameter),  
þ Sai Leänh(incorrect command),  
þ Sai ñòa chæ ñích  
Teân server  
NickName  
Channel name  
þ Sai vì vi phaïm quyeàn haïn v.v…  
Cuù phaùp cho moät command message  
:Name COMMAND parameter list  
Chuù yù: Ñoái vôùi “Name”, ñoù laø teân cuûa client gôûi. Moät server(töø xa) ñöôïc client gôûi  
message ñeán thì server seõ caên cöù vaøo “Name”, ñeå coù theå ñaùp laïi yeâu caàu ngöôïc laïi neáu client  
gôûi ñeán server maø noù keát noái tröïc tieáp khoâng caàn.  
1. Nhoùm message ñaêng kyù keát noái  
Nhoùm message ñaêng kyù keát noái chòu traùch nhieäm keát noái vôùi IRC server, giao thöùc keát noái  
ñöôïc moâ taû trong löu ñoà sau:  
- Trang 15  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong  
IRC  
Moâ Hình Keát Noái Giöõa ChatClient vaø ChatServer  
Client  
Server  
Start  
Start  
Listen on port  
Recieve  
PASS  
message  
no  
Detect  
error
?  
yes  
Time  
out
?  
yes  
no  
reply  
error  
Receive  
NICK  
message  
Recieve  
no  
Detect  
error
?  
yes  
Time  
out
?  
yes  
no  
reply  
error  
Receive  
Hình 4: Moâ hình keát noái giöõa chat client vaø chat server(coøn tieáp)  
- Trang 16  
Moâ Hình Keát Noái Giöõa ChatClient vaø ChatServer(TT)  
Luaän vaên: Intay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong  
USER  
message  
IRC  
Recieve  
no  
Detect  
error
?  
yes  
Time  
out
?  
yes  
no  
reply  
error  
Receive  
PING  
message  
Receive  
no  
Detect  
error
?  
yes  
reply  
error  
Recieve  
yes  
Detect  
error
?  
no  
PONG  
message  
Recieve  
no  
Detect  
error
?  
yes  
Receive  
reply  
error  
yes  
Detect  
error
?  
Hình 5: Moâ hình keát noái giöõa chat client vaø chat server  
no  
- Trang 17  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong  
IRC  
Moâ hình tham gia vaøo channel  
Client  
Server  
JOIN  
Message  
Receive  
no  
yes  
Detect  
error
?  
Time  
out
?  
yes  
no  
Reply  
error  
Receive  
Reply  
PRL_Topic  
Receive  
Exchange data  
Hình 6: Moâ hình hoïat ñoäng sau khi keát noái  
- Trang 18  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong  
IRC  
Moâ hình thoaùt khoûi channel & huûy boû keát noái  
Client  
Server  
PART  
Message  
Receive  
no  
yes  
Detect  
error
?  
Time  
out
?  
yes  
no  
Reply  
error  
Receive  
Delete user  
from  
channel  
QUIT  
Message  
Receive  
Delete user  
from user  
database  
END  
Hình 7: Moâ hình thoaùt khoûi channel & huûy boû keát noái  
- Trang 19  
Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong  
IRC  
Trong nhoùm message naøy coù 3 loaïi message:  
v Message do server söû duïng  
v Message do client söû duïng  
v Message duøng chung  
Message do Server söû duïng  
1.1 Server Message  
Cuù Phaùp: SERVER <servername><hopcount><info>  
Server message duøng ñeå thoâng baùo cho caùc server khaùc treân toaøn heä thoáng bieát, coù theâm  
moät server keát noái vaøo heä thoáng maïng (IRCnetwork). Nhöõng thoâng tin veà server naøy ñöôïc  
chuyeån cho caùc server khaùc treân maïng chöùa trong ñoái soá <info>. Söï kieän naøy xaûy ra khi coù moät  
server môùi keát noái vaøo heä thoáng maïng. Luùc ñoù server (môùi keát noái vaøo) phaùt ra SERVER  
message, message naøy ñöôïc phaùt quaûng baù (broadcast) leân maïng. Hopcount thoâng tin veà löôïng  
giaù Xem H4 ñeå bieát theâm chi tieát.  
Löu yù SERVER message khi gôûi ñeán phaûi ñöôïc chaáp nhaän bôûi Server coù teân laø ñoái soá  
<servername>.  
Giaûi thích: vì chuùng ta bieát raèng khi coù moät server tham gia vaøo heä thoáng thì caùc server  
khaùc phaûi coù thoâng tin veà server ñoù ñeå chuùng caäp nhaät laïi caáu hình maïng, nhö theá thoâng tin naøy  
phaûi thoâng baùo cho caùc server khaùc. Message naøy ñöôïc gôûi cho töøng server.  
Loãi coù theå xaûy ra khi nhaän ñöôïc SERVER message, khi xaûy ra loãi server duøng ERROR  
message thoâng baùo thay vì duøng giaù trò traû veà.  
Giaù trò traû veà:  
ERR_ALREADYREGISTRED  
Ví duï:  
ü SERVER test.oulu.fi 1 :[tolsun.oulu.fi]  
<servername> : “test.oulu.fi” //server naøy coá gaéng ñònh danh treân maïng (IRCnetwork).  
<hopcount>: “1”  
<info>: “[tolsun.oulu.fi]”  
ü:tolsun.oulu.fi SERVER csd.bu.edu 5: BU Central Server  
server: “tolsun.oulu.fi” khoâng keát noái tröïc tieáp vôùi server: “csd.bu.edu 5”  
khoaûng caùch laø 5 hopcount.  
1.2 Server Quit Message  
Cuù Phaùp:  
SQUIT <server><comment>  
:
:
:
Server  
Server  
Server  
- Trang 20  
Tải về để xem bản đầy đủ
pdf 88 trang baolam 09/05/2022 2200
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfluan_van_internet_relay_chat_protocol_tim_hieu_va_ung_dung.pdf