You are on page 1of 18

I: Mạng máy tính

*Mô hình quản lý mạng


-Workshop
-Domain:
+Quản lý và chính thực người dùng mang tập trung
+Các tài nguyên mạng cũng được quản lý tập trung và cấp quyền cho từng người dùng
+Trong hệ thống có các máy tính chuyên dụng làm nhiệm vụ cung cấp các dịch vụ về quản lý
máy trạm
*Mô hình ứng dụng mạng
-Mạng ngang hàng
+Không có máy tính đóng vai trò phục vụ
+Dễ cài đặt và sử dụng
-Mạng khách chủ
+Cung cấp các tài nguyên và dịch vụ cho cả hệ thống mạng
+Hệ thống máy tính sử dụng các tài nguyên và dịch vụ là client
+Có nhiều loại server
+Dễ bảo mật, đồng bộ và chia sẻ dữ liệu
+Đắt, yêu cầu quản trị có trình độ cao
*Kỹ thuật chuyển mạch và mạng áp dụng
+Mạng chuyển mạch kênh
+Mạng chuyển mạch thông báo
+Mạng chuyển mạch gói
*Kiến trúc mạng
*Hệ điều hành mạng
4: Thiết bị mạng
*Card mạng NIC – Network Interface Card
-Kết nối giữa máy tính và cáp mạng
-Chuẩn bị dữ liệu đưa lên mạng
-Gửi dữ liệu đến máy tính khác
-Kiểm soát luồng dữ liệu giữa máy tính và hệ thống cáp
*Modem
-Chuyển đổi tín hiệu số thành tín hiệu tương tự để truyền dữ liệu trên đường truyền
-Tại đầu nhận, modem chuyển dữ liệu ngược lai từ dạng tín hiệu tương tự sang tín hiệu số để truyền
vào máy tính
-Giá thành thấp nhưng hiệu quả, kết nối mạng LAN thành mạng WAN
*Repeater
-Khuếch đại tín hiệu
- 2 cổng
*Hub(KH mũi tên 2 chiều)
*Bridge
-Mở rộng mạng vật lý
-Giảm lưu lượng, xung đột
-Kết nối các kiến trúc mạng khác nhau
-Chậm và đắt hơn Repeater
-Không lọc cái gói tin truyền quảng bá
*Gateway
-Liên kết các mạng có kiểu và giao thức khác nhau
*Switch(KH 2 cặp mũi tên ngược chiều)
*Router
-Chuyển các gói dữ liệu qua 1 liên mạng và đến các đầu cuối, thông qua tiến trình định tiến
-Gửi các gói dữ liệu giữa 2 hoặc nhiều mạng từ 1 tới nhiều địa chỉ
*Access point
-Trung tâm truyền và nhận tín hiệu sóng vô tuyến trọng mạng LAN
-Giống 1 switch/hub nhưng có khả năng phát wifi, chuyển đổi từ mạng có dây sang không dây và
cho các thiết bị kết nối
*Collision domain(CD)
-Collision: sự đụng độ: Khi có 2/nhiều tín hiệu điện chạy trên 1 đường truyền, sẽ bị xung đột lẫn
nhau
-Collision domain: vùng đụng độ:
+Là tập hơn các thiết bị trong cùng 1 khu vực xảy ra đụng độ
*Broadcast domain(BD)
-Broadcast: gửi quảng bá:Khi 1 máy tính gửi dữ liệu theo kiểu quảng bá, tất cả các máy trong mạng
đều nhận được
*Phân lập mạng
-Huc, switch, router là thiết bị phân lập mạng
-Hub: Không phân chia CD và BD
-Switch: chia CD, không chia BD
-Router: phân chia CD và BD
1.5: Môi trường truyền dẫn
- Truyền tín hiệu giữa các máy tính, thiết bị mạng
- Băng thông: Số dữ liệu lý thuyết
- Thông lượng: Số dữ liệu thực tế, thường là ước lượng
II: Mạng Internet
1: Internet overview
- Hosts/ end systems: Thiết bị cuối
- Communication links: Đường truyền vật lý
- Packet switches: Thiết bị chuyển mạch gói (router, switch)
- ISPs (Internet Service Providers): Nhà cung cấp dịch vụ Internet
- Protocols: Giao thức mạng
- Internet standards: Các chuẩn Internet
- Cơ sở hạ tầng cung cấp các dịch vụ cho các ứng dụng
2: Phần cạnh của mạng (Network edge): Nơi chứa các mạng truy cập
- Hệ thống cuối (end systems)
- Mạng truy cập (access network)
- Đường truyền vật lý (physical media)
- Mạng truy cập (access network)
3: Phần lõi của mạng: Các ISP (Internet Service Provider) kết nối với nhau
- Chuyển mạch gói (Packet Switching)
+ Chức năng chính: Định tuyến (routing): xác định đường đi cho gói tin từ nguồn tới đích sử
dụng các giải thuật chỉ đường; và chuyển tiếp gói tin (forwarding): Khi nhận 1 packet từ
input link thì đẩy nó ra output link theo giải thuật định tuyến
+ Thiết bị: router hoặc switch(lớp 2) được kết nối với nhau
+ Host gửi chia thông điệp ứng dựng thành các gói tin (packets) -> gửi các packets qua
đường truyền và thiết bị chuyển mạch gói đến host nhận
+ Thời gian truyền gói dữ liệu: t =N*L/R; L(bit): độ dài gói tin; R(bit/s): tốc độ; N: số đường
link
+ Cơ chế: Lưu và chuyển tiếp
+ Các gói tin phải xếp hàng đợi ở output buffer để được truyền trên liên kết -> Trễ hàng đợi
(queue delay)
+ Các gói tin có thể bị mất nếu bộ nhớ đệm đầy(Tràn bộ nhớ đệm) -> Mất gói tin (Packet
loss)
- Chuyển mạch kênh (Circuit Switching)
+ Tài nguyên giữa 2 đầu cuối được xác định và dành riêng cho cuộc gọi giữa nguồn và đích
+ Ghép kênh: Là quá tình ghép nhiều tín hiệu (hoặc chuỗi dữ liệu) thành 1 tín hiệu (hoặc
chuỗi dữ liệu) để truyền đi xa nhằm tiết kiệm tài nguyên. Có 2 kĩ thuật cơ bản:
+ Ghép kênh phân chia tần (FDM: Frequency Division Multiplexing)
Phổ tần số của 1 đường truyền được phân chia cho các kênh
Độ rộng của băng tần được gọi là băng thông
+ Ghép kênh phân chia thời gian số (TDM: Time Divison Multiplexing)

