Tải bản đầy đủ (.docx) (25 trang)

Bài tập lớn lập trình mạng

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 (2.6 MB, 25 trang )

Trường Đại Học Bách Khoa Hà Nội
Viện Công Nghệ Thông Tin Và Truyền Thông
___________***___________

Báo cáo bài
tập lớn
Lập Trình Mạng
Đề tài: Tìm hiểu và
Server

thiết kế giao thức FTP-

Giảng viên hướng dẫn : TS.La Thế Vinh

Nhóm sinh viên thực hiện:

Hoàng Đình Hợi

MSSV:20131693

Nguyễn Hữu Dương

MSSV:20130737

Mai Văn Tuyến

MSSV:20134363

Hà Nội,2016



Mục Lục

Trang

I.Giao thức FTP là gì ?.......................................................................................2
1.Khái niệm giao thức FTP……………………………………………………………………………2


2.Hoạt động của giao thức FTP…………………………………………………………………….2.
3.Các phương thức truyền dữ liệu trong FTP...................................................3
3.1.Stream mode………………………………………………………………………………………….4
3.2.Block mode…………………………………………………………………………………………….4
3.3.Compressed mode………………………………………………………………………………….4
4.Các lệnh FTP(FTP Commands)……………………………………………………………………5
II.Thiết lập FTP-Server cá nhân bằng FileZilla…………………………………………………5
III.Các chức năng Đăng nhập, Download, Upload, Xóa file…………………………….13
1.Các thông điệp đáp trả trong mô hình FTP server-client…………………………….13
1.1.Đăng nhập……………………………………………………………………………………………..13
1.2.Download……………………………………………………………………………………………….13
1.3.Upload……………………………………………………………………………………………………14
2.Chạy chương trình và kiểm tra các chức năng…………………………………………..14
2.1.Đăng nhập……………………………………………………………………………………………..14
2.2.Download………………………………………………………………………………………………14
2.3.Upload………………………………………………………………………………………………….15
2.4.Tạo file, xem và sửa nội dung……………………………………………………………….16
2.5.Xóa file………………………………………………………………………………………………...18


4


Lời Mở Đầu
Ngày nay,internet đóng vai trò rất lớn trong việc phát triển kinh tế xã
hội, là nhân tố thúc đẩy xã hội ngày càng phát triển, tạo điều kiện cho
mọi người trên thế giới có thể kết nối, trao đổi, trò chuyện với nhau.
Chính vì thế, internet không thể thiếu trong xã hội hiện nay. Trong xã
hội hiện nay việc lướt web, chat, email, voip, chat, video, đang trở lên
phổ biến đối với mọi người trên thế giới. Bên cạnh đó, vấn đề trao đổi
file là không thể thiếu đối với người dùng đầu cuối. Giao thức FTP là
một giao thức trao đổi file khá phổ biến hiện nay. Tuy nhiên những hoạt
động xảy ra trong giao thức thì không phải ai cũng biết hết được cách
thức làm việc của giao thức này. Nên nhóm chúng em đã đi vào tìm
hiểu về giao thức FTP này.Và cụ thể hơn nhóm chúng em làm về phần
thiết kế và tìm hiểu giao thức FTP-Server.


5

I.Giao thức FTP là gì ?
1.Khái niệm giao thức FTP
FTP (viết tắt của File Transfer Protocol dịch ra là “Giao thức truyền tập tin“) là
giao thức truyền file giữa các máy tính. Giao thức này xuất hiện từ những năm
1971 (khi Internet vẫn chỉ là một dự án thử nghiệm) nhưng vẫn còn được sử dụng
rộng rãi cho đến tận ngày nay. FTP được đặc tả trong RFC 959.
FTP cho phép trao đổi file giữa hai máy tính.
Thông qua giao thức FTP, người dùng có thể tải dữ liệu như hình ảnh, văn bản, các
tập tin media (nhạc, video)… từ máy tính của mình lên máy chủ đang đặt ở một
nơi khác hoặc tải các tập tin có trên máy chủ về máy tính cá nhân. Giao thức FTP
được sử dụng nhiều nhất vào mục đích…
2.Hoạt động của giao thức FTP
Trong phiên làm việc của FTP, người dùng làm việc trên máy tính của mình và trao

