Bài giảng Mạng máy tính - Phạm Văn Nam

Thế nào là một mạng máy tính?

Các thành phần của một MMT

Internet là gì?

Kiến trúc Internet (Internet Architecture)

Các chiến lược dồn kênh

Mạng chuyển mạch kênh, gói

Những vấn đề cơ bản trong MMT

Mạng cung cấp sự kết nối

Một tập các máy tính/thiết bị chuyển mạch được kết nối bởi các liên kết truyền thông

Nhằm chia sẻ thông tin và tài nguyên

Topologies (đồ hình mạng)

Nhiều phương tiện vật lý khác nhau

Coaxial cable, twisted pair, fiber optic, radio, satellite

Mạng cục bộ, Mạng đô thị, Mạng diện rộng, vv (Local/Metropolitan/Wide Area Networks – LANs, MANs, WANs, etc.)

 

ppt 483 trang kimcuc 8520
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mạng máy tính - Phạm Văn Nam", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Mạng máy tính - Phạm Văn Nam

Bài giảng Mạng máy tính - Phạm Văn Nam
 Introduction 
1- 1 
Mạng Máy TínhComputer Networks 
Phạm Văn Nam 
Email: nampv@ntu.edu.vn; pvnamk19@yahoo.com 
Địa chỉ liên hệ: Văn phòng Bộ môn Mạng & Truyền thông Khoa Công nghệ Thông tin, Trường Đại học Nha Trang 
Điện thoại: (058) 2471447 
Mobile: 0904 38 81 82 
 Introduction 
1- 2 
Môn học nói về? 
Mạng máy tính (MMT) đa năng - Không phải là những mạng chuyên dụng (vd: telephone) 
 Những nguyên lý cơ bản của MMT - Không khảo sát tất cả các chuẩn giao thức hiện hành 
Tập trung vào kiến trúc phần mềm mạng - Chỉ thảo luận một số phần cứng mạng thiết yếu 
 Introduction 
1- 3 
Tài liệu môn học 
Tài liệu chính 
Computer Networking by Jim Kurose and Keith Ross, Addison-Wesley, 2 nd Edition, 2002 
Mạng máy tính và các hệ thống mở, Nguyễn Thúc Hải, NXB Giáo dục, 1999 
Computer Networks by Andrew S. Tanenbaum, Prentice Hall, 4 th Edition, 2002 
Tài liệu đọc thêm 
TCP/IP Illustrated Vol. 1 & 2 by W. Richard Stevens, Addision-Wesley, 1994 
Computer Networks and Internets by Douglas E. Comer, Prentice Hall, 2 nd Edition, 1998 
 Introduction 
1- 4 
Chương 1: Các khái niệm cơ bản về mạng máy tính và mạng Internet 
Thế nào là một mạng máy tính? 
Các thành phần của một MMT 
Internet là gì? 
Kiến trúc Internet (Internet Architecture) 
Các chiến lược dồn kênh 
Mạng chuyển mạch kênh, gói 
Những vấn đề cơ bản trong MMT 
 Introduction 
1- 5 
Thế nào là một mạng máy tính? 
Mạng cung cấp sự kết nối 
Một tập các máy tính/thiết bị chuyển mạch được kết nối bởi các liên kết truyền thông 
Nhằm chia sẻ thông tin và tài nguyên 
Topologies (đồ hình mạng) 
Nhiều phương tiện vật lý khác nhau 
Coaxial cable, twisted pair, fiber optic, radio, satellite 
Mạng cục bộ, Mạng đô thị, Mạng diện rộng, vv (Local/Metropolitan/Wide Area Networks – LANs, MANs, WANs, etc.) 
 Introduction 
1- 6 
Các thành phần của một MMT 
trạm, hệ thống đầu cuối 
pc’s, workstations, servers 
PDA’s, phones, toasters 
chạy các ứng dụng mạng 
liên kết truyền thông 
fiber, copper, radio, satellite 
điểm - điểm và quảng bá 
băng thông 
switches và routers: chuyển tiếp các gói dữ liệu qua mạng 
internet (liên mạng): mạng của các mạng 
Internet là một liên mạng công cộng cụ thể 
local ISP 
company 
network 
regional ISP 
router 
workstation 
server 
mobile 
 Introduction 
1- 7 
Internet là gì? 
The Internet : Tập hợp các mạng và bộ định tuyến trải rộng trên phạm vi toàn thế giới và sử dụng tập giao thức TCP/IP để hình thành một mạng ảo cộng tác, đơn. 
Intranet: 
	Sự kết nối của các LANs khác nhau trong một tổ chức 
Riêng tư (Private) 
Có thể dùng đường thuê bao riêng (leased lines) 
Thông thường thì nhỏ, nhưng có thể bao gồm đến vài trăm routers 
Có thể được kết nối ra the Internet (hoặc không), bởi bức tường lửa (thông thường) 
 Introduction 
1- 8 
Internet Architecture(Kiến trúc Internet) 
LANs 
International lines 
ISP 
ISP 
company 
university 
national network 
regional 
network 
NAP 
on-line services 
company 
access via modem 
 Introduction 
1- 9 
Internet today 
 Introduction 
