bài giảng đầy đủ cùa môn mạng máy tính
Trang 1MẠNG MÁY TÍNH
Computer Networks
Trang 2Chương 1 – Giới thiệu về mạng máy tính
1.1 Một số khái niệm cơ bản
1.2 Phân loại mạng máy tính
1.3 Mô hình tham chiếu OSI và mô hình TCP/IP
Trang 31.1 Một số khái niệm cơ bản
Internet
Kết nối hàng tỷ thiết bị tính
toán: host = hệ thống cuối
Host chạy các ứng dụng
mạng
Liên kết truyền thông
Cáp quang, cáp đồng, sóng
vô tuyến, vêê tinh
Tốc đôê truyền (transmission
rate) = bandwidth
Router: chuyển tiếp các
gói tin (đoạn dữ liêêu)
local ISP
company network
regional ISP
router workstationserver
mobile
Trang 41.1 Một số khái niệm cơ bản
Internet
local ISP
company network
regional ISP
router workstationserver
mobile
Giao thức
Điều khiển viêêc truyền, nhâên
các bản tin
Ví dụ: TCP, IP, HTTP, FTP,
PPP
Internet:
Mạng của các mạng
Phân cấp lỏng lẻo
Public Internet và private
intranet
Các chuẩn trong Internet
RFC: Request for comments
IETF: Internet Engineering Task
Force
Trang 5Khái niêêm giao thức
Giao thức của con
người:
“what’s the time?”
“I have a question”
… Các bản tin nào đó
gửi đi
… Hành đôêng nào đó khi
các bản tin nhâên
Các giao thức mạng (network protocol):
Tất cả các hoạt động trong Internet dựa trên các giao thức
Các giao thức định nghĩa định dạng, thứ tự của các bản tin gửi và nhâ ân giữa các thực thể mạng và các hoạt đô âng truyền nhâ ân bản tin
Trang 6Khái niêêm giao thức
Giao thức của con người và giao thức của mạng máy tính:
Hi Hi
Got the
time?
2:00
TCP connection req
TCP connection response
<file>
Thời gian
Các giao thức khác của con người?
Get http://www.ictu.edu.vn
Trang 7Cấu trúc mạng
Network edge: các
ứng dụng và các host
Trang 8N etwork edge
Hệ thống cuối (hosts):
Chạy các chương trình ứng
dụng
Ví dụ: Web, email
tại “edge of network”
Mô hình client/server
Client gửi yêu cầu và nhận dịch
vụ từ server
Ví dụ: Web browser/server,
email client/server
Mô hình peer-peer:
Sử dụng rất ít hoăêc không sử dụng các server dành riêng
Trang 9Network edge: Dịch vụ hướng kết nối
Mục đích: truyền dữ liệu
giữa các hệ thống cuối
Handshaking: thiết lập
(chuẩn bị) cho việc
truyền dữ liệu
Giao thức của con người:
A: Hello, B: hello
Thiết lập trạng thái trong
hai host truyền thông
Điều khiển luồng:
Bên gửi không truyền vượt quá khả năng bên nhận
Điều khiển tắc ngẽn:
Bên gửi giảm tốc độ gửi khi mạng tắc ngẽn
Trang 10Network edge: Dịch vụ không hướng kết nối
Không hướng kết nối
Truyền dữ liệu không
tin cậy
Không điều khiển luồng
Không điều khiển tắc
ngẽn
Các ứng dụng sử dụng TCP:
HTTP (Web), FTP (file transfer), Telnet (remote login), SMTP (email)
Các ứng dụng sử dụng UDP:
Truyền dòng media, hội nghị truyền hình, DNS, điện thoại Internet
Trang 11Network Core
router kết nối với nhau
Câu hỏi: Dữ liệu truyền
qua mạng như thế
nào?
Chuyển mạch kênh:
đường dành riêng cho mỗi cuộc gọi: mạng điện thoại
Chuyển mạch gói: dữ
liệu gửi qua mạng dưới các đoạn riêng rẽ
Trang 12Network Core: Chuyển mạch kênh
Tài nguyên end-end
dành riêng cho cuộc
gọi
truyền, khả năng
chuyển mạch
không chia sẻ khi rỗi
đảm bảo hiệu năng
Đòi hỏi thiết lập cuộc
gọi
Trang 13Network Core: Chuyển mạch kênh
Các tài nguyên mạng (ví dụ: bandwidth) được chia thành các phần
Các phần này cấp cho các cuộc gọi
Các phần tài nguyên rỗi nếu không được sử dụng bởi cuộc gọi mà tài nguyên đó đã cấp phát cho cuộc gọi này (no sharing)
Chia các bandwidth của đường truyền thành các phần
Trang 14Chuyển mạch kênh: FDM và TDM
Trang 15Network Core: Chuyển mạch gói
Mỗi dòng dữ liệu
end-end chia thành các
gói tin
Gói tin của user A, B
dùng chung tài nguyên
mạng
Mỗi gói tin sử dụng toàn
bộ băng thông đường
truyền
Tài nguyên sử dụng theo
yêu cầu
Sự tranh giành tài nguyên:
Yêu cầu tài nguyên của tất cả user có thể vượt quá khả năng cung cấp
Tắc nghẽn: hàng đợi gói tin, đợi để sử dụng đường
truyền
Store-and-forward: Các gói tin chuyển tới hop tại một thời điểm
❍ Nút nhận đầy đủ gói tin trước khi chuyển tiếp đi
Trang 161.2 Phân loại mạng máy tính
Trang 171.2 Phân loại mạng máy tính
Trang 181.2 Phân loại mạng máy tính
Tổng chiều dài của cable không được vượt quá 185m.
Nếu một máy tính trên mạng bị hỏng hóc thì toàn bộ mạng sẽ ngưng hoạt động.
Các sự cố hỏng hóc phức tạp
Trang 191.2 Phân loại mạng máy tính
Trang 201.2 Phân loại mạng máy tính
Trang 211.2 Phân loại mạng máy tính
Star
Trang 221.2 Phân loại mạng máy tính
Trang 231.3 Mô hình tham chiếu OSI và mô hình TCP/IP
Mô hình giao thức: là một tập hợp có phân cấp của các giao thức liên quan với nhau trong một bộ giao thức mô tả tất cả các chức năng cần thiết để thể hiện mô hình mạng.
Mô hình tham chiếu: cung cấp một mô hình tham khảo để duy trì tính nhất quán trong tất cả các loại giao thức và dịch vụ mạng.
Trang 241.3 Mô hình tham chiếu OSI và mô hình TCP/IP
Tại sao lại phân tầng?
Giải quyết với các hệ thống phức tạp:
Cấu trúc rõ ràng cho phép định danh, quan hệ của các phần hệ thống phức tạp
Modul hóa để dễ bảo trì, nâng cấp hệ thống
mỗi tầng là trong suốt với phần còn lại của hệ thống
Trang 251.3.1 Mô hình TCP/IP
Application: kiểm soát các giao thức ở
tầng cao, hỗ trợ các ứng dụng mạng
FTP, SMTP, …
Transport: truyền dữ liệu host-host
TCP, UDP
Internet: dẫn đường các datagram từ
nguồn tới đích
IP, các giao thức dẫn đường
Network Access: Điều khiển thiết bị
phần cứng và các môi trường truyền dẫn tạo ra một mặng kết nối vật lý.
PPP, Ethernet
Trang 26application transport network link physical
link physical
Trang 271.3.2 Mô hình tham chiếu OSI
Trang 28Cung cấp phương tiện truyền tin, thủ tục khởi tạo, duy trì và hủy bỏ các liên kết vật lý cho phép truyền các dòng dữ liệu ở dạng bit
Biểu diễn thông tin theo cú pháp của người sử dụng Loại mã sử dụng và vấn đề nén dữ liệu
Trang 291.3.2 Mô hình tham chiếu OSI
Trang 30Đơn vị dữ liệu PDU tại các tầng
Trang 31CHƯƠNG 2: TẦNG ỨNG DỤNG
Trang 32Chương 2: Các tầng hướng ứng dụng
2.1 Chức năng của các tầng hướng ứng dụng 2.2 Các khía cạnh của các giao thức ứng dụng mạng
2.3 Các giao thức thuộc tầng ứng dụng
Trang 332.1 Chức năng của các tầng hướng ứng dụng
2.1.1 Tầng ứng dụng
Trang 342.1 Chức năng của các tầng hướng ứng dụng
2.1.1 Tầng ứng dụng
Là tầng đầu tiên của cả hai mô hình
OSI và TCP/IP
Cung cấp về giao diện giữa các
ứng dụng người dùng với các
tầng phía dưới mà qua đó các
thông điệp được truyền đi
Các giao thức của tầng ứng
dụng thường được dùng để trao
đổi dữ liệu giữa các chương
trình chạy trên máy nguồn và
máy đích
Trang 352.1 Chức năng của các tầng hướng ứng dụng
2.1.2 Tầng trình diễn
Mã hóa và biến đổi dữ liệu của tầng ứng dụng để đảm bảo rằng
dữ liệu ở thiết bị nguồn có thể được hiểu bởi ứng dụng phù hợp trên các thiết bị đích
Nén dữ liệu theo cùng một cách để các thiết bị đích có thể giải nén
Mã hóa dữ liệu truyền và giải mã dữ liệu khi dữ liệu được nhận
ở thiết bị đích
Các ví dụ:
QuickTime
QuickTime là một chuẩn riêng của Apple dành cho video và âm thanh.
Motion Picture Experts Group (MPEG)
MPEG là một chuẩn nén và mã hóa dữ liệu video.
Các định dạng GIF, JPEG, TIFF
GIF và JPEG là các chuẩn nén và mã hóa dành cho hình ảnh,
TIFF là chuẩn mã hóa dành cho hình ảnh
Bài tập: Mã Huffman
Trang 362.1 Chức năng của các tầng hướng ứng dụng
Trang 372.2 Các khía cạnh của các giao thức ứng dụng mạng
Tạo một ứng dụng mạng
Viết chương trình
Chạy trên các end systems
khác nhau
Giao tiếp qua mạng
Ví dụ Web: Phần mềm
Web server giao tiếp với
phần mềm trình duyệt
Không có phần mềm viết cho
các thiết bị trong Network Core
application
transport network data link physical
application
transport network data link physical
application
transport network data link physical
Trang 382.2 Các khía cạnh của các giao thức ứng dụng mạng
2.2.1 Các kiến trúc ứng dụng
Client-Server
Peer-to-peer (P2P)
Hybrid
Trang 39Kiến trúc Client-Server
Server:
Server ở trạng thái luôn chạy
Máy tính chứa thông tin để chia sẻ với các hệ thống client.
Địa chỉ IP cố định
Trong mạng Client/Server, Server thường chạy một loại dịch vụ (hoặc process), gọi là daemon
Client:
Truyền thông với server
Có thể không kết nối liên tục
Có thể có địa chỉ IP động
Không giao tiếp trực tiếp với nhau
Trang 40Kiến trúc Client-Server
Trang 41Kiến trúc Client-Server
Một ứng dụng riêng rẽ
có thể sử dụng nhiều dịch vụ hỗ trợ của tầng ứng dụng.
Máy chủ thường nhận được nhiều yêu cầu từ máy khách cùng một lúc
Trang 42Kiến trúc Peer-to-peer (P2P)
Server không ở trạng thái
luôn chạy
Hệ thống cuối tùy ý truyền
thông trực tiếp
Các Peer kết nối không liên
tục và thay đổi địa chỉ IP
Mỗi thiết bị đầu cuối kết nối
vào mạng (peer) có thể hoạt
động vừa như một máy
chủ, vừa như một máy
khách
Vấn đề an ninh trong mạng
ngang hàng thường không
cao
Trang 43Kiến trúc Peer-to-peer (P2P)
Trang 442.2 Các khía cạnh của các giao thức ứng dụng mạng
2.2.2 Truyền thông của các tiến trình
Tiến trình: chương trình
chạy trong một host.
Trong cùng host, 2 tiến
trình giao tiếp sử dụng
inter-process
communication (Do OS
định nghĩa).
Các tiến trình trong các
host khác nhau giao tiếp
bằng cách trao đổi các
Trang 45 Tiến trình gửi nhận
messages tới/từ socket
Tiến trình gửi dựa vào hạ
tầng giao vận trên phía bên kia của cửa, nó mang
message tới socket của tiến trình nhận
Trang 46Các tiến trình đánh địa chỉ
Đối với một tiến trình nhận messages, nó phải
có một định danh
Một host có một địa chỉ IP duy nhất
Câu hỏi: Địa chỉ IP của host mà tiến trình chạy
có đáp ứng được việc định danh tiến trình?
Định danh bao gồm cả địa chỉ IP và địa chỉ cổng gán cho ứng dụng trên host.
Ví dụ: Giá trị cổng của một số ứng dụng:
HTTP server: 80
Mail server: 25
Trang 472.2 Các khía cạnh của các giao thức ứng dụng mạng
2.2.3 Các dịch vụ các giao thức giao vận
Dịch vụ TCP:
Hướng kết nối: Đòi hỏi quá
trình thiết lập giữa tiến trình
client và tiến trình server
Truyền tin cậy giữa tiến trình
gửi và tiến trình nhận
Điều khiển luồng: Bên gửi sẽ
không vượt quá khả năng bên
nhận
Điều khiển tắc nghẽn: điều
chỉnh bên gửi khi mạng quá tải
Không cung cấp: tính thời gian,
đảm bảo băng thông tối thiểu
Dịch vụ UDP:
Truyền dữ liệu không tin cậy giữa tiến trình gửi và tiến trình nhận
Không cung cấp: việc thiết lập kết, truyền tin cậy, điều khiển luồng, điều khiển tắc nghẽn, tính thời gian, đảm bảo băng thông
Q: Tại sao cần UDP?
Trang 482.2 Các khía cạnh của các giao thức ứng dụng mạng
Các ứng dụng Internet: các giao thức tầng ứng dụng và tầng giao vận
Trang 492.3 Các giao thức thuộc tầng ứng dụng
Trang 502.3.1 Web và HTTP
Trang Web chứa các đối tượng
Đối tượng có thể là file HTML, ảnh JPEG, Java applet, audio,…
Trang Web chứa file HTML, chứa các đối tượng tham chiếu
Mỗi đối tượng được đánh địa chỉ bởi một URL
Ví dụ URL:
Trang 51 client: Trình duyệt yêu
cầu, nhận và hiện thị các
đối tượng
server: Web server gửi
các đối tượng trong trả lời
HTTP 1.0: RFC 1945
HTTP 1.1: RFC 2068
Trang 522.3.1 Web và HTTP
Sử dụng TCP:
Client khởi đầu kết nối TCP tới server, cổng 80
Server chấp nhận kết nối TCP từ client
Các bản tin HTTP (bản tin của giao thức tầng ứng dụng Web) trao đối giữa trình duyệt (HTTP client) và Web server (HTTP server)
Kết nối TCP đóng
HTTP là không hướng trạng thái
Server không duy trì thông tin về các yêu cầu của client trong quá khứ
Trang 532.3.1 Web và HTTP
Kết nối HTTP
Không kiên trì HTTP
gửi qua một kết nối
TCP
nonpersistent HTTP
Kiên trì HTTP
gửi qua một kết nối TCP giữa client và server
dụng persistent HTTP
Trang 542.3.1 Web và HTTP
Nonpersistent HTTP Giả sử người sử dụng nhập vào URL:
www.ictu.edu.vn/hssv/tracuudiem.html
1a HTTP client khởi đầu kết nối TCP tới HTTP server (tiến trình) tại www.ictu.edu.vn , cổng 80
1b HTTP server tại host www.someSchool.edu đợi kết nối TCP tại cổng 80.
Chấp nhận kết nối, thông báo cho client
2 HTTP client gửi bản tin yêu
cầu HTTP (chứa URL) vào socket của kết nối TCP Bản tin chỉ rằng client muốn lấy đối tượng
hssv/tracuudiem.html
3 HTTP server nhận bản tin
yêu cầu, xây dựng bản tin
trả lời chứa đối tượng đã
yêu cầu và gửi bản tin vào trong socket của nó
Thời gian
Trang 552.3.1 Web và HTTP
Nonpersistent HTTP Giả sử người sử dụng nhập vào URL:
Trang 562.3.1 Web và HTTP
Mô hình thời gian trả lời
RTT: thời gian để gửi một
gói tin từ client tới server
và trở lại
Thời gian trả lời:
1 RTT để khởi tạo kết nối
TCP
1 RTT cho yêu cầu HTTP
và nhận byte đầu tiên của
trả lời HTTP
Thời gian truyền file
total = 2RTT+transmit time
transmit time
Khởi đầu kết nối TCP
RTT
file yêu cầu
Trang 57 Hai kiểu bản tin HTTP:
Bản tin yêu cầu HTTP
Bản tin trả lời HTTP
Trang 582.3.1 Web và HTTP
Bản tin yêu cầu HTTP
Trang 592.3.1 Web và HTTP
Bản tin trả lời HTTP
Trang 602.3.1 Web và HTTP
Mã trạng thái của trả lời HTTP
Trong dòng đầu tiên của trả lời server->client
Không tìm thấy đối tượng yêu cầu
505 HTTP Version Not Supported
Trang 612.3.1 Web và HTTP
Web cache (proxy server)
Mục đích: thực hiện yêu cầu của client không phải yêu cầu tới server ban đầu
Người dùng thiết lập qua
trình duyệt
Trình duyệt gửi mọi yêu
cầu HTTP qua Cache
Đối tượng trong cache: sẽ
được trả về
Nếu không: Yêu cầu được
chuyển tới server ban đầu
Trang 622.3.1 Web và HTTP
Web cache
Trang 632.3.1 Web và HTTP
Web cache
Trang 642.3.1 Web và HTTP
Web cache
Trang 652.3 Các giao thức thuộc tầng ứng dụng
Trang 662.3.2 FTP - File Transfer Protocol
FTP được phát triển để đáp ứng việc truyền file giữa máy chủ và máy khách
FTP client là ứng dụng chạy trên máy tính dùng để tải file lên
(push) và tải về (pull) từ máy chủ.
Client có thể tải về (pull) từ máy chủ.
Hoặc có thể tải lên máy chủ (push)
giao thức giao vận
Trang 672.3.2 FTP - File Transfer Protocol
Để truyền tải file, FTP cần có hai kết nối giữa máy khách và máy chủ:
chủ ở cổng TCP 21
Nó bao gồm các lệnh client và hồi âm của server
ở cổng TCP 20
Liên kết này dùng trong truyền tải file, nó được tạo ra mỗi khi có file được truyền
FTP client
FTP server
Kết nối điều khiển TCP
cổng 21
Kết nối dữ liệu TCP
cổng 20
Trang 682.3 Các giao thức thuộc tầng ứng dụng
Trang 692.3.3 DNS - Domain Name System
Con người: có nhiều định danh:
Host, router trên Internet:
dữ liệu gửi đi
người
Câu hỏi: Ánh xạ giữa địa chỉ IP và tên ?
Trang 702.3.3 DNS - Domain Name System
Các tên miền ở trên internet, như là tên miền
www.cisco.com , dễ nhớ hơn 198.133.219.25 đối với người dùng.
Cisco thay đổi địa chỉ số, thì tên miền vẫn được giữ nguyên.
Địa chỉ mới này sẽ được liên kết với tền miền
hiện có và kết nối mạng vẫn được duy trì.
mạng: DNS sử dụng tập các server phân tán để phân tích các tên được liên kết với các địa chỉ số này.
Trang 712.3.3 DNS - Domain Name System
Cơ sở dữ liệu phân cấp và phân tán
Trang 722.3.3 DNS - Domain Name System
Root name server
sẽ liên lạc với Root name server
Liên lạc với authoritative name server nếu nó không biết ánh xạ tên
Lấy ánh xạ
Trả ánh xạ về cho local name server