đổi file với một máy tính ở chỗ khác. Để truy cập tới máy tính khác, người dùng
phải đăng nhập thông qua việc cung cấp định danh người dùng và mật khẩu. Sau
khi những thông tin này được kiểm chứng thì công việc truyền file từ hệ thống file
trên máy tính của mình đến hệ thống file ở đầu kia mới có thể được thực hiện.
FTP sử dụng hai kết nối TCP song song, một đường truyền thông tin điều khiển
(control connection) và một đường truyền dữ liệu (data connection). Các thông
tin điều khiển như thông tin định danh người dùng, mật khẩu truy nhập, lệnh thay
đổi thư mục, lệnh “PUT” hoặc “GET” file giữa hai máy tính được trao đổi qua
đường truyền thông tin điều khiển. Đường truyền dữ liệu để truyền file dữ liệu
thực sự. Vì FTP phân biệt luồng thông tin điều khiển với luồng dữ liệu nên nó
dược gọi là gửi thông tin điều khiển out-of-band.
FTP gồm 2 kết nối điều khiển và dữ liệu
Khi người dùng bắt đầu một phiên làm việc FTP, đầu tiên FTP sẽ thiết lập một
đường kết nối thông tin điều khiển TCP qua cổng 21 . Phía client của giao thức FTP
truyền thông tin về định danh người dùng và mật khẩu cũng như lệnh thay đổi
thư mục qua kết nối này. Khi người dùng có một yêu cầu trao đổi file (truyền
từ/đến máy người dùng), FTP mở một kết nối TCP để truyền dữ liệu qua cổng 20.
FTP truyền đúng một file qua kết nối này và ngay sau khi truyền xong thì đóng kết
nối lại. Nếu trong cùng phiên làm việc người dùng có yêu cầu truyền file thì FTP sẽ
mở một kết nối khác. Như vậy với FTP, luồng thông tin điều khiển được mở và tồn
tại trong suốt phiên làm việc của người dùng, nhưng mỗi kết nối dữ liệu được tạo
ra cho mỗi một yêu cầu truyền file (kết nối dữ liệu là không liên tục).


6

Trong suốt phiên làm việc, FTP server phải giữ lại các thông tin về trạng thái của
người dùng, đặc biệt nó phải kết hợp các thông tin điều khiển với tài khoản của
người dùng. Server cũng lưu giữ thư mục hiện thời mà người dùng truy cập cũng
như cây thư mục của người dùng. Ghi lại các thông tin trạng thái của mỗi phiên

làm việc hạn chế đáng kể tổng số phiên làm việc đồng thời.

Mô hình hoạt động của giao thức FTP

3. Các phương thức truyền dữ liệu trong FTP
Các phương thức truyền dữ liệu trong FTP. Khi kênh dữ liệu đã được thiết lập
xong giữa Server-DTP với User-DTP, dữ liệu sẽ được truyền trực tiếp từ phía client
tới phía server, hoặc ngược lại, dựa theo các lệnh được sử dụng. Do thông tin
điều khiển được gửi đi trên kênh điều khiển, nên toàn bộ kênh dữ liệu có thể
được sử dụng để truyền dữ liệu.
FTP có ba phương thức truyền dữ liệu, đó là: stream mode, block mode, và
compressed mode.
3.1. Stream mode :Trong phương thức này, dữ liệu được truyền đi dưới dạng các
byte không cấu trúc liên tiếp. Thiết bị gửi chỉ đơn thuần đầy luồng dữ liệu qua kết


7

nối TCP tới phía nhận. Không có một trường tiêu đề nhất định được sử dụng trong
phương thức này làm cho nó khá khác so với nhiều giao thức gửi dữ liệu rời rạc
khác. Phương thức này chủ yếu dựa vào tính tin cậy trong truyền dữ liệu của TCP.
Do nó không có cầu trúc dạng header, nên việc báo hiệu kết thúc file sẽ đơn giản
được thực hiện việc phía thiết bị gửi ngắt kênh kết nối dữ liệu khi đã truyền xong.
Trong số ba phương thưc, stream mode là phương thức được sử dụng nhiều nhất
trong triển khai FTP thực tế. Có một số lý do giải thích điều đó. Trước hết, nó là
phương thức mặc định và đơn giản nhất, do đó việc triển khai nó là dễ dàng nhất.
Thứ hai, nó là phương pháp phổ biến nhất, vì nó xử lý với các file đều đơn thuần
như là xử lý dòng byte, mà không để ý tới nội dung của các file. Thứ ba, nó là
phương thức hiệu quả nhất vì nó không tốn một lượng byte “overload” để thông
báo header.

