1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án lập trình mạng

39 1,5K 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 1,16 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Với nhu cầu đó, nhóm chúng em đã chọn đề tài “Sử dụng kỹ thuật lập trìnhSocket để xây dựng chương trình Chat qua mạng Lan”, bằng việc ứng dụng những gì đãhọc trong môn Lập trình mạng nân

Trang 1

KHOA KHOA HỌC MÁY TÍNH



BÁO CÁO ĐỒ ÁN MÔN HỌC LẬP TRÌNH MẠNG NÂNG CAO

Đề tài : Sử dụng kỹ thuật lập trình Socket xây dựng

chương trình chat qua mạng lan

Giáo viên: Nguyễn VũLớp : MM03A – Nhóm 5Sinh viên thực hiện :

- Lê Long Bảo

- Trần Ngọc Khải

- Phạm Thị Thảo

Đà Nẵng, tháng 2 năm 2012

Trang 2

LỜI MỞ ĐẦU

Trong thời đại công nghệ ngày nay, việc ứng dụng công nghệ thông tin sẽ giúpcông việc giải quyết một cách suôn sẻ và trôi chảy hơn Việc trao đổi thông tin giữa cácngười dùng với nhau, hoặc người dùng muốn chia sẽ, trò chuyện với nhau là một nhu cầucấp thiết Với nhu cầu đó, nhóm chúng em đã chọn đề tài “Sử dụng kỹ thuật lập trìnhSocket để xây dựng chương trình Chat qua mạng Lan”, bằng việc ứng dụng những gì đãhọc trong môn Lập trình mạng nâng cao là một trong những môn giúp người lập trìnhphát triển các ứng dụng cho doanh nghiệp, cũng như giúp các máy tính có thể trao đổi,truyền tin nhắn hoặc thông điệp với nhau

Đồ án gồm ba chương:

Chương 1: Tổng quan về lập trình mạng.

Chương 2: Tổng quan về lập trình Socket.

Chương 3: Xây dựng và thiết kế chương trình.

Kết luận và tài liệu tham khảo

Mặc dù có tìm hiểu kỹ, và kiểm tra chương trình chạy thành công, nhưng chắcchắn vẫn không tránh khỏi sai sót nhất định Rất mong nhận được sự góp ý và phê bình từthầy cô cũng như các bạn

Để hoàn thành đồ án này, nhóm chúng em xin cảm ơn thầy Nguyễn Vũ đã tận tìnhhướng dẫn nhóm chúng em trong thời gian qua

Xin chân thành cảm ơn

Đà nẵng, tháng 3 năm 2012 Nhóm 5 - MM03A

Trang 3

MỤC LỤC

DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT

Trang 4

DANH MỤC HÌNH VẼ

Trang 5

CHƯƠNG 1: TỔNG QUAN VỀ LẬP TRÌNH MẠNG

1.1 TỔNG QUAN VỀ MẠNG MÁY TÍNH

1.1.1 Khái niệm về mạng máy tính

Mạng máy tính là tập hợp các máy tính độc lập kết nối với nhau theo một chuẩn kỹthuật nhất định Hai máy tính gọi là nối mạng với nhau nếu chúng có khả năng trao đổithông tin Phương tiện kết nối có thể là cáp đồng, cáp quang, sóng viba, hồng ngoại hoặc

vệ tinh

Mạng máy tính có nhiều kích cỡ, cấu trúc và hình thức tổ chức khác nhau tùy thuộcvào từng ứng dụng cụ thể của mạng máy tính Tuy nhiên, chúng có thể phân thành hailoại chính là: mạng có cấu trúc ngang hàng và mạng có cấu trúc Client – Server (máytrạm – máy chủ)

Hình 1.1

Mạng ngang hàng

Trang 6

Hình 1.2 Mạng Client – ServerTrên thực tế, không có một phương pháp phân loại thống nhất cho tất cả các loại mạngmáy tính, tuy nhiên khi xét đến một mạng máy tính người ta quan tâm đến hai đặc điểmquan trọng: phương thức truyền dẫn và quy mô mạng.

Có hai phương thức truyền dẫn được sử dụng phổ biến đó là: truyền quảng bá vàtruyền điểm-nối-điểm Truyền quảng bá là phương thức sử dụng kênh thông tin đơnchung cho tất cả các máy trạm trên mạng Gói dữ liệu được gửi từ một máy trạm mongmuốn thì gói dữ liệu đó sẽ được xử lý, nếu không sẽ được bỏ qua Một hệ thống mạngtruyền quảng bá hỗ trợ việc truyền dữ liệu đến một tập hợp các máy trạm, thì được gọi làtruyền đa điểm

Đối với phương thức truyền điểm-nối-điểm, mạng máy tính sử dụng phương thức nàybao gồm tập hợp nhiều kết nối giữa các máy trạm Gói dữ liệu từ đầu phát dữ liệu đến đầuthu dữ liệu có thể sẽ đi qua một hoặc nhiều máy trạm trung gian theo nhiều tuyến truyềndẫn khác nhau với độ dài khác nhau

Trường hợp mạng máy tính sử dụng phương thức truyền điểm-nối-điểm với một đầuphát và một đầu thu được gọi là phương thức truyền unicasting

Phương thức phân loại thứ hai dựa vào quy mô mạng hay kích thước vật lý của mạng.Theo quy mô từ nhỏ đến lớn ta có các loại mạng sau:

- Mạng cá nhân (Personal Are Network-PAN)

- Mạng LAN (Local Area Network)-mạng cục bộ: kết nối các nút trên một phạm vigiới hạn Phạm vi này có thể là một công ty, hay một tòa nhà

Trang 7

- Mạng WAN (Wide Area Network): nhiều mạng LAN kết nối với nhau tạo thànhmạng WAN

- MAN (Metropolitan Area Network), tương tự như WAN, nó cũng kết nối nhiềumạng LAN Tuy nhiên, một mạng MAN có phạm vi là một thành phố hay một đô thịnhỏ MAN sử dụng các mạng tốc độ cao để kết nối các mạng LAN của trường học, chínhphủ, công ty, , bằng cách sử dụng các liên kết nhanh tới từng điểm như cáp quang

1.2 MÔ HÌNH PHÂN TẦNG

1.2.1 Mô hình OSI

Hình 1.3 Mô hình OSI

Mô hình OSI có 7 lớp và được thiết kế theo các nguyên tắc sau:

- Một lớp được tạo ra tương ứng với một khái niệm trừu tượng

- Một lớp thực hiện một chức năng hoàn chỉnh nào đó

- Chức năng của mỗi lớp phải được chọn theo xu hướng phù hợp với các giaothứcđã được chuẩn hóa

- Biên của các lớp phải được thiết kế sao cho tối thiểu hóa được lượng thông tintruyền qua các giao diện

Trang 8

- Số lượng các lớp không quá ít để đảm bảo thực hiện đủ các chức năng cần thiết vàkhông được quá nhiều để kiến trúc của nó không trở nên cồng kềnh

1.2.1.1 Lớp vật lý

Lớp vật lý bao gồm việc truyền tải các tín hiệu trong môi trường từ máy tính này đếnmáy tính khác Lớp này gồm có các chi tiết kỹ thuật về các đặc tính điện và cơ như: mứcđiện áp, định thời tín hiệu, tốc độ dữ liệu, độ dài truyền tải lớn nhất và các kết nối vật lýcủa thiết bị mạng Để một thiết bị hoạt động chỉ trong lớp vật lý, nó sẽ không có bất kỳkiến thức nào về dữ liệu mà nó truyền tải Một thiết bị lớp vật lý chỉ truyền tải hoặc nhận

dữ liệu một cách đơn giản.

- Cơ chế truy cập đường truyền

- Thông báo lỗi

- Thứ tự phân phối frame

- Điều khiển dòng

Tại lớp data link, các bít đến từ lớp vật lý được chuyển thành các frame dữ liệu bằngcách dùng một số nghi thức tại lớp này Lớp data link được chia thành hai lớp con:

- Lớp con LLC (logical link control)

- Lớp con MAC (media access control)

