Tải bản đầy đủ (.pdf) (61 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.4 MB, 61 trang )

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 gim  phc  cho
   và cài  Ph pháp này     rãi trong  xây
dng m và các c trình trn thông và   là phng pháp phân
ayer).
1.3.2. Nguyên tắc của phƣơng pháp phân tầng
- 
 và  có cu trúc  nhau nh:    và chc ng  mi

- Các  nm  lên nhau,    c trao  trc tip ga hai 
  trên xu  d và ngc 
- Cùng  v xác nh chc   i  chúng ta  xác  m
quan  gia hai   nhau.    trn    cao   
 truy ln l    nht sau  truy qua ng   lý
d  các bit         sau    
truy lên  l  ng cao nht ca  

- C có hai   n có liên   lý v nhau còn các  trên cùng 
t   nhau. Liê logic  m c thc 
thông qua các tng d và p tuân theo nhng quy  cht ch các quy



Hình I - 3. Mô hình truyền thông đơn giản 3 tầng
- Trong  phân tng, m  mô hình  phát trin
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 trn thông có  tham gia  các thành  các ch
trình ng dng, 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    thc 
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 vi   hành  nhi ( Windows, UNIX)
th  thc     ng  trong  có nhng 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.
-  gi    thc  gia m g   m ng d khác trên
hai máy tính khác nhau thông qua m c thc   sau: ng  gi
chuy   cho c trình trn thông trên máy tính ca nó, ch
trình truy thông  gi chúng  máy tính n Ch trình truy thông
trên máy      l kim tra nó tr khi chn giao cho ng
 

-  mô hình truy thông  gin ng ta chia ch trình truy thông
thành ba  không  thu vào nhau là:  ng ng, ng giao vn và
   m
- Tầng tiếp cận mạng 
mà nó c  vào.       máy tính gi  p chuy
  máy tính nh cho mng và  m chn các thông 
 Ngoài ra máy i có    m    khác nhau mà m

- Tầng giao vận: thc h quá trình truy thông end-to-end gia 2 ng 
không liên quan   và nm  trên ng   mng.  trn 
 không quan tâm t   các ng dng  trao   liu mà quan
tâm  làm sao cho các    trao  m cách an toàn. ng truy 
 m  các  liu    và  theo    mà 
 lý. Trong  truy   ng ta ph có nhng  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  
tng ng  và chúng   v cho tt  các 
- Tầng ứng dụng  ca các module phc  cho   nhng g  
ng    các  ng  khác nhau  là trn 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

-




             







×