0% found this document useful (0 votes)
356 views500 pages

Mạng Máy Tính Thầy Vinh

The document provides an introduction to computer networks and the Internet. It discusses what the Internet is, including its component and protocol views as well as goals. It also describes network edges involving end systems, access networks, and physical links. The network core involves packet and circuit switching as well as network structure. Protocol layers and network performance metrics like delay, loss, and throughput are also introduced.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
356 views500 pages

Mạng Máy Tính Thầy Vinh

The document provides an introduction to computer networks and the Internet. It discusses what the Internet is, including its component and protocol views as well as goals. It also describes network edges involving end systems, access networks, and physical links. The network core involves packet and circuit switching as well as network structure. Protocol layers and network performance metrics like delay, loss, and throughput are also introduced.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 500

CHAPTER 1

INTRODUCTION ON COMPUTER NETWORK

ET4230 – 20161

TS. Trần Quang Vinh


BM. Kỹ thuật Thông tin
Viện Điện tử - Viễn thông
Đại học Bách Khoa Hà Nội
vinhtq@hust.edu.vn
http://sanslab.vn

Chapter 1: introduction

our goal: overview:


 get “feel” and  what’s the Internet?
terminology  what’s a protocol?
 more depth, detail  network edge; hosts, access net,
later in course physical media
 approach:  network core: packet/circuit
 use Internet as switching, Internet structure
example  performance: loss, delay,
throughput
 security
 protocol layers, service models
 history 2

1
Chapter 1: roadmap

1.1 what is the Internet?


1.2 network edge
 end systems, access networks, links

1.3 network core


 packet switching, circuit switching, network structure
1.4 delay, loss, throughput in networks
1.5 protocol layers, service models
1.6 networks under attack: security
1.7 history
3

ĐỊNH NGHĨA

 Mạng máy tính:


 thiết bị mạng (host, server, network devices)
 phương tiện truyền dẫn vật lý (transmission medium)
 kiến trúc mạng (network architecture)
 cấu trúc mạng (Topology)
 giao thức mạng (Protocols)

2
What’s the Internet: a component view

PC mobile network
 millions of connected
server
computing devices:
wireless global ISP
laptop  hosts = end systems
smartphone
 running network apps
home
 communication links network
regional ISP
wireless
 fiber, copper, radio,
links satellite
wired
links  transmission rate:
bandwidth

 Packetswitches: forward
packets (chunks of data)
router institutional
 routers and switches network

What’s the Internet: a protocol view

mobile network
 Internet: “network of networks”
 Interconnected ISPs global ISP

 protocols control sending,


receiving of msgs home
network
 e.g., TCP, IP, HTTP, Skype, regional ISP
802.11
 Internet standards
 RFC: Request for comments
 IETF: Internet Engineering Task
Force
institutional
network

3
What’s the Internet: a service view

 Infrastructure that provides mobile network

services to applications:
global ISP
 Web, VoIP, email, games, e-
commerce, social nets, …
home
 provides programming network
regional ISP
interface to apps
 hooks that allow sending and
receiving app programs to
“connect” to Internet
 provides service options,
analogous to postal service
institutional
network

What’s the Internet: goal

 Chia sẻ tài nguyên dùng chung


 Nâng cao độ tin cậy
 Môi trường giao tiếp người – máy
 Giảm chi phí đầu tư phần cứng
 Bảo đảm các tiêu chuẩn thống nhất về tính bảo mật, an
toàn dữ liệu

4
Topology

 Kiểu điểm - điểm (Point to Point)

Các mạng có cấu trúc điểm - điểm (Star, Ring, Tree)

Topology

 Kiểu đa điểm hay quảng bá (Point to Multipoint,


Broadcasting)

Các mạng có cấu trúc quảng bá (Bus, Ring, and Satellite)

10

5
What’s a protocol?

human protocols: network protocols:


 “what’s the time?”  machines rather than
 “I have a question” humans

 introductions  all communication


activity in Internet
governed by protocols
… specific msgs sent protocols define format, order
… specific actions taken of msgs sent and received
when msgs received, among network entities,
or other events
and actions taken on msg
transmission, receipt
11

What’s a protocol?

a human protocol and a computer network


protocol:
Hi TCP connection
request
Hi TCP connection
response
Got the
time? Get http://www.awl.com/kurose-ross
2:00
<file>
time

Q: other human protocols?


12

6
What’s a protocol?

 Chức năng giao thức


 Encapsulation
 Fragmentation
 Connection control
 Monitoring
 Flow control
 Error control
 Synchronization
 Addressing

13

Chapter 1: roadmap

1.1 what is the Internet?


1.2 network edge
 end systems, access networks, links

1.3 network core


 packet switching, circuit switching, network structure
1.4 delay, loss, throughput in networks
1.5 protocol layers, service models
1.6 networks under attack: security
1.7 history
14

7
A closer look at network structure

 network edge: mobile network

 hosts: clients and servers global ISP


 servers often in data centers

home
 access networks, physical network
regional ISP
media: wired, wireless
communication links

 network core:
 interconnected routers
 network of networks institutional
network

15

Access networks and physical media

Q: How to connect end


systems to edge
router?
 residential access nets
 institutional access networks
(school, company)
 mobile access networks

keep in mind:
 bandwidth (bits per second) of
access network?
 shared or dedicated?

16

8
Access net: digital subscriber line (DSL)

central office telephone


network

DSL splitter
modem DSLAM

ISP
voice, data transmitted
at different frequencies over DSL access
dedicated line to central office multiplexer

 use existing telephone line to central office DSLAM


 data over DSL phone line goes to Internet
 voice over DSL phone line goes to telephone net
 < 2.5 Mbps upstream transmission rate (typically < 1 Mbps)
 < 24 Mbps downstream transmission rate (typically < 10 Mbps)
17

Access net: cable network


cable headend

cable splitter
modem

C
O
Shared cable
V V V V V V N
I I I I I I D D T
D D D D D D A A R
E E E E E E T T O
O O O O O O A A L

1 2 3 4 5 6 7 8 9

Channels

frequency division multiplexing: different channels transmitted


in different frequency bands
18

9
Access net: cable network
cable headend

cable splitter cable modem


modem CMTS termination system

data, TV transmitted at different


frequencies over shared cable ISP
distribution network

 HFC: hybrid fiber coax


 asymmetric: up to 30Mbps downstream transmission rate, 2
Mbps upstream transmission rate
 network of cable, fiber attaches homes to ISP router
 homes share access network to cable headend
 unlike DSL, which has dedicated access to central office
19

Access net: home network


wireless
devices

to/from headend or
central office
often combined
in single box

cable or DSL modem

wireless access router, firewall, NAT


point (54 Mbps)
wired Ethernet (100 Mbps)

20

10
Enterprise access networks (Ethernet)

link to
ISP (Internet)
router

Ethernet mail,
switch web servers

 typically used in companies, universities, etc


 10 Mbps, 100Mbps, 1Gbps, 10Gbps transmission rates
 today, end systems typically connect into Ethernet switch

21

Wireless access networks

 shared wireless access network connects end system to router


 via base station aka “access point”

wireless LANs: wide-area wireless access


 within building (100 ft)  provided by telco (cellular)
 802.11b/g (WiFi): 11, 54 Mbps operator, 10’s km
transmission rate  between 1 and 10 Mbps
 3G, 4G: LTE

to Internet

to Internet

22

11
Physical media

 bit: propagates between


transmitter/receiver pairs
 physical link: what lies between transmitter & receiver
 guided media:
 signals propagate in solid media: copper, fiber, coax
 unguided media:
 signals propagate freely, e.g., radio

23

Physical media: coax, fiber

twisted pair (TP)


 two insulated copper wires
 Category 5: 100 Mbps, 1 Gpbs Ethernet
 Category 6: 10Gbps

coaxial cable:
 two concentric copper conductors
 bidirectional
 broadband:
 multiple channels on cable
 HFC

24

12
Physical media: coax, fiber

fiber optic cable:


 glass fiber carrying light pulses, each pulse a bit
 high-speed operation:
 high-speed point-to-point transmission (e.g., 10’s-100’s
Gpbs transmission rate)
 low error rate:
 repeaters spaced far apart
 immune to electromagnetic noise

25

Physical media: radio, viba, Infrared

 signal carried in radio link types:


electromagnetic spectrum  terrestrial microwave
 no physical “wire”  e.g. up to 45 Mbps channels
 LAN (e.g., WiFi)
 bidirectional  11Mbps, 54 Mbps
 propagation environment  wide-area (e.g., cellular)
effects:  3G cellular: ~ few Mbps
 reflection  satellite
 Kbps to 45Mbps channel (or
 obstruction by objects multiple smaller channels)
 interference  270 msec end-end delay
 geosynchronous versus low
altitude

26

13
Chapter 1: roadmap

1.1 what is the Internet?


1.2 network edge
 end systems, access networks, links

1.3 network core


 packet switching, circuit switching, network structure
1.4 delay, loss, throughput in networks
1.5 protocol layers, service models
1.6 networks under attack: security
1.7 history
27

The network core

 mesh of interconnected
routers
 packet-switching: hosts
break application-layer
messages into packets
 forward packets from one
router to the next, across
links on path from source to
destination
 each packet transmitted at
full link capacity

28

14
Packet-switching: store-and-forward

L bits
per packet

3 2 1
source destination
R bps R bps

 takes L/R seconds to transmit


one-hop numerical
(push out) L-bit packet into link
at R bps
example:
 store and forward: entire packet  L = 7.5 Mbits
must arrive at router before it  R = 1.5 Mbps
can be transmitted on next link
 one-hop transmission
 end-end delay = 2L/R (assuming delay = 5 sec
zero propagation delay) more on delay shortly …
29

Packet Switching: queueing delay, loss

R = 100 Mb/s C
A
D
R = 1.5 Mb/s
B
queue of packets E
waiting for output link

queuing and loss:


 If arrival rate (in bits) to link exceeds transmission rate of
link for a period of time:
 packets will queue, wait to be transmitted on link
 packets can be dropped (lost) if memory (buffer) fills up

30

15
Two key network-core functions

routing: determines source- forwarding: move packets


destination route taken by from router’s input to
packets appropriate router output
 routing algorithms

routing algorithm

local forwarding table


header value output link
0100 3 1
0101 2
0111 2 3 2
1001 1

dest address in arriving


packet’s header 31

Alternative core: circuit switching

end-end resources allocated to,


reserved for “call” between source
& dest:
 In diagram, each link has four
circuits.
 call gets 2nd circuit in top link
and 1st circuit in right link.
 dedicated resources: no sharing
 circuit-like (guaranteed)
performance
 circuit segment idle if not used by
call (no sharing)
 Commonly used in traditional
telephone networks
32

16
Circuit switching: FDM versus TDM
Example:
FDM
4 users

frequency

time
TDM

frequency

time
33

Packet switching versus circuit switching

packet switching allows more users to use network!


example:
 1 Mb/s link
 each user: N
• 100 kb/s when “active” users
• active 10% of time 1 Mbps link

 circuit-switching:
 10 users
Q: how did we get value 0.0004?
 packet switching:
 with 35 users, probability > Q: what happens if > 35 users ?
10 active at same time is
less than .0004 *
34

17
Packet switching versus circuit switching
is packet switching a “slam dunk winner?”
 great for bursty data
 resource sharing
 simpler, no call setup
 excessive congestion possible: packet delay and loss
 protocols needed for reliable data transfer, congestion control
 Q: How to provide circuit-like behavior?
 bandwidth guarantees needed for audio/video apps
 still an unsolved problem

Q: human analogies of reserved resources (circuit switching)


versus on-demand allocation (packet-switching)?
35

Phân loại mạng máy tính

 Theo khoảng cách


 Mạng cục bộ LAN (Local Area Networks)

Cấu trúc mạng hình BUS


36

18
Phân loại mạng máy tính

 Theo khoảng cách


 Mạng cục bộ LAN (Local Area Networks)

Cấu trúc mạng hình RING

37

Phân loại mạng máy tính

 Theo khoảng cách


 Mạng cục bộ LAN (Local Area Networks)

Cấu trúc mạng hình sao

38

19
Phân loại mạng máy tính

 Theo khoảng cách


 Mạng đô thị MAN (Metropolitan Area Networks)

39

Phân loại mạng máy tính

 Theo khoảng cách


 Mạng diện rộng WAN (Wide Area Networks)

40

20
Phân loại mạng máy tính

 Phân loại theo cơ chế chuyển mạch


 Mạng chuyển mạch kênh (Circuit Switched Networks)

41

Phân loại mạng máy tính

 Phân loại theo cơ chế chuyển mạch


 Mạng chuyển mạch thông báo (message-switched
network)

42

21
Phân loại mạng máy tính

 Phân loại theo cơ chế chuyển mạch


 Mạng chuyển mạch gói (Packet Switched Networks)

43

Phân loại mạng máy tính

 Phân loại theo cơ chế chuyển mạch


 Mạng chuyển mạch gói (Packet Switched Networks)
A t1
s

t 2 “Store-and-Forward” at each Router


R1
s

t1 t3
min(d e 2 e )  i 1 (t pi  t si )
p
n
R2
s

t2
p
t4
R3
s

t3
B
p

t p4

A
ts1
tq1

ts2
R1
d e 2 e  i 1 (t pi  t si  t qi )
tp1
tq2
ts3 n
R2
tp2 ts4
R3

B
tp3
Trong điều kiện tải cao, các gói đi vào
tp4 nút mạng phải đợi trong hàng đợi
trước khi được gửi ra đầu ra 44

22
Phân loại mạng máy tính

 Phân loại theo cơ chế chuyển mạch


 So sánh các cơ chế chuyển mạch (bài tập)

45

Phân loại mạng máy tính

 Phân loại theo mô hình xử lý dữ liệu


 Mô hình Client-Server

Mô hình chủ /khách (Client / Server)

46

23
Phân loại mạng máy tính

 Phân loại theo mô hình xử lý dữ liệu


 Mô hình Client-Server

47

Phân loại mạng máy tính

 Phân loại theo mô hình xử lý dữ liệu


 Mô hình Client-Server

Mô hình Client-Server nhiều lớp


48

24
Phân loại mạng máy tính

 Phân loại theo mô hình xử lý dữ liệu


 Mô hình ngang hàng (Peer-to-Peer)

49

Kích cỡ mạng

WAN
3GPP 3G, LTE
IEEE 802.20
ATM

MAN ETSI HIPERMAN


IEEE 802.4,6,16 & HIPER ACCESS

IEEE LAN ETSI


802.3,5,11 HIPERLAN

PAN (<10m)
(IEEE802.15,
ETSI HIPER PAN)

50

25
Một số mạng điển hình

WAN
3GPP 3G, LTE
IEEE 802.20
ATM

MAN ETSI HIPERMAN


IEEE 802.4,6,16 & HIPER ACCESS

IEEE LAN ETSI


802.3,5,11 HIPERLAN

PAN (<10m)
(IEEE802.15,
ETSI HIPER PAN)

51

Một số mạng điển hình

 IEEE 802
 IEEE 802.3: Chuẩn mạng LAN/MAN – Ethernet
 IEEE 802.4: Chuẩn mạng LAN – Token Bus, chủ yếu
được sử dụng trong công nghiệp (GM)

52

26
Một số mạng điển hình

 IEEE 802
 IEEE 802.5: chuẩn mạng LAN – Token Ring được
phát triển bởi IBM
 IEEE 802.6: chuẩn mạng MAN – DQDB (Distributed
Queue Dual Bus) với tốc độ 150Mbit/s trên khoảng
cách 160km

53

Một số mạng điển hình

 IEEE 802
 IEEE 802.11: chuẩn mạng LAN không dây
 IEEE 802.15: chuẩn mạng cá nhân không dây (Wireless Personal Area
Network - WPAN)
 IEEE 802.15.1: BlueTooth
 IEEE 802.15.3: High rate WPAN (11 – 55Mbit/s): sử dụng cho các ứng dụng
multimedia
 IEEE 802.15.4: Low rate WPAN/ZigBee: cho các ứng dụng tiêu thụ ít năng
lượng, tốc độ thấp (Wireless Sensor Network)

54

27
Một số mạng điển hình

 IEEE 802
 IEEE 802.16: Chuẩn mạng WMAN – WiMAX
 IEEE 802.16-2004: WiMAX cố định
 IEEE 802.16e-2005: WiMAX di động
 IEEE 802.20: WWAN – Mobile Broadband Wireless Access
(MBWA), tầm phủ sóng lớn hơn WiMAX (< 15km)

55

Một số mạng điển hình

 3GPP
 3G/HSPA (High Speed Packet Access)
 LTE (Long Term Evolution)
 ATM Forum
 ATM

56

28
Internet structure: network of networks

 End systems connect to Internet via access ISPs (Internet


Service Providers)
 Residential, company and university ISPs
 Access ISPs in turn must be interconnected.
 So that any two hosts can send packets to each other
 Resulting network of networks is very complex
 Evolution was driven by economics and national policies
 Let’s take a stepwise approach to describe current Internet
structure

57

Internet structure: network of networks


Question: given millions of access ISPs, how to connect
them together?
access access
net net
access
net
access
access net
net
access
access net
net

access access
net net

access
net
access
net

access
net
access
net
access access
net access net
net

58

29
Internet structure: network of networks
Option: connect each access ISP to every other access
ISP?
access access
net net
access
net
access
access net
net
access
access net
net

connecting each access ISP


access
to each other directly doesn’t access
net
scale: O(N2) connections. net

access
net
access
net

access
net
access
net
access access
net access net
net

59

Internet structure: network of networks


Option: connect each access ISP to a global transit ISP? Customer
and provider ISPs have economic agreement.
access access
net net
access
net
access
access net
net
access
access net
net

global
access
net
ISP access
net

access
net
access
net

access
net
access
net
access access
net access net
net

60

30
Internet structure: network of networks
But if one global ISP is viable business, there will be competitors
….
access access
net net
access
net
access
access net
net
access
access net
net
ISP A

access access
net ISP B net

access
ISP C
net
access
net

access
net
access
net
access access
net access net
net

61

Internet structure: network of networks


But if one global ISP is viable business, there will be competitors
…. which must be interconnected
access access
Internet exchange point
net net
access
net
access
access net
net

access
IXP access
net
net
ISP A

access IXP access


net ISP B net

access
ISP C
net
access
net

access peering link


net
access
net
access access
net access net
net

62

31
Internet structure: network of networks
… and regional networks may arise to connect access nets to
ISPS
access access
net net
access
net
access
access net
net

access
IXP access
net
net
ISP A

access IXP access


net ISP B net

access
ISP C
net
access
net

access
net regional net
access
net
access access
net access net
net

63

Internet structure: network of networks


… and content provider networks (e.g., Google, Microsoft,
Akamai ) may run their own network, to bring services, content
close to end users
access access
net net
access
net
access
access net
net

access
IXP access
net
net
ISP A
Content provider network
access IXP access
net ISP B net

access
ISP B
net
access
net

access
net regional net
access
net
access access
net access net
net

64

32
Internet structure: network of networks

Tier 1 ISP Tier 1 ISP Google

IX IX IX
P P P
Regional ISP Regional ISP

access access access access access access access access


ISP ISP ISP ISP ISP ISP ISP ISP

 at center: small # of well-connected large networks


 “tier-1” commercial ISPs (e.g., Level 3, Sprint, AT&T, NTT), national &
international coverage
 content provider network (e.g, Google): private network that connects it
65
data centers to Internet, often bypassing tier-1, regional ISPs

Tier-1 ISP: e.g., Sprint

POP: point-of-presence

to/from backbone

peering
… …

to/from customers

66

33
Một số khái niệm

 Băng thông: Số lượng bit có thể truyền đi trên một


đơn vị thời gian
 Thường được biểu diễn qua tốc độ dữ liệu tối đa (maximum
data rate)

 Trễ lan truyền (propagation delay): thời gian để tín


hiệu lan truyền trên kênh vật lý:
 tp=l/vc; vc là vận tốc lan truyền của tín hiệu
 Phụ thuộc vào môi trường truyền dẫn
 Electromagnetic signal (light) travels in the medium -- 2 x 108
m/s in fiber.
 l: Chiều dài của đường truyền vật lý giữa 2 nút mạng (m)

67

Một số khái niệm

 Thời gian phục vụ gói (transmission time): thời gian


gửi hết một gói tin từ bit đầu tiên đến bit cuối cùng lên
kênh truyền
 ts=L/C
 Dung lượng kênh truyền C (bit/s) (link capacity)
 A function of bandwidth
 If bandwidth is B, transmission time is 1/B.
 If bandwidth is 10 Mbps, the transmission time is 1/(10 x 106)
= 1 ms.
 Trễ hàng đợi tq (Queuing delay): thời gian một gói
phải lưu lại trong hàng đợi ở nút mạng trung gian
 How long does it have to wait ?
 Dependent on the load on the network -- how many packets are
traversing that router

68

34
Một số khái niệm

 Trễ từ đầu cuối đến đầu cuối (end-to-end delay de2e:


trễ từ khi gửi một gói tin ở đầu phát cho đến khi nó
được nhận ở đầu thu

 Round Trip Time


 RTT is the length of time it takes for a small packet to be sent
plus the length of time it takes for an acknowledgment of that
packet to be received (excluding the transmission time of the
packet)
 if forward delay = backward delay, RTT = 2 * Latency
(typically assumed -- although not always accurate)

69

Một số khái niệm

 Thông lượng (Throughput):


 Định nghĩa hiệu quả sử dụng kênh truyền
 Throughput = Transfer size/ Transfer time.
 What is the transfer time ?
 RTT + (Transfer size/Bandwidth)
 (ignoring queuing delays).
 Ví dụ:
 1 MB file over a 1 Gbps network with RTT 100 milliseconds.
 Transfer time = 100 ms + (1 MB/1Gbps) = 100 ms + 8 ms = 108 ms.
 Effective throughput = 1 MB/108 ms = 74.1 Mbps.
 Nhận xét: Impact of data size
 If data size increases, (Transfer size/Bandwidth) increases become much
larger than RTT, in that case, Throughput ~ (Transfer size /(Transfer
size/Bandwidth) ~ Bandwidth!

70

35
Host: sends packets of data
host sending function:
 takes application message
two packets,
 breaks into smaller chunks,
L bits each
known as packets, of length
L bits
 transmits packet into access
2 1
network at transmission rate
R R: link transmission rate
host
 link transmission rate,
aka link capacity, aka
link bandwidth

packet time needed to L (bits)


transmission = transmit L-bit =
delay packet into link R (bits/sec)
71

How do loss and delay occur?

packets queue in router buffers


 packet arrival rate to link (temporarily) exceeds output link
capacity
 packets queue, wait for turn
packet being transmitted (delay)

B
packets queueing (delay)
free (available) buffers: arriving packets
dropped (loss) if no free buffers
72

36
Four sources of packet delay

transmission
A propagation

B
nodal
processing queueing

dnodal = dproc + dqueue + dtrans + dprop

dproc: nodal processing dqueue: queueing delay


 time waiting at output link for
 check bit errors transmission
 determine output link  depends on congestion level of
router
 typically < msec
73

Four sources of packet delay


transmission
A propagation

B
nodal
processing queueing

dnodal = dproc + dqueue + dtrans + dprop

dtrans: transmission delay: dprop: propagation delay:


 L: packet length (bits)  d: length of physical link
 R: link bandwidth (bps)  s: propagation speed in medium
 dtrans = L/R (~2x108 m/sec)
dtrans and dprop  dprop = d/s
very different
74

37
Caravan analogy

100 km 100 km
ten-car toll toll
caravan booth booth

 cars “propagate” at  time to “push” entire


100 km/hr caravan through toll booth
 toll booth takes 12 sec to service onto highway = 12*10 =
car (bit transmission time) 120 sec
 car~bit; caravan ~ packet  time for last car to
propagate from 1st to 2nd
 Q: How long until caravan is toll both:
lined up before 2nd toll booth? 100km/(100km/hr)= 1 hr
 A: 62 minutes

75

Caravan analogy (more)

100 km 100 km
ten-car toll toll
caravan booth booth

 suppose cars now “propagate” at 1000 km/hr


 and suppose toll booth now takes one min to service a
car
 Q: Will cars arrive to 2nd booth before all cars serviced at
first booth?

 A: Yes! after 7 min, 1st car arrives at second booth; three cars
still at 1st booth.

76

38
Queueing delay (revisited)

 R: link bandwidth (bps)


 L: packet length (bits)
 a: average packet
arrival rate traffic intensity
= La/R

La/R ~ 0
 La/R ~ 0: avg. queueing delay small
 La/R -> 1: avg. queueing delay large
 La/R > 1: more “work” arriving
than can be serviced, average delay infinite!

La/R -> 1
77

“Real” Internet delays and routes

 what do “real” Internet delay & loss look like?


 traceroute program: provides delay measurement
from source to router along end-end Internet path
towards destination. For all i:
 sends three packets that will reach router i on path towards
destination
 router i will return packets to sender
 sender times interval between transmission and reply.

3 probes 3 probes

3 probes

78

39
“Real” Internet delays, routes
traceroute: gaia.cs.umass.edu to www.eurecom.fr
3 delay measurements from
gaia.cs.umass.edu to cs-gw.cs.umass.edu
1 cs-gw (128.119.240.254) 1 ms 1 ms 2 ms
2 border1-rt-fa5-1-0.gw.umass.edu (128.119.3.145) 1 ms 1 ms 2 ms
3 cht-vbns.gw.umass.edu (128.119.3.130) 6 ms 5 ms 5 ms
4 jn1-at1-0-0-19.wor.vbns.net (204.147.132.129) 16 ms 11 ms 13 ms
5 jn1-so7-0-0-0.wae.vbns.net (204.147.136.136) 21 ms 18 ms 18 ms
6 abilene-vbns.abilene.ucaid.edu (198.32.11.9) 22 ms 18 ms 22 ms
7 nycm-wash.abilene.ucaid.edu (198.32.8.46) 22 ms 22 ms 22 ms trans-oceanic
8 62.40.103.253 (62.40.103.253) 104 ms 109 ms 106 ms
9 de2-1.de1.de.geant.net (62.40.96.129) 109 ms 102 ms 104 ms link
10 de.fr1.fr.geant.net (62.40.96.50) 113 ms 121 ms 114 ms
11 renater-gw.fr1.fr.geant.net (62.40.103.54) 112 ms 114 ms 112 ms
12 nio-n2.cssi.renater.fr (193.51.206.13) 111 ms 114 ms 116 ms
13 nice.cssi.renater.fr (195.220.98.102) 123 ms 125 ms 124 ms
14 r3t2-nice.cssi.renater.fr (195.220.98.110) 126 ms 126 ms 124 ms
15 eurecom-valbonne.r3t2.ft.net (193.48.50.54) 135 ms 128 ms 133 ms
16 194.214.211.25 (194.214.211.25) 126 ms 128 ms 126 ms
17 * * *
18 * * * * means no response (probe lost, router not replying)
19 fantasia.eurecom.fr (193.55.113.142) 132 ms 128 ms 136 ms

79

Packet loss

 queue (aka buffer) preceding link in buffer has finite


capacity
 packet arriving to full queue dropped (aka lost)
 lost packet may be retransmitted by previous node, by
source end system, or not at all

buffer
(waiting area) packet being transmitted
A

B
packet arriving to
full buffer is lost

80

40
Throughput

 throughput: rate (bits/time unit) at which bits


transferred between sender/receiver
 instantaneous: rate at given point in time
 average: rate over longer period of time

server,
server withbits
sends linkpipe
capacity
that can carry linkpipe
capacity
that can carry
file of into
(fluid) F bitspipe Rs bits/sec
fluid at rate Rc bits/sec
fluid at rate
to send to client Rs bits/sec) Rc bits/sec)

