Tại sao các giao thức HTTP FTP SMTP POP3 chạy trên nền của giao thức TCP thay vì UDP

Bài 5: Giao thức TCP/IP và InternetTBÀI 5: GIAO THỨC TCP/IP VÀ INTERNETNội dungHướng dẫn họcNghe giảng và đọc tài liệu để nắm bắtcác nội dung chính.Làm bài tập và luyện thi trắc nghiệmtheo yêu cầu của từng bài.Liên hệ và lấy các ví dụ trong thực tế đểminh họa cho nội dung bài học.Các khái niệm về họ giao thức TCP/IP.Mạng Internet.Các ứng dụng trên TCP/IP.Dịch vụ tên miền [DNS].Electronic mail [SMTP, MINE, POP3, IMAP].World Wide Web [WWW].Truyền tập tin [FTP].Tài nguyên trên Internet.Mục tiêuSau khi học bài này, các bạn có thể: Trình bày được khái niệm về họ giao thứcTCP/IP. Trình bày được một số ứng dụng của TCP/IPvà tài nguyên trên Internet.Thời lượng học12 tiết.IT102_Bai 5_v1.0013103214117 Bài 5: Giao thức TCP/IP và InternetTÌNH HUỐNG KHỞI ĐỘNG BÀITình huống dẫn nhậpThực hiện các chức năng ở tầng 3 [Network] và 4 [Transport]trong mơ hình OSI, mỗi hệ thống mạng sẽ có những giaothức riêng: UNIX: tầng 3 dùng giao thức IP, tầng 4 dùng giao thứcTCP/UDP. Netware: tầng 3 dùng giao thức IPX, tầng 4 dùng giaothức SPX. Microsoft định nghĩa NETBEUI để thực hiện chức năngcủa cả tầng 3 và tầng 4.Nếu chỉ dừng lại ở đây thì các máy tính UNIX, Netware,NT…sẽ khơng trao đổi thông tin được với nhau. Với sự lớn mạnh của mạng Internet, các máytính cài đặt hệ điều hành khác nhau đòi hỏi phải giao tiếp được với nhau.Câu hỏi1. Những giao thức nào đã được sử dụng để các máy tính khác nhau vẫn giao tiếp được với nhau?2. Kiến trúc của bộ giao thức đó ra sao?3. Những ứng dụng trên giao thức đó là gì?118IT102_Bai 5_v1.0013103214 Bài 5: Giao thức TCP/IP và Internet5.1.Các khái niệm về họ giao thức TCP/IP5.1.1.Khái niệmCác tầng giao thức TCP/IP được chia làm bốn tầng chức năng được biết đến như làmơ hình DARPA, được đặt tên sau khi chính phủ Mĩ bắt đầu phát triển TCP/IP. Bốntầng của mơ hình DARPA là: ứng dụng [Application], Giao vận [Transport], Internet,và Giao tiếp mạng [Network Interface]. Mỗi tầng trong mơ hình DARPA tương ứngvới một hoặc nhiều tầng trong mơ hình 7 tầng của mơ hình OSI. Hình 5.1 biểu diễnkiến trúc giao thức TCP/IP.Hình 5.1: Kiến trúc giao thức TCP/IP5.1.1.1. Tầng giao tiếp mạng [Network Interface Layer]Tầng giao tiếp mạng [còn được gọi là tầng truy cập mạng] chịu trách nhiệm đặt cácgói tin TCP/IP trên mơi trường mạng và nhận các gói tin TCP/IP từ mơi trường mạng.TCP/IP được thiết kế độc lập với phương pháp truy cập mạng, định dạng khung dữliệu và môi trường mạng. Bằng cách này, TCP/IP có thể được sử dụng để kết nối cácloại mạng khác nhau. Bao gồm các kỹ thuật mạng LAN như Ethernet hoặc TokenRing và các kỹ thuật mạng WAN như X.25 hay Frame Relay. Sự độc lập với bất kỳ kỹthuật mạng nào cho phép TCP/IP có khả năng tương thích với các kỹ thuật mới nhưATM [Asynchronous Transfer Mode].Tầng giao tiếp mạng bao gồm tầng liên kết dữ liệu [Data Link] và tầng vật lý[Physical] của mơ hình OSI. Chú ý rằng tầng Internet khơng có được các ưu điểm củacác dịch vụ sắp xếp gói tin và thơng báo có ở tầng Data Link. Một tầng giao tiếp mạngđược giả thiết và việc truyền thông tin cậy qua các phiên thiết lập, sắp xếp và thôngbáo các gói tin thuộc về trách nhiệm của tầng giao vận.5.1.1.2. Tầng InternetTầng Internet chịu trách nhiệm địa chỉ hố, đóng gói và dẫn đường. Lõi các giao thứccủa tầng Internet là IP, ARP, ICMP và IGMP: Giao thức IP - Internet Protocol là một giao thức có khả năng dẫn đường cho cácđịa chỉ IP, phân chia và tập hợp lại các gói tin.IT102_Bai 5_v1.0013103214119 Bài 5: Giao thức TCP/IP và Internet Giao thức ARP - Address Resolution Protocol [giao thức phân giải địa chỉ] chịutrách nhiệm phân giải địa chỉ tầng Internet chuyển thành địa chỉ tầng giao tiếpmạng, như địa chỉ phần cứng. Giao thức ICMP - Internet Control Message Protocol chịu trách nhiệm đưa ra các chứcnăng chuẩn đốn và thơng báo lỗi hay theo dõi các điều kiện lưu chuyển các gói tin IP. Giao thức IGMP – Internet Group Management Protocol chịu trách nhiệm quản lýcác nhóm IP truyền multicast. Tầng Internet tương tự như tầng Network của mơ hình OSI.5.1.1.3. Tầng giao vậnTầng giao vận còn được gọi là tầng truyền Trạm – tới – Trạm [Host – to – Host TransportLayer] chịu trách nhiệm cung cấp cho tầng ứng dụng các dịch vụ tạo lập phiên và truyềndữ liệu. Các giao thức lõi của tầng giao vận là TCP và UDP [User Datagram Protocol]. TCP cung cấp các dịch vụ truyền thông tin cậy một-một [One-to-One], hướng liên kết[Connection-Oriented]. TCP chịu trách nhiệm thiết lập các kết nối TCP, gửi các góitin có sắp xếp, thơng báo và các gói tin phục hồi dữ liệu bị mất trong quá trình truyền. UDP cung cấp các dịch vụ truyền tin một-một, một-nhiều, không liên kết và khôngtin cậy. UDP được sử dụng khi lượng dữ liệu cần truyền nhỏ [ví dụ dữ liệu khơngđiền hết một gói tin], khi việc thiết lập liên kết TCP là không cần thiết, hoặc khi cácứng dụng hoặc các giao thức tầng trên cung cấp dịch vụ đảm bảo trong khi truyền.Tầng giao vận chịu trách nhiệm tầng giao vận trong mơ hình OSI và một số nhiệm vụcủa tầng phiên [Session] của OSI.5.1.1.4. Tầng ứng dụngTầng ứng dụng cung cấp các ứng dụng với khả năng truy cập các dịch vụ của các tầngkhác và định nghĩa các giao thức mà các ứng dụng sử dụng để trao đổi dữ liệu. Cónhiều giao thức tầng ứng dụng và các giao thức mới luôn luôn được phát triển.Các giao thức được ứng dụng rộng rãi nhất của tầng ứng dụng được sử dụng để traođổi thông tin của người sử dụng là: Giao thức truyền tin siêu văn bản HTTP [HyperText Transfer Protocol] được sửdụng để truyền các tệp tạo nên trang Web của World Wide Web. Giao thức FTP - File Transfer Protocol được sử dụng để thực hiện truyền tệp. Giao thức SMTP - Simple Mail Transfer Protocol được sử dụng để truyền cácthơng điệp thư và các tệp đính kèm. Telnet, một giao thức mô phỏng trạm đầu cuối, được sử dụng để đăng nhập từ xavào các máy trạm trên mạng.Hơn nữa, các giao thức ứng dụng sau sẽ giúp dễ dàng sử dụng và quản lý mạng TCP/IP. Domain Name System [DNS] được sử dụng để chuyển từ tên trạm thành địa chỉ IP. Giao thức RIP - Routing Information Protocol là giao thức dẫn đường mà cácrouter sử dụng để trao đổi các thông tin dẫn đường gói tin IP trong mạng.120IT102_Bai 5_v1.0013103214 Bài 5: Giao thức TCP/IP và Internet Giao thức SNMP - Simple Network Management Protocol được sử dụng giữa giaodiện quản lý mạng và các thiết bị mạng [Router, Bridges và Hub thông minh] đểthu thập và trao đổi thông tin quản lý mạng.Ví dụ của tầng ứng dụng giao tiếp với các ứng dụng TCP/IP là Windows Sockets vàNetBIOS. Windows Sockets cung cấp một chuẩn giao diện lập trình ứng dụng API[Application – Programming Interface] trên nền hệ điều hành Windows. NetBIOS làmột chuẩn công nghiệp giao tiếp để truy cập các dịch vụ như dịch vụ phiên, truyền dữliệu và phân giải tên. Thông tin chi tiết về NetBIOS được cung cấp ở cuối bài này.5.1.2.Giao thức lõi TCP/IPThành phần giao thức TCP/IP được cài trong hệ điều hành mạng của bạn là một chuỗicác giao thức liên hệ với nhau được gọi là các giao thức lõi TCP/IP. Tất cả các ứngdụng khác và các giao thức khác trong bộ giao thức TCP/IP dựa trên các dịch vụ cơ sởcung cấp bởi các giao thức sau: IP, ARP, ICMP, IGMP, TCP và UDP.5.1.2.1. IPTổng quátNhiệ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ànhliê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 trongmơ hình OSI. Giao thức IP là một giao thức kiểu khơng liên kết [Connectionlees] 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.Sơ đồ địa chỉ hóa để định danh các trạm [Host] trong liên mạng được gọi là địa chỉ IP32 bits [32 bit IP Address]. Mỗi giao diện trong một máy có hỗ trợ giao thức IP đềuphải được gán một địa chỉ IP [một máy tính có thể gắn với nhiều mạng do vậy có thểcó nhiều địa chỉ IP]. Địa chỉ IP gồm hai phần: địa chỉ mạng [netid] và địa chỉ máy[hostid]. Mỗi địa chỉ IP có độ dài 32 bits được tách thành 4 vùng [mỗi vùng 1 byte],có thể biểu thị dưới dạng thập phân, bát phân, thập lục phân hay nhị phân. Cách viếtphổ biến nhất là dùng ký pháp thập phân có dấu chấm [Dotted Decimal Notation] đểtách các vùng. Mục đích của địa chỉ IP là để định danh duy nhất cho một máy tính bấtkỳ trên liên mạng.Do tổ chức và độ lớn của các mạng con [Subnet] của liên mạng có thể khác nhau,người ta chia các địa chỉ IP thành 5 lớp, ký hiệu là A, B, C, D và E. Trong lớp A, B, Cchứa địa chỉ có thể gán được. Lớp D dành riêng cho lớp kỹ thuật multicasting. Lớp Eđược dành những ứng dụng trong tương lai.Netid trong địa chỉ mạng dùng để nhận dạng từng mạng riêng biệt. Các mạng liên kếtphải có địa chỉ mạng [netid] riêng cho mỗi mạng. Ở đây các bit đầu tiên của byte đầutiên được dùng để định danh lớp địa chỉ [0 - lớp A, 10 - lớp B, 110 - lớp C, 1110 - lớpD và 11110 - lớp E].Ở đây ta xét cấu trúc của các lớp địa chỉ có thể gán được là lớp A, lớp B, lớp CCấu trúc của các địa chỉ IP như sau: Mạng lớp A: địa chỉ mạng [netid] là 1 Byte và địa chỉ host [hostid] là 3 byte. Mạng lớp B: địa chỉ mạng [netid] là 2 Byte và địa chỉ host [hostid] là 2 byte. Mạng lớp C: địa chỉ mạng [netid] là 3 Byte và địa chỉ host [hostid] là 1 byte.IT102_Bai 5_v1.0013103214121 Bài 5: Giao thức TCP/IP và InternetLớp A cho phép định danh tới 126 mạng, với tối đa 16 triệu host trên mỗi mạng. Lớpnày được dùng cho các mạng có số trạm cực lớn.Lớp B cho phép định danh tới 16384 mạng, với tối đa 65534 host trên mỗi mạng.Lớp C cho phép định danh tới 2 triệu mạng, với tối đa 254 host trên mỗi mạng. Lớpnày được dùng cho các mạng có ít trạm.Hình 5.2: Cấu trúc các lớp địa chỉ IPMột số địa chỉ có tính chất đặc biệt: Một địa chỉ có hostid = 0 được dùng để hướng tớimạng định danh bởi vùng netid. Ngược lại, một địa chỉ có vùng hostid gồm tồn số 1được dùng để hướng tới tất cả các host nối vào mạng netid và nếu vùng netid cũnggồm toàn số 1 thì nó hướng tới tất cả các host trong liên mạng.Hình 5.3: Ví dụ cấu trúc các lớp địa chỉ IPCần lưu ý rằng các địa chỉ IP được dùng để định danh các host và mạng ở tầng mạngcủ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áctrạm trên đó một mạng cục bộ [Ethernet, Token Ring.].Trong nhiều trường hợp, một mạng có thể được chia thành nhiều mạng con [subnet],lúc đó có thể đưa thêm các vùng subnetid để định danh các mạng con. Vùng subnetidđược lấy từ vùng hostid, cụ thể đối với lớp A, B, C như ví dụ sau:Hình 5.4: Ví dụ địa chỉ khi bổ sung vùng subnetid122IT102_Bai 5_v1.0013103214 Bài 5: Giao thức TCP/IP và InternetĐơn vị dữ liệu dùng trong IP được gọi là gói tin [Datagram], có khn dạng.Hình 5.5: Dạng thức của gói tin IPÝ nghĩa của thông số như sau: VER [4 bits]: chỉ phiên bản hiện hành của giao thức IP hiện được cài đặt, việc cóchỉ số phiên bản cho phép có các trao đổi giữa các hệ thống sử dụng phiên bản cũvà hệ thống sử dụng phiên bản mới. IHL [4 bits]: chỉ độ dài phần đầu [Internet header Length] của gói tin, tính theo đơnvị từ [ 32 bits]. Trường này bắt buột phải có vì phần đầu IP có thể có độ dài thay đổitùy ý. Độ dài tối thiểu là 5 từ [20 bytes], độ dài tối đa là 15 từ hay là 60 bytes. Type of service [8 bits]: đặc tả các tham số về dịch vụ nhằm thơng báo cho mạngbiết dịch vụ nào mà gói tin muốn được sử dụng, chẳng hạn ưu tiên, thời hạn chậmtrễ, năng suất truyền và độ tin cậy. Hình sau cho biết ý nghĩ của trường 8 bits này.Hình 5.6: Ý nghĩa các bit trong Type Of Service Precedence [3 bit]: chỉ thị về quyền ưu tiên gửi gói tin, nó có giá trị từ 0 [gói tinbình thường] đến 7 [gói tin kiểm sốt mạng]. D [Delay] [1 bit]: chỉ độ trễ yêu cầu trong đó:o D = 0 gói tin có độ trễ bình thường.o D = 1 gói tin độ trễ thấp. T [Throughput] [1bit]: chỉ độ thơng lượng u cầu sử dụng để truyền gói tin vớilựa chọn truyền trên đường thông suất thấp hay đường thơng suất cao:o T = 0 thơng lượng bình thường.o T = 1 thông lượng cao. R [Reliability] [1 bit]: chỉ độ tin cậy yêu cầu:o R = 0 độ tin cậy bình thường.o R = 1 độ tin cậy cao. Total Length [16 bits]: chỉ độ dài toàn bộ gói tin, kể cả phần đầu tính theo đơn vịbyte với chiều dài tối đa là 65535 bytes. Hiện nay giới hạn trên là rất lớn nhưngtrong tương lai với những mạng Gigabit thì các gói tin có kích thước lớn là cần thiết. Identification [16 bits]: cùng với các tham số khác [như Source Address và DestinationAddress] tham số này dùng để định danh duy nhất cho một gói tin trong khoảng thờigian nó vẫn cịn trên liên mạng.IT102_Bai 5_v1.0013103214123 Bài 5: Giao thức TCP/IP và Internet Flags [3 bits]: liên quan đến sự phân đoạn [Fragment] các gói tin. Các gói tin khiđi trên đường đi có thể bị phân thành nhiều gói tin nhỏ, trong trường hợp bị phânđoạn thì trường Flags được dùng điều khiển phân đoạn và tái lắp ghép bó dữ liệu.Tùy theo giá trị của Flags sẽ có ý nghĩa là gói tin sẽ khơng phân đoạn, có thể phânđoạn hay là gói tin phân đoạn cuối cùng. Trường Fragment Offset cho biết vị trí dữliệu thuộc phân đoạn tương ứng với đoạn bắt đầu của gói dữ liệu gốc. Ý nghĩa cụ thể của trường Flags là:012ODFMFHình 5.7: Ý nghĩa các bit của FlagsoooBit 0: reserved - chưa sử dụng, luôn lấy giá trị 0.Bit 1: [DF] = 0 [May Fragment] = 1 [Don't Fragment]Bit 2: [MF] = 0 [Last Fragment] = 1 [More Fragments] Fragment Offset [13 bits]: chỉ vị trí của đoạn [Fragment] ở trong gói tin tính theođơn vị 8 bytes, có nghĩa là phần dữ liệu mỗi gói tin [trừ gói tin cuối cùng] phảichứa một vùng dữ liệu có độ dài là bội số của 8 bytes. Điều này có ý nghĩa là phảinhân giá trị của Fragment offset với 8 để tính ra độ lệch byte. Time to Live [8 bits]: quy định thời gian tồn tại [tính bằng giây] của gói tin trongmạng để tránh tình trạng một gói tin bị quẩn trên mạng. Thời gian này được chobởi trạm gửi và được giảm đi [thường quy ước là 1 đơn vị] khi gói tin đi qua mỗirouter của liên mạng. Thời lượng này giảm xuống tại mỗi router với mục đích giớihạn thời gian tồn tại của các gói tin và kết thúc những lần lặp lại vô hạn trên mạng.Sau đây là một số điều cần lưu ý về trường Time To Live:o Nút trung gian của mạng khơng được gửi một gói tin mà trường này có giá trịbằng 0.o Một giao thức có thể ấn định Time To Live để thực hiện cuộc ra tìm tài nguyêntrên mạng trong phạm vi mở rộng.o Một giá trị cố định tối thiểu phải đủ lớn cho mạng hoạt động tốt. Protocol [8 bits]: chỉ giao thức tầng trên kế tiếp sẽ nhận vùng dữ liệu ở trạm đích[hiện tại thường là TCP hoặc UDP được cài đặt trên IP]. Ví dụ: TCP có giá trịtrường Protocol là 6, UDP có giá trị trường Protocol là 17. Header Checksum [16 bits]: mã kiểm soát lỗi của header gói tin IP. Source Address [32 bits]: địa chỉ của máy nguồn. Destination Address [32 bits]: địa chỉ của máy đích. Options [độ dài thay đổi]: khai báo các lựa chọn do người gửi yêu cầu [tuỳ theotừng chương trình]. Padding [độ dài thay đổi]: vùng đệm, được dùng để đảm bảo cho phần header luônkết thúc ở một mốc 32 bits. Data [độ dài thay đổi]: trên một mạng cục bộ như vậy, hai trạm chỉ có thể liên lạcvớ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 thựchiện ánh xạ giữa địa chỉ IP [32 bits] và địa chỉ vật lý [48 bits] của một trạm.124IT102_Bai 5_v1.0013103214 Bài 5: Giao thức TCP/IP và InternetCá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. Chúngkhơ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ạngcục bộ [Ethernet, Token Ring]. Trên một mạng cục bộ hai trạm chỉ có thể liên lạcvớ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ứcARP đã đượ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ớigiao 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ệntruyền các thông báo điều khiển [báo cáo các tình trạng các lỗi trên mạng] giữa cácgateway 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ơngthể tới đích 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 ICMP được tạo 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.Các bước hoạt động của giao thức IPKhi 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ầngmạ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ựchiện các bước sau đây: Tạo một gói tin IP dựa trên tham số nhận được. Tính checksum và ghép vào header của gói tin. Ra quyết định chọn đường: hoặc là trạm đích nằm trên cùng mạng hoặc mộtgateway sẽ được chọn cho chặng tiếp theo. 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:o Tính chesksum, nếu sai thì loại bỏ gói tin.o Giảm giá trị tham số Time - to Live, nếu thời gian đã hết thì loại bỏ gói tin.o Ra quyết định chọn đường.o Phân đoạn gói tin, nếu cần.o 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.o Chuyển gói tin xuống tầng dưới để chuyển qua mạng.Cuối cùng khi một gói tin nhận bởi một thực thể IP ở trạm đích, nó sẽ thực hiện bởicác cơng việc sau:o Tính checksum. Nếu sai thì loại bỏ gói tin.o Tập hợp các đoạn của gói tin [nếu có phân đoạn].o Chuyển dữ liệu và các tham số điều khiển lên tầng trên.IT102_Bai 5_v1.0013103214125 Bài 5: Giao thức TCP/IP và Internet5.1.2.2. ARPKhi các gói tin IP được gửi trên môi trường chia sẻ truy cập, các công nghệ mạng dựatrên công nghệ truyền quảng bá như Ethernet hoặc Token Ring, Media Access Control[MAC] địa chỉ tương ứng với địa chỉ các gói tin IP phải được chuyển hoá. ARP sửdụng MAC mức truyền quảng bá để phân giải một địa chỉ IP gửi đi thành một địa chỉMAC. ARP được định nghĩa trong RFC 826.Để có thêm thơng tin về ARP, xem phần “Phân giải địa chỉ vật lý” trong đoạn cuốicủa bài này.5.1.2.3. ICMPGiao thức điều khiển thông điệp Internet ICMP cung cấp tiện ích sửa chữa sự cố vàthơng báo lỗi cho các gói tin khơng truyền đi được. Ví dụ, nếu một gói tin IP khơngtruyền tới trạm đích được, ICMP sẽ gửi thơng điệp thơng báo khơng tiếp cận đíchđược “Destination Unreachable” tới trạm nguồn. Bảng sau biểu diễn các thông điệpICMP thông thường nhất.Bảng các thông điệp ICMP thông thườngThông điệp ICMPChức năngEcho Request [yêu cầu phản hồi].Thông điệp báo sự cố đơn giản được sử dụng đểkiểm tra kết nối IP tới trạm mong muốn.Echo Reply [trả lời phản hồi].Dùng để trả lời cho Echo Request.Redirect [định hướng lại].Được gửi từ một router để khẳng định một trạmgửi tin dẫn đường tốt hơn tới một địa chỉ IP đích.Source Quench [tắt nguồn].Được gửi từ một router để khẳng định trạm gửitin mà dữ liệu IP bị loại vì nghẽn tại router. Trạmgửi tin sẽ hạ thấp tỉ lệ truyền. Source Quench làmột thông điệp ICMP không bắt buộc và thườngkhông được cài đặt.Destination Unreachable [không thể tiếp cận đích].Được gửi bởi một router hoặc trạm đích để thơngbáo cho trạm gửi tin rằng gói tin khơng thểtruyền được.Để gửi một gói tin phản hồi yêu cầu ICMP và hiển thị thống kê trên các thông điệp trảlời trên máy sử dụng Windows NT chúng ta sử dụng tiện ích ping trong dấu nhắc lệnh.ICMP không làm cho giao thức IP trở nên tin cậy. ICMP cố gắng thông báo các lỗi vàđưa ra phản hồi trong các điều kiện cụ thể. Các thông điệp ICMP được truyền đi nhưmột gói tin IP khơng thơng báo và bản thân chúng là khơng chắc chắn có tới đượcđích khơng. ICMP được định nghĩa trong RFC 792.5.1.2.4. IGMPGiao thức quản lý nhóm Internet IGMP [Internet Group Management Protocol] là mộtgiao thức quản lý các trạm thành viên trong nhóm truyền IP multicast. Một nhóm IPmulticast, được biết đến như một nhóm trạm. Gói tin IP multicast được truyền tới mộtđịa chỉ MAC đơn nhưng được xử lý bởi nhiều trạm sử dụng giao thức IP. Một trạm cụthể sẽ nghe một địa chỉ gói tin IP multicast cụ thể và nhận tất cả các gói tin từ địa chỉ đó.126IT102_Bai 5_v1.0013103214 Bài 5: Giao thức TCP/IP và Internet5.1.2.5. TCPTCP là một giao thức "có liên kết" [Connection - Oriented], nghĩa là cần phải thiết lậpliê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ếntrì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ôngqua một cổng [port] của TCP. Số hiệu cổng TCP được thể hiện bởi 2 bytes.Hình 5.8: Cổng truy nhập dịch vụ TCPMộ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ấttrong liên mạng. Dịch vụ TCP được cung cấp nhờ một liên kết lôgic giữa một cặp đầu nốiTCP/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 ở xakhác nhau. Trước khi truyền dữ liệu giữa hai trạm cần phải thiết lập một liên kết TCP giữachú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 [functioncalls], trong đó có các hàm để 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 hai 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 passiveOpen có khai báo cổng TCP và các thơng số khác [mức ưu tiên, mức an tồ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 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 ở đó.Bảng liệt kê một vài cổng TCP phổ biếnSố hiệu cổngIT102_Bai 5_v1.0013103214Mô tảSố hiệu cổngMô tả0Reserved23Telnet5Remote job entry25SMTP7Echo37Time9Discard53Name Server11Systat102ISO - TSAP13Daytime103X.40015Nestat104X.400 Sending17Quotd [Quote Odd Day]111Sun RPC20ftp-data139Net BIOS Session source21ftp [Control]160 - 223Reserved127 Bài 5: Giao thức TCP/IP và InternetKhi 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 đượcdù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 đượcmột khối dữ liệu, TCP sẽ lưu trữ trong bộ đệm [Buffer]. Nếu cờ PUSH được đánhdấu thì toàn bộ dữ liệu trong bộ đệm được gửi, kể cả khối dữ liệu mới đến sẽ đượcgửi đi. Ngược lại cờ PUSH khơng được đánh dấu 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 đisẽ hiệu quả hơn]. Hàm reveive: Ở trạm đích dữ liệu sẽ được TCP lưu trong bộ đệm gắn với mỗi liênkết. Nếu dữ liệu được đánh dấu với một cờ PUSH thì tồ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ịnnếu dữ liệu đến khơng được đánh dấu với cờ PUSH thì TCP chờ tới khi thích hợpmới chuyển dữ liệu với mục tiêu tăng hiệu quả hệ thống.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àoviệ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ầnphả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ầnthiế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.o Hàm Close: u cầu đóng liên kết một cách bình thường. Có nghĩa là việctruyền dữ liệu trên liên kết đó đã hồn tất. Khi nhận được một hàm Close TCPsẽ 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 ý: 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ụcnhậ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.o 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ấpnhậ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 đượctruyề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:o 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ênkết cụ thể, khi đó TCP cung cấp thơng tin cho người sử dụng.o Hàm Error: thông báo cho người sử dụng TCP các yêu cầu dịch vụ bất hợp lệ liênquan đế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.128IT102_Bai 5_v1.0013103214 Bài 5: Giao thức TCP/IP và Internet Đơn vị dữ liệu sử dụng trong TCP được gọi là segment [đoạn dữ liệu], có các thamsố với ý nghĩa như sau:Bit 0151631Source PortDestination PortSequence NumberAcknowledgment NumberData OffsetReservedUGRACKPSHRSTSINFINChecksumUrgent PoiterOptionsPaddingWindowTCP dataHình 5.9: Dạng thức của TCP SegmentSource Por [16 bits]: Số hiệu cổng TCP của trạm nguồn.o Destination Port [16 bit]: Số hiệu cổng TCP của trạm đích.o Sequence Number [32 bit]: số hiệu của byte đầu tiên của segment trừ khi bitSYN đượ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.o Acknowledgment Number [32 bit]: số hiệu của segment tiếp theo mà trạmnguồ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.o Data offset [4 bit]: số lượng bội của 32 bit [32 bit words] trong TCP header[tham số này chỉ ra vị trí bắt đầu của nguồn dữ liệu].o Reserved [6 bit]: dành để dùng trong tương lai. Control bit [các bit điều khiển]:o URG: Vùng con trỏ khẩn [Ucgent Poiter] có hiệu lực.o ACK: Vùng báo nhận [ACK number] có hiệu lực.o PSH: Chức năng PUSH.o RST: Khởi động lại [Reset] liên kết.o SYN: Đồng bộ hóa số hiệu tuần tự [Sequence Number].o FIN: Khơng cịn dữ liệu từ trạm nguồn. Window [16 bit]: 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ùngACK number, mà trạm nguồn đã sẵn sàng để nhận. Checksum [16 bit]: mã kiểm sốt lỗi cho tồn bộ segment [header + data].o Urgemt Poiter [16 bit]: 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 tùy chọn của TCP, trong đó có độ dài tối đacủ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 headerluôn kết thúc ở một mốc 32 bit. 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 địnhlà 536 byte. Giá trị này có thể điều chỉnh bằng cách khai báo trong vùng options.IT102_Bai 5_v1.0013103214129 Bài 5: Giao thức TCP/IP và Internet5.1.2.6. Giao thức UDP[User Datagram Protocol]UDP [User Datagram Protocol] là giao thức theo phương thức không liên kết, được sửdụng thay thế cho TCP ở trên IP theo yêu cầu của từng ứng dụng. Khác với TCP,UDP khơng có các chức năng thiết lập và kết thúc liên kết. Tương tự như IP, nó cũngkhông cung cấp cơ chế báo nhận [Acknowledgment], không sắp xếp tuần tự các góitin đến và có thể dẫn đến tình trạng mất hoặc trùng dữ liệu mà khơng có cơ chế thơngbáo lỗi cho người gửi. Qua đó ta thấy UDP cung cấp các dịch vụ vận chuyển khôngtin cậy như trong TCP.Khuôn dạng UDP datagram được mô tả với các vùng tham số đơn giản hơn nhiều sovới TCP segment.Bit 015 1631Source PortDestination PortMessage LengthChecksumDATAHình 5.10: Dạng thức của gói tin UDPUDP cũng cung cấp cơ chế gán và quản lý các số hiệu cổng [Port Number] để địnhdanh duy nhất cho các ứng dụng chạy trên một trạm của mạng. Do ít chức năng phứctạp nên UDP thường có xu thế hoạt động nhanh hơn so với TCP. Nó thường đượcdùng cho các ứng dụng khơng địi hỏi độ tin cậy cao trong tầng giao vận.Hình 5.11: Mơ hình quan hệ họ giao thức TCP/IP130IT102_Bai 5_v1.0013103214 Bài 5: Giao thức TCP/IP và Internet5.2.Mạng InternetCùng với sự phát triển của NFSNET và ARPANET nhất là khi giao thức TCP/IP đãtrở thành giao thức chính thức duy nhất trên các mạng trên thì số lượng các mạng, nútmuốn tham gia kết nối vào hai mạng trên đã tăng lên rất nhanh. Rất nhiều các mạngvùng được kết nối với nhau và còn liên kết với các mạng ở Canada, châu Âu.Vào khoảng giữa những năm 1980 người ta bắt đầu thấy được sự hình thành của mộthệ thống liên mạng lớn mà sau này được gọi là Internet. Sự phát triển của Internetđược tính theo cấp số nhân, nếu như năm 1990 có khoảng 200.000 máy tính với 3.000mạng con thì năm 1992 đã có khoảng 1.000.000 máy tính được kết nối, đến năm 1995đã có hàng trăm mạng cấp vùng, chục ngàn mạng con và nhiều triệu máy tính. Rấtnhiều mạng lớn đang hoạt động cũng đã được kết nối vào Internet như các mạngSPAN, NASA, HEPNET, BITNET, IBM, EARN. Việc liên kết các mạng được thựchiện thơng qua rất nhiều đường nối có tốc độ rất cao.Hiện nay một máy tính được gọi là thành viên của Internet nếu máy tính đó có giaothức truyền dữ liệu TCP/IP, có một địa chỉ IP trên mạng và nó có thể gửi các gói tin IPđến tất cả các máy tính khác trên mạng Internet.Tuy nhiên trong nhiều trường hợp thông qua một nhà cung cấp dịch vụ Internet ngườisử dụng kết nối máy tính của mình với máy chủ của nhà cung cấp dịch vụ và đượccung cấp một địa chỉ tạm thời trước khi khai thác các tài ngun của Internet. Máytính của người đó có thể gửi các gói tin cho các máy khác bằng địa chỉ tạm thời đó vàđịa chỉ đó sẽ trả lại cho nhà cung cấp khi kết thúc liên lạc. Vì máy tính của người đósử dụng trong thời gian liên kết với Internet cũng có một địa chỉ IP nên người ta vẫncoi máy tính đó là thành viên của Internet.Vào năm 1992 cộng đồng Internet đã ra đời nhằm thúc đẩy sự phát triển của Internetvà điều hành nó. Hiện nay Internet có 5 dịch vụ chính: Thư điện tử [Thư điện tử]: đây là dịch vụ đã có từ khi mạng ARPANET mới đượcthiết lập, nó cho phép gửi và nhận thư điện tử cho mọi thành viên khác trong mạng. Thông tin mới [News]: các vấn đề thời sự được chuyển thành các diễn đàn chophép mọi người quan tâm có thể trao đổi các thơng tin cho nhau, hiện nay có hàngnghìn diễn đàn về mọi mặt trên Internet. Đăng nhập từ xa [Remote Login]: bằng các chương trình như Telnet, Rloginngười sử dụng có thể từ một trạm của Internet đăng nhập [Logon] vào một trạmkhác nếu như người đó được đăng ký trên máy tính kia. Chuyển tệp [File transfer]: bằng chương trình FTP người sử dụng có thể chépcác tệp từ một máy tính trên mạng Internet tới một máy tính khác. Người ta có thểchép nhiều phần mềm, cơ sở dữ liệu, bài báo bằng cách trên. Dịch vụ WWW [World Wide Web]: WWW là một dịch vụ đặc biệt cung cấpthông tin từ xa trên mạng Internet. Các tập tin siêu văn bản được lưu trữ trên máychủ sẽ cung cấp các thông tin và dẫn đường trên mạng cho phép người sử dụng dễdàng truy cập các tập tin văn bản, đồ họa, âm thanh.IT102_Bai 5_v1.0013103214131 Bài 5: Giao thức TCP/IP và InternetHình 5.12: Ví dụ một trang Web cho phép dễ dàng khai thác các trang Web khácNgười sử dụng nhận được thông tin dưới dạng các trang văn bản, một trang là mộtđơn thể nằm trong máy chủ. Đây là dịch vụ đang mang lại sức thu hút to lớn cho mạngInternet, chúng ta có thể xây dựng các trang Web bằng ngơn ngữ HTML [HypertextMarkup Language] với nhiều dạng phong phú như văn bản, hình vẽ, video, âm thanhvà có thể có các liên kết với các trang Web khác. Khi các trang đó được đặt trên cácmáy chủ Web thì thơng qua Internet người ta có thể xem được sự thể hiện của cáctrang Web đó và có thể xem các trang Web khác mà nó chỉ đến.Các phần mềm thơng dụng được sử dụng hiện nay để xây dựng và duyệt các trang Web làMosaic, Navigator của Netscape, Internet Explorer của Microsoft, Web Access của Novell.5.3.Các ứng dụng trên TCP/IPPhần này sẽ tìm hiểu một số ứng dụng mạng phổ biến hiện nay, chủ yếu tập trung vàogiao thức hoạt động của chúng.Ví dụ đầu tiên được xem xét là dịch vụ tên miền phân tán, dịch vụ đầu tiên được càiđặt trong một mạng máy tính. Về thực chất dịch vụ tên miền là cái mà các ứng dụngkhác phải phụ thuộc vào. Một máy chủ phục vụ tên miền thường được sử dụng bởi cácứng dụng khác hơn là bởi con người.Sau đó, các ứng dụng mạng truyền thống và phổ biến sẽ được giới thiệu, bao gồm cácdịch vụ MAIL, WEB và FTP.Cũng cần nói trước rằng, những dịch vụ mạng vừa nói sẽ dựa trên hai giao thức vậnchuyển đã được đề cập trong chương 6 là TCP và UDP.5.3.1.Dịch vụ tên miền [DNS]Cho đến bây giờ, chúng ta vẫn dùng địa chỉ để định danh các host. Trong khi rất thuậntiện cho việc xử lý của các router, các địa chỉ số không thân thiện với người dùng lắm.Vì lý do này, các host thường được gán cho một cái tên thân thiện và dịch vụ tên được132IT102_Bai 5_v1.0013103214 Bài 5: Giao thức TCP/IP và Internetsử dụng để ánh xạ từ cái tên thân thiện với người dùng này sang địa chỉ số vốn rấtthân thiện với các router. Dịch vụ như vậy thường là ứng dụng đầu tiên được cài đặttrong một mạng máy tính do nó cho phép các ứng dụng khác tự do định danh các hostbằng tên thay vì bằng địa chỉ. Dịch vụ tên thường được gọi là phần trung gian[middleware] vì nó lấp đầy khoảng cách giữa các ứng dụng khác và lớp mạng phíadưới. Tên host và địa chỉ host khác nhau ở hai điểm quan trọng. Thứ nhất, tên hostthường có độ dài thay đổi và dễ gợi nhớ, vì thế nó giúp người dùng dễ nhớ hơn. Thứhai, tên thường khơng chứa thơng tin gì để giúp mạng định vị [chuyển các gói tin đến]host. Ngược lại địa chỉ hàm chứa thơng tin vạch đường trong đó.Trước khi đi vào chi tiết cách thức đặt tên cho các host trong mạng như thế nào, chúngta đi định nghĩa một số thuật ngữ trước: Không gian tên [Name Space] định nghĩa tập các tên có thể có. Một khơng gian tên cóthể là phẳng [Flat] – một tên khơng thể được chia thành các thành phần nhỏ hơn, hoặcphân cấp. Hệ thống tên duy trì một tập các ánh xạ [Collection of Bindings] từ tên sang giá trị.Giá trị có thể là bất cứ thứ gì chúng ta muốn hệ thống tên trả về khi ta cấp cho nómột tên để ánh xạ, trong nhiều trường hợp giá trị chính là địa chỉ host. Một cơ chế phân giải [Resolution Mechanism] là một thủ tục mà khi được gọi vớitham số là một tên, sẽ trả về một giá trị tương ứng. Một máy chủ tên [Name Server] là một kết quả cài đặt của cơ chế phân giải luônsẵn dùng trên mạng và có thể được truy vấn bằng cách gửi đến nó một thơng điệp. Mạng Internet đã có sẵn một hệ thống đặt tên được phát triển tốt, gọi là hệ thốngtên miền [Domain Name System – DNS]. Vì thế chúng ta sẽ dùng DNS làm cơ sởđể thảo luận về vấn đề đặt tên cho các host. Khi nguời dùng đưa một tên host đếnmột ứng dụng [có thể tên host đó là một phần của một tên hỗn hợp như địa chỉ thưđiện tử chẳng hạn], ứng dụng này sẽ liên hệ với hệ thống tên để dịch tên host sangđịa chỉ host. Sau đó ứng dụng liền tạo một nối kết đến host đó thơng qua giao thứcTCP chẳng hạn. Hiện trạng được mô tả trong hình 5.13.Hình 5.13: Tên máy được dịch sang địa chỉ, các số từ 1-5 thể hiện trình tự các bước xử lý5.3.1.1. Miền phân cấpDNS cài đặt không gian tên phân cấp dùng cho các đối tượng trên Internet. Các tênDNS được xử lý từ phải sang trái, sử dụng các dấu chấm [.] làm ký tự ngăn cách.[Mặc dù các tên DNS được xử lý từ phải qua trái, người dùng thường đọc chúng từtrái sang phải]. Ví dụ tên miền của một host là mail.hut.edu.vn. Chú ý rằng các tênIT102_Bai 5_v1.0013103214133 Bài 5: Giao thức TCP/IP và Internetmiền được sử dụng để đặt tên các đối tượng trên Internet, không phải chỉ được dùngđể đặt tên máy. Ta có thể mường tượng cấu trúc phân cấp của DNS giống như hìnhdáng cây. Hình 5.14 là một ví dụ.Hình 5.14: Cây phân cấp tên miềnCó thể thấy rằng, cây phân cấp khơng quá rộng ở mức đầu tiên. Mỗi quốc gia có mộttên miền, ngồi ra cịn có 6 miền lớn khác gồm: edu, com, gov, mil, org và net. Sáumiền lớn này nằm ở Mỹ. Những tên miền không chỉ ra tên nước một cách tường minhthì mặc nhiên là nằm ở Mỹ.5.3.1.2. Các máy chủ phục vụ tênMột cấu trúc tên miền phân cấp hoàn chỉnh chỉ tồn tại trong ý niệm. Vậy thì trongthực tế cấu trúc phân cấp này được cài đặt như thế nào? Bước đầu tiên là chia cấu trúcnày thành các cây con gọi là các vùng [Zone]. Mỗi một vùng có thể được xem là đơnvị quản lý một bộ phận của toàn hệ thống phân cấp. Ví dụ, vùng cao nhất của hệ thốngphân cấp được quản lý bởi NIC [Network Information Center], vùng HUT được quảnlý bởi trường đại học .Một vùng ln có mối liên hệ đến các đơn vị cài đặt cơ bản trong DNS - các máy chủtên. Thông tin chứa trong một vùng được thiết lập tại hai hoặc nhiều máy chủ tên. Mỗimáy chủ tên có thể truy xuất được qua mạng Internet. Máy trạm gửi yêu cầu đến máychủ tên, máy chủ tên sẽ trả lời cho u cầu đó. Câu trả lời đơi khi chứa thông tin cuốicùng mà máy trạm cần, đôi khi lại chứa chỉ điểm đến một máy chủ tên khác mà máytrạm nên gửi câu hỏi đến đó. Vì thế, theo cách nhìn thiên về cài đặt, người ta có thể nghĩvề DNS được cài đặt bằng cấu trúc phân cấp các máy chủ tên hơn là bằng cấu trúc phâncấp tên miền. Để ý rằng mỗi vùng được cài đặt trong hai hoặc nhiều máy chủ tên với lýdo dự phòng; nghĩa là nếu một máy chủ bị chết sẽ còn các máy chủ khác thay thế. Mặtkhác, một máy chủ tên cũng có thể được dùng để cài đặt nhiều hơn một vùng.Mỗi máy chủ tên quản lý thông tin về một vùng dưới dạng một tập các mẫu tin tàinguyên [Resource Record]. Mỗi mẫu tin tài nguyên là một ánh xạ từ tên sang giá trị[Name to Value Binding], cụ thể hơn là một mẫu tin gồm 5 trường: [Tên, Giá trị,Kiểu, Lớp, TTL]Các trường Tên và Giá trị là những gì chúng ta muốn có, ngồi tra trường Kiểu chỉ ra cáchthức mà Giá trị được thông dịch. Chẳng hạn, trường Kiểu = A chỉ ra rằng Giá trị là một địachỉ IP. Vì thế các mẫu tin kiểu A sẽ cài đặt kiểu ánh xạ từ tên miền sang địa chỉ IP: NS: Trường Giá trị chỉ ra tên miền của máy tính đang chạy dịch vụ tên và dịch vụđó có khả năng thơng dịch các tên trong một miền cụ thể.134IT102_Bai 5_v1.0013103214 Bài 5: Giao thức TCP/IP và Internet CNAME: Trường Giá trị chỉ ra một cái tên giả của một host nào đó. Kiểu nàyđược dùng để đặt thêm bí danh cho các host trong miền. MX: Trường Giá trị chỉ ra tên miền của host đang chạy chương trình Mail Servermà máy chủ đó có khả năng tiếp nhận những thông điệp thuộc một miền cụ thể. Trường Lớp được sử dụng nhằm cho phép thêm vào những thực thể mạng khôngdo NIC quản lý. Ngày nay, lớp được sử dụng rộng rãi nhất là loại được Internet sửdụng, nó được ký hiệu là IN.Cuối cùng trường TTL chỉ ra mẫu tin tài nguyên này sẽ hợp lệ trong bao lâu. Trườngnày được sử dụng bởi những máy chủ đang trữ tạm các mẫu tin của máy chủ khác; khitrường TTL hết hạn, các mẫu tin chứa trường TTL hết hạn đó sẽ bị các máy chủ xóakhỏi Cache của mình.Chú ý rằng trên lý thuyết các mẫu tin có thể được dùng để định nghĩa bất kỳ kiểu đốitượng nào, DNS lại thường được sử dụng để định danh các host và site. DNS khôngđược dùng để định danh cá nhân con người hoặc các đối tượng khác như tập tin haythư mục, việc định danh này được thực hiện trong các hệ thống phục vụ tên khác. Vídụ X.500 là hệ thống định danh của ISO được dùng để định danh con người bằng cáchcung cấp thông tin về tên, chức vụ, số điện thoại, địa chỉ,... X.500 đã chứng tỏ là quáphức tạp nên không được hỗ trợ bởi các máy tìm kiếm nổi tiếng hiện nay. Tuy nhiênnó lại là nguồn gốc phát sinh ra chuẩn LDAP [Lightweight Directory AccessProtocol]. LDAP vốn là thành phần con của X.500 được thiết kế để làm phần đầu cuốicho X.500. Ngày nay LDAP đang trở nên phổ biến nhất là ở cấp độ cơng ty, tổ chứclớn, đóng vai trị là hệ thống học và quản lý thơng tin về người dùng của nó.5.3.1.3. Phương pháp phân tích tênVới một hệ thống phân cấp các máy chủ tên đã trình bày, bây giờ chúng ta đi tìm hiểucách thức một khách hàng giao tiếp với các máy chủ này để phân tích cho được mộttên miền thành địa chỉ. Giả sử một khách hàng muốn phân tích tên miềnwww.hut.edu.vn, đầu tiên khách hàng này sẽ gửi yêu cầu chứa tên này đến máy chủtên gốc. Máy chủ gốc không thể so khớp tên theo yêu cầu với các tên mà nó chứa, liềntrả lời cho khách hàng một mẫu tin kiểu NS chứa edu.vn. Máy chủ gốc cũng trả về tấtcả các mẫu tin có liên quan đến mẫu tin NS trên, trong đó có mẫu tin kiểu A chứa địachỉ của dns1.vnnic.vnn.vn. Khách hàng chưa có thơng tin cuối cùng mà nó muốn, tiếptục gửi yêu cầu đến máy chủ tên tại địa chỉ 192.168.17.203. Máy chủ tên thứ hai nàylại không thể so khớp tên theo yêu cầu với các tên mà nó chứa, tiếp tục trả lời chokhách hàng một mẫu tin loại NS chứa tên hut.edu.vn cùng với mẫu tin kiểu A tươngứng với tên máy chủ là ns.hut.edu.vn. Khách hàng lại tiếp tục gửi yêu cầu đến máychủ tên tại địa chỉ 192.168.17.203 và lần này nhận được câu trả lời cuối cùng có kiểuA cho tên www.hut.edu.vn.Ví dụ trên chắc chắn sẽ để lại nhiều câu hỏi về quá trình phân giải tên. Câu hỏi thườngđược đặt ra là: Lúc khởi đầu, làm sao khách hàng có thể định vị được máy chủ gốc?Đây là bài toán cơ bản đặt ra cho mọi hệ thống phục vụ tên và câu trả lời là: hệ thốngphải tự thân vận động để có được thơng tin về các máy chủ gốc! Trong tình huống củahệ thống DNS, ánh xạ từ tên sang địa chỉ của một hay nhiều máy chủ gốc được phổIT102_Bai 5_v1.0013103214135 Bài 5: Giao thức TCP/IP và Internetbiến cho mọi người, nghĩa là ánh xạ đó được loan báo thơng qua các phương tiệntruyền thơng khác nằm ngồi hệ thống tên.Tuy nhiên, trong thực tế không phải tất cả khách hàng đều biết về các máy chủ gốc.Thay vào đó, chương trình khách hàng chạy trên mỗi host trong Internet được khởiđộng với các địa chỉ lấy từ máy chủ tên cục bộ. Từ đó, việc phân giải một tên miền bắtđầu từ câu truy vấn của khách hàng đến máy chủ cục bộ. Nếu máy chủ cục bộ khơngcó sẵn câu trả lời, nó sẽ gửi câu hỏi đến máy chủ từ xa giúp cho khách hàng. Chuỗihành động trên có thể được mơ tả trong hình sau:Hình 5.15: Q trình phân giải tên trong thực tế, các số 1 đến 8 chỉ ra trình tự thực hiện5.3.2.Electronic Mail [SMTP, MIME, POP3, IMAP]Thư điện tử là một trong những ứng dụng mạng lâu đời nhất và phổ dụng nhất. Thửnghĩ khi bạn muốn gửi thông điệp đến một người bạn ở đầu kia của thế giới, bạnmuốn mang thư chạy bộ qua đó hay chỉ đơn giản lên máy tính gõ ít hàng và nhấn nútSend? Thật ra, những bậc tiền bối của mạng ARPANET đã khơng tiên đốn được thưđiện tử sẽ là ứng dụng then chốt chạy trên mạng này, mục tiêu chính của họ là thiết kếhệ thống cho phép truy cập tài nguyên từ xa. Hệ thống thư điện tử ra đời không mấynổi bật, để bây giờ lại được sử dụng hằng ngày bởi hàng triệu người trên thế giới.Mục tiêu của phần này là chỉ ra những thành phần hoạt động trong hệ thống thư điệntử, vai trị của nó, giao thức mà họ sử dụng và khuôn dạng thông điệp mà cách thứctrao đổi với nhau.5.3.2.1. Các thành phần của hệ thống thư điện tửMột hệ thống thư điện tử thường có 3 thành phần chính: Bộ phận trợ giúp người dùng[User Agent], Mail Server và các giao thức mà các thành phần này dùng để giao tiếpvới nhau.Người ta phân loại các giao thức như sau: Giao thức giữa các Mail Server bao gồm:SMTP [Simple Mail Transfer Protocol]: được các máy chủ dùng để chuyển thưqua lại với nhau. Hình dung nó giống như cách thức mà các trạm bưu điện dùng đểchuyển các thùng thư của khách hàng cho nhau. Thông tin chi tiết về giao thức nàyđược mô tả trong tài liệu RFC 822.136IT102_Bai 5_v1.0013103214 Bài 5: Giao thức TCP/IP và Internet Giao thức giữa Mail Server và User Agent bao gồm:o POP3 [Post Offic Protocol version 3 [RFC 1939]]: được user agent sử dụng đểlấy thư về từ hộp thư của nó trên máy chủ.o SMTP: được user agent sử dụng để gửi thư ra máy chủ.o IMAP: [Internet Mail Access Protocol [RFC 1730]]: có nhiều tính năng vượttrội hơn POP3. Ngồi ra IMAP cịn cho phép gửi thư điện tử.Hình 5.16: Các thành phần của hệ thống thư điện tử5.3.2.2. Khuôn dạng của một thư điện tửRFC 822 định nghĩa một thư điện tử gồm có hai phần: phần tiêu đề [header] và phầnthân [body].Tiêu đềThânHình 5.17: Khn dạng của thư điện tửCả hai phần đều được thể hiện dưới dạng ký tự ASCII. Lúc đầu, phần thân được quyđịnh có khn dạng văn bản đơn giản. Sau này người ta đề nghị một chuẩn mới gọi làMIME, có thể cho phép phần thân của thư điện tử chứa bất kỳ loại dữ liệu nào.Phần tiêu đề bao gồm nhiều dịng thơng tin, mỗi dòng kết thúc bằng hai ký tự. Phần tiêu đề được chia khỏi phần thân bởi một hàng rỗng. Mỗi một hàngtiêu đề chứa một cặp “tên” và “giá trị”, cách nhau bởi dấu hai chấm [:]. Người dùngcó thể rất quen với nhiều hàng tiêu đề vì họ thường phải điền thơng tin vào đấy. Ví dụTênIT102_Bai 5_v1.0013103214Giá trịFrom:Địa chỉ người gửiTo:Địa chỉ người nhậnSubject:Chủ đề thưDate:Ngày gửi137 Bài 5: Giao thức TCP/IP và InternetRFC 822 được mở rộng năm 1993 [và được cập nhật lại năm 1996] để cho phép thưđiện tử mang được nhiều loại dữ liệu: âm thanh, video, hình ảnh, tài liệu Word, …MIME [Multipurpose Internet Mail Extensions] về cơ bản có ba phần. Phần đầu tiênlà tập các dòng header dùng để bổ túc cho phần header cũ của RFC 822. Theo nhiềucách, những dịng header này mơ tả dữ liệu chứa trong phần thân. Cụ thể như sau:TênGiá trịMIME – Version:Phiên bản MIME đang sử dụng.Content – Description:Mô tả trong thư đang có dữ liệu gì.Content – Type:Mơ tả kiểu dữ liệu đang nằm trong thư.Content – Transfer – Encoding:Mô tả cách thức mã hóa dữ liệu trong thư.Phần thứ hai là các định nghĩa cho một tập các kiểu nội dung [và kiểu con nếu có]. Vídụ một số kiểu mà MIME định nghĩa:KiểuÝ nghĩaImage/gifẢnh dạng gif.Image/jpegẢnh dạng jpeg.Text/plainVăn bản đơn giản.Text/richtextVăn bản mở rộng [có đặt font chữ, được định dạng đậm, nghiêng hoặc gạch dưới …].ApplicationDữ liệu trong thư được xuất ra từ một ứng dụng nào đó. Chẳng hạn:Application/postscript: Tài liệu Postscript [.ps].Application/msword: Tài liệu Microsoft Word [.doc].MIME cũng định nghĩa kiểu multipart để chỉ ra cách mà phần thân của thư mangnhiều loại dữ liệu khác nhau như thế nào. Chỉ có một kiểu con của multipart là hỗnhợp [mixed] với ý nói rằng trong phần thân của thư có nhiều mảnh dữ liệu khác nhau,độc lập với nhau và được sắp xếp theo một trình tự cụ thể. Mỗi mảnh dữ liệu sẽ cóphần tiêu đề riêng để mơ tả kiểu dữ liệu của mảnh đó.Phần thứ ba mơ tả cách thức mã hóa các kiểu dữ liệu nói trên để có thể truyền chúngdưới dạng ASCII. Lý do để mọi bức thư phải chứa các ký tự ASCII là vì để đi đượcđến đích, bức thư đó có thể phải trung chuyển qua nhiều gateway, mà các gateway nàyđều coi mọi bức thư dưới dạng ASCII. Nếu trong thư chứa bất kỳ ký tự nào khácASCII thì thư sẽ bị đứt gãy nội dung. MIME sử dụng phương pháp mã hóa trực tiếpdữ liệu nhị phân thành các ký tự nhị phân, gọi là base64. Ý tưởng của base64 là ánh xạ3 bytes dữ liệu nhị phân nguyên thủy thành 4 ký tự ASCII. Giải thuật đơn giản nhưsau: tập hợp 3 bytes dữ liệu nhị phân lại thành 24 bits, sau đó chia 24 bits này thành 4cụm, mỗi cụm 6 bits. Một cụm 6 bits được ánh xạ vào một trong 64 ký tự ASCII hợplệ, ví dụ 0 ánh xạ thành A, 1 ánh xạ thành B… Nếu nhìn vào bức thư đã được mã hóadạng base64, người dùng sẽ thấy chỉ có 52 chữ cái cả hoa lẫn thường, 10 chữ số từ 0đến 9 và các ký tự đặc biệt + và /.Đối với những người dùng chỉ sử dụng trình đọc thư hỗ trợ duy nhất kiểu ký tự thìviệc đọc những bức thư có kiểu base64 sẽ rất là phức tạp. Vì lý do nhân đạo, MIMEcịn hỗ trợ kiểu mã hóa ký tự thường được gọi là 7-bit. 7-bit sẽ giữ nguyên dạng ký tựmà người ta nhập vào.138IT102_Bai 5_v1.0013103214 Bài 5: Giao thức TCP/IP và Internet5.3.2.3. Chuyển thưKế đến, chúng ta sẽ xem xét giao thức SMTP – giao thức được dùng để chuyển thư từmáy này đến máy kia. Để đặt SMTP vào đúng ngữ cảnh, chúng ta nên nhắc lại cácnhân vật then chốt trong hệ thống thư điện tử. Đầu tiên, người dùng tương tác vớitrình đọc thư [hay còn gọi là user agent] để soạn, lưu, tìm kiếm và đọc thư của họ.Hiện trên thị trường có nhiều phần mềm đọc thư, cũng giống như hiện cũng đang cónhiều loại trình duyệt Web vậy. Thứ hai, có trình xử lý thư [hay cịn gọi là MailServer] chạy trên một máy nào đó trong mạng nội bộ của người dùng. Có thể xemMail Server như một bưu điện: Người dùng trao cho Mail Server các bức thư mà họmuốn gửi cho người dùng khác, Mail Server sử dụng giao thức SMTP trên TCP đểchuyển bức các thư này đến Mail Server bên đích. Mail Server bên đích nhận các thưđến và đặt chúng vào hộp thư của người dùng bên đích. Do SMTP là giao thức mà rấtnhiều người có thể tự cài đặt, vì thế sẽ có rất nhiều sản phẩm Mail Server hiện có trênthị trường. Sản phẩm Mail Server thường được sử dụng nhất là sendmail, ban đầuđược cài đặt trong hệ điều hành Berkeley Unix.Tất nhiên Mail Server bên máy gửi có thể kết nối SMTP/TCP trực tiếp tới Mail Serverbên máy nhận, nhưng trong thực tế, một bức thư có thể đi ngang qua vài mailgateways trước khi đến đích. Cũng giống như máy đích, mỗi mail gateway cũng chạymột Mail Server. Không phải ngẫu nhiên mà các nút chuyển thư trung gian được gọilà mail gateway. Công việc của chúng cũng giống như các IP gateway là lưu tạm vàchuyển phát tiếp các bức thư của người dùng. Điểm khác nhau duy nhất giữa chúng là,mail gateway trữ tạm các bức thư trong đĩa, trong khi các IP gateway trữ tạm các góitin IP trong bộ nhớ.Bạn có thể đặt câu hỏi: tại sao lại cần đến các mail gateways? Tại sao không dùngphương pháp nối kết SMTP/TCP trực tiếp từ bên gửi sang bên nhận? Lý do thứ nhất,người gửi không muốn kèm trong thư địa chỉ của máy đích. Ví dụ, riêng việc nhậpvào trong thư địa chỉ đích đã rất mất cơng, khơng ai thấy thoảimái khi phải nhập thêm địa chỉ máy đích là machine-of-dhbk.hut.edu.vn. Thứ hai,không chắc lúc bên gửi thiết lập nối kết đến bên nhận, người dùng bên nhận đã bật sẵnmáy! Thành thử chỉ cần địa chỉ thư bên nhận là đủ. Khi bức thư đến được mailgateway của Đại học Bách khoa Hà Nội, nếu người dùng dhbk đang mở máy, mailgateway sẽ chuyển thư cho anh ta ngay, nếu khơng mail gateway sẽ trữ tạm thư trênđĩa của nó đến khi dhbk bật máy lên và kiểm tra thư.Dù có bao nhiêu mail gateways trung gian trên đường đến đích vẫn khơng đáng lo lắng,bởi vì mỗi mail gateway trung gian sẽ nỗ lực sử dụng một kết nối SMTP độc lập đếngateway kế tiếp trên đường đi nhằm chuyển thư càng ngày càng đến gần người nhận.SMTP là một giao thức đơn giản dùng các ký tự ASCII. Sau khi thiết lập nối kết TCPđến cổng 25 của máy đích [được coi là máy chủ], máy nguồn [được coi là máy trạm]chờ nhận kết quả trả về từ máy chủ. Máy chủ khởi đầu cuộc đối thoại bằng cách gửimột dịng văn bản đến máy trạm thơng báo danh tính của nó và khả năng tiếp nhậnthư. Nếu máy chủ khơng có khả năng nhận thư tại thời điểm hiện tại, máy trạm sẽ hủybỏ nối kết và thử thiết lập lại nối kết sau.Nếu máy chủ sẵn sàng nhận thư, máy trạm sẽ thông báo lá thư đó từ đâu đến và ai sẽlà người nhận. Nếu người nhận đó tồn tại, máy chủ sẽ thơng báo cho máy trạm tiếp tụcIT102_Bai 5_v1.0013103214139 Bài 5: Giao thức TCP/IP và Internetgửi thư. Sau đó máy trạm gửi thư và máy chủ báo nhận cho thư đó. Sau khi cả hai bênhồn tất phiên truyền nhận, kết nối sẽ được đóng lại.LỆNH CỦA MÁY TRẠMLệnhÝ nghĩaHELLOCâu chào và xưng danh của máy trạm.MAIL FROMĐịa chỉ thư điện tử của người gửi.RCPT TOĐịa chỉ thư điện tử của người nhận.DATABắt đầu truyền nội dung của thư.QUITHủy nối kết.TRẢ LỜI CỦA MÁY CHỦLệnhÝ nghĩa250Yêu cầu hợp lệ.550Yêu cầu không hợp lệ, không tồn tại hộp thư như máy trạm đã chỉ ra.354Cho phép bắt đầu nhập thư vào. Kết thúc bằng ..221Máy chủ đang đóng kết nối TCP.Vẫn còn nhiều lệnh và mã trả lời chưa được trình bày, xin tham khảo tài liệu RFC 822để có được đầy đủ thơng tin.5.3.2.4. Phân phát thưNhư đã trình bày, khi đứng về góc độ người dùng thư, họ sẽ dùng user agent để gửi vànhận thư cho họ. User agent dùng giao thức SMTP để gửi thư đi, dùng giao thứcPOP3 hoặc IMAP để nhận thư về.POP3Một phiên làm việc theo giao thức POP3 bắt đầu tại user agent. User agent khởi độngmột nối kết TCP đến cổng 110 của Mail Server. Khi kết nối thực hiện xong, phiên làmviệc POP3 sẽ trải qua theo thứ tự ba kỳ:1. Chứng thực.2. Giao dịch dữ liệu.3. Cập nhật.Kỳ chứng thực buộc người dùng thực hiện thủ tục đăng nhập bằng cách nhập vào hailệnh sau:LệnhÝ nghĩaUSER Khai báo của người dùng là đúng.PASS Khai báo của người dùng là sai và lời giải thích.Báo trả của Mail Server sẽ là một trong hai câu sau:Lệnh140Ý nghĩa+ OK Khai báo của người dùng là đúng.+ ERR Khai báo của người dùng là sai và lời giải thích.IT102_Bai 5_v1.0013103214 Bài 5: Giao thức TCP/IP và InternetTrong kỳ giao dịch, người dùng có thể xem danh sách thư chưa nhận về, nhận thư vềvà xóa thư trong hộp thư của mình khi cần thiết. Các lệnh mà người dùng thường sửdụng để giao dịch với máy chủ là:LệnhÝ nghĩaLIST []Nếu dùng LIST không tham số, server sẽ trả về toàn bộ danh sách cácthư chưa nhận. Nếu có tham số là số thứ tự thư cụ thể, server sẽ trảvề thơng tin của chỉ bức thư đó thơi.RETR Tải lá thư có số thứ tự về.DELE Xóa lá thư số khỏi hộp thư.QUITHoàn tất giai đoạn giao dịch và hủy kết nối TCP.Các trả lời của máy chủ có thể là các số liệu mà máy trạm yêu cầu hoặc các thông báo+OK, -ERR như trong phần đăng nhập.IMAPVới những người dùng có một tài khoản thư điện tử trên một ISP và người dùng nàythường truy cập thư điện tử trên một PC thì giao thức POP3 hoạt động tốt. Tuy nhiên,một sự thật trong ngành cơng nghệ máy tính, khi một thứ gì đó đã hoạt động tốt, ngườita lập tức địi hỏi thêm nhiều tính năng mới [và tự chuốc lấy nhiều phiền nhiễu]. Điềuđó cũng xảy ra đối với hệ thống thư điện tử. Ví dụ, người ta chỉ có một tài khoản thưđiện tử, nhưng họ lại muốn ngồi đâu cũng truy cập được nó. POP3 cũng làm đượcchuyện này bằng cách đơn giản tải hết các thư điện tử xuống máy PC mà người dùngnày đang ngồi làm việc, và dĩ nhiên là thư từ của người dùng này nằm rải rác khắp nơi.Sự bất tiện này khơi mào cho sự ra đời của giao thức phân phối thư mới, IMAP[Internet Message Access Protocol], được định nghĩa trong RFC 2060. Không giốngnhư POP2, IMAP coi các thông điệp mặc nhiên nằm trên máy chủ vô hạn và trênnhiều hộp thư. IMAP còn đưa ra cơ chế cho phép đọc các thông điệp hoặc một phầncủa thông điệp, một tính năng hữu ích khi người dùng kết nối đến máy chủ bằngđường truyền tốc độ chậm như điện thoại nhưng lại đọc các thư điện tử có âm thanh,hình ảnh… Với quan niệm cho rằng người dùng khơng cần tải thư về lưu trên PC,IMAP cung cấp các cơ chế cho phép tạo, xóa và sửa đổi nhiều hộp thư trên máy chủ.Cung cách làm việc của IMAP cũng giống như POP3, ngồi trừ trong IMAP có rấtnhiều lệnh. IMAP máy chủ sẽ lắng nghe trên cổng 143. Cũng nên chú ý rằng, khôngphải mọi ISP đều hỗ trợ cả hai giao thức POP3 và IMAP.Bảng sau so sánh các tính năng của POP3 và IMAPTính năngPOP3IMAPGiao thức được định nghĩa ở đâu?RFC 1939RFC 2060Cổng TCP được dùng110143Thư điện tử được lưu ở đâu?PC của người dùngServerThư điện tử được đọc ở đâu?Off – lineOn – lineThời gian kết nốiÍtNhiềuSử dụng tài nguyên của máy chủTối thiểuNhiều hơnNhiều hộp thưKhôngĐúngIT102_Bai 5_v1.0013103214141

Video liên quan

Chủ Đề