TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN
CNKT ĐIỆN TỬ - VIỄN THÔNG ---oOo---
BÁO CÁO MÔN
BỘ GIAO THỨC TCP/IP
ĐỀ TÀI
CHƯƠNG 1: “BỘ GIAO THỨC TCP/IP VÀ INTERNET”
Giảng viên hướng dẫn : TS. Đỗ Xuân Thu Sinh viên thực hiện : Nhóm 1
Lớp : 73DCDT21
Mã học phần : DC3DT47
Hà Nội, Ngày 10 tháng 3 năm 2025
DANH SÁCH THÀNH VIÊN NHÓM 1
STT Họ Và Tên Mã Sinh Viên
1 Ngô Viết Thái 73DCDT22101
2 Đào Xuân Đông 73DCDT22210
3 Lê Thị Ngọc Mai 73DCDT22273
4 Ngô Việt Chiều 73DCDT23164
5 Trần Duy Thanh 73DCDT22238
6 Nguyễn Đức Vũ Hưng 73DCDT23228
7 Hoàng Nguyễn Anh Đức 73DCDT22268
8 Nguyễn Quốc Tuấn 73DCDT22179
9 Nguyễn Long Vũ 73DCDT22169
10 Phạm Tuấn Vũ 73DCDT22174
11 Nguyễn Văn Thành Tôn 73DCDT22195
12 Nguyễn Thiên Phúc 73DCDT22260
MỤC LỤC
MỤC LỤC...i
DANH MỤC HÌNH ẢNH... ii
DANH MỤC BẢNG BIỂU...iii
DANH MỤC TỪ VIẾT TẮT...iv
LỜI MỞ ĐẦU... 1
ĐẶT VẤN ĐỀ...2
CHƯƠNG I: GIỚI THIỆU VỀ GIAO THỨC TCP/IP...3
1.1. Lịch sử phát triển của TCP/IP và mạng Internet...3
CHƯƠNG II: GIAO THỨC TCP/ IP...5
1.2. Giao thức TCP/IP...5
1.2.1. Mô hình 7 lớp OSI...6
1.2.2. Giao thức TCP/IP và mô hình 7 lớp OSI...7
1.2.3. Giao thức liên mạng IP...9
1.2.4. Giao thức TCP...25
1.2.5. Giao thức UDP...32
CHƯƠNG III: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN...34
TỔNG KẾT... 36
DANH MỤC HÌNH ẢNH
Hình 1.1: Mô hình 7 lớp OSI...6
Hình 1.2: Giao thức TCP/IP khi so sánh với mô hình OSI...7
Hình 1.3: Cấu trúc của Datagram...10
Hình 1.5: Cấu trúc Header gói IPv6... 16
Hình 1.6: Giao thức ARP...18
Hình 1.7: Các bước thực hiện ARP...19
Hình 1.8: Khuôn dạng gói tin ARP/RARP...19
Hình 1.9: Giao thức RARP...22
Hình 1.10: ARP uỷ quyền nối hai mạng vật lý có cùng địa chỉ mạng...22
Hình 1.11: trình bày phương thức hoạt động của giao thức TCP...27
Hình 1.12: Khuôn dạng TCP Segment...27
Hình 1.13: Khuôn dạng UDP Datagram...32
DANH MỤC BẢNG BIỂU
Bảng 1.1: Bảng phân lớp địa chỉ...14
DANH MỤC TỪ VIẾT TẮT
TỪ VIẾT TẮT
TIẾNG ANH TIẾNG VIỆT
TCP Transmission Control
Protocol Giao thức điều khiển truyền dẫn
IP Internet Protocol Giao thức Internet
UDP User Datagram Protocol Giao thức Datagram người dùng
FTP File Transfer Protocol Giao thức truyền tập tin
OSI Open Systems
Interconnection
Kết nối các hệ thống mở
ISO International
Organization for Standardization
Tổ chức tiêu chuẩn hóa quốc tế
IEEE Institute of Electrical and Electronics Engineers
Viện Kỹ sư Điện và Điện tử
DHCP Dynamic Host
Configuration Protocol Giao thức cấu hình máy chủ động
SDN Software-Defined
Networking Mạng được xác định bằng phần mềm
AI Artificial Intelligence Trí tuệ nhân tạo
LỜI MỞ ĐẦU
Trong thời đại công nghệ thông tin bùng nổ, Internet đóng vai trò then chốt trong mọi lĩnh vực của đời sống con người. Từ học tập, nghiên cứu, kinh doanh đến giải trí, Internet đã trở thành công cụ không thể thiếu, kết nối hàng tỷ thiết bị trên toàn thế giới.
Tuy nhiên, để hiểu rõ cách Internet vận hành, cần xem xét các yếu tố cấu thành mạng, đặc biệt là các giao thức truyền thông giúp đảm bảo quá trình trao đổi dữ liệu diễn ra mượt mà và chính xác.
Bộ giao thức TCP/IP được xem là nền tảng cốt lõi của Internet, cho phép các thiết bị có thể liên lạc với nhau một cách hiệu quả. Cùng với đó, mô hình OSI giúp cung cấp một cách tiếp cận lý thuyết nhằm phân tích các chức năng của hệ thống mạng một cách chi tiết hơn.
Báo cáo này sẽ đi sâu vào phân tích các thành phần chính của Internet, bao gồm phần cạnh của mạng, lõi mạng, các thiết bị vật lý, cũng như cấu trúc Internet và ISP.
Đồng thời, báo cáo cũng đề cập đến các yếu tố ảnh hưởng đến hiệu suất mạng như trễ và mất mát dữ liệu, từ đó làm rõ vai trò của TCP/IP và so sánh với mô hình OSI để hiểu rõ hơn về sự phát triển của các hệ thống mạng hiện đại.
Hy vọng rằng, thông qua báo cáo này, người đọc sẽ có cái nhìn tổng quan và sâu sắc hơn về cách Internet hoạt động, cũng như tầm quan trọng của các giao thức truyền thông trong việc đảm bảo sự vận hành trơn tru của hệ thống mạng toàn cầu.
Báo cáo nhóm chúng em gồm 3 phần:
CHƯƠNG 1: GIỚI THIỆU VỀ TCP/IP VÀ CHƯƠNG 2: GIAO THỨC TCP/IP
CHƯƠNG 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
ĐẶT VẤN ĐỀ
Trong thời đại công nghệ số, Internet đã trở thành một phần không thể thiếu trong đời sống con người, từ giao tiếp, học tập, làm việc cho đến giải trí. Hệ thống Internet không chỉ đơn thuần là một mạng lưới kết nối các thiết bị mà còn là một cấu trúc phức tạp, dựa trên các nguyên lý truyền thông dữ liệu tiên tiến.
Một trong những yếu tố quan trọng quyết định sự vận hành của Internet chính là bộ giao thức TCP/IP. Đây là nền tảng giúp các thiết bị có thể giao tiếp với nhau một cách hiệu quả, đảm bảo dữ liệu được truyền tải một cách chính xác và tin cậy. Bên cạnh đó, mô hình OSI cũng là một cách tiếp cận lý thuyết giúp hiểu rõ hơn về cách thức hoạt động của mạng máy tính.
Tuy nhiên, để có thể vận hành và tối ưu hóa hệ thống mạng, chúng ta cần hiểu rõ về các thành phần của Internet, bao gồm phần cạnh của mạng (network edge), lõi của mạng (network core), các thiết bị mạng vật lý, cấu trúc Internet và ISP, cũng như các yếu tố ảnh hưởng đến hiệu suất mạng như trễ và mất mát.
Chính vì vậy, báo cáo này được thực hiện nhằm cung cấp một cái nhìn tổng quan về bộ giao thức TCP/IP, cách thức hoạt động của Internet, các thiết bị mạng quan trọng, cũng như so sánh TCP/IP với mô hình OSI. Qua đó, báo cáo sẽ giúp làm rõ tầm quan trọng của TCP/IP trong hệ thống mạng hiện đại và những thách thức cần giải quyết trong tương lai.
CHƯƠNG I: GIỚI THIỆU VỀ GIAO THỨC TCP/IP
1.1. Lịch sử phát triển của TCP/IP và mạng Internet
Mạng Internet là một mạng máy tính toàn cầu, bao gồm hàng chục triệu người sử dụng, được hình thành từ cuối thập kỷ 60 từ một thí nghiệm của Bộ quốc phòng Mỹ.
Tại thời điểm ban đầu đó là mạng ARPAnet của Ban quản lý dự án nghiên cứu Quốc phòng. ARPAnet là một mạng thử nghiệm phục vụ các nghiên cứu quốc phòng, một trong những mục đích của nó là xây dựng một mạng máy tính có khả năng chịu đựng các sự cố (ví dụ một số nút mạng bị tấn côngvà phá huỷ nhưng mạng vẫn tiếp tục hoạt động). Mạng cho phép một máy tính bất kỳ trên mạng liên lạc với mọi máy tính khác.
Khả năng kết nối các hệ thống máy tính khác nhau đã hấp dẫn mọi người, vả lại đây cũng là phương pháp thực tế duy nhất để kết nối các máy tính của các hãng khác nhau. Kết quả là các nhà phát triển phần mềm ở Mỹ, Anh và Châu Âu bắt đầu phát triển các phần mềm trên bộ giao thức TCP/IP (giao thức được sử dụng trong việc truyền thông trên Internet) cho tất cả các loại máy. Điều này cũng hấp dẫn các trường đại học, các trung tâm nghiên cứu lớn và các cơ quan chính phủ, những nơi mong muốn mua máy tính từ các nhà sản xuất, không bị phụ thuộc vào một hãng cố định nào.
Bên cạnh đó các hệ thống cục bộ LAN bắt đầu phát triển cùng với sự xuất hiện các máy để bàn (Desktop Workstations) vào năm 1983. Phần lớn các máy để bàn sử dụng Berkeley UNIX, phần mềm cho kết nối TCP/IP đã được coi là một phần của hệ điều hành này. Một điều rõ ràng là các mạng này có thể kết nối với nhau dễ dàng.
Trong quá trình hình thành mạng Internet, NSFNET (được sự tài trợ của Hội khoa học Quốc gia Mỹ) đóng một vai trò tương đối quan trọng. Vào cuối những năm 80, NFS thiết lập 5 trung tâm siêu máy tính. Trước đó, những máy tính nhanh nhất thế giới được sử dụng cho công việc phát triển vũ khí mới và một vài hãng lớn. Với các trung tâm mới này, NFS đã cho phép mọi người hoạt động trong lĩnh vực khoa học được sử dụng. Ban đầu, NFS định sử dụng ARPAnet để nối 5 trung tâm máy tính này, nhưng ý đồ này đã bị thói quan liêu và bộ máy hành chính làm thất bại. Vì vậy, NFS đã quyết định xây dựng mạng riêng của mình, vẫn dựa trên thủ tục TCP/IP, đường truyền tốc độ 56 Kbps. Các trường đại học được nối thành các mạng vùng và các mạng vùng được nối với các trung tâm siêu máy tính.
Ngày nay mạng Internet đã được phát triển nhanh chóng trong giới khoa học và giáo dục của Mỹ, sau đó phát triển rộng toàn cầu, phục vụ một cách đắc lực cho việc trao đổi thông tin trước hết trong các lĩnh vực nghiên cứu, giáo dục và gần đây cho thương mại.
Internet sử dụng kỹ thuật chuyển mạch gói và dùng giao thức TCP/IP. Ngày nay nhiều mạng với kiến trúc khác nhau có thể nối vào Internet nhờ các cầu nối đa giao thức.
Bộ giao thức liên mạng xuất phát từ công trình DARPA, từ những năm đầu thập niên kỷ 1970. Sau khi đã hoàn thành việc xây dựng ARPANET tiên phong, DARPA bắt đầu công việc trên một số những kỹ thuật truyền thông dữ liệu khác. Vào năm 1972, Robert E. Kahn đã được thuê vào làm việc tại Văn phòng kỹ thuật điều hành tin tức (Information Processing Technology Office) của DARPA, phòng có chức năng liên quan đến mạng lưới truyền thông dữ liệu thông qua vệ tinh và mạng lưới truyền thông bằng sóng radio trên mặt đất. Trong quá trình làm việc tại đây Kahn đã phát hiện ra giá trị của việc liên thông giữa chúng. Vào mùa xuân năm 1973, Vinton Cerf, kỹ sư thiết kế bản giao thức NCP hiện dùng (chương trình ứng dụng xử lý mạng lưới truyền thông - nguyên tiếng Anh là "Network Control Program"), được phân công cùng làm việc với Kahn trên các mô hình liên kết nối kiến trúc mở (open-architecture interconnection models) với mục đích thiết kế giao thức sắp tới của ARPANET.
Vào mùa hè năm 1973, Kahn và Cerf đã nhanh chóng tìm ra một phương pháp tái hội nhập căn bản, mà trong đó những khác biệt của các giao thức liên kết mạng được che lấp đi bằng một giao thức liên kết mạng chung, và thay vì mạng lưới truyền thông phải chịu trách nhiệm về tính đáng tin cậy, như trong ARPANET, thì các máy chủ (hosts) phải chịu tránh nhiệm (Cerf ghi công của Hubert Zimmerman và Louis Pouzin (thiết kế viên của mạng lưới truyền thông CYCLADES) là những người có ảnh hưởng lớn trong bản thiết kế này.)
Với nhiệm vụ là một mạng lưới truyền thông bị hạ cấp tới mức cơ bản tối thiểu, khiến việc hội nhập với các mạng lưới truyền thông khác trở nên hầu như bất khả thi, mặc dầu đặc tính của chúng là gì, và vì thế, giải đáp nan đề đầu tiên của Kahn. Một câu nói cửa miệng vì thế mà TCP/IP, sản phẩm cuối cùng do những cống hiến của Cerf và Kahn, sẽ chạy trên "đường dây nối giữa hai ống bơ rỉ", và quả nhiên nó đã được thực thi dùng các con chim bồ câu đưa thư (homing pigeons). Một máy vi tính được dùng là cổng nối (gateway) (sau này đổi thành bộ định tuyến (router) để tránh nhầm với những loại
cổng nối khác ) được thiết bị một giao diện với từng mạng lưới truyền thông, truyền tải gói dữ liệu qua lại giữa chúng.
Ý tưởng này được nhóm nghiên cứu mạng lưới truyền thông của Cerf, tại Stanford, diễn giải ra tỉ mỉ, cụ thể vào khoảng thời gian trong năm 1973-1974. Những công trình về mạng lưới truyền thông trước đó tại Xerox PARC, nơi sản sinh ra bộ giao thức PARC Universal Packet, phần lớn được dùng vào thời kỳ đó, cũng gây ảnh hưởng về kỹ thuật không ít.
Sau đó DARPA ký hợp đồng với BBN, Stanford, và Trường đại học chuyên nghiệp Luân Đôn (The University College London - viết tắt là UCL) kiến tạo một số phiên bản của giao thức làm việc được, trên các nền tảng phần cứng khác nhau. Có bốn phiên bản đã được xây dựng - TCP v1, TCP v2. Phiên bản 3 được tách ra thành hai phần TCP v3 và IP v3, vào mùa xuân năm 1978, và sau đó ổn định hóa với phiên bản TCP/IP v4 - giao thức tiêu chuẩn hiện dùng của Internet ngày nay.
Vào năm 1975, cuộc thử nghiệm thông nối hai mạng lưới TCP/IP, giữa Stanford và UCL đã được tiến hành. Vào tháng 11 năm 1977, một cuộc thử nghiệm thông nối ba mạng lưới TCP/IP, giữa Mỹ, Anh và Na Uy đã được chỉ đạo. Giữa năm 1978 và 1983, một số những bản mẫu của TCP/IP đã được thiết kế tại nhiều trung tâm nghiên cứu. Ngày 1 tháng 1 năm 1983, ARPANET đã hoàn toàn được chuyển hóa sang dùng TCP/IP.[2]
Vào tháng 3 năm 1982,[3] Bộ Quốc phòng Mỹ chấp thuận TCP/IP thành một tiêu chuẩn cho toàn bộ mạng lưới vi tính truyền thông quốc phòng. Vào năm 1985, Uỷ ban kiến trúc Internet (Internet Architecture Board) đã dành 3 ngày hội thảo về TCP/IP cho công nghiệp điện toán, với sự tham dự của 250 đại biểu từ các công ty thương mại. Cuộc hội thảo này đã làm tăng thêm uy tín và sự nổi tiếng của giao thức, khiến nó ngày càng phổ biến trên thế giới.
Ngày 9 tháng 11 năm 2005 Kahn và Cerf đã được tặng thưởng Huy chương Tự do Tổng thống (Presidential Medal of Freedom) cho những thành tích cống hiến của họ đối với nền văn hóa của Mỹ.[4]
CHƯƠNG II: GIAO THỨC TCP/ IP
2.1. Giao thức TCP/IP
Khái niệm giao thức (Protocol) là một khái niệm cơ bản của mạng truyền thông.
Có thể hiểu một cách khái quát đó là tập hợp tất cả các quy tắc cần thiết (các thủ tục, các khuôn dạng dữ liệu, các cơ chế phụ trợ....) cho phép các giao thức trao đổi thông tin trên mạng được thực hiện một cách chính xác và an toàn. Có rất nhiều họ giao thức đang được sử dụng trên mạng truyền thông hiện nay như IEEE802.X dùng trong mạng cục bộ, CCITT (nay là ITU) dùng cho liên mạng diện rộng và đặc biệt là họ giao thức chuẩn của ISO (tổ chức tiêu chuẩn hoá quốc tế ) dựa trên mô hình tham chiếu bảy lớp cho việc kết nối các hệ thống mở. Trên Internet họ giao thức được sử dụng là bộ giao thức TCP/IP . Hai giao thức được dùng chủ yếu ở đây là TCP ( Transmision Control Protocol ) và IP (Internet Protocol ). TCP là một giao thức kiểu có kết nối (Connection-Oriented), tức là cần phải có một giai đoạn thiết lập liên kết giữa một cặp thực thể TCP trước khi chúng thực hiện trao đổi dữ liệu. Còn giao thức IP là một giao thức kiểu không kết nối (Connectionless), nghĩa là không cần phải có giai đoạn thiết lập liên kết giữa một cặp thực thể nào đó trước khi trao đổi dữ liệu . Khái niệm TCP/IP không chỉ bị giới hạn ở hai giao thức này. Thường thì TCP/IP được dùng để chỉ một nhóm các giao thức có liên quan đến TCP và IP như UDP (User Datagram Protocol), FTP (File Transfer Protocol), TELNET (Terminal Emulation Protocol) và v.v...
Để giảm độ phức tạp của việc thiết kế và cài đặt mạng hầu hết các mạng máy tính hiện có đều được phân tích thiết kế theo quan điểm phân tầng . Mỗi hệ thống thành phần của mạng được xem như là một cấu trúc đa tầng, trong đó mỗi tầng được xây dựng trên cơ sở tầng trước đó. Số lượng các tầng cùng như tên và chức năng của mỗi tầng là tuỳ thuộc vào nhà thiết kế. Họ giao thức của ISO (tổ chức tiêu chuẩn hoá quốc tế) dựa trên mô hình tham chiếu 7 lớp cho việc kết nối các hệ thống mở là họ giao thức được dùng làm chuẩn để các họ giao thức khác so sánh với nó do vậy trước khi đi vào nghiên cứu giao thức TCP/IP ta cần xem xét mô hình 7 lớp OSI.
Trong mô hình OSI mục đích của mỗi tầng là cung cấp các dịch vụ cho tầng cao hơn tiếp theo, mô tả chi tiết cách thức cài đặt các dịch vụ này. Các tầng được trừu tượng hoá theo cách là mỗi tầng chỉ biết rằng nó liên lạc với tầng tương ứng trên máy khác. Trong thực tế thì mỗi tầng chỉ liên lạc với các tầng kề trên và kề dưới nó trên mỗi hệ thống mà thôi.
7 APPLICAT ION PRESENT
ATION SESSION TRANSPO
RT NETWOR
K DATA
LINK PHYSICA
L
Giao thức tầng 7 ỨNG DỤNG 7
6 Giao thức tầng 6 TRÌNH DIỄN 6
5
4 Giao thức tầng 5 PHIÊN
GIAO VẬN 5
4 Giao thức tầng4
3 Giao thức tầng 3 MẠNG 3
2 Giao thức tầng 2
Giao thức tầng1
LIÊN KẾT DỮ LIỆU VẬT LÝ
2
1 1
Trừ tầng thấp nhất trong mô hình mạng không tầng nào có thể chuyển thông tin một cách trực tiếp với tầng tương ứng trong mạng máy tính khác. Thông tin trên máy cần gửi phải được chuyển đi qua tất cả các tầng thấp hơn. Thông tin sau đó lại được truyền qua Card mạng tới máy nhận và lại được truyền lên qua các tầng cho đến khi nó đến tầng đã gửi thông tin đi.
2.2.1. Mô hình 7 lớp OSI
Mô hình này bao gồm 7 tầng. Tên gọi và chức năng các tầng được trình bày trong hình 1.1.
Hệ thống mở A Hệ thống mở B
Đường truyền vật lý
Bảng 2.1: Mô hình 7 lớp OSI Chức năng của các tầng như sau:
2.2.1.1. Tầng vật lý (Physical): Liên quan đến nhiệm vụ truyền dòng bits không có cấu trúc qua đường truyền vật lý, truy nhập đường truyền vật lý nhờ các phương tiện cơ, điện, hàm, vật lý.
2Tầng liên kết dữ liệu (Data link): Cung cấp phương tiện để truyền thông tin qua liên kết vật lý đảm bảo tin cậy, gửi các khối dữ liệu với các cơ chế đồng bộ hoá, kiểm soát lỗi và kiểm soát luồng dữ liệu cần thiết.
Application Presentation
Session Transport
Network Data link
Physical
Telnet FTP SMTP DNS SNMP
Transmision Control
Protocol (TCP) UserDatagram Protocol (UDP)
RIP ICMP ARP Internet Protocol (IP)
Ethernet Tokenbus Token Ring FDDI IEEE802.3 IEEE802.4 EEE802.5 ANSI X3 T95
OSI Model TCP/IP Architectual Model
3. Tầng mạng (Network): Thực hiện việc chọn đường và chuyển tiếp thông tin với công nghệ chuyển mạch thích hợp, thực hiện kiểm soát luồng dữ liệu và cắt/ hợp dữ liệu nếu cần.
4. Tầng giao vận (Transport): Thực hiện việc truyền dữ liệu giữa hai đầu mút (end - to - end), thực hiện cả việc kiểm soát lỗi và kiểm soát luồng dữ liệu giữa hai đầu mút. Cũng có thể thực hiện việc ghép kênh, cắt / hợp dữ liệu nếu cần.
5. Tầng phiên (Session): Cung cấp phương tiện quản lý truyền thông giữa các ứng dụng, thiết lập, duy trì, đồng bộ hoá và huỷ bỏ các phiên truyền thông giữa các ứng dụng.
6. Tầng trình diễn (Presentation): Chuyển đổi cú pháp dữ liệu để đáp ứng yêu cầu truyền dữ liệu của các tầng ứng dụng qua mô hình OSI.
7. Tầng ứng dụng (Application): Cung cấp các phương tiện để người sử dụng có thể truy cập được vào môi trường OSI, đồng thời cung cấp các dịch vụ thông tin phân tán.
2.2.2. Giao thức TCP/IP và mô hình 7 lớp OSI
Mạng Internet với họ giao thức TCP/IP được minh hoạ tổng quát như hình 1.2 với các dịch vụ mà nó cung cấp và các chuẩn được sử dụng có so sánh với kiến trúc hệ thống mở OSI để chúng ta có một cách nhìn tổng quát về họ giao thức này.
Bảng 2.2: Giao thức TCP/IP khi so sánh với mô hình OSI
Trong đó:
FTP – File Transfer Protocol
SMTP- Simple Mail Transfer Protocol DNS – Domain Name System
SNMP – Simple Network Manage
Protocol ICMP- Internet Control Message Protocol ARP - Address Resolution Protocol
FDDI - - Fiber Distributed Data Interface RPI - - Routing Information Protocol
TCP: (Transmistion Control Protocol) Thủ tục liên lạc ở tầng giao vận của TCP/IP. TCP có nhiệm vụ đảm bảo liên lạc thông suốt và tính đúng đắn của dữ liệu giữa 2 đầu của kết nối, dựa trên các gói tin IP.
UDP: (User Datagram Protocol) Thủ tục liên kết ở tầng giao vận của TCP/IP.
Khác với TCP, UDP không đảm bảo khả năng thông suốt của dữ liệu, cũng không có chế độ sửa lỗi. Bù lại, UDP cho tốc độ truyền dữ liệu cao hơn TCP.
IP: (Internet Protocol) Là giao thức ở tầng thứ 3 của TCP/IP, nó có trách nhiệm vận chuyển các Datagrams qua mạng Internet.
ICMP: (Internet Control Message Protocol) Thủ tục truyền các thông tin điều khiển trên mạng TCP/IP. Xử lý các tin báo trạng thái cho IP như lỗi và các thay đổi trong phần cứng của mạng ảnh hưởng đến sự định tuyến thông tin truyền trong mạng.
RIP: (Routing Information Protocol) Giao thức định tuyến thông tin đây là một trong những giao thức để xác định phương pháp định tuyến tốt nhất cho truyền tin.
ARP: (Address Resolution Protocol) Là giao thức ở tầng liên kết dữ liệu. Chức năng của nó là tìm địa chỉ vật lý ứng với một địa chỉ IP nào đó. Muốn vậy nó thực hiện Broadcasting trên mạng, và máy trạm nào có địa chỉ IP trùng với địa chỉ IP đang được hỏi sẽ trả lời thông tin về địa chỉ vật lý của nó.
DSN: (Domain name System) Xác định các địa chỉ theo số từ các tên của máy tính kết nối trên mạng.
FTP: (File Transfer Protocol) Giao thức truyền tệp để truyền tệp từ một máy này đến một máy tính khác. Dịch vụ này là một trong những dịch vụ cơ bản của Internet.
Telnet: (Terminal Emulation Protocol) Đăng ký sử dụng máy chủ từ xa với
nhập vào máy chủ để xử dụng các tài nguyên của máy chủ như là mình đang ngồi tại máy chủ.
SMTP: (Simple Mail Transfer Protocol) Giao thức truyền thư đơn giản: là một giao thức trực tiếp bảo đảm truyền thư điện tử giữa các máy tính trên mạng Internet.
SNMP: (Simple Network Management Protocol) Giao thức quản trị mạng đơn giản: là dịch vụ quản trị mạng để gửi các thông báo trạng thái về mạng và các thiết bị kết nối mạng.
2.2.3. Giao thức liên mạng IP
Mục đích chính của IP là cung cấp khả năng kết nối các mạng con thành liên mạng để truyền dữ liệu. Vai trò của IP tương tự vai trò của giao thức tầng mạng trong mô hình OSI. Mặc dù từ Internet xuất hiện trong IP nhưng giao thức này không nhất thiết phải sử dụng trên Internet. Tất cả các máy trạm trên Internet đều hiểu IP, nhưng IP có thể sử dụng trong các mạng mà không có sự liện hệ với Internet.
IP là giao thức kiểu không kết nối (Connectionless) tức 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. Đơn vị dữ liệu dùng trong giao thức IP là IP Datagram hay gọi tắt là Datagram.
Một Datagram được chia làm hai phần : Phần tiêu đề (Header) và phần chứa dữ liệu cần truyền (Data). Trong đó phần Header gồm một số trường chứa các thông tin điều khiển Datagram.
1.2.3.1.Cấu trúc của IP Datagram
Cấu trúc tổng quát của một IP Datagram như sau:
DATAGAM HEADER DATAGRAM DATA AREA Cấu trúc chi tiết của một IP Datagram Header được mô tả như hình 1.3.
Version IHL Type of service
Total length
Identification Flags Fragment offset
Time to live Protocol Header checksum Source IP address
Destination IP address
Options Padding Datas
Bảng 2.3: Cấu trúc của Datagram Trong đó:
Trường version (4 bits) cho biết phiên bản của IP đang được sử dụng, hiện nay là IPv4. Trong tương lai thì địa chỉ IPv6 sẽ được sử dụng.
IHL (4 bits) Chỉ thị độ dài phần đầu (Internet Header Length) của Datagram tính theo đơn vị từ (32 bits).
Type of service (8 bits), đặc tả các tham số về dịch vụ. Khuôn dạng của nó được chỉ ra như sau.
0 1
2
3 4 5 6
7
Precedence D T R Reserved
8 Bits của trường Service được chia ra làm 5 phần cụ thể như sau:
Precedence (3 bits) chỉ thị quyền ưu tiên gửi Datagram, các mức ưu tiên từ 0 (bình thường) đến mức cao nhất là 7 (điều khiển mạng) cho phép người sử dụng chỉ ra tầm quan trọng của Datagram.
Ba bit D, T, R nói nên khiểu truyền Datagram, cụ thể như sau:
Bit D (Delay)chỉ độ trễ yêu cầu.
Bit T (Throughput) chỉ thông lượng yêu cầu.
Bit R (Reliability) chỉ độ tin cậy yêu cầu.
Reserved (2 bits) chưa sử dụng.
Total Length (16 bits): Chỉ độ dài toàn bộ Datagram kể cả phần Header. Đơn vị tính là Byte.
Identification (16 bits) Trường này được sử dụng để giúp các Host đích lắp lại một gói đã bị phân mảnh, nó cùng các trường khác như Source Address, Destination Address để định danh duy nhất một Datagram khi nó còn ở trên liên mạng.
Flags( 3 bits) liên quan đến sự phân đoạn các Datagrams cụ thể như sau:
0 1 2
0 DF MF
Trong đó các thành phần:
Bit 0 Chưa sử dụng lấy giá trị 0.
Bit 1 (DF) DF=0: Thực hiện phân đoạn.
DF=1: Không thực hiện phân đoạn.
Bit 2 (MF) MF=0: Phân đoạn lần cuối.
MF=1: Phân đoạn thêm.
Fragment offset (13 bits): Chỉ vị trí của đoạn (Fragment) ở trong Datagram. Đơn vị tính là 64 bits (8 Bytes).
Time to live (8 bits): Cho biết thời gian tồn tại của Datagram trên liên mạng. Để tránh tình trạng một Datagram bị quẩn trên liên mạng. Nếu sau một khoảng thời gian bằng thời gian sống mà Datagram vẫn chưa đến đích thì nó bị huỷ.
Protocol (8 bits) Cho biết giao thức tầng trên kế tiếp sẽ nhận vùng dữ liệu ở trạm đích. Giao thức tầng trên của IP thường là TCP hoặc UDP.
Header Checksum (16 bits): Đây là mã kiểm soát lỗi 16 bits theo phương pháp CRC cho vùng Header nhằm phát hiện các lỗi của Datagram.
Source Address (32 bits) Cho biết địa chỉ IP của trạm nguồn.
Destination Address (32 bits) Cho biết địa chỉ IP của trạm đích. Trong một liên mạng địa chỉ IP của trạm nguồn và địa chỉ IP của trạm đích là duy nhất.
Options (độ dài thay đổi) Dùng để khai báo Options do người sử dụng yêu cầu.
Padding (độ dài thay đổi) Là một vùng đệm được dùng để đảm bảo cho phần Header luôn kết thúc ở mức 32 bits. Giá trị của Padding gồm toàn bit 0.
Data (Độ dài thay đổi) Vùng dữ liệu có độ dài là bội số của 8 bits. Kích thước tối đa của trường Data là 65535 Bytes.
2.2.3.2. Quá trình phân mảnh các gói dữ liệu
Trong quá trình truyền dữ liệu, một gói dữ liệu (Datagram) có thể được truyền đi qua nhiều mạng khác nhau. Một gói dữ liệu nhận được từ một mạng nào đó có thể quá lớn để truyền đi trong một gói đơn của mạng khác, bởi vậy mỗi loại cấu trúc mạng cho phép một đơn vị truyền cực đại MTU (Maximum Transmission Unit) khác nhau. Đây chính là kích thước lớn nhất của một gói mà chúng có thể truyền được. Nếu như một gói dữ liệu nhận được từ một mạng nào đó mà kích thước của nó lớn hơn MTU của mạng khác thì nó cần được phân mảnh ra thành gói nhỏ hơn gọi là Fragment để truyền đi, quá trình này gọi là quá trình phân mảnh. Dạng của một Fragment cũng giống như dạng của một gói dữ liệu thông thường. Từ thứ hai trong phần Header chứa các thông tin để xác định mỗi Fragment và cung cấp các thông tin để hợp nhất các Fragments này lại thành các gói như ban đầu. Trường định danh (Indentification) dùng để xác định Fragment này thuộc vào gói dữ liệu nào. Trường định danh có một giá trị duy nhất cho mỗi gói dữ liệu được vận chuyển. Mỗi thành phần của gói dữ liệu bị phân mảnh sẽ có cùng giá trị trường định danh. Điều đó cho phép IP lắp ráp lại các gói dữ liệu bị phân mảnh một cách phù hợp.
Hậu quả của việc phân mảnh dữ liệu là các gói bị phân mảnh sẽ đến đích chậm hơn so với một gói không bị phân mảnh. Vì vậy phần lớn các ứng dụng đều tránh không sử dụng kỹ thuật này nếu có thể. Vì sự phân mảnh tạo ra các gói dữ liệu phụ nên cần quá trình sử lý phụ làm giảm tính năng của mạng. Hơn nữa vì IP là một giao thức không tin cậy nên khi bất kỳ một gói dữ liệu bị phân mảnh nào bị mất thì tất cả các mảnh sẽ phải truyền lại. Chính vì lý do này nên phải gửi các gói dữ liệu lớn nhất mà không bị phân mảnh, giá trị này là Path MTU.
2.2.3.3. Phương pháp đánh địa chỉ trong TCP/IP
Để có thể thực hiện truyền tin giữa các máy trên mạng, mỗi máy tính trên mạng TCP/IP cần phải có một địa chỉ xác định gọi là địa chỉ IP. Hiện nay mỗi địa chỉ IP được tạo bởi một số 32 bits (IPv4)và được tách thành 4 vùng, mỗi vùng có một Byte có thể biểu thị dưới dạng thập phân, nhị phân, thập lục phân hoặc bát phân. Cách viết phổ biến nhất hay dùng là cách viết dùng ký tự thập phân. Một địa chỉ IP khi đó sẽ được biểu diễn bởi 4 số thập phân có giá trị từ 0 đến 255 và được phân cách nhau bởi dấu chấm (.). Mỗi giá trị thập phân biểu diễn 8 bits trong địa chỉ IP. Mục đích của địa chỉ IP là để định danh duy nhất cho một host ở trên mạng .
IPv4 sử dụng 3 loại địa chỉ trong trường nguồn và đích đó là:
2.2.3.3.1. Unicast: Để thể hiện một địa chỉ đơn hướng. Địa chỉ đơn hướng là địa chỉ dùng để nhận dạng từng nút một (điểm nút là tập các thiết bị chuyển mạch nằm ở trung tâm như Router chẳng hạn ) cụ thể là một gói dữ liệu được gửi tới một địa chỉ đơn hướng sẽ được chuyển tới nút mang địa chỉ đơn hướng đó.
2.2.3.3.2. Multicast: Địa chỉ đa hướng. Là địa chỉ dùng để nhận dạng một tập hợp nút nhưng không phải là tất cả. Tập hợp nút bao gồm nhiều nút khác nhau hợp thành, gói dữ liệu IP gửi tới một địa chỉ Multicast sẽ được gửi tới tất cả các Host tham dự trong nhóm Multicast này.
Các địa chỉ IP được chia ra làm hai phần, một phần để xác định mạng (net id) và một phần để xác định host (host id). Các lớp mạng xác định số bits được dành cho mỗi phần mạng và phần host. Có năm lớp mạng là A, B, C, D, E, trong đó ba lớp đầu là được dùng cho mục đích thông thường, còn hai lớp D và E được dành cho những mục đích đặc biệt và tương lai. Trong đó ba lớp chính là A,B,C.
0 31
class ID Nework ID Host ID
Hình vẽ sau cho thấy cấu trúc của một địa chỉ IP.
Mỗi lớp địa chỉ được đặc trưng bởi một số bits đầu tiên của Byte đầu tiên có cấu trúc chi tiết .
Từ cấu trúc phân lớp địa chỉ ta có thể nhận thấy:
Nhỏ hơn 128 là địa chỉ lớp A. Byte đầu tiên xác định địa chỉ mạng, ba Bytes còn lại xác định địa chỉ máy trạm.
Từ 128 đến 191 là địa chỉ lớp B. Hai Bytes đầu xác định địa chỉ mạng. Hai Bytes tiếp theo xác định địa chỉ máy trạm.
Từ 192 đến 223 là địa chỉ lớp C. Ba Bytes đầu xác định địa chỉ mạng. Bytes còn lại xác định địa chỉ máy trạm.
Lớn hơn 223 là các địa chỉ dùng để quảng bá hoặc dùng dự trữ cho các mục đích đặc biệt và ta có thể không cần quan tâm.
Nhìn vào trên hình ta có bảng phân lớp địa chỉ IP như bảng 1.1.
Network class Số mạng Số Hosts trong mạng
A 126 16.777.214
B 16.382 65.534
C 2.097.150 254
Bảng 2.4: Bảng phân lớp địa chỉ
Tuy nhiên không phải tất cả các số hiệu mạng (net id) đều có thể dùng được. Một số địa chỉ được để dành cho những mục đích đặc biệt.
Lớp A có số mạng ít nhất, nhưng mỗi mạng lại có nhiều hosts thích hợp với các tổ chức lớn có nhiều máy tính.
Lớp B có số mạng và số hosts vừa phải.
Còn lớp C có nhiều mạng nhưng mỗi mạng chỉ có thể có 254 hosts, thích hợp với tổ chức có ít máy tính.
Để tiện cho việc quản trị cũng như thực hiện các phương pháp tìm đường trên mạng. Ở các mạng lớn (lớp A) hay mạng vừa (lớp B) người ta có thể chia chúng thành các mạng con (Subnets). Ví dụ cho rằng một mạng con có địa chỉ lớp B là 191.12.0.50 khi đó coi 191.12.0.0 là địa chỉ toàn mạng và lập địa chỉ 191.12.1. cho Subnet 1 và 191.12.2 cho Subnet 2.
Có thể dành trọn một nhóm 8 bits để đánh địa chỉ Subnet và một nhóm để đánh địa chỉ các máy trong từng Subnet. Như thế tất nhiên là số máy trong một Subnet sẽ ít đi tương tự như trong mạng nhỏ. Sự phân chia này làm giảm kích thước của bảng định tuyến trong Router/ Gateway, nghĩa là tiết kiệm dung lượng nhớ và thời gian xử lý.
Sự phân chia một mạng thành nhiều mạng con phát sinh vấn đề là số lượng bit dành để đánh địa chỉ mạng con có thể khác nhau và tuỳ thuộc vào nhà quản trị mạng.
Do đó người ta đưa vào khái niệm Subnet Mask. Subnet Mask cũng giống như địa chỉ IP bao gồm 32 bits. Mục đích của điạ chỉ Subnet Mask là để chia nhỏ một địa chỉ IP thành các mạng nhỏ hơn và theo dõi vùng nào trên địa chỉ IP được dùng để làm địa chỉ cho mạng con (còn được gọi là các Subnet) đó vùng nào dùng làm địa chỉ cho các máy trạm.
Nội dung của một Subnet Mask được quy định như sau : Các bit 1 : dùng để chỉ định địa chỉ mạng trên địa chỉ IP.
Các bit 0 : dùng để chỉ định địa chỉ máy trạm trên địa chỉ IP.
Ví dụ đối với mạng A có địa chỉ là 25.0.0.0, nếu dành 8 bits cho Subnet thì mặt nạ có giá trị là 255.255.0.0 , nếu dành 16 bits cho Subnet thì mặt nạ có giá trị là 255.255.255.0.
Từ địa chỉ IP ta thực hiện phép toán logic AND với địa chỉ Subnet Mask kết quả sẽ tạo ra được địa chỉ mạng nơi đến. Kết quả này được sử dụng để tìm bước tiếp theo trong thuật toán tìm đường trên mạng. Nếu kết quả này trùng với địa chỉ mạng tại trạm đang làm việc thì sẽ xét tiếp địa chỉ máy trạm để truyền đi. Theo cấu trúc của Subnet Mask thì ta thấy tất cả các trạm làm việc trong cùng một mạng con có cùng giá trị Subnet Mask.
Với phương pháp này số bits dùng để đánh địa chỉ host có thể nhỏ hơn 8 bits (đối với lớp C) tức là một địa chỉ lớp C có thể phân nhỏ hơn nữa và khi đó các mạng con này thường được xác định bởi các địa chỉ có thêm phần chú thích số bits dành cho địa chỉ mạng, ví dụ 203.160.0.0/25 mô tả Subnet 203.160.0.0 (thuộc lớp C) nhưng có 25 bits dùng cho địa chỉ mạng và 7 bits dùng cho địa chỉ Hosts tức là Subnet này chỉ có tối đa là 128 Hosts chứ không phải là 256 Hosts.
Trong tất cả các lớp địa chỉ mạng cũng như các Subnets, các điạ chỉ đầu và cuối của mạng được dùng cho các mục đích riêng. Một địa chỉ IP cùng với tất cả các bits địa chỉ máy trạm có giá trị có là 0 (địa chỉ đầu mạng) được dùng để chỉ chính mạng đó (hay địa chỉ xác định mạng). Ví dụ địa chỉ 203.160.1.0 được dùng để chỉ mạng 203.160.1.0. Còn nếu tất cả các bits địa chỉ trong phần địa chỉ của trạm đều có giá trị là 1 (địa chỉ cuối mạng) thì địa chỉ này được dùng làm địa chỉ quảng bá. Ví dụ địa chỉ quảng bá của mạng 203.160.1.0 là 203.160.1.255. Một gói dữ liệu gửi đến địa chỉ này sẽ được truyền đến tất cả các máy trạm trên địa chỉ này.
Trên mạng Internet, việc quản lý và phân phối địa chỉ IP là do NIC (Network Information Center). Với sự bùng nổ của số máy tính kết nối vào mạng Internet, địa chỉ IP đã trở thành một tài nguyên cạn kiệt, người ta đã phải xây dựng nhiều công nghệ để khắc phục tình hình này. Ví dụ như công nghệ cấp phát địa chỉ IP động như BOOTP hay DHCP (Dynamic Host Configuration Protocol). Khi sử dụng công nghệ này thì không nhất thiết mọi máy trên mạng đều phải có một địa chỉ IP định trước mà
nó sẽ được Server cấp cho một địa chỉ IP khi thực hiện kết nối. Tuy nhiên giải pháp này chỉ là tạm thời trong tương lai thì địa chỉ IPv6 sẽ đượcđưa vào sử dụng.
2.2.3.4.Địa chỉ IPv6
Cấu trúc Header của gói IPv6 được trình bày trong hình 1.5.
Version Number
Priori ty
Flow Lable
Pay load Length Next Header Hop
limit Source IP Address ( 128 Bits)
Destination IP Address (128 Bits)
Bảng 2.5: Cấu trúc Header gói IPv6
Cấu trúc của gói IPv6 không hoàn toàn tương thích một cách trực tiếp với cấu trúc của gói IPv4, nó có cấu trúc để cho việc truyền dẫn càng nhanh càng tốt, và nó vẫn cùng hoạt động với IPv4.
IPv6 có một số đặc điểm chính sau đây:
128 bits địa chỉ thay cho 32 bits địa chỉ.
Thiết lập và cấu hình đơn giản: IPv6 có thể tự động đặt cấu hình các địa chỉ cục bộ.
Định dạng Header đơn giản một vài trường đã được bỏ đi hoặc trở thành không bắt buộc. Sự định dạng Header mới này cải thiện tính năng của bộ định tuyến và dễ dàng thêm các loại Header mới.
Cải tiến sự trợ giúp đối với các tuỳ chọn và các mở rộng.
Sự trợ giúp đối với việc xác nhận đúng và sự mã hoá dữ liệu. Sự trợ giúp đối với việc xác nhận đúng, tính chân thật của dữ liệu, tính bí mật của dữ liệu là một phần của kiến trúc IPv6.
Không giống như IPv4 các gói dữ liệu trong IPv6 nói chung không bị phân mảnh. Nếu sự phân mảnh được yêu cầu nó sẽ được thực hiện không phải bằng các bộ định tuyến mà bằng nguồn của các gói dữ liệu. Đối với một gói dữ liệu bị phân mảnh, Host nguồn sẽ sinh ra một giá trị tự nhận diện duy nhất.
IPv6 có 128 bits địa chỉ dài hơn bốn lần so với IPv4 nên khả năng theo lý thuyết có thể cung cấp một không gian địa chỉ lớn hơn nhiều. Đây là không gian địa chỉ cực lớn với mục đích không chỉ cho Internet mà còn cho tất cả các mạng máy tính, các hệ thống viễn thông, hệ thống điều khiển và thậm chí còn cả các vật dụng trong gia đình.
Địa chỉ IPv6 được phân ra là 3 loại chính như sau :
2.2.3.4.1. Unicast Address: Địa chỉ đơn hướng là địa chỉ dùng để nhận dạng từng nút một (điểm nút là tập các thiết bị chuyển mạch nằm ở trung tâm như Router chẳng hạn) cụ thể là một gói dữ liệu được gửi tới một địa chỉ đơn hướng sẽ được chuyển tới nút mang địa chỉ đơn hướng đó.
2.2.3.4.2. Anycast Address: Địa chỉ bất kỳ hướng nào. Là địa chỉ dùng để nhận dạng một tập hợp nút bao gồm nhiều nút khác nhau hợp thành, cụ thể là một gói số liệu được gửi tới một địa chỉ bất cứ hướng nào sẽ được chuyển tới một nút gần nhất trong tập hợp nút mạng địa chỉ Anycast đó.
2.2.3.4.3. Multicast Address : Địa chỉ đa hướng. Là địa chỉ dùng để nhận dạng một tập hợp nút. Tập hợp nút bao gồm nhiều nút khác nhau hợp thành, cụ thể là một gói số liệu được gửi tới một địa chỉ đa hướng sẽ được chuyển tới tất cả các nút trong địa chỉ Multicast đó.
2.2.3.5. Giao thức ARP
Khi hai máy trên mạng Internet muốn kết nối với nhau thì chúng phải biết điạ chỉ của nhau, địa chỉ được sử dụng là địa chỉ Internet. Tuy nhiên nếu hai máy cùng trong một mạng vật lý thì chúng không thể sử dụng địa chỉ IP để liên lạc với nhau, chúng chỉ có thể kết nối với nhau khi chúng biết được địa chỉ vật lý của nhau. Vấn đề đặt ra là làm sao một trạm hay một Router có thể ánh xạ địa chỉ IP (32 bits hoặc 128 bits ) sang địa chỉ vật lý (48 bits) khi chúng cần gửi một gói dữ liệu qua mạng vật lý.
Trước kia trong các hệ thống sử dụng giao thức TCP/IP thì phải có một bảng chỉ ra sự liên quan giữa địa chỉ IP và địa chỉ vật lý (địa chỉ MAC) tuy nhiên ngày vấn đề này được giải quyết thông qua giao thức xác định địa chỉ ARP (Address Resolution Protocol). Giao thức ARP cho phép một trạm có thể biết được địa chỉ vật lý của một trạm khác trên cùng một mạng vật lý khi nó biết địa chỉ IP của trạm kia.
192.1.1.1 192.1.1.2
No respons
No response Response 192.1.1.5 192.1.1.4
ARP request ARP response
Bảng 2.6: Giao thức ARP
Khi một máy trạm có địa chỉ 129.1.1.1 muốn biết địa chỉ vật lý của máy trạm có địa chỉ 129.1.1.4 thì nó gửi đi một gói tin đặc biệt có chứa địa chỉ IP 129.1.1.4 đến tất cả các trạm khác (Sử dung chế độ Broadcast) để yêu cầu trả lời cho biết địa chỉ vật lý của máy này. Tất cả các trạm trên mạng đều nhận được thông báo này nhưng chỉ có trạm có địa chỉ IP là 129.1.1.4 nhận ra địa chỉ IP của nó nên nó gửi cho máy 129.1.1.1 một phúc đáp trả lời địa chỉ vật lý của nó.
Tuy nhiên nếu bất cứ lúc nào muốn kết nối, mỗi máy trạm đều phải thực hiện quảng bá yêu cầu ARP như vậy sẽ làm tăng khả năng tắc nghẽn trên mạng vì tất cả các máy trong mạng đều nhận được yêu cầu này và phải xử nó. Để tránh tình trạng này trên mỗi máy trạm đều có thiết kế một vùng nhớ gọi là ARP table hoặc ARP cache.
Bảng này sẽ lưu giữ địa chỉ IP tương ứng với địa chỉ vật lý của các máy trạm gần nhất mà nó nhận được và được cập nhật tự động khi nhận được trả lời ARP. Trước khi gửi đi một yêu cầu ARP thì một máy trạm sẽ tìm trong ARP table xem có địa chỉ vật lý nào tương ứng với điạ chỉ IP mà nó muốn kết nối hay không, nếu có thì nó sẽ gửi dữ liệu mà không phải phát yêu cầu ARP. Bên cạnh đó để giảm việc phát đi các yêu cầu ARP thì khi một máy trạm nào trả lời một yêu cầu ARP nó sẽ tự động cập nhật địa chỉ IP và địa chỉ vật lý của nơi yêu cầu vào ARP table. Các ARP table này tuỳ theo cấu trúc khác nhau mà có phương pháp cập nhật hoặc loại bỏ địa chỉ khác nhau. Hình 1.7 chỉ ra các để thực hiện một yêu cầu ARP.
1 3
5
bảng 2.7: Các bước thực hiện ARP
2.2.3.5.1. Trước khi thực hiện kết nối thì máy trạm phải biết địa chỉ MAC tương ứng với địa chỉ IP.
2.2.3.5.2. Nó sẽ tìm trong ARP table xem có địa chỉ nào phù hơp không.
2.2.3.5.3. ARP table sẽ trả lời địa chỉ MAC (nếu có).
2.2.3.5.4. Nếu địa chỉ MAC không có trong ARP table thì máy đó sẽ phát ra yêu cầu ARP lên trên mạng, nếu địa chỉ MAC có trong ARP table thì kết nối được thực hiện.
2.2.3.5.5. Cùng với việc nhận được trả lời ARP thì ARP table được cập nhật.
Khuôn dạng của một gói tin ARP cũng như RARP dùng cho mạng Ethernet được mô tả như hình 1.8.
Bit 0 Bit 16
Type of Hardware(16bits) Type of Protocol(16bits)
Length of Hardware Address Length of Protocol Address Operation(16bits)
Hardware address of the source station IP address of the source station
Hardware address of the destination station IP address of the destination station
Bảng 2.8: Khuôn dạng gói tin ARP/RARP Ý nghĩa của các trường trong khuôn dạng như sau:
Data link
ARP table (ARP IP
ARP request
2, 4
Type of Hardware (16bits): Mô tả kiểu giao diện phần cứng, thường được dùng để chỉ các mạng LAN hoạt động theo các chuẩn IEEE 802. Trường này mang giá trị 1 đối với các mạng Ethernet.
Type of Protocol (16bits): Mô tả kiểu địa chỉ giao thức cao cấp (IP, IPX Apple Talk), trường này mang giá trị 0800 ở hệ 16 đối với địa chỉ IP.
Length of Hardware Address: Chỉ thị độ dài địa chỉ phần cứng.
Length of Protocol Address: Chỉ thị độ dài địa chỉ của giao thức cao cấp.
Operation (16bits): Cho biết gói tin ARP/RARP là gói mang thông tin hỏi hay phúc đáp:
Operation = 1: ARP Request.
= 2: ARP Response.
= 3: RARP Request.
= 4: RARP Response.
Hardware address of the source station: Địa chỉ vật lý của trạm gửi.
IP address of the source station: Địa chỉ IP của nơi gửi.
Hardware address of the destination station: Địa chỉ vật lý của đích, trường này thường được thiết lập là 0 trong các ARP Reqest, và được điền vào bằng các thủ tục phúc đáp của trạm đích.
IP address of the destination station: Địa chỉ IP của nhận, nó được thiết lập bởi trạm nguồn.
Khi các gói tin ARP được truyền trên mạng tuỳ theo cấu trúc của các mạng khác nhau mà có các khung dữ liệu gửi đi tương ứng. Các khung dữ liệu này được phân biệt với các khung tin loại khác bằng một trường kiểu trong phần tiêu đề của khung. Với mạng Ethernet, khung tin ARP có trường kiểu mang giá trị 0806 ở hệ 16.
2.2.3.6. Giao thức RARP (Reverse ARP)
Các máy tính thường lưu trữ địa chỉ IP của nó trên bộ nhớ thứ cấp, nơi mà hệ
điều hành có thể tìm thấy khi khởi động. Nhưng với những máy tính không thường xuyên làm việc với bộ nhớ thứ cấp (chẳng hạn chúng lưu giữ tập tin trên một máy Server ở xa) thì chúng không biết địa chỉ IP của mình. Vì vậy một máy tính không có ổ đĩa cứng khi khởi động phải liên lạc với Server để biết được địa chỉ IP của nó trước khi kết nối vào hệ thống sử dụng TCP/IP.
Máy tính có thể nhận biết được địa chỉ vật lý của nó từ phần cứng giao tiếp mạng được cài đặt trên nó. Từ địa chỉ vật lý này, các máy tính không có bộ nhớ thứ cấp có thể tìm ra địa chỉ IP của nó thông qua giao thức RARP.
Khuôn dạng của thông báo RARP về cơ bản giống khuông dạng của thông báo ARP, chỉ khác về cách thức khai báo một số trường trong đó.
Cũng như thông báo ARP, một thông báo RARP cũng được đóng trong một khung thông tin mạng và được gửi từ máy này đến máy khác. Phần tiêu đề của khung tin có chứa một trường kiểu mang giá trị 8035 ở hệ 16 cho phép phân biệt khung tin chứa thông báo RARP với các khung tin dạng khác. Hình 1.9 minh hoạ cách thức mà một máy sử dụng RARP để xác định địa chỉ IP của nó.
Để biết địa chỉ IP của mình, đầu tiên máy A quảng bá một yêu cầu RARP đến tất cả các máy khác. A cung cấp địa chỉ vật lý của nó trong gói tin RARP. Tất cả các máy trên mạng đều nhận được yêu cầu này nhưng chỉ có máy nào cung cấp dịch vụ RARP mới tiến hành xử lý và trả lời yêu cầu này. Những máy đó được gọi là các RARP Server. Trong một mạng con nói chung cần phải có một máy tính như vậy.
H3
Main Network
Router
H1 H2
Hidden Network H4
A 192.1.1.2
192.1.1.5 192.1.1.4 RARP request
RARP response
Response
Bảng 2.9: Giao thức RARP 2.2.3.7. ARP uỷ quyền
ARP uỷ quyền là phương pháp mà trong đó một máy thường là một Router trả lời các yêu cầu ARP cho các máy khác bằng cách cung cấp địa chỉ vật lý của chính nó.
Bằng cách tạo ra một máy khác, Router chấp nhận trách nhiệm chuyển các gói. Mục đích của ARP uỷ quyền là cho phép một khu vực sử dụng một địa chỉ mạng với nhiều địa chỉ vật lý.
Như hình 1.10 ARP uỷ quyền cho phép một địa chỉ mạng được chia sẻ giữa hai mạng vật lý. Router R trả lời cho các yêu cầu ARP ở mỗi mạng cho các Hosts ở các mạng khác bằng cách đưa ra địa chỉ vật lý của nó và sau đó nó sẽ chuyển tiếp các gói khi nó nhận được. Router R biết máy nào nằm ở mạng vật lý nào và dùng ARP uỷ quyền để tạo ra ảo giác rằng chỉ có một mạng tồn tại. Để làm được việc đó R lưu giữ vị trí của các Hosts và cho phép tất cả các Hosts trong mạng liên lạc với nhau như là kết nối trực tiếp.
H5
Bảng 2.10: ARP uỷ quyền nối hai mạng vật lý có cùng địa chỉ mạng
Như trong hình, H1 muốn gửi một gói đến H4 nó sẽ dùng yêu cầu ARP để hỏi
địa chỉ vật lý của H4. Do R có phần mềm ARP uỷ quyền nó thu được yêu cầu ARP và sẽ quyết định gửi đi trả lời ARP bằng địa chỉ vật lý của nó. H1 sẽ gửi gói đến R, khi R nhận được Datagram nó sẽ gửi Datagram đến H4.
2.2.3.8.Định tuyến cho IP Datagram
Việc định tuyến cho IP Datagram trong liên mạng rất phức tạp. Thuật toán định tuyến IP sẽ tính toán và lựa chọn đường đi nào thích hợp nhất để gửi một Datagram qua các mạng vật lý đến trạm đích là nơi nhận Datagram. Các phần mềm định tuyến sẽ tiến hành phân tích các vấn đề như: xem xét kiểu mạng, chiều dài của Datagram hay các kiểu dịch vụ được mô tả trong Datagram Header để tìm đường đi tốt nhất.
Trong vấn đề định tuyến người ta phân ra làm hai loại, đó là định tuyến trực tiếp và định tuyến gián tiếp. Việc truyền tin giữa hai máy được gọi là trực tiếp nếu hai máy này cùng được nối vào một mạng vật lý. Chuyển gián tiếp được thực hiện khi khi hai máy không cùng kết nối vào một mạng vật lý. Vì vậy việc truyền các gói tin được thông qua các Router.
Để kiểm tra xem máy gửi và nhận Datagram có cùng trong một mạng vật lý hay không thì bên gửi tách lấy phần địa chỉ mạng của máy đích trong Datagram. Việc xác định địa chỉ mạng được thực hiện đơn giản bằng cách xem xét 4 bis đầu tiên của địa chỉ IP và như vậy nó sẽ xác định được bao nhiêu bits được dùng để đánh địa chỉ mạng.
Địa chỉ này được dùng để so sánh với địa chỉ mạng của máy gửi nếu bên nhận và bên gửi cùng kết nối vào một mạng vật lý thì quá trình chuyển gói sẽ là trực tiếp không cần sử dụng Router. Khi đó máy gửi sẽ tìm địa chỉ vật lý của máy nhận bằng cách tìm trong ARP table hoặc dùng ARP request. Nếu hai máy không cùng trong một mạng vật lý thì khi đó gói dữ liệu sẽ được chuyển đến Router. Sự chuyển này cũng dùng địa chỉ vật lý. Router này sẽ phân phát các gói đến đích cuối cùng hoặc gửi nó đến Router tiếp theo. Tuy nhiên cần chú ý rằng địa chỉ vật lý của Router không phải là địa chỉ của đích cuối cùng do đó việc chuyển các gói không phải là trực tiếp.
Khi chuyển một Datagram đến đích cuối cùng có thể sử dụng cả hai phương pháp chọn đường trực tiếp hoặc gián tiếp. Ví dụ như khi chuyển các Datagram qua mạng.
Trạm khởi đầu sẽ chuyển nó đến Router để từ đó chuyển đến đích cuối cùng. Nó là chọn đường gián tiếp. Nhưng khi các gói này đến Router cuối cùng thì nó phải chuyển trực tiếp đến đích.
Nếu một Router nhận được một Datagram mà nó chưa phải là đích cuối cùng nó
sẽ giảm trường TTL đi, nếu TTL>0 nó sẽ gửi Datagram đi dựa vào địa chỉ IP của đích cuối cùng và thông tin trong bảng chọn tuyến. Router phân phát các gói theo nguyên lý không kết nối tức là không một Router nào thiết lập phiên truyền với một Router khác trên mạng.
Bảng định tuyến (Routing table)
Bảng định tuyến là nơi lưu giữ thông tin về các đích có thể đến được và cách thức để đến địa chỉ đó. Khi phần mền IP Routing tại một trạm hay một Router nhận được yêu cầu truyền một gói dữ liệu thì trước hết nó phải tham khảo bảng định tuyến của nó để quyết định xem sẽ phải gửi Datagram đến đâu. Tuy nhiên không phải bảng thông tin chọn đường của mỗi trạm (hay Router) là chứa tất cả các thông tin về các tuyến đường có thể đến được.
Trong mỗi bảng thông tin chọn đường bao gồm các cặp (N,G) trong đó N là địa chỉ IP của mạng đích, còn G là địa chỉ của Router tiếp theo trên đường đến mạng N.
Như vậy, mỗi Router sẽ không biết được đường truyền đầy đủ để đi đến đích.
Trong bảng định tuyến còn có thông tin về các cổng có thể với đến nhưng không cùng nằm trên một mạng vật lý, phần thông tin này được che khuất đi và được gọi là Default Router. Khi không tìm thấy thông tin của địa chỉ đích cần đến thì các gói dữ liệu sẽ được gửi đến cổng truyền ngầm định.
Việc thiết lập bảng định tuyến sử dụng hai phương pháp là phương pháp chọn tuyến động và phương pháp chọn tuyến tĩnh. Phương pháp chọn tuyến tĩnh có các đường truyền được tính toán trước và được nạp vào mạng khi mạng khởi động.
Phương pháp này không quan tâm đến các thông số đường truyền tức thời và cấu hình (Topology) của mạng nên còn được gọi là thuật toán chọn tuyến phi thích nghi.
Phương pháp chọn tuyến động hay còn gọi là phương pháp chọn tuyến thích nghi cho phép thay đổi đường truyền gói dựa vào các thay đổi của thông số truyền tải và cấu hình của mạng. Phương pháp chọn tuyến động hay được sử dụng hơn phương pháp chọn tuyến tĩnh do có nhiều ưu điểm hơn.
Quá trình gửi một Datagram từ trạm nguồn đến trạm đích gồm các bước sau: khi một trạm muốn gửi Datagram đến một trạm khác trên liên mạng, đầu tiên nó sẽ đóng gói Datagram và gửi đến một Router gần nhất. Datagram cần gửi có thể sẽ phải qua nhiều Routers trước khi đến đích. Khi khung tin đến Router đầu tiên, phần mềm IP sẽ lấy Datagram đã được đóng gói ra, lựa chon Router tiếp theo cần phải qua. Sau đó
Datagram lại được đặt vào khung rồi được gửi qua mạng vật lý đến Router thứ hai.
Quá trình này cứ thế tiếp tục cho đến khi Datagram đến được đích cuối cùng.
2.2.3.9. Quá trình gửi, nhận Datagrams
Đối với IP ở trạm nguồn, khi nhận được một Primitive Send (Hàm dịch vụ nguyên thuỷ yêu cầu gửi dữ liệu) của tầng trên, nó sẽ thực hiện các bước sau:
Tạo một IP Datagram dựa trên các tham số của Primitive Send.
Tính Checksum và ghép vào phần Header của Datagram.
Ra quyết định chọn đường.
Chuyển Datagram xuống tầng dưới để truyền qua mạng.
Khi một Gateway nhận được một Datagram, nó sẽ thực hiện các bước sau:
Tính Checksum, nếu không hợp lý thì loại bỏ Datagram.
Giảm thời gian sống TTL (Time to Live) của Datagram. Nếu thời gian sống đã hết thì Datagram đó bị loại bỏ.
Ra quyết định chọn đường.
Nếu thấy cần thiết thì thực hiện phân đoạn cho Datagram.
Sửa đổi lại IP Header, bao gồm Time to Live (TTL), Fragmentation và Checksum.
Chuyển Datagram xuống tầng dưới để truyền qua mạng.
Khi nhận được Datagram, IP ở trạm đích sẽ thực hiện các bước sau:
Tính Checksum, nếu không hợp lý thì loại bỏ Datagram . - Tập hợp lại các đoạn nếu Datagram đã bị phân mảnh.
- Chuyển dữ liệu và các tham số lên tầng trên.
2.2.4. Giao thức TCP
TCP là một giao thức kiểu có liên kết (Connection – Oriented), tức là phải có
giai đoạn thiết lập liên kết giữa một cặp thực thể TCP trước khi truyền dữ liệu.
Cũng giống như các giao thức ở tầng giao vận TCP nhận thông tin từ các lớp trên chia nó thành nhiều đoạn nếu cần thiết. Mỗi gói dữ liệu được chuyển tới giao thức lớp mạng (thường là IP) để truyền và định tuyến. Bộ xử TCP của nó nhận thông báo đã nhận từng gói, nếu nó nhận thành công, các gói dữ liệu không có thông báo sẽ được truyền lại. TCP của nơi nhận lắp ráp lại thông tin và chuyển nó tới tầng cao hơn khi nó nhận được toàn bộ.
Trước khi các gói dữ liệu được gửi tới máy đích nơi gửi và nơi nhận phải thương lượng để thiết lập một kết nối logic tạm thời. Kết nối này về đặc trưng sẽ ở trạng thái mở trong suốt phiên truyền.
Đặc điểm giao thức TCP
Trong bộ giao thức TCP/IP TCP là giao thức được phát triển như là cách để kết nối các mạng máy tính khác nhau về các phương pháp truyền dẫn và hệ điều hành.
TCP thiết lập kết nối hai đường giữa hai hệ thống cần trao đổi thông tin với nhau thông tin trao đổi giữa hai hệ thống được chia thành các gói. TCP có những đặc điểm sau:
2.2.4.2. Hai hệ thống cần kết nối với nhau cần phải thực hiện một loạt các sự bắt tay để trao đổi những thông tin về việc chúng muốn kết nối. Quá trình bắt tay đảm bảo ngăn trặn sự tràn và mất mát dữ liệu khi truyền.
2.2.4.3. Trong phiên truyền thông tin, hệ thống nhận dữ liệu cần phải gửi các xác nhận
cho hệ thống phát để xác nhận rằng nó đã nhận được dữ liệu.
2.2.4.4. Các gói tin có thể đến đích không theo thứ tự sắp xếp của dòng dữ liệu liên tục bởi các gói tin đi từ cùng một nguồn tin theo những đường dẫn khác nhau để đi tới cùng một đích. Vì vậy thứ tự đúng của các gói tin phải được đảm bảo sắp xếp lại tại hệ thống nhận.
2.2.4.5. Khi phát hiện gói tin bị lỗi thì nơi gửi chỉ phát lại những gói tin bị lỗi nhằm để tránh loại bỏ toàn bộ dòng dữ liệu.
Subnet Subnet
Sending Receiving
n n
TCP End to End Commmunication
Router Router
Bảng 2.11: trình bày phương thức hoạt động của giao thức TCP.
Hình 1.11: TCP cung cấp kết nối từ đầu cuối đến đầu cuối
Đơn vị dữ liệu sử dụng trong giao thức TCP được gọi là Segment. Khuôn dạng của Segment được mô tả như hình 1.12.
Bit 0 15 16 31
Sourse Port Destination Port
Sequence Number
Acknowledgment Number Data
Offset (4 bits)
Reserve d
(6 bits) U R G
A C K
P S H
R S T
S Y N
F I N
Window (16 bits)
Checksum Urgent poier
Option Padding
TCPdata
Bảng 2.12: Khuôn dạng TCP
Segment Các tham số của khuôn dạng trên có ý nghĩa như sau: Source Port (16 bits): Số hiệu của cổng nguồn.
Application Presentatio Secssion
TCP IP Dadalink
Physical
Application Presentatio Secssion
TCP IP Dadalink
Physical IP
Dadalink Physical
IP Dadalink
Physical
Destination Port (16 bits): Số hiệu cổng của trạm đích. Số hiệu này là địa chỉ thâm nhập dịch vụ lớp giao vận (CCISAP Addess) cho biết dịch vụ mà TCP cung cấp là dịch vụ gì. TCP có số lượng cổng trong khoảng 0216-1 tuy nhiên các cổng nằm trong khoảng từ 01023 là được biết nhiều nhất vì nó được sử dụng cho việc truy cập các dịch vụ tiêu chuẩn, ví dụ 23 là dịch vụ Telnet, 25 là dịch vụ mail . . .
Sequence Number (32 bits): Số hiệu của Byte đầu tiên của Segment trừ khi bit SYN đượ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. Tham số này có vai trò như tham số N(S) trong HDLC.
Acknowledgment Number (32 bits): Số hiệu của Segment tiếp theo mà trạm nguồn dang chờ để nhận. Ngầm ý báo đã nhận tốt các Segment mà trạm trạm đích đã gửi cho trạm nguồn. Tham số này có vai trò như tham số N(R) trong HDLC.
Data offset (4bits): Số lượng từ 32 bit trong TCP header (Tham số này chỉ ra vùng bắt đầu của vùng dữ liệu ).
Reserved (6 bits): Dành để dùng trong tương lai.
Control bits: Các bits điều khiển Từ trái sang phải:
URG: Vùng con trỏ khẩn 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ộ các số liệu tuần tự (sequence number).
FIN: Không còn dữ liệu từ trạm nguồn .
Window (16bits): Cấp phát credit để kiểm soát luồng 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 (16bits): Mã kiểm soát lỗi (theo phương pháp CRC) cho toàn bộ Segment.