1- 10 
Các chiến lược dồn kênh 
Chia sẻ tài nguyên mạng giữa nhiều người sử dụng 
Những chiến lược dồn kênh thông thường 
Dồn kênh chia thời gian-Time Division Multiplexing (TDM) 
Dồn kênh chia tần số-Frequency Division Multiplexing (FDM) 
Cả hai chiến lược trên đều là kỹ thuật chuyển mạch kênh ( circuit switching technology) 
 Introduction 
1- 11 
Chuyển mạch kênh: FDMA và TDMA 
FDMA 
frequency 
time 
TDMA 
frequency 
time 
4 users 
Example: 
 Introduction 
1- 12 
Mạng chuyển mạch kênh - Circuit Switched Networks 
Tất cả tài nguyên (vd: các liên kết truyền thông) cần thiết cho một cuộc gọi được dành riêng trong suốt cuộc gọi 
Ví dụ: mạng điện thoại 
 Introduction 
1- 13 
Dồn kênh thống kê - Statistical Multiplexing 
Tương tự như dồn kênh theo thời gian nhưng tùy vào nhu cầu hơn là cố định 
Kế hoạch lại đường truyền dựa vào nền tảng từng gói 
Các gói từ các nguồn khác nhau được chèn vào đường truyền 
Những gói “đấu tranh” dành đường truyền sẽ được đưa vào vùng đệm (buffer) 
Sự tích tụ vùng đệm được gọi là nghẽn- congestion 
Đây là kỹ thuật chuyển mạch gói, được dùng trong MMT 
 Introduction 
1- 14 
Mạng chuyển mạch gói - Packet Switched Networks 
Dữ liệu đưa lên mạng được được chia thành nhiều “gói” gọi là “packets” 
Phương pháp Lưu giữ và chuyển tiếp (Store-and-forward): packets được lưu giữ trong vùng đệm trước khi được truyền đi 
Packets chạy trên mạng chia sẻ tài nguyên với các packets khác 
Việc sử dụng tài nguyên tùy thuộc vào nhu cầu hay chia sẻ tài nguyên theo thống kê 
Khi tài nguyên hạn chế: độ trễ xếp hàng, mất gói tin 
A 
B 
C 
10 Mbps 
Ethernet 
1.5 Mbps 
D 
E 
statistical multiplexing 
queue of packets 
waiting for output 
link 
 Introduction 
1- 15 
Tại sao chia sẻ tài nguyên theo thống kê? 
Sự tận dụng hiệu quả tài nguyên mạng 
Kịch bản ví dụ 
Link bandwidth (dải thông): 1 Mbps 
Mỗi cuộc gọi cần 100 Kbps khi truyền thông tin 
Mỗi cuộc gọi có dữ liệu để gửi (“hoạt động”) chỉ chiếm 10% thời gian 
Chuyển mạch kênh - Circuit switching 
Mỗi cuộc gọi cần 100 Kbps: chỉ hỗ trợ 10 cuộc gọi đồng thời 
Chuyển mạch gói - Packet switching 
Hỗ trợ nhiều cuộc gọi hơn với xác suất “tranh giành” nhau là nhỏ 
35 cuộc gọi đang thực hiện: xác suất mà > 10 cuộc gọi “hoạt động” < 0.0017! 
 Introduction 
1- 16 
So sánh giữa chuyển mạch kênh và chuyển mạch gói 
Mục so sánh 
Chuyển mạch kênh 
Chuyển mạch gói 
Đường dẫn “đồng” chuyên biệt 
Có 
Không 
Băng thông sẵn có 
Cố định 
Biến động 
Khả năng lãng phí băng thông 
Có 
Không 
Truyền dẫn lưu giữ-chuyển tiếp 
Không 
Có 
Các gói tin đi theo cùng một lộ trình 
Có 
Không 
Thiết lập kết nối 
Yêu cầu 
Không cần thiết 
Khả năng tắc nghẽn xảy ra khi 
Thiết lập kết nối 
Đối với mỗi gói tin 
Ảnh hưởng của tắc nghẽn 
Cuộc gọi bị chặn 
Độ trễ xếp hàng 
 Introduction 
1- 17 
Network Taxonomy(Phân loại mạng) 
Telecommunication 
networks 
Circuit-switched 
networks 
FDM 
TDM 
Packet-switched 
networks 
Networks 
with VCs 
Datagram 
Networks 
 Introduction 
1- 18 
Những vấn đề cơ bản trong MMT 
Đặt tên/Đánh địa chỉ 
Làm thế nào để tìm tên/địa chỉ của đối tác mà bạn muốn giao tiếp 
Địa chỉ: một chuỗi byte định danh một nút (node) 
Các lọai địa chỉ 
Unicast: địa chỉ đơn hướng	 
Broadcast: địa chỉ quảng bá 
Multicast: địa chỉ đa hướng 
Định tuyến/Chuyển tiếp: là quá trình xác định làm thế nào để gởi các gói tin đến đích dựa trên địa chỉ của nó 
Tìm “hàng xóm”, xây dựng các bảng dẫn đường 
 Introduction 
