Cỏch cài đặt client TCP

Một phần của tài liệu Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - 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ử pot (Trang 25 - 151)

ng dơng client thc hiƯn các bước sau: 1. Gi hàm socket đĨ tạo mt socket. 2. Gi hàm connect đĨ ni vào server.

3. Gi các hàm gưi hay nhn dữ liƯu đĨ trao đỉi thông tin với server, ví dơ như các hàm send, recv.

4. Sau khi đã hoàn tt quá trình trao đỉi dữ liƯu, ng dơng client gi hàm closesocket đĨ đng socket đã tạo.

Hình minh ha các bước cần thit đĨ các ng dơng client và server giao tip với nhau như sau:

ng dơng Server ng dơng Client

Ni vào port cđa server Tạo mt socket

Kt buc socket với mt port (bind) ĐỈt socket trạng thái ch client ni vào Chp nhn kt ni cđa client

ChuyĨn đỉi dữ liƯu giữa client và server

Tạo mt socket

Các bước giao tip giữa client và server trong giao thc TCP

CHƯƠNG 3 : MỘT SỐ KHÁI NIỆM LIấN QUAN ĐẾN THƯ ĐIỆN TỬ 1.1. MAILSERVER

Theo mụ hỡnh hoạt động khỏch chủ, trỡnh chủ là một dịch vụ đúng vai trũ người chủ phục vụ trỡnh khỏch. Mail Server thật ra là một trỡnh mở socket lắng nghe cỏc yờu cầu (hay lệnh gửi mail) từ trỡnh khỏch đưa đến. Như đó núi, mail server sẽ tiếp nhận nội dung mail, phõn phối mail đến cỏc trỡnh chủ khỏc, cho phộp trỡnh khỏch truy cập

vào mỏy chủ để nhận mail về, bảo vệ mail…Chớnh vỡ vậy, trước khi nhận hay gửi mail cần phải biết được địa chỉ IP của mỏy chủ mail server. Địa chỉ này thường được gọi là mail host. Về khỏi niệm socket và địa chỉ IP sẽ được trỡnh bày ở phần sau.

1.2. GIAO THỨC GỬI MAIL (MAIL TRANSPORT PROTOCOL)

Để gửi mail đến mỏy chủ, trỡnh khỏch phải sử dụng một giao thức trũ chuyện với mail server. Tương tự trỡnh duyệt dựng giao thức HTTP để trũ chuyện với trỡnh chủ Web server. Cỏc trỡnh khỏch muốn bắt tay với trỡnh chủ mail server và gửi mail lờn mỏy chủ sẽ sử dụng giao thức SMTP (Simple Mail Transport Protocol). SMTP được hầu hết cỏc mail server trờn thế gới sử dụng. Địa chỉ IP của mỏy chủ nhận mail gửi đi thường được gọi là outgoing mail address. Trỡnh chủ thực hiện chức năng tiếp nhận mail theo giao thức SMTP gọi là SMTP Server, trỡnh khỏch dựng giao thức SMTP để gửi mail đến trỡnh chủ mail server gọi là SMTP Client.

1.3.GIỚI THIỆU KIẾN TRÚC DỊCH VỤ THƯ ĐIỆN TỬ 1.3.1. Kin trĩc và các dịch vơ

Các hƯ thng thư điƯn tư thưng bao gm hai hƯ thng con: các tác nhân ngưi sư dơng (the user agents ư gi tắt là UA), n cho phép chĩng ta đc và gưi thư, và các tác

nhân truyỊn thông điƯp (the message transfer agents ư gi tắt là MTA), n làm nhiƯm

vơ chuyĨn các thông điƯp t ngun đn đích. Các UAs là các chương trình cơc b hỗ trỵ da trên điỊu khiĨn bằng lƯnh, trình đơn menu hay dng phương pháp đ hoạ đĨ tương tác với hƯ thng thư điƯn tư. Các MTAs là các trình tiƯn ích hoạt đng ch đ nỊn (background) thc hiƯn các nhiƯm vơ cần thit như tip nhn thư điƯn tư và chuyĨn thư qua các hƯ thng.

ĐỈc biƯt, các hƯ thng thư điƯn tư hỗ trỵ năm chc năng cơ bản, đưỵc mô tả dưới đây:

1. Composition: Xư lý viƯc tạo các thông điƯp và trả li. Cho phép bt c trình soạn thảo nào c thĨ đưỵc sư dơng cho phần thân cđa thông điƯp, các hƯ thng c thĨ t n đảm trách viƯc đánh địa ch và ch s các trưng tiêu đỊ (header fields) đưỵc kèm theo cng với mỗi thông điƯp. Ví dơ như, khi trả li mt

thông điƯp , hƯ thng thư điƯn tư c thĨ tách địa ch cđa ngưi gưi t các thư đưỵc gưi đn và t đng chèn n vào các trưng thích hỵp trong phần hi âm (reply).

2. Transfer: Làm nhiƯm vơ chuyĨn các thông điƯp t ngưi gưi đn nơi ngưi nhn. Trong phần này, viƯc chuyĨn các thông điƯp yêu cầu phải thit lp mt kt ni đn đích (ngưi nhn) hay mt s thao tác cđa thit bị như xut thông điƯp và kt thĩc viƯc kt ni. HƯ thng thư điƯn tư làm viƯc này mt cách t đng mà không cần c mt s can thiƯp nào cđa ngưi sư dơng.

3. Reporting: Buc phải thc hiƯn đĨ báo cho ngưi gưi những gì xảy ra đi với thông điƯp va gưi là tình hun đã gưi đn đích chưa? hoỈc viƯc gưi đã bị hủ b? hoỈc thư đã bị lạc?.

4. Displaying: Những thông điƯp gưi đn đưỵc yêu cầu làm sao đĨ mi ngưi c thĨ đc đưỵc thư cđa h. Đôi khi ngưi ta yêu cầu quá trình chuyĨn đỉi hay mt trình hiĨn thị đỈc biƯt đĨ hỗ trỵ, ví dơ như, nu thông điƯp c dạng mt tƯp PostScript hay ting ni đưỵc s ha kèm theo trong thông điƯp gưi đn.

5. Disposition: Là bước cui cng liên quan đn những gì ngưi nhn thc hiƯn đi với thông điƯp sau khi đã nhn n. Những khả năng c thĨ là ném n đi trước khi đc, ném n đi sau khi đc, lưu n, v ..v. N cịng s c thĨ thu nhn đĨ đc lại với các thông điƯp đã đưỵc lưu lại, chuyĨn tip chĩng hoỈc xư lý chĩng bằng những phương pháp khác nhau khi đưỵc yêu cầu cđa ngưi sư dơng.

Thêm vào đ các dịch vơ này, hầu ht các hƯ thng thư điƯn tư cung cp nhiỊu đỈc tính nâng cao khác nhau. Mt s đỈc tính tiêu biĨu như, khi ngưi ta mun chuyĨn thư hay khi h ngh xa hơn vỊ các chi tit vỊ thi gian , c l h mun thư cđa h đưỵc chuyĨn tip, chính vì th mà hƯ thng thc hiƯn điỊu này mt cách t đng.

Hầu ht các hƯ thng cho phép ngưi sư dơng tạo các hp thư (mailboxes) đĨ lưu trữ các thư chuyĨn đn (incoming email). Các lƯnh đưỵc ngưi ta yêu cầu tạo và hđy b các hp thư, kiĨm tra các ni dung hp thư, chèn và xa các thông điƯp khi hp thư, v..v.

Những ngưi giám đc công ty thưng cần gưi mt thông điƯp đn mỗi ngưi trong s những ngưi cp dưới, những khách hàng, hay đn các nhà cung cp. Thì điỊu này đưa ra mt ý tưng vỊ danh sách thư (mailing list), n là mt danh sách các địa ch thư điƯn tư. Khi mt thông điƯp đưỵc gưi đn mailing list, các bản sao ging hƯt đưỵc phát đn mi ngưi c địa ch trên danh sách.