3.2. Block mode: Đây là phương thức truyền dữ liệu mang tính quy chuẩn hơn, với
việc dữ liệu được chia thành nhiều khối nhỏ và được đóng gói thành các FTP
blocks. Mỗi block này có một trường header 3 byte báo hiệu độ dài, và chứa
thông tin về các khối dữ liệu đang được gửi. Một thuật toán đặc biệt được sử
dụng để kiểm tra các dữ liệu đã được truyền đi và để phát hiện, khởi tạo lại đối
với một phiên truyền dữ liệu đã bị ngắt.
3.3. Compressed mode: Đây là một phương thức truyền sử dụng một kỹ thuật nén
khá đơn giản, là “run-length encoding” – có tác dụng phát hiện và xử lý các đoạn
lặp trong dữ liệu được truyền đi để giảm chiều dài của toàn bộ thông điệp. Thông
tin khi đã được nén, sẽ được xử lý như trong block mode, với trường header.
Trong thực tế, việc nến dữ liệu thường được sử dụng ở những chỗ khác, làm cho
phương thức truyền kiểu compressed mode trở nên không cần thiết nữa.
Ví dụ: nếu bạn đang truyền đi một file qua internet với modem tương tự, modem
của bạn thông thường sẽ thực hiện việc nén ở lớp 1; các file lớn trên FTP server
cũng thường được nén sẵn với một số định dạng như ZIP, làm cho việc nén tiếp
tục khi truyền dữ liệu trở nên không cần thiết.
4.Các lệnh FTP(FTP Commands)


8

Lệnh (yêu cầu) từ client đến server và kết quả (trả lời) từ server tới client được
gửi thông qua kết nối điều khiển và được mã hoá bằng bảng mã ASCII 7 bit. Do
vậy giống như lệnh HTTP, người ta có thể đọc được lệnh FTP. Trường hợp các
lệnh viết liên tục thì cặp ký tự CR (carriage return) và LF (line feed) được sử dụng
để phân biệt các lệnh (và trả lời). Mỗi câu lệnh chứa 4 kí tự ASCII in hoa, một số
lệnh có tham số. Sau đây là một số câu lệnh hay gặp:
• USER username: sử dụng để gửi thông tin định danh người dùng cho server
• PASS password: dùng để gửi password cho server
• LIST: dùng để yêu cầu server gửi một danh sách các file trong thư mục hiện

thời. Danh sách này được gửi thông qua một kết nối dữ liệu TCP
• RETR filename: dùng để lấy một file từ thư mục hiện thời (trên máy ở xa)
• STOR filename: dùng để tải một file vào thư mục hiện thời (trên máy ở xa)
Thông thường có quan hệ 1-1 giữa lệnh của người dùng và lệnh của FTP . Ứng với
mỗi lệnh từ client là một trả lời của server. Câu trả lời là một mã 3 chữ số và có
thể có một thông báo kèm theo.

II.Thiết lập FTP-Server cá nhân bằng FileZilla
Quá trình thiết lập và cấu hình FTP-Server khá phức tạp, nhưng nếu tự tạo được 1
hệ thống FileZilla FTP-Server chúng ta hoàn toàn có thể biến chiếc máy tính sử
dụng Windows thành FTP server, sau đó thiết lập kết nối với nhiều máy tính client
khác. Về mặt bản chất, FileZilla FTP-Server là 1 ứng dụng mã nguồn mở miễn phí
dành cho hệ điều hành Windows, hỗ trợ giao thức kết nối bảo mật FTP và FTP qua
SSL/TLS tới server. Khi sử dụng giao thức SSL, chúng ta có thể mã hóa các kết nối
giữa các host với nhau để đảm bảo lượng dữ liệu được truyền tải an toàn, bên
cạnh đó thì ứng dụng này còn cho phép người dùng tùy chọn nhiều địa chỉ và
cổng server khác nhau.
FileZilla Server Interface không chỉ cung cấp cho người dùng sự tiện lợi trong quá
trình tạo và quản lý người dùng, mà còn thiết lập quyền đọc hoặc ghi đối với từng
tài khoản khác nhau, do vậy người quản lý sẽ hạn chế được việc truy cập trái phép
vào những phần tài liệu riêng tư. Bên cạnh đó, chúng ta còn có thể tạo Group –
được dùng để kết hợp nhiều tài khoản người dùng có cùng mức phân quyền lại
với nhau, và một số thiết lập khác như: giới hạn server, kích hoạt hoặc không sử
dụng tính năng SSL khi người dùng đăng nhập, tốc độ truyền tải dữ liệu tối đa...
Để thực hiện, các bạn hãy tải và cài đặt phần mềm FileZilla bản dành cho Server,
sau đó khởi động ứng dụng, nhập địa chỉ localhost (127.0.0.1) trong phần Server