1- 19 
Những trở ngại cơ bản trong MMT 
Những gì có thể sai sót? 
Các lỗi ở mức bit: do sự nhiễu tín hiệu điện 
Các lỗi ở mức gói: mất gói tin do tràn vùng đệm hay nghẽn 
Sự phân phát sai thứ tự gói tin: các gói tin có thể đi theo các con đường khác nhau 
Hỏng hóc tại các nút hoặc đường truyền (link/node failures): đứt cáp hoặc hệ thống bị sập 
Những gì có thể làm được? 
Bổ sung thêm các bits dư thừa để chuẩn đoán và sửa các packets bị lỗi 
Xác nhận các gói nhận được và truyền lại các gói bị mất 
Gán các số chuỗi (sequence numbers) và sắp xếp lại theo thứ tự các gói ở bên nhận 
“Cảm nhận” link/node failures và đi vòng qua các failed links/nodes 
Mục tiêu: để thu hẹp khoảng cách giữa những gì các ứng dụng mong đợi và những gì mà công nghệ nền tảng (underlying technology) có thể cung cấp 
 Introduction 
1- 20 
Tóm tắt chương 
Những thành phần của một mạng máy tính 
Kiến trúc Internet 
Chuyển mạch kênh và chuyển mạch gói 
Dồn kênh theo thống kê 
Các vấn đề cơ bản trong mạng máy tính 
Đặt tên/đánh địa chỉ và định tuyến/chuyển tiếp 
Kiểm soát lỗi/luồng/tắc nghẽn 
 Introduction 
1- 21 
Một số site tham khảo tốt 
http:// ieeexplore.ieee.org / 
Layered Architecture 
22 
Chương 2: Giao thức và kiến trúc phân tầngProtocols and Layered Architecture 
Layered Architecture 
23 
Giao thức và kiến trúc phân tầng: 
T hế nào là giao thức (protocols)? 
Kiến trúc phân tầng và các hệ thống cấp bậc giao thức (protocol hierarchies) 
Các vấn đề cần lưu ý khi thiết kế các tầng 
Phương thức hoạt động: hướng kết nối và phi kết nối 
Mô hình tham chiếu OSI (The Open Systems Interconnection Reference Model) 
Mô hình TCP/IP (The Transmission Control Protocol/Internet Protocol Model) 
So sánh giữa mô hình tham chiếu OSI và TCP/IP 
Layered Architecture 
24 
Giao thức (Protocols) 
Giao thức: những luật giúp những thành phần mạng (network elements) hội thoại với nhau 
Giao thức định nghĩa sự thỏa thuận (agreement) giữa những thực thể ngang hàng (peering entities) 
Khuôn dạng và ngữ nghĩa của thông điệp được trao đổi 
Giao thức trong cuộc sống hàng ngày: 
Luật giao thông, thảo luận bàn tròn 
Layered Architecture 
25 
Kiến trúc phân tầng hay hệ thống cấp bậc giao thức!? 
MMT: phức tạp! 
nhiều “mảnh”: 
trạm (hosts) 
bộ định tuyến (router) 
phương tiện truyền thông 
ứng dụng (applications) 
giao thức (protocols) 
phần cứng, phần mềm (hardware, software) 
Câu hỏi: 
Cách nào để thiết lập cấu trúc mạng? 
Layered Architecture 
26 
Kiến trúc phân tầng 
 Các tầng (Layers) 
 Giao diện (Interfaces): định nghĩa các thao tác nguyên thủy và các dịch vụ mà tầng dưới cung cấp cho tầng trên 
 Giao thức (Protocols): được sử dụng để thi hành (implement) các dịch vụ 
 Một tập của các tầng và giao thức được gọi là một kiến trúc mạng (Network Architecture) 