81

Throughput (more)

 Rs < Rc What is average end-end throughput?

Rs bits/sec Rc bits/sec

 Rs > Rc What is average end-end throughput?

Rs bits/sec Rc bits/sec

bottleneck link
link on end-end path that constrains end-end throughput

82

41
Throughput: Internet scenario

 per-connection
Rs
end-end Rs Rs
throughput:
min(Rc,Rs,R/10) R

 in practice: Rc or Rc Rc
Rs is often
Rc
bottleneck

10 connections (fairly) share


backbone bottleneck link R bits/sec
83

Bài tập
 Compare the delay in sending an x -bit message over a k -hop path
in a circuit-switched network and in a (lightly loaded) packet-
switched network. The circuit setup time is s sec, the propagation
delay is d sec per hop, the packet size is p bits, and the data rate is
b bps. Under what conditions does the packet network have a lower
delay?
 Suppose that x bits of user data are to be transmitted over a k-hop
path in a packet-switched network as a series of packets, each
containing p data bits and h header bits, with x >> (p + h). The bit
rate of the lines is b bps and the propagation delay is negligible.
What value of p minimizes the total delay?
 A LMDS (Local Multipoint Distribution Service), each sector has its
own 36-Mbps channel. According to queuing theory, if the channel is
50% loaded, the queuing time will be equal to the download time.
Under these conditions, how long does it take to download a 5-KB
Web page? How long does it take to download the page over a 1-
Mbps ADSL line? Over a 56-kbps modem?

84

42
Internet history
 Bắt đầu từ một thí nghiệm của dự án của
ARPA
 Một liên kết giữa hai nút mạng (IMP tại
UCLA và IMP tại SRI).
 ARPA: Advanced Research Project Agency
 UCLA: University California Los Angeles
 SRI: Stanford Research Institute
 IMP: Interface Message Processor

85

Internet history
 3 tháng sau: một mạng hoàn chỉnh với 4 nút, 56kbps

SRI UTAH

UCSB
UCLA

86

43
Internet history
 ARPANET thời kỳ đầu, 1971: tốc độ phát triển 1 nút/tháng

87

Internet history
 Sự mở rộng của ARPANET, 1974: vượt quá 3.000.000 gói tin/ngày

88

44
Internet history
 Thập niên 1970:
 Từ đầu 1970 xuất hiện các mạng riêng:
ALOHAnet tại Hawaii
DECnet, IBM SNA, XNA
 1974: Cerf & Kahn – nguyên lý kết nối các hệ thống
mở (Turing Awards)
 1976: Ethernet, Xerox PARC

89

Internet history
 1981: Xây dựng mạng NSFNET
 NSF: National Science Foundation: Phục vụ cho nghiên cứu khoa học, do
sự quá tải của ARPANET

90

45
Internet history
 1986: Nối kết USENET& NSFNET

91

Internet history
 Thêm nhiều mạng mới nối vào: MFENET, HEPNET (Dept. Energy),
SPAN (NASA), BITnet, CSnet, NSFnet, Minitel …
 TCP/IP được chuẩn hóa và phổ biến vào 1980
 Berkeley tích hợp TCP/IP vào BSD Unix
 Dịch vụ: FTP, Mail, DNS …
Cuối 1990’s – 2000’s:
 Thập niên 90: Web và  Nhiều ứng dụng mới: chat, chia
thương mại hóa Internet sẻ file P2P…
 Đầu 90: ARPAnet chỉ là một  E-commerce, Yahoo, Amazon,
phần của Internet Google…
 Đầu 90: Web  > 50 triệu máy trạm, > 100 triệu
 HTML, HTTP: Berners- NSD
Lee  Vấn đề an toàn an ninh thông
 1994: Mosaic, Netscape tin!
 Internet dành cho tất cả mọi
 Cuối 90: Thương mại hóa
người
Internet
 Tất cả các dịch vụ phải quan
tâm tới vấn đề này 92

46
Internet history
2005-present
 ~750 million hosts
 Smartphones and tablets
 Aggressive deployment of broadband access
 Increasing ubiquity of high-speed wireless access
 Emergence of online social networks:
 Facebook: soon one billion users
 Service providers (Google, Microsoft) create their own networks
 Bypass Internet, providing “instantaneous” access to
search, emai, etc.
 E-commerce, universities, enterprises running their services in
“cloud” (eg, Amazon EC2)

93

Internet history
 Phát triển Internet ở Việt Nam

https://vi.wikipedia.org/wiki/Internet_tại_Việt_Nam

94

47
Internet history
 Thị phần thuê bao dịch vụ truy cập Internet của các doanh nghiệp
(tính đến tháng 12/2010)

95

Introduction: summary

covered a “ton” of you now have:


material!  context, overview, “feel” of
 Internet overview networking
 what’s a protocol?  more depth, detail to follow!
 network edge, core, access
network
 packet-switching versus
circuit-switching
 Internet structure
 performance: loss, delay,
throughput
 layering, service models
 security
 history
96

48
Chương 2. Mạng cục bộ
(Local Area Network - LAN)
Ethernet Frame Format
(IEEE 802.3)

Cấu trúc một frame chuẩn IEEE 802.3

5-2
Nội dung
Giới thiệu chung
Kỹ thuật hỏi vòng (polling)
Kỹ thuật dành sẵn kênh truyền với
phương pháp điều khiển truy nhập
phân tán (channel reservation with
distributed control)
Truy nhập ngẫu nhiên (random
access)
Medium Access Control (MAC)

Giới thiệu
Internetwork

Hỏi vòng

Logical Link
Truy nhập LLC (IEEE 802.2)
phân tán Control
Network Access

Truy nhập Medium

IEEE 802.15
IEEE 802.16
IEEE 802.20
IEEE 802.11
ngẫu nhiên 3GPP
IEEE 802.3
IEEE 802.4
IEEE 802.5
IEEE 802.6
Access 3GPP
Control 3G,
LTE
HSPA
Bài tập

PHY

4
Nhiệm vụ của lớp MAC
Giới thiệu
 Một trong những vấn đề cơ bản của lớp 2
là phân lớp MAC (Medium Access Control)
Hỏi vòng
– phân lớp điều khiển truy nhập
 Nhiệm vụ
Truy nhập Quy định việc đánh địa chỉ MAC cho các thiết
phân tán
bị mạng
Truy nhập
ngẫu nhiên
Đưa ra cơ chế chia sẻ môi trường vật lý kết nối
nhiều máy tính
Bài tập Phỏng tạo kênh truyền song công (duplex
channel), đa điểm (multipoint)

5
Nhiệm vụ của lớp MAC (tiếp…)
 Một số vấn đề cơ bản
Giới thiệu
tại lớp MAC:
 Hiệu suất: Chia sẻ tài
Hỏi vòng nguyên kênh truyền
với hiệu suất cao nhất
 với một kênh truyền
Truy nhập
phân tán với dung lượng C, phải Medium
truyền với thông lượng
Truy nhập TC
ngẫu nhiên  Tính công bằng: Chia
sẻ tài nguyên (băng
Bài tập thông, tài nguyên vô
tuyến …) một cách
công bằng giữa các
thiết bị truy cập

6
Các phương pháp điều khiển
truy nhập
Giới thiệu 2 phương pháp chia sẻ tài nguyên
kênh truyền:
Hỏi vòng
Ghép kênh (multiplexing)
Truy nhập Đa truy nhập (multiple access)
phân tán

Truy nhập
ngẫu nhiên

Bài tập

7
Ghép kênh
 Ghép kênh:
Giới thiệu  Tần số
W
 Thời gian
Hỏi vòng
 Mã
1 2 … n
 Ưu điểm: không xảy f

Truy nhập
ra tranh chấp tài
phân tán nguyên tf
 Nhược điểm:
Truy nhập 1 2 … n
ngẫu nhiên  Phải thiết lập kênh t
truyền trước khi gửi dữ
ts
liệu  không thích hợp
Bài tập cho truyền số liệu
 Hiệu suất kênh truyền
thấp

8
Ghép kênh
  Ghép kênh phù hợp End-user Network device
Giới thiệu
cho phương pháp
hướng liên kết
Hỏi vòng (connection-oriented) Thiết lập kết nối
 Hướng liên kết: quá
Truy nhập trình trao đổi thông tin
phân tán có 3 giai đoạn: Dữ liệu
◊ Thiết lập kết nối
Truy nhập (connection setup)
ngẫu nhiên ◊ Trao đổi dữ liệu Hủy bỏ kết nối
◊ Hủy bỏ kết nối
Bài tập (connection tear-down)
 Ví dụ: ATM, WiMAX
t t

9
Channel partitioning MAC protocols: TDMA

TDMA: time division multiple access


Giới thiệu  access to channel in "rounds"
 each station gets fixed length slot (length = pkt
trans time) in each round
Hỏi vòng
 unused slots go idle
 example: 6-station LAN, 1,3,4 have pkt, slots
Truy nhập
phân tán
2,5,6 idle

Truy nhập
ngẫu nhiên

6-slot 6-slot
Bài tập frame frame
1 3 4 1 3 4

10
Channel partitioning MAC protocols: FDMA

FDMA: frequency division multiple access


Giới thiệu  channel spectrum divided into frequency bands
 each station assigned fixed frequency band
Hỏi vòng
 unused transmission time in frequency bands go idle
 example: 6-station LAN, 1,3,4 have pkt, frequency bands
Truy nhập
2,5,6 idle
phân tán

frequency bands
Truy nhập
ngẫu nhiên

Bài tập
FDM cable

11
Channel partitioning MAC protocols: CDMA

CDMA (Code Division Multiple Access)


Giới thiệu  Unique “code” assigned to each user
 Used mostly in wireless broadcast channels (cellular,
satellite, etc)
Hỏi vòng
 All users share same frequency, but each user has own
“chipping sequence” (i.e., code) to encode data
Truy nhập
phân tán  Allows multiple users to “coexist” and transmit
simultaneously with minimal interference (if codes are
Truy nhập “orthogonal”)
ngẫu nhiên

Bài tập

12
CDMA Encode/Decode

Giới thiệu

Hỏi vòng

Truy nhập
phân tán

Truy nhập
ngẫu nhiên

Bài tập

13
CDMA Two-Sender Interference

Giới thiệu

Hỏi vòng

Truy nhập
phân tán

Truy nhập
ngẫu nhiên

Bài tập

14
Đa truy nhập
 Đa truy nhập:
Giới thiệu
 Nhiều người sử dụng W
sử dụng chung một
Hỏi vòng băng tần
f
 Nhiều người sử dụng
có thể truy nhập kênh
Truy nhập u1 u2
phân tán truyền tại cũng một
thời điểm
Truy nhập
ngẫu nhiên
 Ưu điểm: tf
 Không phải thiết lập
kênh truyền trước khi …
Bài tập t
gửi dữ liệu
 Nhược điểm: u1 u2
 Tranh chấp tài nguyên

15
Đa truy nhập

Giới thiệu
  Đa truy nhập phù hợp cho cơ chế
truyền không liên kết (connectionless)
Hỏi vòng
Không liên kết: thiết bị mạng khi có nhu cầu có
thể gửi trực tiếp dữ liệu lên mạng (không cần
Truy nhập
phải thiết lập và hủy bỏ kết nối)
phân tán Khái niệm xung đột (collision): Xung đột xảy ra
Truy nhập
khi 2 hay nhiều thiết bị mạng cùng truy nhập
ngẫu nhiên kênh truyền tại cùng một thời điểm

Bài tập

16
Phân loại các phương pháp
điều khiển truy nhập
MAC
Giới thiệu
Không liên kết Hướng liên kết
(connectionless) (connection-oriented)
Hỏi vòng
Roll Call
Hỏi vòng ATM WiMAX
Tập trung
Truy nhập (Polling) Hub
phân tán
Dành sẵn kênh truyền với
Truy nhập phương pháp điều khiển truy Token Ring
ngẫu nhiên nhập phân tán (channel
reservation with Token Bus
Phân tán
Bài tập distributed control)

Truy nhập ngẫu nhiên Ethernet


(random access) WiFi

17
Phương pháp điều khiển truy
nhập tập trung
Giới thiệu
 Kỹ thuật hỏi vòng (polling):
 Roll Call Polling
Hỏi vòng  Hub Polling

Truy nhập
phân tán

Truy nhập
ngẫu nhiên
C

Bài tập

18
Phương pháp điều khiển truy
nhập tập trung
Giới thiệu
 Nguyên lý chung:
 Việc điều khiển truy nhập kênh thông qua một trạm
trung tâm
Hỏi vòng  Trung tâm C gửi lần lượt lệnh “poll command” cho từng
trạm con. Trạm nào nhận được “poll command” sẽ được
Truy nhập phép truyền dữ liệu
phân tán  Việc trao đổi dữ liệu phải được thực hiện thông qua
trung tâm C (trạm A  trung tâm  trạm B)
Truy nhập
ngẫu nhiên

Bài tập C

19
Giới thiệu

data
Hỏi vòng poll

Truy nhập master


phân tán data

Truy nhập
ngẫu nhiên

Bài tập slaves


Roll Call Polling
C i i+1
tp
Giới thiệu  Ts: Thời gian phục
vụ gói
.  Nm: Số gói trong bộ
Hỏi vòng . NmxTs đệm đầu ra tại thời
.
điểm phục vụ
Truy nhập  w: Thời gian đợi từ
phân tán Tc khi trạm i được
. w phục vụ xong cho
Truy nhập . đến khi trạm (i+1)
ngẫu nhiên . được phục vụ
.  Tc: Chu kỳ gửi lệnh
Bài tập
. poll hết một vòng
 tp: trễ lan truyền
tín hiệu trên kênh
t t t truyền

21
Hub Polling
C i i+1

Giới thiệu

.
Hỏi vòng . NmxTs
.

Truy nhập
phân tán

Truy nhập .
ngẫu nhiên .
.

Bài tập

t t t

22
Phương pháp điều khiển truy
nhập phân tán
Giới thiệu Không có trạm trung tâm điều phối
việc truy nhập kênh
Hỏi vòng
Các trạm trên mạng cùng tham gia
Truy nhập
phân tán
vào quá trình điều khiển truy nhập
Truy nhập Điển hình của phương pháp điều
ngẫu nhiên
khiển phân tán là các mạng:
Bài tập Token Ring
Token Bus

23
Token Ring
Giới thiệu
 Được phát triển
bởi IBM vào năm
Hỏi vòng 1985
 Token Ring về sau
Truy nhập
phân tán được chuẩn hóa
Truy nhập bởi IEEE theo
ngẫu nhiên
IEEE 802.5
Bài tập  Cấu hình kênh:
hình vòng (Ring)

24
T

Giới thiệu

(nothing
Hỏi vòng to send)

T
Truy nhập
phân tán

Truy nhập
ngẫu nhiên

Bài tập

data
Token Ring – Nguyên lý
 Các gói tin được truyền theo một chiều nhất định
Giới thiệu trên kênh truyền
 Khi một trạm nhận được header của gói tin, nó
Hỏi vòng kiểm tra địa chỉ MAC đích, nếu gói tin không gửi
cho nó thì trạm sẽ tự động gửi gói đến trạm tiếp
Truy nhập
theo mà không cần đợi đến khi nhận được toàn
phân tán bộ gói tin đó
 Nhược điểm:
Truy nhập
ngẫu nhiên
 Nếu card mạng một trạm bị hỏng thì toàn bộ mạng
không hoạt động
 Trễ toàn mạng tỷ lệ thuận với số trạm trong mạng
Bài tập
 2 phương pháp truy nhập kênh: Thẻ bài
 Thẻ bài đơn (single token)
 Đa thẻ bài (multiple tokens)

26
Phương pháp thẻ bài đơn
Giới thiệu
 Giả thiết A cần gửi
dữ liệu đến C B

Hỏi vòng  t0: một thẻ bài


đang lưu thông từ
Truy nhập C
phân tán D  A: A giữ thẻ A

Truy nhập bài và bắt đầu


ngẫu nhiên
phát gói dữ liệu token
Bài tập
D

27
Phương pháp thẻ bài đơn
(tiếp…)
Giới thiệu
 t1: B nhận được
gói dữ liệu từ A, B

Hỏi vòng sau khi phân tích


địa chỉ MAC đích data

Truy nhập
phân tán (C), B gửi tiếp gói A C

Truy nhập
dữ liệu lên kênh
ngẫu nhiên truyền
Bài tập
D

28
Phương pháp thẻ bài đơn
(tiếp…)
Giới thiệu
 t2: C tiếp nhận
được gói dữ liệu A B

Hỏi vòng gửi cho nó, sau khi


copy gói dữ liệu C
A
Truy nhập
phân tán vào bộ đệm thu, C
Truy nhập
gửi gói này theo
ngẫu nhiên hướng C  D với data

Bài tập
trường FC=1 D
(Frame Copied)

29
Phương pháp thẻ bài đơn
(tiếp…)
Giới thiệu
 t3: A nhận được
gói dữ liệu với B

Hỏi vòng FC=1, nó hiểu C


đã nhận được gói token
Truy nhập
phân tán dữ liệu. A trả lại A C

Truy nhập
thẻ bài lên mạng
ngẫu nhiên

Bài tập
D

30
Phương pháp thẻ bài đơn
(tiếp…)
Giới thiệu
 Nhược điểm của
phương pháp thẻ
Hỏi vòng bài đơn:
Tại một thời điểm ring
Truy nhập
phân tán
có tối đa một gói
dữ liệu trên kênh
data
Truy nhập
ngẫu nhiên
 Hiệu suất của
kênh truyền thấp,
Bài tập đặc biệt trong
trường hợp kích
thước gói ngắn

31
Phương pháp đa thẻ bài
Giới thiệu
 Mục đích: nâng
hiệu suất kênh B

Hỏi vòng truyền


 t0: một thẻ bài
Truy nhập C
phân tán đang lưu thông từ A

Truy nhập D  A: A giữ thẻ


ngẫu nhiên
bài và bắt đầu token
Bài tập phát gói dữ liệu D

32
Phương pháp đa thẻ bài
(tiếp…)
Giới thiệu
 t1 :
B nhận được gói B

Hỏi vòng dữ liệu từ A, sau


khi phân tích địa data

Truy nhập chỉ MAC đích (C), B Atoken C


phân tán
gửi tiếp gói dữ liệu
Truy nhập lên kênh truyền
ngẫu nhiên
Sau khi gửi hết gói
Bài tập dữ liệu, A lập tức
D
giải phóng thẻ bài

33
Phương pháp đa thẻ bài
(tiếp…)
Giới thiệu
 Ưu điểm của đa
thẻ bài so với đơn
Hỏi vòng thẻ bài:
Trong cùng một ring
Truy nhập
phân tán
thời điểm có thể
có nhiều gói dữ
data
Truy nhập
ngẫu nhiên
liệu  hiệu suất
kênh truyền có
token
Bài tập thể đạt tới 100%

34
Cấu trúc khung của IEEE
802.5 (Token Ring)
SD AC FC Gói token
Giới thiệu

Dest. Src. Gói dữ


SD AC FC Data Checksum ED FS
Addr. Addr. liệu
Hỏi vòng

Truy nhập  SD, ED: bắt đầu, kết thúc một gói tin
phân tán
 AC (access control byte): bao gồm token bit
Truy nhập
ngẫu nhiên  FC: Frame Copied
 Dest./Src. Addr: 48 bit địa chỉ MAC
Bài tập
 Checksum: CRC
 FS (frame status)

35
Truy nhập ngẫu nhiên
Giới thiệu
 Truy nhập ngẫu nhiên: Random Access
 Đặc điểm chung:
Hỏi vòng Không có các cơ chế điều khiển truy nhập
kênh (khác với cơ chế hỏi vòng và điều khiển
Truy nhập truy nhập phân tán – token ring/bus)
phân tán
Ưu điểm: do không cần phối hợp giữa các trạm
Truy nhập  các trạm có thể được lắp đặt hoặc tháo ra
ngẫu nhiên khỏi mạng dễ dàng
Nhược điểm: tại một thời điểm, nếu có hơn 2
Bài tập
trạm cùng tranh chấp kênh truyền  va đập
(collision)

36
Các mạng sử dụng kỹ thuật
truy nhập ngẫu nhiên
Giới thiệu
Truy nhập ngẫu nhiên

Hỏi vòng ALOHA


1-persistentCSMA
Truy nhập
phân tán Slotted ALOHA
p-persistentCSMA
Truy nhập
ngẫu nhiên CSMA
none-persistentCSMA
Bài tập

CSMA/CD CSMA/CA
(IEEE 802.3) (IEEE 802.11)

37
ALOHA
Giới thiệu Giới thiệu
Được phát triển bởi ĐH Hawaii năm
Hỏi vòng
1971
Truy nhập Mạng truyền số liệu không dây đầu tiên
phân tán
Sử dụng tần số UHF
Truy nhập
ngẫu nhiên Là mạng đầu tiên sử dụng truy nhập
Bài tập
ngẫu nhiên (sau này được sử dụng
nhiều trong Ethernet và mạng thông tin
vệ tinh INMARSAT)

38
ALOHA (tiếp…)
Yêu cầu kết nối và truyền dữ liệu giữa Oahu và
Giới thiệu
các đảo khác
Hỏi vòng

Truy nhập Oahu (Univ. of Hawaii)


phân tán

Truy nhập
ngẫu nhiên

Bài tập

39
ALOHA – Nguyên tắc hoạt
động
 Khi một trạm có dữ liệu, nó gửi ngay lên đường truyền vô
Giới thiệu tuyến
 Va đập sẽ xảy ra khi có hơn một trạm cùng truy nhập kênh
 mất gói
Hỏi vòng  Không có cơ chế kiểm tra trạng thái kênh truyền
 Không có cơ chế phát hiện mất gói do va đập  việc phát
Truy nhập
lại phụ thuộc vào các giao thức bậc cao (lớp host-to-host)
phân tán  “send-and-pray”

Truy nhập
ngẫu nhiên

Bài tập
ALOHA

40
ALOHA – Đánh giá hiệu năng
 Giả thiết:
 Có n trạm gửi dữ liệu vào mạng với lưu lượng tuân
Giới thiệu theo tiến trình Poisson, tham số tương ứng {1, 2 ,…,
n}. Như vậy lưu lượng tổng cộng gửi vào mạng tuân
theo tiến trình Poisson, tham số:
  i 1 i
Hỏi vòng n

Truy nhập  Kênh truyền có dung lượng là C (bit/s)


phân tán  Các gói tin có kích thước cố định L  thời gian phục
vụ gói: ts=L/C
Truy nhập
ngẫu nhiên


Bài tập
ALOHA



41
ALOHA – Đánh giá hiệu năng

Giới thiệu
 Giả thiết:
 Tại t0, gói pi của trạm i truy nhập kênh.
Hỏi vòng Gọi Tx là khoảng “thời gian nhạy cảm”, nếu
trong khoảng thời gian này các trạm khác truy
Truy nhập
phân tán
nhập kênh thì va đập sẽ xảy ra
pi
Truy nhập
ngẫu nhiên Trạm i
t0 t0+ts
Tx
Bài tập
t0-ts
Trạm j
t0+ts

42
ALOHA – Đánh giá hiệu năng

Giới thiệu Như vậy:


Tx  2t s (8.23)
Hỏi vòng
Gọi G là số lần truy nhập kênh trung
Truy nhập
phân tán bình trong một đơn vị thời gian ts – G
Truy nhập chính là tải đầu vào
ngẫu nhiên
G  t s    (8.24)
Bài tập

43
ALOHA – Đánh giá hiệu năng

Giới thiệu Gọi S là số lần truy nhập thành công


trung bình trong khoảng thời gian ts
Hỏi vòng
– S chính là thông lượng của ALOHA
Truy nhập  S=G.P[không có truy nhập nào trong
phân tán
khoảng Tx]  theo phân bố Poisson có:
Truy nhập
ngẫu nhiên

