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

Đề cương Mạng máy tính HCMUS (Khoa học tự nhiên HCM)

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.9 MB, 38 trang )

HCMUS

ĐỀ CƯƠNG MẠNG MÁY TÍNH
CHƯƠNG 1: GIỚI THIỆU
Bài tập trong sách
BT2. So sánh TCP/IP và OSI:
So với mơ hình OSI thì giao thức TCP/IP được nhiều người tin cậy và sử dụng hơn. Bởi
theo quan niệm thì mơ hình OSI chỉ là mơ hình cũ, cơng cụ để tham khảo. Ngược lại giao thức
TCP/IP cho phép nới lỏng các quy tắc và cung cấp các nguyên tắc chung.
Nếu xét về phương pháp tiếp cận thì TCP/IP tiếp cận theo chiều ngang, còn OSI tiếp cận
theo chiều dọc. Điểm khác biệt lớn nhất giữa hai giao thức này có lẽ là sự kết hợp giữa các
tầng với nhau. Đối với giao thức TCP/IP thì tầng phiên và tầng trình diễn được kết hợp với
nhau trong tầng ứng dụng. Còn đối với mơ hình OSI thì mỗi tầng khác nhau sẽ thực hiện một
nhiệm vụ khác nhau. Về thiết kế thì các giao thức trong TCP/IP được thiết kế trước rồi sau đó
mới phát triển mơ hình. Ngược lại trong OSI thì mơ hình được phát triển trước sau đó mới
phát triển giao thức.
Nội dung

Mơ hình OSI

Mơ hình TCP/IP

Giống nhau

Đều có kiến trúc phân lớp; đều có lớp Network và lớp Transport; cùng sử dụng
kỹ thuật chuyển Packet.

Độ tin cậy và
phổ biến

Nhiều người cho rằng đây là mơ hình


Được chuẩn hóa, nhiều người tin cậy
cũ, chỉ để tham khảo, số người sử dụng
và sử dụng phổ biến trên toàn cầu
hạn chế hơn so với TCP/IP

Phương pháp
tiếp cận

Tiếp cận theo chiều dọc

Sự kết hợp
giữa các tầng

Mỗi tầng khác nhau sẽ thực hiện một
Trong tầng ứng dụng có tầng trình diễn
nhiệm vụ khác nhau, khơng có sự kết
và tầng phiên được kết hợp với nhau
hợp giữa bất cứ tầng nào

Thiết kế

Phát triển mơ hình trước sau đó sẽ Các giao thức được thiết kế trước sau
phát triển giao thức
đó phát triển mơ hình

Tiếp cận theo chiều ngang

Số lớp (tầng)

7


Truyền thông

Hỗ trợ cả kết nối định tuyến và không Hỗ trợ truyền thông không kết nối từ
dây
tầng mạng

Tính phụ thuộc Giao thức độc lập

4

Phụ thuộc vào giao thức

BT5.
Bot là viết tắt của robot, tức các chương trình tự động thường xuyên được sử dụng trong
thế giới Internet. Một thành phần quan trọng của các bot này là những sự kiện mà chúng có
thể dùng để phát tán nhanh chóng tới máy tính khác. Xây dựng kế hoạch cần thận cho chương
trình tấn cơng sẽ giúp thu được kết quả tốt hơn với thời gian ngắn hơn (như xâm phạm được


HCMUS

nhiều máy tính hơn chẳng hạn). Một số n bot kết nối vào một kênh đơn để chờ lệnh từ kẻ tấn
cơng thì được gọi là một botnet.
Các botnet được sử dụng thường xuyên trong các cuộc tấn công Distributed Denial of
Service (DDoS). Một kẻ tấn cơng có thể điều khiển số lượng lớn máy tính bị chiểm quyền điều
khiển tại một trạm từ xa, khai thác băng thông của chúng và gửi yêu cầu kết nối tới máy đích.
Nhiều mạng trở nên hết sức tồi tệ sau khi hứng chịu các cuộc tấn công kiểu này. Và trong một
số trường hợp, thủ phạm được tìm thấy ngay khi đang tiến hành cuộc phá hoại (như ở các
cuộc chiến dotcom).

Tấn công DDoS là một biến thể của Foolding DoS (Tấn cơng từ chối dịch vụ tràn). Mục đích
của hình thức này là gây tràn mạng đích, sử dụng tất cả băng thơng có thể. Kẻ tấn cơng sau
đó sẽ có tồn bộ lượng băng thơng khổng lồ trên mạng để làm tràn website đích. Đó là cách
phát động tấn cơng tốt nhất để đặt được nhiều máy tính dưới quyền kiểm sốt. Mỗi máy tính
sẽ đưa ra băng thơng riêng (ví dụ với người dùng PC cá nhân nối ADSL). Tất cả sẽ được dùng
một lần, và nhờ đó, phân tán được cuộc tấn cơng vào website đích. Một trong các kiểu tấn
công phổ biến nhất được thực hiện thông qua sử dụng giao thức TCP (một giao thức hướng
kết nối), gọi là TCP syn flooding (tràn đồng bộ TCP). Cách thức hoạt động của chúng là gửi
đồng thời cùng lúc một số lượng khổng lồ yêu cầu kết nối TCP tới một Web Server (hoặc bất
kỳ dịch vụ nào khác), gây tràn tài nguyên server, dẫn đến tràn băng thông và ngăn không cho
người dùng khác mở kết nối riêng của họ. Quả là đơn giản nhưng thực sự nguy hiểm! Kết quả
thu được cũng tương tự khi dùng giao thức UDP (một giao thức không kết nối).
Lý thuyết IP subnetting
1. Địa chỉ IP classful:
- Nhược điểm: Lãng phí khơng gian địa chỉ; Khó quản trị, bảo trì; Tính bảo mật kém.
- Địa chỉ private: Địa chỉ sử dụng nội bộ, được định nghĩa trong RFC 1918.
Class
Class A
Class B
Class C

Adress (range)
10.0.0.0 – 10.255.255.255
172.16.0.0 – 172.31.0.0
192.168.0.0 – 192.168.255.0

Networks
1
16
256


Total Private Hosts
16,777,214
1,048,544
65,024

- Địa chỉ public: Là các địa chỉ còn lại Địa chỉ “thấy” được trên mạng Internet
- Địa chỉ loopback: 127.0.0.0 – 127.255.255.255


HCMUS

2. Địa chỉ IP classless:
- Ra đời năm 1993, giải quyết các vấn đề của địa chỉ IP Classful; không sử dung các lớp
như địa chỉ IP Classful; Các bit phần Host và phần Net có thể tùy ý.
Lý thuyết mạng chuyển mạch
1. So sánh mạng chuyển mạch mạch và mạng chuyển mạch gói
- Mạng chuyển mạch mạch:
+ Ưu: Ổn định với tốc độ được đảm bảo, khó xảy ra vấn đề khi truyền tải/giao tiếp.
+ Khuyết: Cấp phát bất chấp nhu cầu, khơng tối ưu băng thơng – có thời gian nghỉ/thừa > phung phí băng thơng, phức tạp khi hệ thống quá lớn.
- Mạng chuyển mạch gói:
+ Ưu: Tận dụng tối đa băng thơng vì sử dụng băng thông theo nhu cầu sử dụng, đơn giản
khi triển khai với qua mô lớn.
+ Khuyết: Độ biến động cao, thiếu sự ổn định hơn so với mạng chuyển mạch mạch, dễ bị
tắc nghẽn băng thông, độ trễ hàng chờ không dự đoán trước được (sẽ đề cập ở phần sau).
=> Mạch chuyển mạch gói hiệu quả hơn ở đa số tình huống trong thời điểm hiện tại.
Tuỳ thuộc vào tình huống cụ thể, lựa chọn mạng chuyển mạch cho phù hợp. Cả 2 mạng
đều vẫn còn phổ biến trong các hệ thống mạng viễn thông. Internet vận hành dựa trên mạng
chuyển mạch gói. Dễ thấy, các cuộc gọi VoIP (Mess, Zalo, v.v) kém ổn định hơn hẳn so với
cuộc gọi điện thoại. Bù lại chi phí thì lại rẻ hơn nhiều vì sử dụng tài nguyên hợp lý hơn.

Lý thuyết mơ hình OSI (trang 68 giáo trình)
- OSI là mơ hình tham chiếu kết nối hệ thống mở. Mơ hình này được tạo nên nhờ vào
nguyên lý phân tầng, giải thích về kỹ thuật kết nối giữa các máy tính và thiết lập giao thức
mạng giữa các máy tính đó.
- Mơ hình OSI chia giao tiếp mạng thành 7 tầng. Từ tầng 1 đến tầng 4 là là những lớp
thuộc cấp thấp, nó thực hiện nhiệm vụ di chuyển dữ liệu. Từ tầng 5 đến tầng 7 là lớp thuộc
cấp cao, thực hiện nhiệm vụ đặc thù và chuyển tiếp dữ liệu.


HCMUS