9


Address và mật khẩu trong tại ô Administration Password, giá trị Port mặc định ở
đây là 14147. Nhấn OK:

Như đã đề cập tới ở trên, Group sẽ giúp chúng ta dễ dàng hơn trong việc quản lý
nhiều tài khoản người dùng tương tự nhau. Việc cần làm trước tiên tại đây là tạo
mới Group, sau đó gán từng tài khoản riêng biệt tới nhóm này. Các bạn chọn
menu Edit > Groups như hình dưới:

Bảng điều khiển Groups sẽ hiển thị, trước tiên chúng ta sẽ nhấn Add và nhập tên
của nhóm cần tạo, sau đó kích hoạt quyền truy cập cho các tài khoản bên trong
nhóm từ phần Group Settings.Tiếp theo là việc chỉ định thư mục sẽ được phép
chia sẻ với các client, chuyển tới phần Shared folders từ phía bên trái và chọn thư


10

mục cần chia sẻ để gán tại đây. Sau đó, chúng ta sẽ chuyển tới bước tiếp theo là
gán tài khoản người dùng tới Group:

Từ menu Edit, các bạn chọn Users:

Tương tự như Groups, chúng ta có thể tạo tài khoản người dùng – User và thiết
lập mức phân quyền đọc, ghi tương ứng. Nhấn nút Add, đặt tên cho tài khoản,
chọn nhóm tương ứng từ menu drop – down, sau đó nhấn OK để hoàn tất:


11

Ở chế độ mặc định, hệ thống sẽ tạo tài khoản người dùng với mật khẩu trống,
nhưng nếu muốn đặt mật khẩu bảo vệ cho User thì ta kích hoạt tùy chọn

Password trong phần Account Settings. Tại đây, chúng ta còn có thể thay đổi
Group membership, kích hoạt tùy chọn Bypass userlimit of server và Force SSL for
user login:

Nếu không chỉ định bất kỳ thư mục chia sẻ nào trong khi tạo Groups thì có thể gán
sau đó. Chỉ việc chọn Shared folders sau đó nhấn Add từ Shared folders:


12

Phần Files và Directories cho phép chúng ta xác nhận mức phân quyền đối với các
tài khoản người dùng, bao gồm: đọc, ghi, xóa, liệt kê. Ở chế độ mặc định, chương
trình sẽ tự động gán quyền tới tất cả các thành phần bên trong thư mục được
chia sẻ đó. Tuy nhiên, ta cũng có thể tắt bỏ tùy chọn +Subdirs để hạn chế việc truy
cập, trong phần Shared Limits là việc thiết lập tốc độ download và upload tối đa
đối với từng tài khoản, tùy từng khoảng thời gian trong ngày, và trong phần IP
Filter chúng ta có thể loại bỏ các địa chỉ IP cố định:

Khi hoàn tất quá trình thiết lập của User, chúng ta sẽ chuyển sang hệ thống client
để khởi tạo kết nối tới server FTP. Nếu muốn truyền tải dữ liệu qua hệ thống


13

mạng local, ta có thể dùng địa chỉ IP của máy server để tạo kết nối từ phía client.
Dùng lệnh ipconfig trong Command Prompt để tìm địa chỉ IP như hình dưới:

Sau đó, mở FileZilla FTP và chọn File > Site Manager, nhập các thông tin cần thiết
vào đây. Nếu máy client được kết nối tới cùng hệ thống mạng, điền địa chỉ IP của
máy server trong phần Host để kết nối, sau đó chọn Normal từ phần Logon Type.

Tiếp theo, nhập tên đăng nhập trong ô User, mật khẩu trong phần Password:

Khi hoàn tất, nhấn nút Access:


14

FileZilla FTP Server sẽ ghi lại toàn bộ thông tin về dữ liệu nhận được yêu cầu nhận
và gửi đi, bao gồm các địa chỉ kết nối của client, tên đăng nhập, địa chỉ IP, tốc độ
truyền tải file:

Bên cạnh đó, có thể chia sẻ địa chỉ IP của server với những client không cùng
trong hệ thống mạng. Để xác định địa chỉ IP để tự động điều chuyển, mở FileZilla
Server Options từ menu chính và chọn thẻ Passive mode settings, kích hoạt tùy


15

chọn Use the following IP và nhập địa chỉ IP cần chia sẻ. Có thể giữ nguyên tùy
chọn nhận địa chỉ IP từ ip.filezilla-project.org/ip.php hoặc tự thiết lập:

Khi hoàn tất, hệ thống client bên ngoài đã có thể kết nối tới server và truy cập
vào thư mục chia sẻ. Nếu xảy ra lỗi tại đây thì có thể là do hệ thống Firewall của
Windows hoặc router.
III.Các chức năng Đăng nhập, Download, Upload, Xóa file
1. Các thông điệp đáp trả trong mô hình FTP server-client
1.1.Đăng nhập
Client : Client sẽ gửi thông tin đăng nhập gồm username và password lên server
USER<username>
PASS

Server:
120: Dịch vụ đã sẵn sang trong … phút
220: Dịch vụ đã sẵn sàng cho người dùng mới
331: Username OK, cần password
230: Đăng nhập thành công
257 : “pathname” tạo ra
250:Success


16

221: Goodbye
Nếu thông tin đăng nhập sai:
530: Thông tin đăng nhập sai, cần kiểm tra lại username và password
1.2.Download
Client: Tải filename.txt từ Server Server:
220: dịch vụ đã sẵn sàng cho người dùng mới
250: kết nối tới thư muc server thành công
227: bước vào chế độ thụ động
150: File trong trạng thái ổn, kết nối đang được mở
226: download thành công
1.3.Upload
Client: gửi filename.txt lên server.
Server:
250: kết nối tới thư muc server thành công
227: bước vào chế độ thụ động
150: File trong trạng thái ổn, kết nối đang được mở
226: upload thành công
2. Chạy chương trình và kiểm tra các chức năng đăng nhập, download, upload,
xóa file,tạo 1 file mới đồng thời xem và sửa

2.1.Đăng nhập

Đây là màn hình đăng nhập với username là admin và password đã được hint.
2.2.Download
Chúng em download file xampp từ server về client. Chỉ việc click chuột phải vào
file muốn download và sau đó trong bảng hiện rat a click vào download.


17

Và đây là kết quả: Ở góc phải dưới của màn hình có báo đã chuyển file thành
công. File xampp đã nằm gọn trong client.

2.3.Upload
Chúng em upload file mp3 có tên Dạ khúc từ client lên server. Chỉ việc click chuột
phải vào file đó rồi click tiếp upload


18

Và đây là kết quả: file mp3 đã từ client upload sang server.

2.4.Tạo file , xem và sửa nội dung
Click chuột phải vào New folder, chọn phần create new file,


19

File đó em đặt tên là abc.txt


Sau đó em click chuột phải vào file mới tạo này mà chọn phần View/Edit


20

Đây là nội dung của file abc. Ta có thể xem và sửa file này thoải mái.

2.5.Xóa file
Em sẽ xóa file abc.txt vừa tạo bằng cách click chuột phải vào nó và chọn phần
Delete.


21

Kết quả là không còn file abc.txt trong server nữa.


22

TÀI LIỆU THAM KHẢO
1. />2. />3. Cùng với tham khảo các bạn cùng lớp.
Trong quá trình học tập cũng như trong bài báo cáo này chúng em còn nhiều
thiếu sót. Kính mong thầy bỏ qua.
Chúng em xin cảm ơn !


23


24



25


×