S  G.PN (t x  2t s )  0  G.
t x 0 t
e x
 Ge  2t s  Ge  2G
Bài tập 0! (8.25)
 Xác suất không có truy nhập nào trong
khoảng Tx : P0=e-2G
44
ALOHA – Đánh giá hiệu năng

Giới thiệu Như vậy:


2G (8.26)
Hỏi vòng
S  Ge
Khảo sát cực trị của S:
Truy nhập
phân tán dS 2G  2G
 e  2Ge (8.27)
Truy nhập
ngẫu nhiên
dG
Bài tập
Từ (8.27), khi G có giá trị 0,5 thì S
đạt giá trị cực đại:
S max  0,5 e  0,184 (8.28)
45
ALOHA – Đánh giá hiệu năng
S
0.5

Giới thiệu
0.4

Hỏi vòng 0.3

Truy nhập 0.2 0,18


phân tán

0.1
Truy nhập
ngẫu nhiên
G
0 0 0,5 2 4 6 8
Bài tập

 Thông lượng kênh của ALOHA đạt cực đại 18% khi tải
đầu vào đạt 50%

46
Slotted ALOHA
 Nguyên tắc hoạt động:
Giới thiệu
 Giống như ALOHA
 Tuy nhiên, kênh truyền được chia thành các “khe thời
Hỏi vòng
gian” (slot), mỗi slot có độ dài ts. Các trạm chỉ được
phép truy nhập kênh tại thời điểm đầu của các slot.
Truy nhập
phân tán
pi
Truy nhập
ngẫu nhiên Trạm i
t0 t0+ts
Tx
Bài tập
Trạm j
t0-ts t0+ts
pj

47
Slotted ALOHA – Đánh giá
hiệu năng
Giới thiệu Thời gian “nhạy cảm”:
Tx  t s (8.29)
Hỏi vòng
Thông lượng kênh: 0
Truy nhập t x 
S  G.PN (t x  t s  0)  G. e t x  Ge t s  Ge G
phân tán

G
0! (8.30)
Truy nhập
ngẫu nhiên
P0  e

Bài tập
Khảo sát cực trị của S:
dS
 e G  Ge G (8.31)

dG
48
Slotted ALOHA – Đánh giá hiệu năng
 Phương trình (3.31) đạt cực trị tại G=1 với
S=0,368
Giới thiệu
 Hiệu suất của slotted ALOHA gấp đôi so với
ALOHA nhưng vẫn thấp
S
0.5
Hỏi vòng

0.4 0,36
Truy nhập
phân tán
0.3
Truy nhập
ngẫu nhiên
0.2 0,18
Bài tập
0.1

G
0 0 0,5 1,0 2 4 6 8

49
pi

Trạm i
t0 t0+ts
Tx
Giới thiệu
t0-ts
Trạm j
t0+ts
Hỏi vòng

Truy nhập
phân tán
pi
Truy nhập
ngẫu nhiên Trạm i
t0 t0+ts
Tx
Bài tập
Trạm j
t0+ts
pj

50
Bài tập
 Cho mạng ALOHA với các tham số sau:
 Tốc độ truyền trên kênh truyền 10Mbit/s. Độ dài đường truyền
Giới thiệu
là 500m. Tốc độ lan truyền tín hiệu trên đường truyền là
2.108m/s.
 Có 30 máy tính được nối vào mạng này.
 Tốc độ trung bình của dòng dữ liệu từ các ứng dụng gửi đến
Hỏi vòng
bộ đệm phát của mỗi trạm là như nhau và là 100kbit/s. Biết
rằng tiến trình các gói đến tuân theo tiến trình Poisson với độ
dài gói cố đinh là 1000bit.
Truy nhập
phân tán  Hỏi:
◊ 1. Tính thông lương S của dòng số liệu trên kênh truyền.
Truy nhập ◊ 2. Vẫn tốc độ tới bộ đệm phát 100kbit/s không đổi, tuy
ngẫu nhiên nhiên chiều dài gói là 100bit. Tính thông lương S của dòng
số liệu trên kênh truyền.
◊ 3. Tính thông lượng cực đại Smax của kênh truyền theo đơn
Bài tập vị bit/s trong hai trường hợp độ dài gói là 100bit và
1000bit. Có nhận xét gì về mối liên hệ giữa độ dài gói, độ
dài kênh truyền và thông lượng Smax?
 Bài tập lớn: Mô phỏng mạng ALOHA

51
Tài liệu tham khảo
 Joseph L. Hammond, Peter J. P. O’Reilly,
Performance Analisys of Local Computer
Networks, Addison-Wesley 1986
 Stefan Mangold, Sunghyun Choi, Guido
R. Hiertz, Ole Klein, Bernhard Walke,
Analysis of IEEE 802.11e for QoS Support
in Wireless LANs, IEEE Wireless
Communications, December 2003
Chương 2. Mạng cục bộ
(Local Area Network - LAN)
Nội dung
Giới thiệu chung
Kỹ thuật hỏi vòng (polling)
Kỹ thuật dành sẵn kênh truyền với
phương pháp điều khiển truy nhập
phân tán (channel reservation with
distributed control)
Truy nhập ngẫu nhiên (random
access)
CSMA
 CSMA – Carrier Sense Multiple Access
Giới thiệu
 Nhận xét: để nâng cao hiệu suất kênh  giảm
xác suất va đập  cần phải có cơ chế kiểm tra
Hỏi vòng trạng thái kênh truyền
 CSMA: trước khi truy nhập kênh, trạm có cơ chế
Truy nhập kiểm tra trạng thái kênh truyền (carrier sense):
phân tán  Nếu có sóng mang (carrier): kênh truyền bận (có một
trạm khác đang truy nhập kênh)
Truy nhập  Nếu không có sóng mang: kênh truyền rỗi
ngẫu nhiên
 Phân loại:
Bài tập
 1-persistent CSMA
 p-persistent CSMA
 None-persistent CSMA

3
1-persistent CSMA
 Cơ chế truy nhập kênh:
Giới thiệu  “nghe ngóng” trước khi truyền
 nếu kênh rỗi  truyền ngay
Hỏi vòng
Bắt đầu
Truy nhập
phân tán
kênh N
Đợi
Truy nhập rỗi?
ngẫu nhiên
Y
Truy nhập kênh
Bài tập

Kết thúc

4
1-persistent CSMA (tiếp…)
pi

Trạm i
t0 t0+ts
Giới thiệu pj

Trạm j
Hỏi vòng collision
pk

Truy nhập Trạm k


phân tán

Truy nhập  Nhận xét:


ngẫu nhiên
 Va đập xảy ra khi có từ 2 trạm cùng đợi và cùng truy
nhập kênh truyền khi kênh chuyển sang trạng thái rỗi
Bài tập
 Xác suất xảy ra va đập vẫn cao, đặc biệt khi tải lớn hoặc
với gói dài

5
p-persistent CSMA
Giới thiệu
 p-persistent CSMA khắc phục nhược điểm
của 1-persistent CSMA
Hỏi vòng  p-persistent CSMA đưa ra khái niệm mini
slot: với tms << ts, thông thường là thời
Truy nhập gian lan truyền tối đa của tín hiệu trên
phân tán
kênh (2 x round trip propagation delay)
Truy nhập
ngẫu nhiên  Cơ chế truy nhập kênh:
Khi kênh truyền rỗi, trạm truy nhập kênh với
Bài tập xác suất p, hoặc , trạm đợi một mini slot với
xác suất (1-p) sau đó kiểm tra trạng thái kênh
Khi kênh bận, đợi đến khi kênh rỗi

6
Speed Slot time[3] Time Interval
Giới thiệu
10 Mbit/s 512 bit times 51.2 microseconds
100 Mbit/s 512 bit times 5.12 microseconds
Hỏi vòng
1 Gbit/s[4] 4096 bit times 4.096 microseconds
2.5 Gbit/s onward no half-duplex operation
Truy nhập
phân tán

Truy nhập
ngẫu nhiên

Bài tập

7
p-persistent CSMA (tiếp…)
Bắt đầu
Giới thiệu

kênh N Đợi
Hỏi vòng rỗi?
Y

Truy nhập Tạo một số ngẫu nhiên l 


phân tán

lp N
Truy nhập Đợi 01 mini slot
ngẫu nhiên
Y
Truy nhập kênh
Bài tập

Kết thúc

8
p-persistent CSMA (tiếp…)
pi

Trạm i
t0 1 mini slot
Giới thiệu pj

Trạm j
Hỏi vòng collision
(1-p) pk

Truy nhập Trạm k


phân tán

(1-p)
Truy nhập
ngẫu nhiên  Nhận xét:
 Va đập xảy ra khi có từ 2 trạm trở lên cùng truy nhập với
Bài tập xác suất p hoặc tất cả các trạm cùng đợi với xác suất (1-p)
 Với p càng nhỏ thì xác suất va đập càng thấp, tuy nhiên
hiệu suất kênh cũng giảm do thời gian kênh truyền không bị
chiếm (idle) tăng

9
p-persistent CSMA (tiếp…)
 Chọn p như thế nào để cải thiện hiệu suất kênh?
Giới thiệu
 Giả thiết có n trạm cùng truy nhập kênh truyền và kênh
truyền bận
Hỏi vòng
 Tại thời điểm kênh truyền rỗi, xác suất xảy ra va đập là
(khi có hơn 1 trạm truy nhập kênh hoặc tất cả các trạm
Truy nhập cùng đợi một mini slot):
phân tán

Truy nhập
pc  1  p1  p n 1 (8.32)

ngẫu nhiên
 Khảo sát cực trị của (8.32), có thể tính được:
Bài tập
1
p (8.33)
n

10
p-persistent CSMA (tiếp…)
1.0 0.01-persistent CSMA
Giới thiệu 0.9
0.8
Hỏi vòng 0.7
0.1-persistent CSMA
0.6
0.5-persistent CSMA
Truy nhập 0.5
S

phân tán
0.4
Truy nhập 0.3
ngẫu nhiên
0.2

Bài tập 0.1


0
0 1 2 3 4 5 6 7 8 9
G
11
None-persistent CSMA (tiếp…)
Bắt đầu
Giới thiệu

kênh N Back-off
Hỏi vòng rỗi? Đợi một số ngẫu nhiên
Y nguyên lần mini slot

Truy nhập Truy nhập kênh


phân tán

Kết thúc
Truy nhập
ngẫu nhiên

Bài tập
 Khái niệm “back-off”: Khi kênh truyền bận, một
trạm sẽ trì hoãn truy nhập kênh một khoảng thời
gian ngẫu nhiên bằng số nguyên lần của mini slot

12
None-persistent CSMA (tiếp…)
pi
Trạm i
Giới thiệu t0
1 mini slot

Hỏi vòng 2 1 pj
Trạm j

Truy nhập
phân tán
tboj=3 0

Truy nhập 0 pk
ngẫu nhiên Trạm k
4 3 2 1 2 1

Bài tập tbok=5 tbok=3 0

 Nhận xét: nếu thời gian back-off lớn: hiệu


suất cũng giảm
13
None-persistent CSMA (tiếp…)
1.0 0.01-persistent CSMA
Giới thiệu 0.9 Nonpersistent CSMA
0.8
Hỏi vòng 0.7
0.1-persistent CSMA
0.6
0.5-persistent CSMA
Truy nhập 0.5
S

phân tán 1-persistent CSMA


0.4
Truy nhập 0.3
ngẫu nhiên
0.2
Slotted Aloha
Aloha
Bài tập 0.1
0
0 1 2 3 4 5 6 7 8 9
G
14
Va đập trong CSMA
A B C D

Giới thiệu

Hỏi vòng

Truy nhập
phân tán

Truy nhập
ngẫu nhiên

Bài tập

15
Va đập trong CSMA (tiếp…)
Node i Node j
Giới thiệu
t0 t1
tp
Hỏi vòng

Truy nhập
phân tán
collision ts
tc
Truy nhập
ngẫu nhiên

Bài tập

16
Va đập trong CSMA (tiếp…)
Giới thiệu
Nhận xét:
Va đập vẫn xảy ra do tp>0  chiều dài
Hỏi vòng kênh truyền càng lớn thì xác suất va
đập càng tăng.
Truy nhập
phân tán tc: thời gian kênh truyền bị chiếm để
Truy nhập
truyền số liệu bị va đập; phụ thuộc vào
ngẫu nhiên kích thước gói (ts); tc càng lớn thì hiệu
suất càng nhỏ
Bài tập
 tăng hiệu suất kênh truyền bằng
cách giảm tc.
17
CSMA/CD (CSMA with Collision Detection)

Giới thiệu CSMA/CD:


Đưa thêm cơ chế phát hiện va đập
Hỏi vòng
(collision detection - CD)
Truy nhập Khi va đập xảy ra, các trạm thực hiện
phân tán
các bước:
Truy nhập
ngẫu nhiên
◊Các trạm dừng truyền gói
◊Gửi bản tin JAM SIGNAL để báo hiệu cho
Bài tập các trạm khác
◊Backoff theo hàm mũ

18
CSMA/CD (tiếp…)
Node i Node j
t0
Giới thiệu
t1
tp
Hỏi vòng
JAM SIGNAL
tc’
Truy nhập
phân tán tc

Truy nhập
ngẫu nhiên

Ngừng, bít cuối


Bài tập cùng đc truyền

19
CSMA/CD (tiếp…)
Thời gian back-off:
Giới thiệu
0  tbo  2 (8.34)
k

Hỏi vòng Trong đó k là số lần truy nhập không


Truy nhập
thành công.
phân tán
Tác dụng của tbo:
Truy nhập
ngẫu nhiên
Giảm xác suất va đập
Điều khiển luồng:
Bài tập
◊số lần truy nhập không thành công càng lớn
 back-off time tăng  lưu lượng gửi dữ
liệu vào mạng càng giảm

20
CSMA/CD efficiency
 Tprop = max prop delay between 2 nodes in LAN
Giới thiệu
 ttrans = time to transmit max-size frame

1
Hỏi vòng efficiency 
1  5t prop /t trans
Truy nhập
phân tán
 efficiency goes to 1
 as tprop goes to 0
Truy nhập
ngẫu nhiên  as ttrans goes to infinity
 better performance than ALOHA: and simple, cheap,
Bài tập
decentralized!
IEEE 802.3 - Ethernet
 IEEE 802.3 định nghĩa:
Các chuẩn truyền dẫn và biến đổi tín hiệu lớp
Giới thiệu vật lý
Cơ chế MAC: CSMA/CD
Hỏi vòng

Truy nhập
phân tán

Truy nhập
ngẫu nhiên

Bài tập

(Metcalfe’s Ethernet Sketch)

22
Phân loại Ethernet
 Các hệ thống Ethernet 10Mb/s:
Giới thiệu  10Base5. Chuẩn Ethernet đầu tiên, dựa trên cáp
đồng trục loại dày. Tốc độ 10 Mb/s, sử dụng băng
tần cơ sở, topo BUS, chiều dài cáp tối đa cho 1 phân
Hỏi vòng
đoạn mạng là 500m, dmin=2.5m
 10Base2. “thin Ethernet” , dựa trên hệ thống cáp
Truy nhập
phân tán
đồng trục mỏng với tốc độ 10 Mb/s, topo BUS, chiều
dài cáp tối đa của phân đoạn là 185 m (IEEE làm
Truy nhập tròn thành 200m), dmin=0.5m
ngẫu nhiên
 10BaseT. Chữ T là viết tắt của “twisted”: cáp đôi
xoắn. Star topology dùng HUB, tốc độ 10 Mb/s.
Bài tập
 10BaseF (F: Fiber Optic). Chuẩn Ethernet dùng cho
sợi quang hoạt động ở tốc độ 10 Mb/s , ra đời năm
1993.

23
Phân loại Ethernet
 Các hệ thống Ethernet 100 Mb/s – Fast Ethernet
Giới thiệu  100BaseT. Chuẩn Ethernet hoạt động với tốc độ 100
Mb/s trên cả cắp xoắn cặp lẫn cáp sợi quang.
Hỏi vòng
 100BaseX. Chữ X nói lên đặc tính mã hóa đường
truyền của hệ thống này (sử dụng phương pháp mã
hoá 4B/5B của chuẩn FDDI), topo Star
Truy nhập
phân tán ◊ 100BaseFX: Tốc độ 100Mb/s, cáp quang đa mode,
max=412m
Truy nhập ◊ 100BaseTX: Tốc độ 100Mb/s, cắp đôi xoắn, max=100m.
ngẫu nhiên
 100BaseT2 và 100BaseT4. Các chuẩn này sử dụng 2
Bài tập
cặp và 4 cặp cáp đôi xoắn Cat 3 trở lên tuy nhiên hiện
nay hai chuẩn này ít được sử dụng.

24
Phân loại Ethernet
 Các hệ thống Giga Ethernet
Giới thiệu  1000BaseX. Chữ X nói lên đặc tính mã hoá đường truyền
( chuẩn này dựa trên kiểu mã hoá 8B/10B dùng trong hệ
thống kết nối tốc độ cao Fibre Channel được phát triển
Hỏi vòng
bởi ANSI).
 1000Base-SX: tốc độ 1000 Mb/s, cáp quang với sóng ngắn.
Truy nhập  1000Base-LX: tốc độ 1000 Mb/s, cáp quang với sóng dài.
phân tán
 1000Base-CX: tốc độ 1000 Mb/s, sử dụng cáp đồng.
Truy nhập  1000BaseT. Hoạt động ở tốc độ Giga bit, băng tần cơ sở
ngẫu nhiên trên cáp đôi xoắn Cat 5 trở lên. Sử dụng kiểu mã hoá
đường truyền riêng để đạt được tốc độ cao trên loại cáp
Bài tập này.

25
Các đặc tính của Ethernet
 Cấu trúc khung lớp MAC (MAC frame)
Giới thiệu

Dest. Src. Length/


Preamble Data FCS
Hỏi vòng Addr. Addr. Ethertype

8 6 6 2 46 - 1500 4
Truy nhập
phân tán • Preamble: Bắt đầu khung
• Destination Address: Địa chỉ MAC máy đích
Truy nhập
ngẫu nhiên • Source Address: Địa chỉ MAC máy nguồn
• Ethertype: Loại dữ liệu được đóng gói vào MAC frame
Bài tập
(IP, ARP .v.v.)
• Data: Dữ liệu, bao gồm cả khung LLC 802.2
• Frame Check Sequence: 32 bit chống lỗi CRC
(cyclic redundancy check)

26
Các đặc tính của Ethernet
Giới thiệu
 Cấu trúc địa chỉ MAC:
 Mỗi giao tiếp mạng Ethernet được định danh duy nhất
bởi 48 bit địa chỉ (6 octet)
Hỏi vòng
 Đây là địa chỉ được ấn định khi sản xuất thiết bị, gọi là
địa chỉ MAC ( Media Access Control Address ).
Truy nhập
phân tán  Địa chỉ MAC được biểu diễn bởi các chữ số hexa ( hệ
cơ số 16 ).
Truy nhập
ngẫu nhiên
Ví dụ : 00:60:97:8F:4F:86 hoặc 00-60-97-8F-4F-86.
 Khuôn dạng địa chỉ MAC được chia làm 2 phần:
Bài tập − 3 octet đầu xác định hãng sản xuất, quản lý bởi IEEE.
− 3 octet sau do nhà sản xuất ấn định.

27
Các đặc tính của Ethernet
Giới thiệu Địa chỉ MAC được sử dụng để:
 Nhận biết trạm gửi dữ liệu (MAC src.
Hỏi vòng
addr.)
Truy nhập  Bên nhận kiểm tra địa chỉ đích (MAC
phân tán
dest. addr) để nhận biết các khung gửi
Truy nhập
ngẫu nhiên
đến cho mình

Bài tập

28
IEEE 802.3: Minimum Frame Length
Example #1: Cable = 400m, transm. speed = 10 Mbit/sec,
propagation speed = 2*10**8 m/sec
Giới thiệu

Hỏi vòng Propagation delay time:


d 400
t prop    2  106
 2 sec
Truy nhập V 2  108
phân tán
The round-trip propagation delay is, of course, twice
Truy nhập this. Thus the round trip delay is
ngẫu nhiên
2  t prop  4  sec
Bài tập
With a data rate of 10 Mbit/sec each bit has
1 1
tb    0.1 sec
R 10,000 ,000

29
IEEE 802.3: Minimum Frame Length
Example #1: Cable = 400m, transm. speed = 10 Mbit/sec,
propagation speed = 2*10**8 m/sec
Giới thiệu

Hỏi vòng
The number of bits we can fit into a round-trip
propagation delay is
Truy nhập
phân tán tp 4
nb  2    40 bits
tb 0 .1
Truy nhập
ngẫu nhiên The minimum frame length is thus 40 bits (5 bytes).

Bài tập Using a power of 2 so we might use 64 bits (8 bytes).

30
IEEE 802.3: Minimum Frame Length
Example #2:
Giới thiệu
Two nodes are communicating using CSMA/CD
protocol. Speed transmission is 100 Mbits/sec
and frame size is 1500 bytes. The propagation
Hỏi vòng
speed is 3*10**8 m/sec.
Truy nhập
phân tán Calculate the distance between the nodes such
Truy nhập
that the time to transmit the frame = time to
ngẫu nhiên recognize that the collision have occurred.
Bài tập

31
CSMA/CA (CSMA with Collision Avoidance)

Giới thiệu CSMA/CA được sử dụng trong các


mạng không dây.
Hỏi vòng
Do tính chất của môi trường vô
Truy nhập
phân tán
tuyến:
Truy nhập
Cơ chế kiểm tra trạng thái kênh truyền
ngẫu nhiên hoạt động không hiệu quả.
Bài tập Cơ chế phát hiện va đập hoạt động
không hiệu quả.

32
Các tính chất của đường
truyền vô tuyến
Giới thiệu Hiện tượng công suất giảm theo
khoảng cách (pathloss): công suất tín
Hỏi vòng
hiệu tỷ lệ nghịch với bình phương
Truy nhập khoảng cách  mỗi mạng không dây
có một tầm phủ sóng với bán kính R
phân tán

Truy nhập
ngẫu nhiên

Bài tập

33
Các tính chất của đường
truyền vô tuyến (tiếp…)
 Vấn đề nút ẩn (hidden node problem):
 (A,B), (B,C) nằm trong vùng phủ sóng của nhau
Giới thiệu
 (A,C) nằm ngoài tầm phủ sóng của nhau
 A và C đều gửi dữ liệu cho B: va đập xảy ra tại B
Hỏi vòng  Cơ chế kiểm tra trạng thái kênh làm việc không hiệu
quả
Truy nhập
phân tán
R
Truy nhập collision
ngẫu nhiên

A B C
Bài tập

34
Các tính chất của đường
truyền vô tuyến (tiếp…)
 Vấn đề nút hiện (expose node problem):
 B gửi dữ liệu cho A
Giới thiệu
 Do (B,C) nằm trong vùng phủ sóng, khi C truy nhâp
kênh để gửi dữ liệu cho D, nó thầy kênh truyền bận  C
trì hoãn truy nhập kênh
Hỏi vòng
 Hiệu suất kênh truyền giảm
Truy nhập
phân tán
R
Truy nhập
ngẫu nhiên D
A B C
Bài tập

35
CSMA trong mạng không dây
 Trước khi truy nhập kênh, kiểm tra trạng thái
Giới thiệu
kênh như CSMA/CD.
 Nếu kênh truyền bận: đợi đến khi kênh truyền rỗi
Hỏi vòng
 Tiếp tục đợi thêm một khoảng thời gian DIFS
(DCF Inter-Frame Space – 34us) cho trước
(DIFS=RTT)
Truy nhập
phân tán  Back-off một số mini slot (9us) tBO ngẫu nhiên
 Sau mỗi mini slot: tBO = tBO -1
Truy nhập
ngẫu nhiên  Nếu trong thời gian back-off kênh truyền lại bận
thì trạm dừng đếm lùi và bảo toàn giá trị tBO tại
Bài tập
thời điểm dừng.
 Sau khi kênh truyền chuyển sang trạng thái rỗi
một khoảng thời gian DIFS, trạm tiếp tục đếm lùi.
 Nếu tBO =0  truy nhập kênh và gửi gói
36
CSMA trong mạng không dây
(tiếp…)
tboi=2
Giới thiệu
DIFS
1 pi
Hỏi vòng Trạm i
t0 2
Truy nhập 0
phân tán
DIFS DIFS
Truy nhập pj
ngẫu nhiên Trạm j
3 2 2 1
tboi=3
Bài tập
0

37
CSMA trong mạng không dây
(tiếp…)
Giới thiệu Do kênh truyền vô tuyến là kênh
không tin cậy:
Hỏi vòng
Sau khi nhận được gói một khoảng SIFS
Truy nhập (Service Inter-Frame Space), bên thu sẽ
phân tán
trả lại bên phát một gói ACK.
Truy nhập
ngẫu nhiên SIFS < DIFS  gói ACK có độ ưu tiên
cao hơn gói dữ liệu
Bài tập

38
CSMA trong mạng không dây
(tiếp…)
tboi=2
Giới thiệu
DIFS
1 pi
Trạm i
Hỏi vòng
2 ACK
t0
SIFS
Truy nhập 0
phân tán
DIFS DIFS
Truy nhập pj
ngẫu nhiên
Trạm j
3 2 2 1 ACK
SIFS
Bài tập
tboi=3 0

39
Tránh va đập trong mạng
không dây – MACA/MACAW
 Mạng không dây không sử dụng cơ chế
Giới thiệu
phát hiện va đập (CD) mà sử dụng cơ chế
tránh va đập (Collision Avoidance - CA)
Hỏi vòng
 Collision Avoidance:
Truy nhập
Trước khi phát: bên phát quảng bá bản tin RTS
phân tán (Ready-To-Send)
Khi nhận được RTS, bên thu quảng bá bản tin
Truy nhập
ngẫu nhiên
CTS (Clear-To-Send)
Trong RTS và CTS mang theo bản tin NAV
Bài tập
(Network Allocation Vector) chứa thời gian
chiếm kênh của bên phát.
Các trạm khác dừng việc truy nhập kênh trong
khoảng thời gian được chỉ ra trong NAV

40
Tránh va đập trong mạng
không dây (tiếp…)
 Giả sử A gửi dữ liệu cho B
Giới thiệu  C khi nhận được CTS  trì hoãn gửi dữ liệu cho B

Hỏi vòng

Truy nhập
phân tán RTS

Truy nhập CTS


ngẫu nhiên
A RTS B C
CTS
Bài tập

41
Tránh va đập trong mạng
không dây (tiếp…)
Giới thiệu NAVi

tBO
Hỏi vòng
Trạm i RTS pi
Truy nhập CTS ACK
phân tán Trạm j
DIFS SIFS SIFS SIFS
Truy nhập NAVj
ngẫu nhiên

Bài tập

42
Giới thiệu

Hỏi vòng

Truy nhập
phân tán

Truy nhập
ngẫu nhiên

Bài tập

43
IEEE 802.11 - WiFi
Giới thiệu IEEE 802.11:
 Giới thiệu năm 1999 bởi IEEE
Hỏi vòng
 WiFi = Wireless Fidelity
Truy nhập
phân tán
 Định nghĩa các chuẩn lớp liên kết dữ
liệu và lớp vật lý
Truy nhập
ngẫu nhiên  Cơ chế truy nhập: Kết hợp CSMA/CA và
Bài tập
MACAW (MACA for Wireless LANs)

44
IEEE 802.11 (tiếp…)
Giới thiệu
 Hoạt động ở 2 chế độ: BSS1
Chế độ cơ sở: Basic AP

Hỏi vòng Service Set (BSS)


◊ Các trạm liên lạc với nhau
Truy nhập thông qua Access Point
phân tán (AP) AP
BSS2

Truy nhập Chế độ Adhoc:


ngẫu nhiên
◊ Các trạm liên lạc trực tiếp
với nhau
Bài tập

45
IEEE 802.11 (tiếp…)
 802.11a
Giới thiệu
 Dải 5-6 GHz
 Thông lượng tối đa 54 Mbps
Hỏi vòng
 802.11b
 Dải tần 2.4-5 GHz (unlicensed spectrum)
Truy nhập
phân tán
 Thông lượng tối đa 11 Mbps
 802.11g
Truy nhập
ngẫu nhiên  Dải 2.4-5 GHz
 Thông lượng tối đa 54 Mbps
Bài tập  802.11n: cho phép dùng nhiều ăng-ten (MIMO)
 Dải 2.4-5 GHz
 Tốc độ tối đa 200 Mbps

46
IEEE 802.11 (tiếp…)
Giới thiệu

Hỏi vòng

Truy nhập
phân tán

Truy nhập  Phân phối tài nguyền vô tuyến tại dải tần
ngẫu nhiên
2,4 GHz:
Bài tập 14 kênh vật lý
Mỗi kênh có độ rộng 22MHz
OFDM/DSSS

47
IEEE 802.11 (tiếp…)
Giới thiệu Thêm các chức năng bảo mật cần
thiết trong mạng không dây
Hỏi vòng
Chống sử dụng tài nguyên mạng khi
Truy nhập không được phép (truy nhập trái phép)
phân tán
Chống nghe trộm dữ liệu
Truy nhập
ngẫu nhiên Các công nghệ bảo mật chính:
Bài tập WEP (Wired Equivalent Privacy)
WPA (WiFi Protected Access)

48
IEEE 802.11 (tiếp…)
 Cấu trúc khung
Frame Duration Src. Dest. Rx. node Sequence Tx. node
Data FCS
Giới thiệu Ctrl. ID. Addr. Addr. Addr. Ctrl. Addr.

2 2 6 6 6 2 6 0 - 2312 4
• Frame Control: mang các thông tin điều khiển (loại
Hỏi vòng
bản tin .v.v.)
• Duration Identifier: Chiều dài của frame (RTS/CTS)
Truy nhập
phân tán
• Destination Address: Địa chỉ MAC máy đích
• Source Address: Địa chỉ MAC máy nguồn
Truy nhập • Receiver Node Address: Địa chỉ nút (trung gian) nhận (AP)
ngẫu nhiên • Transmission Node Address: Địa chỉ nút (trung gian) gửi
(sử dụng ở chế độ adhoc)
Bài tập • Sequence Control: Số thự tự các phân mảnh dữ liệu
khi đóng vào nhiều frame khác nhau
• Data: Dữ liệu, bao gồm cả khung LLC 802.2
• Frame Check Sequence: 32 bit chống lỗi CRC

49
IEEE 802.11 (tiếp…)
Frame Duration Src. Dest. Rx. node
Giới thiệu Ctrl. ID. Addr. Addr. Addr.

2 2 6 6 6

Hỏi vòng
2 2 4 1 1 1 1 1 1 1 1
Truy nhập Protocol To From More Power More
Type Subtype Retry WEP Rsvd
phân tán version AP AP frag mgt data

Truy nhập
ngẫu nhiên
frame type
Bài tập (RTS, CTS, ACK, data)

50
IEEE 802.11 (tiếp…)
Ethernet
WiFi

Giới thiệu PC1

802.3
AP MAC frame PC2
Hỏi vòng
MN

Truy nhập 802.3 switch


PC3
phân tán

Truy nhập
ngẫu nhiên PC2 MAC addr MN MAC addr
dest. address source address
Bài tập
MN MAC addr PC2 MAC addr AP MAC addr
Src. MAC Dest. MAC Rx. Node
Addr. Addr. Addr.

51
Bài tập
 Cho mạng ALOHA với các tham số sau:
 Tốc độ truyền trên kênh truyền 10Mbit/s. Độ dài đường truyền
Giới thiệu
là 500m. Tốc độ lan truyền tín hiệu trên đường truyền là
2.108m/s.
 Có 30 máy tính được nối vào mạng này.
 Tốc độ trung bình của dòng dữ liệu từ các ứng dụng gửi đến
Hỏi vòng
bộ đệm phát của mỗi trạm là như nhau và là 100kbit/s. Biết
rằng tiến trình các gói đến tuân theo tiến trình Poisson với độ
dài gói cố đinh là 1000bit.
Truy nhập
phân tán  Hỏi:
◊ 1. Tính thông lương S của dòng số liệu trên kênh truyền.
Truy nhập ◊ 2. Vẫn tốc độ tới bộ đệm phát 100kbit/s không đổi, tuy
ngẫu nhiên nhiên chiều dài gói là 100bit. Tính thông lương S của dòng
số liệu trên kênh truyền.
◊ 3. Tính thông lượng cực đại Smax của kênh truyền theo đơn
Bài tập vị bit/s trong hai trường hợp độ dài gói là 100bit và
1000bit. Có nhận xét gì về mối liên hệ giữa độ dài gói, độ
dài kênh truyền và thông lượng Smax?
 Bài tập lớn: Mô phỏng mạng ALOHA

52
Tài liệu tham khảo
 Joseph L. Hammond, Peter J. P. O’Reilly,
Performance Analisys of Local Computer
Networks, Addison-Wesley 1986
 Stefan Mangold, Sunghyun Choi, Guido
R. Hiertz, Ole Klein, Bernhard Walke,
Analysis of IEEE 802.11e for QoS Support
in Wireless LANs, IEEE Wireless
Communications, December 2003
BÀI KIỂM TRA
1. Xét hai host A và B cách nhau m mét, được kết nối với nhau bởi
một link có tốc độ R (bps), tốc độ truyền lan trên link là s (m/s),
host A cần gửi một gói tin có kích thước L bít đến host B. Tính các
thông số sau:
a) Trễ lan truyền dprop và trễ phục vụ gói dtrans
b) Nếu bỏ qua trễ xử lý và trễ hàng đợi, tính trễ đầu cuối dend-to-end
c) Giả thiết host A bắt đầu truyền gói tin đi tại thời điểm t=0, tại thời điểm t=dtrans
bít cuối cùng của gói tin đang ở đâu?
d) Giả thiết dprop lớn hơn dtrans, Tại thời điểm t= dtrans, bít đầu tiên của gói tin nằm
ở đâu?
e) Giả thiết dprop nhỏ hơn dtrans, Tại thời điểm t= dtrans, bít đầu tiên của gói tin nằm
ở đâu?
f) Giả thiết s=2.5x108, L=120 bít. R=56 kbps. Tính khoảng cách m giữa hai host
để dprop bằng dtrans.
2. Two nodes are communicating using CSMA/CD protocol. Speed
transmission is 100 Mbits/sec and frame size is 1500 bytes. The
propagation speed is 3*10**8 m/sec.
Calculate the distance between the nodes such that the time to
transmit the frame = time to recognize that the collision have
occurred.
CHƯƠNG 2

KẾT NỐI MẠNG Ở LỚP 2


(Data Link Layer Switching/Bridging)

TS. TRẦN QUANG VINH

Hà Nội, 11/2016
2
MỘT SỐ KHÁI NIỆM

 Miền xung đột (bandwidth domain)


– Vùng mạng mà trong đó các khung phát ra có thể gây xung đột với
nhau.
– Càng nhiều trạm trong cùng một miền xung đột  tăng sự xung đột
và làm giảm tốc độ truyền
– các trạm trong cùng miền này sẽ chia sẻ băng thông của miền 
miền băng thông
 Miền quảng bá (broadcast domain)
– Miền gồm các thiết bị mà trong đó khi một thiết bị phát đi một khung
quảng bá thì tất cả các thiết bị còn lại đều nhận được.
• Khi sử dụng các thiết bị kết nối khác nhau, ta sẽ phân chia mạng thành các miền
xung đột và miền quảng bá khác nhau

3
MỤC TIÊU

 Mục đích
– Kết nối nhiều mạng LAN, mở rộng vùng hoạt động của mạng LAN
– Phân chia băng thông hợp lý đáp ứng nhu cầu của các ứng dụng trong
mạng
– Tăng hiệu suất hoạt động, tăng băng thông chia sẻ cho một nút bằng cách
chia nhỏ một mạng lớn thành nhiều vùng quảng bá nhỏ
 Các thiết bị kết nối mạng LAN
– Lớp Vật lý: Hub, Repeater
– Lớp MAC: Bridge, Switch
• Bridge: IEEE802.1D
– Lớp Mạng: Router

4
Hub/ Repeater
 Khuyếch đại tín hiệu
– Mở rộng chiều dài kênh truyền
– Mở rộng miền xung đột
– Không có cơ chế kiểm tra trạng thái kênh
 Ưu điểm:
– Tăng chiều dài kênh
 Nhược điểm:
– Chiều dài kênh truyền lớn  hiệu suất kênh truyền giảm do xác
suất va đập tăng
– Cùng miền quảng bá  số nút lớn dẫn đến băng thông chia sẻ cho
một nút giảm
• Giả sử 8 trạm nối cùng một hub 10BaseT tốc độ 10Mb/s, vì tại một thời điểm chỉ có
một trạm được truyền nên băng thông trung bình cho mỗi trạm là:
10 Mb/s : 8 trạm = 1,25 Mbps / 1 trạm

5
Hub/ Repeater

 Trạm AB:

6
Hub/ Repeater

 Passive hub
– Kết nối tất cả các công giao tiếp trên nó, chuyển tín hiệu điện từ
cổng này đến cổng khác
– Không có chức năng khuếch đại và xử lý tín hiệu
 Active hub
– Khuếch đại và làm sạch tín hiệu trước khi chuyển đến các cổng giao
tiếp khác

7
Bridge (cầu nối)

 Kết nối nhiều mạng LAN có công nghệ khác nhau


– Ví dụ: Ethernet, Token Ring .v.v.
 Phân mảnh LAN lớn  segment (nhiều vùng quảng bá)
– Tăng phạm vi hoạt động về mặt địa lý
– Tăng hiệu suất sử dụng kênh truyền
– Tăng thông lượng của từng trạm

8
Switches

 Kết nối các devide


– Mỗi cổng là một collision domain

9
Router

10
Gateways

11
Firewall

 Thiết bị phần cứng và/hoặc phần mềm


 Kiểm soát thông tin vào / ra giữa hai vùng mạng khác nhau
– Dựa trên bộ chính sách an ninh (security policy) và mô hình kết nối
 Phân loại

12
KẾT NỐI MẠNG SỬ DỤNG BRIDGE

 Cơ chế hoạt động:


– “Store-and-Forward”, kiểm tra trạng thái kênh trước khi gửi gói sang một
segment khác (no-frill bridge)
– Tự “học” (learning bridge)
– Cho phép tạo cây bắc cầu tối thiểu (MPT – minimum spanning tree)

13
BRIDGE

 Kết nối nhiều công nghệ LAN

14
Bridges from 802.x to 802.y

15
BRIDGE

 Phân mảnh mạng LAN

16
BRIDGE

 Bridge bị giới hạn bởi quy tắc 80/20


– Bridge chỉ hoạt động hiệu quả khi chỉ có 20% tải của phân đoạn đi
qua cầu, 80% là tải trong nội bộ phân đoạn
– Ngược lại, hai phân đoạn kết nối bởi cầu có thể xem như cùng một
phân đoạn mạng, không được lợi gì về băng thông

17
BRIDGE

 Nhận xét:
– Địa chỉ MAC có dạng phẳng (flat address), không có cấu trúc 
không định tuyến được bằng địa chỉ MAC khi gửi khung MAC liên
mạng LAN

segment 1 segment 3

B (52:69:1A:C2:39:EF)
Bridge segment 2

A  B: Brigde gửi khung phát


từ A đến cả segment 1 (chứa B)
và segment 3 (không chứa B)
A (12:A3:66:EB:23:5C)

18
“No-frill bridge”

 Flooding Mode
– Là chức năng đơn giản nhất theo chuẩn IEEE 802.1d
– Khi nhận được khung dữ liệu trên một giao diện, bridge kiểm tra trạng thái
các kênh nằm trên các giao diện còn lại, nếu kênh truyền rỗi  gửi dữ liệu

Port 1 6 5
t0 1 4
stored
2 3
Buffer
t0 Kiểm tra trạng thái kênh

Dữ liệu nhận được trên


Port 2
back-off
một cổng được chuyển đến
t0 các cổng còn lại
Lọc gói (frame filter)

 Learning Mode
– sử dụng cơ chế lọc gói (frame filtering)  Để tăng hiệu xuất kênh
– Frame tới một trạm trong cùng 1 segment sẽ không được gửi sang các
segment khác

20
Lọc gói (frame filter)

 C gửi một khung tới D

21
Lọc gói (frame filter)

 D trả lời một khung dữ liệu tới C

22
Lọc gói (frame filter)

 Nhận xét:
– Cơ chế lọc gói chỉ hoạt động khi đồ hình mạng (topology) không
xuất hiện vòng lặp
– Trong thực tế, để tăng độ tin cậy, có thể thiết lập các đường liên kết
dự trữ  vòng lặp (vật lý)

23
Spanning Tree Bridges

 Cấu trúc bản tin STP


– Root ID: số hiệu nhận dạng bridge gốc
– Cost: khoảng cách từ bridge gửi bản tin STP (transmitting bridge)
đến bridge gốc
– Transmitter: bridge gửi bản tin STP

Root ID (6 bytes) cost Transmitter ID

24
Spanning tree protocol

 Bước 1: lựa chọn bridge gốc


– Bridge gốc là bridge có giá trị ID tối thiểu trong các bản tin nhận được
 Bước 2: tính toán khoảng cách từ B tới bridge gốc:
– Nếu B là bridge gốc à khoảng cách tới chính nó là 0
– Nếu B không phải bridge gốc: khoảng cách từ B à bridge gốc là khoảng
cách trên bản tin tốt nhất cộng với khoảng cách từ B đến transmitter
– B chọn cổng ngắn nhất đến bridge đích à cổng gốc (root port)
– Chú ý: nếu bridge có 2 cổng đến bridge gốc với khoảng cách như nhau:
công nào có transmitter nhỏ hơn sẽ được chọn làm cổng gốc
 Bước 3: lựa chọn bridge ủy quyền
– Bridge ủy quyền gửi các khung dữ liệu trong mạng LAN đến bridge gốc,
Bridge B tính toán bản tin cấu hình mà nó sẽ quảng bá trên các cổng còn lại
 Bước 4: Lựa chọn cổng nằm trong cây bắc cầu
– Các cổng được lựa chọn vào cây (cổng ủy quyền) là cổng nhận được bản
tin tốt nhất

25
Ví dụ
– Bridge B-92 (ID=92) có 5 cổng và nhận được bản tin cấu hình sau

– Giả thiết khoảng cách từ B-92 đến tất cả các LAN liền kề là 1
– Bản tin tốt nhất: 41.12.111 trên port 4
– B-92 đặt cổng 4 là cổng gốc
– Tính toán bản tin cấu hình: {41.13.92}

26
Ví dụ
– So sánh bản tin {41.13.92} với các bản tin nhận được trên cổng 1,
2, 3, 5
– {41.13.92} tốt hơn các bản tin nhận được trên cổng 1 và 2
– B-92 là bridge ủy quyền trên các cổng 1 và 2

27
Ví dụ
– B-92 chọn cổng 4 (cổng gốc) và cổng 1, 2 vào cây bắc cầu
– Chuyển cổng 3, 5 sang trạng thái không hoạt động

28
Remote Brigde

Remote bridges can be used to interconnect distant LANs

29
Review

30
BÀI TẬP
32
CHƯƠNG 3

NETWORK LAYER

TS. TRẦN QUANG VINH

Hà Nội, 11/2016
Chức năng lớp Network

 Datagram Format
 IP addressing
 Routing
 Forwarding
 Fragmentation and Reassembly

2
Internet Protocol

 Giao thức IP
– Chuẩn hóa bởi IETF, RFC 791 (9/1981)
– Chuẩn hóa bởi DoD, MIL-STD-1777
 Phương thức hoạt động
– Connectionless:
• Giao thức IP không chuyển các thông tin điều khiển trước khi truyền dữ liệu
– Unreliable
• Giao thức IP không có khả năng phát hiện và khắc phục lỗi
• Không quan tâm đến việc dữ liệu có đến đích một cách chính xác hay không
– Best effort delivery
• Truyền các Datagram càng nhanh càng tốt

3
IP Addressing

 Hosts and Routers


– interface trên host và router đều có thể gửi và nhận IP datagram, nên mỗi
giao diện phải có một IP address  IP Address có tính duy nhất!
 IP Address
– IPv4: 32 bit, IPv6: 128 bit
– Yêu cầu: phải có cấu trúc, cho phép định tuyến  địa chỉ IP gồm 2 phần
thông tin:
• Network address: địa chỉ mạng
• Host address: địa chỉ máy trạm X . X . X . X
– Biểu diễn:
8 bit (0 - 255)

4
IP Addressing

 Networks Router Interface IP Address


1 223.1.1.4
2 223.1.2.9
3 223.1.3.27

5
IP Addressing

 Nguyên tắc đánh địa chỉ:


– Mỗi mạng LAN có địa chỉ mạng 223.1.1.1 223.1.1.2
223.1.1.4
riêng biệt và được ngăn cách bởi
router 223.1.1.3
– Các máy trạm (kể cả router) nằm
trong một LAN có chung địa chỉ
223.1.7.2
mạng, còn địa chỉ máy trạm khác 223.1.9.2

nhau
 Cách xác định Network
– Ngắt (detach) mỗi giao diện của 223.1.9.1 223.1.7.1
router ra khỏi router và mỗi giao 223.1.8.1 223.1.8.2
diện host ra khỏi host (ngắt các link
giữa host và router) 223.1.2.6 223.1.3.27

– Mỗi isolated networks là một


network
223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2

6
IP Addressing

 IP Address Classing
8bits 8bits 8bits 8bits

Class A 0 7bit H H H
Class B 1 0 6bit N H H
Class C 1 1 0 5bit N N H
Class D 1 1 1 0 Multicast
Class E 1 1 1 1 Reserve for future use

# of network # of hosts
Class A 2^7=128 2^24
Class B 2^14=16384 2^16=65536
Class C 2^21 2^8=256

7
IP Address Classifying

 Public IP Address
– IP thực và duy nhất
 Private IP Address
– sử dụng cho những host trong các mạng LAN

 Loopback Address
/
Loopback address 127.0.0.1 / 127.1.*
Multicast address
224.0.0.0~239.255.255.255
(RFC5771)
8
IP Address Classifying

 Multicast Address
– Địa chỉ định danh (logic) cho một nhóm các host trên mạng máy tính có khả
năng xử lý datagrams hoặc frames cho một số dịch vụ mạng được chỉ định
 Broadcast Address
– Địa chỉ có các bit phần HostID bằng 1
• Sử dụng khi muốn phát quảng bá đến toàn bộ host trong cùng mạng
– Ví dụ: Mạng con: 180.13.0.0 sẽ có địa chỉ quảng bá: 180.13.255.255
 Default Mask/Subnet mask
– Địa chỉ dùng để che phần host ID của địa chỉ IP  để xác định network ID

9
Assigning Addresses

 Manual configuration
– IP address is configured into the host by the system administrator
– Windows: control panelnetworkconfigurationtcp/ipproperties
– UNIX: /etc/rc.config

10
Assigning Addresses

 Dynamic Host Configuration Protocol (DHCP)


– Giao thức cấu hình địa chỉ động [RFC 2131]
– “plug-and-play”: Cho phép host nhận một địa chỉ IP động khi kết nối mạng

11
Nhận xét

 Đánh địa chỉ có phân lớp có một số nhược điểm


– Cứng nhắc, lớp C quá nhỏ, lớp B quá lớn  không tận dụng hiệu quả miền
địa chỉ
– Các router trong mạng nội bộ cần phải có địa chỉ mạng (network ID.) riêng
biệt cho từng giao diện
 Cách giải quyết
– CIDR: Classless Inter Domain Routing
– Phần địa chỉ mạng sẽ có độ dài bất kỳ

12
Subnetting

 CIDR
– Địa chỉ IP: a.b.c.d/x, trong đó a.b.c.d là địa chỉ mạng, x (mặt nạ mạng) là số
lượng bit trong phần ứng với địa chỉ mạng
 Phân chia mạng con
– Mở rộng địa chỉ mạng sang các bit của địa chỉ host

13
Subnetting

 Ví dụ:
– Địa chỉ mạng class C: 203.160.9.0 và subnet mask: 255.255.255.0 (địa chỉ
mạng 24 bits)
– Chia thành 4 mạng con  lấy thêm 2 bít cho địa chỉ mạng (26 bits)
– 203.160.9.0/26

14
Subnetting

 Subnet mask
– Các giá trị có thể có của subnet mask

15
Subnetting

 Kích thước mạng

16
IP header

17
IP Fragmentation and Reassembly

18
IP Fragmentation and Reassembly

 Fragmentation
– Phân mảnh sử dụng các trường: identification, flags, fragment offset
• Identification: 16 bit - các offset của cùng 1 gói lớn có cùng một ID.
• Flags: 3 bit
+ #1 bit: không sử dụng
+ #2 bit – Don’t fragment (DF) bit:
» DF=1: Không được phép phân mảnh
» DF=0: Được phép phân mảnh
+ #3 bit – More fragment (MF) bit: nếu DF=0
» MF=1: hãy còn phân mảnh tiếp theo
» MF=0: phân mảnh cuối cùng
– Offset: 13 bit
• Vị trí của gói tin phân mảnh trong gói tin ban đầu
• Theo đơn vị 8 bytes

19
Ví dụ

 Ví dụ 1:

20
 Ví dụ 2:
– Consider sending a 3000 byte datagram into a link that has a MTU of 500
bytes. Suppose the original datagram is stamped with the identification
number 422. How many fragments are generated? What are their
characteristics?

21
Homework:

1. Supernetting
2. ARP (Address Resolution Protocol), RARP
3. ICMP
ET4230

CHAPTER 3: NETWORK LAYER

ROUTING ALGORITHM
TỔNG QUAN
 KHÁI NIỆM
– Quá trình chọn đường đi qua các nút mạng để tới đích một cách
tối ưu
– Định tuyến ở lớp mạng sử dụng mô hình định tuyến hop-by-hop
 THÀNH PHẦN
– Bảng định tuyến (routing table)
– Giải thuật định tuyến

2
TỔNG QUAN
 BẢNG ĐỊNH TUYẾN
– Danh sách các đường đi có thể từ nguồn đến đích
– Địa chỉ đích/mặt nạ mạng, Router kế tiếp (interface, metris)

dest. network net. mask next hop interface metrics


10.0.0.0 255.255.255.0 A’ IP addr. 1 1
172.16.0.0 255.255.255.0 C’ IP addr. 2 1

3
TỔNG QUAN
 NGUYÊN TẮC ĐỊNH TUYẾN CỦA ROUTER

Longest prefix match


Ví dụ: địa chỉ đích: 11.1.2.5 và bảng định tuyến sau

11.1.2.5 = 00001011.00000001.00000010.00000101
11.0.0.0/8 = 00001011.00000000.00000000.00000000
11.1.0.0/16 = 00001011.00000001.00000000.00000000
11.1.2.0/24 = 00001011.00000001.00000010.00000000

4
TỔNG QUAN
 ĐƯỜNG ĐI MẶC ĐỊNH

5
TỔNG QUAN
 KẾT HỢP ĐƯỜNG ĐI

6
CÁC PHƯƠNG PHÁP ĐỊNH TUYẾN
 ĐỊNH TUYẾN TĨNH
– Không sử dụng giao thức định tuyến
– Cập nhật bảng định tuyến thủ công