Lớp con LLC là phần trên so với các giao thức truy cập đường truyền khác, nó cungcấp sự mềm dẻo về giao tiếp Bởi vì lớp con LLC hoạt động độc lập với các giao thứctruy cập đường truyền, cho nên các giao thức lớp trên hơn (ví dụ như IP ở lớp mạng) cóthể hoạt động mà không phụ thuộc vào loại phương tiện LAN Lớp con LLC có thể lệthuộc vào các lớp thấp hơn trong việc cung cấp truy cập đường truyền Lớp con MACcung cấp tính thứ tự truy cập vào môi trường LAN Khi nhiều trạm cùng truy cập chia sẻmôi trường truyền, để định danh mỗi trạm, lớp cho MAC định nghĩa một trường địa chỉphần cứng, gọi là địa chỉ MAC address

Trang 9

Địa chỉ MAC là một con số đơn nhất đối với mỗi giao tiếp LAN (card mạng) Lớp vật

lý (Physical Layer): định nghĩa các qui cách về điện, cơ, thủ tục và các đặc tả chức năng

để kích hoạt, duy trì và dừng một liên kết vật lý giữa các hệ thống đầu cuối

Một số các đặc điểm trong lớp vật lý này bao gồm:

1.2.1.4 Lớp vận chuyển

Lớp vận chuyển phân đoạn dữ liệu từ hệ thống máy truyền và tái thiết lập dữ liệu vàomột luồng dữ liệu tại hệ thống máy nhận đảm bảo rằng việc bàn giao các thông điệp giữacác thiết bị đáng tin cậy Dữ liệu tại lớp này gọi là segment

Lớp này thiết lập, duy trì và kết thúc các mạch ảo đảm bảo cung cấp các dịch vụ sau:

- Xếp thứ tự các phân đoạn: khi một thông điệp lớn được tách thành nhiều phânđoạn nhỏ để bàn giao, lớp vận chuyển sẽ sắp xếp thứ tự các phân đoạn trước khi ráp nốicác phân đoạn thành thông điệp ban đầu

- Kiểm soát lỗi: khi có phân đoạn bị thất bại, sai hoặc trùng lắp, lớp vận chuyển sẽyêu cầu truyền lại

- Kiểm soát luồng: lớp vận chuyển dùng các tín hiệu báo nhận để xác nhận Bên gửi

sẽ không truyền đi phân đoạn dữ liệu kế tiếp nếu bên nhận chưa gởi tín hiệu xác nhậnrằng đã nhận được phân đoạn dữ liệu trước đó đầy đủ

Trang 10

1.2.1.5 Lớp phiên

Lớp này có chức năng thiết lập, quản lý, và kết thúc các phiên thông tin giữa hai thiết

bị truyền nhận Lớp phiên cung cấp các dịch vụ cho lớp trình bày Lớp Session cung cấp

sự đồng bộ hóa giữa các tác vụ người dùng bằng cách đặt những điểm kiểm tra vào luồng

dữ liệu Bằng cách này, nếu mạng không hoạt động thì chỉ có dữ liệu truyền sau điểmkiểm tra cuối cùng mới phải truyền lại Lớp này cũng thi hành kiểm soát hội thoại giữacác quá trình giao tiếp, điều chỉnh bên nào truyền, khi nào, trong bao lâu Ví dụ như:RPC, NFS, Lớp này kết nối theo ba cách: Haft duplex,Simplex, Full-duplex

1.2.1.6 Lớp trình diễn

Lớp này chịu trách nhiệm thương lượng và xác lập dạng thức dữ liệu được trao đổi

Nó đảm bảo thông tin mà lớp ứng dụng của một hệ thống đầu cuối gởi đi, lớp ứng dụngcủa hệ thống khác có thể đọc được Lớp trình bày thông dịch giữa nhiều dạng dữ liệukhác nhau thông qua một dạng chung, đồng thời nó cũng nén và giải nén dữ liệu

1.2.1.7 Lớp ứng dụng

