Luận văn Internet Relay Chat Protcol

Chia sẻ: Hoang Nguyen | Ngày: | Loại File: PDF | Số trang:0

0
111
lượt xem
44
download

Luận văn Internet Relay Chat Protcol

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ
Lưu

Nội dung Text: Luận văn Internet Relay Chat Protcol

  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. 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 www.diachiweb.com - Trang 1
  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. 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 www.diachiweb.com - Trang 2
  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. 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 www.diachiweb.com - Trang 3
  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. 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 www.diachiweb.com - Trang 4
  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. 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 www.diachiweb.com - Trang 5
  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. 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 www.diachiweb.com - Trang 6
  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. 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 www.diachiweb.com - Trang 7
  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. 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. www.diachiweb.com - Trang 8
  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. 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 www.diachiweb.com - Trang 9
  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. “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 - thay ñoåi mode cuûa channel ð INVITE - 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 www.diachiweb.com - Trang 10
  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. 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. www.diachiweb.com - Trang 11
  12. 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 www.diachiweb.com - Trang 12
  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 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öï. www.diachiweb.com - Trang 13
  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 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: [‘:’] 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ï: “ | ” coù theå choïn hoaëc choïn . @ Ñ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 ‘:’ : ::= | [‘!’ ][‘@’ ] ÔÛ ñ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á : ::= {} | 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) ::= [‘:’ | ] Chuùng ta thaáy ñoái soá coù theå khoâng xuaát hieän, giaûi thích theâm veà 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öï “* * ” www.diachiweb.com - Trang 14
  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 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. Ø ::= | ‘@’ | | [ “,” ] ñeå nhaän bieát reply message ñeán client naøo chuùng döïa vaøo . ÔÛ ñ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: www.diachiweb.com - Trang 15
  16. 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 PASS message Recieve no Detect yes Time error? out ? yes no reply Receive error NICK Recieve message no Detect yes Time error? out ? yes no reply Receive error Hình 4: Moâ hình keát noái giöõa chat client vaø chat server(coøn tieáp) www.diachiweb.com - Trang 16
  17. Moâ Hình Keát Noái Giöõa ChatClient vaø ChatServer(TT) Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong USER IRC Recieve message no Detect yes Time error? out ? yes no reply Receive error PING Receive message no Detect error? yes reply Recieve error yes Detect error? no PONG Recieve message 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 www.diachiweb.com - Trang 17
  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 tham gia vaøo channel Client Server JOIN Receive Message no yes Detect Time error? out ? yes no Reply Receive error Reply Receive PRL_Topic Exchange data Hình 6: Moâ hình hoïat ñoäng sau khi keát noái www.diachiweb.com - Trang 18
  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 Moâ hình thoaùt khoûi channel & huûy boû keát noái Client Server PART Receive Message no yes Detect Time error? out ? yes no Reply Receive error Delete user from channel QUIT Receive Message Delete user from user END database Hình 7: Moâ hình thoaùt khoûi channel & huûy boû keát noái www.diachiweb.com - Trang 19
  20. 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 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á . 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á . 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] : “test.oulu.fi” //server naøy coá gaéng ñònh danh treân maïng (IRCnetwork). : “1” : “[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 Server Server A B C www.diachiweb.com - Trang 20

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản