Đăng ký Đăng nhập
Trang chủ Xây dựng ứng dụng webmail...

Tài liệu Xây dựng ứng dụng webmail

.PDF
145
145
102

Mô tả:

Đồ án tốt nghiệp Đề tài: “Xây dựng ứng dụng Webmail” Sinh viên thực hiện Nguyễn Xuân Thanh Trang 1 Đồ án tốt nghiệp MỤC LỤC PHẦN 1 : CƠ SỞ LÝ THUYẾT .................................................................................. 9 CHƯƠNG 1 : GIỚI THIỆU CHUNG VỀ INTERNET VÀ MỘT SỐ GIAO THỨC TRUYỀN THÔNG TRÊN INTERNET .............................................................................................................................. 10 1.1. GIỚI THIỆU CHUNG VỀ INTERNET ..................................................... 10 1.2. HỌ GIAO THỨC TCP/IP ........................................................................... 11 1.3. GIAO THỨC LIÊN MẠNG IP ................................................................... 12 1.4. GIAO THỨC ĐIỀU KHIỂN TRUYỀN TCP ............................................. 19 CHƯƠNG 2 : CƠ SỞ VỀ LẬP TRÌNH MẠNG TRÊN MÔ HÌNH CLIENT/SERVER ......................................................................... 21 2.1. LẬP TRÌNH GIAO TIẾP MẠNG VỚI WINDOWS SOCKETS ................. 21 2.2. MỘT SỐ KHÁI NIỆM CƠ BẢN ................................................................ 22 2.2.1.Địa chỉ Internet ................................................................................... 22 2.2.2. Khái niệm socket và port .................................................................. 22 2.3. CÁCH CÀI ĐẶT ỨNG DỤNG CLIENT/SERVER TCP ........................... 23 2.3.1. Cách cài đặt server TCP ................................................................... 24 2.3.2. Cách cài đặt client TCP ................................................................... 24 CHƯƠNG 3 : MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN THƯ ĐIỆN TỬ .......................................................................................................... 26 1.1. MAILSERVER ........................................................................................... 26 1.2. GIAO THỨC GỬI MAIL (MAIL TRANSPORT PROTOCOL) ................. 26 Sinh viên thực hiện Nguyễn Xuân Thanh Trang 2 Đồ án tốt nghiệp 1.3.GIỚI THIỆU KIẾN TRÚC DỊCH VỤ THƯ ĐIỆN TỬ................................ 27 1.3.1. Kiến trúc và các dịch vụ.................................................................... 27 1.3.2. Tác nhân người sử dụng (The User Agent) ...................................... 30 1.3.2.1.Gửi thư (Sending Email) ................................................................ 30 1.3.2.2. Đọc thư (Reading Email) ............................................................... 31 1.3.2.3.Định dạng thông điệp (Message Formats)....................................... 32 1.3.2.4.Chuẩn RFC 822 .............................................................................. 33 1.4.PHÂN TÍCH CẤU TRÚC THƯ ĐIỆN TỬ, CÁC GIAO THỨC SMTP VÀ POP3 ................................................................................................................. 36 1.4.1.Phân tích cấu trúc thư điện tử (RFC 822).......................................... 36 1.4.1.1. Giới thiệu ..................................................................................... 36 1.4.1.2. Mô tả về cấu trúc thư ..................................................................... 37 1.4.2. Định nghĩa về các trường Header..................................................... 39 1.4.3. Các trường header điển hình ............................................................ 39 1.4.4. Ví dụ về cấu trúc thư......................................................................... 41 1.5. PHÂN TÍCH GIAO THỨC SMTP (RFC 821) ............................................ 42 1.5.1. Giới thiệu chung ................................................................................ 42 1.5.2. Mô hình hoạt động phiên giao dịch .................................................. 43 1.5.3. Thủ tục Mail ...................................................................................... 45 1.5.4. Thủ tục Forwarding ........................................................................... 48 1.5.5. Các thủ tục Mailing và Sending......................................................... 49 1.5.6. Các thủ tục Opening và Closing ........................................................ 51 1.5.7. Mã trả lời của các câu lệnh SMTP .................................................... 52 1.6. PHÂN TÍCH GIAO THỨC POP3 (RFC 1081,1082) .................................. 53 1.6.1. Giới thiệu ........................................................................................... 54 1.6.2. Mô hình hoạt động phiên giao dịch .................................................. 54 Sinh viên thực hiện Nguyễn Xuân Thanh Trang 3 Đồ án tốt nghiệp 1.6.3. Trạng thái AUTHORIZATION ....................................................... 56 1.6.4. Trạng thái TRANSACTION ............................................................ 59 1.6.5. Trạng thái UPDATE ......................................................................... 64 1.6.6. Ví dụ về một phiên giao dịch POP3 .................................................. 65 1.7. MIME (MULTIPURPOSE INTERNET MAIL EXTENSIONS) ................. 67 1.8.POP BEFORE SMTP(CHỨNG THỰC QUYỀN TRUY CẬP THEO GIAO THỨC POP TRƯỚC KHI SỬ DỤNG SMTP)................................................... 69 1.9.MAIL CLIENT, WEB MAIL ...................................................................... 70 CHƯƠNG 4 : GIỚI THIỆU VỀ CÁC CÔNG NGHỆ LIÊN QUAN ............................................................................................................... 70 2.1.GIỚI THIỆU VỀ JRUN WEBSERVER 3.1 ................................................. 70 2.2.GIỚI THIỆU VỀ SQL SERVER 7.0 ............................................................ 71 2.2.1. Lý thuyết hệ quản trị cơ sở dữ liệu sql server 7.0 và Cấu trúc cơ sở dữ liệu của sql server 7.0 ............................................................................. 71 2.2.2. Cấu trúc cơ sở dữ liệu vật lý:............................................................. 72 2.2.2.1. Trang (page): ................................................................................. 72 2.2.2.2 .Extent: ........................................................................................... 73 2.2.2.3 Những loại file trong CSDL:SQL Server có 3 loại file: .................. 73 2.3. LÝ THUYẾT MÔ HÌNH QUAN HỆ .......................................................... 74 2. 3.1. Các khái niệm cơ bản ........................................................................ 74 2.3.2. Khái Niệm phụ thuộc dữ liệu và các dạng chuẩn ............................. 74 2.3.3 Khái niệm chỉ dẫn và khóa chỉ dẫn .................................................... 75 2.4.GIỚI THIỆU VỀ JAVA SERVLET ............................................................ 75 2.4.1.Khái niệm về JAVA SERVLET ......................................................... 75 2.4.2.Những ứng dụng thực tế của JAVA SERVLET và kiến trúc của JAVA SERVLET ......................................................................................... 76 Sinh viên thực hiện Nguyễn Xuân Thanh Trang 4 Đồ án tốt nghiệp 2.5.GIỚI THIỆU VỀ JAVA SERVER PAGES(JSP) ......................................... 76 2.5.1.Khái niệm về JSP ................................................................................ 76 2.5.2.Quan hệ giữa Servlet và JSP .............................................................. 77 2.5.2.1.Cách trình chủ biên dịch trang JSP thành servlet ............................ 77 2.5.2.2. So sánh giữa Servlet và JSP........................................................... 77 2.6. GIỚI THIỆU VỀ JAVABEANS ................................................................. 78 2.6.1.Khái niệm về JAVABEANS................................................................ 78 2.6.2.Các thẻ chuẩn của JAVABEANS trong trang JSP........................... 79 2.6.2.1. ................................................................................ 79 2.6.2.2. ........................................................................... 80 2.6.2.3. .......................................................................... 81 2.6.3.Thêm JAVABEANS vào JSP.............................................................. 81 PHẦN 2 : XÂY DỰNG ỨNG DỤNG ....................................................................... 83 CHƯƠNG 1 PHÂN TÍCH BÀI TOÁN ............................................... 83 1.1.TÊN ĐỀ TÀI ............................................................................................... 83 1.2.DỀ CƯƠNG CHI TIẾT ............................................................................... 83 1.2.1.Khảo sát ............................................................................................... 83 1.2.2.Yêu cầu của bài toán ........................................................................... 83 1.2.3.Dữ liệu vào, dữ liệu ra và các chức năng xử lý của hệ thống ............ 84 1.2.4. Chức năng của hệ thống thông tin quản lý ....................................... 85 1.3. LÝ DO CHỌN ĐỀ TÀI .............................................................................. 85 CHƯƠNG 2 : THIẾT KẾ VÀ CÀI ĐẶT ỨNG DỤNG ............... 86 2.1.PHÂN TÍCH VÀ THẾT KẾ CƠ SỞ DỮ LIỆU ............................................ 86 2.1.1.Phân tích .............................................................................................. 86 2.1.2. Giải thích các chức năng của hệ thống .............................................. 88 Sinh viên thực hiện Nguyễn Xuân Thanh Trang 5 Đồ án tốt nghiệp 2.1.3.biểu đồ luồng dữ liệu( DFD – Data flow Diagram) ............................ 89 2.1.4. THIẾT KẾ HỆ THỐNG .................................................................... 89 2.1.4.1. Các bảng dữ liệu chính .................................................................. 89 2.2. CÀI ĐẶT MAILSERVER .......................................................................... 91 2.2.1.Phương án tổ chức lưu trữ mail trên Server ...................................... 91 2.2.2.Các đơn thể của mailserver ................................................................ 92 2.2.2.1. Xây dựng SMTP Server ................................................................ 93 2.2.2.2. Xây dựng POP3 Server................................................................ 114 2.3.CÀI ĐẶT MAILCLIENT .......................................................................... 136 Một số giao diện chính ................................................................................. 142 LỜI CẢM ƠN Trước hết tôi xin chân thành cảm ơn các thầy cô giáo khoa Đại học Đại Cương của trường Đại học Thuỷ Sản Nha Trang và khoa Công Nghệ Thông Tin trường Đại học Bách Khoa Hà Nội đã trang bị cho tôi những kiến thức cơ bản cần thiết trong những năm học vừa qua để tôi có thể thực hiện tốt cuốn đồ án này. Sinh viên thực hiện Nguyễn Xuân Thanh Trang 6 Đồ án tốt nghiệp Em xin chân thành cảm ơn thầy Văn Thế Minh đã tận tình giúp đỡ và hướng dẫn em hoàn tất cuốn đồ án này. Ngoài ra tôi cũng xin cảm ơn tất cả bạn bè đã giúp đỡ tôi trong suốt quá trình thực hiện đồ án. Mặc dù đã rất cố gắng, nhưng trong khoảng thời gian cho phép cũng như những hạn chế về kiến thức nên cuốn đồ án này của tôi không thể tránh khỏi những thiếu sót. Chính vì vậy, tôi rất mong nhận được sự góp ý của các thầy cô giáo cũng như bạn bè gần xa và những cá nhân hay tổ chức có quan tâm đến lĩnh vực được trình bày trong cuốn đồ án này. Hà Nội, tháng 5 năm 2003 Nguyễn Xuân Thanh Sinh viên thực hiện Nguyễn Xuân Thanh Trang 7 Đồ án tốt nghiệp LỜI NÓI ĐẦU Ngày nay với sự phát triển mạnh mẽ của tin học và công nghệ Internet, hầu như mọi người đều thấy rõ lợi ích mà các dịch vụ do mạng Internet mang lại. Dịch vụ thư điện tử gọi tắt là Email là một trong nhưng dịch vụ được sử dụng nhiều nhất trên Internet hiện nay. Dịch vụ này cho phép các cá nhân hay tổ chức trao đổi thư với nhau thông qua mạng Internet. Nhiều người sử dụng Internet chỉ để dùng dịch vụ này. Thông thường, khi sử dụng dịch vụ thư tín điện tử, người sử dụng thường ít khi quan tâm xem hệ thống bên trong đã thực hiện như thế nào. Vì vậy, họ ( người sử dụng) mới chỉ thấy được một nửa của ứng dụng dịch vụ Email và phần ứng dụng đó được gọi là Mail Client, hay là sử dụng dịch vụ thư tín máy trạm. Sinh viên thực hiện Nguyễn Xuân Thanh Trang 8 Đồ án tốt nghiệp Nhằm mục đích hiểu rõ hơn về hoạt động bên trong của ứng dụng Email ở phần cung cấp dịch vụ mà thường được gọi là Mail Server, trong cuốn đồ án này tôi xin trình bày một cách cơ bản hệ thống phục vụ việc truyền thư tín điện tử trên cơ sở tìm hiểu về các mô hình truyền thông thư tín, các giao thức truyền thông chuẩn, các hoạt động của một hệ Mail Server. Vì thời gian có hạn và có rất nhiều các vấn đề có liên quan, do đó đồ án này chỉ trình bày những vấn đề cơ bản nhất về dịch vụ thư tín điện tử và cài đặt một chương trình mang tính thử nghiệm do dịch vụ thư tín điện tử mà thôi. PHẦN 1 : CƠ SỞ LÝ THUYẾT Sinh viên thực hiện Nguyễn Xuân Thanh Trang 9 Đồ án tốt nghiệp CHƯƠNG 1 : GIỚI THIỆU CHUNG VỀ INTERNET VÀ MỘT SỐ GIAO THỨC TRUYỀN THÔNG TRÊN INTERNET 1.1. GIỚI THIỆU CHUNG VỀ INTERNET Mạng Internet là một tập hợp gồm hàng vạn hệ mạng trên khắp thế giới, được phát triển vào thập kỷ bảy mươi. Số lượng máy tính nối mạng và số lượng người truy cập vào mạng Internet trên toàn thế giới đang ngày càng tăng lên nhanh chóng, đặc biệt từ năm 1993 trở đi. Mạng Internet không chỉ cho phép chuyển tải thông tin nhanh chóng mà còn giúp cung cấp thông tin, nó cũng là diễn đàn và là thư viện toàn cầu đầu tiên. Mạng Internet có xuất xứ năm 1969 từ mạng máy tính toàn cục ARPANET do cơ quan quản lý các dự án nghiên cứu các công trình nghiên cứu khoa học tiên tiến thuộc Bộ Quốc phòng Mỹ (US Defense’s Advance Research Projects Agency - gọi tắt là DARPA) tài trợ. Từ giữa năm 1970, trung tâm DARPA hướng tới mạng Internet với kỹ thuật chuyển mạch gói qua mạng vô tuyến và thông tin vệ tinh. Năm 1980, DARPA thử nghiệm dùng giao thức TCP/IP và đã được các trường đại học ở Mỹ ghép nối với hệ điều hành UNIX BSD (Berkely Software Distribution). Hệ điều hành UNIX là hệ phát triển mạnh với rất nhiều công cụ hỗ trợ và đảm bảo các phần mềm ứng dụng có thể chuyển qua lại trên các họ máy khác nhau (máy mini, máy tính lớn và hiện nay là máy vi tính). Bên cạnh đó hệ điều hành UNIX BSD còn cung cấp nhiều thủ tục Internet cơ bản, đưa ra khái niệm Socket và cho phép chương trình ứng dụng thâm nhập vào Internet một cách dễ dàng. Cấu trúc mạng Internet gồm có: Sinh viên thực hiện Nguyễn Xuân Thanh Trang 10 Đồ án tốt nghiệp  Tầng ứng dụng: TELNET, FTP, SMTP;  Tầng giao vận: TCP, UDP;  Tầng Internet: Internet Protocol;  Tầng mạng: X.25, Ethernet, FDDI. . .;  Tầng vật lý: là các môi trường truyền tin khác nhau. 1.2. HỌ GIAO THỨC TCP/IP TCP/IP là họ của các giao thức được sử dụng cho việc truyền thông máy tính. Các chữ cái được viết tắt bởi các từ (Transmission Control Protocol/Internet Protocol), hai giao thức này có cách biểu diễn khác nhau, người ta ít khi sử dụng với cái tên đầy đủ của hai giao thức này. Thường các giao thức được nhóm lại thành các họ (đôi khi còn được gọi là các suites hay các stacks). Các giao thức nào được nhóm lại với nhau thường được xác định bởi các bộ cài đặt của giao thức. Họ giao thức TCP/IP bao gồm các giao thức như là IP (Internet Protocol) , ARP (Address Resolution Protocol), ICMP (Internet Control Message Protocol), UDP (User Datagram Protocol), TCP (Transport Control Protocol), RIP (Routing Information Protocol), Telnet, SMTP (Simple Mail Transfer Protocol), DNS (Domain Name System) và một số các giao thức khác. Hình bên dưới mô tả kiến trúc của mạng TCP/IP có so sánh với mô hình tham chiếu OSI để chúng ta hình dung được sự tương ứng về chức năng của các tầng. Sinh viên thực hiện Nguyễn Xuân Thanh Trang 11 Đồ án tốt nghiệp OSI Model Layers Application Layer Presentation Layer Session Layer Transport Layer TCP/IP Protocol Architecture Layers Application Layer Telnet Host-to-Host Transport Layer Network Layer Internet Layer Data Link Layer Network Interface Layer Physical Layer TCP/IP Protocol Suite FTP SMTP DNS TCP SNMP UDP IP ARP Ethernet RIP Token Ring IGMP Frame Relay ICMP ATM So sánh các kiến trúc ISO và TCP/IP TCP/IP thực chất là một họ giao thức cùng làm việc với nhau để cung cấp phương tiện truyền thông liên mạng. Trong phần này chúng ta sẽ xem xét giao thức IP, giao thức TCP và một số ứng dụng ở tầng trên như Telnet, FTP, DNS, SMTP. . . 1.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. IP là một giao thức kiểu ”không liên kết” (connectionless) 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. Đơn vị dữ liệu dùng trong IP được gọi là datagram, có khuôn dạng chỉ ra trong hình bên dưới. ý nghĩa của các tham số như sau:  VER (4 bits): chỉ version hiện hành của IP được cài đặt Sinh viên thực hiện Nguyễn Xuân Thanh Trang 12 Đồ án tốt nghiệp  IHL (4 bits): chỉ độ dài phần đầu (Internet Header Length) của datagram, tính theo đơn vị từ (word = 32 bits). Độ dài tối thiểu là 5 từ (20 bytes). 0 34 78 VE IH R L 15 16 31 Type of Service Total Length Indentification Header Time to live Fla Fragment gs offset Protocol Header Checksum Source Address Destination Address Khuôn dạng của IP datagram Options + Padding Data (max: 65.535 bytes)  Type of service (8 bits): đặc tả các tham số về dịch vụ, có dạng cụ thể như sau: 0 1 2 3 Precedenc 4 D 5 T 6 R e 7 Reser ved trong đó: Precedence (3 bits): chỉ thị về quyền ưu tiên gửi datagram, cụ thể là: 111 - Network Control (cao nhất) 011 - Flash 110 - Internetwork Control 010 - Immediate 101 - CRITIC/ECP 001 - Priority 100 - Flas Override 000 - Routine (thấp nhất) D (Delay) (1 bit): chỉ độ trễ yêu cầu D = 0 độ trễ bình thường Sinh viên thực hiện Nguyễn Xuân Thanh Trang 13 Đồ án tốt nghiệp D = 1 độ trễ thấp T (Throughput) (1 bit): chỉ thông lượng yêu cầu T = 0 thông lượng bình thường T = 1 thông lượng cao R (Reliability) (1 bit): chỉ độ tin cậy yêu cầu R = 0 độ tin cậy bình thường R = 1 độ tin cậy cao  Total Length (16 bits): chỉ độ dài toàn bộ datagram, kể cả phần header (tính theo đơn vị bytes).  Indentification (16 bits): cùng với các tham số khác (như Source Address và Destination Address) tham số này dùng để định danh duy nhất cho một datagram trong khoảng thời gian nó vẫn còn trên liên mạng.  Flags (3 bits): liên quan đến sự phân đoạn (fragment) các datagram, cụ thể là: 0 1 0 2 D M F F Bit 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 Fragment)  Fragment Offset (13 bits): chỉ vị trí của đoạn (fragment) ở trong datagram, tính theo đơn vị 64 bits, có nghĩa là mỗi đoạn (trừ đoạn cuối cùng) phải chứa một vùng dữ liệu có độ dài là bội số của 64 bits.  Time to live (8 bits): qui định thời gian tồn tại (tính bằng giây) của datagram trong liên mạng để tránh tình trạng một datagram bị quẩn trên liên mạng. Thời Sinh viên thực hiện Nguyễn Xuân Thanh Trang 14 Đồ án tốt nghiệp gian này được cho bởi trạm gửi và được giảm đi (thường qui ước là 1 đơn vị) khi datagram đi qua mỗi router của liên mạng.  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).  Header Checksum (16 bits): mã kiểm soát lỗi 16 bits theo phương pháp CRC, chỉ cho vùng header.  Source Address (32 bits): địa chỉ của trạm nguồn.  Destination Address (32 bits): địa chỉ của trạm đích.  Options (độ dài thay đổi): khai báo các options do người gửi yêu cầu.  Padding (độ dài thay đổi): vùng đệm, được dùng để đảm bảo cho phần header luôn kết thúc ở một mốc 32 bits.  Data (độ dài thay đổi): vùng dữ liệu, có độ dài là bội số của 8 bits, và tối đa là 65535 bytes. Sơ đồ địa chỉ hoá để định danh các trạm (host) trong liên mạng được gọi là địa chỉ IP 32 bits (32- bit- IP address). 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ể được biểu thị dưới dạng thập phân, bát phân, thập lục phân hoặc nhị phân. Cách viết phổ 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 host bất kỳ 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, với cấu trúc được chỉ ra trong hình bên dưới. 0 1 Lớp A 7 8 15 16 23 24 31 hostid netid Lớp B netid Hostid Lớp C Lớp D netid hostid Lớp E Sinh viên thực hiện Nguyễn Xuân Thanh Trang 15 Đồ án tốt nghiệp Multicast address Reserved for future use Cấu trúc của các lớp địa chỉ IP  Lớ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ớp nà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ớp này được dùng cho các mạng có ít trạm.  Lớp D dùng để gửi IP datagram tới một nhóm các host trên một mạng.  Lớp E dự phòng để dùng trong tương lai. Ví dụ: 00001 00000 00000 00000 010 000 000 000 = 10.0.0.0 (Líp A) netid = 10 = 128.3.2.3 (Líp B) netid = 128.3 hostid = 2.3 10000 00000 00000 00000 000 011 010 011 11000 00000 00000 11111 000 000 001 111 = 192.0.1.255 (Lớp C) netid = 192.0.1 hostid = 255 hướng đến tất cả các host Một địa chỉ có hostid (host identifier) bằng 0 được dùng để hướng tới mạng định danh bởi vùng netid (network identifier). Ngược lại, một địa chỉ có vùng hostid Sinh viên thực hiện Nguyễn Xuân Thanh Trang 16 Đồ án tốt nghiệp gồm toà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ũng gồm toàn số 1 thì nó hướng tới tất cả các host trong liên mạng. 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 subnet được lấy từ hostid, cụ thể đối với 3 lớp A, B, C như sau (hình bên dưới). Netid Subnetid (Lớp A) Hostid 0 31 7 8 0 15 16 Netid 23 24 Subnetid (Lớp B) 31 Hostid (Lớp C) 7 8 15 16 23 24 Netid Subn Host etid id Bổ sung vùng subnetid 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, và chúng không phải là các địa chỉ vật lý (hay địa chỉ MAC Media Access Control) của các trạm đó trên một mạng cục bộ (Ethernet,Token Ring...). Trên một mạng cục bộ như vậy, hai trạm chỉ có thể liên lạc vớ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ực hiện ánh xạ giữa địa chỉ IP (32 bits) và địa chỉ vật lý (48 bits) của một trạm. Giao thức ARP (Address Resolution Protocol) đã được xây dựng để chuyển đổi từ địa chỉ IP sang địa chỉ vật lý khi cần thiết. Ngược lại, giao thức RARP (Reverse Address Resolution Protocol) được dùng để chuyển đổi từ địa chỉ vật lý sang địa chỉ IP. Chú ý rằng cả ARP và RARP đều không phải là bộ phận của IP. IP sẽ dùng đến chúng khi cần. Một giao thức khác cũng liên quan trực tiếp đến IP, đó là ICMP (Internet Control Message Protocol). Giao thức này thực hiện truyền các thông báo điều khiển (báo cáo Sinh viên thực hiện Nguyễn Xuân Thanh Trang 17 Đồ án tốt nghiệp về các tình trạng lỗi trên mạng,...) giữa các gateway hoặc trạm của liên mạng. Tình trạng lỗi có thể là: một datagram không thể tới được đích của nó, hoặc một router không đủ bộ nhớ đệm để lưu và chuyển một datagram,... Một thông báo ICMP được tạo và 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. Chúng ta có thể tóm tắt các bước thực hiện bởi một thực thể IP như sau:  Đối với thực thể IP ở trạm nguồn, khi nhận được một primitive SEND từ tầng trên , nó thực hiện các bước sau đây: 1. Tạo một IP datagram dựa trên các tham số của primitive SEND 2. Tính checksum và ghép vào header của datagram. 3. Ra quyết định chọn đường: hoặc là trạm đích nằm trên cùng mạng hoặc một gateway sẽ được chọn cho chặng tiếp theo. 4. Chuyển datagram xuống tầng dưới để truyền qua mạng.  Đối với gateway, khi nhận được một datagram quá cảnh, nó thực hiện các động tác sau: 1. Tính checksum, nếu bất cập thì loại bỏ datagram. 2. Giảm giá trị của tham số Time-to-Live. Nếu thời gian đã hết thì loại bỏ datagram. 3. Ra quyết định chọn đường. 4. Phân đoạn datagram, nếu cần. 5. 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. 6. Chuyển datagram xuống tầng dưới để truyền qua mạng.  Cuối cùng, khi một datagram được nhận bởi thực thể IP ở trạm đích, nó sẽ thực hiện các công việc sau: 1. Tính checksum. Nếu bất cập thì loại bỏ datagram. 2. Tập hợp các đoạn của datagram (nếu có phân đoạn). Sinh viên thực hiện Nguyễn Xuân Thanh Trang 18 Đồ án tốt nghiệp 3. Chuyển dữ liệu và các tham số điều khiển lên tầng trên bằng cách dùng primitive DELIVER. 1.4. GIAO THỨC ĐIỀU KHIỂN TRUYỀN TCP bit 0 15 16 Source Port 31 Destination Port Sequence Number Acknowledgment Number D a t a o Reser f ved Window f s e t Checksum Urgent Pointer Options Padding TCP data Khuôn dạng của TCP segment. TCP là một giao thức kiểu ”có liên kết” (connection - oriented), nghĩa là cần phải thiết lập liên kết (logic) giữa một cặp thực thể TCP trước khi chúng trao đổi dữ liệu với nhau. Đơn vị dữ liệu sử dụng trong TCP được gọi là segment (đoạn dữ liệu), có khuôn dạng mô tả trong hình bên dưới. Các tham số trong khuôn dạng trên có ý nghĩa như sau: Sinh viên thực hiện Nguyễn Xuân Thanh Trang 19 Đồ án tốt nghiệp  Source Port (16 bits): số hiệu cổng của trạm nguồn.  Destination Port (16 bits): số hiệu cổng của trạm đích.  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 đ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 - Tham số này có vai trò như tham số N(R) trong HDLC.  Data offset (4 bits): số lượng từ - 32 bit (32 bit words) trong TCP header (tham số này chỉ ra vị trí 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 bit điều khiển): Tư trái sang phải: URG: vùng con trỏ khẩn (Urgent Pointer) 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ộ hoá các số hiệu tuần tự (sequence number) FIN: không còn dữ liệu từ trạm nguồn  Window (16 bits): 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 (16 bits): mã kiểm soát lỗi (theo phương pháp CRC) cho toàn bộ segment (header + data). Sinh viên thực hiện Nguyễn Xuân Thanh Trang 20
- Xem thêm -

Tài liệu liên quan