Bài giảng học phần Mạng máy tính: Phần 5 trình bày khái niệm về TCP và IP, Mô hình tham chiếu TCP/IP, So sánh OSI và TCP/IP, Các giao thức trong mô hình TCP/IP, Chuyển đổi giữa các hệ thống số, Địa chỉ IP và các lớp địa chỉ NAT, Mạng con và kỹ thuật chia mạng con và bài tập
Trang 1• Các giao thức trong mô hình TCP/IP
• Chuyển đổi giữa các hệ thống số
• TCP (Transmission Control Protocol) là
giao thức thuộc tầng vận chuyển và là một
giao thức có kết nối (connected-oriented).
• IP (Internet Protocol) là giao thức thuộc
tầng mạng của mô hình OSI và là một
giao thức không kết nối (connectionless).
• 1983 : Quá trình chuyển đổi chính thức hoàn thành khi DARPA yêu cầu tất cả các máy tính muốn kết nối mạng với ARPANET phải sử dụng TCP/IP, mạng ARPANET chính thức trở thành mạng thương mại
Trang 2• L ớp 4: A pplication
• L ớp 3: T ransport
• L ớp 2: I nternet
• L ớp 1: N etwork access
Một số lớp trong mô hình TCP/IP có cùng tên với mô hình
OSI Tuy nhiên không nên nhầm lẫn giữ hai mô hình này.
Ví dụ : Các ứng dụng HTTP, Telnet, FTP, Mail
Lớp Transport
Add Your Text
Application Transport Internet Network Access
Chức năng : Thực hiện chức năng chuyển vận luồng dữ liệu giữa 2 trạm
Đảm bảo độ tin cậy, điều khiển luồng, phát hiện và sửa lỗi.
Có 2 giao thức chính là TCP và UDP
Trang 3Chức năng : Thực hiện chức năng
xử lý và truyền gói tin trên mạng.
Các quá trình định tuyến được thực hiện ở lớp này
Có các giao thức gồm IP, ICMP, IGMP
Lớp Network Access
Add Your Text
Application Transport Internet Network Access
Chức năng : thực hiện chức năng giao tiếp môi trường mạng, chuyển giao dòng dữ liệu lên đường truyền vậy lý.
Thực hiện chức năng tương đương lớp 1,2 của mô hình OSI
So sánh mô hình OSI và TCP/IP
– Đều có mối quan hệ
trên dưới, ngang
TCP/IP gộp lớp vật lý và lớp liên kết dữ liệu vào lớp truy nhập mạng.
TCP/IP đơn giản vì có ít lớp hơn.
OSI không có khái niệm chuyển phát thiếu tin cậy
ở lớp 4 như UDP của TCP/IP
Các giao thức trong mô hình TCP/IP
12
Ethernet, Token-Ring, FrameRelay, ATM…
IP
UDP TCP
SMTP, HTTP, FTP, TFTP,Telnet…
Trang 4Lớp ứng dụng
• FTP (File Transfer Protocol): là dịch vụ có tạo cầu
nối, sử dụng TCP để truyền các tập tin giữa các hệ
thống.
• TFTP (Trivial File Transfer Protocol): là dịch vụ
không tạo cầu nối, sử dụng UDP Được dùng trên
router để truyền các file cấu hình và hệ điều hành.
• NFS (Network File System): cho phép truy xuất file
đến các thiết bị lưu trữ ở xa như một đĩa cứng qua
mạng.
• SMTP (Simple Mail Transfer Protocol): quản lý hoạt
động truyền e-mail qua mạng máy tính.
13
Lớp ứng dụng
• Telnet (Terminal emulation): cung cấp khả năng truy nhập từ xa vào máy tính khác Telnet client
là host cục bộ, telnet server là host ở xa
• SNMP (Simple Network Management): cung cấp một phương pháp để giám sát và điều khiển các thiết bị mạng
• DNS (Domain Name System): thông dịch tên của các miền (Domain) và các node mạng được công khai sang các địa chỉ IP
• RIP (Routing Information Protocol): giao thức dẫn đường động, dùng để 2 mạng khác Subnet Mask có thể truyền thông cho nhau
14
Các cổng phổ biến dùng cho các giao
• TCP và UDP (User Datagram Protocol):
– Phân đoạn dữ liệu ứng dụng lớp trên.
– Truyền các segment từ một thiết bị đầu cuối này đến thiết
bị đầu cuối khác
• Riêng TCP còn có thêm các chức năng:
Là một giao thức hướng kết nối, cung cấp khả năng chuyển tải dữ liệu tin cậy giữa các hệ trạm trên mạng.
Thiết lập các kết nối logic giữa các trạm trên mạng trước khi thực
sự truyền dữ liệu của các ứng dụng (quá trình thiết lập kết nối 3 bước – three-way handshake)
TCP thực hiện phát hiện và sữa lỗi (yêu cầu phát lại) để đảm bảo
độ tin cậy của việc truyền dữ liệu
Trang 5Khuôn dạng gói tin TCP
17
Khuôn dạng gói tin TCP
18
Số hiệu cổng nơi đã gửi datagram
Khuôn dạng gói tin TCP
19
Số hiệu cổng nơi datagram được chuyển tới
Khuôn dạng gói tin TCP
20
Số hiệu duy trì sự tuần tự của các byte
dữ liệu được truyền, bit SYN được dùng trong quá trình thiết lập kết nối
Trang 6Khuôn dạng gói tin TCP
21
Số hiệu duy trì sự tuần tự của các byte
dữ liệu được truyền, bit ACK được dùng
trong quá trình thiết lập kết nối
Khuôn dạng gói tin TCP
22
Số byte tối đa mà trạm đích có thể nhận, sử dụng cơ chế window để kiểm soát luồng dữ liệu
Khuôn dạng gói tin TCP
Mã kiểm soát lỗi cho toàn segment, kể
cả header và phần dữ liệu
Khuôn dạng gói tin TCP
Độ dài thay đổi – Khai báo tùy chọn của TCP, trong đó thường là kích thước cực đại của 1 segment ( MSS)
Trang 7Khuôn dạng gói tin TCP
25
Độ dài thay đổi - Chứa dữ liệu của lớp ứng dụng, kích
thước ngầm định là 536 byte, giá trị này có thể điều
chỉnh bằng cách khai báo trong phần Option
Khuôn dạng gói tin TCP
26
Source Port : 16 bit - Số hiệu cổng nơi đã gửi datagram
Destination port : 16 bit - Số hiệu cổng nới datagram được chuyển tới
Sequence Number : 32 bit - Số hiệu duy trì sự tuần tự của các byte dữ liệu được truyền, bit SYN được dùng trong quá trình thiết lập kết nối
Acknowledgment Number : 32 bit - Số hiệu duy trì sự tuần tự của các byte dữ liệu được truyền, bit ACK được dùng trong quá trình thiết lập kết nối.
Window size : 16 bit – Số byte tối đa mà trạm đích có thể nhận, sử dụng cơ chế window để kiểm soát luồng dữ liệu
Checksum : 16 bit – Mã kiểm soát lỗi cho toàn segment, kể cả header và phần dữ liệu.
Option : độ dài thay đổi – Khai báo tùy chọn của TCP, trong đó thường là kích thước cực đại của 1 segment ( MSS)
TCP data : độ dài thay đổi - Chứa dữ liệu của lớp ứng dụng, kích thước ngầm định
là 536 byte, giá trị này có thể điều chỉnh bằng cách khai báo trong phần Option
Quá trình thiết lập kết nối TCP
(Three-way handshake )
Host A khởi tạo kết nối bằng
việc send đến B một segment
với bit Synchronize sequence
number (SYN) được set để
yêu cầu thiết lập kết nôí
Host B đáp ứng yêu cầu bằng
cách gửi lại Host A một
(Acknowledgment) và bit SYN
được set.
Kết nối được thiết lập, quá
trình truyền dữ liệu bắt đầu
Khuôn dạng gói tin UDP
28
Source Port : 16 bit - Số hiệu cổng nơi đã gửi datagram
Destination port : 16 bit - Số hiệu cổng nới datagram được chuyển tới
Length : Độ dài UDP packet -16 bit- đây là độ dài tổng cộng kể cả phần header của gói datagram
UDP Checksum : 16 bit dùng để kiểm soát lỗi, nếu phát hiện lỗi thì UDP datagram sẽ bị loại bỏ mà không có thông báo nào trả lại cho nơi gửi
Trang 8Lớp Internet
IP (Internet Protocal): là giao thức quan trọng nhất trong bộ giao
thức TCP/IP- Cung cấp khả năng kết nối các mạng con thành liên
mạng.
Đóng gói dữ liệu thành các datagram và phân phát datagram
theo kiểu không liên kết, không tin cậy
Chịu trách nhiệm về địa chỉ lớp mạng, các giao thức định tuyến
Có 2 phiên bản địa chỉ: IPv4, IPv6
• ICMP (Internet Control Message Protocol): cung cấp khả năng điều
khiển và chuyển thông điệp.
• ARP (Address Resolution Protocol): xác định địa chỉ lớp liên kết số
liệu (MAC address) khi đã biết trước địa chỉ IP.
• RARP (Reverse Address Resolution Protocol): xác định các địa chỉ
Khuôn dạng gói tin IP
30
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination addressOptions + PaddingData
Khuôn dạng gói tin IP
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination addressOptions + PaddingData
Version: Phiên bản của
giao thức IP
Khuôn dạng gói tin IP
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination addressOptions + PaddingData
IHL: Chiều dài của header – tính bằng word 32 bit
Trang 9Khuôn dạng gói tin IP
33
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination addressOptions + PaddingData
Type of service: Đặc tả tham số về
yêu cầu dịch vụ
Khuôn dạng gói tin IP
34
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination addressOptions + PaddingData
Total length: Chiều dài tổng cộng của IP Datagram (byte)
Khuôn dạng gói tin IP
35
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination addressOptions + PaddingData
Identification: định danh, kết hợp với các tham số khác
như Sadd, Dadd để định danh duy nhất cho mỗi
datagram được gửi đi
Khuôn dạng gói tin IP
36
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination addressOptions + PaddingData
Flag: Sủ dụng trong khi phân đoạn các datagram
Trang 10Khuôn dạng gói tin IP
37
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination addressOptions + PaddingData
Fragmentation Offset: Chỉ vị trí của đoạn phân mảnh
trong datagram – tính theo đơn vị 64bit
Khuôn dạng gói tin IP
38
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination addressOptions + PaddingData
Time to Live: Thiết lập thời gian tồn tại của datagram
Khuôn dạng gói tin IP
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination addressOptions + PaddingData
Protocol: Chỉ giao thức tầng
trên kế tiếp
Khuôn dạng gói tin IP
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination addressOptions + PaddingData
Header checksum: Kiểm tra lỗi của phần header
Trang 11Khuôn dạng gói tin IP
41
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination address
Options + PaddingData
Source Address: Điạ chỉ IP trạm
nguồn
Khuôn dạng gói tin IP
42
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination addressOptions + PaddingData
Destination Address: điạ chỉ IP
trạm đích
Khuôn dạng gói tin IP
43
VER IHL Type of
services Total lenghtIdentification Flags Fragment
offsetTime to live Protocol Header checksum
Source addressDestination address
Options + PaddingData
Option : Khai báo các tùy chọn
do người gửi yêu cầu
ARP Request - Broadcast to all hosts
„What is the hardware address for IP address 128.0.10.4?“
SIEMENS
Trang 1245
Lớp truy nhập mạng
• Ethernet
– Là giao thức truy cập LAN phổ biến nhất
–Được hình thành bởi định nghĩa chuẩn 802.3 của IEEE (Institute of Electrical and Electronics Engineers)
Trang 13Chuyển đổi giữa hệ thập phân sang hệ nhị
Khi thương số bằng 0, ghi các số dư theo thứ tự
ngược với lúc xuất hiện, kết quả: 201 10 =
– Ví dụ: 1’101’100 (2) = 154 (8)
• Nhị phân sang thập lục phân:
– Tương tự như nhị phân sang bát phân nhưng mỗi nhóm có 4 chữ số
1 0 0 0
• Điạ chỉ vật lý là điạ chỉ MAC được ghi vào trong card giao diện mạng Nó được dùng cho các điạ chỉ mạng LAN, không phải là điạ chỉ liên mạng
• Điạ chỉ IP xác định một máy tính trên một liên mạng IP
• Tên miền cung cấp tên dễ nhớ cho một máy tính trong liên mạng IP Khi người dùng sử dụng tên miền, chúng
sẽ được chuyển thành điạ chỉ IP bởi DNS (Domain Name
Trang 14* Địa chỉ MAC tồn tại mặc định trên 1 máy có Card mạng
* Địa chỉ IP do người dùng cấu hình hoặc do DHCP Server cấp, nếu máy chỉ hoạt
động trong môi trường độc lập thì không cần thiết.
* Tên miền chỉ cần thiết khi máy tính gia nhập vào 1 Domain, kết nối mạng.
– Dạng nhị phân : 10000010 00111001 00011110 00111000 – Dạng Hex : 82 39 1E 38
• Địa chỉ IP gồm 2 thành phần: NetID (Network Address) và Host ID (Node Address)
• NetID là số duy nhất dùng để xác định 1 mạng Mỗi máy tính trong một mạng bao giờ cũng có cùng một địa chỉ mạng
• HostID là số duy nhất được gán cho một máy tính trong mạng
• Ðịa chỉ host là địa chỉ IP có thể dùng để đặt cho các interface của các host Hai host nằm cùng một mạng sẽ có network_id giống nhau
và host_id khác nhau
• Khi cấp phát các địa chỉ host thì lưu ý không được cho tất cả các bit trong phần host_id bằng 0 hoặc tất cả bằng 1
• Ðịa chỉ mạng (network address): là địa chỉ IP dùng để đặt cho các mạng Phần host_id của địa chỉ chỉ chứa các bit 0 Ví dụ: 172.29.0.0
• Ðịa chỉ Broadcast: là địa chỉ IP được dùng để đại diện cho tất cả các host trong mạng Phần host_id chỉ chứa các bit 1 Ví dụ:
172.29.255.255
Trang 15• IP address được chia ra làm 5 lớp A,B,C,D,E
• D là lớp Multicast
• E đang để dự trữ
• Chỉ sử dụng 3 lớp A,B,C
Các lớp địa chỉ IP
• Định dạng: NetID HostID HostID HostID
• Bit đầu tiên của byte đầu tiên: 0
• Ngoại trừ bit đầu tiên là 0 dùng để nhận diện lớp A , bit còn lại có thể nhận giá trị 0 hoặc 1
Trang 16Lớp C (Class C)
• Định dạng: NetID NetID NetID HostID
• Ba bít của byte đầu là: 110
• Ngoại trừ 3 bít đầu là 110 các bít còn lại có
Trang 18–Địa chỉ quảng bá trực tiếp ( directed broadcast address) là địa chỉ IP mà trong đó tất cả các bit trong trường Host ID đều là 1.
–Địa chỉ quảng bá cục bộ (local broadcast address) là địa chỉ IP mà trong đó tất cả các bits trong Network ID và Host ID đều là 1
Trang 19Địa chỉ dành riêng
73
Private address: Địa chỉ dành riêng
Public address: Địa chỉ dùng chung
NAT: Network Address Translation
• Được thiết kế để tiết kiệm địa chỉ IP
• Cho phép mạng nội bộ sử dụng địa chỉ IP dành riêng
• Địa chỉ IP dành riêng sẽ được chuyển đổi sang địa chỉ dùng chung định tuyến được
• Mạng riêng được tách biệt và giấu kín IP nội bộ
• Thường sử dụng trên router biên của mạng một cửa
74
NAT
• Địa chỉ cục bộ bên trong (Inside local address):Địa
chỉ được phân phối cho các host bên trong mạng nội bộ.
• Địa chỉ toàn cục bên trong (Inside global address):
Địa chỉ hợp pháp được cung cấp bởi InterNIC (Internet
Network Information Center) hoặc nhà cung cấp dịch vụ
Internet, đại diện cho một hoặc nhiều địa chỉ nội bộ bên trong
đối với thế giới bên ngoài.
• Địa chỉ cục bộ bên ngoài (Outside local address):
Địa chỉ riêng của host nằm bên ngoài mạng nội bộ.
• Địa chỉ toàn cục bên ngoài (Outside global
address):Địa chỉ công cộng hợp pháp của host nằm bên
ngoài mạng nội bộ.
75
NAT
76
Trang 2077
10.0.0.1 10.0.0.2
10.0.0.3
10.0.0.4 138.76.29.7
mạng cục bộ (vd: mạng gia đình) 10.0.0.0/24
– có thể thay đổi ISP mà không cần thay đổi địa chỉ các thiết bị trong mạng cục bộ – các thiết bị trong mạng cục bộ không nhìn thấy, không định địa chỉ rõ ràng từ bên ngoài (tăng cường bảo mật)
78
NAT Hiện thực: NAT router phải:
– các datagram đi ra:thay thế (địa chỉ IP và số
hiệu cổng nguồn) mọi datagram đi ra bên
ngoài bằng (địa chỉ NAT IP và số hiệu cổng
nguồn mới)
các clients/servers ở xa sẽ dùng (địa chỉ NAT IP
và số hiệu cổng nguồn mới) đó như địa chỉ đích
chuyển đổi (địa chỉ IP và số hiệu cổng nguồn)
sang (địa chỉ NAT IP và số hiệu cổng nguồn
mới)
– các datagram đi đến:thay thế (địa chỉ NAT IP
và số hiệu cổng nguồn mới) trong các trường
đích của mọi datagram đến với giá trị tương
ứng (địa chỉ IP và số hiệu cổng nguồn) trong
bảng NAT
NAT
10.0.0.1 10.0.0.2
10.0.0.3
S: 10.0.0.1, 3345 D: 128.119.40.186, 80
1
10.0.0.4 138.76.29.7
1: host 10.0.0.1 gửi datagram đến 128.119.40.186, 80
bảng chuyển đổi NAT địa chỉ phía WAN địa chỉ phía LAN
138.76.29.7, 5001 10.0.0.1, 3345
…… ……
S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4
S: 138.76.29.7, 5001 D: 128.119.40.186, 80
2
2: NAT router thay đổi địa chỉ từ 10.0.0.1, 3345 ->
138.76.29.7, 5001 cập nhật bảng
S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3 3: phản hồi đến địa chỉ : đích 138.76.29.7, 5001
4: NAT router thay đổi địa chỉ datagram đích từ
138.76.29.7, 5001 -> 10.0.0.1, 3345