KIẾN TRÚC MẠNG INTERNET

Một phần của tài liệu Sổ tay mạng máy tính doc (Trang 101 - 119)

5.2.1. 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à giao vận trờn mạng Internet. TCP (Transmission Control Protocol) là giao thức thuộc tầng giao vậ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.

101

Cỏc tầng của mụ hỡnh tham chiếu TCP/IP

Bộ quốc phũng Mỹ gọi tắt là DoD (Department of Defense) đó tạo ra mụ hỡnh tham chiếu TCP/IP vỡ muốn một mạng cú thể tồn tại trong bất cứ điều kiện nào, ngay cả khi cú chiến tranh hạt nhõn. DoD muốn cỏc gúi dữ liệu xuyờn suốt mạng vào mọi lỳc, dưới bất cứ điều kiện nào, từ bất cứ một điểm đến một điểm khỏc. Đõy là một bài toỏn thiết kế cực kỳ khú khăn mà từ đú làm nảy sinh ra mụ hỡnh TCP/IP, vỡ vậy đó trở thành chuẩn Internet để phỏt triển.

Tng ng dng

Cỏc nhà thiết kế TCP/IP cảm thấy rằng cỏc giao thức mức cao nờn bao gồm cỏc tầng trỡnh bày và tầng phiờn. Để đơn giản, họ tạo ra một tầng ứng dụng kiểm soỏt cỏc giao thức mức cao, cỏc vấn đề của tầng Trỡnh diễn, mó hoỏ và điều khiển hội thoại. TCP/IP tập hợp tất cả cỏc vấn đề liờn quan đến ứng dụng vào trong một tầng, và đảm bảo dữ liệu được đúng gúi một cỏch thớch hợp cho tầng kế tiếp.

Tng Giao vn

Tầng vận chuyển đề cập đến cỏc vấn đề chất lượng dịch vụ như độ tin cậy, điều khiển luồng và sửa lỗi. Một trong cỏc giao thức của nú là TCP, TCP cung cấp cỏc phương thức linh hoạt và hiệu quả để thực hiện cỏc hoạt động truyền dữ liệu tin cậy, hiệu xuất cao và ớt lỗi. TCP là giao thức cú tạo cầu nối (connection-oriented). Nú tiến hành hội thoại giữa nguồn và đớch trong khi bọc thụng tin tầng ứng dụng thành cỏc đơn vị gọi là segment.Tạo cầu nối khụng cú nghĩa là tồn tại một mạch thực sự giữa hai mỏy tớnh, thay vỡ vậy nú cú nghĩa là cỏc segment của tầng 4 di chuyển tới và lui giữa hai host để cụng nhận kết nối tồn tại một cỏch luận lý trong một khoảng thời gian nào đú. Điều này coi như chuyển mạch gúi (packet switching).

Tng Internet

Mục tiờu của tầng Internet là truyền cỏc gúi tin bắt nguồn từ bất kỳ mạng nào trờn liờn mạng và đến được đớch trong điều kiện độc lập với đường dẫn và cỏc mạng mà chỳng đó trải qua. Giao thức đặc trưng khống chế tầng này được gọi là IP. Cụng việc xỏc định đường dẫn tốt nhất và hoạt động chuyển mạch gúi diễn ra tại tầng này.

Tng truy xut mng

Tờn của tầng này cú nghĩa khỏ rộng và cú phần hơi rối rắm. Nú cũng được gọi là tầng host-to-network. Nú là tầng liờn quan đến tất cả cỏc vấn đề mà một gúi IP yờu cầu

để tạo một liờn kết vật lý thực sự, và sau đú tạo một liờn kết vật lý khỏc. Nú bao gồm cỏc chi tiết kỹ thuật LAN và WAN, và tất cả cỏc chi tiết trong tầng liờn kết dữ liệu cũng như tầng vật lý của mụ hỡnh OSI.