7
CÁC PHƯƠNG PHÁP ĐỊNH TUYẾN
 VÍ DỤ

8
CÁC PHƯƠNG PHÁP ĐỊNH TUYẾN
 ĐỊNH TUYẾN ĐỘNG
– Sử dụng các giao thức định tuyến
– Lựa chọn tuyến dựa trên thông tin trạng thái hiện thời của mạng
• Đáp ứng tính thời gian thực
– Mô hình tập trung: được xây dựng từ hệ thống tính toán định
tuyến
• Thu thập thông tin vào một nút mạng
• Sử dụng các giải thuật tìm đường đi trên đồ thị
• Phân bổ bảng định tuyến từ nút trung tâm đến các nút
– Mô hình phân tán:
• Mỗi nút tự xây dựng bảng định tuyến riêng
• Sử dụng các giao thức định tuyến
• Được sử dụng phổ biến trong thực tế

9
CÁC PHƯƠNG PHÁP ĐỊNH TUYẾN
 VÍ DỤ

10
CÁC THUẬT TOÁN ĐỊNH TUYẾN
 MỤC TIÊU
– Tìm đường đi ngắn nhất từ một nút gốc tới các nút còn lại
– Xây dựng cây theo đường ngắn nhất (shortest path tree - SPT)
 BIỂU DIỄN MẠNG BẰNG ĐỒ THỊ

11
Bellman-Ford
 DVA – Distance Vector Algorithm
– Dùng thuật toán Bellman-Ford

12
Bellman-Ford

13
Bellman-Ford

14
Count to Infinity

15
Count to Infinity

16
Count to Infinity

17
Count to Infinity

18
Count to Infinity

19
Count to Infinity

20
link-state advertisement (LSA)
 Thuật toán định tuyến trạng thái liên kết
– Mỗi nút phải duy trì “bản đồ” toàn mạng
– Thuật toán Dijkstra (dùng trong OSPF)

21
link-state advertisement (LSA)

22
link-state advertisement (LSA)

23
So sánh Dijkstra vs. Bellman-Ford
 Bellman-Ford
– Việc tính toán cho node n phải biết các thông tin về chi phí liên kết
của các node kề của n và chi phí tổng cộng từ node nguồn s đến
các node kề của node n
– Mỗi node cần lưu trữ tập các chi phí và các đường đi tương ứng
đến các node khác
– Có thể trao đổi thông tin với các node kề trực tiếp
– Có thể cập nhật thông tin về chi phí và đường đi dựa trên các
thông tin trao đổi với các node kề và các thông tin về chi phí liên
kết
 Dijkstra
– Mỗi node cần biết topology toàn bộ mạng
– Phải biết chi phí liên kết của tất cả các liên kết trong mạng
– Phải trao đổi thông tin với tất cả các node khác trong mạng

24
Lịch sử Định tuyến trong ARPANET
 Thế hệ đầu tiên (1969)
– Distributed adaptive
– Dùng thời gian trễ ước tính làm tiêu chuẩn để đánh giá hiệu quả
– Dùng giải thuật tìm đường Bellman-Ford
• Các node trao đổi thông tin (các vector thời gian trễ) với các node kề
• Cập nhật bảng tìm đường dựa trên thông tin đến
– Không quan tâm đến tốc độ đường truyền, chỉ quan tâm chiều dài
hàng đợi tại các node
– Chiều dài hàng đợi không phải là cách đo chính xác của thời gian
trễ
• Đáp ứng chậm với nghẽn mạch

25
Lịch sử Định tuyến trong ARPANET
 Thế hệ thứ 2 (1979)
– Dùng thời gian trễ làm tiêu chuẩn đánh giá hiệu quả
– Thời gian trễ được đo trực tiếp
– Dùng giải thuật tìm đường Dijkstra
– Thích hợp cho mạng có tải trung bình hoặc nhẹ
– Khi mạng tải nặng, có ít tương quan giữa thời gian trễ đo được và
thời gian trễ gặp phải
 Thế hệ thứ 3 (1987)
– Việc tính toán chi phí của liên kết đã được thay đổi
– Thời gian trễ trung bình được đo trong 10 giây cuối
– Bình thường hóa dựa trên giá trị hiện tại và kết quả trước đó

26
BÀI TẬP

27
BÀI TẬP

28
Chapter 3
Network Layer

ET4230 – 20112

TS. Trần Quang Vinh


BM. Kỹ thuật Thông tin
Viện Điện tử - Viễn thông
Đại học Bách Khoa Hà Nội
vinhtq@mail.hut.edu.vn
Chương 3: Nội dung

 Các giao thức định tuyến trên mạng Internet


 Phân cấp trong định tuyến
 Định tuyến nội vùng (Intra-domain): RIP, OSPF
 Định tuyến liên vùng (Inter-domain): BGP

2
Định tuyến trong mạng Internet

 Internet thực hiện định tuyến có phân tầng


(hierarchical routing):
 Internet được phân thành các hệ tự trị - AS
(Autonomous System)
 Mỗi AS được quản trị riêng biệt bởi các quản trị mạng
 Trong một AS: sử dụng một giao thức định tuyến nội
miền (interior gateway protocol)
 Giữa các AS: sử dụng giao thức định tuyến liên miền
(exterior gateway protocol)

3
Hệ tự trị

 Mỗi hệ tự trị có một số hiệu riêng – AS


number (ASN - 16 bits hay 32 bits)

2914 NTT-COMMUNICATIONS-2914 - NTT America, Inc.


3491 BTN-ASN - Beyond The Network America, Inc.
4134 CHINANET-BACKBONE No.31,Jin-rong Street
6453 GLOBEINTERNET Teleglobe America Inc.
24087 VNGT-AS-AP Vietnam New Generation Telecom
24066 VNNIC-AS-VN Vietnam Internet Network Information
Center
17981 CAMBOTECH-KH-AS ISP Cambodia
……………………………….

4
Hệ tự trị (tiếp…)

 ASN được cấp phát bởi IANA (Internet


Assigned Numbers Authority)

Source: http://www.potaroo.net/

200
8

5
Phân loại các giao thức định tuyến

- Trong một AS: sử dụng một giao thức định tuyến nội
miền IGP (interior gateway protocol)
- Giữa các AS: sử dụng giao thức định tuyến liên miền EGP
(exterior gateway protocol)
6
EGP và IGP

AS2

AS1 IGP EGP


OSPF domain

EGP
RIP domain EGP
EGP AS3
AS4 EGP IGP
IGP RIP domain
IGP
OSPF domain
RIP domain AS5
RIP domain

7
Định tuyến nội vùng

 Intra-AS routing = Interior Gateway Routing


(IGP)
 Các giao thức định tuyến nội vùng thông dụng:
 RIP (Routing Information Protocol)
 OSPF (Open Shortest Path First)
 IGRP (Interior Gateway Routing Protocol) – Chỉ sử
dụng cho các router của Cisco

8
RIP

 Đặc điểm:
 RIP – Routing Information Protocol
 Là giao thức định tuyến theo vector khoảng cách – sử
dụng thuật toán Bellman-Ford phân tán
 Được phát triển lần đầu dưới hệ điều hành BSD Unix
năm 1982
 Trước đây được sử dụng rộng rãi, hiện nay ít được
sử dụng
 Khoảng cách là số chặng tới mạng đích
 Số chặng tối đa: 15 chặng
 nếu số lượng hop để đến đích > 15 thì gói dữ liệu sẽ bị hủy
bỏ

9
RIP (tiếp…)
 Trao đổi thông tin:
 Định kỳ
 Các vector khoảng cách được trao đổi định kỳ - 30s
 Mỗi thông điệp chứa tối đa 25 mục
 Trong thực tế, nhiều thông điệp được sử dụng
 Sự kiện
 Gửi thông điệp cho nút hàng xóm mỗi khi có thay đổi
 Nút hàng xóm sẽ cập nhật bảng chọn đường của nó
 Các bộ đếm thời gian:
 Update timer
 Dùng để trao đổi thông tin cứ 30s
 Invalid timer
 Khởi tạo lại mỗi khi nhận được thông tin chọn đường
 Nếu sau 180s không nhận được thông tin -> trạng thái hold-down
 Hold down timer
 Giữ trạng thái hold-down trong 180s
 Chuyển sang trạng thái down
 Flush timer
 Khởi tạo lại mỗi khi nhận được thông tin chọn đường
 Sau 240s, xóa mục tương ứng trong bảng chọn đường 10
RIP (tiếp…)

no
updateupdate
update
↓ ↓ ↓
When it is timeout,
hold down timer
starts
Invalid timer
When it is timeout,
This info will be
deleted from RIP
database

When it receives Hold down timer


update,
Invalid timer restarts

Flush timer

When it is timeout,
Routing info will be
deleted from routing
table
0 30 60 90 120 150 180 210 240 270 300 330 360 390 420
11
Định dạng bản tin RIP (RIP Message Format)

12
RIPv1 (RFC 1058)

 Hoạt động: Sử dụng 2 loại bản tin:


 Request message
 Được gửi đi lúc khởi động bởi mỗi giao diện
 Y/c tất cả hàng xóm gửi bảng định tuyến

 Response message
 Bản tin trả lời được gửi đến router ra yêu cầu có chứa bảng
định tuyến
 Sử dụng dịch vụ UDP trên cổng 520
 Hỗ trợ định tuyến trong các mạng đánh địa chỉ
IP có phân lớp (classful)
 Bản tin cập nhật: chỉ cần thông tin mạng đích,
khoảng cách tới mạng đích
13
RIPv1 (RFC 1058)

 RIPv1 Format

14
RIPv2 (RFC 2453)

 Hỗ trợ định tuyến trong cả mạng đánh địa chỉ


không phân lớp (classless)
 Bản tin cập nhật: thông tin mạng đích, subnet mask
của mạng đích, khoảng cách tới mạng đích
 Cung cấp chức năng xác thực: Clear text and MD5

15
Ví dụ 1

 Xác định bảng định tuyến cho mỗi router trong mạng sau

16
Solution

17
Interior Gateway Routing Protocol (IGRP)

 Cisco proprietary IP routing protocol


 Advertises up to five metrics for each route
 Bandwidth: describes the constrained link speed
(weakest link in the route)
 Delay: cumulative number (route over 10 Fast
Ethernets includes 100 Mbps * 10)

18
So sánh RIP và IGRP

Feature RIP-1 RIP-2 IGRP


Update timer for
30 seconds 30 seconds 90 seconds
full updates
Bandwidth and delay (also
Metric Hop count Hope count can include reliability, load,
and MTU)
Supports VLSM No Yes No
Infinite metric
16 16 4,294,967,295
value
Convergence Slow Slow Slow

19
OSPF

 Đặc điểm:
 OSPF – Open Shortest Path First
 Thông tin về trạng thái liên kết - LSA (link state
advertisement) được quảng bá trên toàn AS
 Với các AS lớn: OSPF được phân cấp thành nhiều
miền OSPF nhỏ
 Các router sử dụng thuật toán Dijkstra để thiết lập
bảng định tuyến
 Khoảng cách (giá): 100Mbps/dung lượng kênh

20
OSPF (tiếp…)

 Phân vùng trong OSPF:


 Trong việc chọn đường, tại sao phải chia mạng thành
các vùng nhỏ hơn?
 Nếu có quá nhiều router
 Thông tin trạng thái liên kết được truyền nhiều lần hơn
 Phải liên tục tính toán lại
 Cần nhiều bộ nhớ hơn, nhiều tài nguyên CPU hơn
 Lượng thông tin phải trao đổi tăng lên
 Bảng chọn đường lớn hơn

21
OSPF (tiếp…)

 Quan hệ giữa ASes, backbones, và areas

22
OSPF (tiếp…)

 ABR - Area border routers: Quản lý 1 vùng


và kết nối đến các vùng khác
 ASBR - Autonomous system boundary
router: Nối đến các AS khác
 BR - backbone routers: thực hiện định
tuyến OSPF trong vùng backbone
 Internal Router – Thực hiện định tuyến
OSPF bên trong một vùng

23
Các kiểu bản tin OSPF

24
OSPF Hello packet

 Chức năng
 Dùng để khám phá các Neighbor
 Dùng để quảng cáo các tham số mà hai Router phải chấp nhận
trước khi chúng trở thành các Neighbor của nhau
 Đảm bảo thông tin hai chiều giữa các Neighbor
 Các gói Hello hoạt động như các Keepalive giữa các Neighbor
 Dùng để bầu cử DR và BDR trong mạng Broadcast và
Nonbroadcast Multiaccess (NBMA)

25
RIP và OSPF – So sánh

RIP OSPF

Đặc điểm • Router bình đẳng • Phân câp


• Cấu hình dễ dàng • Cấu hình phức tạp
• Mạng cỡ nhỏ • Mạng cỡ vừa và lớn

Khả năng mở rộng Không Có


Độ phức tạp tính toán Nhỏ Lớn
Hội tụ Chậm Nhanh
Bảng chọn đường Trạng thái liên kết
Trao đổi thông tin
Giải thuật Distant vector Link-state
Cập nhật hàng xóm 30s 10s (Hello packet)

Đơn vị chi phí Số nút mạng Băng thông

26
Định tuyến liên miền

 BGP (Border Gateway Protocol): giao thức định


tuyến liên miền thông dụng nhất hiện nay 
BGP-4
 Đặc điểm của BGP
 Không sử dụng DV hay LSA  sử dụng vector
đường dẫn (path vector)
 Lựa đường đi tốt nhất dựa trên một tập hợp các
thuộc tính (ATTRIBUTE)
 BGP uses the services of TCP on port 179
 BGP supports classless addressing and CIDR

27
BGP (tiếp…)

 eBGP và iBGP:
 External BGP vs. Internal BGP
 Phân tán thông tin chọn đường
 (1) 3a gửi tới 1c bằng eBGP
 (2) 1c gửi thông tin nội bộ tới (1b, 1d, …) trong AS1 bằng
iBGP
 (3) 2a nhận thông tin từ 1b bằng eBGP

eBGP session
3c iBGP session
3a 2c
3b 2a
AS3 2b
1c
1a
AS2
1b
AS1 1d
28
BGP (tiếp…)

 Áp dụng chính sách định tuyến với BGP:


 Khi các router gửi và nhận thông tin chọn đường:
 BGP có thể đặt các chính sách
– Cho đường vào
– Cho đường ra

 Các bản tin BGP:


 Open: Thiết lập một phiên BGP giữa 2 router
 Keep Alive: Bắt tay theo chu kỳ
 Notification: Hủy bỏ phiên BGP sau khi trao đổi thông
tin
 Update: cập nhật các tuyến mới hoặc hủy bỏ các
tuyến cũ
29
BGP (tiếp…)

 Bản tin cập nhật: chứa các thuộc tính của tuyến
 Thuộc tính của tuyến:  được sử dụng để chọn
đường tối ưu khi có nhiều tuyến cùng đi đến một
đích
 ORIGIN
– Nguồn của thông tin (IGP/EGP/incomplete)
 AS_PATH

 NEXT_HOP

 MED (MULTI_EXIT_DISCRIMINATOR)
 LOCAL_PREF

 ATOMIC_AGGREGATE

 AGGREGATOR

 COMMUNITY
30
BGP (tiếp…)

135.207.0.0/16
AS 1129
AS Path = 1755 1239 7018 6341
Global Access

AS 1755
135.207.0.0/16
135.207.0.0/16
AS Path = 1239 7018 6341 Ebone AS Path = 1129 1755 1239 7018 6341

AS 12654
AS 1239 RIPE NCC
135.207.0.0/16 Pick shorter RIS project
AS Path = 7018 6341
Sprint
AS path

AS 7018 135.207.0.0/16
AS Path = 3549 7018 6341
135.207.0.0/16
AS Path = 6341
AT&T

AS 6341 AS 3549
AT&T Research
135.207.0.0/16
AS Path = 7018 6341Global Crossing

135.207.0.0/16
Prefix Originated

31
Bài tập

 Bài tập 1
 Cho bảng định tuyến tại router R1
 R1 sẽ gửi gói đến mạng nào khi nhận được các gói
tin có địa chỉ đích như sau:
 192.138.32.1
 192.138.32.100

dest. network/subnet mask next hop


192.138.32.0/26 10.1.1.1
192.138.32.0/24 10.1.1.2

192.138.32.0/19 10.1.1.3

32
Bài tập (tiếp…)

 Bài tập 2
 Công ty A xây dựng một mạng LAN bao gồm 1000
host được nhóm theo kiểu supernet. Trước tiên quản
trị mạng của công ty này phải yêu cầu ISP B cung
cấp một dải địa chỉ IP thuộc lớp C.Công ty A có thể
chọn một vài địa chỉ nằm trong dải sau:
 Lựa chọn 1 gồm 5 địa chỉ: dải 200.1.15.0, 200.1.16.0,
200.1.17.0, 200.1.18.0, 200.19.0.
 Lựa chọn 2 gồm 5 địa chỉ: 215.3.31.0, 215.3.32.0, 215.3.33.0,
215.3.34.0, 215.3.35.0
 Hãy trình bày cách thực lựa chọn địa chỉ và tìm
supernet mask tương ứng

33
Bài tập (tiếp…)

 Bài tập 3
 Cho một mạng cục bộ thuộc công ty A được phân địa
chỉ 220.130.15.0. Mạng này được chia thành 7 mạng
nhỏ:
 Mạng thứ nhất và 2 có 62 host
 Mạng thứ 3 và 4 có 30 host
 Mạng thứ 5, 6, 7 mỗi mạng có 14 host

 Hãy thiết kế mạng này

34
Tài liệu tham khảo

 Internetworking with TCP/IP, Vol 1, Douglas


Comer, Prentice Hall Computer
 Networking: a top-down approach featuring the
Internet, James F. Kurose, Keith W. Ross,
Addison Wesley, 4thed, 2006
 Computer Networks, Andrew S. Tanenbaum,
Prentice Hall, 4th Edition
 Computer Networks, Nick McKeown, Stanford
University

35
IP Version 6 Goals

 Support billions of hosts


 Reduce routing table size
 Simplify protocol
 Better security
 Attention to type of service
 Aid multicasting
 Roaming host without changing address
 Allow future protocol evolution
 Permit coexistence of old, new protocols

36
IP Version 6 (1)

The IPv6 fixed header (required).


37
IP Version 6 (2)

IPv6 extension headers


38
IP Version 6 (3)

The hop-by-hop extension header for


large datagrams (jumbograms). 39
IP Version 6 (4)

The extension header for routing.


40
CHƯƠNG 4
TẦNG GIAO VẬN (UDP/TCP)

ET4230

TS. Trần Quang Vinh


BM. Kỹ thuật Thông tin
Viện Điện tử - Viễn thông
Đại học Bách Khoa Hà Nội
vinhtq@mail.hut.edu.vn
Chương 4: Nội dung

Ví trí, vai trò, chức năng lớp giao vận


UDP
TCP
Điều khiển luồng và chống tắc nghẽn trong TCP

2
Transport services and protocols
 provide logical communication application
between app processes running transport
network
on different hosts data link
physical

 transport protocols run in end


systems
 send side: breaks app
messages into segments,
passes to network layer
 rcv side: reassembles
segments into messages,
application
passes to app layer transport
network
 more than one transport protocol data link
physical
available to apps
 Internet: TCP and UDP

3
Transport services and protocols

4
Transport vs. network layer
 network layer: logical communication
between hosts
 transport layer: logical communication
between processes
 relies on, enhances, network layer services

Máy trạm Router Máy trạm

Application Application
Thông tin giữa 2 lớp cùng cấp
Host-to-Host Host-to-Host

Internetwork Internetwork Internetwork

Network Network Network


Access Access Access

5
Internet transport-layer protocols
reliable, in-order delivery application
transport
(TCP) network
data link
physical
congestion control network
network data link
data link physical
flow control physical
network
data link
connection setup physical

unreliable, unordered network


data link
physical
delivery: UDP network
data link
physical
no-frills extension of “best- network
data link application
effort” IP physical
network transport
data link network

services not available: physical data link


physical

delay guarantees
bandwidth guarantees

6
Dịch vụ giao vận và ứng dụng

Ứng dụng Giao thức ứng Giao thức giao vận


dụng
E-mail SMTP TCP
remote terminal access Telnet TCP

Web HTTP TCP

File transfer FTP TCP

streaming multimedia giao thức riêng UDP hoặc TCP


(e.g.
RealNetworks)
Internet telephony giao thức riêng UDP
(e.g.,
Vonage,Dialpad)

7
Chức năng lớp giao vận

Mô hình Internet
Chức năng chính: định tuyến và chuyển tiếp
Truyền tin không tin cậy
 Không
có cơ chế đảm bảo thứ tự gói
 Không có cơ chế đảm bảo gói sẽ được truyền đến nơi nhận
Cần các chức năng bổ sung giữa “Application” và “Internetwork”

http, SIP, H.323, Ứng dụng truyền thông: truyền file, ứng
Application RTP, FTP, SMTP, dụng thời gian thực, web, email,
POP, SNMP .v.v. VoIP .v.v.

Host-to-Host TCP/UDP
IP, ICMP Định tuyến và chuyển tiếp, truyền
Internetwork
routing protocols tin không tin cậy
Điều khiển truy nhập kênh, biến đổi dòng
Network Access IEEE 802.x bit theo kênh vật lý

8
Ghép kênh

Chia nhỏ dữ liệu của người sử dụng thành các


segment lớp host-to-host
Ghép nhiều luồng dữ liệu lớp ứng dụng vào để
truyền trên mạng IP
FTP HTTP Chat FTP HTTP Chat

Application application-layer protocols

Host2Host multiplexing TCP/UDP demultiplexing

Internetwork

Network
Access

9
Ghép kênh

Phương pháp ghép kênh:


Mỗi ứng dụng (hay tiến trình) có một địa chỉ cổng
(port number) khác nhau
 Các cổng được định nghĩa trong RFC 1700.
Các ứng dụng trao đổi dữ liệu qua “socket”. Mỗi
socket được phân biệt qua bộ 2 tham số:
 Địa chỉ port: là một số 16 bit
 Địa chỉ IP

Socket được quản lý bởi hệ điều hành  Có thể tạo,


trao đổi dữ liệu qua socket thông qua các API của hệ
điều hành

10
SOCKET

Một số cổng điển hình:


0 – 1023: cổng mặc định định nghĩa bởi IANA
 FTP: 20, TCP App1 App2 App3
 SSH: 22, TCP/UDP Application

 Telnet: 23, TCP socket 1 socket 2 socket 3

 SMTP: 25, TCP Host-to-host

 DNS: 53, TCP/UDP


 HTTP: 80, TCP/UDP

Từ 1024 - 216: do người sử dụng tự định nghĩa

11
Cơ chế tăng độ tin cậy

Độ tin cậy:
Kiểm tra và chống lỗi
 thêm các mã kiểm tra lỗi phần dữ liệu (CRC .v.v.)
– ARQ (auto-repeat request)
– FEC (forwarding error correction)
Chống tắc nghẽn
 RED (Random Early Discarding)
 WRED (Weighted Random Early Discarding)
 ECN (Explicit Congestion Notification)

12
Cơ chế tăng độ tin cậy (2)

ARQ:
Trao đổi dữ liệu thông qua cơ chế: gửi – phúc đáp
Phân loại:
 Stop-and-Wait, Go-Back-N, Selective Repeat
Chức năng:
 Phát hiện lỗi gói, phát hiện mất gói, sắp xếp thứ tự gói
 Điều khiển luồng
– Thay đổi kích thước cửa sổ trượt W
– Thay đổi thời gian ACK để điều chỉnh RTT
Nhận xét:
 ARQ không thích hợp cho các dịch vụ thời gian thực:
– RTT lớn
– Băng thông của luồng dữ liệu bị giới hạn bởi W

13
Cơ chế tăng độ tin cậy (3)

FEC:
Bên phát không phát lại gói
Bên thu có chức năng:
 Kiểm tra lỗi
 Nếu phát hiện gói lỗi:
– Bên thu sửa lỗi (xác định vị trí bit lỗi)
– Nếu lỗi không sửa được: hủy gói
Nhận xét:
 FEC thích hợp cho các dịch vụ thời gian thực

14
Giao thức UDP
UDP – User Datagram Protocol
RFC 768
Gói tin UDP – UDP datagram
Đặc điểm:
Sử dụng cơ chế không liên kết (connectionless): không
cần thiết lập một phiên truyền giữa nguồn – đích
Các ứng dụng sử dụng UDP
Các ứng dụng không cần độ tin cậy cao
 Streaming Media, DNS (Domain Name System), Trivial File
Transfer Protocol (TFTP)
Các ứng dụng thời gian thực
 Real-time Multiplayer, Game trực tuyến
 VoIP

15
UDP: segment header

length, in bytes of
32 bits UDP segment,
source port # dest port # including header

length checksum
why is there a UDP?
 no connection establishment
application (which can add delay)
data
 simple: no connection state
(payload)
at sender, receiver
 small header size
 no congestion control: UDP
UDP segment format can blast away as fast as
desired

16
UDP checksum
Goal: detect “errors” (e.g., flipped bits) in transmitted
segment
sender: receiver:
treat segment contents,
including header fields, compute checksum of
as sequence of 16-bit received segment
integers
check if computed
checksum: addition checksum equals checksum
(one’s complement
sum) of segment field value
contents
sender puts checksum
value into UDP
checksum field

17
Giao thức TCP

TCP: giao thức truyền tin cậy (reliable):


Cơ chế báo nhận (ACK)
Mã chống lỗi để bảo vệ dữ liệu
Sequence number: phát hiện gói mất và gói không
đúng thứ tự
Cơ chế timeout
Cơ chế sắp xếp lại thứ tự gói ở đầu thu
Cơ chế điều khiển luồng (flow control)
Cơ chế chống tắc nghẽn (congestion control)
một số dịch vụ tầng ứng dụng sử dụng giao thức TCP
như: Email, FTP, SSH, Telnet, Web-browers ….

