Định tuyến (routing) là quá trình chọn lựa các đường đi trên một mạng máy tính để gửi dữ
liệu qua đó. Việc định tuyến được thực hiện cho nhiều loại mạng, trong đó có mạng điện
thoại, liên mạng, Internet, mạng giao thông.
Routing sẽ chỉ ra hướng, sự di chuyển của các gói (dữ liệu) được đánh địa chỉ từ mạng
nguồn của chúng, hướng đến đích cuối thông qua các node trung gian; thiết bị phần cứng
chuyên dùng được gọi là router (bộ định tuyến). Tiến trình định tuyến thường chỉ hướng đi
dựa vào bảng định tuyến, đó là bảng chứa những lộ trình tốt nhất đến các đích khác nhau trên
mạng. Vì vậy việc xây dựng bảng định tuyến, được tổ chức trong bộ nhớ của router, trở nên
vô cùng quan trọng cho việc định tuyến hiệu quả.
Routing khác với bridging (bắc cầu) ở chỗ trong nhiệm vụ của nó thì các cấu trúc địa chỉ gợi
nên sự gần gũi của các địa chỉ tương tự trong mạng, qua đó cho phép nhập liệu một bảng định
tuyến đơn để mô tả lộ trình đến một nhóm các địa chỉ. Vì thế, routing làm việc tốt hơn
bridging trong những mạng lớn, và nó trở thành dạng chiếm ưu thế của việc tìm đường trên
mạng Internet.
Các mạng nhỏ có thể có các bảng định tuyến được cấu hình thủ công, còn những mạng lớn
hơn có topo mạng phức tạp và thay đổi liên tục thì xây dựng thủ công các bảng định tuyến là
vô cùng khó khăn. Tuy nhiên, hầu hết mạng điện thoại chuyển mạch chung (public switched
telephone network - PSTN) sử dụng bảng định tuyến được tính toán trước, với những tuyến
dự trữ nếu các lộ trình trực tiếp đều bị nghẽn. Định tuyến động (dynamic routing) cố gắng giải
quyết vấn đề này bằng việc xây dựng bảng định tuyến một cách tự động, dựa vào những thông
tin được giao thức định tuyến cung cấp, và cho phép mạng hành động gần như tự trị trong
việc ngăn chặn mạng bị lỗi và nghẽn.
Định tuyến động chiếm ưu thế trên Internet. Tuy nhiên, việc cấu hình các giao thức định
tuyến thường đòi hỏi nhiều kinh nghiệm; đừng nên nghĩ rằng kỹ thuật nối mạng đã phát triển
đến mức hoàn thành tự động việc định tuyến. Cách tốt nhất là nên kết hợp giữa định tuyến thủ
công và tự động.
Những mạng trong đó các gói thông tin được vận chuyển, ví dụ như Internet, chia dữ liệu
thành các gói, rồi dán nhãn với các đích đến cụ thể và mỗi gói được lập lộ trình riêng biệt.
Các mạng xoay vòng, như mạng điện thoại, cũng thực hiện định tuyến để tìm đường cho các
vòng (ví dụ như cuộc gọi điện thoại) để chúng có thể gửi lượng dữ liệu lớn mà không phải
tiếp tục lặp lại địa chỉ đích.
Định tuyến IP truyền thống vẫn còn tương đối đơn giản vì nó dùng cách định tuyến bước kế
tiếp (next-hop routing), router chỉ xem xét nó sẽ gửi gói thông tin đến đâu, và không quan tâm
1
đường đi sau đó của gói trên những bước truyền còn lại. Tuy nhiên, những chiến lược định
tuyến phức tạp hơn có thể được, và thường được dùng trong những hệ thống như MPLS,
ATM hay Frame Relay, những hệ thống này đôi khi được sử dụng như công nghệ bên dưới để
hỗ trợ cho mạng IP
37 trang |
Chia sẻ: oanh_nt | Lượt xem: 1387 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Đề tài Định Tuyến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
0
I. Định Tuyến:
1. Tổng quát:
Định tuyến (routing) là quá trình chọn lựa các đường đi trên một mạng máy tính để gửi dữ
liệu qua đó. Việc định tuyến được thực hiện cho nhiều loại mạng, trong đó có mạng điện
thoại, liên mạng, Internet, mạng giao thông.
Routing sẽ chỉ ra hướng, sự di chuyển của các gói (dữ liệu) được đánh địa chỉ từ mạng
nguồn của chúng, hướng đến đích cuối thông qua các node trung gian; thiết bị phần cứng
chuyên dùng được gọi là router (bộ định tuyến). Tiến trình định tuyến thường chỉ hướng đi
dựa vào bảng định tuyến, đó là bảng chứa những lộ trình tốt nhất đến các đích khác nhau trên
mạng. Vì vậy việc xây dựng bảng định tuyến, được tổ chức trong bộ nhớ của router, trở nên
vô cùng quan trọng cho việc định tuyến hiệu quả.
Routing khác với bridging (bắc cầu) ở chỗ trong nhiệm vụ của nó thì các cấu trúc địa chỉ gợi
nên sự gần gũi của các địa chỉ tương tự trong mạng, qua đó cho phép nhập liệu một bảng định
tuyến đơn để mô tả lộ trình đến một nhóm các địa chỉ. Vì thế, routing làm việc tốt hơn
bridging trong những mạng lớn, và nó trở thành dạng chiếm ưu thế của việc tìm đường trên
mạng Internet.
Các mạng nhỏ có thể có các bảng định tuyến được cấu hình thủ công, còn những mạng lớn
hơn có topo mạng phức tạp và thay đổi liên tục thì xây dựng thủ công các bảng định tuyến là
vô cùng khó khăn. Tuy nhiên, hầu hết mạng điện thoại chuyển mạch chung (public switched
telephone network - PSTN) sử dụng bảng định tuyến được tính toán trước, với những tuyến
dự trữ nếu các lộ trình trực tiếp đều bị nghẽn. Định tuyến động (dynamic routing) cố gắng giải
quyết vấn đề này bằng việc xây dựng bảng định tuyến một cách tự động, dựa vào những thông
tin được giao thức định tuyến cung cấp, và cho phép mạng hành động gần như tự trị trong
việc ngăn chặn mạng bị lỗi và nghẽn.
Định tuyến động chiếm ưu thế trên Internet. Tuy nhiên, việc cấu hình các giao thức định
tuyến thường đòi hỏi nhiều kinh nghiệm; đừng nên nghĩ rằng kỹ thuật nối mạng đã phát triển
đến mức hoàn thành tự động việc định tuyến. Cách tốt nhất là nên kết hợp giữa định tuyến thủ
công và tự động.
Những mạng trong đó các gói thông tin được vận chuyển, ví dụ như Internet, chia dữ liệu
thành các gói, rồi dán nhãn với các đích đến cụ thể và mỗi gói được lập lộ trình riêng biệt.
Các mạng xoay vòng, như mạng điện thoại, cũng thực hiện định tuyến để tìm đường cho các
vòng (ví dụ như cuộc gọi điện thoại) để chúng có thể gửi lượng dữ liệu lớn mà không phải
tiếp tục lặp lại địa chỉ đích.
Định tuyến IP truyền thống vẫn còn tương đối đơn giản vì nó dùng cách định tuyến bước kế
tiếp (next-hop routing), router chỉ xem xét nó sẽ gửi gói thông tin đến đâu, và không quan tâm
1
đường đi sau đó của gói trên những bước truyền còn lại. Tuy nhiên, những chiến lược định
tuyến phức tạp hơn có thể được, và thường được dùng trong những hệ thống như MPLS,
ATM hay Frame Relay, những hệ thống này đôi khi được sử dụng như công nghệ bên dưới để
hỗ trợ cho mạng IP.
2. Các lớp thuật toán định tuyến:
a. Thuật toán vector (distance-vector routing protocols):
Thuật toán này dùng thuật toán Bellman-Ford. Phương pháp này chỉ định một con số, gọi là
chi phí (hay trọng số), cho mỗi một liên kết giữa các node trong mạng. Các node sẽ gửi thông
tin từ điểm A đến điểm B qua đường đi mang lại tổng chi phí thấp nhất (là tổng các chi phí
của các kết nối giữa các node được dùng).
Thuật toán hoạt động với những hành động rất đơn giản. Khi một node khởi động lần đầu,
nó chỉ biết các node kề trực tiếp với nó, và chi phí trực tiếp để đi đến đó (thông tin này, danh
sách của các đích, tổng chi phí của từng node, và bước kế tiếp để gửi dữ liệu đến đó tạo nên
bảng định tuyến, hay bảng khoảng cách). Mỗi node, trong một tiến trình, gửi đến từng “hàng
xóm” tổng chi phí của nó để đi đến các đích mà nó biết. Các node “hàng xóm” phân tích
thông tin này, và so sánh với những thông tin mà chúng đang “biết”; bất kỳ điều gì cải thiện
được những thông tin chúng đang có sẽ được đưa vào các bảng định tuyến của những “hàng
xóm” này. Đến khi kết thúc, tất cả node trên mạng sẽ tìm ra bước truyền kế tiếp tối ưu đến tất
cả mọi đích, và tổng chi phí tốt nhất.
Khi một trong các node gặp vấn đề, những node khác có sử dụng node hỏng này trong lộ
trình của mình sẽ loại bỏ những lộ trình đó, và tạo nên thông tin mới của bảng định tuyến. Sau
đó chúng chuyển thông tin này đến tất cả node gần kề và lặp lại quá trình trên. Cuối cùng, tất
cả node trên mạng nhận được thông tin cập nhật, và sau đó sẽ tìm đường đi mới đến tất cả các
đích mà chúng còn tới được.
b. Thuật toán trạng thái kết nối (Link-state routing protocols):
Khi áp dụng các thuật toán trạng thái kết nối, mỗi node sử dụng dữ liệu cơ sở của nó như là
một bản đồ của mạng với dạng một đồ thị. Để làm điều này, mỗi node phát đi tới tổng thể
mạng những thông tin về các node khác mà nó có thể kết nối được, và từng node góp thông
tin một cách độc lập vào bản đồ. Sử dụng bản đồ này, mỗi router sau đó sẽ quyết định về
tuyến đường tốt nhất từ nó đến mọi node khác.
Thuật toán đã làm theo cách này là Dijkstra, bằng cách xây dựng cấu trúc dữ liệu khác, dạng
cây, trong đó node hiện tại là gốc, và chứa mọi noded khác trong mạng. Bắt đầu với một cây
ban đầu chỉ chứa chính nó. Sau đó lần lượt từ tập các node chưa được thêm vào cây, nó sẽ
thêm node có chi phí thấp nhất để đến một node đã có trên cây. Tiếp tục quá trình đến khi mọi
node đều được thêm.
2
Cây này sau đó phục vụ để xây dựng bảng định tuyến, đưa ra bước truyền kế tiếp tốt ưu, …
để từ một node đến bất kỳ node khác trên mạng.
c. So sánh các thuật toán định tuyến:
Các giao thức định tuyến với thuật toán vector tỏ ra đơn giản và hiệu quả trong các mạng
nhỏ, và đòi hỏi ít (nếu có) sự giám sát. Tuy nhiên, chúng không làm việc tốt, và có tài nguyên
tập hợp ít ỏi, dẫn đến sự phát triển của các thuật toán trạng thái kết nối tuy phức tạp hơn
nhưng tốt hơn để dùng trong các mạng lớn. Giao thức vector kém hơn với rắc rối về đếm đến
vô tận.
Ưu điểm chính của định tuyến bằng trạng thái kết nối là phản ứng nhanh nhạy hơn, và trong
một khoảng thời gian có hạn, đối với sự thay đổi kết nối. Ngoài ra, những gói được gửi qua
mạng trong định tuyến bằng trạng thái kết nối thì nhỏ hơn những gói dùng trong định tuyến
bằng vector. Định tuyến bằng vector đòi hỏi bảng định tuyến đầy đủ phải được truyền đi,
trong khi định tuyến bằng trạng thái kết nối thì chỉ có thông tin về “hàng xóm” của node được
truyền đi. Vì vậy, các gói này dùng tài nguyên mạng ở mức không đáng kể. Khuyết điểm
chính của định tuyến bằng trạng thái kết nối là nó đòi hỏi nhiều sự lưu trữ và tính toán để
chạy hơn định tuyến bằng vector.
3. Giao thức được định tuyến và giao thức định tuyến:
a. Giao thức được định tuyến (routed protocols hay routable protocols):
Một giao thức đã được định tuyến là bất kỳ một giao thức mạng nào cung cấp đầy đủ thông
tin trong địa chỉ tầng mạng của nó để cho phép một gói tin được truyền đi từ một máy chủ
(host) đến máy chủ khác dựa trên sự sắp xếp về địa chỉ, không cần biết đến đường đi tổng thể
từ nguồn đến đích. Giao thức đã được định tuyến định nghĩa khuôn dạng và mục đích của các
trường có trong một gói. Các gói thông thường được vận chuyển từ hệ thống cuối đến một hệ
thống cuối khác. Hầu như tất cả giao thức ở tầng 3 các giao thức khác ở các tầng trên đều có
thể được định tuyến, IP là một ví dụ. Nghĩa là gói tin đã đuợc định hướng (có địa chỉ rõ ràng)
giống như lá thư đã được ghi địa chỉ rõ chỉ còn chờ routing (tìm đường đi đến địa chỉ đó)
Các giao thức ở tầng 2 như Ethernet là những giao thức không định tuyến được, vì chúng chỉ
chứa địa chỉ tầng liên kết, không đủ để định tuyến: một số giao thức ở tầng cao dựa trực tiếp
vào đây mà không có thêm địa chỉ tầng mạng, như NetBIOS, cũng không định tuyến được.
b. Giao thức định tuyến (routing protocols):
Giao thức định tuyến được dùng trong khi thi hành thuật toán định tuyến để thuận tiện cho
việc trao đổi thông tin giữa các mạng, cho phép các router xây dựng bảng định tuyến một
cách linh hoạt. Trong một số trường hợp, giao thức định tuyến có thể tự chạy đè lên giao thức
đã được định tuyến: ví dụ, BGP chạy đè trên TCP: cần chú ý là trong quá trình thi hành hệ
thống không tạo ra sự lệ thuộc giữa giao thức định tuyến và đã được định tuyến.
3
c. Danh sách các giao thức định tuyến:
Giao thức định tuyến trong
o Router Information Protocol (RIP)
o Open Shortest Path First (OSPF)
o Intermediate System to Intermediate System (IS-IS)
o Hai giao thức sau đây thuộc sở hữa của Cisco, và được hỗ trợ bởi các router
Cisco hay những router của những nhà cung cấp mà Cisco đã đăng ký công
nghệ:
Interior Gateway Routing Protocol (IGRP)
Enhanced IGRP (EIGRP)
Giao thức định tuyến ngoài
o Exterior Gateway Protocol (EGP)
o Border Gateway Protocol (BGP)
o Constrained Shortest Path First (CSPF)
4. Thông số định tuyến:
Một thông số định tuyến bao gồm bất kỳ giá trị nào được dùng bởi thuật toán định tuyến để
xác định một lộ trình có tốt hơn lộ trình khác hay không. Các thông số có thể là những thông
tin như băng thông (bandwidth), độ trễ (delay), đếm bước truyền, chi phí đường đi, trọng số,
kích thước tối đa gói tin (MTU - Maximum transmission unit), độ tin cậy, và chi phí truyền
thông. Bảng định tuyến chỉ lưu trữ những tuyến tốt nhất có thể, trong khi cơ sở dữ liệu trạng
thái kết nối hay topo có thể lưu trữ tất cả những thông tin khác.
Router dùng tính năng phân loại mức tin cậy (administrative distance -AD) để chọn đường
đi tốt nhất khi nó “biết” hai hay nhiều đường để đến cùng một đích theo các giao thức khác
nhau. AD định ra độ tin cậy của một giao thức định tuyến. Mỗi giao thức định tuyến được ưu
tiên trong thứ tự độ tin cậy từ cao đến thấp nhất có một giá trị AD. Một giao thức có giá trị
AD thấp hơn thì được tin cậy hơn, ví dụ: OSPF có AD là 110 sẽ được chọn thay vì RIP có AD
là 120.
4
Bảng sau đây cho biết sự sắp xếp mức tin cậy được dùng trong các router Cisco
Giao thức Administrative distance
Nối trực tiếp 0
Static route 1
EIGRP summary route 5
External BGP 20
Internal EIGRP 90
IGRP 100
OSPF 110
IS-IS 115
RIP 120
EGP 140
ODR 160
External EIGRP 170
Internal BGP 200
Không xác định 255
5. Các lớp giao thức định tuyến:
Dựa vào quan hệ của các dòng router với các hệ thống tự trị, có nhiều lớp giao thức định
tuyến như sau:
Giao thức định tuyến trong mạng Ad-hoc xuất hiện ở những mạng không có hoặc ít
phương tiện truyền dẫn.
Interior Gateway Protocols (IGPs) trao đổi thông tin định tuyến trong một AS. Các
ví dụ thường thấy là:
o IGRP (Interior Gateway Routing Protocol)
o EIGRP (Enhanced Interior Gateway Routing Protocol)
o OSPF (Open Shortest Path First)
o RIP (Routing Information Protocol)
o IS-IS (Intermediate System to Intermediate System)
Exterior Gateway Protocols (EGPs) định tuyến giữa các AS. EGPs gồm:
o EGP (giao thức cũ để nối mạng Internet trước đây, bây giờ đã lỗi thời)
o BGP (Border Gateway Protocol: phiên bản hiện tại, BGPv4, có từ khoảng năm
1995)
5
Phần 3: Mô hình TCP/IP
Giao thức TCP/IP được phát triển từ mạng ARPANET và Internet và được dùng
như giao thức mạng và vận chuyển trên mạng Internet. TCP (Transmission Control Protocol)
là giao thức thuộc tầng vận chuyển và IP (Internet Protocol) là giao thức thuộc tầng mạng
của mô hình OSI. Họ giao thức TCP/IP hiện nay là giao thức được sử dụng rộng rãi nhất để
liên kết các máy tính và các mạng.
Hiện nay các máy tính của hầu hết các mạng có thể sử dụng giao thức TCP/IP để liên kết
với nhau thông qua nhiều hệ thống mạng với kỹ thuật khác nhau. Giao thức TCP/IP thực
chất là một họ giao thức cho phép các hệ thống mạng cùng làm việc với nhau thông qua việc
cung cấp phương tiện truyền thông liên mạng.
I. Giao thức IP:
1. Tổng quát:
Nhiệm vụ chính của giao thức IP là cung cấp khả năng kết nối các mạng con thành liên kết
mạng để truyền dữ liệu, vai trò của IP là vai trò của giao thức tầng mạng trong mô hình
OSI. Giao thức IP là một giao thức kiểu không liên kết (connectionless) có
nghĩa là không cần có giai đoạn thiết lập liên kết trước khi truyền dữ liệu.
2. Các giao thức trong mạng IP:
Để mạng với giao thức IP hoạt động được tốt người ta cần một số giao thức bổ sung,
các giao thức này đều không phải là bộ phận của giao thức IP và giao thức IP sẽ dùng đến
chúng khi cần.
Giao thức ARP (Address Resolution Protocol): Ở đây cần lưu ý rằng các địa chỉ IP được
dùng để định danh các host và mạng ở tầng mạng của mô hình OSI, và chúng không phải là
các địa chỉ vật lý (hay địa chỉ MAC) của các trạm trên đó một mạng cục bộ (Ethernet, Token
Ring). Trên một mạng cục bộ hai trạm chỉ có thể liên lạc với nhau nếu chúng biết địa chỉ vật
lý của nhau. Như vậy vấn đề đặt ra là phải tìm được ánh xạ giữa địa chỉ IP (32 bits) và địa chỉ
vật lý của một trạm. Giao thức ARP đã được xây dựng để tìm địa chỉ vật lý từ địa chỉ IP khi
cần thiết.
Giao thức RARP (Reverse Address Resolution Protocol): Là giao thức ngược với
giao thức ARP. Giao thức RARP được dùng để tìm địa chỉ IP từ địa chỉ vật lý.
Giao thức ICMP (Internet Control Message Protocol): Giao thức này thực hiện truyền
các thông báo điều khiển (báo cáo về các tình trạng các lỗi trên mạng) giữa các gateway hoặc
một nút của liên mạng. Tình trạng lỗi có thể là: một gói tin IP không thể tới đích của
nó, hoặc một router không đủ bộ nhớ đệm để lưu và chuyển một gói tin IP, một thông báo
6
ICMP được tạo và chuyển cho IP. IP sẽ "bọc" (encapsulate) thông báo đó với một IP
header và truyền đến cho router hoặc trạm đích.
3. Các bước hoạt động của IP:
Khi giao thức IP được khởi động nó trở thành một thực thể tồn tại trong máy tính và bắt đầu
thực hiện những chức năng của mình, lúc đó thực thể IP là cấu thành của tầng mạng, nhận yêu
cầu từ các tầng trên nó và gửi yêu cầu xuống các tầng dưới nó.
Đối với thực thể IP ở máy nguồn, khi nhận được một yêu cầu gửi từ tầng trên, nó thực hiện
các bước sau đây:
1. Tạo một IP datagram dựa trên tham số nhận được.
2. Tính checksum và ghép vào header của gói tin.
3. Ra quyết định chọn đường: hoặc là trạm đích nằm trên cùng mạng hoặc một gateway sẽ
được chọn cho chặng tiếp theo.
4. Chuyển gói tin xuống tầng dưới để truyền qua mạng.
Đối với router, khi nhận được một gói tin đi qua, nó thực hiện các động tác sau:
1. Tính chesksum, nếu sai thì loại bỏ gói tin.
2. Giảm giá trị tham số Time - to Live. Nếu thời gian đã hết thì loại bỏ gói tin.
3. Ra quyết định chọn đường.
4. Phân đoạn gói tin, nếu cần.
5. Kiến tạo lại IP header, bao gồm giá trị mới của các vùng Time - to -Live, Fragmentation
và Checksum.
6. Chuyển datagram xuống tầng dưới để chuyển qua mạng.
Cuối cùng khi một datagram nhận bởi một thực thể IP ở trạm đích, nó sẽ thực hiện bởi các
công việc sau:
1. Tính checksum. Nếu sai thì loại bỏ gói tin.
2. Tập hợp các đoạn của gói tin (nếu có phân đoạn).
3. Chuyển dữ liệu và các tham số điều khiển lên tầng trên.
II. Giao thức điều khiển truyền dữ liệu TCP:
TCP là một giao thức "có liên kết" (connection - oriented), nghĩa là cần phải thiết lập liên
kết giữa hai thực thể TCP trước khi chúng trao đổi dữ liệu với nhau. Một tiến trình ứng dụng
trong một máy tính truy nhập vào các dịch vụ của giao thức TCP thông qua một cổng (port)
của TCP. Số hiệu cổng TCP được thể hiện bởi 2 bytes.
7
H 3.1: Cổng truy nhập dịch vụ TCP
Một cổng TCP kết hợp với địa chỉ IP tạo thành một đầu nối TCP/IP (socket) duy
nhất trong liên mạng. Dịch vụ TCP được cung cấp nhờ một liên kết logic giữa một cặp đầu
nối TCP/IP. Một đầu nối TCP/IP có thể tham gia nhiều liên kết với các đầu nối TCP/IP ở xa
khác nhau. Trước khi truyền dữ liệu giữa 2 trạm cần phải thiết lập một liên kết TCP giữa
chúng và khi không còn nhu cầu truyền dữ liệu thì liên kết đó sẽ được giải phóng.
Các thực thể của tầng trên sử dụng giao thức TCP thông qua các hàm gọi (function calls)
trong đó có các hàm yêu cầu: để yêu cầu, để trả lời. Trong mỗi hàm còn có các tham số dành
cho việc trao đổi dữ liệu.
Các bước thực hiện để thiết lập một liên kết TCP/IP: Thiết lập một liên kết mới có thể
được mở theo một trong 2 phương thức: chủ động (active) hoặc bị động (passive).
Phương thức bị động, người sử dụng yêu cầu TCP chờ đợi một yêu cầu liên kết gửi
đến từ xa thông qua một đầu nối TCP/IP (tại chỗ). Người sử dụng dùng hàm passive
Open có khai báo cổng TCP và các thông số khác (mức ưu tiên, mức an toàn)
Với phương thức chủ động, người sử dụng yêu cầu TCP mở một liên kết với một đầu
nối TCP/IP ở xa. Liên kết sẽ được xác lập nếu có một hàm Passive Open tương ứng đã
được thực hiện tại đầu nối TCP/IP ở xa đó.
Số hiệu cổng Mô tả
0 Reserved
5 Remote job entry
7 Echo
9 Discard
11 Systat
13 Daytime
15 Nestat
17 Quotd (quote odd day)
20 ftp-data
8
21 ftp (control)
23 Telnet
25 SMTP
37 Time
53 Name Server
102 ISO - TSAP
103 X.400
104 X.400 Sending
111 Sun RPC
139 Net BIOS Session source
160 - 223 Reserved
Bảng liệt kê một vài cổng TCP phổ biến.
Khi người sử dụng gửi đi một yêu cầu mở liên kết sẽ được nhận hai thông số trả lời từ TCP.
Thông số Open ID được TCP trả lời ngay lập tức để gán cho một liên kết cục bộ (local
connection name) cho liên kết được yêu cầu. Thông số này về sau được dùng để tham
chiếu tới liên kết đó. (Trong trường hợp nếu TCP không thể thiết lập được liên kết
yêu cầu thì nó phải gửi tham số Open Failure để thông báo).
Khi TCP thiết lập được liên kết yêu cầu nó gửi tham số Open Sucsess được
dùng để thông báo liên kết đã được thiết lập thành công. Thông báo này được chuyển
đến trong cả hai trường hợp bị động và chủ động. Sau khi một liên kết được mở,
việc truyền dữ liệu trên liên kết có thể được thực hiện.
Các bước thực hiện khi truyền và nhận dữ liệu: Sau khi xác lập được liên kết người sử
dụng gửi và nhận dữ liệu. Việc gửi và nhận dữ liệu thông qua các hàm Send và Receive.
Hàm Send: Dữ liệu được gửi xuống TCP theo các khối (block). Khi nhận được một
khối dữ liệu, TCP sẽ lưu trữ trong bộ đệm (buffer). Nếu cờ PUSH được dựng
thì toàn bộ dữ liệu trong bộ đệm được gửi, kể cả khối dữ liệu mới đến sẽ được gửi đi.
Ngược lại cờ PUSH không được dựng thì dữ liệu được giữ lại trong bộ đệm và sẽ
gửi đi khi có cơ hội thích hợp (chẳng hạn chờ thêm dữ liệu nữa để gửi đi với hiệu
quả hơn).
Hàm receive: Ở trạm đích dữ liệu sẽ được TCP lưu trong bộ đệm gắn với mỗi liên
kết. Nếu dữ liệu được đánh dấu với một cờ PUSH thì toàn bộ dữ liệu trong bộ đệm (kể
cả các dữ liệu được lưu từ trước) sẽ được chuyển lên cho người sử dụng. Còn nếu dữ
liệu đến không được đánh dấu với cờ PUSH thì TCP chờ tới khi thích hợp mới chuyển
dữ liệu với mục tiêu tăng hiệu quả hệ thống.
9
Nói chung việc nhận và giao dữ liệu cho người sử dụng đích của TCP phụ thuộc vào việc cài
đặt cụ thể. Trường hợp cần chuyển gấp dữ liệu cho người sử dụng thì có thể dùng cờ
URGENT và đánh dấu dữ liệu bằng bit URG để báo cho người sử dụng cần phải xử lý khẩn
cấp dữ liệu đó.
Các bước thực hiện khi đóng một liên kết: Việc đóng một liên kết khi không cần thiết
được thực hiên theo một trong hai cách: dùng hàm Close hoặc dùng hàm Abort.
Hàm Close: Yêu cầu đóng liên kết một cách bình thường. Có nghĩa là việc
truyền dữ liệu trên liên kết đó đã hoàn tất. Khi nhận được một hàm Close TCP sẽ
truyền đi tất cả dữ liệu còn trong bộ đệm thông báo rằng nó đóng liên kết. Lưu ý rằng
khi một người sử dụng đã gửi đi một hàm Close thì nó vẫn phải tiếp tục nhận dữ liệu
đến trên liên kết đó cho đến khi TCP đã báo cho phía bên kia biết về việc đóng liên kết
và chuyển giao hết tất cả dữ liệu cho người sử dụng của mình.
Hàm Abort: Người sử dụng có thể đóng một liên kết bất kỳ và sẽ không chấp nhận
dữ liệu qua liên kết đó nữa. Do vậy dữ liệu có thể bị mất đi khi đang được truyền đi.
TCP báo cho TCP ở xa biết rằng liên kết đã được hủy bỏ và TCP ở xa sẽ thông báo
cho người sử dụng của mình.
Một số hàm khác của TCP:
Hàm Status: cho phép người sử dụng yêu cầu cho biết trạng thái của một liên kết cụ
thể, khi đó TCP cung cấp thông tin cho người sử dụng.
Hàm Error: thông báo cho người sử dụng TCP về các yêu cầu dịch vụ bất hợp lệ
liên quan đến một liên kết có tên cho trước hoặc về các lỗi liên quan đến môi
trường.
Đơn vị dữ liệu sử dụng trong TCP được gọi là segment (đoạn dữ liệu), có các tham số với ý
nghĩa như sau:
H 3.2: Dạng thức của segment TCP
Source Port (16 bits): Số hiệu cổng TCP của trạm nguồn.
Destination Port (16 bits): Số hiệu cổng TCP của trạm đích.
Sequence Number (32 bits): số hiệu của byte đầu tiên của segment trừ khi bit SYN
10
được thiết lập. Nếu bit SYN được thiết lập thì Sequence Number là số hiệu tuần tự
khởi đầu (ISN) và byte dữ liệu đầu tiên là ISN+1.
Acknowledgment Number (32 bits): số hiệu của segment tiếp theo mà trạm
nguồn đang chờ để nhận. Ngầm ý báo nhận tốt (các) segment mà trạm đích đã gửi cho
trạm nguồn.
Data offset (4 bits): số lượng bội của 32 bit (32 bits words) trong TCP header
(tham số này chỉ ra vị trí bắt đầu của nguồn dữ liệu).
Reserved (6 bits): dành để dùng trong tương lai.
Control bit (các bit điều khiển):
URG: Vùng con trỏ khẩn (Urgent Poiter) có hiệu lực.
ACK: Vùng báo nhận (ACK number) có hiệu lực.
PSH: Chức năng PUSH.
RST: Khởi động lại (reset) liên kết.
SYN: Đồng bộ hóa số hiệu tuần tự (sequence number).
FIN: Không còn dữ liệu từ trạm nguồn.
Window (16 bits): cấp phát credit để kiểm soát nguồn dữ liệu (cơ chế cửa sổ). Đây
chính là số lượng các byte dữ liệu, bắt đầu từ byte được chỉ ra trong vùng ACK
number, mà trạm nguồn đã sẵn sàng để nhận.
Checksum (16 bits): mã kiểm soát lỗi cho toàn bộ segment (header + data).
Urgemt Poiter (16 bits): con trỏ này trỏ tới số hiệu tuần tự của byte đi theo sau dữ liệu
khẩn. Vùng này chỉ có hiệu lực khi bit URG được thiết lập.
Options (độ dài thay đổi): khai báo các option của TCP, trong đó có độ dài tối đa của
vùng TCP data trong một segment.
Paddinh (độ dài thay đổi): phần chèn thêm vào header để đảm bảo phần header luôn
kết thúc ở một mốc 32 bits. Phần thêm này gồm toàn số 0.
TCP data (độ dài thay đổi): chứa dữ liệu của tầng trên, có độ dài tối đa ngầm định là
536 bytes. Giá trị này có thể điều chỉnh bằng cách khai báo trong vùng options.
III. Tổng quan địa chỉ IP:
Trước khi khảo sát cấu tạo, tính chất, nhiệm vụ của địa chỉ IP ta xét những tiền đề tạo nên nó:
Đơn vị thông tin cơ bản trong máy tính được biểu diễn dưới dạng số nhị phân bao gồm 2 giá
trị đếm là 0 và 1. Tuy nhiên trong nhiều trường hợp khác nó còn được biểu diễn bằng số bát
phân, hay số thập lục phân.
Hệ thống số đó được miêu tả ở bảng dưới đây lấy số thập phân làm so sánh tường minh:
11
Thập phân Nhị phân Bát phân Thập lục phân
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
Thông thường muốn chuyển từ số nhị phân, bát phân, thập lục phân qua lại với nhau
ta phải chuyển qua một bước trung gian về số thập lục phân
Quy tắc chuyển các số nhị phân, bát phân, thập lục phân về cơ số 10: Chuyển số nhị
phân: 1011012 = X10 : 1x25+0x24+1x23+1x22+0x21+1x20 =4510. Chuyển bát phân: 7368
= X10: 7x82+3x81+6x80=47810.
Chuyển thập lục phân: F316 = X10: Fx161+3x160 =15x16+16x3 = 24310.
Qui tắc chuyển từ hệ số thập phân về các hệ số khác, ở đây ta lấy ví dụ đối với số nhị
phân: 1310=X2:
13/2 = 6 dư 1
3/2 = 1 dư 1
1/2 = 0 dư 1
Ta lấy số dư của phép chia cho 2 theo thứ tự từ dưới lên trên. Vậy ta được số nhị phân của
số 13 thập phân là: 11012
Với các hệ số khác ta cũng thực hiện như vậy.
Cấu trúc địa chỉ IP gồm 32bits, được chia thành 4 nhóm, mỗi nhóm 8 bits được biểu diễn
như sau:
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
Vậy giá trị 8 bits khi tất cả được bật lên 1, hiểu ở giá trị thập phân là: 255
Vậy những giá trị thập phân mà ta có thể gán 4 nhóm của 32 Bit là:
12
00000000-
11111111
00000000-
11111111
00000000-
11111111
00000000-
11111111
0-255 0-255 0-255 0-255
Vậy địa chỉ IP có cấu trúc được chia làm hai hoặc ba phần là network_id & host_id hoặc
network_id & subnet_id & host_id.
Là một con số có kích thước 32 bits. Khi trình bày người ta chia con số 32 bits này thành
bốn phần, mỗi phần có kích thước 8 bits, gọi là octet hoặc byte. Có các cách trình bày sau:
Ký pháp thập phân có dấu chấm (dotted-decimal notation). Ví dụ:
172.16.30.56.
Ký pháp nhị phân. Ví dụ: 10101100 00010000 00011110 00111000.
Ký pháp thập lục phân. Ví dụ: 82 39 1E 38.
Không gian địa chỉ IP (gồm 232 địa chỉ) được chia thành 5 lớp (class) để dễ quản lý đó là:
A, B, C, D và E. Trong đó các lớp A, B và C được triển kha
Các file đính kèm theo tài liệu này:
- do_an_p2_2628.pdf