Thời gian chia thành các khoảng bằng nhau (frame)


Chia frame thành các slot tương ứng với mỗi người dùng
+ Chuyển mạch kênh là lãng phí, vì không tận dụng trong thời gian rảnh rỗi
 Chuyển mạch gói hiệu quả hơn chuyển mạch kênh vì:
+ Cho phép nhiều users sử dụng hiệu quả nhiều hơn chuyển mạch kênh
+ Cho phép thời gian truyền ít hơn chuyển mạch kênh
+ Chuyển mạch gói rất tốt trong trường hợp bùng nổ dữ liệu
+ Ưu điểm chuyển mạch kênh : Đảm bảo băng thông yêu cầu cho các ứng dụng audio/video
- Cấu trúc Internet: mạng của các mạng
+ Kiến trúc 1: kết nối từng mạng truy cập ISP tới 1 ISP chuyển tiếp toàn cầu, topo mạng hình
sao
+ Kiến trúc 2: Topo mạng hình sao mở rộng
+ Kiến trúc 3: Các mạng khu vực phát sinh để kết nối các mạng truy cập tới các ISP
+ Kiến trúc 4: PoP (1 nhóm gồm 1/nhiều router tại cùng 1 vị trí trong mạng của nhà cung cấp
dịch vụ), multi-home (cho phép kết nối 2 hoặc nhiều nhà cung cấp), peer (kết nối ngang
hàng), IXP (điểm gặp gỡ, trao đổi giữa cái ISP ngang hàng)
+ Kiến trúc 5: Bổ sung thêm content provider networks (mạng cung cấp nội dung) vào kiến
trúc 4
4: Trễ, mất mát, thông lượng trong mạng
*Trễ
- 4 nguồn trễ
+ d proc : Trễ xử lý tại nút (nodal processing delay)
Kiểm tra các lỗi bit
Thường nhỏ hơn ms
d
+ queue : Trễ xếp hàng (queueing delay)
Thời gian chờ đầu ra, phụ thuộc độ tắc nghẽn của router
Microsecond đến milisecond
d
+ trans : Trễ truyền (transmission delay)
d = L/R
microsecond đến milisecond
+d ¿: Trễ lan truyền (propagation delay)
d* = d/s
d: chiều dài liên kết vật lý
s: tốc độ lan truyền trong môi trường
milisecond
 d nodal = d proc + d queue + d trans+ d ¿

_ Trễ xếp hàng


