Hướng dn thc hành H Điu Hành Nâng Cao
SOCKET
I. Gii thiu
Socket là mt giao din lp trình ng dng (API-Application Programming
Interface). Nó được gii thiu ln đầu tiên trong n bn UNIX - BSD 4.2. dưới
dng các hàm h thng theo cú pháp ngôn ng C (socket(), bind(), connect(),
send(), receive(), read(), write(), close() ,..). Ngày nay, Socket được h tr trong
hu hết các h điu hành như MS Windows (WinSock), Linux và được s dng
trong nhiu ngôn ng lp trình khác nhau: như C, C++, Java, Visual Basic, Visual
C++, . . .
II. Chc năng
Socket cho phép thiết lp các kênh giao tiếp mà hai đầu kênh được xác định
bi hai cng (port). Thông qua các cng này mt tiến trình có th nhn và gi d
liu vi các tiến trình khác.
Khoa CNTT – Trường ĐH KHTN -1-
Hướng dn thc hành H Điu Hành Nâng Cao
III. Phân loi
Có hai kiu socket:
1. Socket kiu AF_UNIX ch cho phép giao tiếp gia các tiến trình trong cùng
mt máy tính.
2. Socket kiu AF_INET cho phép giao tiếp gia các tiến trình trên nhng
máy tính khác nhau trên mng.
IV. Thành phn
¾ S hiu cng (Port Number) ca socket
Để có th thc hin các cuc giao tiếp, mt trong hai tiến trình phi công b
s hiu cng ca socket mà mình s dng. Mi cng giao tiếp th hin mt địa ch
xác định trong mt h thng. Khi tiến trình được gán mt s hiu cng, nó có th
nhn d liu gi đến cng này t các tiến trình khác. Tiến trình còn li cũng yêu
cu to ra mt socket.
¾ Địa ch IP
Ngoài s hiu cng, hai bên giao tiếp còn phi biết địa ch IP ca nhau. Địa
ch IP giúp phân bit máy tính này vi máy tính kia trên mng TCP/IP. Trong khi
s hiu cng dùng để phân bit các quá trình khác nhau trên cùng mt máy tính.
Khoa CNTT – Trường ĐH KHTN -2-
Hướng dn thc hành H Điu Hành Nâng Cao
Trong hình trên, địa ch ca tiến trình B1 được xác định bng 2 thông tin:
(Host B, Port B1):
Địa ch máy tính có thđịa ch IP dng 203.162.36.149 hay là địa ch
theodng tên min như www.cit.ctu.edu.vn
S hiu cng gán cho Socket phi duy nht trên phm vi máy tính đó, có
giá tr trong khang t 0 đến 65535 (16 bits). Trong đó, các cng t 1 đến
1023 được gi là cng h thng được dành riêng cho các quá trình ca h
thng.
S hiu cng Quá trình h thng
7 Dch Echo
21 Dch v FTP
23 Dch v telnet
25 Dch v mail (SMTP)
Khoa CNTT – Trường ĐH KHTN -3-
Hướng dn thc hành H Điu Hành Nâng Cao
81 Dch v Web
110 Dch v mail (POP)
V. Các chế độ giao tiếp
Xét kiến trúc ca h thng mng TCP/IP
Tng vn chuyn (transport layer) giúp chuyn tiếp các thông đip gia các
chương trình ng dng vi nhau. Nó có th hot động theo hai chế độ:
Giao tiếp có ni kết, nếu s dng giao thc TCP
Hoc giao tiếp không ni kết, nếu s dng giao thc UDP
Socket là giao din gia chương trình ng dng vi tng vn chuyn.
cho phép ta chn giao thc s dng t
ng vn chuyn là TCP hay UDP cho
chương trình ng dng ca mình.
Khoa CNTT – Trường ĐH KHTN -4-
Hướng dn thc hành H Điu Hành Nâng Cao
Bng sau so sánh s khác bit gia hai chế độ giao tiếp có ni kết và không
ni kết
Chế độ có ni kết Chế độ không ni kết
Tn ti kênh giao tiếp o gia hai bên
giao tiếp
D liu được gi đi theo chế độ bo
đảm: có kim tra li. truyn li gói tin
li hay mt, bo đảm th t đến ca
các gói tin . . .
D liu chính xác, Tc độ truyn
chm.
Không tn ti kênh giao tiếp o gia
hai bên giao tiếp
D liu đưc gi đi theo chế độ
không bo đảm: Không kim tra li,
không phát hin không truyn li gói
tin b li hay mt, không bo đảm th
t đến ca các gói tin . . .
D liu không chính xác, tc độ
truyn nhanh.
Thích hp cho các ng dng cn tc
độ, không cn chính xác cao: truyn
âm thanh, hình nh . . .
VI. Xây dng ng dng Client-Server vi Socket
Socket là phương tin hiu qu để xây dng các ng dng theo kiến trúc
Client-Server. Các ng dng trên mng Internet như Web, mail, FTP là các ví d
đin hình.
Phn này trình bày các bước cơ bn trong vic xây dng các ng dng
Client-Server s dng Socket làm phương tin giao tiếp theo c hai chế độ: hướng
Khoa CNTT – Trường ĐH KHTN -5-