Mt ý tưng quan trng khác là thư điƯn tư đưỵc đăng ký, đĨ cho phép ngưi gưi (sender or originator) bit thư cđa h đã đn. ViƯc thông báo t đng cđa các thư không đưỵc phát đi mt cách luân phiên đĨ ngưi ta c thĨ bit. Trong bt k trưng hỵp nào, ngưi gưi nên c mt s điỊu khiĨn thông qua thông báo những gì xảy ra.

Các đỈc tính nâng cao khác là đng gưi (carbon copies), thư c mc ưu tiên cao

(highưpriority email), bảo mt thư (secret email) c ngha là thông điƯp đưỵc mã ha trước khi gưi đi, thay đỉi ngưi nhn thư (alternative recipients) nu ngưi đầu tiên không c khả

(a (b) Envelope Messag e B o d y Mr. Daniel Dumkopf 18 Willow Lane White Plains, NY 10604 United Gizmo 180 Main St Boston, MA 02120 April, 5, 2001 Subject: Invoice 1081 Dear Mr. Dumkopf,

Our computer records show that you still have not paid the above invoice of $0.00. Please send us a check for $0.00 promptly.

 Name: Mr. Daniel Dumkopf Street: 18 Willow Lane State: NY

Zip code: 10604 Priority: Urgent Encryption: None From: United Gizmo Address: 180 Main St Location: Boston, MA 02120 Date: April, 5, 2001 Subject: Invoice 1081 Dear Mr. Dumkopf,

Our computer records show that you still have not paid the above invoice of $0.00. Please send us a check for $0.00 promptly. Yous truly United Gizmo E n v e lo p e H e ad e r

năng nhn đưỵc, và các khả năng cho các cô thư ký vn dơng thư cđa các ông chđ cđa mình.

HiƯn nay thư điƯn tư đưỵc sư dơng rng rãi trong viƯc kinh doanh cho viƯc truyỊn thông tin trong công ty. N cho phép các công nhân xa hỵp tác vỊ các d án phc tạp, ngay cả những nơi phải mt nhiỊu thi gian mới đn đưỵc. Mt s công ty đã đánh giá rằng thư điƯn tư đã làm tăng năng sut sản xut cđa h lên 30 phần trăm (Perry and Adam 1992).

Mt khái niƯm quan trng trong tt cả các hƯ thng thư điƯn tư hiƯn đại là s phân biƯt giữa phong bì (envelope) và các ni dung bên trong cđa n. Phong bì bao bc (encapsulate) cả thông điƯp. N cha tt cả các thông tin cần thit cho viƯc truyỊn tải thông điƯp, như là địa ch đích, đ ưu tiên, và mc đ bảo mt , tt cả những cái đ đỊu khác biƯt với thông điƯp bên trong n. Các MTAs sư dơng phong bì cho viƯc định tuyn đưng truyỊn, điỊu này cịng ging như công viƯc cđa bưu điƯn làm.

Thông điƯp bên trong phong bì cha hai phần: phần đầu thư (header) và phần thân thư (body). Phần header cha các thông tin điỊu khiĨn cho các UAs. Phần thân là phần hoàn toàn dành cho ngưi nhn thư. Các phong bì và các thông điƯp đưỵc mô tả trong hình bên dưới.

1.3.2. Tác nhân ngưi sư dơng (The User Agent)

Các hƯ thng thư điƯn tư c hai phần cơ bản, như chĩng ta đã thy gm: phần UA

và phần MTA. Trong phần này chĩng ta s xét đn phần UA. Mt UA thưng là mt chương trình (đôi khi đưỵc gi là b phn đc thư) n nhn mt trong những lƯnh khác nhau như là cho mơc đích soạn thư, nhn thư, và hi đáp các thông điƯp, cịng như viƯc thao tác trên các hp thư (mailboxes). Mt s UA (User Agent) c giao diƯn trình đơn (menu) hay biĨu tưỵng (icon) khá hp dn mà n yêu cầu sư dơng chut hoỈc chp nhn các lƯnh 1 ký t t bàn phím c cng chc năng với menu và các icon.

ĐĨ gưi đi mt thông điƯp, ngưi sư dơng phải cung cp thông điƯp, địa ch đích và mt s tham s khác nu c (ví dơ như là mc ưu tiên hay bảo mt). Ngưi sư dơng c thĨ tạo thông điƯp với mt trình soạn thảo văn bản khác nhau, mt chương trình sư lý t hay với b soạn thảo đưỵc xây dng trên UA. Địa ch đích phải c mt định dạng mà làm sao cho UA c thĨ hiĨu đưỵc. NhiỊu UA tip nhn các địa ch DNS (Domain Name System) c dạng mailbox@location.

1.3.2.2. Đọc thư (Reading Email)

Khi UA đưỵc khi đng n kiĨm tra xem trong hp thư cđa ngưi sư dơng c thư gưi đn không trước khi hiĨn thị các th khác lên màn hình. Khi đ c l n s thông báo mt s các thông điƯp trong hp thư hay hiĨn thị mt dòng vắn tắt cđa mỗi thông điƯp và ch nhn lƯnh đĨ xư lý. Mt ví dơ hình bên dưới cho thy mt viƠn cảnh sau khi UA khi đng hiĨn thị những yêu cầu vắn tắt cđa các thông điƯp. Trong ví dơ này hp thư (mailbox) gm c tám thông điƯp.

Mỗi dòng hiĨn thị cha mt s trưng đưỵc trích ra t phong thư hay phần đầu (header) cđa tng thông điƯp đưỵc định vị trong hp thư. Trong mt hƯ thng thư điƯn tư đơn giản, s la chn cđa các trưng hiĨn thị đưỵc ngưi ta xây dng thành mt chương trình. Trong các hƯ thng phc tạp hơn, ngưi sư dơng c thĨ xác định cho các trưng nào đưỵc hiĨn thị bằng cách cung cp mt hiƯn trạng ngưi sư dơng (User Profile), hay mt tƯp mô tả định dạng hiĨn thị. Trong ví dơ này, trưng đầu tiên là s thông điƯp c trong hp thư. Trưng th hai, là các c c thĨ cha mt kí t K, c ngha là thông điƯp cị đã đưỵc đc k trước ri và đưỵc lưu lại trong hp thư; kí t A c ngha là thư này đã đưỵc hi âm ri; ký t F (c thĨ c), c ngha là thư này đưỵc chuyĨn tip đn ngưi khác. Các c khác nữa cịng c thĨ đưỵc đưa vào ngoài những c này.

# Flags Bytes Sender Subject

2 KA 6348 Radia Comments on material you sent me

3 KF 4519 Amy N. Wong Request for information

4 1236 Bal Deadline for grant proposal

5 103610 Kaashoek Text of DCS paper

6 1223 Emily E. Pointer to WWW page

7 3110 Saniya Referee reports for the page

8 1204 Dmr Re: My student’s visit

HiĨn thị các ni dung cđa hp thư.

Trưng th ba cho bit chiỊu dài cđa thông điƯp và trưng th tư cho bit ai là ngưi gưi thông điƯp. Vì trưng này đưỵc trích ra t các thông điƯp rt đơn giản nên trưng này c thĨ cha các tên, h tên đầy đđ, các tên vit tắt, các tên đăng nhp, hay bt c th gì mà ngưi gưi c thĨ đỈt vào trong trưng này. Cui cng là trưng chđ đỊ thư (Subject) cho bit mt câu vắn tắt vỊ những gì trong ni dung thông điƯp. Những ngưi nào quên điỊn vào trưng này thì thưng đưỵc cho là những câu trả li cho thư cđa h là không chĩ ý đn mc ưu tiên cao nht.

Sau khi các phần đầu đã đưỵc hiĨn thị, ngưi sư dơng c thĨ thc hiƯn bt c lƯnh nào c thĨ. Mt chn la tiêu biĨu đưỵc liƯt kê bảng bên dưới (hình bên dưới) là mt ví dơ khi mt ngưi sư dơng bằng hƯ thng Mmdf cđa hƯ điỊu hành UNIX. C mt s lƯnh yêu cầu c tham s. Ký hiƯu # c ngha là ch s cđa mt thông điƯp (hay c thĨ c nhiỊu thông

điƯp) đưỵc chp nhn. Tương t, mu t a c thĨ đưỵc sư dơng c ngha cho tt cả các thông điƯp.