Layered Architecture 
27 
Kiến trúc phân tầng (2) 
Phân tầng giúp đơn giản hóa kiến trúc của hệ thống phức tạp 
Tầng N dựa vào dịch vụ ( services) từ tầng N-1 để cung cấp dịch vụ cho tầng N+1 
Dịch vụ cần đến từ tầng dưới độc lập với sự thực thi (implementation) của nó 
Tầng N thay đổi sẽ không ảnh hưởng đến các tầng khác 
Che dấu thông tin và sự phức tạp 
Tương tự như lập trình hướng đối tượng 
Layered Architecture 
28 
Ví dụ về kiến trúc phân tầng 
Layered Architecture 
29 
Truyền thông Vật lý, logic 
Layered Architecture 
30 
Các vấn đề thiết yếu khi thiết kế các tầng 
Cơ chế định danh người gởi, nhận? 
Truyền dữ liệu theo chế độ nào: đơn công (simplex), bán song công (half-duplex), song công (full-duplex)? 
Kiểm soát lỗi? (Error control) 
Kiểm soát luồng? (Flow control) 
Tháo rời (disassembling) và ráp lại (reassembling) các thông điệp dài 
Dồn và tách kênh (Multiplexing & demultiplexing) 
Chọn đường 
Layered Architecture 
31 
Dịch vụ hướng kết nối(Connection-oriented Service) 
Người gởi - Sender 
Yêu cầu “kết nối” đến người nhận 
Chờ đợi Mạng thiết lập kết nối 
Duy trì kết nối trong khi gởi dữ liệu 
Ngắt kết nối khi hết nhu cầu 
Mạng - Network 
Nhận yêu cầu kết nối 
Thiết lập kết nối và thông báo cho người gởi 
Truyền dữ liệu qua mối kết nối 
Giải phóng kết nối khi người gởi yêu cầu 
Layered Architecture 
32 
Dịch vụ phi kết nối (Connectionless Service) 
Người gởi - Sender 
Tạo các packet để gởi 
Đánh địa chỉ người nhận trong mỗi gói 
Truyền gói tin cho mạng để chuyển đi 
Mạng - Network 
Sử dụng địa chỉ đích để chuyển tiếp gói tin 
Giao gói tin đến nơi nhận 
Layered Architecture 
33 
So sánh giữa hướng kết nối và phi kết nối (Connection-Oriented vs. Connectionless) 
Connection-Oriented 
Telephone System, Virtual Circuit Model 
Đường dẫn được thiết lập trước khi dữ liệu được gởi 
Chỉ cần định danh mối kết nối 
Tất cả dữ liệu đi cùng một đường 
Connectionless 
Postal System, Datagram Model 
Không cần thiết lập đường dẫn trước khi truyền dữ liệu 
Gói tin chứa địa chỉ nơi nhận 
Mỗi gói tin được xử lý độc lập 
Layered Architecture 
34 
Connection-Oriented 
“Gánh nặng” thiết lập kết nối 
Thiết bị chuyển tiếp phải lưu giữ trạng thái của các kết nối đang hoạt động 
Có thể đặt trước dải thông 
Connectionless 
Không trạng thái và ít gánh nặng 
Không thể đặt trước tài nguyên 
Cho phép broadcast/multicast 
So sánh giữa hướng kết nối và phi kết nối (Connection-Oriented vs. Connectionless) 
Layered Architecture 
35 
Ví dụ về các hàm dịch vụ nguyên thủy (service primitive) 
Layered Architecture 
36 
Các tổ chức định chuẩn 
International Standards Organization (ISO) Tổ chức tiêu chuẩn quốc tế 
International Telecommunications Union– 
 Telecommunication Standards Sector (ITU-T) Liên hiệp viễn thông quốc tế - Bộ phận tiêu chuẩn truyền thông 
Institute of Electrical and Electronics Engineers (IEEE) Viện kỹ nghệ điện và điện tử 
Electronic Industries Alliance (EIA) Liên minh công nghiệp điện tử 
Telecommunications Industry Association (TIA) Hiệp hội công nghiệp viễn thông 
Layered Architecture 
37 
Mô hình tham chiếu OSI 
Layered Architecture 
38 
Các tầng trong mô hình OSI 
Layered Architecture 
39 
Minh họa về trao đổi thông tin trong mô hình OSI 
Layered Architecture 
40 
Truyền dòng bit “tươi” (raw bits) qua đường truyền vật lý 
Giải quyết các giao diện (interfaces) thời gian, điện, cơ; phương tiện truyền vật lý 
Tầng Vật lý (Physical Layer) 
Layered Architecture 
41 
Truyền dữ liệu giữa các nút (nodes) láng giềng 
Định khung, kiểm soát lỗi, kiểm soát luồng 
Điều khiển truy cập phương tiện truyền 
Tầng Liên kết dữ liệu ( Data Link Layer ) 
Layered Architecture 
42 
Sự phân phát nút-nút 
Node-to-node delivery 
Layered Architecture 
43 
Tầng Mạng (network layer) 
- Đánh địa chỉ 
- Định tuyến cho các gói tin trên mạng 
- Tránh các liên kết bị tắc nghẽn/hỏng 
Layered Architecture 
44 
Sự phân phát cuối-cuối 
End-to-end delivery 
Layered Architecture 
45 
Tầng Vận chuyển (transport layer) 
 Vận chuyển dữ liệu từ nơi gửi đến nơi nhận 
 Thực hiện vận chuyển tin cậy, đúng thứ tự; kiểm soát lỗi/luồng 
Layered Architecture 
46 
Phân phát thông điệp tin cậy từ tiến trình 
trên hệ thống đầu cuối này đến tiến trình 
trên hệ thống đầu cuối kia Reliable process-to-process delivery of a message 
Layered Architecture 
47 
Tầng Phiên (Session Layer) 
- Thiết lập phiên truyền thông (xác thực ) 
- Khôi phục phiên truyền khi gặp sự cố (phiên truyền bị đứt) 
Layered Architecture 
48 
Tầng Trình diễn (Presentation Layer) 
Chuyển đổi dữ liệu về một khuôn dạng chung 
Layered Architecture 
49 
Tầng Ứng dụng (application layer) 
- Truyền thông giữa tiến trình – tiến trình 
 Các tầng khác tồn tại để hỗ trợ tầng này 
	X500: Directory Service (Dịch vụ thư mục) 
	X400: hay là MHS Message Handling Systems 
	FTAM: File Transfer, Access and Management 
