Khoa Công Ngh Thông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông
Chương 1
Tng quan v lp trình truyn thông
Mc đích
Chương này nhm cung cp cho các bn mt cái nhìn tng quan v các vn đề
liên quan trong lp trình truyn thông
Yêu cu
Sau khi hoàn tt chương này, bn có th:
Gii thích được Cơ chế giao tiếp liên quá trình (Inter-Process
Communication ) là gì.
Mô t chc năng, nhim v ca các tng trong mô hình OSI.
Định nghĩa v giao thc và bin lun được s cn thiết ca giao thc trong
truyn thông .
Mô t v b giao thc TCP/IP.
Định nghĩa mô hình Client – Server.
Phân bit được 2 chế độ giao tiếp: Nghn và Không nghn.
Phân bit được các kiu kiến trúc chương trình.
Biên Son: Ngô Bá Hùng - Nguyn Công Huy 1
Khoa Công Ngh Thông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông
1.1 Cơ chế giao tiếp liên quá trình là gì ?
Truyn thông là mt khái nim dùng để ch s giao tiếp, trao đổi thông tin gia hai
hay nhiu thc th trong mt h thng nào đó. Nếu h thng mà chúng ta xem xét là xã hi
loài người, thì truyn thông có th là quá trình trao đổi thông tin gia người vi người
trong cuc sng thông qua các phương tin truyn ti thông tin khác nhau như không khí
(trong trò chuyn trc tiếp), h thng đin thoi, sách, báo, các phương tin nghe nhìn,
mng máy tính...
Nếu h thng mà chúng ta xem xét là mt h thng máy tính hay mt h thng
mng thì truyn thông có th được phân thành hai mc:
Mc phn cng: là s giao tiếp, trao đổi thông tin gia các b phn vt lý
cu thành nên h thng máy tính như CPU, b nh, thiết b vào ra, card giao
tiếp mng, nho các phương tin truyn thông như h thng BUS ni, h
thng BUS vào ra hay các dây cáp mng . . .
Mc phn mm: là s giao tiếp, trao đổi thông tin gia các thành phn bên
trong ca mt chương trình hay gia các chương trình vi nhau thông qua
các cơ chế truyn thông được h tr bi các h điu hành, h điu hành
mng.
Trong các h thng máy tính đơn nhim (monotasking) c đin, ví d MS-DOS, ti
mt thi đim ch cho phép tn ti mt quá trình. Vic giao tiếp, trao đổi thông tin ch din
ra trong phm vi ca mt chương trình. Đó là s giao tiếp gia các th tc dưới hình thc
chia s các biến toàn cc, hay bng cách truyn các tham s khi gi hàm, th tc hay bng
giá tr tr v ca mt hàm . . . Ngược li, trong các h thng đa nhim (multitasking) có
nhiu quá trình tn ti song song nhau, mi quá trình được thc hin trong mt không gian
địa ch (Address space) riêng bit. Vic giao tiếp gia các quá trình mun thc hin được
đòi hi phi có nhng tin ích h tr bi h điu hành, h điu hành mng. Các tin ích
này thường được gi vi cái tên là Cơ chế giao tiếp liên quá trình (IPC - Inter-Process
Communication).
1.2 Phân loi cơ chế giao tiếp liên quá trình
Các cơ chế giao tiếp liên quá trình được h tr bi các h điu hành đa nhim, h
điu hành mng được chia ra làm hai loi:
Loi 1: Cơ chế giao tiếp liên quá trình h tr giao tiếp gia các quá trình trên
cùng mt máy tính. (Hình H1.1)
Hình 1.1 - Cơ chế giao tiếp liên quá trình loi 1
Biên Son: Ngô Bá Hùng - Nguyn Công Huy 2
Khoa Công Ngh Thông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông
Loi 2: Cơ chế giao tiếp liên quá trình h tr giao tiếp gia các quá trình nm
trên các máy tính khác nhau (Hình H1.2).
Hình 1.2 - Cơ chế giao tiếp liên quá trình loi 2
Trong cơ chế giao tiếp liên quá trình trên cùng mt máy, d liu trao đổi qua li
gia các quá trình phi đi xuyên qua ht nhân (kernel) ca h điu hành. Đó có th là mt
vùng nh dùng chung cho các quá trình đã được qui định trước bi h điu hành, hay mt
tp tin trên đĩa được qun lý bi h điu hành trong đó mt quá trình s ghi d liu vào,
quá trình khác đọc d liu ra, . . .
Trong cơ chế giao tiếp liên quá trình trên các máy tính khác nhau, d liu trao đổi
gia các quá trình không nhng phi đi qua ht nhân như cơ chế giao tiếp liên quá trình
trên mt máy tính mà hơn thế các ht nhân ca các máy có liên quan phi hiu nhau. Nói
cách khác các ht nhân phi tho thun trước vi nhau v các qui tc trao đổi thông tin
gia chúng. Thông thường ta gi các qui tc này là các giao thc (Protocol).
1.3 Mô hình tham kho OSI
Để d dàng cho vic ni kết và trao đổi thông tin gia các máy tính vi nhau, vào
năm 1983, T chc tiêu chun thế gii ISO đã phát trin mt mô hình cho phép hai máy
tính có th gi và nhn d liu cho nhau. Mô hình này da trên tiếp cn phân tng (lp),
vi mi tng đảm nhim mt s các chc năng cơ bn nào đó và được gi là mô hình OSI.
Để hai máy tính có th trao đổi thông tin được vi nhau cn có rt nhiu vn đề liên
quan. Ví d như cn có Card mng, dây cáp mng, đin thế tín hiu trên cáp mng, cách
thc đóng gói d liu, điu khin li đường truyn ... Bng cách phân chia các chc năng
này vào nhng tng riêng bit nhau, vic viết các phn mm để thc hin chúng tr nên d
dàng hơn. Mô hình OSI giúp đồng nht các h thng máy tính khác bit nhau khi chúng
trao đổi thông tin. Mô hình này gm có 7 tng:
7. Tng ng dng (Application Layer)
Đây là tng trên cùng, cung cp các ng dng truy xut đến các dch v mng.
Nó bao gm các ng dng ca người dùng, ví d như các Web Browser
(Netscape Navigator, Internet Explorer ), các Mail User Agent (Outlook
Express, Netscape Messenger, ...) hay các chương trình làm server cung cp
các dch v mng như các Web Server (Netscape Enterprise, Internet
Information Service, Apache, ...), Các FTP Server, các Mail server (Send
mail, MDeamon). Người dùng mng giao tiếp trc tiếp vi tng này.
6. Tng trình bày (Presentation Layer)
Tng này đảm bo các máy tính có kiu định dng d liu khác nhau vn có
th trao đổi thông tin cho nhau. Thông thường các máy tính s thng nht vi
nhau v mt kiu định dng d liu trung gian để trao đổi thông tin gia các
Biên Son: Ngô Bá Hùng - Nguyn Công Huy 3
Khoa Công Ngh Thông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông
máy tính. Mt d liu cn gi đi s được tng trình bày chuyn sang định
dng trung gian trước khi nó được truyn lên mng. Ngược li, khi nhn d
liu t mng, tng trình bày s chuyn d liu sang định dng riêng ca nó.
5. Tng giao dch (Session Layer)
Tng này cho phép các ng dng thiết lp, s dng và xóa các kênh giao tiếp
gia chúng (được gi là giao dch). Nó cung cp cơ chế cho vic nhn biết tên
và các chc năng v bo mt thông tin khi truyn qua mng.
4. Tng vn chuyn (Transport Layer)
Tng này đảm bo truyn ti d liu gia các quá trình. D liu gi đi được
đảm bo không có li, theo đúng trình t, không b mt mát, trùng lp. Đối
vi các gói tin có kích thước ln, tng này s phân chia chúng thành các phn
nh trước khi gi đi, cũng như tp hp li chúng khi nhn được.
3. Tng mng (Network Layer)
Tng này đảm bo các gói d liu (Packet) có th truyn t máy tính này đến
máy tính kia cho dù không có đường truyn vt lý trc tiếp gia chúng.
nhn nhim v tìm đường đi cho d liu đến các đích khác nhau trong h
thng mng.
2. Tng liên kết d liu (Data-Link Layer)
Tng này đảm bo truyn ti các khung d liu (Frame) gia hai máy tính có
đường truyn vt lý ni trc tiếp vi nhau. Nó cài đặt cơ chế phát hin và x
lý li d liu nhn.
1. Tng vt ký (Physical Layer)
Điu khin vic truyn ti tht s các bit trên đường truyn vt lý. Nó định
nghĩa các tín hiu đin, trng thái đưng truyn, phương pháp mã hóa d liu,
các loi đầu ni được s dng.
V nguyên tc, tng n ca mt h thng ch giao tiếp, trao đổi thông tin vi tng n
ca h thng khác. Mi tng s có các đơn v truyn d liu riêng:
Tng vt lý: bit
Tng liên kết d liu: Frame
Tng mng: Packet
Tng vn chuyn: Segment
Trong thc tế, d liu được gi đi t tng trên xung tng dưới cho đến tng thp
nht ca máy tính gi. đó, d liu s được truyn đi trên đường truyn vt lý. Mi khi
d liu được truyn xung tng phía dưới thì nó b "gói" li trong đơn v d liu ca tng
dưới. Ti bên nhn, d liu s được truyn ngược lên các tng cao dn. Mi ln qua mt
tng, đơn v d liu tương ng s đưc “tháo” ra.
Biên Son: Ngô Bá Hùng - Nguyn Công Huy 4
Khoa Công Ngh Thông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông
Đơn v d liu ca mi tng s có mt tiêu đề (header) riêng, được mô t trong
hình 1.3.
OSI ch là mô hình tham kho, mi
nhà sn xut khi phát minh ra h thng
mng ca mình s thc hin các chc năng
tng tng theo nhng cách thc riêng.
Các cách thc này thường được mô t dưới
dng các chun mng hay các giao thc
mng. Như vy dn đến trường hp cùng
mt chc năng nhưng hai h thng mng
khác nhau s không tương tác được vi
nhau. Hình 1.4 s so sánh kiến trúc ca các
h điu hành mng thông dng vi mô
hình OSI.
Hình 1.3 - X lý d liu qua các tng
Hình 1.4 - Kiến trúc ca mt s h điu hành mng thông dng
Để thc hin các chc năng tng 3 và tng 4 trong mô hình OSI, mi h thng
mng s có các protocol riêng:
UNIX: Tng 3 dùng giao thc IP, tng 4 giao thc TCP/UDP
Netware: Tng 3 dùng giao thc IPX, tng 4 giao thc SPX
Windows NT: ch dùng 1 giao thc NETBEUI
Nếu ch dng li đây thì các máy tính UNIX, Netware, NT s không trao đổi
thông tin được vi nhau. Vi s ln mnh ca mng Internet, các máy tính cài đặt các h
điu hành khác nhau đòi hi phi giao tiếp được vi nhau, tc phi s dng chung mt
giao thc. Đó chính là b giao thc TCP/IP, giao thc ca mng Internet.
Biên Son: Ngô Bá Hùng - Nguyn Công Huy 5