Tải bản đầy đủ (.doc) (24 trang)

Mô phỏng ctr trao đổi dữ liệu

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 (603.49 KB, 24 trang )

BÁO CÁO
MÔ PHỎNG CHƯƠNG TRÌNH
TRAO ĐỔI DỮ LIỆU
MÔN: TRUYỀN SỐ LIỆU
Giảng viên: Th.S Mai Văn Hà

Lớp: 17PFIEV3
Sinh viên thực hiện:
Hoàng Minh Tùng
Nguyễn Văn Tú


Mô phỏng chương trình trao đổi dữ liệu (FTP)

MỤC LỤC
CHƯƠNG I. TỔNG QUAN:...........................................................................................3
CHƯƠNG II. CƠ SỞ LÝ THUYẾT:..............................................................................4
I. Họ giao thức TCP/IP................................................................................................4
1. Tầng liên kết:.......................................................................................................4
2. Tầng Internet:......................................................................................................4
3. Tầng giao vận:.....................................................................................................4
4. Tầng ứng dụng:....................................................................................................4
II. Tìm hiểu giao thức TCP và UDP............................................................................6
1. Giao thức TCP (Tranmission Control Protocol)..................................................6
2. Giao thức UDP (User Datagram Protocol)..........................................................7
III. Giao thức FTP (File Transfer Protocol).................................................................8
1. Giới thiệu về FPT................................................................................................8
2. Mô hình hoạt động của FTP:...............................................................................9
3. Các kiểu dữ liệu:................................................................................................13
4. Quản lý kênh dữ liệu FTP:................................................................................15
5. Các phương thức truyền dữ liệu trong FTP:......................................................18


CHƯƠNG III. MÔ PHỎNG CHƯƠNG TRÌNH TRAO ĐỔI DỮ LIỆU THÔNG QUA
ỨNG DỤNG WINSCP..................................................................................................20
I. WinSCP là gì?........................................................................................................20
II. Chạy và sử dụng WinSCP.....................................................................................20
CHƯƠNG IV. KẾT LUẬN...........................................................................................24

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

2


Mô phỏng chương trình trao đổi dữ liệu (FTP)

CHƯƠNG I. TỔNG QUAN:
Ngày nay cùng với sự phát triển chóng mặt của khoa học kỹ thuật,
một kỷ nguyên mới được mở ra kỷ nguyên của công nghệ thông tin. Nhu
cầu của con người càng lớn đặc biệt các ngành khoa học kỹ thuật khác đều
cần đến sự hỗ trợ của công nghệ thông tin. Mọi người đếu có nhu cầu truy
cập internet để cung cấp cũng như lấy những thông tin cần thiết qua các
máy chủ.
Người sử dụng chương trình là người có nhu cầu truyền nhận file
bằng giao thức FTP (File Transfer Protocol) thông qua mạng Internet.
Trong môi trường Internet, khi cần truyền nhận file các file có kích
thước lớn trên vài chục KB người sử dụng thường gặp trường hợp việc
truyền nhận file bị gián đoạn. Ví dụ khi lấy một file bằng giao thức FTP
sử dụng chương trình Internet Explorer, người sử dụng thường gặp thông
báo lỗi sau vài phút download file.
Để giải quyết vấn đề này, người sử dụng thường sử dụng các
chương trình chuyên dùng để lấy file như ReGet để có thể tiếp tục lấy file
từ vị trí xảy ra lỗi.

Người sử dụng có xu hướng lấy đồng thời nhiều file tại một server
nào đó trên Internet. Như vậy chương trình phải hỗ trợ lấy nhiều file đồng
thời. Tuy nhiên không phải lúc nào chương trình cũng có thể lấy đồng thời
nhiều file tại một site nếu server hạn chế số kết nối đồng thời tới một địa
chỉ IP.
Người sử dụng cũng có nhu cầu lấy file bằng nhiều giao thức khác
nhau như FTP (File Transfer Protocol), HTTP (HyperText Transfer
Protocol), …
Tuy nhiên trong phạm vi của luận văn này chúng em sẽ tìm hiểu và
mô phỏng việc lấy file bằng giao thức FTP, thông qua ứng dụng WinSCP.

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

3


Mô phỏng chương trình trao đổi dữ liệu (FTP)

CHƯƠNG II.
I.

CƠ SỞ LÝ THUYẾT:

Họ giao thức TCP/IP

1. Tầng liên kết:
Tầng liên kết (còn được gọi là tầng liên kết dữ liệu hay là tầng giao
tiếp mạng) là tầng thấp nhất trong mô hình TCP/IP, bao gồm các thiết bị
giao tiếp mạng và chương trình cung cấp các thông tin cần thiết để có thể
hoạt động, truy nhập đường truyền vật lý qua thiết bị giao tiếp mạng đó.