- Những ưu điểm của OSI đó là:
• OSI phân thành nhiều tầng nhỏ và đơn giản hơn.
• OSI chuẩn hóa các thành phần mạng để phát triển dễ dàng hơn.
• OSI chuẩn hóa giao diện giữa các tầng.
• Dữ liệu được truyền nhanh chóng và dễ dàng hơn.
Tầng 7:
Tầng ứng
dụng
(Application
Layer)

- Cung cấp phương tiện cho người dùng truy nhập các thông tin và dữ liệu
trên mạng thông qua chương trình ứng dụng.
- Là giao diện chính để người dùng tương tác với chương trình ứng dụng,
và qua đó với mạng. Một số ví dụ về các ứng dụng trong tầng này bao gồm
HTTP, Telnet, FTP (giao thức truyền tập tin) và các giao thức truyền thư
điện tử như SMTP, IMAP, X.400 Mail.

Tầng 6:

Tầng trình
diễn
(Presentation
Layer)

- Hoạt động như tầng dữ liệu trên mạng. Tầng này trên máy tính truyền dữ
liệu làm nhiệm vụ dịch dữ liệu được gửi từ tầng ứng dụng sang địng dạng
chung. Và tại máy tính nhận, lại chuyển từ định dạng chung sang định dạng
của tầng ứng dụng.
- Thực hiện các chức năng sau:
+ Dịch các mã ký tự từ ASCII sang EBCDIC.
+ Chuyển đổi dữ liệu, ví dụ từ số interger sang số dấu phẩy động.
+ Nén dữ liệu để giảm lượng dữ liệu truyền trên mạng.
+ Mã hoá và giải mã dữ liệu để đảm bảo sự bảo mật trên mạng.

Tầng 5:
Tầng phiên
(Session
Layer)

- Kiểm sốt các (phiên) hội thoại giữa các máy tính.
- Thiết lập, quản lý và kết thúc các kết nối giữa trình ứng dụng địa phương
và trình ứng dụng ở xa.
- Hỗ trợ hoạt động song công (duplex) hoặc bán song công (half-duplex)
hoặc đơn công (simplex) và thiết lập các quy trình đánh dấu điểm hồn
thành - giúp việc phục hồi truyền thơng nhanh hơn khi có lỗi xảy ra, vì điểm
đã hồn thành đã được đánh dấu - trì hỗn, kết thúc và khởi động lại.
- Mơ hình OSI uỷ nhiệm cho tầng này trách nhiệm "ngắt mạch nhẹ nhàng"
(graceful close) các phiên giao dịch (một tính chất của giao thức kiểm soát
giao vận TCP) và trách nhiệm kiểm tra và phục hồi phiên, đây là phần

thường không được dùng đến trong bộ giao thức TCP/IP.

Tầng 4:
Tầng vận
chuyển
(Transport
Layer)

- Cung cấp dịch vụ chuyên dụng chuyển dữ liệu giữa các người dùng tại đầu
cuối, nhờ đó các tầng trên khơng phải quan tâm đến việc cung cấp dịch vụ
truyền dữ liệu đáng tin cậy và hiệu quả.
- Tầng vận chuyển kiểm soát độ tin cậy của một kết nối được cho trước.
Một số giao thức có định hướng trạng thái và kết nối. Có nghĩa là tầng này
có thể theo dõi các gói tin và truyền lại các gói bị thất bại.
- Một ví dụ điển hình của giao thức tầng 4 là TCP. Tầng này là nơi các thông
điệp được chuyển sang thành các gói tin TCP hoặc UDP. Ở tầng 4 địa chỉ
được đánh là address ports, thông qua address ports để phân biệt được
ứng dụng trao đổi.


HCMUS

Tầng 3:
Tầng mạng
(Network
Layer)

- Cung cấp các chức năng và quy trình cho việc truyền các chuỗi dữ liệu có
độ dài đa dạng, từ một nguồn tới một đích, thơng qua một hoặc nhiều
mạng, trong khi vẫn duy trì chất lượng dịch vụ mà tầng giao vận yêu cầu.

- Tầng mạng thực hiện chức năng định tuyến. Các thiết bị router hoạt động
tại tầng này - gửi dữ liệu ra khắp mạng mở rộng, làm cho liên mạng trở nên
khả thi (cịn có thiết bị chuyển mạch (switch) tầng 3, cịn gọi là chuyển mạch
IP). Đây là một hệ thống định vị địa chỉ lơgic. Hệ thống này có cấu trúc phả
hệ.
- Ví dụ điển hình của giao thức tầng 3 là giao thức IP.

Tầng 2:
Tầng liên kết
dữ liệu
(Data-Link
Layer)

- Cung cấp các phương tiện có tính chức năng và quy trình để truyền dữ
liệu giữa các thực thể mạng (truy cập đường truyền, đưa dữ liệu vào mạng),
phát hiện và có thể sửa chữa các lỗi trong tầng vật lý nếu có. Cách đánh địa
chỉ mang tính vật lý, nghĩa là địa chỉ (MAC) được mã hóa cứng vào trong
các thẻ mạng khi chúng được sản xuất. Hệ thống xác định địa chỉ này khơng
có đẳng cấp.
- Ví dụ điển hình nhất là Ethernet. Những ví dụ khác về các giao thức liên
kết dữ liệu (data link protocol) là các giao thức HDLC; ADCCP dành cho các
mạng point-to-point hoặc mạng chuyển mạch gói và giao thức ALOHA cho
các mạng cục bộ.

Tầng 1:
Tầng vật lý
(Physical
Layer)

- Tầng vật lý định nghĩa tất cả các đặc tả về điện và vật lý cho các thiết bị.

Trong đó bao gồm bố trí của các chân cắm, các hiệu điện thế, và các đặc tả
về cáp nối.
- Các thiết bị tầng vật lý bao gồm hub, repeater, thiết bị chuyển đổi tín hiệu
(converter), thiết bị tiếp hợp mạng (network adapter) và thiết bị tiếp hợp
kênh máy chủ (Host Bus Adapter)
- Chức năng và dịch vụ căn bản được thực hiện bởi tầng vật lý bao gồm:
+ Thiết lập hoặc ngắt mạch kết nối điện với một môi trường truyền dẫn
phương tiện truyền thông.
+ Tham gia vào quy trình mà trong đó các tài ngun truyền thơng được
chia sẻ hiệu quả giữa nhiều người dùng, chẳng hạn giải quyết tranh chấp
tài nguyên và điều khiển lưu lượng.
+ Điều chế (modulation), hoặc biến đổi giữa biểu diễn dữ liệu số của các
thiết bị người dùng và các tín hiệu tương ứng được truyền qua kênh truyền
thông.
- Ethernet nhập tầng vật lý với tầng liên kết dữ liệu vào làm một.


HCMUS

Lý thuyết mơ hình TCP/IP
- Mơ hình TCP/IP có sự kết hợp giữa các giao thức riêng biệt. Nhiệm vụ của mỗi giao
thức là giúp máy tính có thể kết nối, truyền thông tin qua lại với nhau. TCP là giao thức điều
khiển truyền nhận còn Internet Protoco (IP) là giao thức liên mạng. TCP/IP gồm 4 tầng đó là
tầng ứng dụng, tầng mạng, tầng giao vận và tầng vật lý.
- Các giao thức phổ biến nhất của mơ hình TCP/IP: FTP, HTTP, HTTPS ba giao thức được
dùng nhiều nhất của TCP/IP. FTP là giao thức giúp cho máy tính có thể gửi dữ liệu khơng giới
hạn đến một hay nhiều máy tính khác. HTTP có chức năng truyền dữ liệu khơng an tồn giữa
người dùng web và máy chủ web. HTTPS là giao thức được dùng để truyền dữ liệu an toàn
giữa người dùng web và máy chủ web.
- Ưu điểm của TCP/IP là:

• Mơ hình TCP/IP khơng chịu sự kiểm sốt của tổ chức nào. Do đó, người dùng có thể tự
do sử dụng.
• Có khả năng tương thích với các mạng, hệ điều hành và phần cứng máy tính.
• Có khả năng khả năng định tuyến, mở rộng và nhận định được đường dẫn tốt nhất
thông qua mạng.

CHƯƠNG 2: TẦNG ỨNG DỤNG (APPLICATION)
Bài tập trong sách
BT3. “Out-of-band” data (dữ liệu ngoài băng) là dữ liệu được truyền qua luồng độc lập với
luồng dữ liệu chính trong “band”. Gọi là FTP gửi thơng tin điều khiển “out-of-band” vì FTP


HCMUS