Mụ hỡnh TCP/IP hướng đến tối đa độ linh hoạt tại tầng ứng dụng cho người phỏt triển phần mềm. Tầng vận chuyển liờn quan đến hai giao thức TCP và UDP (User Datagram Protocol). Tầng cuối cựng, tầng truy xuất mạng liờn kết đến cỏc kỹ thuật LAN hay WAN đang được dựng.

Trong mụ hỡnh TCP/IP khụng cần quan tõm đến ứng dụng nào yờu cầu cỏc dịch vụ mạng, và khụng cần quan tõm đến giao thức vận chuyển nào đang được dựng, chỉ cú một giao thức mạng IP. Đõy là một quyết định thiết kế cú cõn nhắc kỹ. IP phục vụ như một giao thức đa năng cho phộp bất kỳ mỏy tớnh nào, ở bất cứ đõu, truyền dữ liệu vào bất cứ thời điểm nào.

So sỏnh mụ hỡnh OSI và mụ hỡnh TCP/IP Cỏc điểm giống nhau:

− Cả hai đều theo kiến trỳc phõn tầng.

− Cả hai đều cú tầng ứng dụng, qua đú chỳng cú nhiều dịch vụ khỏc nhau. − Cả hai cú cỏc tầng mạng và tầng vận chuyển cú thể so sỏnh được. − Kỹ thuật chuyển mạch gúi được chấp nhận.

Cỏc điểm khỏc nhau:

− TCP/IP tập hợp cỏc tầng trỡnh bày và tầng phiờn vào trong tầng ứng dụng của nú. − TCP/IP tập hợp tầng vật lý và tầng liờn kết dữ liệu trong OSI vào một tầng. − TCP/IP biểu hiện đơn giản hơn vỡ cú ớt tầng hơn.

Cỏc giao thức TCP/IP là cỏc chuẩn cơ sở cho Internet phỏt triển, như vậy mụ hỡnh TCP/IP chiếm được niềm tin chỉ vỡ cỏc giao thức của nú. Ngược lại, cỏc mạng thụng thường khụng được xõy dựng dựa trờn OSI, ngay cả khi OSI dựng như một hướng dẫn.

5.2.2. Họ giao thức TCP/IP

Bao gồm 2 phần chớnh (hỡnh 5.3):

• 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

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, X25 v.v. dựa trờn địa chỉ IP.

Tầng giao vận (Transport)

− TCP – Là giao thức hướng nối (connection-oriented)

Lờ Đỡnh Danh - Giỏo trỡnh Mạng mỏy tớnh

http://www.ebook.edu.vn 103

5.3. GIAO THỨC TCP 5.3.1. Giới thiệu 5.3.1. Giới thiệu

Đặc trưng cụng nghệ: TCP là một giao thức hướng nối (connection-eoriented), tin cậy (reliable):

• Vận chuyển end-to-end, tin cậy, đỳng thứ tự, thụng qua cỏc “phương tiện”: – Dựng cơ chế bỏo nhận (ACK)

– Dựng số thứ tự cỏc gúi tin (Sequence number) – Dựng phương phỏp kiểm soỏt lỗi mó dư vũng (CRC)

• Điều khiển lưu lượng (flow control + congestion control) bằng cửa sổ trượt cú kớch thước thay đổi.

Do vậy TCP là một giao thức tương đối phức tạp.

5.3.2. Cấu trỳc gúi số liệu TCP Gồm 2 phần: Gồm 2 phần:

• Tiờu đề giả (Pseudo Header TCP), cần thiết để xõy dựng IP packet. Bao gồm:

– IP Source - Địa chỉ nguồn (32 bit) – IP Destination - Địa chỉ đớch (32 bit) – Protocol = 0x06 (thuộc giao thức TCP) – Length: độ dài của TCP segment. • Gúi số liệu TCP thực (TCP Segment)

Cấu trỳc TCP segment:

• Source/Destination port number: 2 điểm cuối của kết nối TCP. Port number + IP add → socket (48 bit)

