1.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
Trang 1NHẬP MÔN MẠNG MÁY TÍNH
BHT Đoàn khoa MMT&TT – Training cuối kì I
Trang 2TẦNG ỨNG DỤNG (APPLICATION)
TẦ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
Độ trễ, thông lượng trong mạng
0 4
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ôngTheo 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 6Nay cúp
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ất
củ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 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ời gian (TDM): mỗi kết nối sử dụng tài
nguyên trong thời gian được phâ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ín hiệ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 14Băng thông được sử dụng tốt hơn
do không bị giới hạn trên 1 kênh riêng
Lỗ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 chung một đường truyền
Thời gian thiết lập kênh truyền quá lâ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 211.05 Các lớp giao thức
Application: hỗ trợ các ứng dụng mạng
FTP, SMTP, HTTP,…
Transport: chuyển dữ liệu từ tiến trình này đến
tiến trình kia (process-process)
TCP, UDP,…
Network: định tuyến những gói dữ liệu từ nguồn
tới đích
IP, 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 230 6
DNS
0 5
0 4
NỘI DUNG
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ên host
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 32Chỉ tối đa một đối tượng được
gửi qua kết nối TCP
HTTP/1.0
Các phương thức: GET, POST,
HEAD
Trang 33Client gởi request liên tục đến các đối tượng
Bền vững
Bền vững
có
Nhiều đối tượng có thể được gởi
qua một kết nối TCP
Các phương thức: GET, POST,
HEAD, PUT, DELETE
HTTP/
2.0
Trang 34Pipelining:
1RTT cho việc kết nối
1RTT cho tất cả đối tượng (không cần kết nối lại)
HTTP không bền vững:
2RTT cho mỗi đối tượng 1RTT cho việc kết nối 1RTT cho đối tượng
Thời gian đáp ứng HTTP:
Trang 35Set-Cookie: key = value; options;
Trình duyệt lưu cookie
Trình duyệt gửi HTTP
Request tiếp theo với
Trang 36Thỏa mãn yêu cầu của client không
cần liên quan đến server
Giảm thời gian đáp ứng yêu cầu và
giảm tải cho client
Giảm lưu lượng trên đường liên kết truy
cập ra Internet
Trang 372.03 FTP
FTP: giao thức truyền file
Truyền file đến/từ host từ xa
Trang 38Còn gọi là “mail reader”
Soạn thảo, sửa đổi, đọc các thông điệp
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 40
2.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 người dùng chỉ copy vẫn được lưu trên servermột bản lưu tạm trên ,
Tiết kiệm không gian lưu trữ trên thiết bị cục bộ.
Trang 42DNS: Domain Name System
Hệ thống phân giải tên miền
Dịch tên host
ra địa chỉ IP
Bí danh host Bí danh mail server Phân phối tải
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 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ền chí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
0 1
Multiplexing và Demultiplexing
0 2
UDP: Giao thức không kết nối
0 3
TCP điều khiển tắc nghẽn
0 6
TCP: Giao thức hướng kết nối
0 5
Nguyên lý truyền tin tin cậy
0 4
NỘI DUNG
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:
• Băng thông tối đa
• Độ trễ
Các dịch vụ tầng vận chuyển
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
sockettransport
application
physical link network
P2 P1
transport application
physical link network
P4
transport application
physical link network
P3
đú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ỉ Số port đích IP đích
Gói tin IP/UDP có cùng số port đích, nhưng khác địa
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)
đích
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 đưa vào 3 socket khác nhau
Trang 61Multiplexing và Demultiplexing
Tổng kết:
• Demultiplexing không kết nối: Cần một yếu tố là số port đích
để đưa vào đúng socket
• Demultiplexing hướng kết nối: Cần xác định cả 4 yếu tố để
đưa vào đúng socket
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.
Video Liên lạc âm
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
68
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ửi
data
Tiến trình nhận
data
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
Có giao thức truyền tin cậy
Nhưng kênh truyền không tin cậy
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 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)
Trang 78Nguyên lý truyền tin tin cậy
RDT 2.2 Receiver
Giả thiết: Mất ACK, NAK
Khắc phục: Bỏ NAK (đơn giản hơn)
Trang 79Nguyên lý truyền tin tin cậy
RDT 3.0
Giả thiết: Mất gói tin
Khắc phục: Sử dụng timer, báo timeout khi
mất gói
Trang 80Nguyên lý truyền tin tin cậy
Giả định
- Không lỗi bit
- Không mất
gói
Lỗi bit (Không mất gói)
Lỗi ACK, NAK Lỗi ACK, NAK Mất gói tin
Phiên bản 1.0 2.0 2.1 2.2 3.0
Cải tiến -ChecksumACK, NAK Sequence Number Bỏ NAK Timeout
Tóm tắt các phiên bản RDT
RDT là loại giao thức stop and wait:
• Tính tối ưu không cao
• Phụ thuộc vào cơ sở hạ tầng
Trang 81Nguyên lý truyền tin tin cậy
RDT: Một ví dụ về xác định trạng thái
Cho mô hình sender, receiver dưới đây Xác định trạng thái của
sender, receiver, số seq# và ACK# tại các thời điểm Sử dụng rdt
Trang 82Nguyên lý truyền tin tin cậy
Go Back N: Bên gửi
Cho phép gửi nhiều gói tin cùng lúc mà không cần chờ ACK:
• ACK tích lũy : Nhận được ACK có stt cao nhất là được
• Định thời gian cho gói tin được gửi
• Gửi lại tất cả từ gói bị mất