dùng ít nhất 2 kết nối TCP song song để truyền dữ liệu, trong đó 1 kết nối chỉ truyền thơng tin
điều khiển, khơng truyền dữ liệu chính/truyền tập tin.
BT9. Khi người dùng truy cập trang web lần đầu tiên, máy chủ sẽ tạo một ID number độc nhất,
tạo lối vào cơ sở dữ liệu back-end và trả về ID number này dưới dạng cookie. Cookie này được
lưu trữ trên máy tính người dùng và được quản lý bởi trình duyệt. Trong mỗi lần truy cập (và
mua hàng) tiếp theo, trình duyệt sẽ trả lại cookie cho trang web. Do đó, trang web biết khi
nào người dùng này đang truy cập trang web.
Cách giải khác: Site có một CSDL cookies để định danh khách hàng bằng cookies. Khi khách
hàng đăng nhập lần đầu (chưa có cookies) sẽ được site khởi tạo cho 1 cookies ID tương ứng.
Và gửi “Set cookies ID:” này về cho browser. Những lần sau, khi truy cập site, browser sử dụng
ID đã được cấp để thông báo với site về trạng thái của trình duyệt, từ đó site có thể thơng
qua ID và định danh.
* Minh hoạ: Giả sử tên site e-commerce là abc.com.
User đăng nhập vào site abc.com lần đầu tiên; Web server của site tại một cookie ID
tương ứng cho user này là ID = 712; Web server thêm ID này vào CSDL cookie của webserver;
Web server gửi ID này về cho browser, browser thêm ID và site vào tập cookies (thêm dòng

{712; abc.com}); User truy cập, mua hàng bình thường. Server sẽ lưu các thông tin này tương
ứng với cookie ID đã cấp cho user; Lần sau truy cập abc.com, browser của user gửi cookie ID
đã được cấp từ trước cho site, site dự vào ID này tìm kiếm thơng tin của user tương ứng; Site
trả về thông tin mua hàng trước đây đã lưu trữ cho người dùng xem.
P1. Câu hỏi: Đúng/Sai. Giải thích?
a) Một người dùng yêu cầu từ 1 trang web 1 text và 3 hình ảnh, client sẽ gửi 1 tin nhắn yêu
cầu và nhận 4 tin nhắn phản hồi? Sai.
The client would receive a response for eachrequest so if it sent a request then it would get a
response of the same amount. So if it send three requests it would get three responses and
so on.
b) 2 trang web khác biệt có thể gửi qua cùng 1 kết nối kiên trì. Đúng.
The book says “Moreover, multiple web pages residing on the same server can be sent from
the sever to the same client over a single persistent TCP connection.” This suggestion that
both web pages are from the MIT and are probably on the same server.
c) Với một kết nối không kiên trì giữa trình duyệt và máy chủ có thể cho 1 gói tin TCP thực
hiện 2 request HTTP khác nhau. Sai.
A non-persistent connection would handle each web page in a separate connection. So each
separate connection needs a new request. This has some draw backs since each new
connection can take longer to respond.
d) Header của HTTP response message cho biết thời điểm sửa đổi cuối cùng của đối tượng
response. Sai.
This tells when the date header was created and not when it was modified. Found on page
106 it states “The Date: header line indicated the time and date when the HTTP response was
created and sentby the server.
e) Thông điệp yêu cầu của giao thức HTTP không thể rỗng. Đúng.


HCMUS

If one request succeeds, then the information would be supplied as a response. But if the

response fails then an error message would be returned. A 404 Not Founds response would
occur if it wasn’t found so it’s not possible for a reply to be empty.
Tổng quan các giao thức tầng Ứng dụng

DHCP

68

67

Giao thức
tầng Vận
chuyển
UDP

HTTP

Linh động

80

TCP

SMTP

Linh động

25

TCP


DNS

Linh động

53

UDP và TCP
TCP

Bất kỳ
Bất kỳ

cmd 21
(data 20)
110
143

23
22

TCP
TCP

Giao
thức

Cổng dịch vụ
Client


Server

HTTPS

FTP
POP3
IMAP

Telnet Bất kỳ
SSH

TCP
TCP

Ứng dụng
Cấp phát IP động cho các máy trong
network,
tránh trường hợp 2 máy trong cùng
mội
network bị trùng IP
Kết nối giữa Client và Server
Chia sẻ, truyền thơng tin qua Internet
Tương tự HTTP, nhưng có kết nối an
toàn được cung cấp bởi SSL hoặc TLS.
Truyền tải thư điện tử trên mạng
Internet
Chuyển đổi tên miền thành IP và ngược
lại
Trao đổi tập tin qua mạng
Kéo email từ server về client.

Chỉ kéo email headers về, nội dung vẫn
còn trên server. Thay đổi trên client sẽ
được chuyển lên server.
Điều khiển máy tính từ xa qua dịng lệnh
Telnet có mã hóa

Lý thuyết các nguyên tắc chung của ứng dụng mạng (trang 92 giáo trình)
1. So sánh client-server và P2P: (trang 94 giáo trình)
Client-server
Peer-to-peer
Đều có một client gửi request đến server và server gửi trả thơng tin về cho client.
Phân chia vai trị rõ ràng giữa server và
Trong cùng một mạng, tất cả máy đều ngang
client
hàng với nhau
Server cung cấp dịch vụ cho client do dữ
Mỗi peer có thể cung cấp dịch vụ và cũng có
liệu được lưu trữ tập trung trên server
thể yêu cầu dịch vụ, do mỗi máy có dữ liệu
riêng
Cần có người quản trị mạng
Khơng cần có người quản trị mạng
Cần khá ít phần cứng, có thể khơng cần đến
Cần máy chủ, phần cứng và HĐH
HĐH và máy chủ
Việc chia sẻ thông tin là quan trọng hơn
Việc kết nối giữa các máy quan trọng hơn


HCMUS


Có 1 server phục vụ khách hàng, do đó có
nhiều cơ hội máy chủ bị tắc nghẽn.
Chi phí cao hơn
Có khả năng mở rộng và ổn định hơn
Nếu số lượng server là cố định, thì khi số
lượng client tăng lên khả năng chuyển dữ
liệu cho mỗi client sẽ giảm xuống.

Các server được phân phối trong một hệ
thống, do đó ít có khả năng máy chủ bị tắc
nghẽn
Chi phí thấp hơn
Càng có nhiều máy tham gia mạng thì khả
năng tổng thể của hệ thống mạng càng lớn

2. Ưu, nhược điểm client-server và P2P (cần tham khảo bảng trên)
- Ưu điểm của client-server:
+ Dễ dàng mở rộng hệ thống mạng.
+ Với mô hình Client server, người dùng có thể truy cập dữ liệu từ xa, thực hiện các thao
tác gửi, nhận file hay tìm kiếm thơng tin đơn giản.
- Nhược điểm của client-server:
+ Cần bảo trì, bảo dưỡng server thường xuyên.
+ Khả năng bảo mật thông tin mạng là một hạn chế nữa của Client server. Bởi vì, nguyên
lý hoạt động của client-server là trao đổi dữ liệu giữa server và client ở 2 khu vực địa lý
khác nhau. Trong quá trình trao đổi dữ liệu, khả năng thông tin mạng bị lộ là điều dễ xảy
ra.
3. Khái niệm tiến trình (process):
- Tiến trình là một phần của ứng dụng đang chạy trên máy. VD: browser đang mở nhiều tab,
mỗi tab truy cập 1 site khác nhau Có n tab -> tổng cộng có n tiến trình Web-client đang chạy.

- Tiến trình thực ra là “chương trình” đang chạy trên máy tính. Vì ứng dụng ngày ngay tích
hợp và xử lý q nhiều chương trình cùng lúc nên thuật ngữ tiến trình ra đời.
- Tiến trình được định danh bởi port, giúp các tiến trình phân biệt với nhau.
4. Khái niệm socket:
- Phục vụ giao tiếp giữa 2 tiến trình trên 2 máy khác nhau. Bất kỳ tiến trình nào giao tiếp với
nhau cũng cần thơng qua tầng mạng, tiến trình gửi/nhận các thông điệp từ mạng gọi là socket.
- Socket là một tiến trình riêng biệt khơng liên quan đến các tiến trình cung cấp dịch vụ cho
end-user của ứng dụng. Socket là interface hỗ trợ giữa tầng Ứng dụng và tầng Vận chuyển.
- Socket có thể giúp người lập trình ở tầng Ứng dụng quản lý một số thuộc tính ở tầng Vận
chuyển như: lựa chọn giao thức vận chuyển (UDP/TCP), cài đặt buffer_size,
max_segment_size,… (như 1 filter)
- Mơ hình hoạt động: Tiến trình end-user <-> socket nhận data <-> giao tiếp ở tầng mạng <->
socket gửi data <-> tiến trình end-user.
=> Hiểu socket như một tiến trình trung gian giúp kết nối giữa tầng Ứng dụng và tầng Giao
vận. Tiến trình này giúp người ở Tầng Ứng dụng thiết đặt một số thông số kết nối cho tầng
Giao vận.
Lý thuyết HTTP (trang 106 giáo trình)
1. Minh họa giao thức HTTP:


HCMUS

2. So sánh HTTP không thường trực và HTTP thường trực
HTTP không thường trực

HTTP thường trực

- Cần 2RTT cho mỗi kết nối
- Hệ điều hành quản lý (overhead) từng
kết nối TCP

- Trình duyệt thường xuyên phải tạo các
kết nối TCP song song để với các đối tượng
liên quan (referenced object)