Lớp ứng dụng tương tác trực tiếp với người sử dụng và nó cung cấp các dịch vụ mạngcho các ứng dụng của ngời sử dụng nhưng không cung cấp dịch vụ cho các lớp khác Lớpnày thiết lập khả năng liên lạc giữa những ngời sử dụng, đồng bộ và thiết lập các quytrình xử lý lỗi và đảm bảo tính toàn vẹn của dữ liệu

1.2.2 Mô hình TCP/IP

Hình 1.4 Mô hình TCP/IP

Sự ra đời của họ giao thức TCP/IP gắn liền với sự ra đời của Internet mà tiền thân làmạng ARPAnet (Advanced Research Projects Agency) do Bộ Quốc phòng Mỹ tạo ra

Trang 11

Đây là bộ giao thức được dùng rộng rãi nhất vì tính mở của nó Hai giao thức được dùngchủ yếu ở đây là TCP (Transmission Control Protocol) và IP (Internet Protocol) Chúng

đã nhanh chóng được đón nhận và phát triển bởi nhiều nhà nghiên cứu và các hãng côngnghiệp máy tính với mục đích xây dựng và phát triển một mạng truyền thông mở rộngkhắp thế giới mà ngày nay chúng ta gọi là Internet

TCP/IP có cấu trúc tương tự như mô hình OSI, tuy nhiên để đảm bảo tính tương thíchgiữa các mạng và sự tin cậy của việc truyền thông tin trên mạng, bộ giao thức TCP/IPđược chia thành 2 phần riêng biệt: giao thức IP sử dụng cho việc kết nối mạng và giaothức TCP để đảm bảo việc truyền dữ liệu một cách tin cậy

1.2.2.1 Lớp ứng dụng

Tại mức cao nhất này, người sử dụng thực hiện các chương trình ứng dụng truy xuấtđến các dịch vụ hiện hữu trên TCP/IP Internet Một ứng dụng tương tác với một trongnhững protocol ở mức giao vận (transport) để gửi hoặc nhận dữ liệu Mỗi chương trìnhứng dụng chọn một kiểu giao vận mà nó cần, có thể là một dãy tuần tự từng thông điệphoặc một chuỗi các byte liên tục Chương trình ứng dụng sẽ gửi dữ liệu đi dưới dạng nào

đó mà nó yêu cầu đến lớp giao vận

1.2.2.2 Lớp giao vận

Nhiệm vụ cơ bản của lớp giao vận là cung cấp phưng tiện liên lạc từ một chương trìnhứng dụng này đến một chưng trình ứng dụng khác Việc thông tin liên lạc đó thường đượcgọi là end-to-end Mức chuyên trở có thể điều khiển luông thông tin Nó cũng có thể cungcấp sự giao vận có độ tin cậy, bảo đảm dữ liệu đến nơi mà không có lỗi và theo đúng thứ

tự Để làm được điều đó, phần mềm protocol lớp giao vận cung cấp giao thức TCP, trongquá trình trao đổi thông tin nơi nhận sẽ gửi ngược trở lại một xác nhận (ACK) và nơi gửi

sẽ truyền lại những gói dữ liệu bị mất Tuy nhiên trong những môi trường truyền dẫn tốtnhư cáp quang chẳng hạn thì việc xy ra lỗi là rất nhỏ Lớp giao vận có cung cấp một giaothức khác đó là UDP

1.2.2.3 Lớp internet

Nhiệm vụ cơ bản của lớp này là xử lý việc liên lạc của các thiết bị trên mạng Nó nhậnđược một yêu cầu để gửi gói dữ liệu từ lớp cùng với một định danh của máy mà gói dữ

Trang 12

liệu phi được gửi đến Nó đóng segment vào trong một packet, điền vào phần đầu củapacket, sau đó sử dụng các giao thức định tuyến để chuyển gói tin đến được đích của nóhoặc trạm kế tiếp Khi đó tại nơi nhận sẽ kiểm tra tính hợp lệ của chúng, và sử dụng tiếpcác giao thức định tuyến để xử lý gói tin Đối với những packet được xác định thuộc cùngmạng cục bộ, phần mềm Internet sẽ cắt bỏ phần đầu của packet, và chọn một trong cácgiao thức lớp chuyên trở thích hợp để xử lý chúng Cuối cùng, lớp Internet gửi và nhậncác thông điệp kiểm soát và sử lý lỗi ICMP.

