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.)
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
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:
- bai_giang_mang_may_tinh_pham_van_nam.ppt