- Cần 1RTT cho tất cả các đối tượng
- Server giữ kết nối mở sau khi phản hồi
- Những tin nhắn HTTP sau đó giữa client
và server được gửi thơng qua kết nối mở
đó
- Client gửi yêu cầu ngay khi nó bắt gặp đối
tượng liên quan ( referenced object)

3. Tấn công HTTP flood DDoS:
a) Khái niệm: Tấn công HTTP flood là một loại tấn công từ chối dịch vụ phân tán (DDoS) được
thiết kế để áp đảo server mục tiêu với các yêu cầu HTTP . Khi mục tiêu đã bão hịa với các u
cầu và khơng thể đáp ứng lưu lượng truy cập thông thường, việc từ chối dịch vụ sẽ xảy ra đối
với các yêu cầu bổ sung từ người dùng thực tế.
b) Cách thức hoạt động:
Các cuộc tấn công HTTP flood là một loại tấn công lớp “layer 7”. “layer 7” là ứng dụng của
mơ hình OSI và đề cập đến các giao thức internet như HTTP. HTTP là cơ sở của các yêu cầu
internet dựa trên trình duyệt và thường được sử dụng để tải các trang web hoặc gửi nội dung
biểu mẫu qua Internet. Giảm thiểu các cuộc tấn công layer ứng dụng đặc biệt phức tạp, vì lưu
lượng độc hại rất khó phân biệt với lưu lượng thông thường.
Để đạt được hiệu quả tối đa, các tác nhân độc hại thường sử dụng hoặc tạo ra các botnet
để tối đa hóa tác động của cuộc tấn công của họ. Bằng cách sử dụng nhiều thiết bị bị nhiễm
phần mềm độc hại, kẻ tấn cơng có thể tận dụng những nổ lực của chúng bằng cách tung ra
một khối lưu lượng tấn công lớn hơn.


HCMUS


Có hai loại tấn cơng HTTP flood:
+ Tấn cơng HTTP GET – hình thức tấn cơng này, nhiều máy tính hoặc thiết bị khác được
phối hợp để gửi nhiều yêu cầu cho hình ảnh, tệp hoặc một số dữ liệu khác từ server mục
tiêu. Khi mục tiêu bị quá tải (ngập) trong các yêu cầu và phản hồi đến, việc từ chối dịch vụ
sẽ xảy ra đối với các yêu cầu bổ sung từ các nguồn lưu lượng hợp pháp.
+ Tấn công POST HTTP – thông thường khi một biểu mẫu được gửi trên một trang web,
server phải xử lý yêu cầu đến và đẩy dữ liệu vào một layer liên tục, thường là cơ sở dữ
liệu. Quá trình xử lý dữ liệu biểu mẫu và chạy các lệnh cơ sở dữ liệu cần thiết là tương đối
nhiều so với lượng sức mạnh xử lý và băng thông cần thiết để gửi yêu cầu POST. Cuộc tấn
công này sử dụng sự chênh lệch về mức tiêu thụ tài nguyên tương đối, bằng cách gửi trực
tiếp nhiều yêu cầu bài đến máy chủ được nhắm mục tiêu cho đến khi dung lượng của nó
bị bão hịa và xảy ra sự từ chối dịch vụ.
c) Cách phòng chống:
Như đã đề cập trước đó, giảm nhẹ các cuộc tấn cơng layer 7 rất phức tạp và thường là
nhiều mặt. Một phương pháp là thực hiện một thách thức đối với máy yêu cầu để kiểm tra
xem đó có phải là bot hay khơng, giống thử nghiệm captcha thường được tìm thấy khi tạo tài
khoản trực tuyến. Bằng cách đưa ra một yêu cầu như thách thức tính tốn JavaScript, nhiều
cuộc tấn cơng có thể được giảm nhẹ.
Các cách khác để ngăn chặn HTTP flood bao gồm sử dụng tường lửa ứng dụng web
(WAF),quản lý IP cơ sở dữ liệu uy tín để theo dõi và chọn lọc chặn các lưu lượng độc hại, và
được phân tích nhanh chóng bởi các kỹ sư. Có lợi thế về quy mô với hơn 20 triệu tài sản
Internet cho phép Cloudflare khả năng phân tích lưu lượng truy cập từ nhiều nguồn khác nhau
và giảm thiểu các cuộc tấn công tiềm năng bằng các quy tắc WAF được cập nhật nhanh chóng
và các chiến lược giảm thiểu khác để loại bỏ lưu lượng DDoS của layer ứng dụng.
Lý thuyết FTP (trang 126 giáo trình)
1. Cách thức hoạt động:
Active Mode
Client
data

cmd
38069
37843





Server
cmd
data
21
20
AUTH

USER

PASS

PORT


←------ Server chỉ định cổng mới --------

Passive Mode
Client
data
cmd
55919
58405










Server
data
cmd
50621
21
AUTH
USER
PASS
PORT

--------- Client chỉ định cổng mới ------→


HCMUS

←------------ Truyền dữ liệu ----------------

←------------- Truyền dữ liệu ---------------

← QUIT


2. Điểm khác biệt của FTP so với HTTP:

← QUIT


+ Có ít nhất 2 kênh TCP song song: 1 để điều khiển (control, dùng port 21); 1 để truyền
tập tin (dùng port 20)
+ Mỗi tập tin truyền sẽ có 1 kênh truyền tập tin riêng biệt
+ Chỉ có một kênh điều khiển duy nhất trong suốt phiên sử dụng
+ Kênh điều khiển liên tục duy trì và kiểm tra trạng thái của client
=> Giao thức FTP quan tâm tới trạng thái của client (HTTP là phi trạng thái)
Lý thuyết email (trang 129 giáo trình)
1. Email hiện đại:
+ Có 4 thực thể, minh hoạ bằng giao tiếp giữa A và B qua email
[Trình xem thư A – máy chủ A – máy chủ B – trình xem thư B]
+ Máy chủ là hộp thư của user
+ Trình xem thư có thể là ứng dụng mail/trình duyệt web/v.v
+ Để gửi mail dùng giao thức SMTP hoặc SMTP + HTTP
+ Để đọc mail từ hộp thư dùng giao thức POP3/IMAP/HTTP
+ Đọc thư có thể truy cập trực tiếp vào máy chủ A hoặc B để đọc thư, nhưng với lượng
user lớn và sử dụng máy chủ chung như hiện nay, truy cập trực tiếp sẽ xảy ra nhiều vấn đề > giao thức truy cập mail
+ POP3 là giao thức đọc mail tải toàn bộ mail xuống và là giao thức 1 chiều, trong khi đó
IMAP chỉ get header và là giao thức 2 chiều
2. Giao thức SMTP:
Giao thức SMTP là giao thức để truyền thư từ -> máy chủ người gửi và từ đó tới -> máy
chủ người nhận
3. Cách thức hoạt động:
+ SMTP khách tạo kết nối TCP tới SMTP chủ qua port 25
+ Thiết lập kết nối thành công, 2 máy trao đổi thơng tin điều khiển
+ Sau khi hồn tất quá trình giới thiệu và bắt tay (handshaking), SMTP khách có thể bắt

đầu gửi thư cho SMTP chủ
+ Khơng như FTP, muốn gửi thư khác, có thể dùng lại kết nối TCP, khơng cần tạo lại
+ Sau khi khơng cịn thư để gửi – đóng kết nối.
Lý thuyết DNS (trang 139 giáo trình)
1. Cách thức hoạt động:


HCMUS

2. DNS spoofing (tấn công giả mạo DNS):
a) Cách thức tấn công:
- DNS Hijacking: làm nhiệm vụ cài phần mềm độc hại vào máy tính của người dùng.
- DNS Cache Poisoning (hoặc còn gọi là Spoofing): chiếm quyền điều khiển DNS Cache và tiến
hành thay đổi giá trị, thông tin trong đó thành thơng tin của giả mạo.
Ví dụ, khi bạn gõ địa chỉ quantrimang.com vào thanh địa chỉ của trình duyệt, hệ thống sẽ
tiến hành xác nhận thơng tin địa chỉ IP tương ứng với tên miền quantrimang.com và trả thơng
tin lại cho máy tính (kết quả là website quantrimang.com hiển thị đầy đủ trên trình duyệt). 1
tên miền có thể chứa nhiều địa chỉ IP, và khi bạn truy cập vào quantrimang.com thường xuyên
thì hệ thống sẽ ghi nhận đây là website cần ghi nhớ, để rút ngắn thời gian cho những lần truy
cập sau.


HCMUS

Bên cạnh đó, điểm khác biệt này lại được hacker khai thác khá triệt để (tất nhiên chúng
đã chuẩn bị sẵn nhiều server DNS giả mạo), và trong số nhiều địa chỉ DNS giả mạo đó sẽ có
1/10 tỉ lệ thành công, và được ưu tiên hơn so với DNS chính hãng của ISP (hacker tiến hành
gửi tín hiệu đi liên tục). Đây là cách "làm việc" của DNS Cache Poisoning.
Và vì cách làm việc riêng biệt như trên, DNS Hijacking và DNS Cache Poisoning được sử
dụng xen kẽ lẫn nhau.

