Tiền thõn của mạng Internet là ARPANET, xuất phỏt từ một mạng thớ nghiệm được Robert L.G đề xuất vào năm 1967. Cơ quan quản lý dự ỏn nghiờn cứu phỏt triển ARPA thuộc Bộ Quốc phũng Mỹđó liờn kết mạng tại 4 địa điểm đầu tiờn vào thỏng 7 năm 1968 bao gồm: Viện nghiờn cứu Stanford, Đại học tổng hợp California ở Los Angeles, Đại học tổng hợp Utah và Đại học tổng hợp California ở Santa Barbara (UCSB). Đú chớnh là mạng liờn khu vực (WAN) đầu tiờn được xõy dựng.
Năm 1983, giao thức TCP/IP chớnh thức được coi như một chuẩn đối với ngành quõn sự Mỹ và tất cả cỏc mỏy tớnh nối với ARPANET phải sử dụng chuẩn mới này. ARPANET phỏt triển rất nhanh, mọi trường đại học đều muốn gia nhập, việc quản lý mạng trở nờn khú khăn. Vỡ vậy, năm 1984, ARPANET được chia ra thành hai phần: phần thứ nhất cho cỏc địa điểm quõn sự, được gọi là MILNET; phần thứ hai là một ARPANET mới, cho cỏc địa điểm phi quõn sự, dành cho việc nghiờn cứu và phỏt triển. Tuy nhiờn hai mạng này vẫn được liờn kết với nhau nhờ giao thức liờn mạng IP.
Giao thức TCP/IP ngày càng thể hiện rừ cỏc điểm mạnh của nú, quan trọng nhất là khả năng liờn kết cỏc mạng khỏc với nhau một cỏch dễ dàng. Chớnh điều này cựng với cỏc chớnh sỏch mở cửa đó cho phộp cỏc mạng dựng cho nghiờn cứu và thương mại kết nối được với ARPANET, thỳc đẩy việc tạo ra một siờu mạng (SuperNetwork).
Mốc lịch sử quan trọng của Internet được xỏc lập vào giữa thập kỷ 80 khi Hội đồng Khoa học Quốc gia Mỹ NSF (National Science Foundation) thành lập mạng liờn kết cỏc trung tõm mỏy tớnh lớn với nhau gọi là NSFNET. Nhiều doanh nghiệp đó chuyển từ ARPANET sang NSFNET và do đú sau gần 20 năm hoạt động, ARPANET khụng cũn hiệu quảđó ngừng hoạt động vào khoảng năm 1990.
Sự phỏt triển của mạng xương sống NSFNET và những mạng vựng khỏc đó tạo ra một mụi trường thuận lợi cho sự phỏt triển của Internet. Đến năm 1995, NSFNET thu lại thành một mạng nghiờn cứu cũn Internet thỡ vẫn tiếp tục phỏt triển.
Với khả năng kết nối mở, Internet đó trở thành một mạng lớn nhất trờn thế giới, mạng của cỏc mạng, xuất hiện trong mọi lĩnh vực thương mại, chớnh trị, quõn sự, nghiờn cứu, giỏo dục, văn hoỏ, xó hội... Cũng từ đú cỏc dịch vụ trờn Internet khụng ngừng phỏt triển. Ngày nay khi cơ sở hạ tầng của mạng Internet được nõng cao (đặc biệt là về băng thụng) đó làm cho nhu cầu của cỏc ứng dụng đa phương tiện qua mạng tăng lờn nhanh chúng.
5.1.2. Sự tăng trưởng của Internet
Cỏc biểu đồ dưới đõy (hỡnh 5.2 và 5.3) cho ta thấy được tốc độ tăng trưởng mẽ của số lượng mỏy (hosts) và mạng (networks) kết nối vào Internet.
5.1.3. Cỏc yếu tố thỳc đẩy sự tăng trưởng của Internet
− Sử dụng TCP/IP trong Unix, hệđiều hành đượ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.
− Cỏc ứng dụng trờn Internet khụng ngừng phỏt triển, đỏp ứng nhu cầu đa dạng của người dựng
5.2. KIẾN TRÚC MẠNG INTERNET 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.
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.
Tầng ứng dụng
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.
Tầng Giao vận
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).
Tầng 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.
Tầng truy xuất mạng
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)
5.3. GIAO THỨC TCP 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:
• 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
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
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. Khởi động chậm
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 dần lượng dữ liệu
đang được vận chuyển trong mạng đểđạt tới sự cõn bằng. 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