Layered Architecture 
50 
Tóm tắt các tầng trong mô hình OSI 
Application 
7 
Presentation 
6 
Session 
5 
Transport 
4 
Network 
3 
Physical 
1 
Data link 
2 
cho phép users truy cập các tài nguyên mạng 
thiết lập, duy trì và hủy bỏ các phiên truyền 
chuyển các gói dữ liệu từ nguồn đến đích; cung cấp tính năng liên mạng 
truyền dòng bits qua phương tiện truyền; cung cấp các đặc tả kỹ thuật về cơ, điện 
chuyển đổi, mã hóa và nén dữ liệu 
cung cấp sự phân phát thông điệp tin cậy giữa các tiến trình 
tổ chức các bits thành khung; vận chuyển dữ liệu giữa các nodes trong cùng một mạng 
Layered Architecture 
51 
TCP/IP Suite 
Application 
7 
Presentation 
6 
Session 
5 
Transport 
4 
Network 
3 
Physical 
1 
Data link 
2 
Application 
4 
Transport 
3 
Internet 
2 
Host-to-Network 
1 
TCP/IP Suite 
OSI Model 
Layered Architecture 
52 
TCP/IP Suite và OSI model 
Layered A ... ết nối đảm bảo rằng dữ liệu bị mất có thể được phục hồi. 
TCP Header 
Transport Layer 
7- 453 
Sự đồng bộ được thiết lập bằng cách trao đổi các segments có mang các số chuỗi khởi tạo và bit điều khiển SYN được bật, có nghĩa là synchronize (đồng bộ) . (Các segments mang bit SYN còn được gọi là SYNs.) 
Kết nối thành công đòi hỏi một cơ chế phù hợp để chọn một số chuỗi khởi tạo và một cách liên quan đến việc “bắt tay” để trao đổi số chuỗi khởi tạo ( ISNs). 
Sự đồng bộ yêu cầu rằng mỗi bên gởi số chuỗi khởi tạo (ISN) của nó và nhận một sự xác nhận và ISN từ phía bên kia của kết nối. 
Mỗi bên phải nhận ISN của phía bên kia và gởi báo nhận (ACK) trong một thứ tự cụ thể. 
TCP Header 
Transport Layer 
7- 454 
Để thiết lập kết nối, ba packets được gởi giữa hai trạm đầu cuối. 
Bắt tay ba bước là cần thiết vì TCPs (trên các hệ thống đầu cuối) có thể sử dụng các cơ chế khác nhau để chọn ra một số chuỗi khởi tạo (ISN). 
Người nhận gói SYN đầu tiên không có cách nào để biết được nó có phải là một segment cũ bị trễ hay không trừ khi nó nhớ được số chuỗi cuối cùng được sử dụng cho kết nối đó, điều này không phải lúc nào cũng có thể thực hiện được, và nó phải yêu cầu người gởi xác minh lại gói SYN này 
TCP Header 
Transport Layer 
7- 455 
Tại thời điểm này, cả hai bên đều có thể bắt đầu truyền thông, và cả hai đều có thể ngắt mối liên kết truyền thông này vì TCP là phương thức truyền thông đồng đẳng (cân bằng). 
TCP Header 
Transport Layer 
7- 456 
Quản lý kết nối của TCP (tiếp theo) 
Đóng một kết nối: 
đóng client socket: clientSocket.close(); 
Bước 1: client gởi segment điều khiển TCP FIN đến server 
Bước 2: server nhận FIN, trả lời với ACK. Đóng kết nối, gởi FIN. 
client 
FIN 
server 
ACK 
ACK 
FIN 
close 
close 
closed 
timed wait 
Transport Layer 
7- 457 
Quản lý kết nối của TCP (tiếp theo) 
Bước 3: client nhận FIN, trả lời với ACK. 
Vào trạng thái “chờ đợi một thời gian” – sẽ trả lời với ACK cho FINs nhận được 
Bước 4: server , nhận ACK. Kết nối đã được đóng. 
client 
FIN 
server 
ACK 
ACK 
FIN 
closing 
closing 
closed 
timed wait 
closed 
Transport Layer 
7- 458 
Bắt tay Bốn bước 
Four-way handshaking 
Transport Layer 
7- 459 
Quản lý kết nối của TCP (tiếp theo)TCP Connection Management (cont.) 
TCP client 
lifecycle 
TCP server 
lifecycle 
Transport Layer 
7- 460 
Chương 7 – Nội dung 
7.1 Các dịch vụ của tầng Vận chuyển 
7.2 Multiplexing và demultiplexing 
7.3 Vận chuyển phi kết nối: UDP 
7.4 Vận chuyển hướng kết nối: TCP 
cấu trúc segment 
quản lý kết nối 
truyền dữ liệu tin cậy & kiểm soát luồng 
7.5 Kiểm soát tắc nghẽn của TCP 
Transport Layer 
7- 461 
Kiểm soát luồng và sự tin cậy 
Để kiểm soát luồng dữ liệu giữa các thiết bị, TCP dùng một cơ chế kiểm soát luồng đồng đẳng (peer-to-peer). 
Tầng TCP của trạm nhận thông báo một kích thước cửa sổ cho tầng TCP của trạm gởi. 
Kích thước cửa sổ này định rõ số bytes, bắt đầu từ số báo nhận (ACK number), mà tầng TCP ở bên nhận hiện tại đang chuẩn bị để nhận . 
TCP Header 
Transport Layer 
7- 462 
TCP – một giao thức hướng kết nối, tin cậy; cung cấp kiểm soát luồng qua việc cung cấp các cửa sổ trượt , và tin cậy bằng cách cung cấp các số chuỗi và hồi báo . 
TCP gởi lại bất kỳ đoạn nào không được nhận và cung cấp một kênh ảo “TCP” giữa các ứng dụng của người dùng đầu cuối. 
Sự thuận lợi của TCP đó là nó cung cấp dịch vụ phân phát bảo đảm các segment. 
TCP Header 
Transport Layer 
7- 463 
Kích cỡ cửa sổ nói đến số bytes có thể được truyền đi trước khi nhận một hồi báo (ACK) . 
Sau khi một trạm truyền một số bytes bằng của kích cỡ cửa sổ, nó phải nhận một hồi báo trước khi thêm bất kỳ dữ liệu nào có thể được gởi. 
Kích cỡ cửa sổ xác định bao nhiêu dữ liệu mà trạm nhận có thể tiếp nhận tại một thời điểm. 
TCP Header 
Transport Layer 
7- 464 
Với kích thước cửa sổ bằng 1, mỗi segment chỉ mang một byte dữ liệu và phải được hồi báo trước khi segment khác được truyền. 
Điều này làm cho việc sử dụng giải thông của trạm không hiệu quả. 
Mục đích của cửa sổ là để cải tiến kiểm soát luồng và sự tin cậy. 
Nhưng với kích thước cửa sổ là 1, ta thấy việc sử dụng giải thông là rất không hiệu quả. 
TCP Header 
Transport Layer 
7- 465 
TCP Header 
Kích thước cửa sổ TCP (TCP Window Size) 
TCP sử dụng kích thước cửa sổ, số bytes, mà bên nhận sẵn sàng để tiếp nhận, và thông thường được quản lý bởi tiến trình nhận. 
TCP sử dụng hồi báo mong đợi (expectational acknowledgments) , nghĩa là số hồi báo nói đến byte tiếp theo mà người gởi hồi báo muốn nhận. 
Kích thước cửa sổ càng lớn cho phép càng nhiều dữ liệu được truyền trước khi phải chờ hồi báo. 
Lưu ý: Số chuỗi đang được gởi chính là số chuỗi của byte đầu tiên trong segment đó. 
TCP WINDOW 
Transport Layer 
7- 466 
TCP Header 
Kích thước cửa sổ TCP (TCP Window Size) 
TCP cung cấp dịch vụ song công hoàn toàn , nghĩa là dữ liệu có thể chạy trên mỗi hướng, độc lập với hướng còn lại. 
Kích thước cửa sổ,các số chuỗi và số hồi báo là độc lập cho mỗi luồng dữ liệu. 
Bên nhận gởi kích thước cửa sổ chấp nhận được đến người gởi trong mỗi segment được truyền đi (kiểm soát luồng) 
nếu quá nhiều dữ liệu đang được gởi, kích thước cửa sổ chấp nhận được bị giảm xuống 
nếu có thể xử lý nhiều dữ liệu, kích thước cửa sổ được tăng lên 
Kỹ thuật này được biết đến như là một giao thức cửa sổ Dừng-và-Đợi (Stop-and-Wait) . 
TCP WINDOW 
Transport Layer 
7- 467 
Packets có thể bị bỏ dọc đường, hết thời gian, hay bị sai lệch. 
TCP cung cấp các hồi báo lũy tích (cumulative acknowledgments). 
Hiện tại không có cách để hồi báo các mảnh được chọn lọc của dòng dữ liệu (data stream). 
Nếu octets 4, 5, và 6 đã được gởi, nhưng 5 bị mất, bên nhận chỉ hồi báo cho đến 4 bằng cách gởi một Ack là 5. 
Bên gởi gởi lại 5 và đợi để nghe từ phía nhận nó nên bắt đầu lại từ đâu. 
Bên nhận gởi Ack 7, do đó bên gởi biết nó có thể bắt đầu gởi tiếp từ octet 7. 
TCP Header 
Transport Layer 
7- 468 
Lưu ý 
Bên gởi: Giá trị của số chuỗi là của byte đầu tiên trong dòng dữ liệu. 
Làm thế nào để bên nhận biết bao nhiêu dữ liệu được gởi, gởi giá trị hồi báo là bao nhiêu? 
Bên nhận: Sử dụng gói IP của bên gởi và thông tin của TCP segment, giá trị của ACK là:: 
 IP Length: (IP header) Total length - Header length 
 - TCP header length (TCP header): Header length 
 ------------------------------------------------- 
 Chiều dài của dữ liệu trong TCP segment (Length of data in TCP segment) 
 ACK = Số chuỗi cuối cùng đã hồi báo + Chiều dài của dữ liệu trong TCP (được tính ở trên) 