b) Cách phịng chống:
- Bảo vệ máy tính từ bên trong: Thông thường, các cuộc tấn công DNS thường được thực hiện
từ bên trong mạng của bạn. Vì vậy, để phịng chống DNS Spoofing thì bạn cần đảm bảo các
thiết bị mạng của mình ln an tồn. Như vậy, nguy cơ bị DNS Spoofing sẽ giảm đáng kể, giảm
khả năng các Host bị thỏa hiệp và được dùng để khởi chạy tấn công DNS Spoofing.
- Không dựa vào DNS cho các hệ thống an toàn, bảo mật: Đối với các hệ thống an tồn, có
độ nhạy cảm cao và địi hỏi tính bảo mật thì khơng nên duyệt internet trên nó. Đây là một
cách hiệu quả để khơng phải dùng đến DNS. Nếu bạn có Hostname để thực hiện một số
cơng việc thì bạn nên điều chỉnh những gì cần thiết trong file cấu hình thiết bị.
- Dùng hệ thống phát hiện xâm nhập – IDS: IDS là một hệ thống có khả năng phát hiện xâm
nhập. Khi nó được đặt và triển khai đúng sẽ có thể vạch mặt hình thức giả mạo DNS và ARP
Cache.
- Thay thế DNS bằng DNSSEC: DNSSEC là một giải pháp mới dùng để thay thế cho DNS.
DNSSEC sử dụng các bản ghi DNS có chữ ký để đảm bảo sự hợp lệ hóa đáp trả truy vấn.

CHƯƠNG 3: TẦNG VẬN CHUYỂN (TRANSPORT)
Bài tập trong sách
BT1. Có. Các nhà phát triển có thể xử lý truyền dữ liệu tin cậy ở tầng Ứng dụng. Tuy nhiên,
điều này sẽ địi hỏi một lượng lớn cơng việc và gỡ lỗi. Ở tầng Ứng dụng, phần mềm có thể tự
xử lý độ tin cậy. Ví dụ, phần mềm có thể lưu các trường ở header TCP mà khơng có ở header
UDP trong phần dữ liệu của gói để tự mơ phỏng lại q trình TCP.
Để đảm bảo độ tin cậy, nhà phát triển sẽ cần thêm ở lớp ứng dụng:
- Chức năng ACK giúp đảm bảo các phân đoạn dữ liệu nhận được.
- Sequence number giúp sắp xếp thứ tự các phân đoạn dữ liệu.
- Kiểm soát luồng dữ liệu.
BT2. Do UDP nhanh hơn và ít theo quy tắc hơn. Các nhà lập trình có thể khơng muốn phần
mềm của mình sử dụng chức năng kiểm sốt tắc nghẽn của TCP do chức năng này có thể khiến
việc truyền dữ liệu chậm hơn. Mặt khác, TCP đã được phát triển, xây dựng sâu vào trong nhân
của hệ điều hành, vào phần cứng nên để có thể đưa ra sự thay đổi lớn cho TCP gần như là
điều khơng thể. Đối với UDP, họ có thể tự xử lý độ tin cậy cho nó theo ý muốn của mình.

BT10. Đối với mỗi kết nối thường trực, Web server tạo một socket riêng. Mỗi socket kết nối
được xác định bằng 4-tuple: IP nguồn, port nguồn, IP đích, port đích. Khi Host C nhận các gói
tin, nó sẽ kiểm tra 4 trường này trong datagram/segment để xác định socket sẽ truyền phân
đoạn TCP. Do đó, các request từ A và B đi qua các socket khác nhau. Cả hai socket này đều sử
dụng port đích là 80; tuy nhiên, ID các socket này có giá trị khác nhau theo địa chỉ IP nguồn.


HCMUS

BT11. Sequence number cần thiết để receiver xác định xem một gói tin tới có chứa dữ liệu
mới hay là một gói truyền lại; hỗ trợ sắp xếp thứ tự; và cung cấp một số thơng tin về các gói
có khả năng bị mất. Timer cần thiết để phát hiện các gói bị mất. Nếu khơng nhận được ACK
cho một gói đã gửi trong khoảng thời gian của timeout của gói, gói đó (hoặc ACK hoặc NACK
của nó) xem như đã mất. Do đó, gói tin cần được gửi lại.
BT18+19. Fast Restransmit: Thường thì một segment được truyền lại khi vượt quá thời gian
chờ gửi lại (thựcchất là khoảng thời gian chờ gói tin hồi đáp). Với Fast Retramsmit, khi bên
gửi nhận được 3 gói ACK phản hồi giống nhau thì bên gửi sẽ lập tức truyền lại segment bị mất
mà không cần phải chờ cho tới khi hết timeout.
Fast Recovery: Khi nhận được một gói tin ACK hồi đáp cho dữ liệu đã gửi. Lúc này kích
thước cwnd = ssthresh. Thuật toán Fast Recovery quy định việc thực hiện thuật toán tránh
tắc nghen ngay khi thực hiện phát lại nhanh.
P14. Câu hỏi: Giả sử phía gửi sẽ gửi dữ liệu khơng thường xun. Giao thức chỉ dùng NAK có
thích hợp hơn giao thức sử dụng ACKs hay không? Tại sao?
Bây giờ giả sử phia gửi đã có rất nhiều dữ liệu để gửi và kết nối end-to-end có rất ít mất mát.
Trong trường hợp này, giao thức chỉ dùng NAK có thích hợp hơn giao thức sử dụng ACKs
khơng? Tại sao?
Trả lời: Trong giao thức chỉ dùng NAK, mất gói x chỉ có thể phát hiện được bởi phía nhận khi
phía nhận nhận được gói x-1 và ngay sau đó là x+1.
Nếu phía gửi gửi khơng thường xun, và có 1 khoảng thời gian delay dài giữa 2 gói tin x và
x+1 thì chỉ đến khi nào gói x+1 được gửi đi và đến được phía nhận thì phía nhận mới phát

hiện được là gói x bị mất => sẽ mất 1 khoảng thời gian dài để khôi phục gói x theo giao thức
chỉ dùng NAK.
Mặt khác, nếu dữ liệu được gửi thường xun thì việc khơi phục theo giao thức chỉ dùng NAK
sẽ xảy ra rất nhanh chóng. Hơn nữa, nếu lỗi khơng thường xun xảy ra thì NAK chỉ thỉnh
thoảng mới được gửi (khi cần thiết) còn ACK thì khơng cần gửi. Do dó làm giảm đáng kể trong
thông tin phản hồi
=> Giao thức chỉ dùng NAK tối ưu hơn giao thức sử dụng ACK
Lý thuyết TCP và UDP (trang 225 giáo trình)
1. Mơ tả ACK và seq của TCP trong quá trình duyệt web


HCMUS

2. TCP truyền thông tin cậy: TCP đảm bảo dữ liệu gửi đúng 100%. Ở tầng vận chuyển, TCP
xây dựng dịch vụ truyền dữ liệu tin cậy trên nền dịch vụ không tin cậy của IP. Dịch vụ truyền
dữ liệu tin cậy của TCP đảm bảo rằng: luồng dữ liệu mà bên nhận nhận và đọc được là
không lỗi, không trùng lặp, đúng thứ tự và sẽ được gửi lại nếu mất gói tin. TCP sử dụng thời
gian timeout, gói tin ACK, sequence number, kỹ thuật checksum để thực hiện dịch vụ này…
3. Ứng dụng sử dụng UDP:
- DHCP sử dụng UDP là vì: DHCP là giao thức cấp phát địa chỉ IP tự động. UDP cho phép
truyền gói tin quảng bá (broadcast), cụ thể là cấu trúc gói UDP không cần thiết chứa địa chỉ
nguồn (trong khi TCP bắt buộc phải có) nên client có thể gửi request tới DHCP server khi chưa
có địa chỉ IP.
- DNS sử dụng UDP (DNS cũng có thể sử dụng TCP) là vì:
+ UDP là giao thức phi kết nối, khơng có cơ chế bắt tay. Nếu ứng dụng DNS gửi request
thì nó có thể khơng nhận được response (mất request hoặc response). Khi đó, nó sẽ gửi
request cho một DNS server khác hoặc báo khơng nhận được response về ứng dụng. Do
đó, DNS sử dụng UDP để tránh được sự chậm trễ, giúp việc phân giải tên miền diễn ra
nhanh hơn.
+ Thông tin cần thiết trong gói tin truy vấn DNS là rất ít, phù hợp cho việc dùng UDP.

4. Đảm bảo truyền thông tin cậy cho UDP:
Để dùng giao thức UDP mà dữ liệu được đảm bảo 100% thì việc đảm bảo truyền dữ liệu
tin cậy sẽ được thực hiện ở tầng Ứng dụng. Cụ thể là, ở tầng Ứng dụng ta cài đặt thêm các
chức năng tương tự như TCP là: theo dõi kết nối, gói tin xác nhận, sắp xếp thứ tự, điều khiển
luồng,…
Một giải pháp có thể nghĩ tới đó là: Ngồi các gói tin gửi đến receiver thì sender gửi thơng
tin là danh sách các gói tin đó. Tương tự, receiver gửi lại cho sender danh sách các gói tin chưa
nhận được để sender gửi lại. Ngồi ra, các chức năng khác cũng được thực hiện bằng các kỹ