18
Cấu trúc gói tin TCP

19
TCP/IP HEADER

20
Thiết lập kết nối: 3-way handshake

21
Huỷ bỏ kết nối: 2-way handshake

22
Sắp xếp lại gọi tin trog TCP

23
Cơ chế truyền có xác nhận

24
Cơ chế truyền có xác nhận (tiếp)

25
Quá trình điều khiển luồng tránh tắc nghẽn

Round-trip time (RTT) Retransmission TimeOut (RTO)

Guard
Band

Phát (A)
Estimated RTT

Data1 Data2

ACK ACK
Thu (B)

26
Quá trình điều khiển luồng tránh tắc nghẽn

27
BÀI TẬP

28
CHƯƠNG 4
TCP CONGESTION CONTROL
ET4230

TS. Trần Quang Vinh


BM. Kỹ thuật Thông tin
Viện Điện tử - Viễn thông
Đại học Bách Khoa Hà Nội
vinhtq@hust.edu.vn
MỤC ĐÍCH
 Mục đích
• Tối ưu hóa thông lượng sử dụng của mạng
• Giảm trễ gói khi đi qua mạng
• Đảm bảo tính công bằng cho việc trao đổi thông tin
trên mạng
• Đảm bảo tránh tắc nghẽn trong mạng
 Điều khiển luồng được thực hiện ở tầng nào?
• Lớp giao vận:
 Điều khiển luồng từ đầu cuối đến đầu cuối (end-to-end)
 Tránh tràn bộ đệm của quá trình nhận tại đích

• Lớp Liên kết dữ liệu và lớp Mạng:


 Điều khiển luồng trên từng chặng (hop-by-hop):
 Tránh cho từng đường truyền khỏi bị tắc nghẽn

2
Kiểm soát luồng (Flow Control)
 Cơ chế cửa sổ trượt (sliding window)
• Cửa sổ nhận (Rwnd): số lượng data tối đa bên thu có
thể nhận
 Trường Receive Window Size (4kB – 8kB)
• Cửa sổ gửi (Cwnd: Congestion window size), tương
ứng với các segment mà nó được phép gửi

3
TCP Window

RTT > Window Size: hiệu suất kênh truyền thấp


RTT= Window Size: hiệu suất kênh đạt 100%.

4
Kiểm soát lỗi (Error Control)
 Checksum
 Acknowledgement (ACK)
• Rule 1: Gói ACK không được gán sequence number và không có
báo nhận cho bản thân gói ACK
 Timeout (Retransmission TimeOut -RTO)
• Sau khoảng thời gian RTO>RTT mà không nhận được ACK 
truyền lại
 Retransmission:
• Rule 2: việc truyền lại sảy ra khi timeout hoặc khi nhận được 3
ACK liên tiếp trùng nhau
• Rule 3: Không thiết lập timer cho gói ACK

 Out-of-order
• Rule 4: Dữ liệu đến bên nhận có thể không đúng thứ tự, chúng
được lưu trong bộ đệm bên thu và chỉ được chuyển lên tầng trên
khi đã sắp xếp lại
5
Kiểm soát lỗi (Error Control)

Sender Receiver Sender Receiv Sender Receiver Sender Receiv

Fram Fram Fram Fram


e e e e

Timeout
Timeout

Timeout

Timeout
Time

A CK A CK ACK
Fram
e

Timeout
Fram Fram
e e

Timeout
Timeout

ACK
ACK ACK

(a) (b) (c) (d)

Cơ chế truyền lại sử dụng timeout:


(a) trường hợp bình thường
(b,c) truyền lại khi mất ACK hoặc mất frame
(d) timeout < RTT gay ra phát trùng frame
6
RTO
 RTO thay đổi, thích ứng với sự thay đổi RTT
Round-trip time (RTT) Retransmission TimeOut (RTO)

Guard
Band

Phát (A)
Estimated RTT

Data1 Data2

ACK ACK
Thu (B)

7
Thuật toán Jacobson
 EWMA với thuật toán Jacobson
+ Tính giá trị ước lượng eRTT:
eRTTk=  eRTTk-1 + (1 - ) SampleRTT (1)
+ Thiết lập timeout dựa trên eRTT
RTO = 2 * eRTTk (2)
Trong đó:
+  là trọng số thuật toán EWMA (0 ≤  ≤ 1, thông thường  =7/8),
+ k là số bước lặp
+ SampleRTT: giá trị RTT đo được (thực tế) cho mỗi cặp packet/ACK tại
bước k.

8
Thuật toán Jacobson (tiếp)

RTT: gaia.cs.umass.edu to fantasia.eurecom.fr

350

300

250
RTT (milliseconds)

200

150

100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)

SampleRTT Estimated RTT

9
VÍ DỤ
 Một kết nối TCP có RTT hiện tại là 30 ms, nhận
được các bản tin ACK đến sau 26, 32, và 24 ms.
Tính ước lượng giá trị RTT theo thuật toán
Jacobson với α = 0.9.

10
Cơ chế ước lượng RTO

Thuật toán Karn:


Vấn đề: Khi truyền lại thì RTT được ước lượng thế nào
cho chính xác?
Giải pháp:
 Không cập nhật giá trị EstimatedRTT
 RTOk=2 * RTOk-1

Host A Host B Host A Host B

Truyền lại Truyền lại

RTT sai RTT sai

11
Cơ chế ước lượng RTO

Trong thuật toán trên:

Trế trung bình


Giả thiết: Phương sai của giá
trị RTT là hằng số
Phương sai
Trong thực tế: tăng nhanh
khi tải tăng
 Chiều dài hàng đợi của router
tăng dần khi tải tăng
 Phương sai của RTT tăng
nhanh khi tải tăng Tải tới hàng đợi router
 Phân bố xác suất của RTT

Xác suất
không xác định
Yêu cầu:
Ước lượng RTT chính xác để
tránh ước lượng sai RTO Phương
sai

RTT
kỳ vọng

12
Cơ chế ước lượng RTO

Thuật toán ước lượng RTO mới:


Cho phép đánh giá cả phương sai của RTT

1. EstimatedRTTk =  EstimatedRTTk-1 + (1 - ) SampleRTT


2. Differencek = (1 - )*Differencek-1 +  *|SampleRTT - EstimatedRTTk|
3. RTO =  * EstimatedRTTk +  *Differencek
  0,125;   1;   4;   0,25

13
Chống tắc nghẽn (Congestion Control)
 Hiện tượng tắc nghẽn

(b)
(c)
(a)
(d)

14
Nguyên nhân gây tắc nghẽn mạng
 Tràn bộ đệm
 Tốc độ xử lý chậm (hay nghẽn cổ chai)
H1 A1(t)
10Mb/s
D(t)
R1 H3
1.5Mb/s
H2 A2(t)
100Mb/s
A1(t)
D(t)
X(t)
A2(t)

Nhận xét:
Nếu bộ đệm rỗng  trễ nhỏ, mạng không bị tắc nghẽn,
nhưng hiệu suất sử dụng kênh thấp
Nếu bộ đệm luôn đầy  trễ lớn, có thể tắc nghẽn, nhưng
hiệu suất sử dụng kênh cao 15
Các giải pháp chống tắc nghẽn
 Chính sách chung
• Điều khiển tiếp nhận (Admission control)
 Cho phép một kết nối mới chỉ khi mạng có thể đáp ứng một
cách thích hợp
• Kiểm soát (Policing)
• Điều khiển luồng lưu lượng (Flow control)
 Yêu cầu giảm tốc độ luồng phát

16
Phân loại

17
Open-loop congestion control
 Thuật toán thùng rò (Leaky Bucket)

18
Open-loop congestion control
 Thuật toán Token Bucket

19
Close-loop congestion control
 Phản hồi ẩn (implicit feedback):
• bên phát sử dụng time-out để xác định liệu có xảy ra
tắc nghẽn hay không, ví dụ TCP
 Phản hồi hiện (explixit feedback):
• một số bản tin tường minh được gửi đến nguồn phát
 Điều khiển theo tốc độ
• điều khiển một cách trực tiếp tốc độ truyền tại phía gửi
(nguồn gửi tin)
 Điều khiển theo kích thước cửa sổ
• điều khiển gián tiếp tốc độ truyền thông qua việc thay
đổi kích thước cửa sổ

20
Close-loop congestion control
 Các bước điều khiển vòng đóng
• Bước một: theo dõi hệ thống để phát hiện tắc nghẽn
xảy ra khi nào và ở đâu
• Bước hai: nơi phát hiện ra tắc nghẽn cần phải chuyển
thông tin về sự tắc nghẽn đến những nơi có thể phản
ứng lại
• Bước ba: điều chỉnh lại hệ thống để sửa chữa sự cố

21
Chống tắc nghẽn trong TCP
 Nguyên tắc
• Timeout
• 3dupack
 Hoạt động
Hiệu năng
Trễ trung bình

Tải “Tải tối ưu” Tải

Window=min{ReceiveWindow, CongestionWindow}

Rwnd bên thu Cwnd bên phát


22
Slow Start
 Giai đoạn khởi đầu chậm SS (Slow Start)
• Cwnd := 1 MSS (Maximum Segment Size)
• Nhận được ACK Cwnd:=Cwnd * 2

23
Congestion Avoidance
 Giai đoạn chống tắc nghẽn CA (Congestion Avoidance)
• Cwnd := Cwnd +1 sau mỗi RTT không có lỗi cho đến khi có nghẽn

24
Congestion Avoidance
 Dấu hiệu tắc nghẽn:
• RTT > Timeout mà không nhận được ACK
 ssthresh:= Cwnd/2 (giảm theo cấp số nhân)
 Cwnd := 1
 TCP chuyển về trạng thái slow start (SS)

• Nhận được 3 Ack (báo nhận lặp)


 Đặt ngưỡng ssthresh xuống còn một nửa giá trị hiện tại của
Cwnd: ssthresh := cwnd/2
 Đặt Cwnd bằng ½ giá trị hiện tại: Cwnd:= Cwnd/2
 TCP quay lại trạng thái chống tắc nghẽn (CA)

25
TCP Congesttion control

26
Ví dụ

27
TCP Tahoe and Reno

28
TCP Performance problems
 So sánh TCP trên Windows với MacOSX
• Hệ thống WIFI
• Data message: 100KB

29
TCP Performance problems
 TCP/IP Data Encapsulation

30
TCP Performance problems
 TCP Segment
• MSS: 576 – 40 = 536 (mặc định, X25)
• MSS: 1500-40 = 1460 (Ethernet)

31
TCP Performance problems
 Nagle’s Algorithm

32
TCP Performance problems
 Delayed ACK (hồi âm muộn)

33
TCP Performance problems
 Timestamp (option)
• Timestamp = 12 byte
• MSS = 1500 – 52 = 1448 byte

34
TCP Performance problems
 Windows
• 68 mẩu x 1460 bytes + mẩu 720 bytes (no timestamp)
• Bên gửi gửi đi 68 mẩu (đầy MSS nên gửi ngay), và giữ lại mẩu
cuối (720 bytes) chờ hồi âm của mẩu 68
• Bên nhận dùng luật hồi âm kép nên sẽ hồi âm cho các mẩu 2, 4,
…, 68 ngay lập tức, và cuối cùng khi bên gửi nhận được hồi âm
của mẩu 68 sẽ gửi ngay mẩu lẻ cuối cùng
 MacOSX
• 69 mẩu 1448 bytes + mẩu 88 bytes (có timestamp)
• Bên gửi gửi đi 69 mẩu (đầy MSS nên gửi ngay), và giữ lại mẩu
cuối (88 bytes) chờ hồi âm mẩu 69
• Bên nhận theo luật hồi âm kép, nên sẽ hồi âm cho các mẩu 2, 4,
…, 68 ngay lập tức, nhưng giữ lại không hồi âm mẩu 69 ngay
 Kết quả:
• Cứ mỗi 100KB thì MacOSX bị chậm lại 200ms!
35
TCP Performance problems
 Windows

36
TCP Performance problems
 MacOSX

37
BÀI TẬP
 Bài 1:
Xét tính hiệu quả của việc xử dụng cơ chế SS với một liên kết có
RTT=10ms và không có tắc nghẽn. Cho biết Rwnd = 24 KB và MSS
= 2 KB. Cần bao nhiêu thời gian trước khi cửa sổ thu đầy đủ có thể
được gửi đi?
 Bài 2:
Giả sử một kết nối TCP sử dụng cửa sổ tắc nghẽn Cwnd = 18 KB
thì sảy ra timeout. Tính kích thước cửa sổ nếu 4 lần truyền sau đó
đều thành công. Giải thiết kích thước segment tối đa là 1 KB
 Bài 3:
A TCP machine is sending full windows of 65,535 bytes over a 1-
Gbps channel that has a 10-msec one-way delay. What is the
maximum throughput achievable? What is the line efficiency?

38
Socket Programming

TS. Trần Quang Vinh


BM. Kỹ thuật Thông tin
Viện Điện tử - Viễn thông
Đại học Bách Khoa Hà Nội
m706501@shibaura-it.ac.jp
Socket là gì?

Socket là một cổng logic mà một chương trình sử dụng để kết nối
với một chương trình khác chạy trên một máy tính khác trên Internet
Server thì sẽ cần một socket để lắng nghe các kết nối từ Client
Client thì phải cần có một socket để kết nối tới Sever
Chương trình mạng có thể sử dụng nhiều Socket cùng một lúc, nhờ
đó nhiều ứng dụng có thể sử dụng Internet cùng một lúc.
Socket Interface được định nghĩa trong UNIX BSD, dựa trên việc
mở rộng tập các system calls (access files)
Hiện có nhiều platform khác nhau cung cấp API cho các ứng dụng
mạng, có sự khác biệt nhỏ giữa các thư viện socket trên các platform
khác nhau
Việc lập trình ứng dụng sử dụng socket sẽ dựa vào 1 trong 2 giao
thức TCP hoặc UDP của lớp giao vận

2
Mô hình hoạt động client/server dùng socket

Hai ứng dụng client/server lúc còn độc lập nhau

Hai ứng dụng client/server lúc giao tiếp nhau (dùng kết nối TCP và
giao thức request/reply)

3
Cấu trúc địa chỉ Internet

Định nghĩa dạng dữ liệu cấu trúc trong ngôn ngữ C. Cấu trúc này
chỉ có 1 trường kiểu u_long chứa địa chỉ IP 32 bit

4
Cấu trúc địa chỉ Socket

Cấu trúc địa chỉ socket sockaddr_in lưu trữ địa chỉ IP, chỉ số port,
và kiểu (family protocol)

sin_len: lưu trữ chiều dài cấu trúc của sockaddr_in


sin_family: dạng protocol của socket
sin_port: chỉ số port
sin_addr: địa chỉ in Internet của socket
sin_zero[8]: không dùng, đặt giá trị = 0

5
Cấu trúc socket

Socket được định nghĩa trong hệ điều hành bằng một cấu trúc,
được xem như điểm nối để hai procceses giao tiếp với nhau
Cấu trúc socket gồm 5 field:
Family: xác định protocol group
Type: xác loại socket, stream, datagram hay raw socket.
Protocol: là field thường gán giá trị bằng 0
Local Socket Address và Remote Socket Address: là địa chỉ socket của
process cục bộ và từ xa

6
Các loại socket

Các giao tiếp socket được định nghĩa trên môi trường TCP/IP
Stream Socket: dùng cho connection-oriented protocol (TCP)
Datagram Socket: dùng cho connectionless protocol (UDP)
Raw Socket: dùng cho một số protocol của một số ứng dụng đặc biệt,
dùng các dịch vụ trực tiếp của lớp IP

7
Byte Ordering

Big-Endian Byte Order:


Byte có trọng số lớn lưu trước (Most Significant byte first)

Little-Endian Byte Order:


Byte có trọng số nhỏ lưu trước (Lest Significant byte first)

8
Byte Ordering

Network Byte Order:


Thứ tự lưu trữ dùng cho giao tiếp mạng
Tuỳ cấu trúc của mỗi host, lưu trữ số theo một trong hai cách trên 
không đồng nhất khi thực hiện giao tiếp trên network
Giao tiếp socket định nghĩa một số hàm để thực hiện các thao tác
chuyển đổi:
 htons() và htonl(): chuyển từ dạng lưu trữ của host sang network
 ntohs() và ntohl(): chuyển từ dạng lưu trữ của network sang host

9
inet_ntoa(), inet_aton()

char *inet_ntoa(struct in_addr in);


int inet_aton(const char *cp, struct in_addr *inp);

Chuyển đổi địa chỉ IP từ dạng chuỗi “thập phân với dấu chấm” sang
dạng cấu trúc in_addr và ngược lại
inet_aton() returns non-zero if the address is a valid one, and it returns
zero if the address is invalid
inet_ntoa() returns the dots-and-numbers string in a static buffer that is
overwritten with each call to the function
 The “n” in “ntoa” stands for network, and the “a” stands for ASCII, so it's
“Network To ASCII”

10
Các hàm cơ bản dùng cho lập trình socket

socket()
bind()
connect()
listen()
accept()
read() / write()
send() / recv()
sendto() / recvfrom()
close() / shutdown()

11
Hàm socket()

#include <sys/types.h>
#include <sys/socket.h>

int socket(int domain, int type, int protocol);

Hàm socket() tạo một socket, kết quả trả về là một số nguyên nhận
dạng (socket descriptor), nếu có lỗi giá trị trả về là -1
Các tham số:
domain: họ socket
type: kiểu socket
protocol: giao thức, thường đặt bằng 0

12
Hàm socket()

13
Hàm socket()

Ví dụ
// Khởi tạo socket mới, nếu thất bại báo sai
#include <sys/types.h>
#include <sys/socket.h>
int main(void)
{
int sockfd;
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("socket");
exit(1);
}
printf("Sockfd : %d \n", sockfd);
}

14
Hàm bind()

#include <sys/types.h>
#include <sys/socket.h>

int bind(int sockfd, struct sockaddr *my_addr, int addrlen);

Chức năng:
Đăng ký socket đã khởi tạo với địa chỉ socket local
Trả về 0 nếu thành công, -1 nếu thất bại
Các tham số:
sockfd: mô tả socket trả về bởi hàm socket()
my_addr: con trỏ chỉ đến struct sockaddr của địa chỉ socket bao gồm
cổng và IP address
addrlen: chiều dài (byte) của địa chỉ socket

15
Hàm connect()

#include <sys/types.h>
#include <sys/socket.h>

int connect(int sockfd, struct sockaddr *serv_addr, int addrlen);

Chức năng
Dùng cho chương trình client thiết lập kết nối đến server
Trả về 0 nếu thành công, -1 nếu thất bại
Các tham số:
sockfd: mô tả socket được trả về bởi hàm socket()
serv_addr: con trỏ địa chỉ socket của server
addrlen: chiều dài của địa chỉ socket server

16
Hàm listen()

int listen(int sockfd, int backlog);

Chức năng:
Hàm listen() để kết nối đến server, khai báo độ dài hàng chờ
Hàm này dùng cho chương trình server connection-oriented để đặt
socket ở trạng thái chờ, lắng nghe kết nối từ phía client
Trả về 0 nếu thành công, -1 nếu thất bại
Các tham số:
sockfd: mô tả socket đã tạo bởi hàm socket()
backlog: số request có thể queued (giới hạn bởi 20, thường từ 5-10)

17
Hàm accept()

#include <sys/types.h>
#include <sys/socket.h>

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

Chức năng
Chấp nhận kết nối từ client, tạo socket mới
Giá trị là một socket descriptor của socket mới
Returns: non-negative descriptor if OK, -1 on error
Các tham số:
sockfd: mô tả socket đã tạo bởi hàm socket()
addr: con trỏ địa chỉ socket của client kết nối đến
addrlen: chiều dài của addr

18
Các hàm trao đổi dữ liệu

Gửi/Nhận dữ liệu trên giao thức TCP (stream sockets or connected


datagram sockets)
send() / recv()
write() / read()
Gửi/Nhận dữ liệu trên giao thức UDP (regular unconnected
datagram sockets)
sendto() / recvfrom()

19
Hàm send()

int send(int sockfd, const void *msg, int len, int flags);

Chức năng
Gửi dữ liệu tới một socket
Trả về số bytes được gửi thành công, trả về -1 nếu thất bại
 Số bytes được gửi thành công có thể nhỏ hơn số bytes thực sự muốn gửi
Các tham số:
sockfd: mô tả socket muốn gửi dữ liệu đến, đây có thể là giá trị trả về
bởi hàm socket() hoặc accept()
msg: con trỏ đến dữ liệu muốn gửi
len: chiều dài của dữ liệu (in byte)
flags: tập các cờ điều khiển hoạt động của hàm này, thường set giá trị 0

20
Hàm recv()

int recv(int sockfd, void *buf, int len, int flags);

Chức năng
Nhận dữ liệu từ một socket
Trả về số bytes nhận được, trả về -1 nếu thất bại
 Số bytes nhận được có thể nhỏ hơn số bytes yêu cầu bởi tham số len
Các tham số:
sockfd: mô tả socket muốn nhận dữ liệu
buf: con trỏ đến bộ đệm muốn lưu dữ liệu
len: chiều dài tối đa của bộ đệm (in byte)
flags: tập các cờ điều khiển hoạt động của hàm này, thường set giá trị 0

21
Hàm read()

int read(int sockfd, const void *buf, int len);

Chức năng
Đọc dữ liệu từ connection vào bộ nhớ
Trả về số bytes đọc được nếu thành công, trả về 0 nếu không có dữ
liệu, trả về -1 nếu thất bại
Các tham số:
sockfd: mô tả socket đã tạo bởi hàm socket()
buf: con trỏ đến bộ đệm để lưu thông tin đọc được
len: chiều dài của bộ đệm

22
Hàm write()

int write(int sockfd, const void *buf, int len);

Chức năng
Ghi dữ liệu từ bộ nhớ lên connection.
Trả về số bytes ghi được nếu thành công, trả về -1 nếu thất bại
Các tham số:
sockfd: mô tả socket đã tạo bởi hàm socket()
buf: con trỏ đến bộ đệm để lưu thông tin đọc được
len: chiều dài của bộ đệm

23
Hàm sendto()

int sendto (int sockfd,


const void *buf,
int len,
int flags,
const struct sockaddr_in *toaddr,
int toaddrlen);

Chức năng:
Gửi dữ liệu đến một địa chỉ socket từ xa
Trả về số bytes gửi được nếu thành công, trả về -1 nếu thất bại
Các tham số:
sockfd, buf, len: giống các hàm đã giới thiệu
flags: thường đặt bằng 0
toaddr, toaddrlen: địa chỉ socket đến và chiều dài của nó

24
Hàm recvfrom()

int recvfrom ( int sockfd,


const void *buf,
int len,
int flags,
const struct sockaddr_in *fromaddr,
int fromaddrlen);

Chức năng
Nhận dữ liệu từ một địa chỉ socket từ xa
Trả về số bytes gửi được nếu thành công, trả về -1 nếu thất bại
Các tham số:
sockfd, buf, len: giống các hàm đã giới thiệu
flags: thường đặt bằng 0
fromaddr, fromaddrlen: địa chỉ socket gửi đến và chiều dài của nó

25
Hàm fork() – Khởi tạo process

#include <unistd.h>

pid_t fork(void);

Chức năng
Khởi tạo các process, sử dụng trong multi-threading
Không có tham số
Nếu khởi tạo thành công, trả về hai giá trị: (-1 nếu lỗi)
 Trả về process ID của child’s process cho parent’s process
 Trả về 0 cho child’s process
type pid_t defined in sys/types.h. Normally, the process ID is an
integer

26
Hàm close() / shutdown()

#include <unistd.h>
int close(int sockfd);

#include <sys/socket.h>
int shutdown(int sockfd, int how);

Chức năng
Hàm close() đóng một socket cả phía client và server, đồng thời giải
phóng socket
Hàm shutdown() đóng một phía client hoặc server, không giải phóng
socket, vẫn phải gọi hàm close() khi muốn thực sự ngắt kết nối
 Tham số how

Trả về 0 nếu thành công và -1 nếu thất bại


Trên windows platfrom gọi hàm closesocket()

27
Hàm thiết lập bộ nhớ - memset()

void* memset( void* buffer, int ch, size_t count );

Chức năng
Khởi tạo vùng bộ nhớ chỉ ra bởi con trỏ buffer, điền đầy count bytes
đầu tiên của vùng bộ nhớ này bởi ch
Trả về con trỏ chỉ tới vùng bộ nhớ buffer
#include <stdio.h>
#include <string.h>

