1.01 Internet là gì ?Tập hợp các máy tính kết nối với nhau dựa trên một kiến trúc nào đó để có thể trao đổi dữ liệu Máy tính: máy trạm, máy chủ, thiết bị mạng Kết nối bằng một phương tiệ
Trang 1NHẬP MÔN
MẠNG MÁY TÍNH
BHT Đoàn khoa MMT&TT – Training cuối kì I
TrainerNguyễn Trần Đức An – ATCL2020
Trang 2TẦNG VẬN CHUYỂN (TRANSPORT) TẦNG MẠNG (NETWORK) TẦNG LIÊN KẾT (DATA LINK)
Bonus: Giải đề
Trang 3CHƯƠNG 1: GIỚI THIỆU
04
NỘI DUNG
Trang 41.01 Internet là gì ?
Tập hợp các máy tính kết nối với nhau dựa trên một kiến trúc nào
đó để có thể trao đổi dữ liệu
Máy tính: máy trạm, máy chủ, thiết bị mạng
Kết nối bằng một phương tiện truyền thông: cáp mạng, cáp quang, radio, vệ
tinh
Tốc độ truyền: băng thông
Theo một kiến trúc mạng nhất định
Trang 51.01 Internet là gì ?
Mạng của các mạng: Các nhà cung cấp dịch vụ mạng (ISPs/
Internet Service Providers) được kết nối với nhau
Các giao thức điều khiển, nhận thông tin: TCP, HTTP, Skype,…
Các chuẩn Internet: RFC (Request for comments), IETF (Internet Engineering Task
Force
Cơ sở hạ tầng cung cấp dịch vụ cho các ứng dụng: Web, VoIP, email,
games, thương mại điện tử, mạng xã hội,…
Trang 61.01 Internet là gì ?
Giao thức: là cách thức giao tiếp giữa các máy tính với nhau và với
mạng
Trang 71.02 Mạng biên
Mạng biên (network edge):
Nút mạng đầu cuối (end-system, host):
PC, điện thoại, máy chủ, máy tính nhúng
Mạng truy cập (access network): đường
truyền, thiết bị kết nối (router, switch,
hub,…)
Trang 81.02 Mạng biên
Chức năng của host (end-system):
Nhận data từ tầng ứng dụng (application) rồi chia nhỏ thành các packets, chiều
dài là L bits
Truyền packet trong mạng với tốc độ truyền R
Tốc độ truyền của đường link, còn được gọi là khả năng/công suấtcủa đường
link, còn được gọi là băng thông của đường link
Độ trễ truyền gói (packet) = Chiều dài gói (bits)
Băng thông đường link (bps)
L R
=
Trang 91.03 Mạng lõi
Hai chức năng chính của mạng lõi:
Routing: xác định đường đi
từ nguồn đến đích được thực
hiện bởi các gói tin
Fowarding: chuyển các packet
từ đầu vào của bộ định tuyến
đến đầu ra thích hợp của bộ
định tuyến đó
Lưới các bộ định tuyến (router)
được kết nối với nhau.
Trang 101.03 Mạng lõi
Chuyển mạch gói
Host chia nhỏ dữ liệu từ tầng ứng dụng thành các packet
Chuyển tiếp các gói từ bộ định tuyến này đến bộ định tuyến tiếp theo trên đường đi
từ nguồn tới đích
Mỗi packet được truyền với công suất lớn nhất của đường truyền
Trang 111.03 Mạng lõi
Độ trễ hang đợi, sự mất mát: nếu tốc độ đến của đường link cao hơn tốc độ truyền
của đường link trong 1 khoảng thời gian
Các packet sẽ xếp hàng và đợi được truyền tải tạo ra độ trễ hàng đợi
Các packet có thể bị bỏ (mất) nếu bộ nhớ hàng đợi (bộ nhớ đệm) đầy
Trang 121.03 Mạng lõi
Chuyển mạch kênh: 2 điểm đầu cuối
muốn trao đổi thông tin sẽ thiết lập 1
kênh truyền riêng (circuit) với băng
thông được cấp phát dành riêng cho cả
2 cho tới khi truyền tin kết thúc
Kênh không được chia sẽ nên
sẽ rảnh rỗi lúc không truyền tin
Trang 131.03 Mạng lõi
Ghép kênh theo thờigian (TDM): mỗi kết nối
sử dụng tài nguyêntrong thời gian đượcphân
Ghép kênh theo tần số(FDM): mỗi kết nối sửdụng 1 băng tần tínhiệu riêng
Ghép kênh: gửi dữ liệu của nhiều kênh khác nhau trên một đường truyền vật lý
Phân kênh: phân dữ liệu được truyền trên đường truyền vật lý vào các kênh
tương ứng và chuyền cho đúng đích
Trang 14Lỗi đường truyền không làm chậm trễ
do có nhiều đường truyền khác nhau
Nhiều người có thể sử dụng chungmột đường truyền
Có thể sử dụng lâu dàiChất lượng ổn định, không bị mất gói
Nhược điểm:
Nhiều kênh thì băng thông càng nhỏChỉ một kênh truyền được sử dụng tạimột thời điểm
Kênh truyền sẽ duy trì cho đến khi 2 bên ngắt kết nối và có thể lãng phí băng thôngnếu không truyền dữ liệu
Trang 151.03 Mạng lõi
Kiến trúc của Internet là mạng của các mạng
Trang 161.03 Mạng lõi
ISP : Internet Service Provider IXP : Internet Exchange Point Regional net : Mạng khu vực
Trang 171.04 Độ trễ, thông lượng trong mạng
4 nguồn gây ra chậm trễ gói tin
dproc: xử lý tại nút
Kiểm tra các bits lỗi
Xác định đường ra
Thông thường < ms
dprop: trễ do lan truyền
d: độ dài đường truyền vật lý
Trang 181.04 Độ trễ, thông lượng trong mạng
Cường độ lưu thông = La/R
R: băng thông đường link (bps)
a: tỷ lệ trung bình gói tin đến
L: chiều dài gói tin (bits)
La/R ~ 0 : trễ trung bình nhỏ
La/R -> 1 : trễ trung bình lớn
La/R > 1 : vượt quá khả năng phục vụ, trễ vô hạn
Trang 191.04 Độ trễ, thông lượng trong mạng
Thông lượng: tốc độ(bits/time unit) mà các bit được truyền giữa người gởi và nhận
Tức thời: tốc độ tại 1 thời điểm
Trung bình: tốc độ trong khoảng thời gian
Đường link nút cổ chai : đường link trên con đường từ điểm cuối này đến điểm cuối kia
hạn chế thông lượng từ điểm cuối này đến điểm cuối kia
Trang 201.04 Độ trễ, thông lượng trong mạng
Thông lượng điểm cuối-cuối cho mỗi
kết nối: (10 kết nối) min(Rc,Rs,R/10)
Trong thực tế: Rc hoặc Rs thường bị
thắt nút cổ chai
Trang 21IP, các giao thức định tuyến,…
Link: chuyển dữ liệu giữa các thành phần mạng lân
cận
Ethernet, 802.111 (WiFi), PPP,…
Physical: bits “trên đường dây”
Trang 221.05 Các lớp giao thức
Mô hình ISO/OSI
presentation: cho phép các ứng dụng giải thích ý nghĩa của
dữ liệu, ví dụ mã hóa, nén, những quy ước chuyên biệt
session: sự đồng bộ hóa, khả năng chịu
lỗi, phục hồi sự trao đổi dữ liệu
Trang 23CHƯƠNG 2: TẦNG ỨNG DỤNG (APPLICATION)
Các nguyên lý của các ứng dụng mạng 01
Web và HTTP 02
FTP 03
Lập trình Socket với UDP và TCP
Trang 242.01 Các nguyên lý của các ứng dụng mạng
Cấu trúc có thể của các ứng dụng
Trang 25Server
Trang 272.01 Các nguyên lý của các ứng dụng mạng
Socket: điểm truy cập dịch vụ của tầng giao vận (transport)
Các tiến trình ứng dụng sử dụng socket gọi dịch vụ của tầng
giao vận để trao đổi thông điệp
Trang 282.01 Các nguyên lý của các ứng dụng mạng
Muốn truy cập dịch vụ phải có định danh (indentifier)
Định danh bao gồm địa chỉ IP và số cổng (port numbers) được liên kết với tiến trình trênhost
VD: tiến trình web server trên máy chủ của SoICT có định danh 202.191.56.65:80
Trang 302.02 Web và HTTP
HTTP: Hypertext Transfer Protocol
Là giao thức web của tầng application
Mô hình client/server
client: trình duyệt yêu cầu, nhận (dùng giao thức
HTTP) và “hiện thị” các đối tượng Web
server: Web server gởi (dùng giao thức HTTP)
các đối tượng để đáp ứng yêu cầu
RTT: Round Trip Time
Thời gian để cho một gói tin nhỏ đi từ client
đến server và quay ngược lại
Trang 312.02 Web và HTTP
Các kết nối HTTP
HTTP bền vữngHTTP không bền vững
HTTP/1.1 HTTP/2.0HTTP/1.0
Trang 352.02 Web và HTTP
Cookie: dữ liệu do ứng dụng Web tạo ra, chứa thông tin trạng thái của phiên làm việc
Server có thể lưu lại cookie(một phần hoặc toàn bộ)
HTTP Cookies
Sau khi xử lý yêu cầu, Web server trả lại thông điệp HTTP Response với coookie đính kèm
Set-Cookie: key = value; options;
Trình duyệt lưu cookie
Trình duyệt gửi HTTP Request
tiếp theo với cookie được đính
kèm
Trang 362.02 Web và HTTP
Các trang web có thể được lưu trên máy trạm
cục bộ
Bộ nhớ tạm được lưu trên proxy server
Web Caching (Proxy Server)
Trang 372.03 FTP
FTP: giao thức truyền file
Truyền file đến/từ host từ xa
Kết nối điều khiển
Trang 382.04 Email
Còn được gọi là thư điện tử, có 3 phần chính
User Agent:
Còn gọi là “mail reader”
Soạn thảo, sửa đổi, đọc các thông điệp email
VD: Outlook, Thunderbird, iPhone mail client
Mail Servers:
Hộp thư (mailbox): chứa thư đến của user
Hàng thông điệp (message queue) của các
thông điệp mail ra ngoài (chuẩn bị gửi)
Giao thức SMTP gửi thư giữa các mail server và
giữa user agents và mail server
Trang 392.04 Email
Giao thức SMTP (Simple Mail Transfer Protocol)
RFC 2821
TCP, port 25: Chuyển thư từ client đến server và giữa các server với nhau
3 giai đoạn truyền
Thiết lập kết nối
Truyền thông điệp
Đóng kết nối
Trang 402.04 Email
Các giao thức truy cập mail từ server của người nhận
POP : Post Office Protocol [RFC 1939]
Đăng nhập vào lấy hết thư từ mail server về client
IMAP : Internet Mail Access Protocol [RF 1730]
Phức tạp hơn POP
Cho phép lưu trữ và xử lý thư trên máy chủ
HTTP : Gmail, Yahoo, Outlook,…
Trang 412.04 Email
Mặc định thì POP sau khi tải email về máy tính cục
và sẽ xóa các email đó khỏi server
Về cơ bản email vẫn được lưu trên server, người dùng chỉ copy một bản lưu tạm trên thiết bị cá nhân
Tiết kiệm được không gian lưu trữ trên server
Có thể ứng dụng để hợp nhất nhiều tài khoản
Ưu điểm:
Mail được lưu trữ trên server, có thể truy cập
từ nhiều thiết bị và địa điểm khác nhau
Xem nhanh hơn do chỉ cần tải trước danh sách email với các tiêu đề trước khi tải nội dung mail Tiết kiệm không gian lưu trữ trên thiết bị cục bộ.
Trang 422.05 DNS
Con người sử dụng tên miền:
yahoo.com, google.com,… Thiết bị sử dụng địa IP và port:8.8.8.8,…
DNS: Domain Name System
Hệ thống phân giải tên miền
Dịch tên host ra
Bí danh mail server
Trang 432.05 DNS
Cơ sở dữ liệu phân cấp, phân tán
client muốn địa chỉ IP của www.amazon.com:
client truy vấn server gốc (root) để tìm DNS
server com
client truy vấn DNS server com tìm DNS
server amazon.com
client truy vấn DNS server amazon.com để lấy
địa chỉ IP của www.amazon.com
Trang 442.05 DNS
Trang 452.05 DNS
DNS record là bản ghi nằm trong DNS servers cung cấp thông tin về cơ sở dữ liệu DNS, cho biết các tên miền, địa chỉ IP gắn với tên miền và cách xử lý các yêu cầu với tên miền đó
Type A : giúp trỏ tên miền (domain) của website tới một địa chỉ IP cụ thể
VD:[Tên miền] IN A [địa chỉ IP của máy]
Type CNAME: là một bản ghi DNS record quy định một tên miền là bí danh của một tên miềnchính khác
VD: [Tên bí danh] IN CNAME [tên miền chính]
Type MX: một DNS record giúp xác định mail server mà email sẽ được gửi tới
VD: [Tên miền chính] IN MX [độ ưu tiên] [mail server]
Type NS: là một loại DNS record giúp xác định thông tin của một tên miền cụ thể được khai báo và quản lý trên máy chủ nào
VD: [Tên miền] IN NS [tên máy chủ tên miền]
Trang 462.06 Lập trình Socket với UDP và TCP
Socket: (phần 2.01)
một cánh cửa giữa tiến trình ứng dụng và giao thức transport end-end
Hai loại socket cho 2 dịch vụ transport
UDP (User Datagram Protocol)
TCP (Transmission Control Protocol)
Trang 472.06 Lập trình Socket với UDP và TCP
Lập trình socket với UDP
UDP (User Datagram Protocol)
Không “kết nối” giữa client và server
Trang 482.06 Lập trình Socket với UDP và TCP
Lập trình socket với TCP
TCP (Transmission Control Protocol)
Có kết nối giữa client và server
Trang 49CHƯƠNG 3: TẦNG VẬN CHUYỂN
Các dịch vụ của Tầng
Vận Chuyển 01
Multiplexing và Demultiplexing 02
UDP: Giao thức không kết nối 03
TCP điều khiển tắc nghẽn
06
TCP: Giao thức hướng kết nối
Trang 50Các dịch vụ tầng vận chuyển
Tầng vận chuyển cung cấp cho chúng ta:
• Các kênh truyền logic giữa các tiến trình đang chạy trên các host khác nhau
• Các giao thức chạy trên trên hệ thống đầu cuối
• Phía gửi: Có chức năng chia nhỏ dữ liệu thành các segment nhỏ hơn
và gửi cho tầng Mạng
• Phía nhận: Tái kết hợp các segment và gửi dữ liệu cho tầng trên
• Có nhiều hơn một giao thức sử dụng ở tầng transport
Tuy nhiên phổ biến nhất: UDP và TCP
Trang 51Các giao thức:
• Tin cậy, truyền theo thứ tự (TCP):
• Điều khiển tắc nghẽn
• Điều khiển luồng
• Thiết lập kết nối (Hướng kết nối)
• Không tin cậy, không truyền theo thứ tự (UDP):
• Hoạt động theo cơ chế “best effort”
• Không rườm rà
Các giao thức sẽ không đảm bảo:
Các dịch vụ tầng vận chuyển
Trang 52Đơn vị dữ liệu ở tầng Vận chuyển là ?
Trang 53UDP là giao thức:
A Hướng kết nối
B Tin cậy, truyền theo thứ tự
C Hoạt động theo cơ chế “best effort”
Các dịch vụ tầng vận chuyển
Trang 54Multiplexing và Demultiplexing
socket
transport application
physical link network
P2P1
transport application
physical link network
P4
transport application
physical link network
P3Multiplexing ở bên gửi: Xử lý thông tin từ nhiều socket
Demultiplexing ở bên nhận: Sử dụng thông tin trong header để đưa vào đúng socket
Trang 55Multiplexing và Demultiplexing
Demultiplexing hoạt động như thế nào ?
Số port nguồn Số port đích
32 bits
application data (payload)
other header fields
Sử dụng thông tin trong Header
để đưa vào đúng socket
Trang 56Multiplexing và Demultiplexing
Nguyên lý:
• Trong IP datagram : Có ip nguồn và đích
• Trong một ip datagram mang một segment tầng vận chuyển
• Trong segment có chứa port nguồn và đích
Host nhận các gói dữ liệu ip datagram
Host sử dụng địa chỉ ip và số port để đưa vào socket thích hợp
Trang 57Multiplexing và Demultiplexing
Demultiplexing không kết nối (UDP)
Tạo Socket: Cần 1 yếu tố Số port đích, IP đích
Đưa datagram vào đúng socket Địa chỉ IP đích
Số port đích
Gói tin IP/UDP có cùng số port đích, nhưng khác địa chỉ IP
Khi host nhận được một segment
Kiểm tra số port đích
Đưa segment vào đúng socket có số port
đấy
Trang 58Multiplexing và Demultiplexing
Ví dụ về Demultiplexing không kết nối:
Trang 59Multiplexing và Demultiplexing
Demultiplexing hướng kết nối (TCP)
Tạo Socket : Cần 4 yếu tố Số port đích, Số port nguồn, IP nguồn, IP đích
Đưa datagram vào đúng socket 4 yếu tố như trên
Khi host nhận được một segment
Kiểm tra 4 yếu tố
Đưa segment vào đúng socket
Trang 60Multiplexing và Demultiplexing
Ví dụ về Demultiplexing hướng kết nối :
3 gói tin, có cùng số port đích: 80 Nhưng được
Trang 62Xác định số src port, dest port ở gói tin D ?
Trang 63UDP: Giao thức không kết nối
Giao thức đơn giản
Hoạt động theo cơ chế “best effort”
Các segment được gửi bởi UDP có thể:
• Mất gói
• Loạn thứ tự
Vì UDP không tạo kết nối (Có thể gây ra trễ do RTT)
Đơn giản
Kích thước Header nhỏ (8 bytes)
Không có điều khiển tắc nghẽn
• Hoạt động bất chấp tắc nghẽn
Vậy tại sao lại cần UDP
Trang 64UDP: Giao thức không kết nối
UDP được sử dụng trong các ứng dụng không yêu cầu độ tin cậy cao.
thanh
Game
Ngoài ra còn được ứng dụng trong DNS, HTTP/3, v.v
Hoặc các ứng dụng yêu cầu tính nhanh của UDP
Trang 65UDP: Giao thức không kết nối
source port # dest port #
32 bits
application data (payload)
Trường length, tính bằng byte, tính cả
header
Trang 66Internet checksum: Ví dụ
Tổng mớichecksumBit bị dư
Trang 68Internet checksum: Lỗ hỏng lớn
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
Ví dụ: Cộng 2 số nguyên 16 bits
Tổng mớichecksum
không bị thay đổi
UDP: Giao thức không kết nối
Trang 69UDP: Giao thức không kết nối
Tổng kết:
Điểm trừ của UDP:
• Giao thức “best effort”: Mất gói, loạn thứ tự
• “Best effort”: Gửi và cầu nguyện
Điểm cộng của UDP:
• Không có quá trình thiết lập kết nối (không bị trễ do RTT)
• Hoạt động bất chấp tình hình mạng (nghẽn, quá tải)
Trang 70Nguyên lý truyền tin tin cậy
Tiến trình gửidata
Tiến trình nhậndata
kênh tin cậy
application transport
Truyền tin cậy mong muốn
Gửi bằng một giao thức tin cậy (reliable protocol) Qua một kênh truyền tin cậy (reliable channel)
Trang 71Nguyên lý truyền tin tin cậy
Tiến trình gửi
data
Tiến trình nhận
data
application
transport
Truyền tin cậy thực tế
Kênh không tin cậy
tin cậy
Có giao thức truyền tin cậy
Nhưng kênh truyền không tin cậy
Trang 72Nguyên lý truyền tin tin cậy
Xây dựng phương pháp:
• Độ phức tạp phụ thuộc vào tính chất của
bên gửi và bên nhận (mất gói, hỏng gói,…)
• Bên gửi không biết trạng thái của bên nhận
và ngược lại
Trang 73Nguyên lý truyền tin tin cậy
RDT 1.0
• Giả định: Kênh truyền hoàn hảo, không lỗi bit, không mất gói
• Cực kì đơn giản
Trang 74Wait for call from above
sndpkt = make_pkt(data, checksum) udt_send(sndpkt)
udt_send(sndpkt )
rdt_rcv(rcvpkt) &&
isNAK(rcvpkt) Wait for
ACK or NAK
Wait for call from below
rdt_send(data)
udt_send(NAK) rdt_rcv(rcvpkt) && corrupt(rcvpkt)
extract(rcvpkt,data) deliver_data(data) udt_send(ACK) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
Trang 75Nguyên lý truyền tin tin cậy
RDT 2.1 Sender
Giả thiết: Mất ACK, NAK
Khắc phục: Thêm số thứ tự (sequence number/seq#)
Trang 76Nguyên lý truyền tin tin cậy
RDT 2.1 Receiver
Giả thiết: Mất ACK, NAK
Khắc phục: Thêm số thứ tự (sequence number/seq#)
Trang 77Nguyên lý truyền tin tin cậy
RDT 2.2 Sender
Giả thiết: Mất ACK, NAK
Khắc phục: Bỏ NAK (đơn giản hơn)