HCMUS

thuật trên tầng Ứng dụng. Các ứng dụng, phần mềm hỗ trợ truyền tin cậy bằng UDP là UDPLite, UDT,… Giao thức HTTP/3 cũng được triển khai thực hiện trên UDP vì TCP đã được phát
triển, xây dựng sâu trong HĐH, phần cứng, nên gần như không thể đưa ra sự thay đổi lớn cho
TCP cịn UDP thì hồn tồn khơng bị giới hạn gì cả.
Tất nhiên, việc đảm bảo việc truyền thông tin cậy cho UDP sẽ làm mất bản chất của UDP
và khiến việc truyền tin chậm hơn.
5. So sánh TCP và UDP:
TCP đảm bảo dữ liệu nhận chính xác và đúng thứ tự như khi gửi, nhờ xác nhận đã nhận
gói tin bằng ACK
TCP có nhiều phương pháp kiểm tra tính đúng đắn của dữ liệu; cịn UDP chỉ có checksum.
TCP có header là 20 byte, cho phép 40 byte dữ liệu tùy chọn; UDP có header 8 byte, chỉ
cho phép dữ liệu bắt buộc.
TCP chậm vì thực hiện nhiều chức năng; UDP nhanh vì cung cấp hạn chế các chức năng.
TCP là tốt nhất cho các ứng dụng yêu cầu độ tin cậy: web, truyền file, email và Secure
Shell (SSH)…;
UDP là tốt nhất cho các ứng dụng yêu cầu tốc độ, chấp nhận bị mất mát/lỗi: VPN, phát
video trực tuyến, VoIP, phát sóng trực tiếp và chơi game trực tuyến…
TCP có sự sắp xếp thứ tự giữa các gói tin bằng sequence number.
TCP có cơ chế điều khiển luồng (flow control).

Nếu gói tin bị lỗi hoặc mất thì TCP truyền lại (retransmisson); UDP bỏ qua gói tin lỗi.
TCP có quản lý kết nối: mở kết nối bằng 3 bước, đóng kết nối bằng 4 bước.
6. TCP flow control (kiểm sốt luồng):
- Flow control là quy trình quản lý số khung truyền dữ liệu giữa hai đầu kết nối của mạng
lưới, giúp hạn chế bên gửi làm tràn bộ nhớ đệm của bên nhận.
- Cả bên gửi (sender) và bên nhận (receiver) làm nhiệm vụ điều khiển tốc độ.
- Vì cơ chế hoạt động của dịch vụ này là receiver sẽ nói cho sender biết bộ nhớ đệm của
receiver cịn bao nhiêu thơng qua giá trị của trường Cửa số nhận (Window) trong mỗi gói tin
gửi đến sender. Tương tự, sender cũng phải theo dõi lượng dữ liệu đã gửi nhưng chưa được
báo nhận. Để đảm bảo không làm tràn bộ nhớ đệm, sender phải giữ lượng dữ liệu đã gửi
nhưng chưa được báo nhận không vượt quá kích thước cửa sổ nhận mà receiver đã cung cấp.
7. TCP congestion control (kiểm soát tắc nghẽn):
Nếu hai ứng dụng (một sử dụng TCP, một sử dụng UDP) muốn gửi càng nhiều dữ liệu càng
tốt để tranh giành băng thơng thì: Vì TCP điều chỉnh theo lượng tài ngun có sẵn và UDP gửi
càng nhiều dữ liệu càng tốt nên TCP sẽ ngắt kết nối và nhường gần như tồn bộ băng thơng
mạng cho ứng dụng sử dụng UDP.
8. Quản lý kết nối của TCP:
- Nguyên nhân TCP mở kết nối cần 3 bước:
Bắt tay hai chiều sẽ chỉ cho phép một bên thành lập ISN và bên kia thừa nhận điều đó. Có
nghĩa là chỉ một bên có thể gửi dữ liệu. Nhưng TCP là một giao thức truyền thông hai chiều,


HCMUS

có nghĩa là đầu cuối phải có khả năng gửi dữ liệu một cách đáng tin cậy. Cả hai bên cần thành
lập ISN và cả hai bên cần phải thừa nhận ISN của bên kia.
Vì vậy, trong thực tế, những gì bạn có chính xác là mơ tả của bạn về bắt tay hai chiều,
nhưng theo từng hướng . Do đó, bốn sự kiện xảy ra. Và một lần nữa, hai lá cờ ở giữa xảy ra
trong cùng một gói. Vì ba gói như vậy có liên quan đến một quá trình khởi tạo kết nối TCP đầy
đủ.

- Nguyên nhân TCP đóng kết nối cần 4 bước:
The four-way is actually two pairs of two-way handshakes. If termination is a REAL fourway actions, the 2 and 3 indeed can be set 1 at the same packet. But this a two-phase work:
the first phase (i.e. the first two-way handshake) is :
Client ------FIN-----> Server
Client <-----ACK------ Server
At this moment the client has been in FIN_WAIT_2 state waiting for a FIN from Server. As
a bidirectional and full-duplex protocol, at present one direction has break down, no more
data would be sent, but receiving still work, client has to wait for the other "half-duplex" to
be terminated.
While the FIN from the Server was sent to Client, then Client response a ACK to terminate
the connection.
Concluding note: the 2 and 3 can not merge into one package, because they belong to
different states. But, if server has no more data or no data at all to be sent when received the
FIN from client, it's ok to merge 2 and 3 in one package.


HCMUS

9. Cấu trúc gói tin TCP:
- Gói tin TCP Reset (RST):
When an unexpected TCP packet arrives at a host, that host usually responds by sending
a reset packet back on the same connection. A reset packet is simply one with no payload
and with the RST bit set in the TCP header flags.
There are a few circumstances in which a TCP packet might not be expected; the two
most common are: (1) The packet is an initial SYN packet trying to establish a connection to
a server port on which no process is listening; (2) The packet arrives on a TCP connection
that was previously established, but the local application already closed its socket or exited
and the OS closed the socket.
Other circumstances are possible, but are unlikely outside of malicious behavior such as
attempts to hijack a TCP connection.

Lý thuyết các nguyên lý truyền dữ liệu tin cậy (trang 202 giáo trình)
1. So sánh Go-Back-N và Selective Repeat:
Go-back-N

Selective repeat

Truyền lại tất cả các khung được gửi sau khung Chỉ truyền lại những khung hình bị nghi ngờ bị
mà nghi ngờ bị hỏng hoặc bị mất.
mất hoặc bị hỏng.


HCMUS

Nếu tỷ lệ lỗi cao sẽ lãng phí rất nhiều băng thơng. Băng thơng tương đối ít bị lãng phí trong việc
truyền lại.
Ít phức tạp hơn.

Phức tạp hơn vì u cầu áp dụng logic, phân loại
và lưu trữ bổ sung tại người gửi và người nhận.

Kích thước cửa sổ = N-1

Kích thước cửa sổ <= (N + 1) / 2

Sắp xếp khơng bắt buộc ở phía người gửi cũng Người nhận phải có khả năng sắp xếp vì nó phải
như phía người nhận.
duy trì chuỗi các khung.
Người nhận khơng lưu trữ các khung nhận được Bộ thu lưu các khung nhận được sau khung bị
sau khi khung bị hỏng cho đến khi khung bị hỏng hỏng trong bộ đệm cho đến khi khung bị hỏng
được truyền lại.

được thay thế.
Không yêu cầu tìm kiếm khung khơng phải ở phía Người gửi có thể phải tìm kiếm và chỉ chọn khung
người gửi cũng như trên người nhận
được yêu cầu
Số NAK đề cập đến số khung dự kiến tiếp theo.

Số NAK đề cập đến khung bị mất.

Thường được sử dụng hơn.

Ít trong thực tế vì sự phức tạp của nó.

CHƯƠNG 4: TẦNG MẠNG (NETWORK)
Bài tập trong sách
BT11.
b. Khơng có bảng chuyển tiếp như vậy. Quy tắc chuyển tiếp của bộ định tuyến trong mạng
chuyển mạch gói chỉ dựa trên địa chỉ đích.
c + d.
A
Incoming
interface

D
Outgoing
interface

VC #

VC #


Incoming
interface

Outgoing
interface

VC #

VC #

1

12

3

22

1

24

3

70

2

63


4

18

2

50

3

76

B
Incoming
interface
1

VC #
22

C
Outgoing
interface
2

VC #
24

Incoming
interface

1

VC #
18

Outgoing
interface
2

VC #
50

