Chương 1: CƠ SỞ LÝ THUYẾT 1. Tổng quan về họ giao thức TCP/IP 1. Mô hình TCP/IP Mô hình TCP/IP được thiết kế gồm 4 tầng được mô tả theo hình dưới: Appltcatlon #———————————PeatloPetf——— Ứngdụng Tranepof M<ss=+<«<<=<-<<ss=s<=s<-= DI Pin zgusgaseollL/VGVL/ERU M¬6laovận Ỳ | | Internet Internet Internet Mạng r Link Link Link Liên kết Lp a Say Hinh 1. M6 hinh TCP/IP Tầng ứng dụng: Đây là tầng cao nhất trong cấu trúc phân lớp cha TCP/IP.
Tang này bao gồm tắt cả các chương trình ứng dụng sử dụng các dịch vụ sẵn có thông qua một chồng giao thức TCP/IP. Các chương trình ứng dụng tương tác với một trong các giao thức của tầng giao vận dé truyền hoặc nhận dữ liệu. Một số giao thức thông dụng trong tang nay nhu DHCP, DNS, SNMP, FTP, SMTP, TELNET. Tầng giao vận: Nhiệm vụ của tầng giao vận là cung cấp sự giao tiếp thông tin giữa các chương trình ứng dụng.
Nó cung cấp một sự vận chuyển tin cậy, đảm bảo rằng dữ liệu đến mà không bị lỗi. Để làm như vậy. phần mềm giao thức hỗ trợ bên nhận có thể gửi lại các thông báo xác nhận vẻ việc nhận dữ liệu và bên gửi có thể truyền lại các gói tin bị mắt hoặc bị lỗi. Các giao thức chính trong tầng này gồm UDP, TCP.
Tầng mạng: Tầng mạng xử lý giao tiếp thông tin từ một máy này tới một máy khác. Nó chấp nhận một yêu cầu để gửi một gói tin từ tầng giao vận cùng với một định Trang 3 danh của máy đích mà gói tin sẽ được gửi tới. Bốn giao thức quan trọng nhất trong tầng này gồm IP, ARP, ICMP, IGMP. Tầng liên kết: Là tầng thấp nhất của bộ giao thức TCP/IP, chịu trách nhiệm về việc chấp nhận các datagram của tầng trên và việc truyền phát chúng trên một mạng xác định.
Một số giao thức tiêu biểu thuộc tầng này gồm ATM, Ethernet, Token Ring, FDDI. Giao thire TCP Giao thức TCP là giao thức truyền tin hướng liên kết có thể sử dụng truyền tin với độ tin cậy cao. Trong đó giao thức trong tầng 4 có thẻ gửi các xác thực rằng đã nhận dữ liệu và yêu cầu truyền lại dữ liệu nếu chưa nhận được dữ liệu hoặc dữ liệu bị hỏng. Trường Độ dài | Méta 1¬ : CONE ENON RS 2bytes ¡| Số hiệu cổng của nguồn.
port) Công đích (destination É i29, 5 _ 2bytes | Sô hiệu công đích. port) yt ¢ ig Số thứ tự ( S6Nueue ĐỒ thứ HƯỚNG tạo ra bởi nga ek duge sử dụng bởi 4bytes | đích đề sắp xếp lại các gói tin đê tạo ra thông điệp ban Number) mm. wD SẼ x đâu, và gửi xác thực tới nguôn. Acknowledge Number | 4 bytes c mĩ.
có Data offset — |4bits | Các chỉ tiết về nơi dữ liệu gói tin bắt đầu. Reserved 6 bit Duphong. - Control Trường này chỉ ra kích thước của vùng đệm nhận. Phía g ores nhận có thể thông báo cho phía gửi kích thước dữ liệu TEEN ee anes tối đa mà có thể được gửi đi bằng cách sử đụng các thông điệp xác thực.
h Checksum cho header và dữ liệu để xác định xem gói ae 2bytes | tin có bị hỏng không. oie Sat tp 2 £ Ls. ~~ 1 —e 2 bytes Trường này thông báo cho phía nhận biết có dữ liệu khẩn. Trang 4 Options Padding Bang 1.
Cae trường header của giao thức TCP Giao thức TCP là một giao thức phức tạp và mát thời gian do cơ chế bắt tay, nhưng giao thức này đảm bảo các gói tin đến đúng dích. Một số giao thức ứng dụng sử dụng TCP như HTTP, FTP, SMTP, và Telnet. 'TCP yêu cầu một liên kết phải được thiết lập trước khi dữ liệu được gửi đi. Ứng dụng server phải thực hiện một thao tác mở thụ động đề tạo một liên kết với một số hiệu công cho trước.
Giao thức UDP Ngược với giao thức TCP. UDP là một giao thức có tốc độ truyền tin nhanh vì nó chỉ xác định cơ chế tối thiếu để truyền dữ liệu. Tất nhiên điều này có một số nhược điểm là các thông điệp có thể được nhận theo bất kỳ thứ tự nào. Thông điệp được gửi đầu tiên có thể được nhận sau cùng.
Không có gì đảm bảo là các gói tin sẽ đến đích, và các thông điệp có thể bị thất lạc, hoặc thậm chí có thể nhận được hai bản sao của cùng một thông điệp. UDP không cần giai đoạn thiết lập liên kết, dữ liệu được gửi đi ngay khi cần. UDP không gửi các thông điệp xác thực, vì vậy đữ liệu có thể nhận được hoặc bị thất lạc. Nếu cần truyền đữ liệu có độ tin cậy nó phải được thực hiện trong một giao thức mức cao hơn.
Vậy đâu là ưu điểm của giao thức UDP, tại sao chúng ta lại cần sử dụng một giao thức có độ tin cậy thấp như vậy? Đề hiểu được lý do tại sao ta lại phải sử dụng giao thức UDP ta cần phân biệt giữa truyén unicast, broadcast va multicast. Một thông điệp unicast được gửi từ nút này tới nút khác. Kiểu truyền tin là truyền tin diém - điểm. Giao thức TCP chỉ hỗ trợ truyền tin unicast.
Nếu một server muốn truyền tin với nhiều client bằng cách sử dụng giao thức UDP, mỗi client phải thiết lập một liên kết, vì các thông điệp chỉ có thể gửi tới một nút. Truyền tin broadcast nghĩa là một thông điệp có thẻ được gửi tới tat cả các nút trong một mạng. Multicast cho phép các thông điệp được truyền tới một nhóm các nút được lựa chọn. UDP có thể được sử dụng cho truyền tin unicast nếu cần tới tốc độ truyền tin nhanh.
như truyền tin đa phương tiện, nhưng ưu điểm chính của UDP là truyền tin Trang Š broadcast va truyền tin multicast. Thông thường chúng ta không muốn tất cả các nút gửi về các xác thực cho server vì như vậy sẽ làm cho server quá tải. Trường thôngtin | Độ dài Mô tá : Xác định công nguồn là một tùy chọn với UDP. Nếu Source port (Công " " x ".
santo) 2 byte | trudng nay duge str dung, phia nhan thong diép co thé giri om ‹ một phúc đáp tới cổng này | Destination Port 2 byte | Số hiệu cổng đích Length 2 byte | Chiéu dài của thông điệp bao gồm header và dữ liệu Checksum 2 byte | Để kiểm tra tính đúng đắn - _ Bảng 1. Các I trường header của giao thức UDP 1. Căn bản ngôn ngữ lập trình Java 1. Giới thiệu ngôn ngữ Java Java được công bố chính thức vào năm 1995 và ngay lập tức đã tạo nên một trào lưu mới trên toàn thé giới và từ đó đến nay vẫn tạo được sức cuốn hút mạnh mẽ.
Java được xây dựng trên ngôn ngữ lập trình C và C++. Nó kế thừa cú pháp của C và các nét đặc trưng của C++. Java là một ngôn ngữ lập trình phổ dụng, được dùng để viết các chương trình có thể chạy trên nhiều nền tảng khác nhau như: Mierosoft Windows, Apple Macintosh, Linux. Java không những được dùng cho các ứng dụng độc lập.
các chương trình trên mạng, mà còn được dùng trong các thiết bị tiêu dùng như điện thoại, các thiết bị cầm tay. Java là ngôn ngữ hoàn chỉnh được thiết kế theo cách tiếp cận hướng đối tượng. kế thừa và sử dụng lại. Mục đích chính của Java là đơn giản, thân thiện.
hướng đối tượng nhằm tạo ra phần mềm ứng dụng độc lập với môi trường sử dụng. Một số tính chất của ngôn ngữ Java - Hướng đỗi tượng: Java là một ngôn ngữ hướng đối tượng. Trong Java không có các hằng, biến hoặc hàm độc lập. Nghĩa là tất cả đều là một phần của đối tượng.
Các hằng, biến và hàm được truy nhập thông qua các lớp và các đối tượng. Trang 6 - Độc lập với nền tảng: Java là một nền tảng để phát triển các ứng dụng. Nền tảng ở đây là sự kết hợp giữa phần cứng và phần mềm hệ thống. bộ xử lý Intel chạy trên nền Windows XP là một nên tảng.
Độc lập nền tảng nói đến khả năng chương trình có thể đi chuyển từ một nền tang này sang một nền tảng khác không có bắt kỳ một khó khăn nảo. Java có các thư viện cơ sở. Điều này cho phép các lập trình viên có thể di chuyển mã từ nền tảng này đến một nền tảng khác mà không cần phải viết lại mã. Các chương trình Java được biên dịch thành bytecode và được một trình thông dịch để thực thi các bytecode đó trên một nền tảng bất kỳ.
Công việc của trình thông dịch là đọc mã bytecode và chuyển nó thành ngôn ngữ mà máy có thê thực thi được. - Quản lý bộ nhớ và quá trình thu dọn “rác”: Quản lý bộ nhớ là một vấn đề khá phức tạp đối với C và C=~. Trong thời gian thực hiện chương trình, người lập trình chịu trách nhiệm khởi tạo các vùng nhớ, sau khi dùng xong lại giải phóng chúng. Chỉ cần một lỗi nhỏ trong đó cũng có thể làm cạn kiệt tài nguyên hay dẫn đến treo hệ thống.
Java vứt bỏ gánh nặng này cho người lập trình: Các vùng nhớ được tạo ra trong chương trình sẽ tự động được giải phóng thông qua quá trình thu dọn “rác”. Các vùng nhớ tự động được giải phóng nếu như nó không được quy chiếu đến bởi bất cứ dối tượng đang hoạt động nào. Cách quản lý bộ nhớ của Java cũng có thêm tính an ninh của các máy ảo. Trong C va C++, ngudi lập trình có thể truy cập đến hệ thống thông qua con trỏ.
Với Java, phép toán với con trỏ bị cấm, do đó con trỏ luôn chỉ đến dữ liệu cần thiết của ứng dụng trên máy ảo. ngăn ngừa ứng dụng truy xuất đến tài nguyên bên ngoài máy ảo. - Đa luồng: Các ứng dụng viết bằng Java có thể tiến hành được xử lý cùng một lúc. Một ứng dụng đơn luồng chỉ có thể thực hiện một tác vụ tại một thời điểm: Giả sử ứng dụng đang bận lấy từ trên mạng xuống một tập tin mất vài phút, trong thời gian này ứng dụng không thể làm các việc khác như vẽ lại màn hình.
Với ứng dụng viết bằng Java. bạn có thể tạo hai tiến trình song song làm việc: một tiến trình nạp tập tin, một tiến trình khác làm nhiệm vụ cập nhật màn hình. Trang 7 - An ninh: Khi phát triển các ứng dụng phân tán thì một trong những vấn đề được quan tâm hàng đầu là an toàn hệ thống. Java được thiết kế để đâm bảo an toàn cho người dùng Java trên mạng.
Java có bốn tầng bảo an sau đây: Tầng 1: Mức ngôn ngữ và trình biên dịch. Java không có kiểu con trỏ. Trình biên dịch kiểm tra kiểu rất chặt chẽ. Mọi chuyển đổi kiểu đều phải được thực hiện một cách tường minh.