+ R: băng thông liên kết
+ L: chiều dài gói tin
+ a: tốc độ trung bình đến hàng đợi của gói tin
*Mất mát gói tin
*Thông lượng (Throughput): kịch bản trên mạng Internet
- Thông lượng tức thời: Tốc độ tại thời điểm xét
- Thông lượng trung bình
- Liên kết nút cổ chai: liên kết trên đường giữa 2 đầu cuối làm giới hạn thông lượng giữa 2 đầu cuối
đó
5: Các tầng giao thức, các mô hình dịch vụ
*Kiến trúc phân tầng
- Tầng là 1 bộ phận trong 1 hệ thống kết nối nhiều bộ phận. Nó thực thi 1 chức năng nhất định trong
hệ thống đó.
- Mỗi tầng cung cấp 1 dịch vụ dựa trên chức năng của chính tầng đó và dựa trên các dịch vụ cung
cấp của tầng dưới
- Mục đích phân tầng
+ Nguyên lý chia để trị: Xử lí các hệ thống phức tạp
+ Modun hóa cho phép dễ dàng bảo trì, nâng cấp hệ thống, thay đổi 1 bộ phận không ảnh hưởng đến
bộ phận khác
-Nguyên tắc phân tầng
+ Mỗi hệ thống trong mạng có cấu trúc, số lượng, chức năng tầng như nhau
+ Giữa 2 tầng liền kề giao tiếp qua 1 giao diện
+ Dữ liệu không được truyền từ tầng i của hệ thống này sang tầng i của hệ thống khác
*Mô hình OSI
- International Organization for Standardization (ISO) đưa ra năm 1977
- Được giới thiệu năm 1984 và được ghi trong tiêu chuẩn ISO/IEC 7498-1
- Viết tắt của Open Systems Interconnection: Mô hình tham chiếu cho việc kết nối các hệ thống mở
- Gồm 7 tầng, mỗi tầng đều có các giao thức riêng
+ Application Layer (tầng ứng dụng)
+ Presentation Layer (tầng trình diễn)
+ Session Layer (tầng phiên)
+ Transport Layer (tầng giao vận)
+ Network Layer (tầng hệ thống): gồm switch lớp 3 hoặc router
+ Data link Layer (tầng liên kết dữ liệu): gồm bridge, switch lớp 2, gateway; tầng hoạt động của
card mạng
+ Physical Layer (tầng vật lý): gồm repeater, hub
-Truyền/ nhận dữ liệu trên mạng: Dữ liệu đi từ Application Layer. Bắt đầu từ Network Layer, dữ
liệu được gắn thêm các địa chỉ, cho đến Physical layer, dữ liệu sẽ được gửi đi
+ Đóng gói tại máy gửi
+ Truyền data từ máy gửi đến máy nhận
+ Tiến trình mở gói tại máy nhận
-Truyền dữ liệu từ máy gửi đến máy nhận
+ Nếu khác địa chỉ mạng thì phải khai báo Default Gateway, nếu không máy sẽ báo “Destination
Host Unreachable”
- Chồng giao thức của Internet
+ Tầng ứng dụng: Hỗ trợ các ứng dụng mạng (data)
+ Tầng giao vận: truyền dữ liệu giữa các tiến trình (segment)
+ Tầng mạng : định tuyến các gói tin đến đích (packet/ datagram)
+ Tầng liên kết: truyền dữ liệu giữa các phần tử mạng kề nhau (frame)
+ Tầng vật lý: các bit “trên đường truyền” (bit)
6: Tầng ứng dụng mạng
6.1: Các nguyên tắc của ứng dụng mạng
*1 số ứng dụng mạng
-Thư điện tử (e-mail)
- Web
- Tin nhắn văn bản (text messaging)
- Truy nhập từ xa (remote login)
- Chia sẻ file P2P
- Trò chơi nhiều người trên mạng
- Streaming video
- Điện thoại Internet (voice over IP) (Skype)
- Hội thảo video thời gian thực
- MXH, ứng dụng tìm kiếm
*Tạo 1 ứng dụng mạng
- Viết chương trình để:
+ Chạy trên end systems khác nhau
+ Truyền thông qua mạng
*Các nguyên tắc của các ứng dụng mạng
- Kiến trúc ứng dụng: Kiến trúc khách chủ (Client-Server) và kiến trúc ngang hàng (peer-to-peer)
+Server:
Là host luôn hoạt động
Địa chỉ IP cố định
Các trung tâm dữ liệu
+ Client:
Truyền thông với server
Có thể được kết nối liên tục vào mạng hoặc không
Có thể có địa chỉ IP thay đổi
Không truyền thông trực tiếp với client khác
+ Peer to peer
Không có server luôn hoạt động
Các hệ thống đầu cuối truyền thông trực tiếp với nhau
Mỗi peer yêu cầu dịch vụ từ 1 peer nào đó và cung cấp dịch vụ lại cho các peer khác
Có khả năng tự mở rộng – peer mới mang lại khả năng dịch vụ mới và yêu cầu dịch vụ mới
Các peer không kết nối liên tục và có thể thay đổi IP
Quản lý phức tạp
- Truyền thông giữa các tiến trình
+ Tiến trình (process): Chương trình chạy trong 1 host
Trên cùng 1 host, 2 tiến trình truyền thông với nhau qua truyền thông tiến tình nội bộ
(interprocess communication), được xác định bởi hệ điều hành
Các tiến trình trên các host khác nhau truyền thông với nhau qua trao đổi các thông điệp
(messages) qua mạng
Tiến trình client: Tiến trình khởi tạo truyền thông
Tiến trình server: Tiến trình chờ được liên lạc
Ứng dụng theo kiến trúc P2P có cả tiến trình Client – Server. Client = peer đang download
file; Server = peer đang upload file
+ Truyền thông liên tiến trình (Interprocess communication – IPC)
+ Thông điệp (Messages)
+ Socket (ổ cắm) = API (Application Programming Interface : Giao diện lập trình ứng dụng): Là
giao diện giữa tầng ứng dụng và tầng giao vận trong 1 host
Các tiến trình gửi/nhận các thông điệp đến/từ socket của nó
Socket tương tự như 1 cửa vào/ra: Tiến trình đẩy thông điệp ra bên ngoài cửa, gửi dựa trên cơ
sở hạ tầng tầng giao vận ở phía bên kia cửa để truyền thông điệp đến socket của tiến trình nhận
+ Định danh cho tiến trình
Để nhận các thông điệp, tiến trình phải có định danh (identifier)
2 thông tin định danh cho tiến trình nhận: Định danh host đích (địa chỉ IP của host nhận) và
định danh cho tiến trình nhận ở host đích (port number: số hiệu cổng)
- Các dịch vụ giao vận khả dụng cho các ứng dụng
+ Truyền dữ liệu tin cậy (Reliable data transfer)
Hiện tượng Packet loss: Gây ra hậu quả nghiêm trọng với một số ứng dụng: Thư điện tử,
truyền file, truy cập host từ xa, truyền dữ liệu web, các ứng dụng tài chính
 Cần có giao thức tầng giao vận phù hợp
+ Thông lượng (Throughput)
Thông lượng khả dụng được đảm bảo ở 1 tốc độ xác định. Ứng dụng có thể yêu cầu 1 thông
lượng đảm bảo là r bit/s. Khi đó giao thức giao vận sẽ đảm bảo thông lượng khả dụng luôn ở ít nhất
là r bit/s
2 loại ứng dụng: Bandwith – sensitive application (ứng dụng nhạy bén với băng thông) và
elastic application (ứng dụng mềm dẻo)
+ Thời gian thực (Real time)
Đảm bảo mỗi bit mà bên gửi đưa vào socket sẽ đến được socket bên nhận không quá 100ms
Phù hợp với các ứng dụng tương tác thời gian thực vốn yêu cầu những ràng buộc chặt chẽ về
thời gian truyền dữ liệu để đảm bảo hiệu quả
+ An toàn (Security)
1 giao thức giao vận có thể cung cấp cho 1 ứng dụng 1 hoặc nhiều ứng dụng an toàn
- Các dịch vụ giao vận do Internet cung cấp
+ 2 giao thức giao vận
TCP: Dịch vụ hướng kết nối (connection-oriented service); dịch vụ truyền dữ liệu tin cậy
(reliable data transfer service), ngoài ra còn có cơ chế kiểm soát tắc nghẽn
UDP: Dịch vụ phi kết nối (connectionless); dịch vụ truyền dữ liệu không tin cậy (unreliable
data transfer service), không có cơ chế kiểm soát tắc nghẽn
Các dịch vụ không được cung cấp bởi UDP và TCP: Thông lượng và thời gian thực
- Các giao thức tầng ứng dụng (Application-layer protocols)
+ Thông điệp: Quy định cú pháp, thời gian và cách thức giữa các ứng dụng mạng
Các kiểu thông điệp được trao đổi: thông điệp yêu cầu, thông điệp đáp ứng
Giao thức mở (công khai): Được định nghĩa trong RFCs và cho phép tương tác: HTTP,
SMTP,…
Giao thức riêng (độc quyền): Skype
+ Phân biệt giao thức tầng ứng dụng và ứng dụng mạng: Giao thức tầng ứng dụng chỉ là 1 phần của
ứng dụng mạng (phần rất quan trọng)
VD: Ứng dụng Web: Là ứng dụng client-server; cho phép người dùng lấy các tài liệu từ Web
server theo yêu cầu; gồm nhiều thành phần
6.2: Web và HTTP
Giới thiệu chung về HTTP (Hyper Text Transfer Protocol)
- Giao thức truyền siêu văn bản (là các văn bản chứa các siêu liên kết) (HTTP), giao thức tầng ứng
dụng của Web, là trung tâm của Web
- Được định nghĩa trong [RFC 1945] và [RFC 2616]
- HTTP được triển khai ở 2 chương trình: Chương trình máy khách (Client) và chương trình máy
chủ (Server)
*Trang web bao gồm 1 số đối tượng (object)
- Tệp HTML, ảnh JPEG, ứng dụng, video clip,…
- VD: Nếu 1 trang web chứa văn bản HTML và 5 ảnh jpg thì trang web đó có 6 đối tượng
- Tệp HTML cơ sở tham chiếu đến các đối tượng khác trong trang bằng URL của đối tượng
VD: www.someschool.edu/someDept/pic.gif
www.someschool.edu: Tên host
/someDept/pic.gif: Tên đường dẫn
*HTTP sử dụng TCP ở tầng giao vận
- Client khởi tạo kết nối TCP (tạo socket) tới server cổng 80
- Server chấp nhận kết nối TCP từ client
- Thông điệp HTTP được trao đổi giữa trình duyệt và máy chủ web
- Đóng kết nối TCP
*HTTP là giao thức “phi trạng thái” (stateless protocol): Server không lưu thông tin về những yêu
cầu trước đó của Client
* HTTP vừa là kết nối bền vững, vừa là kết nối không bền vững (Persistent and Non-Persistent)
- Bền vững: Tất cả các requests và responses tương ứng được gửi trên cùng 1 kết nối TCP
+ Server để mở kết nối sau khi gửi 1 response
+ Ít nhất là 1 RTT cho tất cả các đối tượng được tham chiếu
+ Client gửi yêu cầu ngay sau khi gặp 1 đối tượng được tham chiếu
- Không bền vững: Mỗi requests và responses tương ứng được gửi trên các TCP khác nhau tương
ứng
+ Chỉ có tối đa 1 đối tượng được gửi qua 1 kết nối TCP
+ Việc tải nhiều đối tượng cần nhiều kết nối TCP
+ Thời gian đáp ứng
RTT (round-trip time): Thời gian để 1 gói tin nhỏ đi từ client đến server và quay lại
TG đáp ứng của HTTP không bền vững = 2RTTHTTP + thời gian truyền file HTML
* Định dạng thông điệp HTTP
- Được quy định trong RFC 1945; RFC 2616; RFC 7540
- Có 2 loại thông điệp HTTP
+ Yêu cầu: request
+ Đáp ứng: response
* Thông điệp HTTP yêu cầu
- Dòng yêu cầu có 3 trường
Trường phương thức (method)
Trường URL (đường dẫn)
Trường phiên bản HTTP – version
-Các dòng tiêu đề Header: Không bắt buộc, viết ở định dạng “Name:Value”
-Phần thân: Là dữ liệu gửi từ client đến server trong gói tin HTTP request
* Thông điệp HTTP phản hồi
- Gồm 3 phần:
+ Dòng trạng thái
+ Dòng tiêu đề
+ Phần thân
*Tương tác user-server: các cookie
- Cookies là file văn bản chứa thông tin người dùng mà 1 web server gửi đến lưu trên máy tính
người dùng. Cookie được lưu trữ ở đâu trên máy tính tuỳ vào trình duyệt và hệ điều hành sử dụng
- Trình duyệt web sẽ lưu và gửi lại máy chủ khi người dùng truy cập vào máy chủ
- 4 thành phần của cookies:
+ Dòng tiêu đề cookies trong thông điệp đáp ứng HTTP
+ Dòng tiêu đề cookies trong thông điệp yêu cầu HTTP
+
+
*Web cache (proxy server)
- Bộ nhớ cache hoạt động đồng thời ở cả client và server
+ Khi nó nhận các requests từ và gửi các responses…
*Tại sao lại cần Web cache
- Làm giảm thời gian đáp ứng cho nhu cầu client
- Làm giảm lưu lượng trên 1 liên kết truy cập của tổ chức
- Có thể làm giảm đáng kể lưu lượng truy cập web trên Internet nói chung, do đó cải thiện hiệu suất
cho tất cả ứng dụng
*Tổng thời gian response = LAN delay + access delay + Internet delay
* GET có điều kiện
- Mục tiêu: không gửi đối tượng nếu cache chưa cập nhật
- 1 thông điệp HTTP request được gọi là conditional GET nếu
+ Thông điệp này sử dụng phương thức GET
+ Thông điệp này bao hàm If – Modified – Since
6.3: FTP – giao thức truyền file
* Kết nối dữ liệu và kết nối điều khiển riêng biệt nhau
- Server mở 1 kết nối dữ liệu khác để truyền 1 file khác
- Kết nối điều khiển
- FTP server duy trì trạng thái: Thư mục hiện hành, sự cấp phép trước đó
* Mô hình FTP chia phần mềm trên mỗi thiết bị thành 2 phần giao thức logic chịu tránh nhiệm cho
mỗi kênh
- Protocol interpreter
- Data transfer process
- Ngoài ra còn có giao diện người dùng (user interface)
* Các lệnh và đáp ứng của FTP
- Ví dụ các lệnh
+ Được gửi như các văn bản dạng mã ASCII (lệnh gửi đi)
+ Mã trạng thái và cụm từ trạng thái (lệnh trả về)
6.4: Thư điện tử (Electronic Mail in the Internet)
* 3 thành phần chính
- User agent
- Mail server: gồm hộp thư (mailbox) và hàng đợi thông điệp (message queue)
- Giao thức thư: giao thức SMTP (Simple Mail Transfer Protocol) giữa các mail server thực hiện gửi
các thông điệp thư
* SMTP
- Sử dụng TCP để truyền tin cậy thông điệp thư điện tử từ client đến server trên cổng số 25
- Truyền trực tiếp
- Truyền theo 3 bước
- Sử dụng kết nối bền vững
* Thử nghiệm tương tác SMTP
- telnet servername 25
- Thấy 220 trả lời từ server
- Nhập các lệnh HELO, MAIL FROM, RCPT TO, DATA, QUIT
Các lệnh trên cho phép gửi email mà không cần dùng email client
*Định dạng thông điệp thư
- SMTP: giao thức trao đổi các thông điệp thư
- Giao thức truy cập thư
* Giao thức POP3 và IMAP
- IMAP:
+ Lưu giữ tất cả các thông điệp tại 1 nơi là server
+ Cho phép người dùng tổ chức các thông điệp theo dạng các file
+ Lưu giữ trạng thái người dùng qua các phiên làm việc
-POP3:
+ Cho phép server duy trì thông tin
+ Theo dõi những tin nhắn đã được đánh dấu là xoá
6.5: DNS – Domain Name Service (Hệ thống tên miền)
* Hệ thống tên miền
- Cơ sở dữ liệu phân tán được cài đặt phân cấp với nhiều server tên miền
- Giao thức tầng ứng dụng: cho phép các host có thể truy vấn đến cơ sở dữ liệu tên miền phân tán,
sử dụng port 53
- DNS thường được sử dụng bởi các giao thức ứng dụng khác (HTTP và SMTP) để dịch hostname
do người dùng cung cấp sang IP
* Các dịch vụ cung cấp bởi DNS
- Dịch hostname sang IP address
- Host aliasing:
+ Máy chủ có hostname phức tạp có thể có 1 hoặc nhiều bí danh (alias name)
+ 1 ứng dụng có thể sử dụng DNS để lấy hostname chính quy cho hostname bí danh
-Mail server aliasing: Lấy hostname chính quy cho 1 hostname bí danh được cung cấp cũng như địa
chỉ IP của host
- Phân bổ tải trọng (Load distribution): DNS được dùng để phân bổ tải trọng giữa các replicated
server
* Cấu trúc phân cấp của DNS
- Root DNS Server: Số lượng hơn 400 phân bố khắp thế giới
- Top-level DNS servers: Quản lý những tên miền dùng chung (com, org, net, edu,…) và những tên
miền cấp quốc gia (uk, fr, ca, jp,…)
- Authoritative DNS servers: Quản lý những cấp thấp hơn
- Máy chủ DNS cục bộ (Local DNS server): Là cấp bổ sung, cấp thấp nhất
* Bản ghi DNS ( DNS record)
- DNS: cơ sở dữ liệu phân tán lưu trữ các bản ghi nguồn (resource records – RR)
Định dạng RR: (name, value, type, time to live)
-Type = A: Name là tên máy; Value là địa chỉ IP
- Type = NS; Name là tên miền; Value là tên host của server có thẩm quyền cho miền này
- Type = CNAME: Name là tên bí danh của tên chuẩn, Value là tên kinh điển của hostname
- Type = MX: Định vị máy chủ mail cho tên miền
* Giao thức, thông điện DNS
- Các thông điệp truy vấn và trả lời đều có cùng định dạng thông điệp
- Tiêu đề thông điệp
+ Identification: 16 bit cho truy vấn/ trả lời
+ Flags:
Truy vấn hoặc trả lời
Đệ quy chờ
Đệ quy sẵn sàng
Trả lời có thẩm quyền
6.6: Các ứng dụng Peer to peer
* Thời gian truyền file: client – server
- Việc truyền của server: phải gửi tuần tự N bản sao của file
- Client: mỗi client phải download bản sao của file
* Thời gian truyền file P2P
- Việc truyền của server: phải upload ít nhất 1 bản sao của file
- Client: Mỗi client phải download bản sao của file
- Các client phải upload N.F bits
* BitTorrent:
- File được chia thành các chunk (phần) có kích thước 256KB
- Các peer trong torrent gửi/ nhận các chunk của file
- Peer lần đầu tham gia torrent
+ Không có chunk nhưng sẽ tích lũy qua time
+ Đăng ký với tracker để nhận danh sách các peer
-Trong khi download peer sẽ upload các chunk tới các peer khác
- Peer có thể thay đổi các peer mà nó sẽ trao đổi chunk
- Khi peer có toàn bộ chunk nó có thể rời đi hoặc ở lại trong torrent
- Yêu cầu lấy chunk
+Tại bất kỳ thời điểm nào, các peer khác nhau đều có các tập con khác nhau của file
+ Theo định kỳ sẽ hỏi mỗi peer về danh sách các chunk mà họ có
-Gửi chung: tit-for-tat (ăn miếng trả miếng)
* Bảng bum phân tán – Distributed Hash Table (DHT)
- DHT: Là 1 cơ sở P2P phân tán
- Cơ sở dữ liệu chứa các cặp (key,value)
- Mỗi peer truy vấn DHT theo khóa
- Phân tán các cặp (key,value) qua hàng triệu các peer
- Các peer cũng có thể chèn thêm các cặp (key,value)
- Cách gán khóa cho các peer:
+ Chuyển mỗi khóa thành số nguyên
+ Quy tắc: gán khóa cho peer có ID gần nhất
+ Gần nhất là giá trị liền kề ngay với khóa
-DHT vòng (1):
+ Mỗi peer chỉ biết về peer kế tiếp và peer tiền nhiệm ngay trước nó
+ Mạng che phủ
+ Trung bình cần O(N) thông điệp để giải quyết truy vấn
-DHT vòng với peer tắt
+ Mỗi peer giữ theo dõi địa chỉ IP của peer kế tiếp, tiền nhiệm và peer tắt
+ Sẽ giảm từ 6 xuống còn 2 thông điệp
+ Có O(logN) truy vấn
*Peer churn
- Xử lý peer churn
+ Các peer có thể đến hoặc đi (churn)
+ Mỗi peer biết được địa chỉ của 2 peer kế nó
+ Định kỳ mỗi peer sẽ ping đến 1 peer của nó để kiểm tra tồn tại
+ Nếu peer kế liền ngay nó rời đi thì nó sẽ chọn peer kế tiếp làm peer kế liền ngay của nó
6.7: Video Streaming và các mạng phân phối nội dung (Content Distribution Network)
* Streaming
- Là công nghệ được sử dụng để truyền dữ liệu tới máy tính và các thiết bị qua internet
- Streaming sẽ truyền dữ liệu – thường là audio và video – dưới dạng 1 dòng chảy liên tục, cho phép
người nhận nghe/xem gần như ngay lập tức
* Tải dần dần (Progressive Download) so với streaming
- Chỉ có thể xem khi download hết về máy
- Khi dùng xong dữ liệu vẫn được lưu trong bộ nhớ đệm
* Streaming video
- Streaming video thực chất là quá trình truyền các frame của file video tới người nhận
+ Video là 1 chuỗi các ảnh (image) được hiển thị ở 1 tốc độ nhất định
+ Đặc điểm quan trọng của video là có thể nén => Đánh đổi giữa chất lượng video và bitrate (lượng
dữ liệu được truyền đi trong 1 đơn vị thời gian): Video nén với bitrate từ 100 kbps (chất lượng thấp)
tới hơn 3Mbps (phát trực tuyến phim độ nét cao)
-Cùng 1 video, có thể nén với nhiều bitrate khác nhau và mỗi cái có chất lượng khác nhau. Người
dùng có thể chọn tốc độ nào mình muốn xem dựa trên băng thông hiện có
* HTTP streaming
- Video được lưu lại tại HTTP server như 1 file thông thường với URL
+ Người dùng muốn xem video => Client thiết lập 1 kết nối TCP tới server và gửi HTTP GET
request cho URL này
+ Server gửi file video trong HTTP response
+ Client nhận files và lưu vào buffers
-Tất cả client đều nhận được video mã hóa với bitrate như nhau, dù lượng băng thông sẵn có cho các
client không giống nhau
* DASH (Dynamic Adaptive Streaming over HTTP)
- Video được mã hóa với bitrate khác nhau
- Cho phép client thích ứng với băng thông hiện có
- Các phiên bản video được lưu trong HTTP server với các URL khác nhau
- HTTP server có 1 tệp kê khai, cung cấp URL cho từng phiên bản cùng bitrate của nó
* Các mạng phân phối nội dung (Content Distribution Network)
- Quản lý nhiều server ở nhiều vị trí địa lý khác nhau
- Các server lưu bản sao của Web content và hướng từng yêu cầu của người dùng tới 1 vị trí CDN
có khả năng cung cấp trải nghiệm tốt nhất cho người dùng
- Private CDN: CDN riêng, được sở hữu bởi chính nhà cung cấp nội dung
- Third-party CDN: CDN bên thứ 3, phân phối nội dung thay mặt nhiều nhà cung cấp nội dung
- CDN thường được áp dụng 1 trong 2 triết lý đặt máy chủ
+ Enter Deep: Thâm nhập sâu vào các mạng truy cập của ISP bằng cách triển khai các cụm máy chủ
trong các ISP truy cập trên khắp thế giới. Do thiết kế phân tán cao nên việc quản lý và duy trì các
cụm là thách thức
+ Bring Home
Được nhiều công ty CDN áp dụng
Đưa ISP về nhà: xây dựng các cụm lớn với số lượng sites ít hơn
Thay vì vào bên trong các ISP truy cập, các CDN này thường đặt các cụm máy chủ của
chúng trong các điểm trao đổi Internet
-Khi các cụm server của các CDN có sẵn, CDN sao chép nội dung trên các cụm của nó
- Nhiều CDN không đẩy video vào cụm của họ mà thực hiện chiến lược kéo đơn giản
- Hoạt động của CDN: Khi 1 trình duyệt trong host của người dùng được hướng dẫn truy xuất 1
video cụ thể, CDN phải chặn yêu cầu này để:
+ Xác định cụm máy chủ CDN phù hợp cho máy khách tại thời điểm đó
+ Chuyển hướng yêu cầu của client tới 1 server trong cụm đó
Hầu hết CDN sử dụng DNS để chặn và chuyển hướng các request
-Chiến lược chọn cụm máy chủ:
+ Cơ chế để chuyển hướng động các client đến 1 cụm máy chủ hoặc 1 trung tâm trong CDN
+ Phương pháp
Gán client cho cụm gần nó nhất về mặt địa lý (cần bổ sung database về địa lý)
Dựa trên các điều kiện lưu lượng hiện tại
-Các mạng phân phối nội dung: Netflix, Youtube, Kankan
+ Netflix: sử dụng push caching
+ Youtube: sử dụng pull caching
+ Kankan: sử dụng kiến trúc P2P
6.8: Lập trình socket với UDP và TCP
- Socket: là cánh cửa giữa các tiến trình ứng dụng và giao thức giao vận end-to-end
* 2 kiểu network applications:
- Ứng dụng mở (open applications)
- Ứng dụng độc quyền (proprietary network applications)
* 2 loại socket cho 2 dịch vụ tầng giao vận
- UDP: truyền các gói tin không tin cậy
- TCP: truyền tin cậy, truyền dòng byte có hướng
* Tương tác client-server socket: UDP
- Client program: UDPClient.py
- Server program: UDPServer.py
7. Tầng giao vận
7.1: Giới thiệu các dịch vụ ở tầng giao vận
* Quan hệ giữa tầng giao vận và tầng mạng
- Cung cấp truyền thông logic giữa các tiến trình ứng dụng chạy trên các host khác nhau
- Giao thức tầng giao vận chạy trên các hệ thống đầu cuối
- Có nhiều hơn 1 giao thức tầng giao vận cho các ứng dụng mạng
* Tầng giao vận trong Internet
- Nhiệm vụ chính của UDP và TCP là mở rộng dịch vụ phân phối của IP giữa 2 host thành dịch vụ
phân phối giữa 2 tiến trình chạy trên 2 host đó
- Truyền tin cậy, theo trật tự: TCP
- Truyền không tin cậy, không theo thứ tự: UDP
- Tên gọi dữ liệu: segment
7.2: Ghép kênh và phân kênh (Multiplexing/De-Multiplexing)
- Ghép kênh: Là quá trình ghép nhiều tín hiệu thành 1 tín hiệu để truyền đi xa nhằm tiết kiệm tài
nguyên, diễn ra tại đầu gửi. Có 2 loại ghép kênh
+ Ghép kênh phân chia thời gian
+ Ghép kênh phân chia tần số
-Phân kênh: Là quá trình phân 1 tín hiệu thành nhiều tín hiệu để gửi đến các tiến trình đang chạy ở
host nhận, diễn ra ở đầu nhận
* Thực hiện phân kênh
- Host nhận các IP datagram
+ Mỗi datagram có địa chỉ nguồn IP và địa chỉ IP đích
+ Mỗi datagram mang 1 đoạn dữ liệu của tầng giao vận
+ Mỗi segment có số hiệu cổng nguồn và số hiệu cổng đích
-Host sử dụng địa chỉ IP và số hiệu cổng để định hướng đoạn đến socket phù hợp
* Ghép và phân kênh không hướng kết nối (UDP)
- Host A muốn gửi 1 chunk của application data tới 1 tiến tình UDP port 46428 ở host B
+ Tầng giao vận ở host A tạo 1 segment và dữ liệu khác
-UDP socket được định danh đầy đủ bởi 2 thông tin
+ Định danh địa chỉ IP
+ Định danh port number
-Do đó nếu 2 UDP segment có IP nguồn và port number nguồn khác nhau nhưng cùng destination
IP và destination port number thì 2 segment này sẽ được chuyển tới cùng tiến trình destination qua
cùng destination socket
* Ghép kênh và phân hướng kết nối (TCP)
- TCP socket được xác định bởi 4 giá trị
+ Địa chỉ IP nguồn
+ Số hiệu cổng nguồn
+ Địa chỉ IP đích
+ Số hiệu IP đích
-Phân kênh: Phía nhận sử dụng cả 4 giá trị này để định hướng segment tới socket phù hợp
- Ngược với UDP, 2 TCP segment từ các IP nguồn và port nguồn khác nhau sẽ được chuyển tới 2
socket khác nhau
7.3: Vận chuyển không kết nối (UDP)
* UDP: User Datagram Protocol
- Là giao thức tầng giao vận của mạng Internet
- Dịch vụ ‘best effort’, các UDP segment có thể:
+ Bị mất
+ Được vận chuyển không đúng thứ tự tới ứng dụng
-Hướng không kết nối:
+ Không có giai đoạn bắt tay giữa bên gửi và bên nhậ (thiết lập kết nối)
+ Mỗi UDP segment được xử lý độc lập với các segment khác
-UDP được dùng trong:
+ Các ứng dụng streaming multimedia (chịu mất mát dữ liệu, bị ảnh hưởng bởi tốc độ)
+ DNS
+ SNMP (Simple Network Management Protocol)
-Truyền tin cậy trên UDP
+ Bổ sung đặc tính tin cậy vào tầng ứng dụng
+ Khôi phục lỗi cụ thể của ứng dụng
*Cấu trúc UDP segment
- Tiêu đề Header
+ Số hiệu cổng nguồn
+ Số hiệu cổng đích
+ Độ dài (của cả gói segment)
+ Mã kiểm tra (checksum): Kiểm tra chuỗi bit nhận được
-Data
7.4: Các nguyên tắc truyền dữ liệu tin cậy
- Quan trọng trong các tầng ứng dụng, giao vận và liên kết
* Truyền dữ liệu tin cậy
- Việc cần làm
+ Phát triển dần giao thức truyền dữ liệu tin cậy cho cả bên gửi và nhận
+ Chỉ xem xét truyền dữ liệu theo 1 hướng
+ Dùng máy trạng thái hữu hạn (FSM) để xác định hoạt động bên gửi, bên nhận
*Các phiên bản rdt và nguyên lý truyền dữ liệu tin cậy
- rdt1.0: Không có lỗi bit, không có mất mát gói tin
+ Kênh truyền cơ bản hoàn toàn tin cậy: Không có lỗi bit và mất mát gói tin
+ Phân biệt các FSM cho bên gửi, bên nhận
Bên gửi nhận dữ liệu vào kênh truyền cơ bản
Bên nhận đọc dữ liệu từ kênh truyền cơ bản
- rdt2.0: Các bit trong gói tin bị thay đổi
+ Lỗi thường xảy ra khi truyền trên đường vật lý hoặc lưu trữ ở bộ nhớ đệm
+ ARQ (Automatic Repeat reQuest) Protocol: giao thức lỗi điều khiển tự động khởi tạo 1 cuộc gọi
truyền lại bất kỳ gói dữ liệu nào khi phát hiện lỗi
+ Để xử lý lỗi bit, phải bổ sung 3 tính năng trong ARQ
Bên nhận phát hiện lỗi (Error detection)
Bên nhận gửi phản hồi (Receiver feedback)
Bên gửi truyền lại gói tin có báo nhận là NAK (Retransmission)
+ Các cơ chế mới trong rdt2.0:
Phát hiện lỗi
Phản hồi: các thông điệp điều khiển (ACK,NAK) từ bên nhận gửi về cho bên gửi
+ rdt2.0 còn được gọi là giao thức stop-and-wait (dừng gửi gói tin để đợi phản hồi)
-rdt2.1:
+ Bên gửi
STT được bổ sung vào gói tin
Chỉ cần 2 STT 0 và 1
Cần kiểm tra ACK/NAK có sai không
+ Bên nhận
Phải kiểm tra nếu nhận trùng
Bên nhận không biết ACK/NAK có đến nơi an toàn không
+ Bên gửi/nhận xử lý các ACK/NAK bị hỏng
-rdt2.2: Một giao thức không cần NAK
+ Chức năng như rdt2.1, nhưng chỉ dùng báo nhận ACK
+ Thay vì sử dụng NAK, bên nhận sẽ gửi ACK cho gói tin cuối cùng nhận tốt
+ ACK bị trùng lặp lại
-rdt3.0: Kênh truyền có lỗi và mất mát. Hoạt động tốt nhưng không hiệu quả do cơ chế stop-and-
wait => Hạn chế việc sử dụng tài nguyên mạng
- Các giao thức pipeline
+ Pipelining: bên gửi gửi đồng thời nhiều gói tin mà không cần chờ ACK từ bên nhận
+ Gói tin sắp xếp theo thứ tự tăng dần
+ Dùng bộ đệm ở bên gửi/ bên nhận
+ 2 giải pháp chính của pipeline: Go-back-N và gửi lại có chọn
*Tóm tắt các cơ chế truyền dữ liệu tin cậy
- Có checksum
- Có sequence number (STT)
- Timer
- ACK: tệp tin được nhận đúng và NAK: tệp tin được nhận được có lỗi
- Window size
7.5: Vận chuyển hướng kết nối:TCP
* Khái quát TCP
- Point-to-point: 1 bên gửi, 1 bên nhận
- Truyền dòng byte theo đúng thứ tự và truyền tin cậy
- Pipeline: Điều khiển tắc nghẽn và điều khiển luồng TCP, thiết lập window size
- Truyền dữ liệu song công (full duplex)
+ Luồng dữ liệu đi theo 2 hướng trên 1 kết nối
+ MSS: maximum segment size
-Hướng kết nối: Bắt tay khởi tạo trạng thái cho bên gửi và bên nhận trước khi trao đổi dữ liệu
- Điều khiển luồng: Bên gửi không lấn át bên nhận
* Cấu trúc TCP segment
- Gồm các trường headers và 1 trường data
+ Trường data chứa đoạn dữ liệu ứng dụng
MSS giới hạn kích cỡ tối đa của trường data trong 1 segment
Khi TCP gửi 1 file lớn, nó chia file đó thành các đoạn có kích cỡ MSS
Các ứng dụng tương tác thường truyền các đoạn dữ liệu nhỏ hơn MSS
+ STT và số báo nhận trong TCP: 2 trường quan trọng nhất trong TCP header, là phần quan trọng
của dịch vụ truyền dữ liệu tin cậy TCP
STT: là STT byte của byte đầu tiên trong segment
Số ACK: STT của byte tiếp theo được mong đợi từ phía bên kia
*Ước lượng RTT
- Sample RTT:
+ Thời gian gửi segment và nhận ACK cho segment đó
+ SamepleRTT sẽ biến thiên không ngừng
*Điều khiển luồng
- Các host ở mỗi bên gửi/nhận của kết nối TCP dành riêng 1 bộ đệm nhận cho kết nối
- Nếu ứng dụng đọc dữ liệu chậm, bên gửi rất dễ làm tràn bộ đệm nhận của kết nối bằng cách gửi
quá nhiều và quá nhanh dữ liệu
- Cửa sổ nhận – receive window: là vùng không gian còn trống của bộ nhớ đệm
* Quản lý kết nối TCP
- Thiết lập kết nối: thủ tục bắt tay 3 bước (3-way handshake)
- Đóng kết nối bằng 4 bước
Segment đặc biệt có 1 bit cờ trong header là FIN = 1
Client báo server đóng.
-Các trạng thái TCP phía server
7.6: Các nguyên lý điều khiển tắc nghẽn
* Nguyên nhân và chi phí của tắc nghẽn
- Thông lượng lớn nhất trên mỗi kết nối là R/2
- Trễ lớn do tốc độ đến tiệm cận thông lượng tối đa
* Các hướng tiếp cận điều khiển tắc nghẽn
- Điều khiển tắc nghẽn end to end
+ Không có phản hồi rõ ràng từ mạng
+ Tắc nghẽn được suy ra từ mất mát hoặc trễ quan sát
+ Tiếp cận thực hiện bởi TCP
-Điều khiển tắc nghẽn có hỗ trợ từ mạng
+ Tốc độ gửi được xác định rõ ràng
7.7: Điều khiển tắc nghẽn TCP
* Cách tiếp cận
- Điều chỉnh tốc độ gửi dữ liệu lên kết nối theo mức độ tắc nghẽn mạng
- Lượng dữ liệu chưa được ACK ở bên gửi không vượt quá min{cwnd;rwnd}
- Giả thiết bộ đệm nhận rất lớn để có thể bỏ qua ràng buộc về cửa sổ nhận rwnd => lượng dữ liệu
chưa được ACK ở đầu gửi bị giới hạn bởi cwnd
- Các ràng buộc hạn chế lượng dữ liệu chưa được gửi ở ACK đầu gửi
- Nếu TCP bên gửi gửi với tốc độ quá nhanh có thể gây tắc nghẽn mạng, gây sụp đổ tắc nghẽn
- Nếu TCP bên gửi gửi với tốc độ quá chậm dưới mức băng thông mạng. Khi đó nó có thể gửi với
tốc độ cao hơn
- Giải thuật điều khiển tắc nghẽn TCP
+ Slow start: khởi đầu chậm, nhưng tăng theo cấp số nhân

You might also like