BT17. (tham khảo trang 317 giáo trình) A gửi một gói TCP SYN với địa chỉ đích là IP NAT outside
của B. Khi NAT nhận được gói TCP SYN này, nó khơng biết phải hướng gói tin đến máy chủ nội
bộ nào, vì nó khơng có đầu vào kết nối được khởi tạo từ phía bên ngồi. Như vậy NAT sẽ bỏ
gói SYN. Vì vậy, cả A và B đều khơng thể khởi tạo kết nối TCP với người kia nếu cả hai đều
đứng sau NAT.
P1. Câu hỏi: Trong câu hỏi này, chúng ta xét 1 vài ưu nhược điểm của virtual-circuit và
datagram netwok.
a. Giả sử routers là đối tượng chịu điều kiện khi thường xuyên bị lỗi. Điều này có gây tranh cãi
trong việc nó có lợi cho kiến trúc VC hay kiến trúc datagram? Tại sao?


HCMUS

b. Giả sử rằng có 1 node nguồn và 1 node đích, u cầu cố định cơng suất ln có sẵn tại các
router trên đường dẫn từ nguồn đến đích, cho việc sử dụng độc quyền của các trafic giữa
nguồn và đích. Sử dụng VC hay kiến trúc datagram? Tại sao?
c. Giả sử các links và router trong mạng lưới không bao giờ bị lỗi và định tuyến giữa tất cả các
router nguồn/ đích vẫn khơng thay đổi. Trong tình huống này, VC hay kiến trúc datagram có

nhiều điều khiển luồng giao thông overhead hơn? Tại sao?
Trả lời: a. Với 1 mạng lưới kết nối mạng, mỗi router bị lỗi sẽ liên quan đến phần định tuyến
của kết nối đó. ở mức tối thiểu, nó sẽ yêu cầu router đó “lội ngược dòng” từ router thất bại
đến xây dựng 1 đường dẫn mới đến node đích, với tất cả các dấu hiệu xây dựng liên quan đến
set up đường dẫn mới. Hơn nữa, tất cả các router trong đường dẫn ban đầu từ node sai phải
được đi xuống kết nối sai, với tất cả dấu hiệu xây dựng liên quan đến nó.
Với 1 mạng ko kết nối datagram, khơng dấu hiệu thiết lập cho cả đường dẫn mới hay đi xuống
đường dẫn cũ, tuy nhiên, bảng định tuyến đó sẽ cần update lại (ví dụ dùng thuật tốn distance
vector hoặc link state) để đưa các router không thành công vào tài khoản. chúng ra có thể
thấy vs tt distance vector, bảng định tuyến này có thể thay đổi thi thoảng bẳng đại phương
hóa từng vùng gần router thất bại. do đó, 1 datagram netwok sẽ thích hợp hơn. Thật thú vị,
các tiêu chuẩn thiết kế trong arpanet ban đầu có thể sử dụng dưới điều kiện căng thẳng là 1
trong những lý do kiến trúc datagram được lựa chọn cho tổ tiên Internet.
b. để cho 1 router có thể duy trì số lượng cơng suất cố định trên đường dẫn giữa node nguồn
và node đích, nó cần biết các đặct ính của các truy cập từ tất cả các phiên truyền thơng qua
các liên kết trong router. Điều này có thể có trong mạng lưới liên kết định hướng, nhưng ko
có trong mạng lưới ko kết nối. vì vậy 1 kết nối mạng định hướng VC sẽ thích hợp hơn.
c. trong tình huống này, kiến trúc datagram có kiểm sốt luồng trên không hơn. Điều này là
do các tiêu đề gói tin khác nhau cần thiết để định tuyến các gói tin thơng qua mạng. Nhưng
kiến trúc VC, 11 khi tất cả các
circuit đã được thiết lập. nó sẽ khơng bao h thay đổi. như vậy overhead là không đáng kể về
lâu dài.
P22. Câu hỏi: Giả sử bạn vừa khám phá ra số của host đằng sau một NAT. Bạn theo dõi thấy
rằng lớp IP được đánh dấu với một số là định danh, các số đó liên tiếp trên mỗi IP packet. Số
định danh của IP packet đầu tiên được tạo ra bởi host là một số ngẫu nhiên, và số định danh
của những IP packet tiếp theo là tiếp tục. Thừa nhận tất cả IP packet tạo ra bởi hosts đằng sau
NAT đã được gửi ra bên ngoài.
a. Dựa vào những theo dõi và thừa nhận, bạn có thể phát hiện ra tất packet được gửi bởi NAT
ra bên ngồi. Bạn có thể đưa ra một vài kĩ thuật đơn giản- kĩ thuật phát hiện ra số duy nhất
của host đằng sau NAT? Bào chữa cho câu trả lời của bạn.

b. Nếu số định danh không được chỉ ra liên tục những ngẫu nhiên, kĩ thuật của bạn nên có là
gì?
Trả lời: a) Kể từ khi tất cả IP packet được gửi ra ngồi, vậy chúng ta có thể sử dụng một packet
phát hiện ra bản ghi tất cả IP packet tạo ra bởi host đằng sau một NAT. Khi mỗi host tạo ra
một chuỗi của IP packet với số liên tiếp và một định danh khác hẳn nhau lúc ban đầu, chúng
có thể tạo nhóm IP packet với IDs liên tục trong một khối (đám).Số của khối là số của hosts
đằng sau NAT.


HCMUS

b) Tuy nhiên, nếu số định danh không chỉ ra liên tiếp mà được chỉ ra ngẫu nhiên, kĩ thuật
được gợi ý ở phần (a) sẽ khơng làm được gì, khi đó sẽ khơng thể tạo nhóm cho dữ liệu được
phát hiện ra.
Lý thuyết IP (trang 293 giáo trình)
1. Quá trình xử lý IP datagram trong router:

- Khi router nhận 1 frame dữ liệu, nó sẽ kiểm tra địa chỉ MAC đích xem có đúng là gửi cho
router hay là tín hiệu broadcast. Nếu địa chỉ MAC trùng với interface của router thì frame
được xử lý tiếp, khơng thì loại bỏ.
- Frame xử lý tiếp sẽ được kiểm tra lỗi. Nếu có lỗi –> loại bỏ. Nếu khơng có lỗi, bỏ frame
header và frame trailer, sau đó tách địa chỉ IP đích, kiểm tra xem đích đến của gói tin có nằm
ở mạng khác khơng. Nếu khơng, Reply –> kết thúc. Nếu có, tiếp tục so sánh địa chỉ đích với
Routing Table.
- Nếu trong Routing Table có tồn tại đường đi cho gói tin hoặc có default route thì chuyển
tiếp gói tin, cịn khơng thì loại bỏ. Gói tin được cho phép chuyển tiếp sẽ được đóng gói lại
với frame trailer mới và frame header mới.
Lý thuyết DHCP (trang 310 giáo trình)
1. Các gói tin DHCP
- Ngồi 4 gói tin trong giáo trình, thì có thêm 3 gói khác:

+ DHCP NAK: Nếu địa chỉ IP không thể được sử dụng bởi client bởi vì nó khơng cịn giá trị
nữa hoặc được sử dụng hiện tại bởi một máy tính khác, DHCP Server đáp ứng với gói DHCP
Nak, và Client phải bắt đầu tiến trình thuê bao lại. Bất cứ khi nào DHCP Server nhận được yêu
cầu từ một địa chỉ IP mà khơng có giá trị theo các Scope mà nó được định cấu hình với, nó gửi
thơng điệp DHCP NAK đối với Client.


HCMUS

+ DHCP Decline: Nếu DHCP Client quyết định tham số thơng tin được đề nghị nào vơ giá
trị, nó gửi gói DHCP Decline đến các Server và Client phải bắt đầu tiến trình thuê bao lại.
+ DHCP Release: Một DHCP Client gửi một gói DHCP Release đến một server để giải phóng
địa chỉ IP và xố bất cứ th bao nào đang tồn tại.
2. Ưu, nhược điểm của dịch vụ DHCP.
a) Ưu điểm:
- Giảm khối lượng công việc cho các nhà quản trị hệ thống: với dịch vụ DHCP, người quản
trị không phải đến từng máy trạm để cấp phát địa chỉ IP //và người dùng cũng không tự ý thay
đổi địa chỉ IP của mình được.
- Giúp hệ thống mạng ln được duy trì ổn định: dịch vụ DHCP cấp phát IP động cho máy
tính từ dải IP có sẵn trên DHCP Server, nên sự trùng lặp IP không bao giờ xảy ra, các máy tính
ln có cấu hình TCP/IP chuẩn, giúp hệ thống mạng hoạt động liên tục, ổn định cao.
- Quản lý tập trung: Dịch vụ DHCP quản lý tập trung trên giao diện của nó. Điều đó giúp
người quản trị dễ dàng quản lý, cấu hình, khắc phục khi có lỗi xảy ra trên các máy tính.
- Linh hoạt và tăng khả năng mở rộng: qua giao diện của dịch vụ DHCP người quản trị có
thể dễ dàng thay đổi cấu hình IP cho tồn bộ các máy khi cơ sở hạ tầng thay đổi, có thể giới
hạn hoặc mở rộng dải địa chỉ IP cho hệ thống mạng.
b) Nhược điểm:
Việc dùng địa chỉ IP động khơng phù hợp với những thiết bị cố định, có tần suất truy cập
cao, liên tục như máy in, file server. DHCP chỉ phù hợp cho các mơ hình mạng nhỏ hoặc tại hộ
gia đình. //Xem thêm giáo trình

