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

Mụ c Lụ c

Giới thiệu đề tài . 6

Phần 1 Tìm hiểu Internet Relay Chat Protocol . 7

Giới thiệu tổng quan về IRC . 8

Chương I: Một số khái niệm cơ bản . 9

1. Servers. 9

2. Clients . 9

2.1. Operators . 9

3. Channels: . 10

3.1.Channels operation : . 11

4. Các khái niệm về truyền thông. . 11

4.1. Truyền thông một – một (one – to – one communication) . 11

4.2. Truyền thông một – nhiều (one – to – many communication) . 11

4.2.1. Dựa trên danh sách (one – to – List communication) . 11

4.2.2.Dựa vào channel (one – to – group communication). 12

4.2.3.Truyền thông đến - host /server mask . 12

4.3. Truyền thông một - tất cả(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 về code . 13

2. Message . 13

2.1 Định dạng một message . 14

3. Giá trị số trả về (numeric replies) . 15

Chương III: Chi tiết cho từng message . 15

1. Nhóm message đăng ký kết nối . 15

1.1 Server Message. 20

1.2 Server Quit Message . 21

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. Nhóm message dùng cho việc điều khiể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. Nhóm message truy vấn đế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. Nhóm message gởi text (sending message) . 33

4.1 Private Message . 34

4.2Notice Message. 34

5. Nhóm message do client truy vấn đến server (user-based query) . 35

5.1 Who Query . 35

5.2 Who is Query . 35

5.3 Whowas Message. 36

6. Nhóm message khá 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. Nhóm message tùy chọ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

Phần II: Tìm Hiểu Kỹ Thuật Lập Trình Socket . 41

Chương I: Các Khái Niệ m Cơ Bản Về Hệ ThốngMạng . 42

1. Mô hình mạng, mô hình OSI, mô hình TCP. . 42

1.1 Mô Hình Mạng . 42

1.2 Mô hình OSI . 43

1.3 Mô hìnhTCP/IP . 44

2. Giao Thức TCP và 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 thiệu địa chỉ IP . 49

3.2 Phân Loại Địa Chỉ IP. 49

3.3. Subnet Mask (mặt nạ con) . 50

Chương II: Một Số HàmSocket . 50

1. Khái niệm về socket . 50

2. Thư viện các hà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 họ a cho việc sử dụng socket trong Java . 54

3.1 Chương trình hoạt động theo giao thức TCP. 54

3.1.1 Chương trình client chạy trên máy khách . 54

3.1.2 Chương trình server chạy trên máy chủ . 55

3.2 Chương trình hoạt động theo giao thức UDP . 56

3.2.1 Chương trình client chạy trên máy khách . 56

3.2.2 Chương trình server chạy trên máy chủ . 59

Phần III: Xử Lý Đa Tiến Trình (multitasking) và Đa Luồng (multithreading) . 62

Chương I: Đa Tiến Trình (multitasking) . 62

Chương II: Đa Luồng (multithreading) . 64

1. Khái niệm luồng . 64

2. Những tiện ích khi dùng thread (Advantages of multithreading) . 64

3. Các khó khăn khi dùng thread . 65

4. Mô hình hiểu trình (thread) trong JAVA . 66

5. Tính chất thread. . 67

6. Đồng bộ hóa các thread . 68

7. Các phương thức đồng bộ (synchronized) . 68

8. Các trạng thái của thread . 70

Phần IV:Yêu cầu & Kiến trúc chương trình: . 72

Chương I: Yêu cầu chức năng và phi chức năng: . 73

A. ChatClient:. 73

B. ChatServer: . 74

Chương II: Kiến trúc chương trình: . 75

A. ChatClient:. 77

B.ChatServer: . 78

Kết luận . 79

Hướng phát triển đề tài . 79

Tài liệu tham khảo . 80

Phụ Lục . 81

pdf88 trang | Chia sẻ: netpro | Lượt xem: 1769 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận văn Internet Relay Chat Protocol tìm hiểu và ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
private message töø user gôûi ñeán user nhaän, vaø chæ coù user nhaän môùi ñöôïc nhaän PRIVMSG message. Ñoái soá laø nickname cuûa client nhaän, coù theå laø danh saùch nickname, channel chuùng ñöôïc phaân bieät vôùi nhau baèng daáu phaåy (‘ , ’). Giaù trò traû veà: ERR_NORECIPIENT ERR_CANNOTSENDTOCHAN ERR_WILLTOPLEVEL ERR_NOTOPLEVEL ERR_NOSUCHNICK ERR_NOTEXTTOSEND ERR_TOOMANYTARGETS RPL_AWAY Víduï: ü :Angle PRIVMSG Wiz :Hello are you receiving this message? Message töø “Angle” ñeán “Wiz”. ü PRIVMSG Angle :Yes I’m receiving it !receiving it !’u>(768u+1n).br Message ñeán Angle. ü PRIVMSG jto@tolsum.oulu.fi: Hello! Message töø client treân server” tolsum.oulu.fi” vôùo user name “jto”. ü PRIVMSG $*.fi :Server tolsun.oulu.fi rebooting Message ñeán taát caû user treân server coù teân “*.fi”. ü PRIVMSG #*.edu :NFSNet is undergoing work, expect interruptions Message ñeán taát caû user coù teân “*.edu”. 4.2Notice Message Cuù phaùp: NOTICE NOTICE message söû duïng töông töï nhö PRIVSMSG message chæ coù ñieàu khaùc nhau giöõa hai message naøy laø NOTICE message khoâng caàn phaûi coù söï ñaùp laïi töø client nhaän. Qui ñònh naøy cuõng ñöôïc aùp duïng cho server, nhö theá server khoâng caàn thoâng baùo loãi cho client. Lyù do coù vieäc quy ñònh naøy laø ñeå traùnh söï töï ñoäng traû lôøi laëp ñi laëp laïi giöõa server vaø client. Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong IRC www.diachiweb.com - Trang 35 Giaù trò traû veà: ERR_NORECIPIENT ERR_CANNOTSENDTOCHAN ERR_WILLTOPLEVEL ERR_NOTOPLEVEL ERR_NOSUCHNICK ERR_NOTEXTTOSEND ERR_TOOMANYTARGETS RPL_AWAY Víduï: ü :Angle NOTICE Wiz :Hello are you receiving this message? Message töø “Angle” ñeán “Wiz”. ü NOTICE Angle :Yes I’m receiving it !receiving it !’u>(768u+1n).br Message ñeán Angle. ü NOTICE jto@tolsum.oulu.fi : Hello! Message töø client treân server” tolsum.oulu.fi” vôùi user name “jto”. ü NOTICE $*.fi :Server tolsun.oulu.fi rebooting Message ñeán taát caû user treân server coù teân “*.fi”. ü NOTICE #*.edu :NFSNet is undergoing work , expect interruptions Message ñeán taát caû user coù teân “*.edu”. 5. Nhoùm message do client truy vaán ñeán server(user-based query) Ñaây laø nhoùm command maø user coù theå duøng ñeå taïo truy vaán. Khi duøng nhoùm leänh naøy user coù theå xem ñöôïc thoâng tin chi tieát veà caùc user khaùc vôùi ñieàu kieän caùc user coù theå nhaän bieát nhau treân maïng. Vieäc coù theå nhaän bieát nhau tuøy thuoäc vaøo mode user ñoù vaø traïng thaùi channel ñang duøng. 5.1 Who Query Cuù phaùp: WHO [[]] WHO message duøng cho client ñeå taïo ra truy vaán, keát quaû truy vaán ñoù laø danh saùch caùc user phuø hôïp vôùi ñoái soá . Neáu khoâng coù ñoái soá thì taát caû user (coù theå thaáy ñöôïc) ñöôïc traû veà, coù theå nhaän ñöôïc danh saùch caùc operator neáu chuùng ta söû duïng ñoái soá []hoaëc kyù töï ñaïi dieän(wildcard). Ñoái soá coù theå laø hostname, server, realname, nickname. Giaù trò traû veà: ERR_NOSUCHSERVER RPL_ENDOFWHO RPL_WHOREPLY Ví duï: ü WHO *.fi yeâu caàu lieät keâ taát caû user coù teân “*.fi”. Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong IRC www.diachiweb.com - Trang 36 ü WHO jto* o yeâu caàu lieät keâ taát caû user coù teân “jto*” neáu chuùng laø operator. 5.2 Who is Query Cuù phaùp: WHOIS [][,[,…]] Message naøy duøng ñeå yeâu caàu thoâng tin cuï theå veà moät user naøo ñoù, nhö theá coù söï khaùc nhau giöõa WHO message vaø WHOIS message cuï theå laø: WHO message: yeâu caàu danh saùch caùc user. WHOIS message: yeâu caàu thoâng tin veà moät user naøo ñoù. Server seõ traû lôøi cho message naøy, trong tröôøng hôïp server laø server ôû xa(remote server) thì noù phaûi ñöôïc ñöa vaøo ñoái soá . Löu yù :Danh saùch caùc nickmask phaûi caùch nhau bôûi daáu phaåy. Giaù trò traû veà: ERR_NOSUCHSERVER ERR_NONNICKNAMEGIVEN RPL_WHOISUSER RPL_WHOISCHANNELS RPL_WHOISSERVER RPL_AWAY RPL_ WHOISOPERATOR RPL_WHOISIDLE RPL_ENDOFWHOIS ERR_NOSUCHNICK Ví duï: ü WHOIS wiz traû veà thoâng tin user hieän haønh vôùi nickmask “ wiz”. ü WHOIS eff.org trillian truy vaán ñeán server “eff.org” veà “trillian”. 5.3 Whowas Message Cuù phaùp: WHOWAS [[]] Khaùc vôùi WHOIS messge, WHOWAS messge yeâu caàu thoâng tin nhöõng user trong quaù khöù maø hieän giôø khoâng coøn coù maët trong danh saùch user active. Ñeå traû lôøi cho message naøy server phaûi tìm kieám trong danh saùch caùc nickname ñaõ thoaùt ra khoûi heä thoáng maïng(IRC network). Chuùng ta thaáy trong danh saùch ñoái soá coù , ñoái soá naøy laø moät soá nguyeân döông, cho bieát laáy bao nhieâu laàn thoâng tin veà nickname ñoù, coù nghóa laø trong danh saùch caùc nickname ñaõ rôøi khoûi heä thoáng maïng coù theå coù nhieàu maåu tin nickname gioáng nhau nhöng khaùc nhau veà thôøi gian ñaêng nhaäp. Khi ñoù quy ñònh laáy bao nhieâu maåu tin, neáu tröôøng hôïp khoâng coù giaù trò server seõ traû veà toaøn boä thoâng tin caùc nickname maø server coù ñöôïc. Giaù trò traû veà: ERR_NONICKNAMEGIVEN ERR_WASNOSUCHNICK RPL_WHOWASUSER RPL_WHOSISERVER Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong IRC www.diachiweb.com - Trang 37 RPL_ENDOFWHOWAS Ví duï: ü WHOWAS wiz traû veà taát caû nhöõng thoâng tin trong quaù khöù veà nickname “wiz”. ü WHOWAS Mermaid 9 traû veà thoâng tin trong quaù khöù cuûa “Mermaid” nhöng chæ laáy toái ña 9 maåu tin veà nickname naøy. ü WHOWAS Trillian 1 *.edu chæ laáy 1 maåu tin veà nickname “Trillian” ôû server “*.edu”. 6. Nhoùm message khaùc (miscellaneous message) 6.1 Kill Message Cuù phaùp: KILL KILL message ñöôïc duøng khi caàn keát thuùc keát noái giöõa client vaø server, khi gaëp phaûi hieän töôïng Nick Collision(khi coù söï truøng laép cuûa 2 maåu tin trong danh saùch Nickname.) xaûy ra, khi ñoù server seõ phaùt ra KILL message, KILL message cuõng ñöôïc channel operator söû duïng laø lyù do cho KILL message do server ñöa ra ñeå giaûi thích cho haønh ñoäng cuûa mình. Giaù Trò traû veà: ERR_NOPRIVILEGES ERR_NEEDMOREPARAMS ERR_NOSUCHNICK ERR_CANTKILLSERVER Ví duï: ü KILL David(csd.bu.edu <- tolsun.olu.fi) giöõa csd.bu.edu vaø tolsun.olu.fi xaûy ra hieän töôïng Nick Collition neân “David” bò ngöng keát noái. Ghi chuù: chæ coù operator môùi coù theå duøng KILL message ñeå ngöng keát noái cuûa users. 6.2 Ping Message Cuù Phaùp: PING [ ] PING message duøng ñeå kieåm tra moät client coøn hoaït ñoäng trong heä thoáng maïng hay khoâng? PING message ñöôïc server gôûi ñeán client, khi nhaän ñöôïc message naøy, client phaûi ñaùp laïi baèng PONG message, neáu sau moät khoaûng thôøi gian naøo ñoù(time out) maø khoâng thaáy client traû lôøi thì xem nhö keát noái ñoù bò ngaét, vì theá khi nhaän ñöôïc PING message client phaûi traû lôøi baèng PONG message caøng sôùm caøng toát. Xem trong danh saùch ñoái soá ta nhaän thaáy raèng coù ñeán 2 ñoái soá vaø ñieàu ñoù coù nghóa laø PING message gôûi ñeán caû hai vaø , tuy nhieân server nhaän ñöôïc message noù khoâng ñaùp laïi maø döïa vaøo client keát noái vôùi noù ñeå thoâng baùo keát noái vaãn coøn Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong IRC www.diachiweb.com - Trang 38 lieân thoâng. Töø ñaây chuùng ta ruùt ra ñöôïc keát luaän laø: Server khoâng ñaùp laïi PING message maø noù nhôø client ñaùp laïi. Giaù trò traû veà: ERR_NOORIGIN ERR_NOSUCHSERVER Ví duï: ü PING tolsun.oulu.fi Server gôûi PING message kieåm tra server khaùc coøn hoaït ñoäng hay khoâng. ü PING Wiz PING message ñöôïc gôûi ñeán Wiz. 6.3 Pong Message Cuù Phaùp: PONG [] PONG laø message ñöôïc client duøng ñeå ñaùp laïi PING message laø ñoái soá cho bieát client naøo ñaùp laïi PING message. Giaù trò traû veà: ERR_NOORIGIN ERR_NOSUCHSERVER Ví duï: ü PONG csd.bu.edu tolsun.oulu.fi PONG message töø csd.bu.edu ñeán tolsun.oulu.fi. 6.4 Error Message Cuù phaùp: ERROR ERROR message duøng cho server thoâng baùo loãi cho operator. Noù coù theå ñöôïc gôûi töø server naøy ñeán server khaùc. Message naøy chæ duøng ñeå thoâng baùo loãi lieân keát giöõa server vôùi nhau, neáu server nhaän ñöôïc ERROR message töø server khaùc thì noù khoâng caàn thoâng baùo cho server khaùc bieát, ñeàu naøy coù theå hieåu raèng server gôûi ERROR message ñeán server nhaän, khi ñoù message chæ chuyeån cho operator cuûa noù. Moät khi caàn thoâng baùo loãi ñeán client operator noù phaûi ñöôïc ñoùng goùi thoâng qua leänh NOTICE message ñeå chuyeån, taát nhieân client operator khoâng caàn phaûi traû lôøi cho message naøy. Giaù trò traû veà: Khoâng coù Ví duï: ü ERROR :server *.fi already exists Thoâng baùo loãi chuyeån ñeán server ñeán caùc khaùc ü NOTICE Wiz :ERROR from cds.bu.edu --Server *.fi already exists thoâng baùo loãi gôûi ñeán Wiz treân server cds.bu.edu. 7. Nhoùm message tuøy choïn(option message) 7.1 Away Message Cuù phaùp: AWAY[message] Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong IRC www.diachiweb.com - Trang 39 Vôùi AWAY message user coù theå thieát laäp cô cheá traû lôøi töï ñoäng cho moãi PRIVMSG message, noäi dung traû lôøi ñöôïc löu tröõ trong chuoãi [message]. Sau khi thieát laäp xong cheá ñoä naøy vieäc traû lôøi töï ñoäng seõ ñöôïc gôûi töø server ñeán client phaùt ra PRIVMSG message, server gôûi chính laø server keát noái tröïc tieáp vôùi client phaùt ra PRIVMSG message. Neáu AWAY message khoâng coù [message] thì xem nhö chuoãi traû lôøi bò xoùa boû. Giaù trò traû veà: RPL_UNAWAY RPL_NOWAWAY Ví duï: üAWAY :Gone to have lunch. Back in 5 minute thieát laäp vieäc traû lôøi töï ñoäng. üWiz AWAY “Wiz” huûy boû chuoãi traû lôøi töï ñoäng. 7.2 Rehast Message Cuù phaùp: REHASH Server coù moät taäp tin caáu hình ñeå thieát laäp caùc tham soá. Leänh naøy do operator thi haønh baét buoäc server phaûi ñoïc laïi vaø xöû lyù laïi taäp tin caáu hình cuûa server ñoù. Giaù trò traû veà: RPL_REHASHING ERR_NOPRIVILEGES Ví duï: üREHAST message töø channel operator yeâu caàu server ñoïc laïi taäp tin caáu hình. 7.3 Restart Message Cuù phaùp: RESTART Ñaây laø message duøng cho channel operator buoäc server phaûi khôûi ñoäng (restart) laïi heä thoáng. Giaù trò traû veà: ERR_NOPRIVILEGES Ví duï: üRESTART server hieän taïi khôûi ñoäng laïi heä thoáng. 7.4 Summon Message Cuù phaùp: SUMMON [] Môøi moät client coù chöông trình server hieän ñaõ coù caøi ñaët treân host gia nhaäp heä thoáng IRC Neáu khoâng coù ñoái soá thì noù xem server hieän haønh laø server ñích, khi ñoù caùc client keát noái tröïc tieáp ñeán server ñoù seõ ñöôïc môøi. Giaù trò traû veà : ERR_NORECIPIENT ERR_FILEERROR ERR_NOLOGIN ERR_NOSUCHSERVER RPL_SUMMONING Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong IRC www.diachiweb.com - Trang 40 Ví duï: ü SUMMON jto goïi user “jto” tham gia vaøo server Hieän haønh. ü SUMMON jto tolsun.oulu.fi goïi user “jto” tham gia vaøo server “tolsun.oulu.fi”. 7.5 Users Message Cuù Phaùp: USER[] USER message duøng ñeå traû veà danh saùch cuûa caùc user ñaõ login vaøo töông töï nhö WHO message. Tuy nhieân coù moät soá client khoâng theå duøng message naøy ñöôïc treân server cuûa hoï, coù theå vì lyù do baûo maät (security reasion). Neáu user khoâng theå duøng message naøy moät reply ñöôïc phaùt ra. Giaù trò traû veà: ERR_NOSUCHSERVER ERR_FILEERROR RPL_USERSSTART RPL_NOUSER RPL_USERS RPL_ENDOFUSERS ERR_USERSDISABLED Disabled reply: ERR_USERDISABLED Ví duï: ü USER eff.org yeâu caàu danh saùch caùc user ñaõ login vaøo server “eff.org”. ü :Jonh USER tolsun.oulu.fi “Jonh” yeâu caàu danh saùch user login treân server “tolsun.oulu.fi”. 7.6 Operwall Message Cuù phaùp: WALLOPS Khi WALLOPS hoaït ñoäng noù seõ gôûi ñeán taát caû caùc operator hieän coù treân maïng. Giaù trò traû veà: ERR_NEEDMOREPARAMS Ví duï: ü :csd.bu.edu WALLOPS :Connect ‘*.uiuc.edu 6667’from Joshua Message töø “csd.bu.edu” thoâng baùo CONNECT message ñeán caùc operator. 7.7 Userhost Message Cuù phaùp: USERHOST{} USERHOST yeâu caàu traû veà thoâng tin cuûa client coù laøm ñoái soá, danh saùch coù theå leân ñeán 5 ñoái soá khi ñoù thoâng tin veà moãi nickname seõ ñöôïc traû veà cho client. Löu yù : moãi thoâng tin traû veà ñöôïc phaân caùch baèng kyù töï khoaûng caùch. Giaù trò traû veà: RPL_USERHOST Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong IRC www.diachiweb.com - Trang 41 ERR_NEEDMOREPARAMS Ví duï: ü USERHOST Wiz Michael Marry P USERHOST yeâu caàu thoâng tin veà “Wiz”,”Michael”,”marty”,”P”. 7.8 Ison Message Cuù phaùp: ISON{} ISON message ñöôïc thieát laäp ñeå traû veà thoâng tin veà hieän thôøi treân IRC moät caùch hieäu quaû nhaát. Coù theå coù nhieàu ñoái soá ñöôïc ñöa vaøo nhöng chuùng phaûi caùch nhau baèng kyù töï khoaûn traéng. Giaù trò traû veà: RPL_ISON ERR_NEEDMOREPARAMS Ví duï: ü ISON phone trillian Wiz Jarlek Avalon Angel Monstah ISON yeâu caàu 7 host. Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông II: Nhöõng quy ñònh trong IRC www.diachiweb.com - Trang 42 Phaààn II: Tìm Hieååu Kyõõ Thuaäät Laääp Trình Socket ü Chöông I: Caùc Khaùi Nieäm Cô Baûn Veà Heä Thoáng Maïng üChöông II: Moät Soá Haøm Socket Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Caùc Khaùi Nieäm Cô Baûn Veà Heä Thoáng Maïng www.diachiweb.com - Trang 43 Chöông I: Caùc Khaùi Nieäm Cô Baûn Veà Heä Thoáng Maïng 1. Moâ hình maïng, moâ hình OSI, moâ hình TCP. 1.1 Moâ Hình Maïng Tröôùc tieân chuùng ta caàn tìm hieåu vaán ñeà: taïi sao coù söï phaân taàng cuûa caùc protocol, ích lôïi cuûa vieäc phaân taàng. Ñeå coù theå chuyeån moät thoâng ñieäp (message) töø maùy naøy sang maùy khaùc (caùc maùy phaûi trong cuøng heä thoáng maïng) noù phaûi traûi qua nhieàu giai ñoaïn khaùc nhau, caùc giai ñoaïn naøy raát phöùc taïp nhö laø: chia nhoû thoâng ñieäp (message) ra thaønh nhieàu goùi nhoû (package), maõ hoùa caùc goùi naøy ra daïng bit, caùc bit naøy ñöôïc chuyeån qua ñöôøng truyeàn vaät lyù ñeán maùy nhaän. Sau ñoù quaù trình nhaän seõ thöïc hieän ngöôïc laïi nhö beân gôûi, neáu quaù trình laép gheùp gaëp phaûi loãi thì phaûi thoâng baùo ñeå truyeàn laïi vv… Caùc giai ñoïan naøy raát phöùc taïp ñoøi hoûi ngöôøi laäp trình öùng duïng phaûi hieåu roõ taát caû caùc cô cheá hoaït ñoäng beân döôùi cuûa heä thoáng. Vì vaäy ngöôøi ta ñöa ra yù töôûng phaân taàng, moãi taàng seõ chòu traùch nhieäm cung caáp dòch vuï cho taàng beân treân vaø ñoàng thôøi noù cuõng söû duïng dòch vuï cuûa taàng beân döôùi cung caáp cho noù. Nhö theá moät ngöôøi laøm vieäc ôû taàng naøo hoï chæ quan taâm ñeán caùc taàng coù quan heä tröïc tieáp vôùi mình. Trong moâ hình naøy moãi lôùp n + 1 söû duïng dòch vuï cuûa lôùp n, caû hai host A vaø host B phaûi coù cuøng choàng giao thöùc(protocol stack). Layer N Layer N Layer N - 1 Layer N - 1 Host A Host B Protocol layer N Protocol layer N - 1 Layer 2 Layer 2 Layer 1 Layer 1 Protocol layer 2 Protocol layer 1 Hình 9 Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Caùc Khaùi Nieäm Cô Baûn Veà Heä Thoáng Maïng www.diachiweb.com - Trang 44 1.2 Moâ hình OSI YÙ nghóa caùc taàng : Physical Layer ÔÛ lôùp naøy thoâng tin ñöôïc truyeàn döôùi daïng bit thoâng qua keânh truyeàn. Vaø nhaän caùc bit chuyeån leân cho lôùp datalink. Datalink Layer Lôùp naøy coù nhieäm vuï chia nhoû döõ lieäu töø lôùp network ñöa xuoáng thaønh caùc frame, moãi frame coù dung löôïng töø vaøi traêm byte ñeán vaøi ngaøn byte. Caùc frame ñöôïc truyeàn ñi baèng caùch chuyeån xuoáng cho lôùp physical. Nhieäm vuï thöù hai laø toå chöùc nhaän caùc frame sao cho ñuùng thöù töï, cung caáp khaû naêng truyeàn khoâng loãi treân ñöôøng truyeàn vaät lyù cho caùc lôùp cao hôn. Vaán ñeà ñaët ra ôû ñaây laø phaûi xaùc ñònh cô cheá ñeå xaùc nhaän moät frame coù truyeàn thaønh coâng hay khoâng (Acknowladge Framje), xöû lyù nhieåu (truyeàn laïi). Network layer Lôùp naøy ñònh höôùng cho goùi döõ lieäu (package) ñi töø maùy gôûi ñeán maùy nhaän. Phaûi giaûi quyeát vaán ñeà ñònh tuyeán (routing), vaán ñeà ñòa chæ (addressing), löôïng giaù chi phí (accouting), vaø giaûi quyeát ñuïng ñoä (collision). Transport layer Lôùp naøy coù nhieäm vuï chia nhoû goùi döõ lieäu ñöôïc ñöa xuoáng töø lôùp beân treân thaønh nhöõng ñôn vò nhoû hôn ñeå truyeàn qua maïng, vôùi söï ñaûm baûo laø döõ lieäu ñeán nôi moät caùch chính xaùc. Lôùp naøy cung caáp cho caùc lôùp beân treân phöông tieän ñeå truyeàn caùc message ñoäc laäp vôùi caùc lôùp beân döôùi. Application Layer Presentation Layer Datalink Layer Session Layer Transport Layer Network Layer Physical Layer Application Layer Presentation Layer Datalink Layer Session Layer Transport Layer Network Layer Physical Layer Host A Host B Hình 10: Moâ hình OSI Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Caùc Khaùi Nieäm Cô Baûn Veà Heä Thoáng Maïng www.diachiweb.com - Trang 45 Session player Session layer ñieàu khieån quaù trình giao tieáp giöõa hai tieán trình treân hai maùy, taïo vaø keát thuùc keát noái giöõa caùc quaù trình treân caùc maùy khaùc nhau. Presentation layer Lôùp naøy bieåu dieãn nhöõng thoâng tin ñöôïc truyeàn (ñöôïc hieåu laø cuù phaùp vaø ngöõ nghóa), noù ñoàng nhaát caùc thoâng tin giöõa caùc caùc heä thoáng khaùc nhau. Ngoaøi ra coù coøn cung caáp dòch vuï thao taùc treân döõ lieäu nhö neùn, maõ hoùa(compression & cryptography). Application layer Ñaây laø lôùp cung vaáp dòch vuï cho ngöôøi söû duïng (end user), öùng vôùi moãi dòch vuï (coøn ñöôïc goïi laø öùng duïng) coù 1 protocol khaùc nhau. Ví duï: FTP(truyeàn nhaän file), HTTP, E-mai, v.v.. 1.3 Moâ hìnhTCP/IP Chuùng ta ñaõ khaûo saùt moâ hình OSI 7 lôùp, moâ hình naøy chæ laø moâ hình tham khaûo, vieäc aùp duïng moâ hình naøy vaøo thöïc teá laø khoù coù theå thöïc hieän (hieäu suaát keùm vì döõ lieäu khi truyeàn töø maùy naøy sang maùy kia trong maïng thì phaûi traûi qua taát caû caùc lôùp cuûa moâ hình OSI ôû caû 2 maùy), noù chæ laø tieâu chuaån ñeå caùc nhaø phaùt trieån döïa theo ñoù maø phaùt trieån caùc moâ hình khaùc toái öu hôn. Coù raát nhieàu caùc moâ hình khaùc nhau, hieän nay moâ hình TCP/IP ñöôïc söû duïng phoå bieán nhaát. Boä protocol TCP/IP bao goàm: - TCP(Transmission Control Protocol): ñaây laø loaïi protocol coù caàu noái (connection oriented) cung caáp khaû naêng truyeàn doøng döõ lieäu khoâng loãi, 2 chieàu (full duplex)cho caùc quaù trình cho ngöôøi söû duïng. - UDP(User Datagram Protocol): loaïi protocol khoâng thieát laäp caàu noái (connectionless) cho caùc quaù trình cuûa user. Khoâng gioáng nhö TCP, noù khoâng ñaûm baûo döõ lieäu khi truyeàn ñi coù ñeán nôi chính xaùc hay khoâng. Application Presentation Physical Datalink Network Sesstion Transport OSI 7 6 3 4 2 5 1 Application Transport Internet Host-to-network TCP/IP Hình 11: Moâ hình TCP/IP Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Caùc Khaùi Nieäm Cô Baûn Veà Heä Thoáng Maïng www.diachiweb.com - Trang 46 - ICMP (Internet Control Message Protocol): protocol xöû lyù loãi vaø ñieàu khieån thoâng tin giöõa caùc gateway vaø caùc host. - IP(Internet Protocol): IP laø protocol cung caáp dòch vuï phaân phoái caùc package cho TCP, UDP vaø ICMP. - ARP (Address Resolution Protocol): Protocol aùnh xaï 1 ñòa chæ internet thaønh ñòa chæ phaàn cöùng(MAC address). - RAPR(Address Resolution Protocol): Protocol aùnh xaï moät ñòa chæ phaàn cöùng thaønh ñòa chæ IP. Moâ hình TCP/IP ñöôïc phaân ra thaønh 4 lôùp, trong ñoù 2 lôùp döôùi (1 vaø 2)cuûa moâ hình OSI ñöôïc goäp laïi thaønh 1 lôùp goïi laø Host-to-network; 2 lôùp Session vaø Presentation cuûa OSI khoâng coù trong moâ hình giao thöùc TCP/IP. Töông töï nhö moâ hình OSI, trong moâ hình TCP/IP, döõ lieäu töø 1 maùy cuõng ñi töø lôùp Application xuoáng Transport, roài xuoáng tieáp lôùp Internet, sau cuøng ñi tôùi lôùp Host-to-network, thoâng qua ñöôøng daây vaät lyù ñeán 1 maùy khaùc trong maïng : döõ lieäu ôû ñaây seõ ñi ngöôïc töø döôùi leân. Cuõng gioáng nhö moâ hình OSI, ôû ñaây, giöõa caùc lôùp cuûa 2 maùy giao tieáp vôùi nhau thoâng qua moät protocol; giöõa lôùp naøy vôùi lôùp khaùc trong cuøng moät maùy goïi laø Interface. Lôùp beân döôùi cung caáp caùc dòch vuï cho lôùp treân. Host-to-network Keát noái host vôùi network sao cho chuùng coù theå chuyeån caùc message tôùi caùc ñòa chæ ñích, lôùp naøy gaàn gioáng vôùi lôùp physical trong moâ hình OSI. Internet layer Ñaây laø lôùp thöïc hieän moät heä thoáng maïng coù khaû naêng chuyeån maïch caùc goùi döõ lieäu döïa treân moät lôùp maïng Connectionless(khoâng caàu noái) hay Connection – Oriented (coù caàu noái) tuøy vaøo loaïi dòch vuï maø ngöôøi ta duøng moät trong 2 caùch treân. Nhieäm vuï cuûa lôùp naøy laø ñaûm baûo cho caùc host chuyeån caùc package vaøo baát kì heä thoáng maïng naøo vaø chuyeån chuùng ñeán ñích maø khoâng phuï thuoäc vaøo vò trí cuûa ñích ñeán. Trong moâ hình TCP/IP ngöôøi ta ñöa ra khaùi nieäm ñòa chæ IP ñeå ñònh ñòa chæ cho caùc host treân maïng(xem phaàn ñòa chæ IP). Transport layer Lôùp transport ñöôïc thieát keá ñeå cho caùc phaàn töû ngang caáp ôû lôùp host coù theå ñoái thoaïi vôùi nhau. Hai protocol chính laø : - TCP: laø moät Connection Oriented Protocol, cho pheùp chuyeån moät chuoãi byte töø host naøy sang host kia maø khoâng coù loãi (duøng cô cheá phaân chia döõ lieäu ra thaønh caùc goùi nhoû(package) ôû maùy nguoàn vaø gom laïi ôû maùy ñích). - UDP: laø moät connectionless Protocol ñöôïc xaây döïng cho caùc öùng duïng khoâng muoán söû duïng caùch truyeàn theo moät thöù töï cuûa TCP maø muoán töï mình thöïc hieän ñieàu ñoù (tuøy theo muïc ñích cuûa öùng duïng maø ngöôøi ta duøng UDP hay khoâng). Khaùi nieäm veà port: Luaän vaên: Internet Relay Chat Protocol tìm hieåu vaø öùng duïngChöông I: Caùc Khaùi Nieäm Cô Baûn Veà Heä Thoáng Maïng www.diachiweb.com - Trang 47 Moät maùy coù theå lieân laïc vôùi moät maùy khaùc trong maïng qua ñòa chæ IP. Tuy nhieân, vôùi ñòa chæ nhö vaäy khoâng ñuû cho moät process cuûa maùy lieân laïc vôùi moät process cuûa maùy khaùc. Vaø vì vaäy TCP/UDP ñaõ duøng soá nguyeân (16 bit) ñeå ñaët taû neân soá hieäu port. Nhö vaäy, ñeå hai process cuûa hai maùy baát kyø trong maïng coù theå giao tieáp ñöôïc vôùi nhau thì moãi frame ôû caáp Network coù IP goàm : + Protocol (TCP/UDP). + Ñòa chæ IP cuûa maùy gôûi. + Soá hieäu port cuûa maùy gôûi. + Ñòa chæ IP cuûa maùy ñích + Soá hieäu port cuûa process ôû maùy ñích. Ví duï:{TCP,127.28.11.83,6000,127.28.11.241,7000}; Application layer(process layer) Chöùa caùc dòch vuï nhö trong caùc lôùp Session, Presentaion, Application cuûa moâ hình OSI, ví duï: Telnet(Terminel Acesss) cho pheùp user thaâm nhaäp vaøo moät host ôû xa vaø laøm vieäc ôû ñoù nhö ñang laøm vieäc treân maùy local(cuïc boä), FPT (File Transfer Protocol) laø coâng cuï giuùp cho chuùng ta chuyeån caùc file cho nhau, SMTP(Simple Mail Transfer Protocol) cuõng laø moät daïng cuûa FTP nhöng noù ñaëc ñieåm rieâng, DNS(Domain Name Service) duøng ñeå aùnh xaï teân host thaønh ñòa chæ IP vaø ngöôïc laïi. 2. Giao Thöùc TCP vaø UDP 2.1 Giao Thöùc UDP UDP laø phöông thöùc truyeàn döõ lieäu theo phöông phaùp khoâng höôùng keát noái (connectionless). Khi truyeàn noù khoâng caàn thieát laäp caàu noái giöõa maùy gôûi vaø maùy nhaän, söû duïng cô cheá UDP ngöôøi ta giaû ñònh raèng ôû maùy nhaän luoân saún saøn ñoùn nhaän döõ lieäu gôûi ñeán. Neáu döõ lieäu gôûi ñeán bò loãi trong quaù trình truyeàn hay khoâng nhaän ñöôïc ñaày ñuû, UDP cuõng khoâng coù thoâng tin phaûn hoài laïi cho maùy gôûi. Tuy nhieân UDP khoâng ñoøi hoøi nhieàu taøi nguyeân cuûa heä thoáng vaø thieát keá chöông trình öùng duïng ñôn giaûn. UDP thöôøng ñöôïc duøng trong nhöõng öùng duïng khoâng ñoøi hoûi ñoä chính xaùc cao ví duï: dòch vuï thoâng baùo giôø, tæ giaù, hay dòch vuï nhaén tin vaø duøng cho vieäc truyeàn taûi nhöõng file coù kích thöôùc lôùn nhö hình aûnh, aâm thanh, vv. Chính vì nhöõng öu ñieåm ñoù nhöõng nhaø laäp trình vaãn söû duïng UDP cho öùng duïng cuûa hoï, khi ñoù ngöôøi ta duøng nhieàu caùch ñeå xaùc nhaän cho goùi döõ

Các file đính kèm theo tài liệu này:

  • pdfluan van irc .pdf