1.3.2.3.Định dạng thụng điệp (Message Formats)

Chĩng ta bây gi hãy quay đn t giao diƯn ngưi sư dơng đn định dạng cđa các thông điƯp thư điƯn tư. Trước tiên chĩng ta xét thư điƯn tư da trên bản mã ASCII sư dơng chun RFC 822 (Request for Comments). Sau đ xét đn các m rng đa phương tiƯn cho chun RFC 822.

1.3.2.4.Chuẩn RFC 822

Các thông điƯp bao gm mt phong bì gc (đưỵc mô tả trong chun RFC 821), mt s các trưng cho phần đầu (header), mt dòng đĨ trng và sau đ là phần thân (body). Mỗi trưng header bao gm các dòng văn bản ASCII cha tên trưng, du hai chm, và cho hầu ht các trưng đỊu c mt giá trị. RFC 822 là mt chun cị và giữa các trưng header cđa phong bì (envelope) không phân biƯt r ràng như mt chun mới khác. Khi sư dơng, thông thưng UA xây dng mt thông điƯp và đưa n qua b phn tác nhân truyỊn thông điƯp (message transfer agents ư MTA), đây n dng mt s các trưng header đĨ xây dng mt envelope thc s, thông điƯp đưỵc thay đỉi bi cái cị đi mt chĩt cng với envelope.