Kiểm tra số chuỗi để phát hiện các segments bị mất và để sắp xếp lại các segments đến sai thứ tự. 
Giá trị của ACK là cho số chuỗi của byte mà bạn (receiver) muốn nhận. Khi ta ACK 101, điều đó nói rằng bạn đã nhận được tất cả các bytes cho đến 100. 
Chỉ một octet được gởi tại mỗi thời điểm, nhưng nếu nhiều bytes được gởi (thông thường) thì sao? 
Transport Layer 
7- 469 
Kiểm soát luồng của TCP 
bên nhận của kết nối TCP có một bộ đệm nhận dữ liệu: 
dịch vụ tốc độ thích hợp: điều chỉnh tốc độ gởi phù hợp với khả năng của ứng dụng bên nhận 
tiến trình ứng dụng có thể bị chậm lúc đọc dữ liệu từ vùng đệm 
bên gởi sẽ không làm ngập bộ đệm của bên nhận bằng cách truyền quá nhiều, quá nhanh 
kiểm soát luồng 
Transport Layer 
7- 470 
Kiểm soát luồng của TCP: hoạt động như thế nào 
(Giả sử bên nhận của kết nối TCP loại bỏ các segment sai thứ tự) 
chỗ còn trống trong vùng đệm 
= RcvWindow 
= RcvBuffer-[LastByteRcvd - LastByteRead] 
Bên nhận thông báo chỗ còn trống bằng cách bao gồm giá trị của RcvWindow trong các segments 
Bên gởi giới hạn các dữ liệu chưa được ACK đến RcvWindow 
đảm bảo rằng bộ đệm của bên nhận không bị tràn 
Transport Layer 
7- 471 
Giao thức cửa sổ trượt 
Giải thuật cửa sổ trượt là một phương pháp kiểm soát luồng cho việc truyền dữ liệu trên mạng sử dụng kích cỡ cửa sổ (Window size). 
Bên gởi tính cửa sổ có thể sử dụng được, nó cho biết bao nhiêu byte dữ liệu có thể được gởi gởi ngay. 
Theo thời gian, cửa sổ trượt này di chuyển sang bên phải, khi bên nhận hồi báo cho dữ liệu đã nhận đúng. 
Bên nhận gởi hồi báo khi bộ đệm nhậnTCP của nó trống. 
Ngôn ngữ được sử dụng để mô tả sự dịch chuyển của gờ trái và gờ phải của cửa sổ trượt đó là: 
1. Gờ trái đóng (di chuyển sang bên phải) khi dữ liệu được gởi và được hồi báo. 
2. Gờ phải mở (di chuyển sang phải) cho phép nhiều dữ liệu hơn được gởi. Điều này xảy ra khi bên nhận hồi báo đã nhận một số byte nào đó. 
3. Gờ giữa mở (di chuyển sang phải) khi dữ liệu đã được gởi, nhưng chưa được hồi báo. 
Đã gởichưa ACK 
Có thể sử dụngCó thể gởi ngay 
Kích thước cửa sổ hoạt động 
Cửa sổ có thể sử dụng 
Có thể gởi ngay 
Kích thước cửa sổ khởi tạo 
Cửa sổ trượt 
Transport Layer 
7- 472 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
2 
3 
Host B đưa cho Host A một cửa sổ kích thước là 6 (octets). 
Host A bắt đầu bằng cách gởi các octets đến Host B: octets 1, 2, và 3 và trượt cửa sổ của nó (gờ giữa) để chỉ 3 octets đã được gởi. 
Host A sẽ không tăng kích thước cửa sổ có thể sử dụng (Usable Window) của nó lên 3, cho đến khi nó nhận một hồi báo từ Host B rằng nó đã nhận được một số hoặc tất cả các octets. 
Host B, không đợi tất cả 6 octets đến, sau khi nhận octet thứ 3 gởi một ACK mong nhận có giá trị là 4 đến Host A. 
ACK 4 
Octets sent 
Not ACKed 
Usable Window 
Can send ASAP 
Window size = 6 
Octets received 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
Host A - Sender 
Host B - Receiver 
Transport Layer 
7- 473 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
2 
3 
ACK 4 
Host A không cần phải đợi một hồi báo từ Host B để tiếp tục gởi dữ liệu, cho đến khi kích thước cửa sổ đạt đến 6, do đó nó gởi octet 4 và 5. 
Host A nhận hồi báo ACK 4 và bây giờ có thể trượt cửa sổ của nó cho đủ 6 octets, 3 octets đã được gởi – chưa được hồi báo cộng với 3 octets có thể được gởi ngay lập tức. 
4 
5 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
ACK 6 
Octets sent 
Not ACKed 
Usable Window 
Can send ASAP 
Window size = 6 
1 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
Host B - Receiver 
Host A - Sender 
Transport Layer 
7- 474 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
2 
3 
ACK 4 
Các cửa sổ trượt (tiếp theo) 
4 
5 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
ACK 6 
Octets sent 
Not ACKed 
Usable Window 
Can send ASAP 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
7 
6 
9 
8 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
1 
Host B - Receiver 
Host A - Sender 
Window size = 6 
Transport Layer 
7- 475 
Chương 7 – Nội dung 
7.1 Các dịch vụ của tầng Vận chuyển 
7.2 Multiplexing và demultiplexing 
7.3 Vận chuyển phi kết nối: UDP 
7.4 Vận chuyển hướng kết nối: TCP 
cấu trúc segment 
quản lý kết nối 
truyền dữ liệu tin cậy & kiểm soát luồng 
7.5 Kiểm soát tắc nghẽn của TCP 
Transport Layer 
7- 476 
Kiểm soát tắc nghẽn của TCP 
Tiếp cận kiểm soát tắc nghẽn theo hướng end-to-end (không có sự hỗ trợ của tầng mạng) 
Bên gởi giới hạn số lượng dữ liệu chưa được báo nhận: 
 LastByteSent-LastByteAcked 
 min{CongWin, RcvWindow) 