• Seq. number = số thứ tự byte đầu tiờn của data so với byte đầu của dũng dữ liệu của thực thể gửi. Giỏ trị ban đầu = ISN+1 (Initial Sequence Number)

• ACK: Byte tiếp theo cú thể nhận (stt byte cuối cựng đó nhận đỳng + 1) • TCP header length: đơn vị 32 bit; đú cũng chớnh là data offset.

• Resered = 0: để dựng trong tương lai.

• Flags (6):

– URG =1: cú sử dụng trường Urgent pointer. – ACK =1: trường Ack đỳng.

– PSH =1: thực thể nhận được y/c chuyển ngay segment này – RST =1: Reset kết nối; từ chối kết nối v.v.

– SYN =1: đồng bộ trường Seq. , dựng để thiết lập kết nối TCP – FIN =1: thụng bỏo thực thể gửi đó kết thỳc việc gửi số liệu.

• Window size: Độ lớn cửa sổ nhận, cho bờn sender biết cú thể gửi tiếp bao nhiờu byte, tớnh từ byte được biờn nhận (ack).

• Checksum: checksum của cả TCP segment + Pseudo header. Trước khi tớnh, trường này = 0. (Tổng cỏc word 16 bit kiểu bự 1, kết quả thu được lại tớnh bự 1 - XOR).

• Urgent pointer: byte trong trường data của TCP segment cần được xử lý đầu tiờn. • Options: Cỏc tuỳ chọn. Hiện nay tuỳ chọn duy nhất được dựng là MSS (Maximum

Segment Size). Giỏ trị default = 536 byte payload + 20 byte header = 556 byte. • Pad (ở hỡnh trờn slide trước khụng vẽ): chốn thờm để chiều dài trường Options là

bội của 32 bit.

• Data: số liệu của ứng dụng TCP

105

5.3.3. Thiết lập và kết thỳc kết nối TCP Thiết lập kết nối Thiết lập kết nối

Bắt tay 3 bước (Three-way Handshake):

• A yờu cầu kết nối, gửi CONNECTION REQUEST TPDU:

– SYN=1, Seq = x (ISN)

– Source port number, Destination port number • B nhận được, gửi lại ACK TPDU

ACK (x+1), SYN=1, Seq = y (ISN) • A biờn nhận ACK TPDU của B ACK (y+1), Seq = x

Lưu ý về ISN:

• Mỗi thực thể kết nối TCP sử dụng 1 ISN (32 bit) riờng

• ISN tăng theo thời gian, nhằm trỏnh cỏc kết nối dựng nhầm cỏc segment bị “ụi”

Kết thỳc kết nối

• Đơn giản hơn việc thiết lập kết nối • Cú hai kiểu kết thỳc kết nối:

– Asymmetric release: giống trong hệ thống điện thoại.

– Symmetric release: xử lý kết nối như là 2 kết nối 1 hướng riờng biệt, mỗi kết nối này cú thể được giải phúng riờng biệt.

5.3.3. Điều khiển lưu lượng trong TCP

Giao thức TCP được xõy dựng dựa trờn cỏc khỏi niệm được Cerf và Kahn đưa ra đầu tiờn. Đú là giao thức hướng kết nối, kiểu đầu cuối - đầu cuối, tin cậy, được thiết kế phự hợp với kiến trỳc phõn lớp cỏc giao thức. Giao thức TCP cung cấp sựtruyền thụng tin cậy giữa hai tiến trỡnh chạy trờn hai mỏy tớnh ở cỏc mạng khỏc nhau nhưng kết nối với nhau. Giao thức TCP cú khả năng gửi và nhận liờn tiếp cỏc đơn vị dữ liệu chiều dài cú thể thay đổi, được gọi là phõn đoạn (segment), mỗi phõn đoạn được đúng gúi trong một “phong bỡ” và tạo nờn một gúi số liệu IP. Khi thiết kế TCP người ta giả thiết rằng TCP sẽ nhận được cỏc dịch vụ vận chuyển gúi số liệu khụng tin cậy (khụng cú sự biờn nhận cho cỏc gúi số liệu) do cỏc giao thức ở cỏc tầng bờn dưới cung cấp. Về nguyờn tắc, TCP phải cú khả năng hoạt động bờn trờn một miền rất rộng cỏc hệ thống truyền thụng, từ cỏc mạng cú cỏc đường truyền cố định, tới cỏc mạng chuyển mạch gúi và cỏc mạng chuyển mạch cứng.