#define LENGTH 10
int main(void)
{
char x='X';
char buffer[LENGTH];
int cnt=0;

memset(buffer,x,LENGTH);
for(;cnt < LENGTH; cnt++) {
printf("\nbuffer[%d] = %c",cnt,buffer[cnt]);
}

28
Hàm so sánh memcmp()

int memcmp(const void *buffer1,


const void *buffer2, size_t count);

Chức năng
So sánh 'count' kí tự đầu tiên của 2 chuỗi buffer1 và buffer2
Giá trị trả về:
< 0: buffer1 < buffer2
= 0: buffer1=buffer2
> 0: buffer1 > buffer2

29
Hàm copy bộ nhớ memcpy()

void *memcpy( void *to, const void *from, size_t count );

Chức năng
Copy count kí tự từ from sang to
Giá trị trả về là to
 hàm này sẽ copy nguyên chính xác số bytes cần copy và không copy bytes
cuối cùng của string '\0'. Vì vậy cần phải copy n+1 nếu muốn copy n byte
#include <stdio.h>
#include <string.h>

int main(void)
{
const char from[]="Xcross87 is a chick of programming";
char* to;

memcpy(to,from,strlen(from)+1);

printf(" Gia tri cua \'to\' sau khi copy la: %s ",to);

return 0;
}
30
getaddrinfo(), freeaddrinfo(), gai_strerror()

Chức năng
getaddrinfo() lấy thông tin về host name, service, và khởi tạo sockaddr
bằng kết quả trả về
Trả về 0 nếu thành công, khác 0 nếu có lỗi, bắt lỗi bằng hàm
gai_strerror()
freeaddrinfo() giải phóng bộ nhớ

31
Giải thuật cho TCP client

Xác định địa chỉ server


Tạo socket
Kết nối đến server
Gởi/nhận dữ liệu theo giao thức lớp ứng dụng đã thiết kế
Đóng kết nối

32
Giải thuật cho UDP client

Xác định địa chỉ server


Tạo socket
Đăng ký socket với hệ thống
Gởi/nhận dữ liệu theo giao thức lớp ứng dụng đã thiết kế đến server
theo địa chỉ đã xác định
Đóng kết nối

33
Giải thuật cho iterative server

Connection-oriented iterative server:


Tạo socket
Đăng ký địa chỉ socket với hệ thống
Đặt socket ở trạng thái lắng nghe, chờ và sẵn sàng cho việc kết nối từ
client
Chấp nhận kết nối từ client, gửi/nhận dữ liệu theo giao thức lớp ứng
dụng đã thiết kế
Đóng kết nối sau khi hoàn thành, trở lại trạng thái lắng nghe và chờ kết
nối mới
Connectionless iterative server:
Tạo socket
Đăng ký với hệ thống
Lặp công việc đọc dữ liệu từ client gửi đến, xử lý và gửi trả kết quả cho
client theo đúng giao thức lớp ứng dụng đã thiết kế

34
Connection-oriented iterative server

35
Connectionless iterative server

36
Connectionless iterative server

37
Concurrent Server

Các yêu cầu cho concurrent Server:


Tại một thời điểm có thể xử lý nhiều yêu cầu từ client
Chương trình concurrent server có thể chạy trên máy chỉ có 1 CPU
Hệ thống phải hỗ trợ multi-tasking

38
Concurrent Server

Giải thuật cho chương trình


connection-oriented concurrent
server:
Tạo socket, đăng ký với hệ thống
Đặt socket ở chế độ chờ, lắng
nghe kết nối
Khi có request từ client, chấp nhận
kết nối, tạo một process con để xử
lý. Quay lại trạng thái chờ, lắng
nghe kết nối mới
Công việc của process mới gồm:
 Nhận thông tin kết nối của client
 Giao tiếp với client theo giao thức
lớp ứng dụng đã thiết kế
 Đóng kết nối và kết thúc process
con

39
Connection-oriented concurrent server

40
Connection-oriented concurrent server

41
Concurrent Server

Giải thuật cho chương trình concurrent, connectionless server:


Tạo socket, đăng ký với hệ thống
Lặp việc nhận dữ liệu từ client, đối với một dữ liệu nhận, tạo mới một
process để xử lý. Tiếp tục nhận dữ liệu mới từ client
Công việc của process mới:
 Nhận thông tin của process cha chuyển đến, lấy thông tin socket
 Xử lý và gửi thông tin về cho client theo giao thức lớp ứng dụng đã thiết kế
 Kết thúc

42
Multi-protocol Server (TCP,UDP)

Dùng một chương trình để mở một master socket cho cả TCP và


UDP
Dùng hàm hệ thống (select) để chọn lựa TCP socket hay UDP
socket sẵn sàng
Tùy vào protocol (TCP, UDP) để xử lý gửi nhận thông điệp theo
đúng giao thức của lớp ứng dụng
Tham khảo thêm RFC 1060

43
Multi-service Server

Tạo một điểm giao tiếp chung


Với mỗi request, xem loại dịch vụ cần xử lý
Với mỗi loại dịch vụ, xử lý riêng biệt
Có thể kết hợp Multi-service và Multi- protocol để thiết kế cho
chương trình server

44
SOME SUMMARY

45
SOME SUMMARY

46
SOME SUMMARY

47
SOME SUMMARY

48
Window Socket API

TS. Trần Quang Vinh


BM. Kỹ thuật Thông tin
Viện Điện tử - Viễn thông
Đại học Bách Khoa Hà Nội
vinh.tranquang1@hust. vn
Giới thiệu Winsock

Windows Sockets API (Winsock API - WSA)


WSA là giao diện lập trình mạng, tương tự như Socket Linux với một số
ngoại lệ như header files, các hàm của Winsock2 có thêm tiền tố WSA
Giao tiếp lập trình mạng cho phép phát triển ứng dụng giao tiếp trên
cùng một máy hoặc nhiều máy khác nhau thông qua môi trường mạng
Winsock được hỗ trợ sẵn trong windows cho phép lập trình mạng với
giao thức TCP/IP hoặc IPX
Lập trình Winsock trong windows sử dụng winsock2.h chứa các
prototypes và thư viện ws2_2.lib

#include <stdio.h>
#include <winsock2.h>

int main()
{
/**/
return 0;
}

2
Giới thiệu Winsock

Windows Sockets API (Winsock API - WSA)


Phiên bản winsock hỗ trợ cho các hệ điều hành Windows như sau:

3
Compile and run Windows Sockets programs

For Visual Studio .Net (Visual C++):


Select Project menu  your_project_name Properties… sub menu

4
Compile and run Windows Sockets programs

For Visual Studio .Net (Visual C++):


Expand Linker folder  select Input sub folder; For Additional
Dependencies, select the right empty field and type the library name
ws2_32.lib

5
Compile and run Windows Sockets programs

Visual C++ 6.0


Select Project menu  Settings… sub menu

6
Quản lý địa chỉ Winsock

Địa chỉ IPv4


Theo IPv4 , địa chỉ máy tính được thể hiện dưới dạng một số 32 bit
Khi một client muốn kết nối với một server, nó phải biết địa chỉ của
server và cổng kết nối
Khi một server muốn nghe các yêu cầu từ client chuyển tới, chúng phải
chỉ định 1 địa chỉ IP và 1 cổng kết nối cụ thể
Trong Winsock, thông tin địa chỉ IP và cổng dịch vụ được chứa trong
cấu trúc sockaddr_in
struct sockaddr_in {
short sin_family; // họ địa chỉ Internet (AF_INET)
struct in_addr sin_addr; // địa chỉ Internet
u_short sin_port; // địa chỉ cổng, để nghe kết nối
char sin_zero[8]; // để dành 8 byte (không sử dụng)
};

7
Quản lý địa chỉ Winsock

Cấu trúc sockaddr_in


sin_addr: là một structure để xác định địa chỉ IP
 Nếu sin_addr.s_addr = INADDR_ANY;  IP sẽ chính là IP nội bộ. Các Server thường
dùng để chọn địa chỉ IP nội bộ và lắng nghe kết nối
 Nếu sin_addr.s_addr = inet_addr(“xx x x.xx x x.xx x x.xxxx”);  IP sẽ là IP chỉ định theo
chuỗi. Client phải chỉ định được IP của Server mới kết nối được
sin_port: cổng (logic) để lắng nghe kết nối
 Card mạng sẽ thông qua số hiệu port này để nhận biết được gói tin đang nhận (hay gửi
đi) của ứng dụng nào?
– Các port dưới 1024 là những port dành riêng cho các dịch vụ như:
80 (Web), 20,21 (FTP), Mail (25 SMTP, 993 POP3), 53 (DNS), 23 (Telnet)...
 Dựa vào số port người quản trị có thể kiểm soát được mạng
– ví dụ như chỉ có lướt WEB (mở port 80, 53) nhưng chặn hết các port khác  không thể chat và
gameonline mặc dù có Internet
 Với số nguyên u_short (16bit) có thể chọn tới 2^16 = 65535 port
sin_zero: Là vùng đệm để cấu trúc SOCKADDR_IN có cùng kích cỡ với SOCKADDR. Nó
hữu dụng khi sử dụng hàm inet_addr() để convert một địa chỉ IP dạng chấm sang dạng
u_long 32 bit

8
Các bước tạo một streaming TCP/IP

Server side programs


1. Initialize WSA – WSAStartup()
2. Create a socket – socket()
3. Bind the socket – bind()
4. Listen on the socket – listen()
5. Accept a connection – accept(), connect()
6. Send and receive data – recv(), send(), recvfrom(), sendto()
7. Disconnect – closesocket()
Client side programs
1. Initialize WSA – WSAStartup()
2. Create a socket – socket()
3. Connect to the server – connect()
4. Send and receive data – recv(), send(), recvfrom(), sendto()
5. Disconnect – closesocket()

9
Flowchart
TCP UDP
(SOCK_STREAM) (SOCK_DGRAM)

10
Khởi động Winsock

(1) Tạo một object WSADATA


WSADATA wsaData;

WSADATA là một structure chứa thông tin về việc thực thi Windows
Sockets:
typedef struct WSAData {
WORD wVersion; // Phiên bản hiện tại
WORD wHighVersion; // Phiên bản cao nhất có thể hỗ trợ
char szDescription[WSADESCRIPTION_LEN + 1]; // Ghi chú
char szSystemStatus[WSASYS_STATUS_LEN + 1]; // Trạng thái HT
unsigned short iMaxSockets; // Không sử dụng từ Version 2 trở đi
unsigned short iMaxUdpDg; // Không sử dụng từ Version 2 trở đi
char FAR* lpVendorInfo; // Không sử dụng từ Version 2 trở đi
} WSADATA, *LPWSADATA;

11
Khởi động Winsock

(2) Gọi hàm WSAStartup() để khởi động thư viện WS2_32.lib


int WSAStartup (WORD wVersionRequested, LPWSADATA lpWSAData);

Tham số:
 wVersionRequested là phiên bản thư viện được sử dụng. Ở đây sẽ là giá trị 0x0202
có nghĩa là phiên bản 2.2. Có thể dùng macro MAKEWORD(2,2) để trả về giá trị 0x0202
 lpWSAData là một số thông tin bổ sung sẽ được trả về sau khi gọi khởi tạo Winsock

Ví dụ:
wVersionRequested = MAKEWORD(2,2);
int wsaerr = WSAStartup(wVersionRequested, &wsaData);
if (wsaerr != 0){
printf("The Winsock dll not found!\n");
}

Hủy Winsock
int WSACleanup (void);

12
Khởi động Winsock

#include <stdio.h>
#include <winsock2.h>

/* Create a Winsoc */
int main()
{
WORD wVersionRequested = MAKEWORD(2,2);
WSADATA wsaData;

int wsaerr = WSAStartup(wVersionRequested, &wsaData);
if (wsaerr != 0){
printf("The Winsock dll not found!\n");
return 0;
}
else {
printf("The Winsock dll found!\n");
printf("The status: %s.\n", wsaData.szSystemStatus);
}
WSACleanup();
return 0;
}

Next Step: Creating a Socket 13


Tạo một socket

(1) Khai báo một object kiểu SOCKET


SOCKET m_socket;

(2) Gọi hàm socket(), gán giá trị trả về cho m_socket
m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );

SOCKET là một cấu trúc để lưu giữ 1 Socket


SOCKET socket (
int af,
int type,
int protocol
);
 af: họ địa chỉ giao thức, thiết lập là AF_INET nếu sử dụng IPv4, AF_NETBIOS:
NetBIOS (Giao thức dùng tên máy để truyền dữ liệu), AF_APPLETALK: AppleTalk,
AF_ATM: ATM
 type: kiểu giao thức của socket, thiết lập là SOCK_STREAM cho TCP/IP,
SOCK_DGRAM cho UDP/IP, SOCK_RAW  protocol có thể là: IPPROTO_RAW hay
IPPROTO_ICMP
 protocol: thiết lập là IPPROTO_TCP đối với TCP, IPPROTO_UDP đối với UDP

14
Tạo một socket

int main()
{
/* Create a Winsoc */

/* Create a SOCKET object called m_socket */
SOCKET m_socket;

// Call the socket function and return its value to the m_socket variable.
// using AF_INET family, TCP socket type and protocol of the AF_INET ‐ IPv4
m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

// Check for errors to ensure that the socket is a valid socket.
if (m_socket == INVALID_SOCKET){
printf("Error at socket(): %ld\n", WSAGetLastError());
WSACleanup();
return 0;
}
else{
printf("socket() is OK!\n");
}
return 0;
}

Server Next Step: Binding a Socket


Client Next Step: Connecting to a Socket 15
Server: Binding a socket

Hàm bind()
giúp cho SOCKET của SERVER biết rằng nó sẽ chờ đợi kết nối và
nhận dữ liệu trên IP nào và PORT bao nhiêu?
int bind(
SOCKET s, // Socket được thiết lập
const struct sockaddr* name,
int namelen // Kích thước của cấu trúc sockaddr
);

sockaddr* name: Cấu trúc ADDR bao gồm địa chỉ IP và PORT
PORT ở đây nên ở trong khoảng nào?
 0 -1023: Là những PORT đã được sử dụng bởi các dịch vụ như WEB, FTP
 1024-49151: Là PORT dành cho SERVER lắng nghe. SERVER nên chọn
trong khoảng này.
 49152-65535: Là PORT khởi tạo ngẫu nhiên dành cho CLIENT kết nối tới
Server

16
Server: Binding a socket

(1) Tạo và thiết lập giá trị cho một object kiểu sockaddr_in
sockaddr_in service;

service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr("127.0.0.1");
service.sin_port = htons(55555);

(2) Gọi hàm bind() với tham số là socket và sockaddr_in vừa tạo
if (bind(m_socket, (SOCKADDR*)&service, sizeof(service)) == SOCKET_ERROR){
printf("bind() failed: %ld.\n", WSAGetLastError());
closesocket(m_socket);
return 0;
}
else {
   printf("bind() is OK!\n");
}

AF_INET: họ địa chỉ Internet


"127.0.0.1": địa chỉ IP nội bộ gắn với socket
55555: số hiệu cổng gắn với socket

17
Server: Binding a socket

int main()
{
/* Create a Winsoc*/
/* Create a SOCKET */

/* Create a sockaddr_in object and set its values*/
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr("127.0.1.1");
service.sin_port = htons(55555);

// Call the bind function, passing the created socket and the sockaddr_in 
structure as parameters, Check for general errors.
if (bind(m_socket, (SOCKADDR*)&service, sizeof(service)) == SOCKET_ERROR){
printf("bind() failed: %ld.\n", WSAGetLastError());
closesocket(m_socket);
return 0;
}
else{
printf("bind() is OK!\n");
}
return 0;
}

Next Step: Listening on a Socket 18


Server: Listening on a Socket

Hàm listen()
Sau khi socket được bind đến một địa chỉ IP và cổng trên hệ thống,
server bắt đầu lắng nghe trên địa chỉ IP và cổng cho các yêu cầu kết
nối đến

int listen(
SOCKET s, // Socket đã được thiết lập IP và PORT
int backlog
);
 Backlog: Số kết nối cho phép chờ trong hàng đợi khi Server chưa chấp nhận kết nối. (vì đôi lúc có
thể có tới 2 hay 3 client kết nối tới cùng 1 lúc). Giá trị tốt nhất là khoảng từ 5 – 10

Ví dụ

if ( listen( m_socket, 1 ) == SOCKET_ERROR )


printf( "Error listening on socket.\n");

19
Server: Listening on a Socket

int main()
{
/* Create a Winsoc */
/* Create a SOCKET */
/* Call the bind function*/

/* Call the listen function, passing the created socket and the maximum number of 
allowed, connections to accept as parameters. Check for general errors*/

if (listen( m_socket, 1) == SOCKET_ERROR)
printf("listen(): Error listening on socket %ld.\n", WSAGetLastError());
else
{
printf("listen() is OK, I'm waiting for connections...\n");
}
return 0;
}

Next Step: Accepting a Connection 20


Server: Accepting a Connection

Hàm accept()
Khi Client kết nối tới Server, nó phải chờ Server chấp nhận kết nối (nếu ở giao thức TCP)
bằng hàm accept()

SOCKET accept(
SOCKET s,
struct sockaddr* addr,
int* addrlen
);

SOCKET s: Socket lắng nghe của SERVER.


sockaddr addr: Là cấu trúc sockaddr lưu địa chỉ IP và PORT của CLIENT kết nối tới
SERVER.
int addrlen: Kích thước cấu trúc địa chỉ IP này.
Hàm ACCPET trả về 1 SOCKET mới, Socket mới được tạo này đại diện cho 1 Connection
(kết nối) mới giữa Server và Client.
Sau khi đã truyền dữ liệu, phải đóng SOCKET này lại bằng hàm closesocket(connect)

21
Server: Accepting a Connection

(1) Tạo một socket tạm thời để chấp nhận kết nối
SOCKET AcceptSocket;

(2) Tạo một loop để kiểm tra các yêu cầu kết nối, nếu một y/c kết nối
đến, gọi hàm accept() để xử lý y/c này
printf( "Waiting for a client to connect...\n" );
while (1) {
AcceptSocket = SOCKET_ERROR;
while ( AcceptSocket == SOCKET_ERROR ) {
AcceptSocket = accept( m_socket, NULL, NULL );
}

(3) Khi kết nối với client được chấp nhận, chuyển điều khiển từ socket
tạm thời sang socket ban đầu và dừng việc kiểm tra các kết nối mới
printf( "Client Connected.\n");
m_socket = AcceptSocket;
break;
}

22
Server: Accepting a Connection
int main()
{
...
// Create a temporary SOCKET object called AcceptSocket for accepting connections
SOCKET AcceptSocket;

// Create a continuous loop that checks for connections requests. If a connection
// request occurs, call the accept function to handle the request.
printf("Server: Waiting for a client to connect...\n");
printf("***Hint: Server is ready...run your client program...***\n");

// Do some verification...
while (1){
AcceptSocket = SOCKET_ERROR;
while (AcceptSocket == SOCKET_ERROR){
AcceptSocket = accept(m_socket, NULL, NULL);
}
// else, accept the connection...
// When the client connection has been accepted, transfer control from the
// temporary socket to the original socket and stop checking for new connections.
printf("Server: Client Connected!\n");
m_socket = AcceptSocket;
break;
}
return 0;
}
Next Step: Connecting to a Socket 23
Server: Accepting a Connection

We can verify the connection listening and waiting


using netstat command on Windows console

24
Client: Connecting to a Socket

Hàm connect()
Client muốn truyền thông trên mạng thì phải kết nối với một server
int connect(
SOCKET s, // socket đã được khởi tạo
struct sockaddr *serv_addr, // IP và PORT của Server
int addrlen ); // Sizeof của cấu trúc sockaddr

25
Client: Connecting to a Socket

(1) Khai báo và thiết lập giá trị cho một object kiểu sockaddr_in
sockaddr_in clientService;

clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr( "127.0.0.1" );
/* 127.0.0.1 là địa chỉ của server mà client muốn kết nối*/
clientService.sin_port = htons( 27015 );
/* 27015 là địa chỉ cổng gắn với server mà client muốn kết nối*/

(2) Gọi hàm connect(), tham số là socket và sockaddr_in vừa tạo


if ( connect( m_socket, (SOCKADDR*) &clientService,
sizeof(clientService) ) == SOCKET_ERROR)
{
printf( "Failed to connect.\n" );
WSACleanup();
return;
}

Next Step: Sending and Receiving Data 26


Sending and Receiving Data

Nhận dữ liệu trên giao thức TCP


int recv(
SOCKET s,
char * buf,
int len,
int flags
);

Gửi dữ liệu giao thức TCP


int send(
SOCKET s,
const char * buf,
int len,
int flags
);

SOCKET s: Là SOCKET được tạo ra khi Server chấp nhận kết nối từ CLIENT
char * buf: Là dữ liệu (dạng BYTE – char) nhận hay gửi
int len: Kích thước của dữ liệu
int flags: Một số cờ hiệu đi kèm (thông thường là 0)

27
Sending and Receiving Data

Nhận dữ liệu trên giao thức UDP


int recvfrom(
SOCKET s, // SOCKET được tạo ra ban đầu
char * buf, // dữ liệu (dạng BYTE – char) nhận
int len, // Kích thước của dữ liệu nhận
int flags, // Một số cờ hiệu đi kèm (thông thường là 0)
struct sockaddr *from,// IP và PORT từ bên gửi
int *fromlen // Sizeof cấu trúc addr
);

Gửi dữ liệu giao thức UDP


int sendto(
SOCKET s, // SOCKET được tạo ra ban đầu
const char *buf, // dữ liệu (dạng BYTE – char) gửi
int len, // Kích thước của dữ liệu gửi
int flags, // Một số cờ hiệu đi kèm
const struct sockaddr* to, // IP và PORT từ bên gửi
int tolen // Sizeof cấu trúc addr
);

28
Sending and Receiving Data

Demonstrates the send() and recv() functions (TCP packet)


Server
int bytesSent;
int bytesRecv = SOCKET_ERROR;
char sendbuf[200] = "Hello! I’m server, sending some test data.";
char recvbuf[200] = "";
 
bytesRecv = recv(m_socket, recvbuf, 32, 0);
printf("Bytes Recv: %ld\n", bytesRecv);
 
bytesSent = send(m_socket, sendbuf, strlen(sendbuf), 0);
printf("Bytes Sent: %ld\n", bytesSent);

29
Sending and Receiving Data

Demonstrates the send() and recv() functions (TCP packet)


Client
int bytesSent;
int bytesRecv = SOCKET_ERROR;
char sendbuf[200] = "Hello! I’m client, sending some test data.";
char recvbuf[200] = "";
 
bytesSent = send(m_socket, sendbuf, strlen(sendbuf), 0);
printf("Bytes Sent: %ld\n", bytesSent);
 
while(bytesRecv == SOCKET_ERROR)
{
    bytesRecv = recv(m_socket, recvbuf, 32, 0);
    if (bytesRecv == 0 || bytesRecv == WSAECONNRESET)
    {
        printf("Connection Closed.\n");
        break;
    }
    if (bytesRecv < 0)
        return;
    printf("Bytes Recv: %ld\n", bytesRecv);
}
30
Close/Shutdown

Hủy socket sau một kết nối hoặc kết thúc chương trình
int closesocket (SOCKET s);

int shutdown(
SOCKET s,
int how
);

Tham số how của hàm shutdown():


SD_RECEIVE: Đóng SOCKET, không cho phép NHẬN nhưng cho phép GỬI
SD_SEND: Đóng SOCKET, không cho phép GỬI nhưng cho phép NHẬN
SD_BOTH: Không cho GỬI và NHẬN (giống gọi hàm closesocket)

31
Chương 5: Network Sercurity
Overview

TS. Trần Quang Vinh


BM. Kỹ thuật Thông tin
Viện Điện tử - Viễn thông
Đại học Bách Khoa Hà Nội
vinhtq@hust.edu.vn
Giới thiệu nội dung
 Nội dung:
 Tổng quan về an ninh mạng.
 Một số kiểu tấn công mạng phổ biến.
 Biện pháp đảm bảo an ninh mạng
 Tài liệu tham khảo:
 Network and Internetwork Security
 Introduction to Cryptography – PGP
 Cryptography: Theory and Practice

2
Tổng quan về an ninh mạng
 Mục tiêu
 Xác định các khả năng, nguy cơ xâm phạm mạng
 Đánh giá nguy cơ tấn công của Hacker, sự phát tán virus...
 Xác định cấp độ an ninh cần thiết cho việc điều khiển hệ thống và
các thành phần mạng
 Sử dụng hiệu quả các công cụ bảo mật và những biện pháp, chính
sách cụ thể chặt chẽ

3
Các dạng tấn công
 Tấn công thụ động:
 Nhằm mục đích nắm bắt được thông tin
 Phát tán nội dung thông điệp (release of message contents)
 Phân tích tải (traffic analysis)
 Các hành động tấn công thụ động thường khó có thể phát hiện
nhưng có thể ngăn chặn hiệu quả
 Tấn công chủ động
 Thực hiện sự biến đổi thông điệp, xoá bỏ hoặc thêm thông tin ngoại
lai (dữ liệu giả) để làm sai lệch thông tin gốc nhằm mục đích phá
hoại, phủ nhận dịch vụ
 Giả danh (masquerade)
 Phát lại (replay)
 Thay đổi thông điệp (modification of message).
 Phủ nhận dịch vụ (denial of service):
 Tấn công chủ động dễ phát hiện nhưng lại khó ngăn chặn tuyệt đối
4
Các dạng tấn công
 Mạo danh (Masquerade)
 Đối phương giả mạo một đối tượng được ủy quyền
 Entity Authentification

5
Các dạng tấn công
 Phát lại (replay)
 Đối phương chặn bắt các đơn vị dữ liệu và phát lại chúng tạo lên
các hiệu ứng không được ủy quyền

6
Các dạng tấn công
 Thay đổi thông điệp (modification of message)
 Một phần của thông điệp hợp pháp bị sửa đổi, bị làm chậm, hoặc bị
sắp xếp lại tạo ra các hiệu ứng không được ủy quyền

7
Các dạng tấn công
 Phủ nhận dịch vụ (denial of service)
 dạng tấn công đưa đến việc cấm hoặc ngăn chặn khả năng sử dụng
các dịch vụ, các khả năng truyền thông

8
Các đặc trưng kỹ thuật của an ninh mạng
 Tính bảo mật, riêng tư (Confidentiality)
 Tính toàn vẹn (Integrity)
 Tính khả dụng (Availability)
 Xác thực (Authentication)
 Kiểm soát truy cập (Access control)
 Chống phủ định (Nonreputation)

9
Các đặc trưng kỹ thuật của an ninh mạng
 Tính bảo mật, riêng tư (Confidentiality)
 Khoá mật mã, bảo mật vật lý
 Thiết lập đường truyền ảo (e.g., VPN)
 Bảo vệ luồng thông tin khỏi các thao tác phân tích luồng thông tin