Tốc độ xấp xỉ của bên gởi: 
CongWin được thay đổi khi nhận thấy có tắc nghẽn trên mạng 
Bên gởi nhận thấy tắc nghẽn như thế nào? 
Sự kiện mất mát = timeout hoặc 3 lần acks giống nhau 
Bên TCP gởi giảm tốc độ ( CongWin ) sau sự kiện mất mát 
Ba thành phần chính của giải thuật kiểm soát tắc nghẽn của TCP: 
AIMD 
slow start/bắt đầu chậm 
thận trọng/dè dặt sau các sự kiện timeout 
rate = 
CongWin 
RTT 
Bytes/sec 
Transport Layer 
7- 477 
TCP AIMD (Tăng cộng, giảm nhân) 
multiplicative decrease: giảm CongWin xuống một nửa sau khi có sự kiện mất mát 
additive increase: tăng CongWin lên 1 MSS (Maximum Segment Size) mỗi RTT khi không có sự kiện mất mát: probing/thăm dò 
Long-lived TCP connection 
Transport Layer 
7- 478 
TCP Slow Start 
Khi kết nối bắt đầu, CongWin = 1 MSS 
Ví dụ: MSS = 500 bytes & RTT = 200 msec 
tốc độ khởi tạo = 20 kbps 
Băng thông sẵn có có thể lớn hơn rất nhiều so với MSS/RTT 
cần thiết phải nhanh chóng nhảy lên đến tốc độ đáng kể chứ không nên tăng từ từ 
Khi kết nối bắt đầu, tăng tốc độ nhanh chóng theo hàm mũ cho đến khi gặp sự kiện mất mát đầu tiên. 
Transport Layer 
7- 479 
TCP Slow Start (tiếp theo) 
Khi kết nối bắt đầu, tăng tốc độ theo hàm mũ cho đến khi gặp sự mất mát đầu tiên: 
gấp đôi CongWin sau mỗi RTT 
được thực hiện bằng việc tăng CongWin cho mỗi ACK nhận được 
Tóm tắt: tốc độ khởi tạo thì chậm nhưng nhảy lên thật nhanh theo hàm mũ 
Host A 
one segment 
RTT 
Host B 
time 
two segments 
four segments 
Transport Layer 
7- 480 
Sự cải tiến 
Sau 3 ACKs trùng lặp: 
CongWin được giảm một nửa 
sau đó nó được tăng lên tuyến tính 
Nhưng sau sự kiện timeout: 
CongWin được đặt về 1 MSS; 
sau đó tăng nó lên theo hàm mũ 
khi đến một threshold (ngưỡng), tăng lên tuyến tính 
 3 ACKs trùng lặp biểu thị mạng có khả năng phân phát một số segments 
 timeout trước khi 3 ACKs trùng lặp nghĩa là tình trạng tắc nghẽn được “báo động nhiều hơn” 
