Truyền số liệu và Mạng máy tính
Truyền số liệu và Mạng máy tính
Mạng Internet
Mạng Internet
GVC. Nguyễn Đình Việt
Khoa Công nghệ, ĐHQGHN
Hà nội - 2004
Chương 5 Mạng Internet
•
Giới thiệu chung
•
Kiến trúc mạng Internet
•
Giao thức liên mạng IP
•
Giao thức TCP
•
Hệ thống tên miền DNS (tự đọc)
•
Dịch vụ thông tin trên Internet (tự đọc)
2/70
5.1 Giới thiệu chung
5.1 Giới thiệu chung
Internet là mạng của các mạng được kết nối lại với nhau trên phạm vi
toàn cầu, sử dụng bộ giao thức TCP/IP.
3/70
5.1 Giới thiệu chung
5.1 Giới thiệu chung
Một số cột mốc
9/1969, ARPANET - mạng máy tính chuyển mạch gói đầu tiên trên
thế giới ra đời.
1977: thử nghiệm thành công việc kết nối 3 mạng thông tin máy tính
của 3 trường ĐH lớn của Mỹ bằng giao thức TCP/IP.
1986: Đưa vào sử dụng mạng NSFNET mạng xương sống, 34 – 45
Mbps, phục vụ cho nghiên cứu, giảng dạy kích thích sự phát triển
mạnh mẽ của Internet.
1990-1991: Internet được thương mại hoá, ra đời “Internet Society”.
Internet bắt đầu phát triển bùng nổ.
4/70
5.1 Giới thiệu chung
5.1 Giới thiệu chung
Sự phát triển của Internet
5/70
5.1 Giới thiệu chung
5.1 Giới thiệu chung
Sự phát triển của Internet
6/70
5.1 Giới thiệu chung
5.1 Giới thiệu chung
Các yếu tố thúc đẩy sự phát triển của Internet
Sử dụng TCP/IP trong Unix, HĐH được sử dụng phổ biến từ 1983.
PC ra đời năm 1980, sức mạnh tính toán ngày càng cao, trong khi giá
ngày càng rẻ.
NSFNET - mạng xương sống của Mỹ, tốc độ cao, ra đời năm 1986.
Hệ thống tên miền ra đời làm cho việc truy nhập Internet trở nên đơn
giản và thuận tiện.
Kiến trúc đơn giản của bộ giao thức và tính linh hoạt của Internet.
7/70
5.2 Kiến trúc mạng Internet
5.2 Kiến trúc mạng Internet
5.2.2 Bộ giao thức TCP/IP
Bao gồm 2 phần chính:
–
Các giao thức tạo thành hệ thống truyền dẫn
–
Các giao thức hỗ trợ ứng dụng
8/70
5.2.2 Bộ giao thức TCP/IP
5.2.2 Bộ giao thức TCP/IP
Tầng liên mạng – Internet
–
Sử dụng giao thức connectionless – IP, là hạt nhân hoạt động của
hệ thống truyền dẫn Internet.
–
Các thuật toán định tuyến RIP, OSFD, BGP
–
Cho phép kết nối một cách mềm dẻo và linh hoạt các loại mạng
“vật lý” khác nhau; như: Ethernet, Token Ring, .25 v.v. dựa trên
địa chỉ IP.
Tầng Transport
TCP – connection-oriented
UDP - connectionless
9/70
5.3 Giao thức liên mạng IP
5.3 Giao thức liên mạng IP
Đặc trưng công nghệ:
Connectionless = Datagram
Không phải thiết lập; giải phóng kết nối
Packets có thể đi theo các con đường khác nhau
Không có cơ chế phát hiện/khắc phục lỗi truyền
Giao thức đơn giản, độ tin cậy không cao
Các chức năng chính:
–
Định nghĩa khuôn dạng gói dữ liệu (IP packet)
–
Định nghĩa phương thức đánh địa chỉ IP
–
Routing
–
Fragmentation/ Reassembly
10/70
5.3 Giao thức liên mạng IP
5.3 Giao thức liên mạng IP
5.3.2 Cấu trúc gói số liệu IP
Version (4 bit): IPv4 hoặc IPv6
IHL (IP packet Header Length) (4 bit): đơn vị word 32 bit.
–
Min = 5 (không có thêm trường tuỳ chọn)
–
Max = 15 (trường tuỳ chọn là 40 byte)
–
Đối với một số tuỳ chọn, thí dụ để ghi con đường mà packet đã đi qua, 40 byte là quá nhỏ, không
thể dùng được.
11/70
5.3.2 Cấu trúc gói số liệu IP
5.3.2 Cấu trúc gói số liệu IP
Trường Type of service (8 bits): Dịch vụ và mức ưu tiên.
–
Ý nghĩa của nó được người ta thay đổi chút ít trong các năm qua.
–
Có thể có nhiều cách kết hợp khác nhau giữa độ tin cậy và tốc độ. Đối với tiếng nói
được số hoá, việc phân phát nhanh quan trọng hơn phân phát chính xác. Đối với
FTP, việc truyền không có lỗi quan trọng hơn việc truyền nhanh.
–
Bản thân chính trường này lại bao gồm một số trường, tính từ trái qua phải như sau:
Precedence (3 bit đầu tiên): quyền ưu tiên; 0 = normal, , 7 = network control packet.
Cờ D, T và R (3 bit tiếp theo): cho phép host chỉ ra là nó quan tâm (cần) đến gì nhất trong
tập hợp {Delay, Throughput và Reliability}. Trong thực tế, các router hiện nay lờ toàn bộ
trường Type of service.
2 bit còn lại hiện nay chưa dùng đến.
12/70
5.3.2 Cấu trúc gói số liệu IP
5.3.2 Cấu trúc gói số liệu IP
Trường Total Length (16 bits): Tổng chiều dài packet, kể cả header lẫn
data, đơn vị = byte.
–
Max = 65535 byte
–
Hiện nay giới hạn trên là có thể chấp nhận được
–
Với các mạng Gigabit trong tương lai sẽ cần đến các datagram lớn hơn.
Trường Identification (16 bit): từ định danh của datagram (IP packet)
–
Dùng cho host đích xác định được mảnh (fragment) thuộc về datagram nào.
–
Tất cả các mảnh của một datagram có cùng một giá trị của trường Identification.
13/70
5.3.2 Cấu trúc gói số liệu IP
5.3.2 Cấu trúc gói số liệu IP
Trường Flags (2 bits): dùng cho quá trình Fragmentation/ Reassembly
–
Sau trường Identification là một bit không dùng đến. Flags gồm 2 trường 1 bit là DF
và MF.
–
DF (Don't Fragment): lệnh cho các router đừng có phân mảnh datagram.
Datagram phải tránh mạng có kích thước packet nhỏ.
Tất cả các máy được yêu cầu chấp nhận việc phân mảnh đến 576 byte hoặc nhỏ hơn.
–
MF (More Fragments): Tất cả các mảnh của datagram, trừ mảnh cuối cùng phải có
bit MF=1 để biết được khi nào tất cả các mảnh của một datagram đã đến đích.
14/70
5.3.2 Cấu trúc gói số liệu IP
5.3.2 Cấu trúc gói số liệu IP
Trường Fragment offset (13 bits): cho biết khoảng cách
tương đối của gói tin IP trong gói tin bị phân mảnh.
–
Tất cả các mảnh của một datagram, trừ mảnh cuối cùng phải có chiều
dài là bội số của 8 bytes - đơn vị cơ sở của mảnh.
–
13 bit nên số mảnh lớn nhất của một datagram là 8192
15/70
5.3.2 Cấu trúc gói số liệu IP
5.3.2 Cấu trúc gói số liệu IP
Trường Time to live – TTL (8 bits): con đếm thời gian
sống của một packet
–
Khi = 0, packet bị loại bỏ và một packet cảnh báo được gửi cho bên
nguồn
Ngăn chặn các datagram đi lang thang mãi (nếu bảng chọn
đường có lúc bị hỏng)
–
Giả thiết đơn vị là giây max = 255s; thường được đặt = 30s
–
Phải được giảm đi một tại mỗi chặng (hop) và được giảm nhiều lần
khi đứng xếp hàng một thời gian dài trong mỗi router.
–
Thực tế, nó chỉ đếm các chặng.
16/70
5.3.2 Cấu trúc gói số liệu IP
5.3.2 Cấu trúc gói số liệu IP
Trường Protocol (8 bits): Chỉ loại số liệu giao thức mức trên nằm trong trường Data.
–
Cho biết cần trao datagram cho quá trình nào của tầng
transport.
Một khả năng là TCP
Nhưng cũng có thể là UDP và các quá trình khác.
–
Việc đánh số các giao thức là trên phạm vi toàn cầu, trên
toàn bộ Internet, được định nghĩa trong chuẩn RFC 1700.
17/70
5.3.2 Cấu trúc gói số liệu IP
5.3.2 Cấu trúc gói số liệu IP
Trường Header checksum (16 bits):
–
Tính riêng cho header, giúp phát hiện các lỗi phát sinh trong
bộ nhớ của router.
–
Được tính lại tại mỗi chặng (hop), bởi vì sau mỗi chặng có ít
nhất là một trường bị thay đổi (trường TTL).
–
Cách tính: cộng tất cả các 16-bit halfwords sử dụng số dạng
bù 1; sau đó lấy bù 1 của kết quả (phép toán XOR tốc độ
cao).
18/70
5.3.2 Cấu trúc gói số liệu IP
5.3.2 Cấu trúc gói số liệu IP
Trường Source address, Destination address (32 bit):
–
Địa chỉ IP của bên gửi và nhận
–
Mỗi địa chỉ bao gồm: địa chỉ mạng và địa chỉ host trong mạng
Trường Options: Tạo ra lối thoát cho các version sau:
–
Bổ sung thêm các thông tin không có trong version đầu tiên
–
Thí nghiệm thử các ý tưởng mới và để tránh việc phải dành (allocate) các bit của
header cho các thông tin hiếm khi cần đến.
–
Chiều dài có thể thay đổi: 0 (15 – 5) x 32 bits
–
Mỗi Option bắt đầu bằng một mã 1 byte chỉ ra tuỳ chọn
–
cont.
19/70
5.3.2 Cấu trúc gói số liệu IP
5.3.2 Cấu trúc gói số liệu IP
Trường Options:
–
Hiện thời có 5 tuỳ chọn (option) đã được định nghĩa
Security (an ning) Chỉ ra mức độ bí mật của datagram
Strict source routing Chỉ ra con đường đầy đủ để đi theo
Loose source routing Chỉ ra danh sách các router không được bỏ qua
Record route Buộc mỗi router gắn địa chỉ IP của nó vào
Timestamp Buộc mỗi router gắn địa chỉ IP và timestamp của nó vào
–
Tuy nhiên không phải mọi router đều hỗ trợ tất cả các tuỳ chọn này.
–
Padding: Được chèn thêm sao cho chiều dài Header = bội của 32 bits
Trường Data (32 bits): Số liệu của giao thức tầng trên.
20/70
5.3.1 Địa chỉ IP
5.3.1 Địa chỉ IP
32 bit, gồm Class + Netid + Hostid, duy nhất trên Internet
Những máy nối với nhiều mạng có các địa chỉ IP khác nhau trên từng mạng.
Được chia thành 4 lớp: A, B, C, D và E (dự trữ)
Cách viết địa chỉ Internet: Dotted Decimal Notation
Để tránh đụng độ, các địa chỉ mạng được NIC (Network Information Center) gán.
21/70
5.3.1 Địa chỉ IP
5.3.1 Địa chỉ IP
Một số địa chỉ IP đặc biệt
0.0.0.0 Dùng cho các host khi mới khởi động
Netid = 0 Current network, dùng cho các host khi không biết địa chỉ mạng của nó
Hostid = 1 Người quản trị mạng thường không cho phép sử dụng đặc điểm này.
127.xx.yy.zz packet gửi tới điạ chỉ này không được đưa lên đường truyền, mà được
xử lý cục bộ giống như packet đến. Cho phép gửi packet đến mạng cục bộ mà người
gửi không cần biết địa chỉ của nó.
22/70
5.3.1 Địa chỉ IP
5.3.1 Địa chỉ IP
Subnets & Subnet Mask
Mọi host trong một mạng phải có cùng Netid mỗi khi có một mạng mới được cài đặt, phải
tiếp xúc với ICANN (Internet Corporation for Assigned Names and Numbers) để nhận 1 Netid
mới; con số này phải được loan báo trên toàn thế giới.
Giải pháp: Cho phép chia một mạng thành một số phần (Subnets) để sử dụng nội bộ, nhưng vẫn
thể hiện như là một mạng duy nhất đối với bên ngoài. Subnet ở đây ≠ "subnet" để chỉ tập hợp
các router và các đường truyền trong một mạng. Cần phân biệt chúng theo ngữ cảnh.
23/70
5.3.1 Địa chỉ IP
5.3.1 Địa chỉ IP
Subnets & Subnet Mask
Thí dụ, ban đầu cơ quan của chúng ta bắt đầu sử dụng địa chỉ lớp B (Hostid = 16 bit)
–
Ban đầu khi mới có 1 mạng LAN, chúng ta gán cho các host giá trị hostid = 1 254
–
Khi có thêm 1 LAN mới, chúng ta có thể quyết định chia Hostid 16 bit thành số chỉ subnet 6
bit và số chỉ host 10 bit. Như vậy có thể có tối đa 63 mạng LAN, trong mỗi mạng đó có
1022 host.
Để xác định được mạng con (Subnet), Main Router cần sử dụng một mặt nạ bit (Bit
mask), gọi là Subnet mask để có thể tách địa chỉ IP làm 2 phần:
–
Network + Subnet number
–
Host number
Subnet mask = 1111.1111.1111.0000.0000 = 255.255.252.0 (cách viết khác /22)
24/70
5.3.1 Địa chỉ IP
5.3.1 Địa chỉ IP
Subnets & Subnet Mask
Đối với bên ngoài, việc chia subnet như trên là trong suốt không cần
liên hệ với ICANN để “xin” địa chỉ
Thí dụ, chúng ta có thể gán cho 4 subnet 4 miền địa chỉ IP sau:
–
Subnet 1: 1000.0010 0011.0010 0000.01|00 0000.0001 (130.50.4.1)
–
Subnet 2: 1000.0010 0011.0010 0000.10|00 0000.0001 (130.50.8.1)
–
Subnet 3: 1000.0010 0011.0010 0000.11|00 0000.0001 (130.50.12.1)
25/70