1.2.2.4 Lớp giao tiếp mạng

Lớp thấp nhất của mô hình TCP/IP chính là lớp giao tiếp mạng, có trách nhiệm nhậncác IP datagram và truyền chúng trên một mạng nhất định Người ta lại chia lớp giao tiếpmạng thành 2 lớp con là:

- Lớp vật lý: Lớp vật lý làm việc với các thiết bị vật lý, truyền tới dòng bit 0, 1 từ nigửi đến nơi nhận

- Lớp liên kết dữ liệu: Tại đây dữ liệu được tổ chức thành các khung (frame) Phầnđầu khung chứa địa chỉ và thông tin điều khiển, phần cuối khung dành cho viêc phát hiệnlỗi

1.3 Mô hình truyền thông trong cấu trúc mạng

1.3.1 Nguyên tắc truyền thông

Để một mạng máy tính trở một môi trường truyền dữ liệu thì nó cần phải có những yếu tố sau:

- Các hệ thống được liên kết với nhau theo một cấu trúc kết nối (topology) nào đó

- Việc chuyển dữ liệu từ máy tính này đến máy tính khác do mạng thực hiện thôngqua những quy định thống nhất gọi là giao thức của mạng

- Phân chia hoạt động truyền thông của hệ thống thành nhiều lớp theo các nguyêntắc nhất định

- Việc xét các module một cách độc lập với nhau cho phép giảm độ phức tạp choviệc thiết kế và cài đặt Phương pháp này được sử dụng rộng rãi trong việc xây dựngmạng và các chương trình truyền thông và được gọi là phương pháp phân tầng (layer)

1.3.2 Nguyên tắc của phương pháp phân tầng

Trang 13

Mỗi hệ thống thành phần trong mạng được xây dựng như một cấu trúc nhiều tầng vàđều có cấu trúc giống nhau như: số lượng tầng và chức năng của mỗi tầng.

Các tầng nằm chồng lên nhau, dữ liệu được chỉ trao đổi trực tiếp giữa hai tầng kề nhau

từ tầng trên xuống tầng dưới và ngược lại

Cùng với việc xác định chức năng của mỗi tầng chúng ta phải xác định mối quan hệgiữa hai tầng kề nhau Dữ liệu được truyền đi từ tầng cao nhất của hệ thống truyền lầnlượt đến tầng thấp nhất sau đó truyền qua đường nối vật lý dưới dạng các bit tới tầng thấpnhất của hệ thống nhận, sau đó dữ liệu được truyền ngược lên lần lượt đến tầng cao nhấtcủa hệ thống nhận

Chỉ có hai tầng thấp nhất có liên kết vật lý với nhau còn các tầng trên cùng thứ tư chỉ

có các liên kết logic với nhau Liên kết logic của một tầng được thực hiện thông qua cáctầng dưới và phải tuân theo những quy định chặt chẽ, các quy định đó được gọi giao thứccủa tầng

Hình 1.5 Mô hình truyền thông đơn giản 3 tầngTrong kiến trúc phân tầng, một số mô hình được phát triển

- Mô hình tham chiếu kết nối các hệ thống mở OSI

- Mô hình Internet : TCP/IP

Xét trên phương diện lập trình với máy tính, ta xét mô hình phân tầng thu gọn: Nóichung trong truyền thông có sự tham gia của các thành phần: các chương trình ứng dụng,các chương trình truyền thông, các máy tính và các mạng Các chương trình ứng dụng làcác chương trình của người sử dụng được thực hiện trên máy tính và có thể tham gia vào

Trang 14

quá trình trao đổi thông tin giữa hai máy tính Trên một máy tính với hệ điều hành đanhiệm (như Windows, UNIX) thường được thực hiện đồng thời nhiều ứng dụng trong đó

có những ứng dụng liên quan đến mạng và các ứng dụng khác Các máy tính được nối vớimạng và các dữ liệu được trao đổi thông qua mạng từ máy tính này đến máy tính khác.Việc gửi dữ liệu được thực hiện giữa một ứng dụng với một ứng dụng khác trên haimáy tính khác nhau thông qua mạng được thực hiện như sau: Ứng dụng gửi chuyển dữliệu cho chương trình truyền thông trên máy tính của nó, chương trình truyền thông sẽ gửichúng tới máy tính nhận Chương trình truyền thông trên máy nhận sẽ tiếp nhận dữ liệu,kiểm tra nó trước khi chuyển giao cho ứng dụng đang chờ dữ liệu

Với mô hình truyền thông đơn giản người ta chia chương trình truyền thông thành batầng không phụ thuộc vào nhau là: tầng ứng dụng, tầng giao vận và tầng tiếp cận mạng

Tầng tiếp cận mạng liên quan tới việc trao đổi dữ liệu giữa máy tính và mạng mà nó

được nối vào Để dữ liệu đến được đích máy tính gửi cần phải chuyển địa chỉ của máytính nhận cho mạng và qua đó mạng sẽ chuyển các thông tin tới đích Ngoài ra máy gửi

có thể sử dụng một số phục vụ khác nhau mà mạng cung cấp như gửi ưu tiên, tốc độ cao.Trong tầng này có thể có nhiều phần mềm

Tầng giao vận: thực hiện quá trình truyền thông end-to-end giữa 2 ứng dụng không

liên quan tới mạng và nằm ở trên tầng tiếp cận mạng Tầng truyền dữ liệu không quantâm tới bản chất các ứng dụng đang trao đổi dữ liệu mà quan tâm tới làm sao cho các dữliệu được trao đổi một cách an toàn Tầng truyền dữ liệu đảm bảo các dữ liệu đến đượcđích và đến theo đúng thứ tự mà chúng được xử lý Trong tầng truyền dữ liệu người taphải có những cơ chế nhằm đảm bảo sự chính xác đó và rõ ràng các cơ chế này khôngphụ thuộc vào bản chất của từng ứng dụng và chúng sẽ phục vụ cho tất cả các ứng dụng

Tầng ứng dụng sẽ chứa các module phục vụ cho tất cả những ứng dụng của người sử

dụng Với các loại ứng dụng khác nhau (như là truyền file, truyền thư mục) cần các

nhau

Trang 15

Hình 1.6 Trao đổi giữa các tầng

1.3.3 Địa chỉ IP

Mỗi địa chỉ IP có độ dài 32 bits (đối với IP4) được tách thành 4 vùng (mỗi vùng 1byte), 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 để tách giữa các vùng.Địa chỉ IP là để định danh duy nhất cho một host bất kỳ trên liên mạng Khuôn dạng địachỉ IP: mỗi host trên mạng TCP/IP được định danh duy nhất bởi một địa chỉ có khuôndạng <Network Number, Host number>

Do tổ chức và độ lớn của các mạng con của liên mạng có thể khác nhau, người ta chiacác địa chỉ IP thành 5 lớp ký hiệu A,B,C, D, E Các bit đầu tiên của byte đầu tiên đượcdùng để định danh lớp địa chỉ (0-lớp A; 10 lớp B; 110 lớp C; 1110 lớp D; 11110 lớpE).Subneting

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 3 lớp A, B, C

Trang 16

CHƯƠNG 2: TỔNG QUAN VỀ LẬP TRÌNH SOCKET

2.1 LẬP TRÌNH MẠNG VỚI TCP SOCKET

2.1.1 Mô hình giao thức

TCP là một giao thức "có liên kết" (connection - oriented), nghĩa là cần phải thiếtlập liê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 2.1 Kết nối 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) duynhất trong liên mạng Dịch vụ TCP được cung cấp nhờ một liên kết logic giữa một cặpđầu nối TCP/IP Một đầu nối TCP/IP có thể tham gia nhiều liên kết với các đầu nốiTCP/IP ở xa khác nhau Trước khi truyền dữ liệu giữa 2 trạm cần phải thiết lập mộtliên kết TCP giữa chú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

