TCP/IP là mộttậpcủa các protocols (một
bộgiao thức) định nghĩacáchthứctruyền
dữliệu qua môi trường Internet
TCP/IP là tên củamôhìnhmạngđược
ghép giữa hai giao thức chính trong mạng
là TCP (Transmission Control Protocol) và
IP (Internet Protocol)
144 trang |
Chia sẻ: oanh_nt | Lượt xem: 1442 | Lượt tải: 1
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình mạng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Môn học
Lập trình mạng
CBGD: Phùng Hữu Phú
Email: phu@dit.hcmut.edu.vn
URL:
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 1
Nội dung môn học
CHƯƠNG 1: GII THIU V TCP/IP
CHƯƠNG 2: THIT K GII THUT CHO
CHƯƠNG TRÌNH
CLIENT/SERVER
CHƯƠNG 3: LP TRÌNH MNG TRÊN CÁC MÔI
TRUNG PH D
NG
CHƯƠNG 4: LP TRÌNH MNG VI JAVA
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 2
Nội dung môn học(tt)
CHƯƠNG 5: LP TRÌNH WEB – CGI
CHƯƠNG 6: LP TRÌNH WEB VI CÁC
CÔNG NGH PH BIN
CHƯƠNG 7: NG D
NG XML TRONG LP
TRÌNH MNG
CHƯƠNG 8: BO MT D LIU TRUYN
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 3
CHƯƠNG 1- GII THIU V TCP/IP
1.1 Tng quát v TCP/IP.
Gii thiu
Lp Network
Lp Transport (TCP và UDP)
Lp Appication
1.2 Các giao thc và dch v trên Internet.
1.3 Gii thiu mt s ng dng m
ng
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 4
Tng quát v TCP/IP
• Một số đặc tính :
– Độc lập về hình thái của mạng.
– Độc lập về phần cứng của mạng.
– Các chuẩn giao thức mở.
– Mô hình địa chỉ toàn cầu.
– Nền tảng client/server mạnh mẽ.
– Các chuẩn về giao thức ứng dụng mạnh mẽ.
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 5
Gii thiu
Telnet FTP SMTP DNS SNMP
TCP UDP
ICMP
IPARP
Ethernet Token Ring FDDI WANsNetwork
interface layer
Internet layer
(gateway level)
Transport layer
(host level)
Applications
layer
TCP/IPOSI
Application
Presentation
Session
Transport
Network
Data link
Physical
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 6
TCP/IP and OSI model
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 7
TCP/IP Protocol Stack
!
"# " $%& '$
()*
) + , ! $! $
"# $ -
" )
.
$
$ $ /$ % " 012*34
546)3 (7. 8%&$
34
93 : ;1 $ =
.
$ )? . . @
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 8
Những điểm khác giữa OSI và TCP/IP
• Lớp ứng dụng trong TCP/IP xử lý các chức
năng của các lớp 5,6, và 7 trong mô hình
OSI
• Lớp transport trong TCP/IP cung cấp cơ
chế UDP truyền dữ liệu không tin cậy, khác
với lớp transport trong mô hình OSI là luôn
đảm bảo dữ liệu truyền tin cậy
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 9
TCP/IP
• TCP/IP là một tập của các protocols (một
bộ giao thức) định nghĩa cách thức truyền
dữ liệu qua môi trường Internet
• TCP/IP là tên của mô hình mạng được
ghép giữa hai giao thức chính trong mạng
là TCP (Transmission Control Protocol) và
IP (Internet Protocol)
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 10
TCP/IP và mạng Internet
• Một liên mạng(internet) dùng TCP/IP được
xem như là một mạng đơn kết nối các máy
tính với nhiều loại
• Mạng Internet là sự kết nỗi giữa các mạng vật
lý độc lập thông qua các thiết bị liên mạng
• Với mô hình TCP/IP, các mạng khác nhau kết
nối với nhau được xem như là một mạng lớn
đồng nhất, không quan tâm đến sự khác nhau
giữa các thiết bị vật lý hay môi trường
• Mỗi máy kết nối vào mạng xem như kết nối
đến một mạng luận lý, không quan tâm đến
mạng vật lý
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 11
An Internet according to TCP/IP
McGraw-Hill ©The McGraw-Hill Companies, Inc., 2001
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 12
TCP/IP và OSI
• TCP/IP được xây dựng trước mô hình OSI
nên các lớp trong bộ giao thức TCP/IP không
hoàn toàn giống với bộ giao thức trong mô
hình OSI. Có 4 lớp trong mô hình TCP/IP
• Ở lớp transport, TCP/IP định nghĩa hai
protocol là TCP và UDP. Ở lớp network,
protocol chính là IP và có các protocol khác hỗ
trợ việc truyền dữ liệu
• Ở lớp physical & data link, TCP/IP không định
nghĩa protocol nào, không phụ thuộc vào phần
cưng bên dưới
• Một mạng trong một liên mạng TCP/IP có thể
là mạng LAN, MAN hoặc WAN.
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 13
Đóng gói dữ liệu trong TCP/IP
1. Đơn vị dữ liệu trong lớp ứng dụng gọi là
message
2. Giao thức TCP và UDP tạo ra một đơn vị dữ
liệu tương ứng là segment và user datagram.
3. Đơn vị dữ liệu trong lớp IP được gọi là
datagram
4. Datagram phải được đóng gói (encapsulate)
trong một frame để truyền trên mạng vật lý
5. Frame sẽ được truyền theo dạng tín hiệu trên
đường truyền vật lý
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 14
Đóng gói dữ liệu trong TCP/IP
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 15
Lớp Network
• Nội dung:
– Lớp Internet
– Địa chỉ IP
– Các đánh địa chỉ, phân mạng con
– Các giao thức phụ trong lớp Network
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 16
Lớp Internet
• Mô hình TCP/IP cung cấp giao thức liên
mạng (internetwork protocol -IP), là một cơ
chế truyền dữ liệu không tin cậy và không
kết nối (connectionless)
• Các giao thức hỗ trợ cho việc truyền dữ liệu
bao gồm: ARP, RARP, ICMP và IGMP.
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 17
Internetwork Protocol (IP)
• Giao thức IP không tin cậy (unreliable) vì
không cung cấp cơ chế kiểm tra lỗi hay
tracking.
• IP xem như lớp bên dưới sẽ thực hiện việc
truyền nhận một cách tốt nhất, không có sự
đảm bảo
• Nếu các dịch vụ cần cơ chế truyền tin cậy
thì kết hợp với giao thức tin cậy TCP.
• Tương tự như hệ thống bưu điện
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 18
IP (tt)
• IP cắt dữ liệu ra thành các gói. các gói gọi là
datagrams, và mỗi gói được truyền độc lập
• Datagram có thể đi theo các đường khác nhau và
có thể đến không đúng thứ tự hoặc trùng nhau. IP
không giữ thông tin đường đi cũng như không
sắp xếp lại các gói lại khi chúng đến
• IP là một dịch vụ connectionless, nó không khởi
tạo Virtual Circuits và không có sự thông báo đến
phần tử nhận
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 19
Datagram
©The McGraw-Hill Companies, Inc., 2001
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 20
IP Datagram
• Version. Version number of IP current version is 4 (0100
in binary).
• HLEN. Header length. The HLEN field defines the length
of the header in multiple of 4 bytes ( 0 – 15 # maximum 60
bytes)
• Service type. The service type field defines how the
datagram should be handled. It includes bits that define
the priority of the datagram.
• Total length. The total length field defines the total length
of the IP datagram. It is a two-byte field (16 bits) and can
define up to 65,535 bytes
• Identification. The identification field is used in
fragmentation. A datagram, when passing through
different networks, may be divided fragments to match the
network frame size. When this happens, each fragment is
identified with a sequence number in this field.
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 21
IP Datagram (cont.)
• Flags. The bits in this field deal with fragmentation
• Fragmentation offset. A pointer that shows the offset of
the data in original datagram
• Time to live. The time to live field defines the number of
hops a datagram can travel before it is discarded.
• Protocol. Defined which upper-layer protocol (TCP, UDP,
ICMP…)
• Header checksum. Check the integrity of the header
• Option. Give more functionality to the IP datagram, can
control routing, timing, management and alignment
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 22
IP Fragmentation and Reassembly
ID
=x
offset
=0
fragflag
=0
length
=4000
ID
=x
offset
=0
fragflag
=1
length
=1500
ID
=x
offset
=1480
fragflag
=1
length
=1500
ID
=x
offset
=2960
fragflag
=0
length
=1040
One large datagram becomes
several smaller datagrams
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 23
Địa chỉ IP
• Là địa chỉ luận lý trong mạng để xác định
địa chỉ của các máy trong mạng (ngoài địa
chỉ vật lý) cho việc truyền nhận dữ liệu
• Địa chỉ IP có 32 bit nhị phân chia ba phần:
class type, netid, hostid
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 24
Phân lớp địa chỉ
Để xác định netid (Network Identifier) và
hostid (Host Identifier)
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 25
Addressing–Dotted-decimal notation
• Để biểu diễn ở dạng ngắn hơn và dễ đọc, địa
chỉ IP được chia thành dạng 4 phần x 8 bit,
cách nhau bằng dấu chấm, một phần được
biểu diễn theo giá trị thập phân
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 26
Class Ranges of Internet Addresses
McGraw-Hill ©The McGraw-Hill Companies, Inc., 2001
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 27
Examples
What is the class of each of the following
addresses?
A. 10011101 10001111 11111110 11001111
B. 01111011 11110000 10101010 11110000
C. 11110101 10001111 11111110 11001111
Write each of following in dotted-decimal
notation:
A. 10011101 10001111 11111100 11001111
B. 11011101 10001111 11111101 00001111
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 28
Solutions
• Classes identify
A. Class B
B. Class A
C. Class E
• Dotted-decimal notation
A. 157.143.252.207
B. 221.143.253.15
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 29
Một số địa chỉ IP đặc biệt
Maximum number of unique addresses in
each class
Class A 2^7 – 2 = 126
Class B 2^14 – 2 = 16,382
Class C 2^21 – 2 = 2,097,150
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 30
Một máy với nhiều địa chỉ
• Địa chỉ IP định nghĩa cho mỗi kết nối đến
một mạng
• Một phần tử mạng có nhiều kết nối đến các
mạng khác nhau ( ví dụ như router) phải có
các địa chỉ IP tương ứng với mạng đó
• Một máy có một giao tiếp mạng cũng có thể
định nghĩa nhiều địa chỉ IP, tuỳ theo nhu
cầu
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 31
A Sample Internetnetwork
©The McGraw-Hill Companies, Inc., 2001
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 32
Subneting
Hình minh hoạ một mạng có hai lớp phân cấp
McGraw-Hill ©The McGraw-Hill Companies, Inc., 001
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 33
Subneting
• Không có subnetting, địa chỉ có 2 lớp (bao gồm
netid và hostid) không hiệu quả, không thể có
nhiều mạng vật lý
• Với mô hình này, các máy không thể tổ chức
thành các nhóm và cùng một mức. Điều này rất
khó cho việc quản lý đối với các mạng có nhiều
máy
• Phân mạng con (subnetting) là giải pháp cho vấn
đề này, là sự chia một mạng lớn thành các mạng
nhỏ hơn gọi là mạng con (subnetworks)
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 34
Subneting
Hình vẽ minh họa mạng được chia thành 3 cấp
©The McGraw-Hill Companies, Inc., 2001
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 35
Addresses with and without Subnetting
McGraw-Hill ©The McGraw-Hill Companies, Inc., 2001
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 36
Masking
• Masking là cách để tính địa chỉ vật lý của
mạng từ địa chỉ IP, có thể tính kể cả mạng
có phân mạng con hoặc không
• Nếu có phân mạng con, masking sẽ lấy
được địa chỉ mạng từ địa chỉ IP
• Nếu mạng được chia mạng con thì masking
sẽ lấy được thông tin địa chỉ của mạng con
(subnetwork address) từ địa chỉ IP
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 37
Masking example
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 38
Masks without Subneting
• Depending on class
• Following table show mask for unsubneted
networks
N/AN/AN/AE
N/AN/AN/AD
201.34.12.0201.34.12.72255.255.255.0C
135.67.0.0135.67.13.9255.255.0.0B
15.0.0.015.32.56.7255.0.0.0A
Network address (e.g.)Address (e.g.)maskclass
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 39
Masks with Subneting
• Khi có chia mạng con thì mỗi mạng con sẽ có
mặt nạ mạng (mask) khác nhau
• Examples:
N/AN/AN/AE
N/AN/AN/AD
201.34.12.64201.34.12.72255.255.255.192C
135.67.13.0135.67.13.9255.255.255.0B
15.32.0.015.32.56.7255.255.0.0A
Network address (e.g.)Address (e.g.)maskclass
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 40
Finding the Subnetwork Address
• Apply the mask to the IP address
• Boundary-Level Masking
– If the masking is at the boundary level (the
mask numbers are either 255 or 0), finding the
subnetwork address is very easy. Follow these
two rules:
1.The bytes in the IP address that correspond to 255 in the mask will be
repeated in the subnetwork address
2.The bytes in the IP address that correspond to 0 in the mask will
change to 0 in the subnetwork address.
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 41
Finding the Subnetwork Address
Boundary-Level Masking example
IP address 45 . 23 . 21 . 8
Mask 255 . 255 . 0 . 0
---------------------------------------------------------
Subnetwork address 45 . 23 . 0 . 0
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 42
Finding the Subnetwork Address
• Nonboundary-level Masking
– If the masking is not at the boundary level
(the mask numbers are not just 255 or 0),
finding the subnetwork address involves using
the bit-wise operator. Follow these three
rules:
1. The bytes in the IP address that correspond to 255 in the
mask will be repeated in the subnetwork address
2. The bytes in the IP address that correspond to 0 in the
mask will change to 0 in the subnetwork address.
3. For other bytes, use the bit-wise AND operator.
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 43
Finding the Subnetwork Address
• Nonboundary-level masking example
IP address 45 . 123 . 21 . 8
Mask 255 . 192 . 0 . 0
--------------------------------------------------------
Subnetwork 45 . ? . 0 . 0
Address ? use bit-wise AND operator
123 0 1 1 1 1 0 1 1
192 1 1 0 0 0 0 0 0
-----------------------------------
0 1 0 0 0 0 0 0 = 64
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 44
Finding the Subnetwork Address
• Another nonboundary-level masking
example
IP address 213 . 23 . 47 . 37
Mask 255 . 255 . 255 . 240
--------------------------------------------------------
Subnetwork 213 . 23 . 47 . ?
Address ? use bit-wise AND operator
37 0 0 1 0 0 1 0 1
240 1 1 1 1 0 0 0 0
-----------------------------------
0 0 1 0 0 0 0 0 = 32
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 45
IP addressing: CIDR
• Classful addressing:
– inefficient use of address space, address space
exhaustion
– e.g., class B net allocated enough addresses for 65K
hosts, even if only 2K hosts in that network
• CIDR: Classless InterDomain Routing
– network portion of address of arbitrary length
– address format: a.b.c.d/x, where x is # bits in network
portion of address
11001000 00010111 00010000 00000000
network
part
host
part
200.23.16.0/23
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 46
IP addresses: how to get one?
Network (network portion):
• get allocated portion of ISP’s address space:
ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20
Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23
Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23
... ….. …. ….
Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 47
Các giao thức khác trong lớp network
• ARP (Address Resolution Protocol)
• RARP (Reverse Address Resolution
Protocol)
• ICMP (Internet Control Message Protocol)
• IGMP (Internet Group Message Protocol)
More references:
TCP/IP Protocol Suite, 2/e, Behrouz A. Forouzan,
DeAnza College
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 48
ARP và RARP
Vấn đề phân giải địa chỉ
• Hai giao thức dùng để phân giải địa chỉ là
ARP (Address Resolution Protocol) và
RARP (Reverse ARP)
– ARP dùng phân giải địa chỉ IP 32 bits sang địa
chỉ Ethernet 48 bits
– RARP dùng phân giải địa chỉ Ethernet 48 bits
sang địa chỉ IP 32 bits
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 49
ARP và RARP
• Địa chỉ mạng (lớp Internet) và địa chỉ MAC
(lớp Network Interface) cần có sự chuyển
đổi qua lại:
– Lớp Internet gởi dữ liệu cho lớp Network
Interface, chỉ cung cấp địa chỉ IP của máy nhận
– Lớp Network Interface cần địa chỉ MAC của
máy nhận để truyền thông tin
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 50
ARP và RARP
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 51
Position of ARP and RARP
in TCP/IP protocol suite
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 52
ARP
©The McGraw-Hill Companies, Inc., 001
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 53
ARP
• Là giao thức được dùng để hỏi địa chỉ vật lý
một máy khi đã biết địa chỉ IP
• Cần cho lớp Network Interface để đóng gói
một Ethernet Frame
• Khi cần địa chỉ vật lý, máy sẽ broadcast
trên mạng để hỏi địa chỉ vật lý tương ứng
với địa chỉ IP, máy có địa chỉ IP tương ứng
sẽ reply thông tin
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 54
Các thành phần chính trong ARP
• ARP table: bảng thông tin được lưu trữ
trong bộ nhớ, nếu không tìm được thông tin
trong bảng này thì phần tử gởi sẽ broadcast
ARP request để hỏi thông tin
• ARP request: gởi broadcast để hỏi địa chỉ
vật lý
• ARP reply: gởi lại máy hỏi thông tin địa chỉ
IP của máy mình
• ARP reply caching: lưu thông tin vào ARP
table trong một khoảng thời gian (5 phút)
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 55
Phân giải ngược địa chỉ RARP
• Dùng cho việc liên kết giữa lớp Network
Interface và lớp Internet
• Sử dụng khi máy biết địa chỉ Ethernet
nhưng không biết địa chỉ IP. Thường dùng
trong các trường hợp:
– Các hệ thống diskless
– Các hệ thống JumpStartTM
• Kèm với các giao thức DHCP, BOOTP
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 56
RARP
operation
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 57
RARP packet
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 58
Lớp transport
• Có hai dạng dịch vụ:
– TCP (Transmission
Control Protocol)
– UDP (User Datagram
Protocol)
application
transport
network
data link
physical
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physicalnetwork
data link
physical
l o g i c a l e n d - e n d t r a n s p o r t
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 59
Lớp transport
• Cung cấp sự truyền nhận luận lý giữa các
process ứng dụng giữa các máy trong
mạng
• Các giao thức lớp transport hoạt động ở
các hệ thống đầu cuối
• Lớp transport so với lớp network:
– network layer: dữ liệu truyền nhận giữa các hệ thống
– transport layer: dữ liệu được truyền nhận giữa các
processes, dựa trên các dịch vụ của lớp network và mở
rộng một số chức năng
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 60
Lớp Transport
• Lớp TCP/IP transport cung cấp cơ chế cho
source process gởi dữ liệu destination
process qua mạng
• Định nghĩa một tập các kết nối mức khái
niệm cho các processes gọi là protocol
ports. Một protocol port là một điểm đích
(buffer) dùng để lưu dữ liệu cho một
process cụ thể
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 61
Transport layer
• Việc quản lý giao tiếp giữa các processes và các
ports tương ứng được hệ điều hành cung cấp
• Các protocol lớp transport là port-to-port
protocols, truyền dữ liệu giữa process gởi đên
process nhận
• Mỗi port được xác định bằng một số nguyên
dương 16 bits nhị phân
– 65,536 (0 to 65535) ports
– Port 0?
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 62
Lớp Transport
• Mở rộng cách
đánh địa chỉ cho
process.
– Địa chỉ port : xác
định ứng dụng
mạng trên mỗi
máy.
– Địa chỉ của một
ứng dụng mạng
(IP,port)
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 63
Port Addresses
McGraw-Hill ©The McGraw-Hill Companies, Inc., 2000
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 64
Transport-layer protocols
Internet transport services:
• reliable, in-order unicast delivery (TCP)
– congestion
– flow control
– connection setup
• unreliable (“best-effort”), unordered unicast or
multicast delivery: UDP
• services not available:
– real-time
– bandwidth guarantees
– reliable multicast
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 65
User Datagram Protocol (UDP)
• User datagram protocol (UDP) là protocol đơn
giản trong hai protocol ở lớp transport
• Chỉ thêm thông tin về các địa chỉ port, điều khiển
lỗi checksum và độ dài thông tin length
information
• UDP chỉ cung cấp các chức năng cơ bản cho cơ
chế truyền end-to-end, không cung cấp các chức
năng xử lý lỗi và truyền lại dữ liệu bị hỏng hoặc
mất.
• Có cơ chế báo lỗi nếu kèm với giao thức ICMP
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 66
UDP Datagram Format
McGraw-Hill ©The McGraw-Hill Companies, Inc., 2000
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 67
Transmission Control Protocol (TCP)
• Cung cấp các dịch vụ đầy đủ cho các ứng dụng
• Là giao thức port-to-port tin cậy, connection-
oriented: kết nối phải được thiết lập trước khi dữ
liệu được truyền
• Khi thiết lập kết nối, TCP tạo một mạch ảo (virtual
circuit ) giữa bên gởi và bên nhận trong suốt quá
trình truyền nhận
• Có sự thông báo khi truyền dữ liệu đến phần tử
nhận. Sau khi kết thúc việc truyền nhận thì đóng
kết nối
Lập trình mạng – Chương 1
© 2002-2004 Phùng Hữu Phú & Khoa Công nghệ Thông Tin – ĐH Bách Khoa TP.HCM 68
TCP
• IP và UDP xem các datagrams trong một single
transmission là các đơn vị hoàn toàn độc lập,
không liên quan với nhau. Mỗi datagram đến
phần tử nhận cũng là các đơn vị phân biệt, và
không có sự thông báo cho phần tử nhận
• Khác với IP và UDP, TCP là dịch vụ connection-
oriented, cung cấp cơ chế truyền tin cậy cho toàn
bộ stream chứa trong message mà ứng dụng gởi
đ
Các file đính kèm theo tài liệu này:
- ch01_1656.pdf