2. Tầng Internet:
Tầng Internet (còn gọi là tầng mạng) xử lý quá trình truyền gói tin
trên mạng. Các giao thức của tầng này bao gồm: IP (Internet Protocol),
ICMP (Internet Control Message Protocol), IGMP (Internet Group
Messages Protocol).
3. Tầng giao vận:
Tầng giao vận phụ trách luồng dữ liệu giữa hai trạm thực hiện các
ứng dụng của tầng trên. Tầng này có hai giao thức chính: TCP
(Transmission Control Protocol) và UDP (User Datagram Protocol) TCP
cung cấp một luồng dữ liệu tin cậy giữa hai trạm, nó sử dụng các cơ chế
như chia nhỏ các gói tin của tầng trên thành các gói tin có kích thước thích
hợp cho tầng mạng bên dưới, báo nhận gói tin, đặt hạn chế thời gian timeout để đảm bảo bên nhận biết được các gói tin đã gửi đi. Do tầng này đảm
bảo tính tin cậy, tầng trên sẽ không cần quan tâm đến nữa.
UDP cung cấp một dịch vụ đơn giản hơn cho tầng ứng dụng. Nó chỉ
gửi các gói dữ liệu từ trạm này tới trạm kia mà không đảm bảo các gói tin
đến được tới đích. Các cơ chế đảm bảo độ tin cậy cần được thực hiện bởi
tầng trên.
4. Tầng ứng dụng:
Tầng ứng dụng là tầng trên cùng của mô hình TCP/IP bao gồm các
tiến trình và các ứng dụng cung cấp cho người sử dụng để truy cập mạng.
Có rất nhiều ứng dụng được cung cấp trong tầng này, mà phổ biến là:
Telnet: sử dụng trong việc truy cập mạng từ xa, FTP (File Transfer
Protocol).
Cũng tương tự như trong mô hình OSI, khi truyền dữ liệu, quá trình
tiến hành từ tầng trên xuống tầng dưới, qua mỗi tầng dữ liệu được thêm
vào một thông tin điều khiển được gọi là phần header. Khi nhận dữ liệu thì
quá trình xảy ra ngược lại, dữ liệu được truyền từ tầng dưới lên và qua

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú


4


Mô phỏng chương trình trao đổi dữ liệu (FTP)

mỗi tầng thì phần header tương ứng được lấy đi và khi đến tầng trên cùng
thì dữ liệu không còn phần header nữa. Trong hình vẽ này ta thấy tại các
tầng khác nhau dữ liệu được mang những thuật ngữ khác nhau:
- Trong tầng ứng dụng dữ liệu là các luồng được gọi là stream.
- Trong tầng giao vận, đơn vị dữ liệu mà TCP gửi xuống tầng dưới
gọi là TCP segment.
- Trong tầng mạng, dữ liệu mà IP gửi tới tầng dưới được gọi là IP
datagram.
- Trong tầng liên kết, dữ liệu được truyền đi gọi là frame.

Cấu trúc dữ liệu trong TCP/IP

Bảng sau chỉ rõ mối tương quan giữa các tầng trong mô hình TCP/IP với
OSI

Sự khác nhau giữa TCP/IP và OSI chỉ là:
- Tầng ứng dụng trong mô hình TCP/IP bao gồm luôn cả 3 tầng trên
của mô hình OSI
- Tầng giao vận trong mô hình TCP/IP không phải luôn đảm bảo độ
tin cậy của việc truyển tin như ở trong tầng giao vận của mô hình
OSI mà cho phép thêm một lựa chọn khác là UDP.

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

5



Mô phỏng chương trình trao đổi dữ liệu (FTP)

II.

Tìm hiểu giao thức TCP và UDP

Quá Trình truyền dữ liệu trên mạng diễn ra rất phức tạp, chi tiết
trong quá trình này diễn ra tương tự như trong thực tế ta gửi thư hay bưu
phẩm, trước hết ta phải ghi rõ địa chỉ nơi đến (trường hợp này là địa chỉ IP
máy chủ), sau đó có thể gửi thông thường(gửi dồn dập) hay bảo đảm(dừng
và chờ), người nhận sau khi nhận được có thể hồi âm trả lời đã nhận đủ
hay mất mát gì trong quá trình truyền tải. Người có thể gửi những phần bị
mất(hoặc không cần gửi nữa).
Cách truyền tải dữ liệu đảm bảo dựa vào giao thức
TCP(Tranmission Control Protocol), còn cách chuyển không đảm bảo dựa
vào giao thức UDP(User Datagram Protocol).
1. Giao thức TCP (Tranmission Control Protocol)
Là giao thức điều khiển truyền vận (Transmission Control Protocol)
thuộc giao thức cốt lõi của bộ giao thức TCP/IP. Thông qua TCP, các ứng
dụng trên các máy chủ được nối mạng có thể liên lạc với nhau, qua đó
chúng có thể trao đổi giữ liệu hoặc các gói tin. Giao thức này đảm bảo
chuyển giao dữ liệu tới nhận một cách đáng tin cậy và đúng thứ tự. Hơn
nữa, TCP có chức năng phân biệt giữa dữ liệu của nhiều ứng dụng (như
dịch vụ Web và dịch vụ Email) đồng thời chạy trên cùng một máy chủ.


TCP là giao thức hướng kết nối (connection-oriented), có nghĩa là
buộc phải thiết lập kết nối trước sau đó mới đến tiến trình truyền dữ

liệu.