10
Các đặc trưng kỹ thuật của an ninh mạng
 Tính toàn vẹn (Integrity)

11
Các đặc trưng kỹ thuật của an ninh mạng
 Xác thực (Authentication)

12
Các đặc trưng kỹ thuật của an ninh mạng
 Tính khả dụng (Availability)
 Kiểm soát truy cập (Access control)
 Chống phủ định (Nonreputation)

13
Lỗ hổng bảo mật và điểm yếu của mạng
 Lỗ hổng bảo mật
 là tất cả những đặc tính của phần mềm hay phần cứng cho phép
người dùng không hợp lệ có thể truy cập hoặc tăng quyền mà
không cần xác thực
 Lỗ hổng loại C:
 Cho phép thực hiện các phương thức tấn công theo kiểu từ chối
dịch vụ DoS
 Mức nguy hiểm thấp, chỉ ảnh hưởng chất lượng dịch vụ, có thể làm
ngưng trệ, gián đoạn hệ thống, không phá hỏng dữ liệu hoặc chiếm
quyền truy nhập
 Ví dụ:
 Bandwidth/Throughput Attacks
 Protocol Attacks
 Software Vulnerability Attacks

14
Lỗ hổng bảo mật và điểm yếu của mạng
 Lỗ hổng loại C
 DDoS Attacks

15
Lỗ hổng bảo mật và điểm yếu của mạng
 Lổ hổng loại B:
 Cho phép người sử dụng có thêm các quyền trên hệ thống mà
không cần thực hiện kiểm tra tính hợp lệ
 Mức độ nguy hiểm trung bình, có thể dẫn đến lộ thông tin cần bảo
mật

16
Lỗ hổng bảo mật và điểm yếu của mạng
 Lỗ hổng loại A:
 Cho phép user có thể truy nhập bất hợp pháp vào hệ thống
 Lỗ hổng rất nguy hiểm, có thể làm phá hủy toàn bộ hệ thống
 Ví dụ: Lỗi tràn đệm:
 Tràn stack (stack-based)
 Tràn heap (heap-based)
 Tràn số nguyên (integer overflow)

17
Các biện pháp phát hiện hệ thống bị tấn công
 Kiểm tra các dấu hiệu hệ thống bị tấn công
 Kiểm tra các tài khoản người dùng lạ
 Kiểm tra sự xuất hiện các tập tin lạ
 Kiểm tra thời gian thay đổi trên hệ thống
 Kiểm tra hiệu năng của hệ thống
 Kiểm tra hoạt động của các dịch vụ hệ thống cung cấp

18
Một số công cụ tấn công mạng phổ biến
 Quét mạng (Scanner)
 Quét cổng
 Quét điểm yếu
 Khắc phục: Sử dụng các phần mềm phát hiện quét cổng, dùng
firewall hoặc IDS. Cấu hình dịch vụ hợp lý và kịp thời vá lỗ
 Bẻ khoá (Password Cracker)
 Attack: Password Guessing
 Khắc phục: có chính sách bảo vệ mật khẩu đúng đắn
 Trojans
 Khắc phục: Quét virus và cập nhật virus database thường xuyên
 Sniffer
 Kiểm thử các thâm nhập
 Sử dụng chính các kỹ thuật do đối phương sử dụng để xác định cụ
thể các lỗ hổng và mức độ ảnh hưởng của chúng 19
Understanding TCP Port Scanning

20
Chương 5: Network Sercurity
Overview

TS. Trần Quang Vinh


BM. Kỹ thuật Thông tin
Viện Điện tử - Viễn thông
Đại học Bách Khoa Hà Nội
vinhtq@hust.edu.vn
Giới thiệu nội dung
 Nội dung:
 Tổng quan về an ninh mạng.
 Một số kiểu tấn công mạng phổ biến.
 Biện pháp đảm bảo an ninh mạng
 Tài liệu tham khảo:
 Network and Internetwork Security
 Introduction to Cryptography – PGP
 Cryptography: Theory and Practice

2
Tổng quan về an ninh mạng
 Mục tiêu
 Xác định các khả năng, nguy cơ xâm phạm mạng
 Đánh giá nguy cơ tấn công của Hacker, sự phát tán virus...
 Xác định cấp độ an ninh cần thiết cho việc điều khiển hệ thống và
các thành phần mạng
 Sử dụng hiệu quả các công cụ bảo mật và những biện pháp, chính
sách cụ thể chặt chẽ

3
Các dạng tấn công
 Tấn công thụ động:
 Nhằm mục đích nắm bắt được thông tin
 Phát tán nội dung thông điệp (release of message contents)
 Phân tích tải (traffic analysis)
 Các hành động tấn công thụ động thường khó có thể phát hiện
nhưng có thể ngăn chặn hiệu quả
 Tấn công chủ động
 Thực hiện sự biến đổi thông điệp, xoá bỏ hoặc thêm thông tin ngoại
lai (dữ liệu giả) để làm sai lệch thông tin gốc nhằm mục đích phá
hoại, phủ nhận dịch vụ
 Giả danh (masquerade)
 Phát lại (replay)
 Thay đổi thông điệp (modification of message).
 Phủ nhận dịch vụ (denial of service):
 Tấn công chủ động dễ phát hiện nhưng lại khó ngăn chặn tuyệt đối
4
Các dạng tấn công
 Mạo danh (Masquerade)
 Đối phương giả mạo một đối tượng được ủy quyền
 Entity Authentification

5
Các dạng tấn công
 Phát lại (replay)
 Đối phương chặn bắt các đơn vị dữ liệu và phát lại chúng tạo lên
các hiệu ứng không được ủy quyền

6
Các dạng tấn công
 Thay đổi thông điệp (modification of message)
 Một phần của thông điệp hợp pháp bị sửa đổi, bị làm chậm, hoặc bị
sắp xếp lại tạo ra các hiệu ứng không được ủy quyền

7
Các dạng tấn công
 Phủ nhận dịch vụ (denial of service)
 dạng tấn công đưa đến việc cấm hoặc ngăn chặn khả năng sử dụng
các dịch vụ, các khả năng truyền thông

8
Các đặc trưng kỹ thuật của an ninh mạng
 Tính bảo mật, riêng tư (Confidentiality)
 Tính toàn vẹn (Integrity)
 Tính khả dụng (Availability)
 Xác thực (Authentication)
 Kiểm soát truy cập (Access control)
 Chống phủ định (Nonreputation)

9
Các đặc trưng kỹ thuật của an ninh mạng
 Tính bảo mật, riêng tư (Confidentiality)
 Khoá mật mã, bảo mật vật lý
 Thiết lập đường truyền ảo (e.g., VPN)
 Bảo vệ luồng thông tin khỏi các thao tác phân tích luồng thông tin

10
Các đặc trưng kỹ thuật của an ninh mạng
 Tính toàn vẹn (Integrity)

11
Các đặc trưng kỹ thuật của an ninh mạng
 Xác thực (Authentication)

12
Các đặc trưng kỹ thuật của an ninh mạng
 Tính khả dụng (Availability)
 Kiểm soát truy cập (Access control)
 Chống phủ định (Nonreputation)

13
Lỗ hổng bảo mật và điểm yếu của mạng
 Lỗ hổng bảo mật
 là tất cả những đặc tính của phần mềm hay phần cứng cho phép
người dùng không hợp lệ có thể truy cập hoặc tăng quyền mà
không cần xác thực
 Lỗ hổng loại C:
 Cho phép thực hiện các phương thức tấn công theo kiểu từ chối
dịch vụ DoS
 Mức nguy hiểm thấp, chỉ ảnh hưởng chất lượng dịch vụ, có thể làm
ngưng trệ, gián đoạn hệ thống, không phá hỏng dữ liệu hoặc chiếm
quyền truy nhập
 Ví dụ:
 Bandwidth/Throughput Attacks
 Protocol Attacks
 Software Vulnerability Attacks

14
Lỗ hổng bảo mật và điểm yếu của mạng
 Lỗ hổng loại C
 DDoS Attacks

15
Lỗ hổng bảo mật và điểm yếu của mạng
 Lổ hổng loại B:
 Cho phép người sử dụng có thêm các quyền trên hệ thống mà
không cần thực hiện kiểm tra tính hợp lệ
 Mức độ nguy hiểm trung bình, có thể dẫn đến lộ thông tin cần bảo
mật

16
Lỗ hổng bảo mật và điểm yếu của mạng
 Lỗ hổng loại A:
 Cho phép user có thể truy nhập bất hợp pháp vào hệ thống
 Lỗ hổng rất nguy hiểm, có thể làm phá hủy toàn bộ hệ thống
 Ví dụ: Lỗi tràn đệm:
 Tràn stack (stack-based)
 Tràn heap (heap-based)
 Tràn số nguyên (integer overflow)

17
Các biện pháp phát hiện hệ thống bị tấn công
 Kiểm tra các dấu hiệu hệ thống bị tấn công
 Kiểm tra các tài khoản người dùng lạ
 Kiểm tra sự xuất hiện các tập tin lạ
 Kiểm tra thời gian thay đổi trên hệ thống
 Kiểm tra hiệu năng của hệ thống
 Kiểm tra hoạt động của các dịch vụ hệ thống cung cấp

18
Một số công cụ tấn công mạng phổ biến
 Quét mạng (Scanner)
 Quét cổng
 Quét điểm yếu
 Khắc phục: Sử dụng các phần mềm phát hiện quét cổng, dùng
firewall hoặc IDS. Cấu hình dịch vụ hợp lý và kịp thời vá lỗ
 Bẻ khoá (Password Cracker)
 Attack: Password Guessing
 Khắc phục: có chính sách bảo vệ mật khẩu đúng đắn
 Trojans
 Khắc phục: Quét virus và cập nhật virus database thường xuyên
 Sniffer
 Kiểm thử các thâm nhập
 Sử dụng chính các kỹ thuật do đối phương sử dụng để xác định cụ
thể các lỗ hổng và mức độ ảnh hưởng của chúng 19
Understanding TCP Port Scanning

20
Chương 5: Network Sercurity
Cryptography

TS. Trần Quang Vinh


BM. Kỹ thuật Thông tin
Viện Điện tử - Viễn thông
Đại học Bách Khoa Hà Nội
vinhtq@mail.hut.edu.vn
Mã hóa (Cryptography)

 KHÁI NIỆM

KB(KA(m)) = m

KA(m)

m KB( KA(m))
"Bob, I love you. Alice"

2
Mật mã Xê-da (Caesar cipher)

 Classic Caesar Cipher


 Thay thế các chữ cái trong bảng chữ cái
bằng cách dịch đi k chữ cái

3
Mật mã Xê-da (Caesar cipher)

 Mono-Alphabetic Cipher
 Thay thế các chữ cái trong bảng chữ cái bằng một chữ cái bất kỳ sao
cho mỗi chữ cái đó có một chữ cái thay thế duy nhất và ngược lại
 KEY: 26! (~ 1026)
 Thám mã: phân tích tần xuất  dễ dàng

4
Mật mã Xê-da (Caesar cipher)

 Polyalphabetic encryption (Blaise de Vigenere, 500 năm trước)


 Mục tiêu: chống thám mã bằng phân tích tần xuất
 Cách thức: Sử dụng nhiều mã Monoalphabetic
 Kết quả: Trong cùng một thông điệp, mỗi chữ cái ở một vị trí khác
nhau có thể được mã hóa một cách khác nhau

5
Các phương pháp thám mã

 Tấn công chỉ biết bản mã


 Ciphertext + algorithm  Key and the plaintext
 Brute-Force attack
 Statistical attack
 Pattern attack

Ciphertext-Only Attack

6
Các phương pháp thám mã

 Tấn công nhận biết bản rõ


 Eve has access to some plaintext/ciphertext pairs in addition to the
intercepted ciphertext
 Eve uses the relationship b/w the previous pair to analyze the current
ciphertext

Known-Plaintext Attack

7
Các phương pháp thám mã

 Tấn công lựa chọn bản rõ


 plaintext/ciphertext pairs have been chosen by attacker

Chosen-Plaintext Attack
Chosen plaintext attack

8
REVIEW
 Plaintext - original message
 Ciphertext - coded message
 Cipher - algorithm for transforming plaintext to ciphertext
 Key - info used in cipher known only to sender/receiver
 Encipher (encrypt) - converting plaintext to ciphertext
 Decipher (decrypt) - recovering ciphertext from plaintext
 Cryptography - study of encryption principles/methods
 Cryptanalysis (code breaking) - study of principles/methods of
deciphering ciphertext without knowing key
 Cryptology - field of both cryptography and cryptanalysis

9
Mã hóa khóa đối xứng

 THÀNH PHẦN
 Plaintext: original message or data fed into the algorithm as input
 Encryption algorithm: performs substitutions and transformations
 Secret key: exact substitutions and transformations performed by the
algorithm depend on the key
 Ciphertext: scrambled message produced as output
 Decryption algorithm: ciphertext + secret key  original plaintext

10
Mã hóa khóa đối xứng

 ĐẶC ĐIỂM
 Yêu cầu:
 Thuật toán mã hóa mạnh
 Duy trì độ mật của khóa
 Độ mật của mã hóa đối sứng phụ thuộc vào độ mật của khóa, không
phụ thuộc vào độ mật của thuật toán
 PHÂN LOẠI
 Mã hóa khối (block ciphers)
 PGP (Pretty Good Privacy): bảo mật e-mail
 SSL (Secure Sockets Layer): bảo mật kết nối TCP, và
 IPsec để bảo mật lớp giao vận
 Mã hóa dòng (stream ciphers – mã hóa từng byte)

11
Mã hóa khóa đối xứng

 HỆ MÃ AN TOÁN
 Chi phí phá vỡ hệ mã vượt quá giá trị của thông tin được mã hóa.
 Thời gian cần thiết để phá vỡ hệ mã vượt quá tuổi thọ hữu ích của
thông tin
 Brute Force attack
 Thử tất cả các khả năng cho đến khi thành công
 Cần có sự hiểu biết về bản rõ mong muốn (nhận dạng bản rõ)

12
Block Ciphers
 NGUYÊN TẮC
 Bản tin cần mã hóa được chia thành các khối k bít
 Mỗi khối được lập mã một cách độc lập
 Ví dụ:
input output input output
000 110 100 011
001 111 101 010
010 101 110 000
011 100 111 001
Bản rõ: 010 110 001 111
Bản mã: 101 000 111 001
Nhận xét:
- 23=8 giá trị đầu vào có thể, nên ta sẽ có 8!=40,320 cách hoán vị
- Cần duy trì bảng ánh xạ lớn: 2k, k=64 là 264 giá trị với mỗi giá trị là
một số 64 bít, key size: 264!.

13
Block Ciphers

 KEY SIZE
 Thay vì sử dụng bảng ánh xạ đầy đủ, block cipher thường sử dụng
các hàm đặc biệt để tạo ra các bảng hoán vị ngẫu nhiên
 Ứng dụng: DES (khối 64 bít với khóa 56 bít ) và AES (khối 128 bít với
khóa 128, 192, hoặc 256 bít)
64-bit input

8bits 8bits 8bits 8bits 8bits 8bits 8bits 8bits

S1 S2 S3 S4 S5 S6 S7 S8

8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits

8-bit to
64-bit intermediate 8-bit
mapping

Loop for
n rounds 64-bit output

14
Symmetric Block encryption algorithms

Cipher block modes


ECB
CBC
CFB
CTR Data
Encryption
Standard
(DES)

The three
most
important
symmetric
Advanced
Encryption
block ciphers Triple DES
Standard (3DES)
(AES)

15
Block Ciphers

 THUẬT TOÁN
 Tạo các số ngẫu nhiên 64 bít r(i) cho mỗi khối bản rõ m(i)
 Tính c(i) = KS(m(i)  r(i)) // : phép XOR, KS là khóa
 Truyền đi c(i) và r(i) với i=1,2,…
 Tại phía thu: m(i) = KS(c(i))  r(i)
 Ví dụ: Xét mã khối 3 bít với khóa như bảng sau.

input output input output


- Bản rõ: 010 010 010 000 110 100 011
001 111 101 010
- r(1)=001, r(2)=111, r(3)=100 010 101 110 000
011 100 111 001
m(i)= 010 010 010
r(i)= 001 111 100
m(i)  r(i)= 011 101 110
c(i)=KS(m(i)r(i))= 100 010 000
16
Block Ciphers

 MÃ HÓA
 Tạo chuỗi ngẫu nhiên k bít (Initialization Vector - IV) ký hiệu là r(0).
Gửi đi r(0) ở dạng bản rõ
 Với khối bản rõ đầu tiên m(1), tính m(1)  c(0) và mã hóa với khóa Ks
c(1) = KS(m(1)  c(0))
Gửi đi khối mã c(1)
 Với khối thứ i, tạo khối mã tương ứng: c(i) = KS(m(i)  c(i-1))
 GIẢI MÃ m(i) m(i)

m(1) = KS(c(1))  c(0)


+

 m(i) = KS(c(i))  c(i-1)
c(i-1) + c(i-1)

block block
cipher cipher

sent receiced
c(i) c(i)

17
Cipher Block Chaining (CBC)

18
Symmetric Block encryption algorithms

 DES: Data Encryption Standard


 Tiêu chuẩn mã hóa của Mỹ [NIST 1977]
 Khóa đối xứng 56-bit
 Sử dụng mã hóa khối (block 64 bit) với kỹ thuật CBC, Số lần trộn: 16
 Tính bảo mật của DES:
 Phá mã DES 56 bít trong thời gian ít hơn 1 ngày
 Tăng tính bảo mật của DES bằng cách mã hóa 3 lần với 3 khóa khác nhau
(Triple-DES) (actually encrypt, decrypt, encrypt)

19
AES: Advanced Encryption Standard
 Chuẩn khóa đối xứng mới, được đề xuất 1997 thay thế cho DES
 Mã hóa khối 128 bit; Khóa: 128, 192, hoặc 256 bit
 Brute force decryption taking 1 sec on DES, takes 149 trillion years for AES

20
Average Time Required for Exhaustive Key Search

21
Stream Ciphers

22
RC4 algorithm
 Mã luồng (stream cipher) designed in 1987 by Ron Rivest
 Kích thước khoa thay đổi
 Thuật thoán mã hóa dựa trên sự hoán vị ngẫu nhiên (random permutation)
 Được sử dụng trong Secure Sockets Layer/Transport Layer Security (SSL/TLS)
 Also used in Wired Equivalent Privacy (WEP) protocol and the newer WiFi Protected
Access (WPA) protocol that are part of the IEEE 802.11 wireless LAN standard

23
Feistel Cipher Design Elements
Subkey
• The essence of a generation
• Larger block Key size symmetric block algorithm
sizes mean cipher is that a • Greater
greater security • Larger key size single round complexity in
but reduced means greater offers inadequate this algorithm
encryption/decr security but may security but that should lead to
yption speed decrease multiple rounds greater
encryption/decryp offer increasing difficulty of
tion speed security cryptanalysis
Block size
Number of
rounds

Fast software • If the algorithm can be


• Greater encryption/decry
complexity concisely and clearly
ption explained, it is easier to
generally means
greater • In many cases, encryption is analyze that algorithm
resistance to embedded in applications or for cryptanalytic
cryptanalysis utility functions in such a way vulnerabilities and
as to preclude a hardware therefore develop a
Round function implementation; accordingly, higher level of
the seed of execution of the assurance as to its
algorithm becomes a concern strength
Ease of analysis
24
Public Key Cryptography

 NGUYÊN TẮC

K-B(K+B(m)) = K+B(K-B(m)) = m
25
Giải thuật RSA

 TẠO KHÓA
(1) Chọn 2 số nguyên tố lớn p và q với p≠q, ngẫu nhiên và độc lập
(2) Tính: n = pq
(3) Tính: giá trị z = (p-1)(q-1).
(4) Chọn một số nguyên tố e, với e<n, không có thừa số chung với z.
(5) Tính: d sao cho ed mod z = 1 (hay ed-1 chia hết cho z).
Khóa công khai (n,e) hay K+B:
 n, tích của hai số nguyên tố ban đầu
 e, số mũ công khai (cũng gọi là số mũ mã hóa)
Khóa bí mật (n,d) hay K-B:
 n, xuất hiện cả trong khóa công khai và khóa bí mật
 d, số mũ bí mật (cũng gọi là số mũ giải mã)

26
Giải thuật RSA

 MÃ HÓA c = m e mod n
m = c d mod n
 GIẢI MÃ
Ví dụ:
Bob chọn p=5, q=7. Do đó n=35, z=24.
Chọn e=5, tính được d=29 (với ed-1=144 chia hết cho z=24).
Bản rõ: M = 0000 l100  12 = m
Encrypting 8-bit messages.
m me c = me mod n
encrypt: bit pattern
00001100 12 248832 17

d
decrypt:
c c m = cd mod n
17 481968572106750915091411825223071697 12
27
Giải thuật RSA

 CHUYỂN ĐỔI BẢN RÕ


 Chuyển đổi từ M sang m sao cho không có giá trị nào của M tạo ra
văn bản mã không an toàn
 Nếu m = 0 hoặc m = 1 sẽ tạo ra các bản mã có giá trị là 0 và 1 tương
ứng
 Khi mã hóa với số mũ nhỏ (chẳng hạn e = 3) và m cũng có giá trị nhỏ,
giá trị cũng nhận giá trị nhỏ (so với n). Như vậy phép môđun không
có tác dụng và có thể dễ dàng tìm được m bằng cách khai căn bậc e
của c (bỏ qua môđun)

28
Giải thuật RSA

 ĐỘ BẢO MẬT CỦA RSA


 Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học:
 bài toán phân tích ra thừa số nguyên tố các số nguyên lớn và
 bài toán RSA (là bài toán tính căn bậc e môđun n, với n là hợp số)

29
Session Keys

 LẬP MÃ

30
Session Keys

 GIẢI MÃ

31
Hàm băm mật (Cryptographic Hash Function)

 Đặc điểm
 Hàm băm H(.) là một hàm nhận giá trị đầu vào là một chuỗi m có độ
dài bất kỳ, đầu ra là một chuỗi H(m) có độ dài cố định
 Dễ tính toán
 Không thể đảo ngược: Không thể xác định m từ H(m)
 Không thể thay thế: không thể tìm được hai chuỗi m và m’ khác nhau
mà có cùng giá trị băm H(m) = H(m').

large
H: Hash
message
Function
m

H(m)

32
Hàm băm mật (Cryptographic Hash Function)

 SO SÁNH VỚI INTERNET CHECKSUM

message ASCII format message ASCII format


I O U 1 49 4F 55 31 I O U 9 49 4F 55 39
0 0 . 9 30 30 2E 39 0 0 . 1 30 30 2E 31
9 B O B 39 42 D2 42 9 B O B 39 42 D2 42
B2 C1 D2 AC different messages B2 C1 D2 AC
but identical checksums!

33
Hàm băm mật (Cryptographic Hash Function)

 CÁC GIẢI THUẬT BĂM


 MD5 (Message-Digest Algorithm 5): giải thuật được sử dụng rộng rãi
với giá trị băm dài 128 bít.
 MD5 là chuẩn của Internet (RFC 1321), thiết kế bởi Ronald Rivest năm
1991
 SHA-1 (Secure Hash Algorithm 1) được sử dụng rộng rãi và là chuẩn
của Mĩ (NIST), sử dụng giá trị băm có độ dài 160 bít.

34
Authentication Key

 VÂN ĐỀ TOÀN VẸN BẢN TIN


 Alice tạo bản tin m và tính giá trị băm h=H(m) của m
 Thêm h vào m được bản tin mở rộng (m, h) và gửi đi cho Bob
 Bob nhận được (m,h) và tính H(m) từ m đã nhận. Nếu H(m)=h thì Bob
kết luận bản tin m không bị thay đổi
 ĐIỂM YẾU
 Hacker có thể tạo một bản tin giả m’, (khẳng định mình là Alice),
 Tính H(m’) và gửi cho Bob (m’, H(m’)).
 Khi nhân được bản tin, Bob check như bước 3 và không thể phát hiện
bản tin này là giả
 GIẢI PHÁP ?
 Authentication Key

35
Authentication Key

 HOẠT ĐỘNG
 Cần chia sẻ một bí mật s (là một chuỗi bít) được gọi là khóa nhận
thực (authentication key)
 MAC (message authentication code) = H(m+s)

36
Chữ ký số (Digital Signature)

 Chữ ký số cho phép người nhận kiểm tra tính xác thực
(verifiable) và tính nguyên vẹn của văn bản và tính
không thể giả mạo (nonforgeable) của người ký văn bản
hay người tạo ra văn bản.
 Dựa vào tính chất của RSA
K-B(K+B(m)) = K+B(K-B(m)) = m
- Bob’s private -
Bob’s message, m KB K B(m)
key
Dear Alice
Bob’s message,
Oh, how I have missed Public key m, signed
you. I think of you all the
time! …(blah blah blah) encryption (encrypted) with
algorithm his private key
Bob

37
Chữ ký số (Digital Signature)

 KẾT HỢP VỚI HÀM BĂM

Bob sends digitally signed


message:
large
message H: Hash encrypted
m function H(m)
msg digest
-
KB(H(m))
Bob’s digital large
private signature message
- Bob’s
key KB (encrypt) m digital
public
+ signature
key KB
encrypted H: Hash (decrypt)
msg digest function
+ -
KB(H(m))
H(m) H(m)

equal
?
38
Một số hướng đi tương lai của mật mã

 Bảo mật trong điện toán đám mây (cloud computing)


 Mở rộng mô hình mã hóa: cho đối tượng nhóm và cho
việc giải mã bộ phận
 An toàn trước các tấn công vật lý
 An toàn trước sự tấn công của máy tính lượng tử

39

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy