Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 1
LỜI NÓI ĐẦU
Thế kỷ 21 đƣợc mệnh danh là thế kỷ của công nghệ thông tin, với sự bùng nổ mạnh
mẻ về khoa học công nghệ. Đây là kỷ nguyên của nền văn minh dựa trên cơ sở công
nghiệp trí tuệ . Ngày nay, tin học đã trở thành một môn khoa học quan trọng trên thế
giới.
Sự phát triển mạnh mẽ nhƣ vậy thì công việc lập trình các ứng dụng nhằm phục vụ
nhu cầu, lợi ích của con ngƣời trở nên cấp thiết. Máy tính đã trở thành công cụ đắc
lực và không thể thiếu của con ngƣời. Các tổ chức, công ty hay các cơ quan cần phải
xây dựngluận văn - báo cáo - tiểu luận chuyên ngành xây dựng hệ thống mạng máy
tính cho riêng mình để trao đổi dữ liệu giữa các bộ phận. Dữ liệu đƣợc truyền đi trên
mạng phải đảm bảo: dữ liệu đƣợc chuyển tới đích nhanh chóng và đúng đắn. Hầu hết
dữ liệu đƣợc truyền qua mạng là truyền dƣới dạng file.
Nhằm tìm hiểu thấu đáo một trong số các phƣơng pháp truyền file qua mạng em
chọn đề tài "Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền
File Qua Mạng Lan”.Với lập trình socket sẽ bắt buộc các máy đó phải đƣợc nối mạng
với nhau. Ta đã thấy các máy muốn trao đổi dữ liệu qua mạng, chúng sẽ tạo ra ở mỗi
phía một socket và trao đổi dữ liệu bằng cách đọc/ghi từ socket. Khi một chƣơng trình
tạo ra một socket, một định danh dạng số (định danh dạng số này còn đƣợc gọi là số
hiệu cổng) sẽ đƣợc gán cho socket. Việc gán số hiệu cổng này cho socket có thể đƣợc
thực hiện bởi chƣơng trình hoặc hệ điều hành. Trong mỗi gói tin mà socket gửi đi có
chứa hai thông tin để xác định đích đến của gói tin:
Một địa chỉ mạng để xác định hệ thống sẽ nhận gói tin
Một số định danh cổng để nói cho hệ thống đích biết socket nào trên nó sẽ nhận
dữ liệu
Mục tiêu của đồ án là tìm hiểu về mạng máy tính và kĩ thật lập trình socket với
ngôn ngữ lập trình là C#, trên cơ sở đó xây dựng ứng dụng truyền file trên mạng cục
bộ. Đồ án sẽ xây dựng thử nghiệm một hệ thống cho phép trao đổi dữ liệu dƣới dạng
truyền file, tƣơng tác điểm – điểm trên mạng LAN. Đồ án đƣợc trình bày gồm chƣơng
với bố cục nhƣ sau :
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 2
CHƢƠNG I: Tổng Quan Về Lập Trình Mạng
CHƢƠNG II: Lập Trình Socket Với C#
CHƢƠNG III: Xây Dựng Và Thiết Kế Chƣơng Trình
TÀI LIỆU THAM KHẢO
Do thời gian thực hiện đồ án ngắn, nên sẽ có nhiều hạn chế và sai sót trong qúa
trình thực hiện, mong thầy cô và các bạn đóng góp ý kiến để đề tài của nhóm em đƣợc
hoàn chỉnh hơn. Từ đó làm cơ sở để nhóm có thể củng cố và phát triển thêm .
Cuối cùng, nhóm em xin chân thành cảm ơn thầy Vũ Song Tùng và các bạn trong
lớp đã góp ý giúp đỡ nhóm em hoàn thành xong đồ án này.
Hà Nội, 30/05/2011
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 3
MỤC LỤC
LỜI NÓI ĐẦU 1
MỤC LỤC 3
DANH MỤC HÌNH VẼ 5
CHƢƠNG I 6
TỔNG QUAN VỀ LẬP TRÌNH MẠNG 6
1.1. MÔ HÌNH THAM CHIẾU OSI 6
1.2. CHỒNG GIAO THỨC TCP/IP 9
1.3. MÔ HÌNH TRUYỀN THÔNG TRONG CẤU TRÚC MẠNG 11
1.3.1. Nguyên tắc truyền thông 11
1.3.2. Nguyên tắc của phƣơng pháp phân tầng 12
1.4. ĐỊA CHỈ IP – CÁC ĐỊA CHỈ IP DÀNH RIÊNG 14
1.5. GIAO THỨC TRUYỀN FILE FTP 14
1.5.1. Khái niệm về giao thức FTP 14
1.5.2. Đặc điểm và nguyên lý hoạt động 15
1.5.2.1. 16
1.5.2.2. 18
1.5.2.3. 20
1.5.2.4. 24
CHƢƠNG II 26
LẬP TRÌNH MẠNG VỚI SOCKET 26
2.1. TỔNG QUAN VỀ C# 26
2.1.1. Cơ Bản Về NET Framework 26
2.1.2. Các thành phần của .NET Framework 26
2.1.3. Các tính năng cơ bản của ngôn ngữ lập trình C# 27
2.1.4. Các ứng dụng của C# 27
2.1.5. Các lợi ích của C# 27
2.1.6. Môi trƣờng phát triển tích hợp Visual Studio .NET 2005 27
2.2. GIỚI THIỆU VỀ LẬP TRÌNH SOCKET 28
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 4
2.3. LẬP TRÌNH MẠNG VỚI TCPSOCKET 29
2.3.1. Mô hình giao thức 29
2.3.2. Thiết lập kết nối 30
2.3.3. Truyền nhận dữ liệu 32
2.3.4. Đóng liên kết 32
2.4. LẬP TRÌNH MẠNG VỚI UDP SOCKET 33
2.4.1. Giao thức UDP 33
2.4.2. Một số thuật ngữ UDP 34
2.4.3. Hoạt động của giao thức UDP 35
2.4.4. Các nhƣợc điểm của giao thức UDP 35
2.4.5. Các ƣu điểm của UDP 36
2.4.6. Khi nào thì nên sử dụng UDP 37
2.5. MÔ HÌNH CLIENT/SERVER 37
2.5.1. Tổng quan 37
2.5.2. Giao thức cho ứng dụng Client/Server 44
CHƢƠNG III 48
PHÂN TÍCH THIẾT KẾ CHƢƠNG TRÌNH 48
3.1. MỤC ĐÍCH CỦA ĐỀ TÀI 48
3.2. GIỚI THIỆU VỀ CHƢƠNG TRÌNH 48
3.3. GIỚI THIỆU THÀNH VIÊN VÀ PHÂN CÔNG NHIỆM VỤ: 49
3.3.1. Giới thiệu thành viên: 49
3.3.2. Phân công nhiệm vụ các thành viên: 49
3.3.2.1. 49
3.3.2.1. 49
3.4. GIAO DIỆN VÀ SỬ DỤNG CHƢƠNG TRÌNH: 50
3.4.1. Giao diện: 50
3.4.1.1. 50
3.4.1.2. 55
3.4.2. Sử dụng chƣơng trình: 59
KẾT LUẬN 60
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 5
TÀI LIỆU THAM KHẢO 61
DANH MỤC HÌNH VẼ
Hình I - 1. Mô hình OSI 6
Hình I - 2. Mô hình TCP/IP 10
Hình I - 3. Mô hình truyền thông đơn giản 3 tầng 12
Hình I - 4. Trao đổi giữa các tầng 14
Hình I - 5. Các tiến trình trong mô hình FTP 17
Hình I - 6. Tiến trình làm việc dạng chủ động trong FTP 21
Hình I - 7. Tiến trình làm việc dạng bị động trong FTP 22
Hình II - 1. Các giao thức trong lập trình Socket 29
Hình II - 2. Kết nối TCP 29
Hình II - 3. Dạng thức của gói tin UDP 33
Hình III - 1. Quá trình kết nối 48
Hình III - 2. Giao diện chƣơng trình Server 50
Hình III - 3. Giao diện chƣơng trình Client 55
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 6
CHƢƠNG I
TỔNG QUAN VỀ LẬP TRÌNH MẠNG
1.1. MÔ HÌNH THAM CHIẾU OSI
Hình I - 1. Mô hình OSI
- Mô hình tham
khác.
- ích sau:
o Chi
.
o
-
Mô hình tham
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 7
-
-
-
-
-
- Cách b
- Lớp ứng dụng (Application Layer):
-mail, Telnet,
- Lớp trình diễn (Presentation Layer):
- Lớp phiên (Session Layer):
quá trình giao ti
-
duplex.
- Lớp vận chuyển (Transport Layer):
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 8
sau:
o
o
o
- Lớp mạng (Network Layer):
- Lớp liên kết dữ liệu (Data link Layer):
o
o
o
o
o
o n dòng.
o n LLC (logical link control).
o
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 9
Các
- Lớp vật lý(physical):
.
1.2. CHỒNG GIAO THỨC TCP/IP
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 10
Hình I - 2. Mô hình TCP/IP
-
ARPAnet (Advanced Research Projects A
TCP (Transmission Control Protocol)
và IP (Internet P
-
giao
- Lớp ứng dụng:
- Lớp giao vận:
-to-
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 11
- Lớp Internet:
- Lớp giao tiếp mạng:
o
o
1.3. MÔ HÌNH TRUYỀN THÔNG TRONG CẤU TRÚC MẠNG
1.3.1. Nguyên tắc truyền thông
Để một mạng máy tính trở một môi trƣờng truyền dữ liệu thì nó cần phải có
những yếu tố sau:
-
-
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 12
-
- xét các module t cách nhau cho phép gim phc cho
và cài Ph pháp này rãi trong xây
dng m và các c trình trn thông và là phng pháp phân
ayer).
1.3.2. Nguyên tắc của phƣơng pháp phân tầng
-
và có cu trúc nhau nh: và chc ng mi
- Các nm lên nhau, c trao trc tip ga hai
trên xu d và ngc
- Cùng v xác nh chc i chúng ta xác m
quan gia hai nhau. trn cao
truy ln l nht sau truy qua ng lý
d các bit sau
truy lên l ng cao nht ca
- C có hai n có liên lý v nhau còn các trên cùng
t nhau. Liê logic m c thc
thông qua các tng d và p tuân theo nhng quy cht ch các quy
Hình I - 3. Mô hình truyền thông đơn giản 3 tầng
- Trong phân tng, m mô hình phát trin
o
Mô hình tham chi k các
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 13
o Mô hình Internet :
TCP/IP
- Xét trên ph l trình máy tính, ta xét mô hình phân t thu :
Nói chung trong trn thông có tham gia các thành các ch
trình ng dng, các ch trình truy thông, các máy tính và các m Các
ch trình ng là các ch ng thc
trên máy tính và có tham gia vào quá trình trao i thông hai máy
tính. Trên m máy tính vi hành nhi ( Windows, UNIX)
th thc ng trong có nhng ng
liên quan và các ng khác. Các máy tính m và
các qua máy tính này máy tính khác.
- gi thc gia m g m ng d khác trên
hai máy tính khác nhau thông qua m c thc sau: ng gi
chuy cho c trình trn thông trên máy tính ca nó, ch
trình truy thông gi chúng máy tính n Ch trình truy thông
trên máy l kim tra nó tr khi chn giao cho ng
- mô hình truy thông gin ng ta chia ch trình truy thông
thành ba không thu vào nhau là: ng ng, ng giao vn và
m
- Tầng tiếp cận mạng
mà nó c vào. máy tính gi p chuy
máy tính nh cho mng và m chn các thông
Ngoài ra máy i có m khác nhau mà m
- Tầng giao vận: thc h quá trình truy thông end-to-end gia 2 ng
không liên quan và nm trên ng mng. trn
không quan tâm t các ng dng trao liu mà quan
tâm làm sao cho các trao m cách an toàn. ng truy
m các liu và theo mà
lý. Trong truy ng ta ph có nhng c nh m
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 14
chính xác và rõ ràng các này không vào b
tng ng và chúng v cho tt các
- Tầng ứng dụng ca các module phc cho nhng g
ng các ng khác nhau là trn file, truy
Hình I - 4. Trao đổi giữa các tầng
1.4. ĐỊA CHỈ IP – CÁC ĐỊA CHỈ IP DÀNH RIÊNG
-
<Network Number, Host number>
-
(0-
Subneting
-
con
1.5. GIAO THỨC TRUYỀN FILE FTP
1.5.1. Khái niệm về giao thức FTP
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 15
-
- - -
FTP
do.
-
- -
1.5.2. Đặc điểm và nguyên lý hoạt động
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 16
1.5.2.1.
-
.
-
Tiến trình Server-FTP và User-FTP
FTP
--FTP.
Kênh điều khiển và kênh dữ liệu trong FTP
Mô h
o
o
Các tiến trình và thuật ngữ trong FTP
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 17
server.
FTP:
Hình I - 5. Các tiến trình trong mô hình FTP
Các tiến trình phía server:
o -
-PI
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 18
o -
file -DTP. S-
Các tiến trình phía client:
o User Protocol Interpret-
-
-
-DTP.
o -
-DTP. -
o
1.5.2.2. T
- M
-
-
-
TCP.
-
---
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 19
o -
o -
Trình tự truy cập và chứng thực FTP
username/password.
N--
G
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 20
Mở rộng về bảo mật FTP
1.5.2.3.
- - --
.
-
--
-
Kết nối kênh dữ liệu dạng chủ động
-
-
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 21
-
--
T
-
Hình I - 6. Tiến trình làm việc dạng chủ động trong FTP
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 22
Kết nối kênh dữ liệu dạng bị động
D
-
-
Hình I - 7. Tiến trình làm việc dạng bị động trong FTP
-
--
P-
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 23
Các vấn đề về tính hiệu quả và tính bảo mật trong việc chọn một phƣơng thức
kết nối
ví dụ
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 24
1.5.2.4.
- --
c
-
Stream mode
-
t
Sử Dụng Kỹ Thuật Lập Trình Socket Xây Dựng Chƣơng Trình Truyền File Qua Mạng Lan
Hoàng – Long – Ngọc – Nguyên – SET_HUST Trang 25
-
Block mode
Compressed mode
-