Cung cấp cơ chế đánh số thứ tự gói tin (sequencing): sử dụng để ráp
các gói tin chính xác ở điểm nhận, loại bỏ gói tin trùng lặp.



TCP có khả năng truyền và nhận dữ liệu cùng một lúc — song công
(full-duplex).



Cơ chế báo nhận (Acknowledgement): tức là khi A gửi gói tin cho
B, nếu B nhận được thì sẽ gửi thông báo cho A, trường hợp A không
nhận được thông báo thì sẽ gửi lại gói tin tới khi nào B báo nhận thì
thôi.



Tính năng phục hồi dữ liệu bị mất trên đường truyền.

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

6


Mô phỏng chương trình trao đổi dữ liệu (FTP)


2. Giao thức UDP (User Datagram Protocol)
Một mạng máy tính sử dụng giao thức UDP giúp các chương trình
có thể gửi những dữ liệu ngắn được gọi là datagram đến một máy tính
khác. UDP không chịu trách nhiệm đối với những gói tin đã được truyền
đi, vì vậy các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà
không có thông báo.


UDP (User Datagram Protocol) là loại giao thức không trạng thái,
không cần thiết lập các kết nối trước khi gửi gói tin.



UDP chỉ quan tâm tới việc truyền gói tin đi và không nhận lại —
bán song công (half-duplex).



UDP không quan tâm tới việc có gửi chính xác gói tin tới đúng địa
chỉ hay không, không có cơ chế phục hồi dữ liệu bị mất .



Giao thức UDP nhanh và hiệu quả hơn đối với các mục tiêu kích
thước nhỏ và yêu cầu khắt khe về thời gian.



Bản chất không trạng thái nên UDP hữu dụng đối với việc trả lời các
truy vấn nhỏ với số lượng lớn người yêu cầu.


Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

7


Mô phỏng chương trình trao đổi dữ liệu (FTP)

Ứng dụng phổ biến nhất sử dụng giao thức UDP có thể kể đến như
DNS (Domain Name System) Voice over IP, ứng dụng streaming media,
Trivial File Transfer protocol (TFTP), và game trực tuyến. Dễ hình dung
nhất về giao thức UDP là khi bạn Live Stream, video hoặc âm thanh có thể
bị nhiễu hay bóp méo một lúc và Video vẫn tiếp tục chơi mà không có dữ
liệu bị mất.

III.

Giao thức FTP (File Transfer Protocol)

1. Giới thiệu về FPT
FTP (viết tắt của File Transfer Protocol dịch ra là "Giao thức truyền
tập tin") thường được dùng để trao đổi tập tin qua mạng lưới truyền thông
dùng giao thức TCP/IP.
Hoạt động của FTP cần có hai máy tính, một máy chủ (server) và
một máy khách (Client). Máy chủ FTP, dùng chạy phần mềm cung cấp
dịch vụ FTP, gọi là trình chủ, lắng nghe yêu cầu về dịch vụ của các máy
tính khác trên mạng lưới. Máy khách chạy phần mềm FTP dành cho người
sử dụng dịch vụ, gọi là trình khách, thì khởi đầu một liên kết với máy chủ.
Một khi hai máy đã liên kết với nhau, máy khách có thể xử lý một số thao
tác về tập tin, như tải tập tin lên máy chủ, tải tập tin từ máy chủ xuống

máy của mình, đổi tên của tập tin, hoặc xóa tập tin ở máy chủ v.v.
Vì giao thức FTP là một giao thức chuẩn công khai, cho nên bất cứ
một công ty phần mềm nào, hay một lập trình viên nào cũng có thể viết
trình chủ FTP hoặc trình khách FTP. Hầu như bất cứ một nền tảng hệ điều
hành máy tính nào cũng hỗ trợ giao thức FTP. Điều này cho phép tất cả
các máy tính kết nối với một mạng lưới có nền TCP/IP, xử lý tập tin trên
một máy tính khác trên cùng một mạng lưới với mình, bất kể máy tính ấy
Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

8


Mô phỏng chương trình trao đổi dữ liệu (FTP)

dùng hệ điều hành nào (nếu các máy tính ấy đều cho phép sự truy cập của
các máy tính khác, dùng giao thức FTP.
FTP thường chạy trên hai cổng 20 và 21, và chỉ chạy riêng trên nền
của TCP. Trình chủ FTP lắng nghe các yêu cầu dịch vụ từ những kết nối
vào máy của các trình khách FTP, trên cổng 21. Đường kết nối trên cổng
21 này tạo nên một dòng truyền điều khiển, cho phép các dòng lệnh được
chuyển qua trình chủ FTP. Để truyền tải tập tin qua lại giữa hai máy,
chúng ta cần phải có một kết nối khác. Tùy thuộc vào chế độ truyền tải
được sử dụng, trình khách (ở chế độ năng động - active mode) hoặc trình
chủ (ở chế độ bị động - passive mode) đều có thể lắng nghe yêu cầu kết
nối đến từ đầu kia của mình. Trong trường hợp kết nối ở chế độ năng
động, (trình chủ kết nối với trình khách để truyền tải dữ liệu), trình chủ
phải trước tiên đóng kết vào cổng 20, trước khi liên lạc và kết nối với
trình khách. Trong chế độ bị động, hạn chế này được giải tỏa và việc đóng
kết trước là một việc không cần phải làm.
Trong khi dữ liệu được truyền tải qua dòng dữ liệu, dòng điều khiển

đứng im. Tình trạng này gây ra một số vấn đề, đặc biệt khi số lượng dữ
liệu đòi hỏi được truyền tải là một số lượng lớn, và đường truyền tải chạy
thông qua những bức tường lửa. Bức tường lửa là dụng cụ thường tự động
ngắt các phiên giao dịch sau một thời gian dài im lặng. Tuy tập tin có thể
được truyền tải qua hoàn thiện, song dòng điều khiển do bị bức tường lửa
ngắt mạch truyền thông giữa quãng, gây ra báo lỗi

2. Mô hình hoạt động của FTP:
a Tiến trình Server-FTP và User-FTP:
Không giống như các ứng dụng khác chạy trên nền TCP, FTP không
chỉ cần một kết nối TCP mà các mô hình FTP được thiết kế xung quanh 2
kênh logic trong quá trình giao tiếp giữa client FTP và server FTP là
control connection và data connection:
Control connection: Đây là kết nối TCP logic chính được tạo ra khi
phiên làm việc được thiết lập. Nó được duy trì trong suốt phiên làm việc và
chỉ cho các thông tin điều khiển đi qua ví dụ như lệnh và trả lời. Nó không
được sử dụng để gửi dữ liệu.
Data connection: Mỗi khi dữ liệu được gửi từ sever tới client hoặc
ngược lại, một kết nối dữ liệu TCP riêng biệt được thiết lập giữa chúng.
Dữ liệu được truyền qua kết nối này. Khi hoàn tất việc truyền dữ liệu, kết
nối được hủy bỏ.

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

9


Mô phỏng chương trình trao đổi dữ liệu (FTP)

Sự phân chia thành 2 kênh riêng biệt này tạo ra sự linh động trong

cách hoạt động của FTP nhưng nó cũng tạo ra sự phức tạp cho FTP.
Do chức năng điều khiển và dữ liệu được truyền tải bằng cách sử dụng các
kênh riêng biệt nên mô hình FTP chia phần mềm trên mỗi thiết bị thành 2
thành phần giao thức logic chịu trách nhiệm cho mỗi kênh:
Thành phần protocol interpreter (PI): Là thành phần quản lý
kênh điều khiển, phát và nhận lệnh và trả lời.
Thành phần data transfer process (DTP): chịu trách nhiệm gửi và
nhận dữ liệu giữa client và server.
Ngoài hai thành phần trên, tiến trình bên phía người dùng còn có 1
thành phần thứ ba là giao diện người dùng (user interface) dùng để tương
tác với người dùng FTP, thành phần này không có ở phía sever.
Như vậy, có hai thành phần trong tiến trình bên phía server và ba
thành phần trong tiến trình bên phía client. Các thành phần này được nhắc
đến trong các mô hình FTP bằng cái tên cụ thể, được sử dụng trong các
tiêu chuẩn để mô tả chi tiết hoạt động của giao thức. Dưới đây là mô hình
hoạt động của FTP:

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

10


Mô phỏng chương trình trao đổi dữ liệu (FTP)

b Các tiến trình phía server:
Các tiến trình phía server bao gồm hai giao thức:
- Server Protocol Interpreter (Server-PI): chịu trách nhiệm quản lý
kênh điều khiển trên server. Nó lắng nghe yêu cầu kết nối hướng tới
từ users trên cổng dành riêng. Khi kết nối đã được thiết lập, nó sẽ
nhận lệnh từ phía User-PI, trả lời lại, và quản lý tiến trình truyền dữ

liệu trên server.
- Server DataTransfer Process (Server-DTP): làm nhiệm vụ gửi hoặc
nhận file từ bộ phận User-DTP. Server-DTP vừa làm nhiệm thiết lập
kết nối kênh dữ liệu và lắng nghe một kết nối kênh dữ liệu từ user.
Nó tương tác với server file trên hệ thống cục bộ để đọc và chép
file.
c Các tiến trình phía Client:
- User Protocol Interpreter (User-PI): chịu trách nhiệm quản lý kênh
điều khiển phía client. Nó khởi tạo phiên kết nối FTP bằng việc
phát ra yêu cầu tới phía Server-PI. Khi kết nối đã được thiết lập, nó
xử lý các lệnh nhận được trên giao diện người dùng, gửi chúng tới
Server-PI, và nhận phản hồi trở lại. Nó cũng quản lý tiến trình UserDTP.
- User Data Transfer Process (User-DTP): là bộ phận DTP nằm ở
phía người dùng, làm nhiệm vụ gửi hoặc nhận dữ liệu từ ServerSinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

11


Mô phỏng chương trình trao đổi dữ liệu (FTP)

DTP. User-DTP có thể thiết lập hoặc lắng nghe yêu cầu kết nối kênh
dữ liệu trên server. Nó tương tác với thiết bị lưu trữ file phía client.
- User Interface: cung cấp giao diện xử lý cho người dùng. Nó cho
phép sử dụng các lệnh đơn giản hướng người dùng, và cho phép
người điều khiển phiên FTP theo dõi được các thông tin và kết quả
xảy ra trong tiến trình.
d Trình tự truy cập và chứng thực FTP:
Quy luật chứng thực trong FTP khá đơn giản, chỉ là cung cấp
username/password. Trình tự của việc chứng thực như sau:
Bước 1: Người dùng gửi một username từ User-PI tới Server-PI bằng lệnh

USER. Sau đó password của người dùng được gửi đi bằng lệnh PASS.
Bước 2: Server kiểm tra tên người dùng và password trong database người
dùng của nó. Nếu người dùng hợp lệ, server sẽ gửi trả một thông báo tới
người dùng rằng phiên kết nối đã được mở. Nếu người dùng không hợp lệ,
server yêu cầu người dùng thực hiện lại việc chứng thực. Sau một số lần
chứng thực sai nhất định, server sẽ ngắt kết nối.
Giả sử quá trình chứng thực đã thành công, server sau đó sẽ thiết
lập kết nối để cho phép từng loại truy cập đối với người dùng được cấp
quyền. Một số người dùng chỉ có thể truy cập vào một số file nhất định,
hoặc vào một số loại file nhất định. Một số server có thể cấp quyền cho
một số người dùng đọc và viết lên server, trong khi chỉ cho phép đọc đối
với những người dùng khác. Người quản trị mạng có thể nhờ đó mà đáp
ứng đúng các nhu cầu truy cập FTP.
Một khi kết nối đã được thiết lập, server có thể thực hiện các lựa
chọn tài nguyên dựa vào nhận diện người dùng.
Ví dụ: trên một hệ thống nhiều người dùng, người quản trị có thể
thiết lập FTP để khi có bất cứ người dùng nào kết nối tới, người dùng sẽ
tự động được đưa tới “home directory” của chính người dùng. Lệnh tùy
chọn ACCT (account) cũng cho phép người dùng chọn một tài khoản cá
nhân nào đó nếu như người dùng có nhiều hơn một tài khoản.
e Mở rộng về bảo mật FTP:
Giống như phần lớn các giao thức cũ, phương pháp đăng nhập đơn
giản của FTP là một sự kế thừa từ những giao thức ở thời kỳ đầu của
Internet. Ngày nay, nó không còn bảo đảm tính an toàn cần thiết trên môi
trường Internet toàn cầu vì username và password được gửi qua kênh kết
nối điều khiển dưới dạng clear text. Điều này làm cho các thông tin đăng
nhập có thể bị nghe lén. Chuẩn RFC 2228 về các phần mở rộng cho bảo
mật FTP đã định ra thêm nhiều tùy chọn chứng thực và mã hóa phức tạp
cho những ai muốn tăng thêm mức độ an toàn vào trong phần mềm FTP
của họ.


Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

12


Mô phỏng chương trình trao đổi dữ liệu (FTP)

3. Các kiểu dữ liệu:
Các cách biểu diễn dữ liệu được xử lý trong FTP nhờ một user mô
tả một kiểu biểu diễn. Kiểu này có thể định nghĩa ngầm (như trong ASCII
hoặc EBCDIC) hay rõ ràng (như trong Local byte) một byte size để giải
thích mà nó được đề cập tới như là “logical byte size.” Lưu ý rằng đây
không phải là byte size dùng cho việc truyền qua data connection, được
gọi là “transfer byte size”, và không nên nhầm lẫn hai điều này. Ví dụ,
NVT-ASCII có một logical byte size dài 8-bit. Nếu type là Local byte, thì
lệnh TYPE có một thông số bắt buộc thứ hai mô tả logical byte size.
Transfer byte size luôn luôn là 8-bit.
a Kiểu ASCII
Đây là type mặc định và phải được chấp nhận bởi mọi hiện thực
FTP. Nó được nhằm chủ yếu cho việc truyền các text file, trừ khi cả hai
host thấy rằng EBCDIC type tiện lợi hơn.
Máy gửi (sender) chuyển đổi dữ liệu từ một cách biểu diễn ký tự
bên trong thành cách biểu diễn NVT-ASCII 8-bit chuẩn (xem mô tả
Telnet). Máy nhận (receiver) sẽ chuyển dữ liệu từ dạng chuẩn thành dạng
bên trong của nó.
Theo chuẩn NVT, chuỗi <CRLF> nên được sử dụng khi cần ký hiệu
kết thúc một dòng văn bản. (Xem phần nói về file structure ở cuối phần
Biểu diễn và lưu trữ dữ liệu.)
Việc sử dụng biểu diễn NVT-ASCII nghĩa là dữ liệu phải được dịch

như những byte 8-bit.
Thông số Format cho các type ASCII và EBCDIC được thảo luận
dưới đây.
b Kiểu EBCDIC
Type này nhằm để truyền hiệu quả giữa các host sử dụng EBCDIC
để biểu diễn ký tự bên trong của chúng.
Để truyền, dữ liệu được biểu diễn như các ký tự EBCDIC 8-bit. Mã
ký tự là sự khác biệt duy nhất giữa các mô tả chức năng của các type
ASCII và EBCDIC.
End-of-Line (ngược lại với end-of-record – xem thảo luận về
structure) có lẽ sẽ ít được dùng với type EBCDIC nhằm các mục đích ký
hiệu structure, nhưng khi cần thiết ký tự <NL> nên được sử dụng.
c Kiểu Image
Dữ liệu được gởi như các bit liên tục và, để truyền, được gói (pack)
thành các byte truyền 8-bit. Site nhận phải lưu data như các bit liên tục.
Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

13


Mô phỏng chương trình trao đổi dữ liệu (FTP)

Cấu trúc của hệ thống lưu trữ có thể cần đến sự độn (padding) vào file
(hoặc vào mỗi record, đối với file có cấu trúc record) đến một giới hạn
phù hợp nào đó (byte, word hoặc block). Sự độn thêm vào này, phải đều là
zero, và chỉ có thể xuất hiện ở cuối file (hoặc ở cuối mỗi record) và phải
có một cách nhận ra các padding bit này để có thể bỏ chúng ra nếu file
được lấy lại. Sự biến đổi padding nên được đưa ra công khai để cho phép
một user xử lý một file ở site lưu trữ.
Image type được nhằm để lưu trữ hiệu quả và lấy lại file và để

truyền dữ liệu binary. Type này được đề nghị mọi hiện thực FTP phải chấp
nhận.
d Kiểu Local
Dữ liệu được truyền theo những byte logic có kích thước mô tả bởi
thông số bắt buộc thứ hai, Byte size. Giá trị của Byte size phải là một số
nguyên thập phân; không có một giá trị mặc định. Logical Byte size
không nhất thiết phải giống với transfer byte size. Nếu có một sự khác biệt
trong hai byte size, thì logical byte nên được gói (pack) một cách liên tục,
bất chấp các ranh giới transfer byte và với bất kỳ padding nào cần thiết ở
cuối.
Khi dữ liệu đến host nhận, nó sẽ được biến đổi theo một cách phụ
thuộc vào logical byte size và host riêng. Sự biến đổi này phải có thể đảo
ngược (tức là một file giống hệt có thể được nhận lại nếu cùng các thông
số được sử dụng) và nên được công khai rộng rãi bởi các nhà hiện thực
FTP (FTP implementor).
Ví dụ, một user gởi các số dấu chấm động 36-bit đến một host có
word 32-bit có thể gởi dữ liệu đó như Local byte với một logical byte size
là 36. Host nhận sẽ được chờ đợi lưu trữ các logical byte để chúng có thể
dễ dàng được xử lý; trong ví dụ này chỉ cần đặt các 36-bit logical byte này
vào các 64-bit double word.
Một ví dụ khác, hai host có một 36-bit word size có thể gởi dữ liệu
cho nhau theo các word nhờ sử dụng TYPE L 36. Dữ liệu sẽ được gởi theo
các 8-bit transmission byte được gói để 9 transmission byte chứa hai host
word.
e Format Control
Các type ASCII và EBCDIC cũng có một thông số thứ hai tùy
chọn; nó chỉ ra kiểu vertical format control, nếu có, kết hợp với file. Các
data representation type sau đây được định nghĩa trong FTP:
Một character file có thể được truyền đến một host vì một trong ba
mục đích: để in, để lưu trữ và sau đó lấy lại, hoặc để xử lý. Nếu một file

được gởi để in, host nhận phải biết cách vertical format control được biểu
Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

14


Mô phỏng chương trình trao đổi dữ liệu (FTP)

diễn. Trong trường hợp thứ hai, phải có thể lưu trữ một file ở một host và
sau đó nhận lại nó chính xác ở cùng dạng. Cuối cùng, nên có thể chuyển
một file từ một host này đến một host khác và xử lý file ở host thứ hai mà
không có vấn đề gì. Một format ASCII hoặc EBCDIC đơn lẻ thì không
thỏa mãn tất cả những điều kiện này. Do đó những type này có một thông
số thứ hai mô tả một trong ba format sau đây: Non print, telnet format
controls, carriage control (ASA)

4. Quản lý kênh dữ liệu FTP:
a Kết nối kênh dữ liệu dạng chủ động:
Phương thức đầu tiên đôi khi còn được gọi là kết nối kênh dữ liệu
dạng thông thường (vì nó là phương pháp mặc định) và đôi khi được gọi
là kết nối dạng chủ động (để đối chiếu với dạng kết nối bị động mà ta sẽ
xét ở phần sau). Trong dạng kết nối này, phía Server-DTP khởi tạo kênh
dữ liệu bằng việc mở một cổng TCP cho phía User-DTP. Phía server sử
dụng cổng được dành riêng, là cổng 20 cho kênh dữ liệu. Trên máy client,
một giá trị cổng được chọn theo mặc định chính là cổng được sử dụng đối
với kênh điều khiển, tuy nhiên phía client sẽ luôn chọn hai cổng riêng biệt
cho hai kênh này.
Giả sử phía User-PI thiết lập một kết nối điều khiển từ cổng bất kỳ
của nó là 1678 tới cổng điều khiển trên server là cổng 21. Khi đó, để tạo
một kênh dữ liệu cho việc truyền dữ liệu, phía Server-PI sẽ báo cho phía

Server-DTP khởi tạo một kênh kết nối TCP từ cổng 20 tới cổng 1678 của
phía client. Sau khi phía client chấp nhận kênh được khởi tạo, dữ liệu sẽ
được truyền đi.
Thực tế, việc sử dụng cùng một cổng cho cả kênh dữ liệu và kênh
điều khiển không phải là một ý hay, nó làm cho hoạt động của FTP trở nên
phức tạp. Do đó, phía client nên chỉ định sử dụng một cổng khác bằng
việc sử dụng lệnh PORT trước khi truyền dữ liệu.
Ví dụ: Giả sử phía client chỉ định cổng 1742 với lệnh PORT. Phía
Server-DTP sau đó sẽ tạo ra một kết nối từ cổng 20 của nó tới cổng 1742
phía client thay vì cổng 1678 như mặc định. Quá trình này được mô tả
trong hình dưới đây.

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

15


Mô phỏng chương trình trao đổi dữ liệu (FTP)

Thông thường, đối với kênh dữ liệu FTP, phía server sẽ khởi tạo
việc truyền dữ liệu bằng cách mở kết nối dữ liệu tới client.
Trong trường hợp trên, phía client trước tiên sẽ đưa ra lệnh PORT để yêu
cầu server sử dụng cổng 1742. Sau đó, server sẽ mở kết nối kênh dữ liệu
từ cổng 20 mặc định của nó tới cổng 1742 phía client. Dữ liệu sau đó sẽ
được truyền giữa các thiết bị qua các cổng này.
b Kết nối kênh dữ liệu dạng bị động:
Phương pháp kế tiếp được gọi là kết nối dữ liệu dạng bị động. Phía
client sẽ nhận server là phía bị động, làm nhiệm vụ chấp nhận một yêu cầu
kết nối kênh dữ liệu được khởi tạo từ phía client. Server trả lời lại phía
client với địa chỉ IP cũng như địa chỉ cổng mà nó sẽ sử dụng. Phía ServerDTP sau đó sẽ lắng nghe một kết nối TCP từ phía User-DTP trên cổng

này.
Mặc định, phía client sử dụng cùng một cổng đối với cả hai kênh
điều khiển và dữ liệu như trong trường hợp kết nối chủ động ở trên. Tuy
nhiên, ở đây, một lần nữa phía client có thể chọn sử dụng một giá trị cổng
khác cho kênh dữ liệu.
Ta sẽ xét lại ví dụ ở trên một lần nữa, với cổng điều khiển phía
client là 1678 tới cổng 21 phía server. Nhưng lần này truyền dữ liệu theo
phương thức kết nối bị động, như mô tả trong hình dưới đây:

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

16


Mô phỏng chương trình trao đổi dữ liệu (FTP)

Phía client sẽ sử dụng lệnh PASV để yêu cầu server rằng nó muốn
dùng phương thức điều khiển dữ liệu bị động. Phía Server-PI sẽ trả lời lại
phía client với một giá trị cổng mà client sẽ sử dụng, từ cổng 2223 trên nó.
Sau đó phía Server PI sẽ hướng cho phía Server-DTP lắng nghe trên cổng
2223. Phía User-PI cũng sẽ hướng cho phía User-DTP tạo một phiên kết
nối từ cổng 1742 phía client tới cổng 2223 phía server. Sau khi Server
chấp nhận kết nối này, dữ liệu bắt đầu được truyền đi.
c Vấn đề về phương thức kết nối:
Vấn đề phía nào là phía khởi tạo kết nối kênh dữ liệu đưa ra một
câu hỏi: sự khác nhau giữa hai phương thức là gì? Điều này cũng giống
như việc hỏi ai đã thực hiện một cuộc điện thoại nội bộ. Câu trả lời là sự
bảo mật. Việc FTP sử dụng nhiều hơn một kết nối TCP có thể giải quyết
các vấn đề về phần mềm cũng như về phần cứng mà người dùng cần phải
có để đảm bảo sự an toàn cho hệ thống của họ.

Khi xem xét việc gì sẽ xảy ra trong trường hợp kênh dữ liệu chủ động như
trong ví dụ phía trên:
Đối với phía client, có một kênh kết nối điều khiển được thiết lập từ
cổng 1678 client tới cổng 21 server. Nhưng kênh dữ liệu lại được khởi tạo
từ phía server. Do đó, client sẽ nhận được một yêu cầu kết nối tới cổng
1678 (hoặc cổng nào khác). Một số client sẽ nghi ngờ về việc nhận được
những kết nối tới như vậy, vì trong tình huống thông thường, client mới là
Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

17


Mô phỏng chương trình trao đổi dữ liệu (FTP)

phía khởi tạo kết nối chứ không phải đáp trả kết nối. Do các kênh kết nối
TCP hướng tới có thể mang theo những mối đe dọa nhất định, một số
client có thể sẽ ngăn chặn các luồng kết nối hướng tới bằng việc sử dụng
tường lửa.
Tại sao người ta lại không làm cho phía client luôn chấp nhận kết
nối từ một chỉ số port được dùng trong kênh điều khiển? Vấn đề ở đây là
vì client thường dùng các cổng khác nhau cho mỗi phiên kết nối bằng việc
sử dụng câu lệnh PORT. Và tại sao điều này lại được thực hiện? Vì theo
luật TCP: sau khi một kết nối được đóng lại , có một khoảng thời gian
trống trước khi cổng đó có thể được sử dụng lại – điều này để ngăn ngừa
tình trạng các phiên kết nối liên tiếp bị lẫn với nhau. Điều này sẽ tạo ra độ
trễ khi gửi nhiều file – do đó phía client thường dùng các giá trị cổng khác
nhau cho mỗi kết nối. Điều này rất hiệu quả nhưng cũng dẫn tới việc
firewall của client sẽ hỏi có chấp nhận phiên kết nối tới với nhiều giá trị
cổng không ổn định hay không.
Việc dùng kết nối kiểu kênh gián tiếp sẽ giảm thiểu vấn đề này một

cách hiệu quả. Phần lớn các tường lửa có nhiều vấn đề liên quan tới kết
nối hướng về với các giá trị cổng bất kỳ, hơn là gặp vấn đề với các kết nối
hướng đi. Ta có thể xem chi tiết hơn về vấn đề này trong chuẩn RFC 1579.
Chuẩn này khuyến nghị rằng phía client nên sử dụng kết nối kiểu bị động
làm dạng mặc định thay vì sử dụng kiểu kết nối dạng chủ động cùng với
lệnh PORT, để ngăn chặn tình trạng block theo cổng.
Tất nhiên, phương thức kết nối kiểu bị động không hoàn toàn giải
quyết được vấn đề, chúng chỉ đẩy vấn đề về phía server mà thôi. Phía
server, giờ đây phải đối mặt với việc có nhiều kênh kết nối hướng về trên
hàng loạt các cổng khác nhau. Tuy nhiên việc xử lý các vấn đề bảo mật
trên một nhóm nhỏ server vẫn dễ hơn nhiều so với việc phải đối mặt với
một lượng lớn các vấn đề từ nhiều client. FTP server phải được cấu hình
chấp nhận phương thức truyền bị động từ client, do đó cách thông thường
để thiết lập trên server là thiết lập chấp nhận một số cổng kết nối hướng về
trên server trong khi vẫn khóa các yêu cầu kết nối hướng về trên các cổng
khác.

5. Các phương thức truyền dữ liệu trong FTP:
a 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 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

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

18



Mô phỏng chương trình trao đổi dữ liệu (FTP)

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 thức 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.
b 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.
c 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 người dùng đang truyền đi một file qua internet với
modem tương tự, modem của người dùng 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.

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

19


Mô phỏng chương trình trao đổi dữ liệu (FTP)

CHƯƠNG III.
MÔ PHỎNG CHƯƠNG TRÌNH
TRAO ĐỔI DỮ LIỆU THÔNG QUA ỨNG DỤNG
WINSCP
I. WinSCP là gì?
WinSCP là một ứng dụng tiện ích giúp bạn kết nối vào một máy
tính từ xa và truyền file giữa máy tính của bạn và máy tính từ xa một cách
dễ dàng.
Giao diện của WinSCP chia làm 2 phần, bên trái là cấu trúc file và
thư mục trên máy tính của bạn, bên phải là của máy tính từ xa, bạn có thể
dễ dàng copy các file giữa các hệ thống

II.

Chạy và sử dụng WinSCP

Chạy WinSCP


Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

20


Mô phỏng chương trình trao đổi dữ liệu (FTP)

WinSCP sẽ yêu cầu bạn nhập vào các thông tin để kết nối
với máy tính từ xa thông qua SSH. Hãy đảm bảo rằng máy tính
từ xa của bạn đã cài đặt SSH Server.
Ở đây kết nối vào máy tính từ xa "Ubuntu Server", nó đã
được cài đặt SSH Server.

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

21


Mô phỏng chương trình trao đổi dữ liệu (FTP)

Sau khi nhấn Yes, tức là đã đăng nhập thành công vào
máy tính từ xa đó, giao
diện sẽ được hiện ra như sau:

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

22



Mô phỏng chương trình trao đổi dữ liệu (FTP)

Để truyền 1 file từ máy tính này sang máy tính kia, ta chỉ cần “kéo
và thả” file như sau:

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

23


Mô phỏng chương trình trao đổi dữ liệu (FTP)

Như vậy là ta đã hiểu cách truyền file của một chương trình trao đổi
dữ liệu, cụ thể ở đây là ứng dụng WinSCP

CHƯƠNG IV.

KẾT LUẬN

Hiểu được cách hoạt động của giao thức FTP (File Transfer
Protocol). Hiểu được các phiên giao tiếp trong mô hình Client – Server.
Biết cách sử dụng ứng dụng WinSCP, biết thêm được nhiều ứng
dụng khác của ứng dụng ngoài việc truyền file như trong bài báo cáo này.

Sinh viên thực hiện: Hoàng Minh Tùng, Nguyễn Văn Tú

24




×