Trang 17

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 yêu cầu để yêu cầu, để trả lời Trong mỗi hàm còn có cáctham số dành cho việc trao đổi dữ liệu.

2.1.2 Thiết lập kết nối

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 2 phương thức: chủ động (active) hoặc bị động(passive)

o 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ếtgửi đến từ xa thông qua một đầu nối TCP/IP (tại chỗ) Người sử dụng dùnghàm passive Open có khai báo cổng TCP và các thông số khác (mức ưu tiên,mức an toàn)

o 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ớimộ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 PassiveOpen tương ứng đã được thực hiện tại đầu nối TCP/IP ở xa đó

Trang 18

o 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được dùng để tham chiếu tới liên kết đó (Trong trường hợp nếu TCP không thể

Trang 19

thiết lập được liên kết yêu cầu thì nó phải gửi tham số Open Failure để thôngbáo.)

o Khi TCP thiết lập được liên kết yêu cầu nó gửi tham số Open Success đượcdùng để thông báo liên kết đã được thiết lập thành công Thông báo này dượcchuyể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

2.1.3 Truyền và nhận dữ liệu

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

o Hàm Send: Dữ liệu được gửi xuống TCP theo các khối (block) Khi nhận được

một khối dữ liệu, TCP sẽ lưu trữ trong bộ đệm (buffer) Nếu cờ PUSH đượcdựng thì toàn bộ dữ liệu trong bộ đệm được gửi, kể cả khối dữ liệu mới đến sẽđược gửi đi Ngược lại cờ PUSH không được dựng thì dữ liệu được giữ lạitrong 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ệunữa để gửi đi với hiệu quả hơn)

o Hàm receive: Ở trạm đích dữ liệu sẽ được TCP lưu trong bộ đệm gắn với mỗi

liên kết Nếu dữ liệu được đánh dấu với một cờ PUSH thì toà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òn nếu dữ liệu đến không được đánh dấu với cờ PUSH thì TCP chờ tớikhi thích hợp mớ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ộcvào việ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ụngcần phải sử lý khẩn cấp dữ liệu đó

2.1.4 Đóng liên kết

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

Ngày đăng: 19/10/2014, 08:30

HÌNH ẢNH LIÊN QUAN

Hình 1.3. Mô hình OSI - Đồ án lập trình mạng
Hình 1.3. Mô hình OSI (Trang 7)
Hình 1.5. Mô hình truyền thông đơn giản 3 tầng Trong kiến trúc phân tầng, một số mô hình được phát triển - Đồ án lập trình mạng
Hình 1.5. Mô hình truyền thông đơn giản 3 tầng Trong kiến trúc phân tầng, một số mô hình được phát triển (Trang 13)
Hình 2.1. Kết nối TCP Mộ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ất trong liên mạng - Đồ án lập trình mạng
Hình 2.1. Kết nối TCP Mộ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ất trong liên mạng (Trang 16)
Bảng liệt k  ê   một và  i cổ  ng TCP p  hổ biến. - Đồ án lập trình mạng
Bảng li ệt k ê một và i cổ ng TCP p hổ biến (Trang 17)
Bảng dưới đây tổng kết những sự kác nhau giữa hai giao thức TCP và UDP: - Đồ án lập trình mạng
Bảng d ưới đây tổng kết những sự kác nhau giữa hai giao thức TCP và UDP: (Trang 24)
Hình 3.1. Quá trình kết nối - Đồ án lập trình mạng
Hình 3.1. Quá trình kết nối (Trang 34)
Hình 3.3. Chương trình Client 3.2.1.3. Sử dụng chương trình - Đồ án lập trình mạng
Hình 3.3. Chương trình Client 3.2.1.3. Sử dụng chương trình (Trang 35)
Hình 3.4. Client kết nối đến Server - Đồ án lập trình mạng
Hình 3.4. Client kết nối đến Server (Trang 36)
Hình 3.5. Client kết nối - Đồ án lập trình mạng
Hình 3.5. Client kết nối (Trang 36)
Hình 3.6. Chat client longbaoitc - Đồ án lập trình mạng
Hình 3.6. Chat client longbaoitc (Trang 37)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w