Command Parameter Description

H # Display header(s) on the screen

C Display current header only

T # Type message(s) on the screen

F # Forward message(s)

A # Answer message(s)

D # Delete message(s)

U # Undelete previously deleted message(s)

M # Move message(s) to another mailbox

K # Keep message(s) after exiting

R Mailbox Read a new mailbox

N Go to the next message and display it

B Backup to the previous message and display it

G # Go to a specific message but do not display it

E Exit the mail system and update the mailbox

Các lƯnh điỊu khiĨn thư đỈc biƯt

Các trưng header chđ yu liên quan đn viƯc chuyĨn giao thông điƯp đưỵc liƯt kê dưới bảng sau. Trưng To: trưng này cho bit địa ch DNS cđa ngưi nhn đầu tiên. Trưng hỵp nhiỊu ngưi nhn cịng c thĨ cho phép. Trưng Cc: cho bit địa ch cđa những ngưi nhn

k tip (còn gi là địa ch đng gưi). Trong các thut ngữ cđa viƯc phát thư, không c s phân biƯt giữa những ngưi nhn th nht và ngưi nhn th hai. Thut ngữ Cc (Carbon copy) là mt mu đã đưỵc xác định, vì máy tính không sư dơng các trang giy bản sao. Trưng

Bcc: (Blind carbon copy) ging như trưng Cc: ch tr là dòng này đưỵc xa khi tt cả các bản sao đưỵc gưi đn những ngưi nhn đầu tiên và ngưi nhn th hai. ĐỈc tính này cho phép ngưi ta gưi các bản sao đn những ngưi trong nhm th ba mà trong đ không c ngưi th nht và ngưi th hai bit.

Header Meaning

To: Email address(es) of primary recipient(s)

Cc: Email address(es) of secondary recipient(s)

Bcc: Email address(es) for blind carbon copies

From: Person or people who created the message

Sender: Email address of the actual sender

Received: Line added by each transfer agent along the route

ReturnưPath: Can be used to identify a path back to the sender

Hai trưng k tip, From:Sender: cho bit đĨ phân biƯt ngưi vit và ngưi gưi thông điƯp. Hai trưng này hoàn toàn không ging nhau. Ví dơ mt nhà quản trị doanh nghiƯp c thĨ vit mt thông điƯp nhưng cô thư ký là ngưi tht s truyỊn n đi. Trong trưng hỵp này, ngưi quản trị phải đưỵc liƯt kê vào trong trưng From: và cô thư ký trong trưng Sender:.

Header Meaning

Date: The date and time the message was sent

Một phần của tài liệu Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - 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ử pot (Trang 25 - 151)