Tài liệu Kiến thức mạng cơ bản

pdf 104 trang hapham 1810
Bạn đang xem 20 trang mẫu của tài liệu "Tài liệu Kiến thức mạng cơ bản", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdftai_lieu_kien_thuc_mang_co_ban.pdf

Nội dung text: Tài liệu Kiến thức mạng cơ bản

  1. KI N TH C M NG C B N 0
  2. CH Ư NG I. MNG MÁY TÍNH I. M ng máy tính 5 II. Phân lo i m ng máy tính 6 II.1. Phân lo i theo ki n trúc (topology) c a m ng 6 II.1.1. M ng im-im (point-to-point network) 6 II.1.2. M ng qu ng bá (broadcast network) 7 II.2. Phân lo i theo ph ng th c chuy n m ch (Swiched Method) 7 II.2.1. Chuy n m ch kênh (Circuit Swiched Network) 7 II.2.2. Chuy n m ch tin báo (Message Swiched Network) 8 II.2.3. Chuy n m ch gói (Packed Swiched Network) 8 II.3. Phân lo i theo ph m vi ho t ng 8 II.3.1. M ng LAN (Local Area Network) 8 II.3.2. M ng MAN (Metropolian Area Network) 8 II.3.3. M ng WAN (Wide Area Network) 8 II.3.4. Liên m ng (internet) 8 CH Ư NG II. GIAO TH C TRUY N THÔNG VÀ CÁC MÔ HÌNH THAM CHI U I. Giao th c truy n thông 11 II. Mô hình tham chi u OSI 12 II.1. Gi i thi u mô hình OSI 12 II.2. Các t ng c a mô hình OSI 14 II.2.1. T ng v t lý (Physical layer) 14 II.2.2. T ng liên k t d li u (Data link layer) 14 II.2.3. T ng m ng (Network layer) 15 II.2.4. T ng giao v n (Transport layer) 15 II.2.5. T ng phiên (Session layer) 16 II.2.6. T ng trình di n (Presentation layer) 16 II.2.7. T ng ng d ng (Application layer) 16 II.3. Nh ng v n v OSI 16 III. Ki n trúc giao th c IPX/SPX 17 III.1. Ki n trúc giao th c IPX/SPX 17 III.2. Gói tin IPX 18 III.3. C ch ho t ng c a Novell Netware 19 CH Ư NG III. B GIAO TH C TCP/IP I. B giao th c TCP/IP 20 II. Ki n trúc c a b giao th c TCP/IP 21 1
  3. II.1. Ki n trúc phân t ng c a TCP/IP 21 II.2. C ch a ch Internet 24 II.2.1. a ch l p A 25 II.2.2. a ch l p B 26 II.2.3. a ch l p C 26 II.3. M ng con và Subnet mask 26 III. T ng m ng (Network Layer) 29 IV. T ng Internet (Internet Layer) 30 IV.1. Gói tin IP 31 IV.2. Giao th c chuy n a ch ARP (Address Resolution Protocol) và c giao thc chuy n ng c a ch RARP (Reverse Address Resolution Protocol) 34 IV.2.1. Chuy n giao tr c ti p 34 IV.2.2. Chuy n giao a ch ng 34 IV.2.3. Gói tin ARP 35 IV.3. Giao th c iu khi n truy n tin (Internet Control Message Protocol - ICMP) 37 IV.3.1. Gói tin ICMP 37 IV.3.2. iu khi n dòng d li u 38 IV.3.3. Thông báo l i 38 IV.3.4. nh h ng l i 38 IV.3.5. Ki m tra tr m làm vi c 39 IV.4. Thu t toán d n ng 39 V. t ng giao v n 43 V.1. Giao th c không k t n i (User Datagram Protocol - UDP) 43 V.1.1. Gói thông tin UDP 43 V.1.2. Phân kênh, h p kênh và Ports 44 V.2. Giao th c iu khi n truy n tin (Transmission Control Protocol - TCP) 46 V.2.1. Gói tin TCP 49 V.2.2. C ng, k t n i và im k t n i 49 VI. T ng ng d ng c a TCP/IP 51 VI.1. D ch v tên mi n (Domain Name Service - DNS) 51 VI.2. ng nh p t xa (Telnet) 53 VI.3. Th in t (Electronic Mail) 54 VI.4. Giao th c truy n t p (File Transfer Protocol - FTP) 56 VI.5. Nhóm tin (News groups) 57 VI.6. Tìm ki m t p (Archie) 57 VI.7. Tra c u thông tin theo th c n (Gopher) 57 VI.8. Tìm ki m thông tin theo ch s (WAIS) 57 VI.9. Siêu v n b n (WWW) 58 2
  4. CH Ư NG IV. XÂY D NG CH Ư NG TRÌNH TRUY N T P I. Giao di n l p trình 59 I.1. Giao di n lp trình 59 I.2. Network I/O và file I/O 60 I.3. Làm vi c v i Socket 61 I.3.1. Socket 61 I.3.2. a ch Socket 62 I.3.3. M t s l i g i t o l p socket 64 I.3.4. M t s l i g i gi d li u qua socket 68 I.3.5. M t s l i g i nh n d li u t socket 69 II. Mô hình Client-Server 70 II.1. Mô hình Client-Server s d ng d ch v không k t n i 71 II.2. Mô hình Client-Server s d ng d ch v h ng k t n i 72 III. Xây d ng ch ng trình truy n t p 73 III.1. Thi t k và cài t ch ng trình 73 III.1.1. Giao th c ng d ng c xây d ng và s d ng trong ch ng trình 73 III.1.2. Cài t ch ng trình 75 III.2. M t s v n n y sinh trong quá trình th c hi n và cách gi i quy t78 III.2.1. V n chuy n i t p gi a hai h iu hành. 78 III.2.2. V n v m t s l nh t ng tác 80 Ph l c A. M T S MNG C C B I. M ng Ethernet và IEEE 802.3 82 II. M ng Token-Pasing Rings (IEEE 802.5) 82 III. Mng Token-Passing Busses (IEEE 802.4) 84 Ph l c B. M T S K THU T CH N ƯNG I NG N NH T I. Gi i thu t Dijkstra cho vi c ch n ng t p trung 86 II. Gi i thu t Ford& Fulkerson cho vic ch n ng phân tán 87 Ph l c C. VN B N CH Ư NG TRÌNH (PH N CLIENT) I. Ch ng trình chính (main.c) 89 3
  5. II. Th vi n s d ng (Socket.c) 96 4
  6.                 CH Ư NG I . MNG MÁY TÍNH I. MNG MÁY TÍNH 5
  7. Mng máy tính là h th ng các máy tính c l p (autonomous) c k t n i vi nhau. Khái ni m c l p ây có ngh a là chúng không có m i quan h ch /t (master/slave) rõ ràng. Hai máy tính c g i là c k t n i v i nhau nu chúng có kh n ng trao i thông tin. S k t n i có th thông qua dây dn, tia laser, sóng in t hay v tinh vi n thông Vi c k t n i các máy tính có nh ng u im sau S d ng chung tài nguyên (resource sharing): Ch ng trình, d li u, thi t b có th c dùng chung b i ng i dùng t các máy tính trên m ng. Tng tin c y c a h th ng thông tin (reliability): N u m t máy tính hay m t n v d li u nào ó b h ng thì luôn có th s d ng m t máy tính khác hay m t b n sao khác c a d li u, nh ó, kh n ng m ng b ng ng s d ng c gi m thi u. To ra môi tr ưng truy n thông m nh gi a nhi u ng ưi s d ng trên ph m vi a lý r ng : M c tiêu này ngày càng tr nên quan tr ng nh t là khi m ng máy tính ã phát tri n trên ph m vi toàn c u nh ngày nay. Ti t ki m chi phí: Do tài nguyên c dùng chung, h th ng tin c y h n nên chi phí thi t b và b o d ng c a m ng máy tính th p h n so v i tr ng h p máy tính riêng l . II. PHÂN LO I M NG MÁY TÍNH II.1. Phân lo i theo ki n trúc (topology) c a m ng Phân lo i theo ki n trúc là cách phân lo i m ng máy tính theo cách k t n i các máy tính trong m ng II.1.1. Mng im-im (point-to-point network) Các ng truy n n i các c p nút v i nhau, m i nút có trách nhi m l u tr tm th i sau ó chuy n ti p d li u t i ích. Cách làm vi c này còn g i là l u và chuy n ti p (store-and-forward). M ng im-im c n s d ng l ng cáp ni l n ho c nhi u ng in tho i thuê riêng (leased telephone lines), m i 6
  8. ng ni m t c p im làm vi c. N u 2 im làm vi c mu n g i thông tin cho nhau mà không có ng truy n tr c ti p, d li u c a chúng c n c truy n qua m t s nút khác do ó, thu t toán d n ng có vai trò r t quan tr ng trong ki n trúc m ng im-im. Star Ring Tree II.1.2. Mng qu ng bá (broadcast network) Tt c các nút cùng dùng chung m t ng truy n v t lý. D li u c ti p nh n b i t t c các máy tính, n u máy tính nào ki m tra th y gói tin c g i cho mình, nó s gi l i và x lý. Các m ng qu ng bá th ng cho phép s dng a ch broadcasting g i thông báo t i toàn m ng. Bus Satellite Ring II.2. Phân lo i theo ph ư ng th c chuy n m ch (Swiched Method) II.2.1. Chuy n m ch kênh (Circuit Swiched Network) Thông tin truy n qua m t kênh v t lý c nh, t c và tin c y cao nh ng lãng phí ng truy n do không s d ng h t. 7
  9. II.2.2. Chuy n m ch tin báo (Message Swiched Network) Liên l c c thi t l p khi có thông tin c n truy n, thông tin c nh d ng gm header và data và có dài không c nh: Mi liên l c c thi t l p và ch gi i phóng khi truy n xong d li u do ó không qu n lý c th i gian chi m ng truy n II.2.3. Chuy n m ch gói (Packed Swiched Network) Thông tin c c t ra thành các gói có dài quy nh Ví d Erthenet IEEE 802.3 chia message thành các gói 1500 bytes. M i gói u có header và data. Các gói c a các message khác nhau có th truy n xen k trên ng truy n do ó th i gian ch i chung c a h th ng gi m. II.3. Phân lo i theo ph m vi ho t ng Theo ph m vi ho t ng, ng i ta chia mng máy tính thành nh ng lo i sau II.3.1. Mng LAN (Local Area Network) Th ng là m ng c s d ng cho m t công ty, tr ng h c hay trong m t toà nhà, kho ng cách t ng i nh (c vài tr m m t i vài Km) t c truy n l n, tr nh . (Ph ụ l ục A trình bày m ột s ố mạng c ục b ộ th ường được s ử d ụng ) II.3.2. Mng MAN (Metropolian Area Network) Mng c cài t trong ph m vi m t ô th hay trung tâm kinh t - xã h i (có bán kính kho ng 100 Km) II.3.3. Mng WAN (Wide Area Network) Mng di n r ng có th bao trùm m t vùng r ng l n c qu c gia hay l c a. II.3.4. Liên m ng (internet) Ph n l n các m ng c c b u c l p v i nhau v ph n c ng c ng nh ph n mm, chúng c thi t l p nh m m c ích ph c v nh ng nhóm ng i c th 8
  10. nào ó. Trong m i m ng ó, ng i dùng t l a ch n m t công ngh ph n cng phù h p v i công vi c c a h . M t iu quan tr ng n a là không th xây dng m t m ng chung d a trên m t công ngh s d ng trên m t m ng n l nào ó b i vì không có công ngh m ng nào có th tho mãn nhu c u cho t t c m i ng i. M t s ng i có nhu c u s d ng ng n i cao t c truy n d li u c a mình trong khi các m ng LAN không th m r ng ph m vi ho t ng quá xa. M t s m ng t c ch m l i có th k t n i máy tính t i hàng ngàn d m Liên m ng máy tính (internetworking hay internet) là m t công ngh c a ra nh m k t n i các m ng thành m t th th ng nh t. Công ngh internet che d u i ki n trúc v t lý c a m ng và cho phép máy tính truy n thông m t cách c l p v i liên k t v t lý c a m ng. M t liên m ng ã khá quen thu c vi chúng ta là m ng Internet Gi i thi u m ng Internet Internet là m t t h p hàng tri u máy c k t n i v i nhau thông qua các thi t b ghép n i th ng g i là gateway có th chia s thông tin v i nhau, trong ó có lo i máy tính, và chúng s d ng nhi u h iu hành khác nhau. Thông tin trên Internet g m lo i t th iu t , các file ho n video và còn nhi u th khác c cung c p b i nh ng ng i s d ng Internet b ng nhi u ph ng th c, v i nhi u t t ng khác nhau. Quy mô c a Internet Có bao nhiêu máy c k t n i vào Internet? Con s c th luôn luôn thay i, nh ng a ch m i luôn luôn c c p nh t t ng giây chúng ta có th truy nh p a ch Web site c a t ch c Network Wizards bi t nh ng s li u m i nh t Th i gian S l ng máy Tháng 1 n m 1996 14,252,000 Tháng 1 n m 1997 21,819,000 9
  11. Tháng 1 n m 1998 29,670,000 Nh ng máy ch (host) m nh th ng s d ng nh ng h iu hành a nhi m, ví d nh UNIX, ng i s d ng k t n i vào, nh th có ngh a là s máy ca ng i s d ng m ng nhi u h n nh ng con s trên. Nh ng máy ch c nh v t i các im nh th vi n, các tr ng i h c, các t ch c chính ph , các i lý, các công ty, các tr ng trung h c, ti u h c trên toàn th gi i. Nh ng máy ch này c k t n i v i nhau qua ng in tho i và ch m t kho ng 640/1000 giây b t u nh n thông báo t B c M t i Nam c c. Các d ch v mà Internet cung c p Ph n l n ng i s d ng Internet không c n bi t n c a công ngh s d ng trên Internet, i v i h Internet ch n gi n là m t b ch ng trình ph n mm mang l i cho h nh ng kh n ng truy n thông có ích. Chính iu này mang l i cho Internet s ng i dùng ông o t i nh v y. Các d ch v m c ng d ng ban u trên Internet Th in t ( Electronic mail ) Cho phép ng i dùng ngi tr c máy tính ti nhà mình g i E-mail t i b t c ai âu trên th gi i n u h có a ch E-mail. H có th tham gia các nhóm th o lu n ( discussion group ) v nh ng tài khác nhau hay b t u m t nhóm m i v nh ng ch mà h a thích. Truy n file ( File Transfer ) N u c n m t ch ng trình ph n m m m i nh các ti n ích nén file, các ch ng trình di t virus, m t ph n m m trò ch i, hình nh hay âm thanh, ng i dùng có th t i xu ng b t c lúc nào v i File Transfer. Truy nh p t xa ( Remote login ) Có l iu thú v nh t trong các ng d ng ca Internet là Remote login, nó cho phép ng i dùng k t n i vào m t máy tính xa nh m t tr m cu i s d ng máy tính ó. Dch v m c m ng c a Internet 10
  12. Mt l p trình viên vi t ch ng trình ng d ng trên Internet c n có m t cái nhìn khác v i ng i ch n gi n s d ng d ch v Internet. t ng m ng, Internet cung c p 2 ki u d ch v mà các ng d ng c a Internet th ng dùng ó là Dch v truy n không k t n i ( Connectionless Paket Delivery Service ) là mt ph ng th c truy n d li u mà các m ng chuy n m ch gói cung c p. iu này ch n gi n là m ng Internet chuy n các gói tin t máy này sang máy khác d a vào thông tin a ch c a gói n ích c a nó. Vi c chia nh gói tin truy n này có m t l i im là n u m t ng i b b n ho c b t, thì các gói có th c truy n theo m t ng khác. Dch v truy n tin c y ( Reliable Stream Transport Service ) Ph n l n các ng d ng òi h i nhi u d ch v h n ch truy n thông không k t n i b i vì chúng c n t ng sa l i, ki m tra tính toàn v n c a thông tin truy n i trên m ng. Reliable Stream Transport Service gi i quy t v n này cho ta.  CH Ư NG II . GIAO TH C TRUY N THÔNG VÀ CÁC MÔ HÌNH THAM CHI U I. GIAO TH C TRUY N THÔNG các máy tính trên m ng có th trao i thông tin v i nhau, chúng c n có mt b nh ng ph n m m cùng làm vi c theo m t chu n nào ó. Giao th c truy n thông (protocol) là t p quy t c quy nh ph ng th c truy n nh n thông tin gi a các máy tính trên m ng. 11
  13. Các m ng máy tính hi n i c thit k b ng cách phân chia c u trúc m c cao nh m làm gi m s ph c t p khi thi t k . Các giao th c m ng th ng c chia làm các t ng (layer), m i t ng c xây d ng d a trên d ch v ca t ng d i nó và cung c p d ch v cho t ng cao h n. II. MÔ HÌNH THAM CHI U OSI II.1. Gi i thi u mô hình OSI Mô hình m ng máy tính do t ch c tiêu chu n hoá qu c t (International Standard Organization - ISO) a ra n m 1983 c g i là mô hình tham chi u các h th ng m (Open Systems Interconect referent model - OSI). Các iu kho n mô t trong mô hình c s d ng r ng rãi trong lý thuy t truy n thông, do ó, trong th c t khó có th nói v truy n thông mà không s dng thu t ng c a OSI. Mô hình tham chi u OSI ch a 7 t ng mô t ch c n ng c a giao th c truy n thông. M i tng c a mô hình OSI miêu t m t ch c n ng c th c hi n khi d li u di chuy n gi a các ng d ng gi a các m ng. Tng ng d ng bao g m các trình ng d ng s d ng m ng. Tng trình di n tiêu chu n hoá d li u cung c p cho t ng ng d ng. Tng phiên qu n tr các phiên làm vi c gi a các ng d ng. Tng giao v n cung c p k t n i tr m-tr m, x lý l i. Tng m ng qu n tr vi c k t n i qua m ng cho các t ng trên. Tng liên k t d li u cung c p phân phát d li u tin c y qua ng truy n v t lý. Tng v t lý nh rõ các c thù c a thi t b m ng. Các l p giao th c c x p ch ng l p n trên l p kia. Chính s xu t hi n c a nó, c u trúc th ng c g i là stack ho c giao th c x p ch ng. 12
  14. Vi c phân t ng c a OSI tuân theo m t s nguyên t c sau Mt l p c t o ra khi cn n m c tr u t ng hoá t ng ng. Mi l p c n th c hi n các ch c n ng c nh ngh a rõ ràng. Vi c ch n ch c n ng cho m i l p c n chú ý t i vi c nh ngh a các quy tc chu n hoá qu c t . Ranh gi i các m c c n ch n sao cho thông tin i qua là ít nh t (tham s cho ch ng trình con là ít). S m c ph i l n các ch c n ng tách bi t không n m trong cùng mt l p và nh mô hình không quá ph c t p. M t m c có th c phân thành các l p nh n u c n thi t. Các m c con có th l i b lo i b . Hai h th ng khác nhau có th truy n thông v i nhau n u chúng b o m nh ng nguyên t c chung (cài t cùng m t giao th c truy n thông). Các ch c nng c t ch c thành m t t p các t ng ng m c cung c p ch c n ng nh nhau. Các t ng ng m c ph i s d ng m t giao th c chung. Mt t ng không nh ngh a m t giao th c n, nó nh ngh a m t ch c n ng truy n thông có th c thi hành b i m t s giao th c. Do v y, m i t ng có th ch a nhi u giao th c, m i giao th c cung c p m t d ch v phù h p cho ch c nng c a t ng. Ví d c giao th c truy n file (File Transfer Protocol - FTP) và giao th c th in t (Simple Mail Transfer Protocol - SMTP) u cung c p d ch v cho ng i dùng và c hai u thu c t ng ng d ng. M i mc ngang hàng giao th c truy n thông (s b xung c a các giao th c cùng mc t ng ng trên h th ng khác). M i m c ph i c chu n hoá giao ti p v i m c t ng ng v i nó. Trên lý thuy t, giao th c ch bi t n nh ng gì liên quan t i l p c a nó mà không quan tâm t i m c trên ho c di ca nó. Tuy nhiên ph i có s tho thu n chuy n d li u gi a các t ng trên mt máy tính, b i m i t ng l i liên quan t i vi c g i d li u t ng d ng t i 13
  15. mt ng d ng t ng ng trên m t máy khác. T ng cao h n d a vào t ng th p h n chuy n d li u qua m ng phía d i. D li u chuy n xu ng ng n x p t t ng này xu ng t ng th p h n cho t i khi c truy n qua m ng nh giao th c c a t ng v t lý. u nh n, d li u i lên ng n x p t i ng dng nh n. Nh ng t ng riêng l không c n bi t các t ng trên và d i nó x lý ra sao, nó ch c n bi t cách chuy n nh n thông tin t các t ng ó. S cô l p các hàm truy n thông trên các t ng khác nhau gi m thi u s tích h p công ngh c a u vào m i b giao th c. Các ng d ng m i có th thêm vào mà không c n thay i t ng v t lý c a m ng, ph n c ng có th c b sung mà không c n vi t l i các ph n m m ng d ng. II.2. Các t ng c a mô hình OSI II.2.1. Tng v t lý (Physical layer) Tng v t lý liên quan t i vi c truy n dòng bit gi a các máy b ng kênh truy n thông v t lý, ây, c u trúc c a d li u không c quan tâm n. Vi c thi t k t ng v t lý c n quan tâm n các v n v ghép n i c khí, in t , th t c và môi tr ng truy n tin bên d i nó ví d m c in áp t ng ng v i bit 0 - 1, th i gian t n t i c a xung II.2.2. Tng liên k t d li u (Data link layer) Liên k t, thi t l p, duy trì, hu b các liên k t d li u là nhi m v c a t ng data link. Ngoài ra t ng data link còn ki m soát l i ng truy n, thông l ng. Tng này th c hi n vi c óng gói thông tin g i thành các frame, g i các frame m t cách tu n t i trên m ng, x lý các thông báo xác nh n (Acknowledgement frame) do bên nh n g i v . Xác nh ranh gi i gi a các frame b ng cách ghi m t s byte c bi t vào u và cu i frame. Gi i quy t 14
  16. vn thông l ng truy n gi a bên g i và bên nh n (V n này có th c gi i quy t b i m t s l p trên). II.2.3. Tng m ng (Network layer) Vn ch ch t c a t ng m ng là d n ng, nh rõ các gói tin (packet) c truy n theo nh ng con ng nào t ngu n n ích. Các con ng này có th c nh, ít b thay i, c thi t l p khi b t u liên k t hay ng (dynamic) thay i tu theo tr ng thái t i c a m ng. Nu có nhi u gói tin truy n trên m ng có th x y ra tình tr ng t c ngh n, tng m ng ph i gi i quy t v n này. Th c hi n ch c n ng giao ti p v i các m ng bao g m vi c ánh l i a ch , ct h p gói tin cho phù h p v i các m ng. Ngoài ra t ng m ng còn th c hi n m t s ch c n ng k toán, ví d , m t s Firewall (packet filtering) c cài t trên t ng này th ng kê s l ng các gói tin truy n qua m ng hay ng n c m ho c cho phép các gói tin c a giao th c nào ó. II.2.4. Tng giao v n (Transport layer) Ki m soát vi c truy n tin t nút t i nut (end-to-end): B t u t t ng này, các th c th ã có th nói chuy n m t cách logic v i nhau. Th c hiên vi c ghép kênh và phân kênh: M i ng d ng có th g i d li u i theo nhi u con ng, m t ng truy n li có th c nhi u ng dng s d ng, phân kênh/h p kênh gi i quy t v n phân chia d li u cho các ng d ng. Kh c ph c sai sót trong quá trình truy n tin: Vi c kh c ph c sai sót c th c hi n trên nhi u t ng khác nhau, nh ng hi u qu nh t là các t ng cao, vi c kh c ph c sai sót làm t ng giao v n là h p lý nh t. 15
  17. II.2.5. Tng phiên (Session layer) Tng này cho phép ng i s d ng trên các máy khác nhau thi t l p, duy trì, hu b , ng b phiên truy n thông gi a h . Cung c p m t s d ch v hu ích cho ng i s d ng nh cho phép ng i dùng logon vào h th ng chia s th i gian, truy n t p gi a các máy tính. Qu n lý token: c ch th bài c t ng phiên cung c p tránh hi n tng tranh ch p ng truy n trên m ng. Th c hi n ng b (Synchronization): th c hi n i v i nh ng d li u l n bng cách thêm vào các thông tin ki m tra, s a l i. II.2.6. Tng trình di n (Presentation layer) Gi i quy t v n liên quan t i cú pháp và ng ngh a c a thông tin nh chuy n i thông tin theo m t chu n nào ó c c hai bên s d ng (mã ASCII - EDBCDIC). Nén/giãn d li u gi m s l ng bit truy n trên m ng. Mã hoá d li u th c hi n quy n truy c p. II.2.7. Tng ng d ng (Application layer) Tng ng d ng cung c p giao di n s d ng cho ng i dùng và môi tr ng truy n tin. Th c hi n ch c n ng chuy n file trong ó có gi i quy t v n không t ng thích nh cách t tên file hay các mã iu khi n trong m t t p v n bn Cung c p các d ch v Electronic mail, Remote login, Directory lookup II.3. Nh ng v n v OSI Bn thân OSI không ph i là m t ki n trúc m ng b i vì nó không ch ra chính xác các d ch v và các nghi th c c s d ng trong m i t ng. Mô hình này ch ra m i t ng c n th c hi n nhi m v gì. ISO ã a ra các tiêu chu n cho 16
  18. tng t ng, nh ng các tiêu chu n này không ph i là m t b ph n c a mô hình tham chi u. Mô hình OSI ra i sau khi các giao th c TCP/IP (TCP/IP s c trình bày ph n sau) ã c s d ng r ng rãi, nhi u công ty ã a ra các s n ph m TCP/IP, vì v y, mô hình OSI ch c s d ng trong thc t nh m t chu n v lý thuy t. Trong mô hình OSI, m t s ch c n ng nh iu khi n thông l ng, ki m tra li xu t hi n l p l i trong m t s t ng. iu này có nguyên nhân do mô hình OSI c chia làm các t ng khác nhau, m i t ng t ng ng v i m t i t ng c l p (có d li u và các ph ng th c riêng c a nó, c l p v i các i tng khác). Mô hình OSI không có các d ch v và giao th c không h ng k t n i m c dù hu h t các m ng u có s d ng. Mô hình quá ph c t p cho vi c cài t làm cho OSI khó có th ng d ng r ng rãi trên th c t . III. KI N TRÚC GIAO TH C IPX/SPX Mt h th ng m ng máy PC c s d ng ph bi n nh t trên th gi i trong th i gian v a qua là m ng Novell Netware. Nó c thi t k cho các công ty, chuy n t vi c s d ng máy tính l n (Mainframe) sang s d ng PC. M i PC làm ch c n ng khách hàng (client), m t s máy m nh ho t ng nh máy ph c v (Server), chúng cung c p các d ch v file, các d ch v CSDL và các dch v khác cho m t nhóm khách hàng. Nói cách khác, Novell Netware hot ng theo mô hình file-server. III.1. Ki n trúc giao th c IPX/SPX Application SAP File server Transport NCP SPX Network IPX Datalink Ethernet Token ring ARCnet Physical Ethernet Token ring ARCnet 17
  19. Novell Netware s d ng ch ng giao th c IPX/SPX d a trên m t h th ng mng c c a hãng Xerox-XNS TM nh ng có m t s thay i. Novell Netware ra i tr c OSI và không d a trên mô hình này. Tng v t lý và t ng Data link có th c ch n trong s nhi u chu n công nghi p khác nhau bao g m Ethernet, IBM token ring và ARCnet. Tng mng không nh h ng n i k t, không b o m (unreliable connectionless) có tên là IPX (Internet Packet eXchange). Nó chuy n các packet t ngu n t i ích m t cách trong su t v i ng i dùng ngay c khi ngu n và ích n m các m ng khác nhau. IPX s d ng a ch 12 byte. Tng giao v n: Giao th c NCP (Network Core Protocol) cung c p nhi u d ch v khác ngoài vi c v n chuy n d li u c a ng i s d ng, nó chính là trái tim c a Novell Netware. Giao th c th hai c a t ng này là SPX (Sequenced Packet eXchange). Nó ch th c hi n vi c v n chuy n. Các ng d ng có th l a ch n s d ng m t trong các giao th c c a t ng này ví d h th ng file s d ng NCP, Lotus Note s d ng SPX. Tng Application n m trên cùng, có nhi u giao th c khác nhau cung c p cho ng i s d ng các d ch v nh ã trình bày trên. III.2. Gói tin IPX im m u ch t c a ki n trúc IPX/SPX là gói tin IPX có c u trúc nh sau Offset Field Length (byte) 0 Checksum 2 2 Packet length 2 4 Transport control 1 5 Packet type 1 6 Destination Address 12 18
  20. 18 Source Address 12 30 ? Checksum: ít khi s d ng vì t ng Data link bên d i ã cung c p checksum Packet length: ch a chi u dài c a packet tính c header và data Packet type: ánh d u các packet iu khi n khác nhau. Destination Address: a ch ích c a gói tin. Source Address: a ch ngu n c a gói tin. Data: Chi m ph n cu i c a gói, có dài ph thu c vào tr ng paket length trên. III.3. C ch ho t ng c a Novell Netware C kho ng m i phút m t l n, m i server l i phát i (broadcast) m t packet, cho bi t a ch c a chính nó và các d ch v mà nó cung c p. Vi c này s dng giao th c SAP (Service Advertising Protocol). Các packet này c ti n trình d ch v (special agent process) ch y trên các máy router nh n và thu th p. Các agent s d ng thông tin ch a trong ó xây d ng CSDL v các server. Khi m t máy client kh i ng, nó phát m t request h i xem server g n nh t âu. Agent trên máy router a ph ng ti p nh n yêu c u này, ki m tra CSDL v server, l a ch n server phù h p g i l i thông tin cho client. T th i im ó, Client có th thi t l p k t n i NCP v i server và s d ng các d ch v ca server. Trong quá trình k t n i, client và server tho thu n v i nhau v chi u dài c c i c a d li u, trong quá trình s d ng, client có th tra c u CSDL c a server bi t thông tin c a các server khác. 19
  21.  CH Ư NG III. GIAO TH C TCP/IP I. GIAO TH C TCP/IP Vào cu i nh ng n m 1960 và u 1970, Trung tâm nghiên c u c p cao (Advanced Research Projects Agency - ARPA) thu c b qu c phòng M (Department of Defense - DoD) c giao trách nhi m phát tri n m ng ARPANET. M ng ARPANET bao g m m ng c a nh ng t ch c quân i, các tr ng i h c và các t ch c nghiên c u và c dùng h tr cho nh ng d án nghiên c u khoa h c và quân i (Ngày nay, ARPA c g i là DARPA). N m 1984, DoD chia ARPANET ra thành 2 ph n: ARPANET s dng cho nghiên c u khoa h c và MILNET s d ng cho quân i. u nh ng nm 1980, m t b giao th c m i c a ra làm giao th c chu n cho m ng ARPANET và các m ng c a DoD mang tên DARPA Internet protocol suit, th ng c g i là b giao th c TCP/IP hay còn g i t t là TCP/IP. Nm 1987 t ch c nghiên c u qu c gia Hoa K (National Science Foundation - NSF) tài tr cho vi c k t n i 6 trung tâm siêu tính trên toàn liên bang l i v i nhau thành m t m ng v i tên g i NSFNET. V m t v t lý, m ng này k t n i 13 im làm vi c b ng ng in tho i cao t c c g i là NSFNET backbone. Kho ng 8 ng backbone ã c xây d ng. NSFNET c m rng v i hàng ch c m ng a ph ng k t n i vào nó và k t n i vào m ng Internet c a DARPA. C NSFNET và các m ng con c a nó u s d ng b giao th c TCP/IP. TCP/IP có m t s ưu im nh ư sau: Giao th c chu n m s n sàng phát tri n c l p v i ph n c ng và h iu hành. TCP/IP là giao th c lý t ng cho vi c h p nh t ph n c ng và ph n mm khác nhau, ngay c khi truy n thông trên Internet. S c l p rành mch v i ph n c ng v t lý c a m ng cho phép TCP/IP h p nh t các m ng khác nhau. TCP/IP có th ch y trên m ng Ethernet, m ng Token ring, 20
  22. mng quay s (Dial-up line), m ng X.25, m ng o và m i lo i môi tr ng vt lý truy n thông. Mt s a ch dùng chung cho phép m i thi t b TCP/IP có duy nh t mt a ch trên m ng ngay c khi ó là m ng toàn c u Internet. Tiêu chu n hoá m c cao c a giao th c phù h p v i ích l i c a d ch v ng i dùng. c tích h p vào h iu hành UNIX, H tr mô hình client-server, mô hình m ng bình ng, H tr k thu t d n ng ng. DARPA h tr vi c nghiên c u k t n i nhi u lo i m ng khác nhau l i thành mt m ng toàn c u Internet. Ngoài vi c s d ng cho t t c các máy trên Internet, TCP/IP còn c s d ng trong m ng n i b c a m t s t ch c chính ph ho c th ng m i, nh ng m ng này g i là Intranet. TCP/IP v a có th k t n i m t s l ng l n các máy tính (150.000 máy trên n c M , Châu Âu, Châu Á) l i có th ch k t n i hai máy tính trong phòng làm vi c. Di ây, chúng ta xem xét m t s n i dung v b giao th c truy n thông TCP/IP. II. KI N TRÚC C A B GIAO TH C TCP/IP II.1. Ki n trúc phân t ng c a TCP/IP Application Layer Presentation Layer Application Layer Session Layer Transport Layer Transport Layer Network Layer Internet Layer Data link Layer Physical Layer Network access Layer Các l p t ư ng ng gi a OSI và TCP/IP 21
  23. Có nhi u giao th c trong b giao th c truy n thông TCP/IP, nh ng hai giao th c quan tr ng nh t c l y tên t cho b giao th c này là TCP (Transmission Control Protocol) và IP (Internet Protocol). B giao th c TCP/IP ưc phân làm 4 t ng Tng m ng (Network Layer) Tng Internet (Internet Layer) Tng giao v n (Transport Layer) Tng ng d ng (Application Layer) FTP TELNET SMTP DNS SNMP Application Layer RIP Transsmission Control User Datagram Protocol Protocol Transport Layer ICMP Internet Protocol ARP (Host Layer) Ethernet Token Ring Token Bus Fiber Các tầng của bộ giao thức TCP/IP FTP (File transfer Protocol): Giao th c truy n t p cho phép ng i dùng ly ho c g i t p t i m t máy khác. Telnet : Ch ng trình mô ph ng thi t b u cu i cho phép ng i dùng login vào m t máy ch t m t máy tính nào ó trên m ng. SMTP (Simple Mail Transfer Protocol): M t giao th c th tín in t . DNS (Domain Name server): D ch v tên mi n cho phép nh n ra máy tính t m t tên mi n thay cho chu i a ch Internet khó nh . 22
  24. SNMP (Simple Network Management Protocol): Giao th c qu n tr m ng cung c p nh ng công c qu n tr m ng. RIP (Routing Internet Protocol): Giao th c d n ng ng. ICMP (Internet Control Message Protocol): Nghi th c thông báo l i. UDP (User Datagram Protocol): Giao th c truy n không k t n i cung c p dch v truy n không tin c y nh ng ti t ki m chi phí truy n. TCP (Transmission Control Protocol): Giao th c h ng k t n i cung c p dch v truy n thông tin t ng. IP (Internet Protocol): Giao th c Internet chuy n giao các gói tin qua các máy tính n ích. ARP (Address Resolution Protocol): C ch chuy n a ch TCP/IP thành a ch v t lý c a các thi t b m ng. Host A Host B Application Application Identical Message Transport Transport Identical Packet Internet Internet Identical Datagram Network Interface Network Interface Identical Frame Physical Net Cng gi ng nh trong mô hình tham chi u OSI, d li u g i t t ng Application i xu ng ng n x p, m i t ng có nh ng nh ngh a riêng v d 23
  25. li u mà nó s d ng. T i n i g i, mi t ng coi gói tin c a t ng trên g i xu ng là d li u c a nó và thêm vào gói tin các thông tin iu khi n c a mình sau ó chuy n ti p xu ng t ng d i. T i n i nh n, quá trình di n ra ng c l i, m i tng l i tách thông tin iu khi n c a mình ra và chuy n d li u lên t ng trên. Application Data Transport TCP Data Header Internet IP TCP Data Header Header Network Ethernet IP TCP Data Ethernet Header Header Header trailer II.2. C ch a ch Internet Mng Internet dùng h th ng a ch IP (32 bit) " nh v " các máy tính liên k t v i nó. Có hai cách ánh a ch ph thu c vào cách liên k t c a t ng máy tính c th : Nu các máy tính c k t n i tr c ti p v i m ng Internet thì trung tâm thông tin Internet (Network Information Centre-NIC) s c p cho các máy tính ó m t a ch IP (IP Address). Nu các máy tính không k t n i tr c ti p v i m ng Internet mà thông qua mt m ng c c b thì ng i qu n tr m ng s c p cho các máy tính ó m t a ch IP (tuy nhiên c ng d i s cho phép c a NIC) 24
  26. H th ng a ch này c thi t k m m d o qua m t s phân l p, có 5 l p a ch IP là : A, B, C, D, E. S khác nhau c b n gi a các l p a ch này là kh n ng t ch c các c u trúc con c a nó. 0 1 2 3 4 8 16 24 Class A 0 Netid Hostid Class B 1 0 Netid Hostid Class C 1 1 0 Netid Hostid Class D 1 1 1 0 Multicast address Class E 1 1 1 1 0 Reverved for future use Sau ây chúng ta s nghiên c u v 3 l p a ch chính c a TCP/IP ó là các lp A,B,C là các l p c s d ng r ng rãi trên mng Internet. II.2.1. a ch l p A Lp A s d ng byte u tiên c a 4 byte ánh a ch m ng. Nh hình trên, nó c nh n ra b i bit u tiên trong byte u tiên c a a ch có giá tr 0. 3 bytes còn l i c s d ng ánh a ch máy trong m ng. Có 126 a ch l p A ( c ánh a ch trong byte th nh t) v i s máy tính trong m ng là 256 3 - 2 = 16.777.214 máy cho m i m t a ch l p A (do s dng 3 bytes ánh a ch máy). a ch l p A th ng c c p cho nh ng t ch c có s l ng máy tính l n. Nguyên nhân ch có 126 networks trong khi dùng 8 bit vì bit u tiên mang giá tr 0 dùng nh ngh a l p A v y con l i 7 bit ánh s t 0-127 tuy nhiên ng i ta không s d ng m t a ch ch a toàn các con s 1 ho c 0 do v y, ch còn l i 126 m ng l p A c s dng. Do v y giá tr byte u tiên c a a ch lp A s luôn luôn n m trong kho ng t 1 t i 126, m i m t byte trong 3 bytes còn l i s có giá tr trong kho ng 1 n 254. i v i vi c ch có 16.777.214 máy trong khi s d ng 24 bit ánh a ch máy trong m ng c ng c gi i thích t ng t . 25
  27. a ch l p A có d ng: vi con s th p phân u tiên nh h n 128 Ví d : 9. 6. 7. 8 : Nút c gán Host ID là 6. 7. 8, n m trong m ng l p A có a ch là 9. 0. 0. 0 II.2.2. a ch l p B Mt a ch l p B c nh n ra b i 2 bit u tiên c a byte th nh t mang giá tr 10. L p B s d ng 2 byte u tiên c a 4 byte ánh a ch m ng và 2 byte cu i ánh a ch máy trong m ng. Có 64*256 - 2 = 16.128 a ch m ng l p B v i 65.534 máy cho m i m t a ch l p B. a ch l p B có d ng: Byte u tiên c a m t a ch l p B n m trong kho ng 128 t i 191. Ví d : 190. 2. 2 . 1 : Nút c gán Host ID là 2. 1, n m trong m ng l p B có a ch là 190. 2. 0. 0 II.2.3. a ch l p C Mt s t ch c có quy mô nh có th xin c p phát a ch l p C. M t a ch lp C c nh n ra v i 3 bit u mang giá tr 110. M ng l p C s d ng 3 byte u ánh a ch m ng và 1 byte cu i ánh a ch máy trong m ng. Có 2.097.150 a ch l p C, m i a ch l p C có 254 máy. a ch l p C có d ng: a ch l p C c nh n ra v i byte u tiên trong kho ng 192 t i 223 Ví d : 200. 6. 5. 4 : Nút c gán Host ID là 4, n m trong m ng l p C có a ch là 200. 6. 5. 0 II.3. Mng con và Subnet mask Mng Internet s d ng a ch IP 32 bit và phân chia ra các l p r t m m d o, tuy nhiên, v i m t h th ng a ch nh v y vi c qu n lý v n r t khó kh n. Nu nh m t m ng c c p m t a ch l p A thì có ngh a nó ch a t i 26
  28. 16*1.048.576 máy tính, do v y ng i ta dùng m t n bit phân chia m ng ra thành nh ng m ng con g i là Subnet. Subnet mask là m t con s 32 bit bao gm n bit 1 (th ng là các bit cao nh t) dùng ánh a ch m ng con và m bit 0 dùng ánh a ch máy trong m ng con v i n+m=32 0 16 Network Number Host Number Network Number Subnet Number Host Number 1111111 11111111 11111111 00000000 Mt n subnet ph i c c u hình cho m i máy tính trong m ng và ph i c nh ngh a cho m i router. Nh v y, ta ph i dùng cùng m t Subnet mask cho toàn b m ng v t lý cùng chung m t a ch Internet. Ví d : Ta có m t a ch l p B 128.001.000.000 và c n chia nó thành 254 m ng con vi 254 máy trong m i m ng, ta gi i quyt v n này b ng Subnet mask nh sau Network num 10000000 00000001 00000000 00000000 = 128.001.000.000 Subnet mask 11111111 11111111 11111111 00000000 = 255.255.255.000 Mt n trên nh ngh a 254 m ng con v i a ch nh sau: Subnet #1 10000000 00000001 00000001 00000000 = 128.001.001.000 Subnet #2 10000000 00000001 00000010 00000000 = 128.001.002.000 Subnet #3 10000000 00000001 00000011 00000000 = 128.001.003.000 . . Subnet #254 10000000 00000001 11111110 00000000 = 128.001.254.000 S máy trong m ng con th nh t s n m trong kho ng sau: Subnet #1 10000000 00000001 00000001 00000000 = 128.001.001.000 27
  29. Low Address 10000000 00000001 00000001 00000001 = 128.001.001.001 High Address 10000000 00000001 00000001 11111110 = 128.001.001.254 28
  30. Chú ý r ng m t a ch ch a toàn s 1 dùng cho boardcasting, ch a toàn s 0 dành cho Subnet mask do v y, a ch máy c a Internet không bao gi ch a toàn các con s 1 ho c 0. III. TNG M NG (NETWORK LAYER) Tng m ng là t ng th p nh t c a ki n trúc giao th c TCP/IP. Các giao th c trong t ng này cung c p bi n pháp cho h th ng chuy n giao d li u gi a các thi t b c k t n i tr c ti p. Nó mô t cách s d ng m ng truy n m t gói thông tin IP. Không gi ng nh ng giao th c c a t ng cao h n là s d ng d ch v c a t ng d i nó và cung c p d ch v cho t ng trên, giao th c c a t ng mng c n ph i bi t chi ti t c a m ng v t lý phía d i (c u trúc c a gói, a ch , vv ) nh d ng úng thông tin s c truy n tuân theo nh ng ràng bu c c a m ng. T ng m ng c a TCP/IP ch a các ch c n ng t ng ng c a 3 tng th p nh t c a mô hình tham chi u OSI (t ng m ng, t ng liên k t d li u, tng v t lý). T ng m ng th ng không c ng i dùng ý t i vì thi t k ca TCP/IP che d u nh ng ch c n ng c a t ng th p nh t này và nh ng iu cn bi t cho ng i s d ng c ng nh ng i l p trình ch là nh ng giao th c ca các t ng cao h n (IP, TCP, UDP, vv ). M i khi có công ngh ph n c ng xu t hi n, nh ng giao th c t ng m ng ph i c phát tri n TCP/IP có th s d ng ph n c ng m i (thông th ng ó chính là các trình iu khi n c a chính nhà cung c p ph n c ng ó). Các ch c n ng trình di n trong t ng này bao g m óng gói gói thông tin IP thành các "Frame" c truy n d n trên mng và chuy n a ch IP thành a ch v t lý s d ng b i m ng máy tính. Mt trong s các im m nh c a TCP/IP là a ch c a nó c ph i h p sao cho trên m ng Internet không có m t thi t b m ng nào cùng tên. a ch này ph i c chuy n i thích h p v i a ch m ng v t lý n i mà d liu c truy n i. Hai ví d RFCs mô t giao th c s d ng cho t ng m ng là: 29
  31. RFC 826: Giao th c chuy n i a ch chuy n i a ch IP thành a ch Ethernet RFC 894: M t chu n cho vi c truy n gói tin IP qua m ng Ethernet mô t cách th c óng gói truy n thông tin qua m ng Ethernet. Khi cài t trong UNIX, giao th c c a t ng này c xem nh s ph i h p ca ch ng trình iu khi n thi t b và các ch ng trình liên quan. Nh ng n v t ng ng v i nh ng thi t b m ng làm nhi m v óng gói d liu và chuy n giao cho m ng. IV. TNG INTERNET (INTERNET LAYER) Tng Internet cung c p m t h th ng chuy n giao không k t n i và ôi khi ng i ta còn g i là không tin c y. Không k t n i b i m i gói tin c truy n i trên m ng m t cách c l p, s k t h p d li u c a các gói tin c cung cp b i các d ch v l p trên. M i gói tin IP ch a a ch n i g i và a ch n i nh n và d a vào ó nó có th c truy n trên m ng t i ích. Nh ng chính vi c d li u có th i t i ích trên nhi u ng khác nhau t o nên s mm do cho Internet khi m t ng b t hay m t nút nào ó b quá t i, các gói tin có th c truy n i theo nh ng con ng khác, n u m t gói tin nào có li thì ch ph i truy n l i gói tin ó thay vào vi c ph i truy n l i toàn b thông báo. Không tin c y b i vì IP không có c ch ki m tra tính úng n c a d li u c truy n nh n, d ch v tin t ng ph i c cung c p b i các giao th c lp trên. Vn ch ch t trên t ng Internet là vi c ch n l a con ng t i u truy n các gói tin t tr m ngu n t i tr m ích. Chúng ta s xem xét các k thu t ch n ng và thu t toán d n ng s d ng i v i t ng này sau ây. 30
  32. IV.1. Gói tin IP 0 31 Vers Hlen Service type Total length Identification Flag Fragment offset Time to live Protocol Header cheksum Source IP address Destination IP address IP options Padding IP datagram data (Max 65535 bytes) Destination Source Type IP data CRC Address Address field Gói thông tin IP trong m t frame Ethernet Vers : Dài 4 bits, mô t chính xác version c a IP Hlen : Dài 4 bits, mô t dài c a IP header (tính b ng t 32 bit). Service type : dài 8 bits mô t th t u tiên c a data. Total length : Dài 16 bits (2 bytes), ây là dài c a datagram (in bytes- có ngh a là dài vùng data c a IP datagram có th lên t i 65535 bytes). Identification, flags, fragment offset : Không ph i b t k size nào c a datagram c ng c truy n trên m ng (ví d Ethernet LAN ch h tr cho size l n nh t c a datagram là 1518 bytes). Do v y khi size c a datagram vt quá kích th c cho phép, nó s b chia nh ra và các tr ng này s 31
  33. m b o r ng các datagram ã b phân chia này là t m t datagram ban u. Time to live : Dùng xác nh xem datagram này có b truy n l p l i hay không (thông th ng nó c gán là 1, n u b l p l i nó s b gán là 0) Protocol : Tr ng này cho bi t l p giao th c cao h n nào s c s d ng (UDP hay là TCP). CRC : Tr ng này c dùng ki m tra s toàn v n c a header. IP option : Ch a các thông tin nh : "dò" ng, b o m t, xác nh n th i gian. Padding : Tr ng in thêm các s 0 m b o header k t thúc t i m t a ch b i c a 32 Source IP address, destination IP address : ch a a ch c a station g i và a ch c a station ích. Gói tin IP ch a m t tr ng checksum ki m tra tính toàn v n c a IP header, n u IP header l i, gói tin IP b lo i b và giao th c l p trên s truy n mt gói tin khác. Tng IP làm công vi c d n ng các gói tin qua m ng Internet t máy tính Host A Host B này t i máy tính khác, qua các m ng khác nhau cho t i khi nó n c tr m ích Applicationho c b l i. Vi c truy n gói tinIdentical qua các m ng c th c hi n thôngApplication qua Message mt thi t b k t n i gi a hai m ng g i là gateway. Khi m t thông tin truy n Identical qua cácTransport m ng khác nhau, nó có th b chia ra thành nhi u gói nh h Transportn. Thông tin truy n có th quá l n có th Packet truy n trên m t gói tin trên m t m ng Gateway G khác.Internet V n này ch g p ph i khi gateway c n i gi a các m ngInternet v t lý Internet khác nhau. M i ki Identicalu m ng có m t dài t i Identicala gói tin có th truy n Datagram Datagram (Maximum Transmission Unit-MTU) n u thông tin nh n c t m ng này Network Interface Network Interface Network Interface dài h n MTU c a m ng kia, nó c n ph i c chia nh ra thành nhi u m nh Identical Identical truy n. Frame Frame Physical Net Physical Net 32
  34. Vi c x lý nh v y c g i là s phân m nh. tr c quan, ta so sánh v i vi c chuyên ch hàng b ng tàu ho , m i toa tàu có th ch nhi u hàng h n mt chi c xe t i s tr hàng trên ng, hàng hoá s c chia vào nhi u xe ti. Ta có th so sánh vi c ng ray khác v v t lý v i ng ôtô, Ethernet khác X.25 v v t lý, IP ph i c t gói tin Ethernet thành nh ng gói thông tin nh h n truy n qua m ng X.25. nh d ng c a m i gói tin chia c t gi ng nh v i t ng b n tin. T th hai c a header ch a thông tin s d ng cho quá trình t p h p l i b n tin bao g m: gói tin thu c b n tin nào, v trí ca nó trong toàn b dòng d li u truy n, gói tin ã c k t n i ch a. Khi nh ng gói tin truy n n m t gateway quá nhanh, chúng có th b lo i b và IP tr l i m t thông báo l i (ICMP). 33
  35. IV.2. Giao th c chuy n a ch ARP (Address Resolution Protocol) và c giao th c chuy n ng ư c a ch RARP (Reverse Address Resolution Protocol) Mi máy tính cùng n m trên m t m ng có cùng m t net id và các máy tính cùng trên m t m ng v t lý có th g i frame vt lý tr c ti p cho nhau nên vi c truy n thông tin gi a hai máy tính trong cùng m t m ng v t lý không c n s dng gateway. Vi c d n ng tr c ti p ch s d ng ph n a ch máy host id trong a ch IP. Tr m g i ch vi c k t kh i d li u vào frame , chuy n a ch IP c a tr m ích thành a ch v t lý và g i tr c ti p frame ti máy nh n. Mt c ch s d ng chuy n a ch IP thành a ch v t lý là ARP (Address Resolusion Protocol). Khi hai máy tính cùng n i vào m t m ng v t lý, chúng bi t c a ch IP c a nhau nh ng truy n thông gi a hai máy, chúng ph i bi t c a ch v t lý c a nhau. ARP gi i quy t v n chuy n t a ch IP 32 bit sang a ch Ethernet 48 bit. Ng i ta s d ng hai c ch chuy n a ch là: Chuy n giao tr c ti p Chuy n giao gián ti p IV.2.1. Chuy n giao tr c ti p a ch v t lý là m t hàm c a a ch IP ví d s d ng trên m ng token ring proNET-10 là m ng cho phép t a ch IP và a ch v t lý tho i mái. Ng i ta có th t a ch IP là 192.5.48.3 và a ch v t lý là 3, khi ó ta có PA=f(I A). V i P A là a ch v t lý, I A là a ch Internet và f là hàm chuy n i. IV.2.2. Chuy n giao a ch ng Chuy n giao a ch ng c th c hi n b ng cách máy tính g i thông tin gi m t thông báo t i toàn b các máy tính trên m ng, trong thông báo ó có ch a a ch IP c a máy tính nó c n liên l c, m i máy s nh n c thông báo 34
  36. và máy nào th y a ch IP c a mình thì tr l i m t thông báo ch a a ch v t lý, khi ó, hai máy tính có th “nói chuy n” v i nhau. Host A Host B Host C Host D ARP Request Host A Host B Host C Host D ARP Reply Ngoài ra, ng i ta còn s d ng b ng ch ng l u tr t m th i các a ch s d ng m i nh t (Address Reslution Cache) t ng t c c a vi c chuy n giao a ch . IV.2.3. Gói tin ARP Mt gói thông tin ARP là m t Ethernet Frame c truy n tr c ti p t máy này t i máy khác. Vì không ph i s d ng IP, gói tin này không có a ch IP cng nh không c n c d n ng, nó ph i c g i broadcasts t i t t c các máy trên m ng Ethernet (v i a ch FF-FF-FF-FF-FF-FF). Gói thông tin ARP c mô t nh sau: 35
  37. 0 31 Hardware Address Space Protocol Address Space Hardware Address Length Protocol Address Length Operation Code Source Hardware Address (Ethernet Address) (Internet Address) Source Protocol Address Target Hardware Address (Ethernet Address) Destination Source Type or (ARP) Data CRC Address Address Length Không gi ng ph n l n các giao th c khác, d li u trong ARP không có m t nh d ng chu n cho header. ARP có th làm vi c v i nhi u công ngh khác nhau, ng i ta dùng m t tr ng ch a dài c a nh ng tr ng i sau nó. Trong tr ng h p máy tr m không có thi t b nh ph , và vì v y nó không bi t a ch IP c a chính mình khi kh i ng, ng i ta s d ng c ch chuy n ng c a ch (Reverse Address Resolution Protocol - RARP) ho t ng 36
  38. t ng t ARP gi i quy t v n này. Theo c ch ó, có m t máy ch ch a bng a ch IP c a các máy tr m, khi máy tr m kh i ng, nó g i m t request t i t t c các máy và máy ch g i tr l i m t gói tin ch a a ch IP ca máy tr m yêu c u. IV.3. Giao th c iu khi n truyn tin (Internet Control Message Protocol - ICMP) Vi c d n ng qua các m ng s d ng giao th c iu khi n truy n tin (Internet Control Message Protocol - ICMP) c nh ngh a trong RFC 792. ICMP s d ng gói tin IP chuy n thông báo c a nó. ICMP g i các thông báo làm các công vi c: iu khi n, thông báo l i và ch c n ng thông tin cho TCP/IP Thông th ng ICMP c g i khi m t gói tin không th i t i ích, mt gateway không còn ch nh nh n thêm gói tin hay m t gateway hng d n máy tính s d ng gateway khác truy n thông tin theo m t con ng t i u h n IV.3.1. Gói tin ICMP Mc d u m i thông báo ICMP có m t ki u nh d ng riêng c a nó, song các thông báo u ch a 3 tr ng u tiên gi ng nhau: TYPE : nh ngh a thông báo i sau. CODE : Cung c p thông tin thêm v thông báo. CHECKSUM : Ch a checksum c a thông báo. Type Field ICMP Message Type 0 Echo Reply 3 Destination Unreachable 4 Source Quench 5 Redirect (Change a router) 8 Echo Request 37
  39. 11 Time Exceeded for a Datagram 12 Parameter Problem on a Datagram 13 Timestamp Request 14 Timestamp Reply 15 Information Request 16 Information Reply 17 Address Mask Request 18 Address Mask Reply IV.3.2. iu khi n dòng d li u Khi tr m ngu n g i d li u t i quá nhanh, tr m ích không k p x lý, tr m ích - hay m t thi t b d n ng g i tr tr m ngu n m t thông báo nó t m ng ng vi c truy n thông tin. IV.3.3. Thông báo l i Khi không tìm th y tr m ích, m t thông báo l i Destination Unreachable c gateway g i tr l i tr m ngu n. N u m t s hi u c ng không phù h p, tr m ích g i thông báo l i l i cho tr m ngu n ( cổng s ẽ được trình bày trong ph ần giao th ức t ầng giao v ận). IV.3.4. nh h ng l i Mt gateway g i thông báo nh h ng l i tr m gi s d ng m t gateway khác b i vì gateway ó là m t l a ch n thích h p h n. Tr ng h p này ch xy ra khi tr m g i n i vào m ng có trên 2 gateway. Ví d máy tính B mu n g i thông tin n máy C, n u thông báo ó n gateway 1, thì gateway 1 ph i g i thông báo redirect máy tính ó qua gateway 2. Ng c l i, m i máy tính trên m ng X.25 mu n g i thông báo t i máy tính nm trên m ng Token Ring thì vi c này không c n thi t vì gateway 1 c ni tr c ti p v i m ng Token Ring. 38
  40. Token Ring Gateway 1 Host A Host B X.25 Gateway 2 Host C Ethernet IV.3.5. Ki m tra tr m làm vi c Khi m t máy tính mu n ki m tra m t máy khác có t n t i và ang ho t ng hay không, nó g i m t thông báo Echo Request. Khi tr m ích nh n c thông báo ó, nó g i l i m t Echo Reply. L nh ping c a UNIX s d ng các thông báo này. IV.4. Thu t toán d n ư ng Internet là m t m ng chuy n m ch gói và chuy n các gói tin IP trên m ng, ng i ta s d ng thu t toán d n ng . Thu t toán d n ng c th c hi n b i ti n trình l a ch n m t ng truy n gói tin và vi c d n ng cho các gói tin c th c hi n b i m i máy tính trên ng i c a nó. Ng i ta chia vi c d n ng trên m ng Internet ra làm 2 ki u: Dn ng tr c tip (direct routing): D n ng tr c ti p t máy tính này sang máy tính kia ch th c hi n c khi c hai máy tính u k t n i vào mt m ng v t lý. D n ng tr c ti p ch s d ng ph n hostid c a a ch Internet và s d ng 2 giao th c chuy n a ch ARP và RARP. Network 12.0.0.0 39
  41. 12.0.0.3 14.0.0.1 Network Gateway 1 14.0.0.0 14.0.0.2 12.0.0.2 Gateway 2 Gateway 3 13.0.0.2 13.0.0.1 12.0.0.1 15.0.0.1 Gateway 4 Network Network 13.0.0.3 11.0.0.2 13.0.0.0 15.0.0.0 15.0.0.2 13.0.0.4 Gateway 5 Gateway 6 16.0.0.1 Network 11.0.0.0 Network 16.0.0.2 Port1 Port 3 16.0.0.3 11.0.0.1 23 16.0.0.0 Gateway 8 10.0.0.1 Gateway 7 Port 2 Network 10.0.0.2 23 10.0.0.0 Ti máy trên m ng Dn ưng t i Thông qua c ng 10.0.0.0 Direct 2 11.0.0.0 Direct 1 12.0.0.0 11.0.0.2 1 13.0.0.0 Direct 3 14.0.0.0 13.0.0.2 3 15.0.0.0 10.0.0.2 2 16.0.0.0 10.0.0.2 2 Bng d n ưng trên gateway 8 Dn ng gián ti p (indirect routing): Khi tr m ích không cùng n m trên m t m ng v i tr m g i c n thông qua gateway truy n i. Tr m g i 40
  42. ph i óng gói thông tin và g i t i m t gateway chuy n t i ích. D n ng gián ti p ch s d ng net id trong a ch IP. D li u s chuy n t gateway này t i gateway khác n khi nó có th c truy n tr c ti p t i máy nh n. Thu t toán d n ng th ng s d ng b ng dn ng (Internet routing table - IP routing table) trên m i máy tính ch a thông tin v các máy tính và cách i n chúng. Vì vi c d n ng c th c hi n b i c host và gateway, m i thi t b u ch a m t b ng d n ng. Bng d n ng ch a thông tin v các m ng và gateway k t n i n ó. Ng i ta s d ng m t k thu t che d u thông tin và gi m thi u kích th c ca b ng d n ng là s d ng k thu t dùng gateway ng ầm đị nh (default gateway). N u máy tính không tìm th y a ch ích trong b ng d n ng ca nó thì gói tin c chuy n t i m t thi t b là default gateway. K thu t này c bi t thích h p v i tr ng h p m ng máy tính c n i vào Internet thông qua m t máy tính duy nh t. Thu t toán d n ưng c th cài t cho TCP/IP Mi nút m ng có m t c s d li u mô t tr ng thái t ng th c a m ng (topo, tr truy n d n ) g i là b ng d n ng. Các thông tin này dùng cho vi c tính tính các con ng t i u chuy n các gói tin n ích. Chúng c cp nh t th ng xuyên sau m t kho ng th i gian nào ó ho c c p nh t m i khi có m t thay i x y ra. (Một s ố thu ật toán s ử d ụng cho vi ệc tìm đường đi tối ưu được trình bày trong ph ần ph ụ l ục B ) Khi có m t gói thông tin n m t máy tính hay gateway, thu t toán d n ng ch y trên máy tính ó s phân tích a ch ích c a gói thông tin và quy t nh truy n nó theo ng t t nh t t i ích (d a vào thông tin trong bng d n ng). Vi c này bao g m c c i gói, ch n ng, c p nh t b ng dn ng, óng gói Tách đ ịa ch ỉ mạng đích (I N) t ừ địa chỉ đích (I D) 41 IN nối trực tiếp + Chuyển trực tiếp qua mạng
  43. V. TNG GIAO V N Tng giao th c ngay trên t ng Internet là T ng giao v n (Host-to-Host Transport Layer hay th ng g i là Transport Layer). Hai giao th c quan tr ng nh t c a t ng này là Transmission Control Protocol (TCP) và User Datagram Protocol (UDP). TCP cung c p d ch v chuy n giao thông tin có kt n i (connection-oriented), nó bao g m c vi c ki m tra và s a l i. UDP cung c p d ch v kém tin c y h n (unreliable) và không thi t l p liên k t tr c (connectionless). C hai giao th c u chuy n giao thông tin gi a t ng ng d ng và t ng Internet. Ch ng trình ng d ng có th l a ch n d ch v nào thích h p v i nó. V.1. Giao th c không k t n i (User Datagram Protocol - UDP) UDP cho phép ch ng trình ng d ng truy c p tr c ti p n gói tin c a d ch v chuy n giao gi ng nh d ch v mà giao th c IP cung c p. Nó cho phép ng d ng trao i thông tin qua m ng v i ít thông tin iu khi n nh t. UDP là giao th c không k t n i, kém tin c y vì nó không có c ch ki m tra tính úng n c a d li u truy n. V.1.1. Gói thông tin UDP 0 31 Source port Destination port Message length checksum Data Destination Source Type IP UDP data CRC Address Address field header 43
  44. Mi gói thông tin UDP g i là m t Datagram c phân làm 2 ph n header và data trong ó header ch a thông tin v a ch c ng ngu n, a ch c ng ích, dài c a gói và checksum V.1.2. Phân kênh, h p kênh và Ports Phân kênh, h p kênh chính là vi c l a ch n nh ng ti n trình ng d ng trong mt s l n các ti n trình s d ng giao th c UDP, và c n ch n ra nh ng ng dng t ng ng v i gói thông tin chuy n n. Port 1 Port 2 Port 3 UDP: Demultiplexing Based on Port UDP Datagram arrives IP Layer Vi c này c gi i quy t b ng cơ ch ế c ổng (Port mechanism) c ch này g n mi ng d ng v i m t con s g i là số hi ệu c ổng (Port number) và m i gói thông tin mà ng d ng g i i u mang m t tr ng SOURCE PORT. Ti n i nh n, d a vào thông tin trong tr ng DESTINATION PORT mà gói tin ó c truy n n c ng t ng ng v i ng d ng. Ví d m i b n TCP/IP u có d ch v FTP (File Transfer Protocol) g n v i c ng 21 và TFTP (Trivial File Transfer Protocol) g n v i c ng 69 c a UDP. Vi c s d ng các port number c ng có nhi u cách Dùng nh ng c ng dành riêng cho t ng ng d ng ã c ng ký tr c (Well-known port assignment). 44
  45. Mt port number s c sinh ra khi có m t ng d ng òi h i (Dynamic binding). Cách ti p c n k t hp các ki u trên (Hybird) v a s d ng Well-known port assignment cho m t s port number v a có th nh ngh a các port number khác khi c n thi t. Các port number thông d ng c a UDP th ng c dành ch t 1 t i 255. M t s h iu hành (nh 4.3 BSD UNIX) còn dành ch t i port number 1023, các port number có th s d ng c là t s 1024 tr lên. Mt s c ng UDP dành riêng 0 Reserved 7 Echo 9 Discard 11 Active users 13 Daytime 15 Who is up or NETSTAT 17 Quote of the day 19 Character generator 37 Time 42 Name server 43 Who is 53 Domain name server 67 Boottrap protocol server 68 Boottrap protocol client 69 Trivial File Tranfer Protocol ( TFTP) 111 Sun RPC 123 Network time protocol 161 SNMP net monitor 45
  46. 162 SNMP traps 512 UNIX comsat 513 UNIX rwho process 514 System log 525 Timed Có m t s lý do ng ưi l p trình ng d ng l a ch n UDP nh ư m t d ch v giao v n: Nu m t s l ng l n các gói tin nh c truy n, thông tin cho vi c k t ni và s a l i có th l n h n nhi u so v i thông tin c n truy n. Trong tr ng h p này, UDP là gi i pháp hi u qu nh t. Nh ng ng d ng ki u "Query-Response" c ng r t phù h p v i UDP, câu tr l i có th dùng làm s xác nh n c a m t câu h i. N u không nh n c s tr l i sau m t th i gian nào ó, ng d ng ch c n g i i m t câu hi khác. Mt s ng d ng ã t nó cung c p công ngh riêng chuy n giao thông tin tin c y, và không òi h i d ch v này c a transport layer. V.2. Giao th c iu khi n truy n tin (Transmission Control Protocol - TCP) Mt s ng d ng òi h i giao th c giao v n cung c p d ch v chuy n giao thông tin tin c y s d ng TCP b i nó cung c p d ch v ki m tra úng n và d li u c truy n v i m t s ph i h p thích h p. M t s c im c a d ch v tin c y mà TCP cung c p là: Hng dòng (Stream Orientation): TCP coi d li u nó g i i là m t dòng byte không ph i là gói tin. Do ó, TCP m b o s th t c a các byte gi nh n. Tr ng Sequence number và Acknowledgment number trong header c a TCP gi d u c a các byte trong toàn b dòng d li u truy n. TCP chu n không b t h th ng ph i s d ng m t s c bi t nào ánh s dòng byte, m i h th ng t ch n m t s mà nó s dùng làm im b t 46
  47. u. M i tr m cu i ph i bi t s th t mà tr m kia dùng. Chúng ph i trao i m t segment ng b h th ng s s c s d ng (Synchronize sequenence number - SYN) trong quá trình b t tay. Tr ng Sequent number trong SYN segment ch a s b t u (ISN) c a dòng s ánh th t, s này c ch n ng u nhiên. M i byte trong d li u c gi d u b i s ISN do ó byte u tiên c a d li u mang s ISN+1. Sequent number ch a v trí c a dòng byte trong gói tin n u ISN=0 và 4000 byte ã c chuy n giao thì con s ti p theo s là 4001. Chuy n giao b m (Buffered Transfer): gi m s l ng truy n thông, giao th c c g ng s d ng s l ng t i thi u các segment truy n t i thông tin, do v y, giao th c s d ng t i a dài có th c a segment. Tr ng window trong TCP header cho bi t s byte t i a mà tr m ích có th nh n c, n u tr m ích có kh n ng ch p nh n 6000 byte thì tr ng window s là 6000, tr m g i có th iu ch nh l i d li u cho phù h p. Nu tr ng window mang giá tr 0 có ngh a là trm g i ph i ch t i khi nh n c m t s khác 0. Kt n i hai chi u (Full Duplex Connection): TCP/IP cung c p k t n i cho c hai u c a liên k t. iu này có ngh a là t ng phía d i cung c p kh nng g i tr thông báo t tr m ích tr l i tr m ngu n. TCP là giao th c hng k t n i. Nó thi t l p quan h logic gi a 2 tr m tham gia liên k t. Thông tin iu khi n g i là handshake c trao i gi a 2 tr m thi t lp h i tho i tr c khi thông tin c truy n. TCP ch d n ch ng trình iu khi n c a m t segment b ng cách t m t bit dành riêng c a c t i word th 4 c a segment header. Ki u b t tay c a TCP g i là three way handshake bi vì 3 segment c trao i. Tr m A b t u k t n i b ng cách g i m t segment v i bit Synchronize sequenence number (SYN). Segment này báo cho tr m B th t tr m A s s dng cho nh ng segment c a nó g i, s th t này m b o cho d li u m t tr t t thích hp. Tr m B áp l i tr m B v i m t segment v i bit Acknowledgment 47
  48. (ACK) và SYN c t. Segment c a B thông báo r ng nó ã nh n c thông báo c a A và báo cho A bi t s th t mà nó s s d ng. Cu i cùng, A g i m t segment báo cho B nó ã nh n c thông báo và truy n gói d li u u tiên. Chú ý r ng, gói tin th nh t ch a bit SYN và các gói ti p theo ch a bit ACK. Sau khi trao i, tr m A xác nh hi n nhiên tr m ích t n t i và ã s n sàng nh n d li u. Ngay sau khi k t n i c thi t l p, d li u có th truy n. Khi k t thúc h p tác truy n giao d li u, chúng s trao i three way hanshake ch a bit thông báo h t d li u truy n No more data from sender gi là (FIN) k t thúc k t n i. ó là s trao i gi a hai tr m cung c p m t k t n i logic gi a hai h th ng. TCP cung c p d ch v tin c y v i m t c ch g i là "Positive Ackowledgment with Retransmission" (PAR). n gi n là tr m ngu n ti p tc g i thông tin i cho t i khi nó nh n c thông báo d li u ã c nh n chính xác t i tr m ích. n v thông tin chuy n giao gi a các ng d ng g i là segment, m i segment ch a checksum m b o r ng segment không b phá hu trên ng truy n, n u segment không b phá hu , tr m nh n g i thông báo xác nh n l i tr m g i, n u segment b phá hu , tr m nh n hu b nó và sau m t th i gian nào ó, tr m g i s g i l i gói tin mà nó không nh n c thông báo xác nh n. Tại trạm gửi Thông tin trên mạng Tại trạm nhận Send Paket 1 Receive Paket 1 Send ACK 1 Receive ACK 1 Send Paket 2 Receive Paket 2 Send ACK 2 48 Receive ACK 2
  49. V.2.1. Gói tin TCP 0 4 8 12 20 24 28 31 Source Port Desstination Port Sequence Number Acknowledgment Number Offset Reserved Flags Window Checksum Urgent Pointer Opions Padding Data Destination Source Type IP TCP Segment CRC Address Address field header Gói tin TCP ch a trong m t Ethernet frame Source Port Cng ngu n Destination Port Cng ích Sequence Number S th t c a gói tin Offset S th t c a byte u tiên Reserved dành Flags C ch d n Window S byte t i a tr m ích có th nh n Checksum Checksum ki m tra tính toàn v n Urgent Pointer dài d li u kh n i sau Option Tu ch n Padding Ph n in thêm vào các con s 0 Data D li u b t u t i ây V.2.2. Cng, k t n i và im k t n i TCP c ng dùng các port number gán cho các ng d ng và cho phép truy cp t i các ng d ng này thông qua các port number ó. 49
  50. Cng TCP dành riêng 0 Reserved 1 TCP multiplexor 5 RJE 7 Echo 9 Discard 11 Active users 13 Daytime 15 Network status program 17 Quote of the day 19 Character generator 20 FTP - data connection 21 FTP - command connection 23 TELNET 25 Simple mail transport protocol 37 Time 42 Name server 43 Who is 53 Domain name server 77 Any private RJE server 79 Finger - find a active user 93 Device control protocol 95 SUPDUP protocol 101 Network info.center host name server 102 OSI - transport service access point 103 X.400 mail service 104 X.400 mail sending 111 Sun microsystems remote procedural call 50
  51. 113 Authentication service 117 UNIX to UNIX copy(UUCP)path service 119 Usenet news tranfer protocol 129 Password generater protocol 139 NetBIOS session service 160-223 Reserved Tuy c ng dùng các port number nh danh cho các ng d ng nh ng m t cng không nh danh cho m t th c th duy nh t trên m ng, TCP là mt giao th c h ng k t n i do ó nó c n ph i nh danh cho c hai u c a liên k t. TCP a ra nh ngh a endpoint là m t c p s nguyên ( host, port ) trong ó, host là a ch IP c a m t máy tính còn port là port number mà máy tính ó s d ng. Ví d : (190.2.2.1,23) nh ngh a c ng 23 cho máy tính có a ch IP là 190.2.2.1. Chúng ta s quay l i v i khái ni m endpoint trong ch ng sau. VI. TNG NG D NG C A TCP/IP Ph n l n ng i s d ng ch quan tâm t i các d ch v thông tin c cung c p trên Internet. Các ng d ng có s m nh t c a Internet là Telnet, FTP, SMTP, DNS ngoài ra ngày nay có hàng ngàn ng d ng khác ang phát tri n và ngày mt nhi u. Sau ây chúng ta tìm hi u và phân tích m t s ng d ng c a Internet. VI.1. Dch v tên mi n (Domain Name Service - DNS) Vi c nh v các máy tính trên m ng b ng các a ch IP có nhi u l i im nh ã trình bày ph n trên, tuy nhiên v i ng i s d ng, vi c nh các con s ó là m t vi c t nh t khó ch u. H n n a, a ch IP không mang thông tin v a lý, t ch c hay ng i dùng. Vì th , ng i ta xây d ng h th ng t tên gi là Domain Name Server cung c p cho ng i dùng cách t tên cho các máy tính v i cách t tên thông th ng quen thu c. 51
  52. Mt domainame thông th ng có d ng: Tên_ng i_dùng@Tên_mi n vi tên mi n c phân làm các c p n i v i nhau b i d u “.”. Tên mi n c NIC cung c p. Tên mi n cao nh t là c p qu c gia ưc t b i 2 ch cái : ar : Argentina at : Austria au : Australia be : Belgium ca : Canada cn : China de : Germany es : Spain fr : France gb : Great britain hk : Honkong il : Israel it : Italy jp : Japan kr : Korea lu : Luxembourg my : Malaysia no : Norway vn : Vi t nam nu không có gì thì c hi u nh thu c USA Mc ti p theo ch lãnh v c ho t ng : edu : giáo d c 52
  53. gov : chính ph com : th ng m i mil : quân s org : các t ch c phi l i nhu n net : các t ch c phát tri n m ng Sau ó có th là tên công ty và tên máy tính. vn edu com mil org nic gov vnuh hut vdc fpt fit Phân cấp domain name Mt máy tính có th có nhi u tên nh ng trên m ng, m i tên là duy nh t. Vi c ánh x a ch IP vào tên mi n c th c hi n b i các Name Server cài t t i máy Server và Name Resolver cài t trên máy tr m. VI.2. ng nh p t xa (Telnet) Telnet cho phép ng i s d ng t m t tr m làm vi c c a mình có th ng nh p (login) vào m t tr m xa nh là m t u cu i (teminal) n i tr c ti p v i tr m xa ó. 53
  54. Client đ ọc t ừ Telnet Server nhận Telnet trạm cuối Client thông báo từ Server Server client gửi User’s Client gửi thông Terminal thông báo báo tới đến server máy tính TCP/IP Internet ng nh p vào m t máy tính ta ánh l nh: telnet [domain name | IP address] VI.3. Th ư in t (Electronic Mail) ây là m t d ch v ph bi n nh t trên Internet tr c khi World Wide Web ra i, thông qua d ch v này, ng i s d ng trên m ng có th trao i các thông báo cho nhau trên ph m vi th gi i. ây là m t d ch v mà h u h t các m ng diên r ng u cài t và c ng là d ch v c b n nh t c a m t m ng khi gia nh p Internet. Nhi u ng i s d ng máy tính tham gia m ng ch dùng duy nh t d ch v này. D ch v này s d ng giao th c SMTP (Simple Mail Transfer Protocol) trong h giao th c TCP/IP. Th in t là ph ng th c trao i thông tin nhanh chóng và thu n ti n. Ng i s d ng có th trao i nh ng b n tin ng n hay dài ch b ng m t ph ng th c duy nh t. R t nhi u ng i s d ng th ng truy n t p tin thông qua th in t ch không ph i b ng các ch ng trình truy n t p tin thông th ng. 54
  55. c im c a d ch v th in t là không t c th i (off-line) - tt c các yêu cu g i i không òi h i ph i c x lý ngay l p t c. Khi ng i s d ng g i m t b c th , h th ng s chuy n th này vào m t vùng riêng (g i là spool) cùng v i các thông tin v ng i g i, ng i nh n, a ch máy nh n H th ng s chuy n th i b ng m t ch ng trình ch y n n (background). Ch ng trình g i th này s xác nh a ch IP máy c n g i ti, t o m t liên k t v i máy ó. N u liên k t thành công, ch ng trình g i th s chuy n th t i vùng spool c a máy nh n. N u không th k t n i v i máy nh n thì ch ng trình g i th s ghi l i nh ng th ch a c chuy n và sau ó s th g i l i m t l n nó ho t ng. Khi ch ng trình g i th th y m t th không g i c sau m t th i gian quá lâu (ví d 3 ngày) thì nó s tr l i bc th này cho ng i g i. Mi th trên Internet u tuân theo m t d ng chu n. Bao g m ph n header ch a a ch ng i g i, a ch ng i nh n d ng domain name và sau ó là ph n n i dung th . C hai ph n u là các ký t ASCII chu n. Th chuy n trên m ng và n c ích là nh vào thông tin ch a trong ph n header c a th . Ban u th in t ch nh m m c ích trao i các thông báo (th c ch t là các t p v n b n) gi a ng i s d ng v i nhau. D n d n ng i ta ã phát tri n thêm các bi n th trên nó ph c v ng i s d ng t t h n ho c dùng cho nh ng m c ích riêng bi t. ó là các d ch v thông tin d a trên th in t . Th c ch t c a các d ch v này là s d ng th có n i dung tuân theo m t cú pháp c bi t th hi n yêu c u c a ng i s d ng. Các th này c g i t i mt ng i s d ng c bi t là các server, các server này phân tích n i dung th , th c hi n các yêu c u r i g i tr l i k t qu cho ng i yêu c u c ng d i dng th in t . Có hai server ph bi n trong ho t ng này là 55
  56. name server cung c p d ch v tra c u a ch trên m ng archive server cho phép ng i s d ng tìm ki m và l y v nh ng t p tin dùng chung. VI.4. Giao th c truy n t p (File Transfer Protocol - FTP) ây là m t ph ng pháp sao chép t p t m t máy tính xa v máy tính c a ng i dùng ta có th ng i t i máy tính c a mình truy n ho c l y file trên m t máy ch nào ó Ví d l y t p nettcp.c trên máy ch sco5 v máy tính c a mình: $ ftp sco5 Connected to sco5. 220- 220 sco5.cse.com.vn FTP server (Version 2.1WU(1)) ready. Name(none): binhnn 331 Password required for binhnn. Password: 230 User binhnn logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> get nettcp.c local: nettcp.c remote: nettcp.c 200 PORT command successful. 150 Opening BINARY mode data connection for nettcp.c (46 bytes). 226 Transfer complete. 46 bytes received in 0 seconds (0.04 Kbytes/s) ftp> bye 221 Goodbye. $ 56
  57. VI.5. Nhóm tin (News groups) News groups là nh ng nhóm ng i dùng th o lu n tr c tuy n. M i ng i g i nh ng bài bình lu n v m t v n nào ó, t o thành m t nhóm th o lu n, nh ng nhóm tin cho phép ng i dùng ti p xúc v i hàng tri u ng i trên th gi i có cùng m i quan tâm. Internet có g n 20.000 nhóm tin nh v y VI.6. Tìm ki m t p (Archie) Do trên Internet hi n nay có kho ng trên 3 tri u t p và hàng nghìn ftp server và s l ng ó ngày càng t ng nhanh. Archie là m t d ch v giúp tìm ki m các t p tin khác nhau theo m t s các thông tin nào ó. Thông th ng d ch v này cho phép tìm ki m t p theo tên ho c m t xâu con c a tên t p. Nó ch a cho phép tìm ki m theo ch hay n i dung. Tuy v y nó tr giúp cho ftp r t nhi u có th l y t p d dàng h n. VI.7. Tra c u thông tin theo th c n (Gopher) S dng giao th c Gopher protocol tìm ki m tài nguyên c a m ng. D ch v này cho phép tìm ki m và tra c u thông tin theo ch c a thông tin. Vi c tra c u này c th c hi n qua h th ng th c n thân thi n h n v i ng i s dng. Nó có u im là có th tra c u trên nhi u máy ch cùng m t lúc. H n ch c a Gopher là hi n th thông tin quá tóm t t, các ch c n ng cung c p trong th c n còn ch a nhi u. VI.8. Tìm ki m thông tin theo ch s (WAIS) Khác v i Gopher tìm ki m thông tin qua các m c nh s n, WAIS cho phép ngu i dùng tìm ki m các t p d li u có ch a các xâu nh tr c. Ngoài các ng d ng client, server WAIS còn có m t ph n c bi t là indexer làm nhi m v c p nh t các tài li u m i, s p x p chúng d i d ng thích h p thu n ti n cho vi c tìm ki m. WAIS server khi nh n c câu h i c a client s tìm ki m trong c s d li u t o ra b i indexer và tr l i cho client. 57
  58. VI.9. Siêu v n b n (WWW) Ng i ta nói r ng WWW là linh h n c a Internet vì nó cung c p cho ng i dùng m t giao di n lý t ng khi làm vi c v i Internet. Ng i dùng máy tính không c n có hi u bi t sâu v máy tính c ng có th s d ng nó nh m t công c c l c ng i t i nhà xem toàn b th gi i v i s l ng thông tin s c c p nh t t ng giây. WWW d a trên ý t ng siêu v n b n Hypertext trong ó cha các Hyperlink n các v n b n khác và nh v y, ta có th m r ng mãi mãi trang v n b n ca mình. WWW ngày nay c m r ng v i khái ni m siêu ph ng ti n Hypermedia bao g m c hình nh, âm thanh Ngày nay, ph n l n ng d ng trên Internet t gi i trí n truy c p c s d li u u c th c hi n trên WWW. 58
  59.  CH Ư NG IV. XÂY D NG NG D NG TRUY N T P I. GIAO DI N L P TRÌNH I.1. Giao di n l p trình B giao th c TCP/IP ã nh ngh a y các giao th c truy n thông các máy tính trên m ng có th giao ti p v i nhau, che i c u trúc v t lý c a m ng. Tuy nhiên, xây d ng các ng d ng thì s d ng TCP/IP là không , b i vì ng i l p trình s ph i t mình xây d ng nh ng th t c gi i quy t t ng s ki n, m t giao di n (Application Program Interface) l p trình là c n thit cung c p cho ng i l p trình m t cách ti p c n n gi n, d hi u h n. Ti ến trình ứng d ụng Thư viện Giao diện với nhân hệ điều hành Giao di ện v ới ph ần c ứng Ph ần c ứng UNIX cung c p cho ng i l p trình hai giao di n chính cho l p trình C: Sockets l n u tiên xu t hi n trong b n BSD UNIX n m 1982 và nhanh chóng phát tri n r ng rãi trong m t kho ng th i gian ng n. c phát tri n thêm vào n m 1990 h tr giao th c ISO. Socket c g n v i kh nng truy n thông d dàng gi a các ti n trình c trên m ng và trên m t máy tính. M c tiêu c a nó là che d u càng nhi u càng t t nh ng gì x y ra t ng truy n thông phía d i. 59
  60. TLI (Transport Layer Interface) Phát tri n u tiên cho UNIX System V 3.0 có nh ng hàm và th t c t ng ng v i Socket nh ng mô hình ph c tp h n t c tính m m d o h n. I.2. Network I/O và file I/O H iu hành UNIX, có 6 l i g i h th ng vào ra file ó là: open : M file. creat : T o file. close : óng file. read : c t file. write : Ghi file. lseek : Chuy n con tr file. Và UNIX coi m i thi t b u nh m t file, có th c truy c p nh m t file. Tuy nhiên vi c vào ra trên m ng v i giao di n l p trình ng d ng ph c t p hn vì: Mô hình Client-Server là không i x ng, ta ph i xác nh ch ng trình nào óng vai trò Client, ch ng trình nào óng vai trò Server. Mt i tho i trên m ng có th là h ng k t n i ho c không k t n i. Mt ti n trình con có th s d ng file descriptor c a ch ng trình cha truy n cho làm vi c v i file mà không c n bi t n tên file th c s . Các ng dng trên m ng c n bi t c u kia c a k t n i ch c ch n r ng nó c phép òi h i d ch v . Trong ph n nói v giao th c TCP/IP chúng ta ã bi t thi t l p k t n i cn nhi u tham s h n i v i file I/O, ó là giao th c (protocol), a ch IP ích (Destination IP Address), a ch IP ngu n (Source IP Address), s hi u c ng ích (Destination port number), s hi u c ng ngu n (Source port number). 60
  61. Giao di n m ng ph i h tr nhi u giao th c truy n thông ví d các chu n ca t ng cao v i t ng th p h n. I.3. Làm vi c v i Socket Nh ã gi i thi u trên, Socket c g n v i kh n ng truy n thông d dàng gi a các ti n trình c trên m ng và trên m t máy tính. Và nó là che d u càng nhi u càng t t nh ng gì x y ra t ng truy n thông phía d i. Chúng ta s l a ch n Socket phát tri n ng d ng c a mình trên m ng d a trên mô hình Client-Server. Application Socket Library User Kernel Stream Head SHOCKMOD TPI Transport Provider I.3.1. Socket Nói chung c ch socket t ng t v i c ch truy nh p t p trong UNIX. Khi cn thi t ti n trình có th t o ra m t socket, h th ng tr l i k t qu là m t socket descriptor. S khác bi t gi a file descriptor và socket descriptor ch file descriptor c g n li n v i m t t p hay thi t b c nh còn socket descriptor không b g n v i m t a ch nào. Ch ng trình có th cung c p a 61
  62. ch t i m i l n truy nh p t i socket hay c ng có th g n socket descriptor v i mt a ch nh t nh. Do nó t ng thích v i c ch truy nh p t p, nên v n có th dùng các l nh thông d ng nh read , write i v i socket. Mt Socket c dùng nh m t endpoint. M i Socket g n v i m t nhóm SHOCK_STREAM s d ng cho d ch v h ng k t n i . SHOCK_DGRAM s d ng cho d ch v không k t n i. SHOCK_RAW cung c p truy c p tr c ti p vào giao th c xây d ng công c qu n tr m c user. SHOCK_SEQPACKET Gi ng nh SHOCK_STREAM nh ng cung c p biên gi i các mesage. SHOCK_RDM Cung c p d ch v không k t n i n gi n. I.3.2. a ch Socket Có hai lo i a ch c gán v i m t socket: a ch local và a ch TCP/IP. a ch này c khai báo là nh ng b n ghi và c dùng làm tham s cho nh ng l nh h th ng và th t c truy nh p socket. a ch local là a ch xác nh socket trong n i b máy. Cu trúc a ch c c b ưc mô t nh ư sau Address family Address bytes 0-1 Address bytes 2-5 Address bytes 6-9 Address bytes 10-13 struct sock_addr { u_short sa_family; /* address family */ char sa_data[14]; /* up to 14 bytes address */ }; Tr ng address family s quy t nh c u trúc a ch c a tr ng Address bytes phía sau vì socket h tr cho nhi u giao th c khác nhau nên ng v i mi giao th c tr ng a ch s có c u trúc khác nhau. 62
  63. Protocol family Description PF_UNSPEC Unspecified family PF_UNIX UNIX domain PF_INET Internet protocols PF_IMPLINK Arpanet IMP address PF_PUP Old Xerox protocols PF_CHAOS M.I.T. CHAOS protocols PF_NS Xerox Network system protocols PF_NBS NBS protocols PF_ECMA European Computer Manual PF_DATAKIT DATAKIT protocols PF_CCITT CCITT protocols PF_SNA IBM System Network Architeture PF_DECnet DECnet protocols PF_DLI DEC direct data link interface PF_LAT LAN terminal interface PF_HYLINK NSC Hyperchannel PF_APPLETALK Apple Talk protocols PF_NIT Network interface tap PF_802 IEEE 802.2 PF_OSI OSI protocols PF_X25 CCITT X.25 PF_OSINET OSI protocols PF_GOSIP U.S.government OSI protocols Protocol Families 63
  64. a ch TCP/IP c khai báo v i tên sockaddr_in . Nó ch a s hi u port và a ch IP 32-bit. Address family Protocol port IP Address Unused (0) Unused (0) struct in_addr /* 32-bit IP Addresss */ { u_long s_addr; /* network byte order */ }; struct sockaddr_in { short sin_family; /* = AF_INET */ u_short sin_port; /* 16-bit port number */ struct in_addr sin_addr; /* 32-bit IP Addresss */ char sa_zero[14]; /*unused*/ }; I.3.3. Mt s l i g i t o l p socket Li g i s ocket(): Mu n làm vi c v i socket thì vi c u tiên là ph i t o socket ó. làm vi c ó c n g i l nh socket() v i các tham s c n thi t. Hàm tr l i m t socket descriptor n u thành công, -1 n u có l i. int socket (int family , int type , int protcol ) Tham s family xác nh h giao th c c s d ng v i socket nh ã nói n tr n. AF_UNIX Giao th c n i b UNIX AF_INER Giao th c Internet(TCP/IP) AF_NS Giao th c Xeror NS AF_IMPLINK Giao th c l p IMP Tham s type xác nh ki u c a liên k t. Nh ng ki u có th s d ng là dng stream có tin c y cao (SOCK_STREAM), d ng datagram 64
  65. (SOCK_DGRAM) hay dng thô (SOCK_RAW) cho phép truy nh p t i mc th p c a m ng. Ví d : AF_UNIX AF_INE AF_NS T SOCK_STREAM Có TCP Có SOCK_DGRAM Có UDP Có SOCK_RAW IP Có Do ó tham s th ba xác nh chính xác giao th c nào c s d ng cho socket. Tuy v y trong r t nhi u ng d ng tham s này không c s d ng. Li g i bind() Khi m i c t o ra, socket không c g n v i b t c a ch nào. Nói riêng vi TCP/IP là nó ch a c gán v i s hi u port c a ti n trình g i, s hi u port c a ti n trình nh n c ng nh a ch IP. Nhi u ch ng trình không quan tâm n s hi u port và a ch c a nó, và dành cho ph n m m giao th c t gán. Tuy nhiên các ch ng trình khác v n c n bi t n a ch c a mình. L nh bind gán thi t l p m t a ch local cho socket và ng ký nó v i h thng. int bind(int sock , struct sockaddr * localaddr , int addrlen ) Li g i bind() c s d ng trong các tr ng h p sau: Ch ng trình server ng ký m t a ch thông d ng v i h th ng. M i d li u n a ch này s c chuy n cho nó. Mt ch ng trình client ng ký m t a ch c bi t. Mt ch ng trình client có ki u không k t n i (connectionless) mu n ki m tra xem a ch c a nó có h p l hay không. Li g i connect thi t l p c m t liên k t gi a client v i server, ti n trình c n ph i g i lnh connect. int connect(int sock , struct sockaddr * seraddr , int addrlen ) 65
  66. Tham s l nh này t ng t i v i l nh bind() nh ng seraddr tr t i a ch ca server (t c là u kia c a liên k t). i v i các giao th c có liên k t (connection-oriented), connect() s t o lp m t liên k t th c s gi a hai máy. Các thông tin c trao i nh m th ng nh t m i tham s liên quan. Nó s ch a thoát ra n u nh ch a thi t lp c liên k t ho c ch a nh n c thông báo l i. i v i các giao th c không liên k t (connectionless) l nh connect() n gi n ch c t gi a ch server (bi n seraddr ) ti n trình sau này s d ng khi trao i d li u. V i giao th c này vi c g i l nh connect() có th b qua nh ng vi c s d ng nó s t o ra s thu n ti n i v i ng i l p trình. Sau khi ng ký a ch v i h th ng thì s không c n ph i xác nh l i a ch m i khi g i i các datagram. Ng i s d ng có th dùng các l nh read, write, recv, send t ng t nh các socket có k t n i. Ngoài ra, connect còn ki m tra xem có th c s m t ti n trình nào nh n thông tin mình s g i hay không. N u a ch g i không t n t i connect s tr l i l i cho ti n trình g i. Vi c này làm cho ti n trình có th x lý l i t t h n so v i các giao th c không k t n i (ví d UDP). M t datagram có th ch a m t a ch sai và hoàn toàn không có ng i nh n. Li g i listen() Ta s xem xét m t ti n trình server, ti n trình này u tiên t o ra m t socket, gn nó v i m t port thông d ng r i ch cho n khi có m t yêu c u c g i ti. N u nó là m t liên k t k t n i th c s , ho c nó ph i x lý quá lâu i v i mi yêu c u, s x y ra tr ng h p là m t yêu c u m i s t i trong khi yêu c u c ch a c x lý xong. tránh vi c các yêu c u m i b t ch i, server ph i khai báo v i ph n m m c a giao th c t o ra cho nó m t hàng i các yêu cu. L nh listen() s khai báo hàng i này. int listen(int sock , int qlen ) 66
  67. Tham s sock là socket descriptor c dùng b i server. Tham s qlen quy t nh chi u dài hàng i các yêu c u. Giá tr t i a c a tham s này là 5. Khi hàng i này ã y, h th ng s không ch p nh n thêm m t yêu c u nào khác. M i yêu c u t i sau ó s b hu b . listen() ch áp d ng v i socket ki u STREAM. Li g i accept() Sau khi ti n trình server g i các l nh socket(), bind(), listen() t o ra m t socket, g n nó v i m t port thông d ng, xác nh chi u dài hàng i, server s gi l nh accept() t o ra m t k t n i hoàn thi n. int accept(int sock , struct sockaddr * addr , int addrlen ) Tham s addr dùng tr l i a ch c a ti n trình g i yêu c u (client). accept() s l y yêu c u u tiên trong hàng i và t o ra m t socket m i có cùng thu c tính v i sock. Nu trong hàng i không có m t yêu c u nào thì nó s ch cho n khi có m t yêu c u c g i t i. Socket sock vn c gi nguyên do v y server v n ti p t c ch p nh n các yêu c u khác g i t i socket này. Vi cách ti p c n t ng tác, server t x lý gi i quy t yêu c u sau ó óng socket này l i và quay v x lý ti p các yêu c u sau ó. Còn i v i ph ng pháp ng th i, sau khi l nh accept() tr l i k t qu server s sinh ra m t ti n trình con gi i quy t yêu c u. Ti n trình con s nh n c m t b n sao c a socket m i. Trong khi ó ti n trình server s l p tc óng socket m i c a nó sau khi t o ra ti n trình con và tr l i g i accept() nh n m t yêu c u m i. Li g i close() Khi m t ti n trình thôi không s d ng socket thì nó g i l nh close() 67
  68. int close(int sock ) sock là socket c n hu b . Khi m t ti n trình k t thúc vi m i lý do, h th ng s óng t t c các socket còn m . i v i các giao th c tin c y, m c dù socket ã b óng nh ng kernel v n c g ng g i i các d li u còn l i trong hàng i d li u. I.3.4. Mt s l i g i g i d li u qua socket Có 5 l i g i c dùng g i d li u qua socket. Các l nh write, writev, send làm vi c v i các socket ã k t n i vì chúng không cho phép khai báo a ch ng i nh n. Li g i send() Li g i send có 4 tham s : int send(int sock , char * buff , int len, int flag ) sock ch nh socket c s d ng, buff tr t i vùng d li u c g i i, len xác nh s byte trong buff c g i i. flag cho phép ng òi g i ch n m t s cách th c g i d li u ví d nh gi d li u out-of-band Các tham s này khác nhau i vi m i lo i socket. send() tr l i mã l i cho ch ng trình g i ch ng trình bi t c thao tác có thành công hay không. Li g i write() Do cách th c truy nh p t i socket t ng t truy nh p n file nên có th dùng lnh h th ng write g i d li u qua socket. int write(int fd , char * buff , int len ) Tham s fd có th là m t socket descriptor ho c file descriptor. Li g i writev() 68
  69. g i i m t danh sách các kh i d li u ta dùng int writev(int fd , struct iovec iovector[] , int vectorlen ) Các l i g i sendto(), sendmsg() c dùng cho các socket không k t n i. Hai l nh này yêu c u ph i cung c p a ch ng i nh n. int sendto(int sock , char * buff , int len, int flag, struct sockaddr * destaddr , int addrlen ) Bn tham s u gi ng nh b n tham s c a send(). Hai tham s sau là a ch c a ng i nh n và dài c a a ch . Do sendto() có quá nhi u tham s , l p trình viên có th s d ng l i g i sendmsg() int sendmsg(int sock , struct msghdr msg[], int flag ) Vi tham s msg là m t c u trúc có ch a a ch và danh sách nhi u on d li u c n g i i. I.3.5. Mt s l i g i nh n d li u t socket T ng ng v i 5 l nh g i d li u có 5 l nh dùng nh n d li u v i tham s và c ch hoàn toàn gi ng nhau. int recv(int sock , char * buff , int len, int flag ) int read(int fd , char * buff , int len ) int readv(int fd , struct iovec iovector[] , int * vectorlen ) int recvfrom(int sock , char * buff , int len, int flag, struct sockaddr * destaddr , int * addrlen ) int recvmsg(int sock , struct msghdr msg[], int flag ) 69
  70. II. MÔ HÌNH CLIENT-SERVER Theo cách nhìn c a ng i l p trình, TCP/IP gi ng nh h u h t các giao th c truy n thông khác cung c p c ch c b n truy n d li u. c bi t, TCP/IP cho phép ng i l p trình thi t l p truy n thông gi a hai ch ng trình ng dng và truy n d li u qua l i. TCP/IP cung c p k t n i bình ng gi a các ng d ng k c các ng d ng ch y trên cùng m t máy. Mt phát tri n c a mô hình peer-to-peer là mô hình Client-Server ã tr thành mô hình c b n c s d ng trên m ng máy tính. Ch ng trình Server là mt ch ng trình ch i k t n i t ch ng trình Client và cung c p d ch v cho Client. Mô hình ưc mô t nh ư sau: Ti n trình Server c kh i ng trên m t h th ng nào ó sau ó ch i mt ti n trình Client k t n i n yêu cu d ch v . Ti n trình Client c kh i ng trên cùng h th ng máy v i ch ng trình Server ho c t m t h th ng khác k t n i v i h th ng ch thông qua mng. Client g i yêu c u qua m ng t i ti n trình Server òi h i m t s dch v nh : Tr l i ngày gi cho Client In m t file cho Client c ho c ghi file vào h th ng file c a Server Cho phép Client login vào h th ng Server Ch y ch ng trình c a Client trên h th ng Server Sau khi cung c p d ch v cho Client, Server ti p t c ngh và ch i k t ni khác. Chúng ta có th chia ti n trình Server làm 2 ki u: T ng tác (Interative Server ): Khi Client òi h i nh ng d ch v ã ng ký tr c v i kho ng th i gian th c hi n nh , Server t làm công vi c ó ví d d ch v tr l i ngày gi . 70
  71. ng th i (Concurrent Server): V i nh ng yêu c u òi h i th i gian th c hi n l n, ti n trình Server sinh m t ti n trình con th c hi n yêu c u còn nó ti p t c ch i yêu c u khác. D ch v in file, c-ghi file c th c hi n theo ki u này. II.1. Mô hình Client-Server s d ng d ch v không k t n i Vi mô hình không k t n i, client không k t n i v i server mà ch g i d li u n s d ng l i g i sento(), ng c l i, server s d ng l i g i recvfrom() ch i d li u t client chuy n n. L i g i recvfrom() tr l i a ch c a client, nh ó server có th g i k t qu l i cho client. Server (connectionless protocol) socket() bind() Client recvfrom() socket() block until data received bind() from client data (request) sendto() process request sendto() data (reply) recvfrom() Lời gọi socket cho mô hình client-server không kết nối 71
  72. II.2. Mô hình Client-Server s d ng d ch v h ư ng k t n i Vi mô hình Client-Server s d ng d ch v h ng k t n i, u tiên Server c kh i ng và ch i m t k t n i t client. Sau khi k t n i c thi t l p, hai bên luân phiên nhau g i nh n d li u thông qua ng truy n. Server (connection -oriented protocol) socket() bind() listen() accept() Client block until connection from socket() client Connection establishment Connect() data (request) write() read() Process request write() data (reply) read() Lời gọi socket cho mô hình client-server hướng kết nối 72
  73. III. XÂY DNG CH Ư NG TRÌNH TRUY N T P III.1. Thi t k và cài t ch ư ng trình III.1.1. Giao th c ng d ng c xây d ng và s d ng trong ch ơ ng trình Bn thân giao th c TCP là m t giao th c h ng k t n i và áng tin c y, giao th c này m b o d li u truy n vào socket y , nh ng t ng c ng tính tin c y c a ch ng trình ng d ng và ki m soát vi c truy n d li u nh t là trên các m ng có tr l n hay nh ng m ng th ng xuyên x y ra hi n t ng quá t i, m t giao th c ng d ng riêng c xây d ng cho ch ng trình. Gói tin c a giao th c ng d ng ưc mô t nh ư sau : 0 1 2 D li u t i a 4094 byte Size Data Size dài 2 byte ch a dài c a ph n d li u c a gói tin. Data ch a d li u, tr ng này có dài t i a là 4094 byte vì giao th c s d ng gói tin dài t i a 4096 byte. Vi c s d ng các k t n i: Ch ng trình s d ng hai k t n i, m t truy n l nh và m t truy n d li u gi a client và server. Kênh truy n iu khi n dùng truy n các l nh và các thông báo có tính ch t iu khi n, iu này làm gi m tính ph c t p trong vi c phân tích và x lý các l nh c a ch ng trình. Kênh truy n d li u c thi t l p ngay trong quá trình t o k t n i gi a ti n trình client và ti n trình server và c dùng n m i khi có d li u cn truy n nh n gi a client và server. Các kh i d li u có th c chia nh thành các gói tin và truy n trên kênh d li u, k t thúc m t kh i d li u là m t gói tin có dài b ng 0. 73
  74. Vi c s d ng hai kênh truy n Có 3 lo i l nh trong ch ư ng trình s d ng các kênh truy n nh ư sau : Client g i l nh n server và nh n v m t thông báo trên kênh iu khi n ví d thông báo l i ho c hoàn thành l nh. Client Server Gửi lệnh Nh ận l ệnh và thi hành Gửi thông báo hoàn thành Nh ận thông lệnh hoặc báo lỗi báo Client g i l nh n server và nh n v m t thông báo có d li u truy n “Openning data port”. Khi ó, client b t u nh n d li u trên kênh d li u cho t i khi nh n c m t gói tin có dài là 0. Client Server Gửi lệnh Nhận lệnh và thi hành Nh ận thông Gửi thông báo có d ữ li ệu c ần báo truyền Nh ận d ữ li ệu ở kênh Gửi l ần lư ợt các gói tin k ết dữ liệu tới khi gói thúc bởi một gói có độ dài là tin có độ dài là 0 0 74
  75. Client g i l nh yêu c u truy n t p lên server, server g i l i thông báo ch p nh n. Client ghi d li u c n truy n vào kênh d li u, sau khi ghi xong, client ch i m t thông báo c a server trên kênh iu khi n truy n l i s lng byte ã nh n và thông báo trên màn hình c a ng i s d ng. Quá trình truy n nh n thông tin trên kênh d li u c ng có th c iu khi n tr c ti p trên kênh iu khi n ví d d ng truy n. Client Server Gửi yêu c ầu truy ền dữ liệu Nh ận l ệnh Gửi thông báo ch ấp nh ận Gửi l ần lư ợt các gói tin k ết Nh ận d ữ li ệu ở kênh thúc bởi một gói có độ dài là dữ liệu tới khi gói 0 tin có độ dài là 0 Nh ận và thông báo v ới ngư ời Thông báo s ố byte đã nh ận sử dụng số byte truyền III.1.2. Cài t ch ơ ng trình Ch ng trình truy n t p c xây d ng d a trên mô hình client-server s dng th vi n socket, giao th c l p d i là giao th c h ng k t n i TCP. Ti n trình server ho t ng theo ki u ng th i (concurrent), server “nghe” cng 1998, khi có m t ti n trình client k t n i n, server nh n s hi u c ng ca client, sinh ti n trình con ph c v còn b n thân ti n trình cha ti p t c quay l i nghe. Ti n trình server ph c v t o m t k t n i l nh truy n l nh và m t k t n i d li u truy n các kh i d li u gi a client và server. 75
  76. Ph n server ch y trên các máy ch Unix, Windows NT ph c v cho ph n client ch y trên các máy Dos, Windows và Unix. Ch ng trình ho t ng g n gi ng FTP nh ng có m t s tính n ng nâng cao: Th c hi n l nh t xa v i EXEC: Ch ng trình server nh n l nh g i t i t client, th c hi n l nh ó và g i tr k t qu vào kênh truy n, ch ng trình client c và hi n th k t qu ó trên màn hình c a ng i s d ng. Th c hi n l nh c a h iêu hành trên máy tr m !CMD : M t s l nh c a h iu hành có th c th c hi n trên máy tr m, chúng c ti n trình client gi i quy t b ng cách g i ch ng trình thông d ch c a h iu hành. Kh n ng thay i kích th c b m v i BUFSIZ kích th c c a b m có th c thay i b ng cách thay i bi n môi tr ng ch a kích th c b m. Vi c này làm t ng n ng su t c a vi c truy n thông tin trên m ng. Mt s thao tác v i th m c trên máy ch nh t o th mc, xoá th m c c th c hi n b ng cách g i các l nh c a h iu hành Unix ho c nh ng hàm m c th p trong th vi n c a C. Ch ng trình còn cung c p m t s l nh làm vi c tr c ti p v i t p nh OPEN , LSEEK , READ , WRITE nh ng l nh này s d ng th nh ng li g i m c th p c a h th ng. Sau ây là nh ng l nh ã cài t trên server Lnh Mô t EXEC command [option] Ch y m t l nh Unix USER username [ PASS password] ng nh p h th ng PASSWD password Nh p password CHPWD newpassword i password PORT portnumber ng ký m t c ng truy n d li u ABORT Lo i b quá trình truy n PWD Lnh i th m c 76