Dưới đõy, chỳng tụi trỡnh bày túm tắt cỏc thuật toỏn đó được người ta đề xuất để khắc phục cỏc nguyờn nhõn dẫn đến sự vi phạm nguyờn lý “Bảo toàn cỏc gúi số liệu”.

5.3.3.1. Khi động chm

Thuật toỏn khởi động chậm (SS, Slow Start) (hỡnh 4.6) khắc phục nguyờn nhõn thứ nhất dẫn tới việc vi phạm nguyờn lý “Bảo toàn cỏc gúi số liệu”: Tăng dn lượng d liu đang được vn chuyn trong mng đểđạt ti s cõn bng. Thuật toỏn được trỡnh bày cụ thể hơn như sau:

− Bổ sung thờm tham số cửa sổ tắc nghẽn cwnd (congestion window) vào tập trạng thỏi của mỗi kết nối.

− Khi bắt đầu phỏt hoặc bắt đầu lại việc phỏt sau khi cú gúi số liệu bị mất, đặt cwnd bằng một gúi số liệu.

− Mỗi khi nhận được một biờn nhận mới, tăng cwnd lờn một gúi số liệu.

− Khi gửi, gửi số lượng gúi số liệu là min của kớch thước cửa sổ mà hai bờn đó thoả thuận và cwnd.

Thực ra, theo cơ chế khởi động chậm, cửa sổ tăng lờn theo hàm mũ, nú đạt tới kớch thước W sau thời gian bằng RTT.log2W, trong đú RTT là thời gian khứ hồi và W tớnh bằng đơn vị gúi số liệu. Điều này cú nghĩa là cửa sổ mở đủ nhanh để ảnh hưởng khụng đỏng kể đến hiệu năng, ngay cả trờn cỏc đường truyền cú tớch số dải thụng x độ trễ lớn. Theo thuật toỏn này, người gửi sẽ truyền dữ liệu với tốc độ khi cao nhất là gấp đụi giỏ trị cực đại cú thể của đường truyền. Chớnh vỡ vậy, giai đoạn khởi động chậm cần phải được kết thỳc khi cửa sổ W đạt tới một ngưỡng nhất định.

Hỡnh 5.7 minh hoạ sự tăng của cửa sổ trong cơ chế khởi động chậm. Trục thời gian được cắt thành cỏc đoạn cú chiều dài bằng khoảng thời gian khứ hồi RTT, cỏc đoạn này được chồng lờn nhau theo chiều đứng, hướng trờn-dưới ứng với chiều tăng của thời gian. Cỏc gúi số liệu được biểu diễn bằng cỏc hỡnh chữ nhật màu xỏm, bờn trong là số thứ tự của gúi số liệu. Cỏc hỡnh vuụng nhỏ, khụng tụ màu, cú đỏnh số, biểu diễn cho cỏc gúi số liệu biờn nhận tương ứng. Trờn hỡnh vẽ cú thể thấy rừ, mỗi khi cú một biờn nhận trở về, hai gúi số liệu sẽ được phỏt ra: một gúi tương ứng với biờn nhận (vỡ mỗi biờn nhận cho biết rằng đó cú một gúi số liệu rời khỏi mạng, do đú cần gửi đi một gúi thế chỗ cho nú), cũn gúi thứ hai là do biờn nhận đó làm tăng cửa sổ lờn một đơn vị gúi số liệu. Hai gúi số liệu này được vẽ chồng lờn nhau, thể hiện rằng chỳng cần được phỏt đi đồng thời, tuy nhiờn, trong thực tế chỉ cú thể phỏt chỳng đi lần lượt, do đú trong khi một gúi số liệu đang được phỏt đi, gúi số liệu cũn lại trong cửa sổ sẽ phải nằm chờ trong hàng đợi. Khi cửa sổ mở rộng đến kớch thước W, thỡ trong hàng đợi cú thể cú đến 2xW gúi số liệu đang xếp hàng chờ được gửi đi.