3. Tấn công vào dịch vụ DHCP và cách khắc phục.
a) Khi DHCP Client là kẻ tấn công: Gửi liên tục tới DHCP Server các gói tin yêu cầu cấp địa chỉ
IP với các địa chỉ MAC nguồn giả cho tới khi dải IP có sẵn trên DHCP Server cạn kiệt, khiến dịch
vụ bị ngưng trệ, các máy khác không thể xin cấp phát địa chỉ IP để truyền thông.
→ Cách khắc phục: Sử dụng các switch có tính năng bảo mật cao, giúp hạn chế số lượng
địa chỉ MAC có thể sử dụng trên một cổng nhằm ngăn chặn việc có quá nhiều địa chỉ MAC sử
dụng trên một cổng đó trong một khoảng thời gian giới hạn.
b) Khi DHCP Server là kẻ tấn công:
- Tấn công DoS hệ thống mạng: Thiết lập lại dải IP, subnet mask của hệ thống để các máy
tính khơng thể đăng nhập vào hệ thống mạng được, tạo ra tình trạng DoS trong mạng.
- Tấn cơng theo kiểu DNS redirect: Đổi các cấu hình DNS server để chuyển hướng yêu cầu
phân dải tên miền của Client tới các DNS giả mạo, kết quả là Client có thể bị dẫn dụ tới các
website giả mạo đánh cắp thông tin người dùng hoặc chứa các mã độc, virus, trojan...
- Tấn công theo kiểu Man-in-the-middle: Thay đổi Default gateway trỏ về máy của chúng,
để tồn bộ thơng tin mà Client gửi ra ngoài hệ thống mạng sẽ được chuyển tới máy này. Dẫn
đến việc gói tin bị xem trộm nội dung mà người gửi không hay biết.
→ Giải pháp: Sử dụng các switch có tính năng bảo mật DHCP snooping (tính năng chống
giả mạo DHCP Server). Tính năng này chỉ cho kết nối DHCP trên các cổng tin cậy nhất định.


HCMUS

Cổng này được người quản trị mạng kết nối đến DHCP Server thật trong hệ thống với mục
đích ngăn chặn không cho DHCP Server giả mạo hoạt động bằng những cổng còn lại.
4. Vấn đề cho thuê IP của DHCP.
- DHCP server không cấp IP vĩnh viễn cho các máy tính mà chỉ cho phép thuê theo một thời
hạn nhất định. Thời hạn này do DHCP server quyết định và được đính kèm trong gói tin gửi
tới DHCP client.
- Thời hạn cho thuê thông thường là 24 giờ. Tuy nhiên quản trị viên có thể sửa đổi thơng
số này trên DHCP server để phù hợp với nhu cầu sử dụng.

- Bất kỳ lúc nào trong thời gian thuê, DHCP client có thể gửi gói tin DHCP Release đến DHCP
server để giải phóng dữ liệu cấu hình địa chỉ IP và các thơng tin cịn lại.
- DHCP cung cấp một cơ chế cho phép một DHCP client có thể làm mới lại thời hạn thuê
một địa chỉ IP bằng cách: DHCP client gửi gói tin DHCP Request đến DHCP server đã cung cấp
IP cho nó, sau đó DHCP server trả về gói tin DHCP ACK với thời hạn thuê mới. Nếu hết thời
hạn th, DHCP server sẽ giải phóng thơng tin địa chỉ IP,… đã cho DHCP client thuê để cung
cấp cho các client khác.
- Tác dụng: Trong trường hợp DHCP client rời khỏi đường mạng và gửi gói tin DHCP Release
tới DHCP server để giải phóng địa chỉ IP đã được cấp. Nếu gói tin này bị mất hoặc lỗi, dẫn đến
việc DHCP server không thu hồi lại được địa chỉ IP. Do đó, để tránh trường hợp cấp địa chỉ IP
một cách lãng phí như vậy, DHCP server sẽ chỉ cho phép thuê địa chỉ IP trong một thời hạn
nhất định.
Lý thuyết NAT (trang 313 giáo trình)
1. Vai trị của NAT: Do thiếu không gian địa chỉ IPv4 để xử lý số lượng lớn thiết bị được sử
dụng hàng ngày. NAT được đề xuất vào năm 1994, đã trở thành một công cụ phổ biến và cần
thiết khi đối mặt với tình trạng cạn kiệt địa chỉ IPv4 bằng cách đại diện cho các thiết bị nội bộ
bằng một địa chỉ public.
Tuy nhiên sau này, NAT được phát triển nhằm:
+ NAT giúp chia sẻ kết nối Internet (hay 1 mạng khác) với nhiều máy trong LAN chỉ với
1 IP duy nhất, hay 1 dãy IP cụ thể.
+ NAT che giấu IP bên trong LAN, mang lại sự an toàn cho máy tính nội bộ. Khi truy cập
internet bên ngồi, NAT đóng vai trị như một người kiểm sốt chặt chẽ việc truy cập vào
tài nguyên ở cả hai phía trên tường lửa. Tin tặc từ bên ngồi khơng thể tấn công trực tiếp
vào mạng nội bộ trong khi thông tin bên trong khơng thể truy cập ra bên ngồi một cách
tự nhiên.
+ NAT giúp quản trị mạng lọc các gói tin được gửi đến hay gửi từ một địa chỉ IP và cho
phép hay cấm truy cập đến một port cụ thể.
2. Cách thức hoạt động của NAT: NAT sử dụng IP của chính nó làm IP public cho mỗi máy tính
với IP riêng. Khi một máy con thực hiện kết nối hoặc gửi dữ liệu tới Internet, dữ liệu sẽ được
gởi tới NAT server (router R2), sau đó NAT sẽ thay thế địa chỉ IP gốc của máy con đó rồi gửi

gói dữ liệu đi với địa chỉ IP của NAT. Nơi nhận trên internet khi nhận được tín hiệu sẽ gởi gói
tin trở về cho địa chỉ IP của NAT (bởi vì chúng nghĩ rằng NAT computer là máy đã gởi những


HCMUS

gói dữ liệu đi). NAT ghi lại bảng thơng tin của những máy tính đã gởi những gói tin đi ra ngồi
trên mỗi cổng dịch vụ và gởi những gói tin nhận được về đúng máy tính đó.
Client
Inside Local

NAT
Outside Local

Inside Global

Server
Outside Global

- Inside local address: Địa chỉ IP được gán cho một host của mạng trong. Đây là địa chỉ được
cấu hình như là một tham số của hệ điều hành trong máy tính hoặc được gán một cách tự
động thông qua các giao thức như DHCP. (không phải được cấp bởi NIC hoặc nhà cung cấp
dịch vụ Internet).
- Outside local address: Địa chỉ IP của một host thuộc mạng bên ngồi, các host thuộc mạng
bên trong sẽ nhìn host thuộc mạng bên ngồi thơng qua địa chỉ này. Outside local không nhất
thiết phải là một địa chỉ hợp lệ trên mạng IP (có thể là địa chỉ private).
- Inside global address: Địa chỉ này đại diện cho một hay nhiều địa chỉ IP inside local trong việc
giao tiếp với mạng bên ngoài. Địa chỉ hợp lệ được cấp bởi NIC hoặc một nhà cung cấp dịch vụ
trung gian.
- Outside global address: Địa chỉ IP được gán cho một host thuộc mạng ngồi bởi người sở

hữu host đó. Địa chỉ này được gán bằng một địa chỉ IP hợp lệ trên mạng Internet.
3.1. Static NAT:
- Cấu hình cố định: 1 local IP ↔ 1 global IP |

Số máy kết nối ra ngoài = Số địa chỉ IP global

- Bên ngoài (outside) có thể chủ động tạo kết nối với bên trong (inside).
- Static NAT được dùng để chuyển đổi một địa chỉ IP này sang một địa chỉ khác một cách cố
định, thông thường là từ một địa chỉ cục bộ sang một địa chỉ cơng cộng và q trình này được
cài đặt thủ công, nghĩa là địa chỉ ánh xạ và địa chỉ ánh xạ chỉ định rõ ràng tương ứng duy nhất.
Static NAT rất hữu ích trong trường hợp những thiết bị cần phải có địa chỉ cố định để có thể
truy cập từ bên ngồi Internet. Những thiết bị này phổ biến là những Server như Web, Mail,...

3.2. Dynamic NAT (IP masquerading):
- Cấu hình: n local IP ↔ m global IP |

Có m kết nối đồng thời

- Bên ngồi (outside) khơng thể chủ động tạo kết nối với bên trong (inside).
- Dynamic NAT được dùng để ánh xạ một địa chỉ IP này sang một địa chỉ khác một cách tự
động, thông thường là ánh xạ từ một địa chỉ cục bộ sang một địa chỉ được đăng ký. Bất kỳ
một địa chỉ IP nào nằm trong dải địa chỉ IP công cộng đã được định trước đều có thể được
gán một thiết bị bên trong mạng.


×