Triết lý: 
Transport Layer 
7- 481 
Sự cải tiến (tiếp theo) 
Q: Khi nào thì chuyển từ việc tăng theo hàm mũ sang tăng tuyến tính? 
A: Khi CongWin đạt được 1/2 giá trị mà nó đã có được trước khi có sự kiện timeout. 
Sự thi hành: 
Sử dụng biến Threshold 
Khi có sự kiện timeout, Threshold được đặt bằng 1/2 giá trị của CongWin ngay trước khi sự kiện mất mát xảy ra 
0 
2 
4 
6 
8 
10 
12 
14 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
Transmission round 
congestion window size 
(segments) 
Series1 
Series2 
threshold 
TCP 
Tahoe 
TCP 
Reno 
Transport Layer 
7- 482 
Tóm tắt về kiểm soát tắc nghẽn của TCP 
Khi CongWin dưới ngưỡng/ Threshold , bên gởi hoạt động ở pha slow-start , cửa sổ được tăng theo hàm mũ. 
Khi CongWin trên ngưỡng/ Threshold , bên gởi hoạt động ở pha congestion-avoidance , cửa sổ tăng tuyến tính. 
Khi một ACK trùng lặp ba lần xuất hiện, Threshold được đặt về CongWin/2 và CongWin được đặt về ngưỡng/ Threshold . 
Khi timeout xuất hiện, Threshold được đặt về CongWin/2 và CongWin được đặt về 1 MSS. 
Transport Layer 
7- 483 
Chương 7: Tóm tắt 
Các nguyên lý đằng sau các dịch vụ của tầng vận chuyển: 
multiplexing, demultiplexing 
chuyển giao dữ liệu tin cậy 
kiểm soát luồng 
kiểm soát tắc nghẽn 
Thuyết minh bằng ví dụ cụ thể và sự cài đặt/sự thi hành các dịch vụ đã nêu trên môi trường Internet 
UDP 
TCP 

File đính kèm:

  • pptbai_giang_mang_may_tinh_pham_van_nam.ppt