107

5.3.3.2. Tớnh thi gian kh hi mt cỏch thụng minh

Tớnh thời gian khứ hồi một cỏch thụng minh là cỏch khắc phục nguyờn nhõn thứ hai dẫn tới việc vi phạm nguyờn lý “Bảo toàn cỏc gúi số liệu”, đú là việc đưa vào mạng một gúi tin mới trước khi cú một gúi tin cũ ra khỏi mạng. Như đó được trỡnh bày tại tiểu mục 1.3.2.2, cú hai sai lầm dẫn đến nguyờn nhõn thứ hai này, cỏch giải quyết chỳng được trỡnh bày dưới đõy.

Cỏch gii quyết sai lm th nht: tớnh ước lượng thi gian kh hi bng mt b lc di thụng thp để trỏnh cho đại lượng này khi thăng giỏng quỏ mnh nhm duy trỡ s cõn bng. Đặc tả cho giao thức TCP, RFC-793 gợi ý tớnh ước lượng thời gian khứ hồi như sau:

RTT ←α.RTT+(1-α).M (1)

Trong đú RTT là ước lượng thời gian khứ hồi trung bỡnh, M là số đo thời gian khứ hồi nhận được từ gúi số liệu đó được biờn nhận gần nhất và α là hệ số làm trơn của bộ lọc, giỏ trị mà người ta gợi ý nờn sử dụng là α=0.9.

Sau khi ước lượng về RTT đó được cập nhật, thỡ thời gian hết giờ để phỏt lại gúi số liệu tiếp theo, RTO (retransmit timeout) được tớnh như sau:

RTO = β.RTT (2)

Cần phải chọn β sao cho việc phỏt lại do hết giờ khụng bị sai lầm do thăng giỏng của thời gian khứ hồi; nghĩa là làm cho xỏc suất thời gian khứ hồi của một gúi tin lớn hơn RTO là rất nhỏ. Chớnh vỡ vậy, β cần được chọn khụng quỏ nhỏ, cú thể sẽ dẫn đến việc phỏt lại vội vàng, khi gúi tin vẫn đang ở trong mạng; β cũng khụng được chọn quỏ lớn, cú thể sẽ dẫn đến việc phỏt lại quỏ chậm trễ, gúi tin bị mất từ lõu, mà bờn gửi vẫn chờ cho hết giờ rồi mới phỏt lại.

Trong cỏc phiờn bản TCP được cài đặt đầu tiờn, người ta thường chọn β là một số cố định bằng 2. Tuy nhiờn, cỏc nghiờn cứu thực nghiệm sau này cho thấy rằng, RTT thăng giỏng trong một miền tương đối rộng, vỡ vậy khụng nờn chọn β theo cỏch đơn giản như trờn. Cụng trỡnh đầu tiờn đề xuất việc cải tiến thuật toỏn tớnh RTO của Jacobson được cụng bố năm 1988. ễng đó đề xuất cỏch làm cho β xấp xỉ tỉ lệ với độ lệch chuẩn của hàm mật độ xỏc suất thời gian đến của biờn nhận. Cụ thể là, sử dụng độ lệch trung bỡnh như một ước lượng rẻ (cheap estimator) của độ lệch chuẩn. Thuật toỏn này đũi hỏi phải tớnh một biến nữa là độ lệch được làm trơn D, như sau:

D = α.D + (1-α).|RTT-M| (3)

Trong đú, cỏc tham số RTT và M hoàn toàn tương tự như trong biểu thức (1), cũn α

Một phần của tài liệu Sổ tay mạng máy tính doc (Trang 101 - 119)