Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
155,5 KB
Nội dung
PHẦn CƠ Sở Lý Thuyết MẠNG Giao thức TCP/IP Chương I: Các Khái Niệm Cơ Bản Về Hệ Thống Mạng I Mơ hình mạng, mơ hình OSI, mơ hình TCP: Mơ Hình Mạng: Trước tiên cần tìm hiểu vấn đề: có phân tầng protocol, ích lợi việc phân tầng Để chuyển thơng điệp (message) từ máy sang máy khác (các máy phải hệ thống mạng) phải trải qua nhiều giai đoạn khác nhau, giai đoạn phức tạp là: chia nhỏ thơng điệp (message) thành nhiều gói nhỏ (package), mã hóa gói dạng bit, bit chuyển qua đường truyền vật lý đến máy nhận Sau q trình nhận thực ngược lại bên gởi, trình lắp ghép gặp phải lỗi phải thơng báo để truyền lại vv… Các giai đọan phức tạp đòi hỏi người lập trình ứng dụng phải hiểu rõ tất chế hoạt động bên hệ thống Vì người ta đưa ý tưởng phân tầng, tầng chịu trách nhiệm cung cấp dịch vụ cho tầng bên đồng thời sử dụng dịch vụ tầng bên cung cấp cho Như người làm việc tầng họ quan tâm đến tầng có quan hệ trực tiếp với Host A Protocol layer N Host B Layer N Layer N Protocol layer N - Layer N - Layer N - Protocol layer Layer Layer Protocol layer Layer Hình Layer Trong mơ hình lớp n + sử dụng dịch vụ lớp n, hai host A host B phải có chồng giao thức(protocol stack) Mơ hình OSI: Host A Host B Application Layer Application Layer Presentation Layer Presentation Layer Session Layer Session Layer Transport Layer Transport Layer Network Layer Network Layer Datalink Layer Datalink Layer Physical Layer Physical Layer Hình 10: Mơ hình OSI Ý nghĩa tầng : Physical Layer Ở lớp thông tin truyền dạng bit thông qua kênh truyền Và nhận bit chuyển lên cho lớp datalink Datalink Layer Lớp có nhiệm vụ chia nhỏ liệu từ lớp network đưa xuống thành frame, frame có dung lượng từ vài trăm byte đến vài ngàn byte Các frame truyền cách chuyển xuống cho lớp physical Nhiệm vụ thứ hai tổ chức nhận frame cho thứ tự, cung cấp khả truyền không lỗi đường truyền vật lý cho lớp cao Vấn đề đặt phải xác định chế để xác nhận frame có truyền thành công hay không (Acknowladge Framje), xử lý nhiểu (truyền lại) Network layer Lớp định hướng cho gói liệu (package) từ máy gởi đến máy nhận Phải giải vấn đề định tuyến (routing), vấn đề địa (addressing), lượng giá chi phí (accouting), giải đụng độ (collision) Transport layer Lớp có nhiệm vụ chia nhỏ gói liệu đưa xuống từ lớp bên thành đơn vị nhỏ để truyền qua mạng, với đảm bảo liệu đến nơi cách xác Lớp cung cấp cho lớp bên phương tiện để truyền message độc lập với lớp bên Session player Session layer điều khiển trình giao tiếp hai tiến trình hai máy, tạo kết thúc kết nối trình máy khác Presentation layer Lớp biểu diễn thông tin truyền (được hiểu cú pháp ngữ nghĩa), đồng thông tin các hệ thống khác Ngồi có cịn cung cấp dịch vụ thao tác liệu nén, mã hóa(compression & cryptography) Application layer Đây lớp cung vấp dịch vụ cho người sử dụng (end user), ứng với dịch vụ (cịn gọi ứng dụng) có protocol khác Ví dụ: FTP(truyền nhận file), HTTP, E-mai, v.v Mơ hìnhTCP/IP : Chúng ta khảo sát mơ hình OSI lớp, mơ hình mơ hình tham khảo, việc áp dụng mơ hình vào thực tế khó thực (hiệu suất liệu truyền từ máy sang máy mạng phải trải qua tất lớp mơ hình OSI máy), tiêu chuẩn để nhà phát triển dựa theo mà phát triển mơ hình khác tối ưu Có nhiều mơ hình khác nhau, mơ hình TCP/IP sử dụng phổ biến Bộ protocol TCP/IP bao gồm: OSI TCP/IP Application Application Presentation Sesstion Transport Transport Network Internet Datalink Host-to-network Physical Hình 11: Mơ hình TCP/IP - TCP(Transmission Control Protocol): loại protocol có cầu nối (connection oriented) cung cấp khả truyền dịng liệu khơng lỗi, chiều (full duplex)cho trình cho người sử dụng - UDP(User Datagram Protocol): loại protocol không thiết lập cầu nối (connectionless) cho q trình user Khơng giống TCP, khơng đảm bảo liệu truyền có đến nơi xác hay khơng - ICMP (Internet Control Message Protocol): protocol xử lý lỗi điều khiển thông tin gateway host - IP(Internet Protocol): IP protocol cung cấp dịch vụ phân phối package cho TCP, UDP ICMP - ARP (Address Resolution Protocol): Protocol ánh xạ địa internet thành địa phần cứng(MAC address) - RAPR(Address Resolution Protocol): Protocol ánh xạ địa phần cứng thành địa IP Mơ hình TCP/IP phân thành lớp, lớp (1 2)của mơ hình OSI gộp lại thành lớp gọi Host-to-network; lớp Session Presentation OSI khơng có mơ hình giao thức TCP/IP Tương tự mơ hình OSI, mơ hình TCP/IP, liệu từ máy từ lớp Application xuống Transport, xuống tiếp lớp Internet, sau tới lớp Host-to-network, thông qua đường dây vật lý đến máy khác mạng : liệu ngược từ lên Cũng giống mơ hình OSI, đây, lớp máy giao tiếp với thông qua protocol; lớp với lớp khác máy gọi Interface Lớp bên cung cấp dịch vụ cho lớp Host-to-network Kết nối host với network cho chúng chuyển message tới địa đích, lớp gần giống với lớp physical mơ hình OSI Internet layer Đây lớp thực hệ thống mạng có khả chuyển mạch gói liệu dựa lớp mạng Connectionless(khơng cầu nối) hay Connection – Oriented (có cầu nối) tùy vào loại dịch vụ mà người ta dùng cách Nhiệm vụ lớp đảm bảo cho host chuyển package vào hệ thống mạng chuyển chúng đến đích mà khơng phụ thuộc vào vị trí đích đến Trong mơ hình TCP/IP người ta đưa khái niệm địa IP để định địa cho host mạng(xem phần địa IP) Transport layer Lớp transport thiết kế phần tử ngang cấp lớp host đối thoại với Hai protocol : - TCP: Connection Oriented Protocol, cho phép chuyển chuỗi byte từ host sang host mà khơng có lỗi (dùng chế phân chia liệu thành gói nhỏ(package) máy nguồn gom lại máy đích) - UDP: connectionless Protocol xây dựng cho ứng dụng không muốn sử dụng cách truyền theo thứ tự TCP mà muốn tự thực điều (tùy theo mục đích ứng dụng mà người ta dùng UDP hay không) Khái niệm port: Một máy liên lạc với máy khác mạng qua địa IP Tuy nhiên, với địa không đủ cho process máy liên lạc với process máy khác Và TCP/UDP dùng số nguyên (16 bit) để đặt tả nên số hiệu port Như vậy, để hai process hai máy mạng giao tiếp với frame cấp Network có IP gồm : + Protocol (TCP/UDP) + Địa IP máy gởi + Số hiệu port máy gởi + Địa IP máy đích + Số hiệu port process máy đích Ví dụ:{TCP,127.28.11.83,6000,127.28.11.241,7000}; Application layer(process layer) Chứa dịch vụ lớp Session, Presentaion, Application mơ hình OSI, ví dụ: Telnet(Terminel Acesss) cho phép user thâm nhập vào host xa làm việc làm việc máy local(cục bộ), FPT (File Transfer Protocol) công cụ giúp cho chuyển file cho nhau, SMTP(Simple Mail Transfer Protocol) dạng FTP đặc điểm riêng, DNS(Domain Name Service) dùng để ánh xạ tên host thành địa IP ngược lại Giao Thức TCP UDP 2.1 Giao Thức UDP UDP phương thức truyền liệu theo phương pháp không hướng kết nối (connectionless) Khi truyền khơng cần thiết lập cầu nối máy gởi máy nhận, sử dụng chế UDP người ta giả định máy nhận ln sẳn sàn đón nhận liệu gởi đến Nếu liệu gởi đến bị lỗi trình truyền hay khơng nhận đầy đủ, UDP khơng có thơng tin phản hồi lại cho máy gởi Tuy nhiên UDP khơng địi hịi nhiều tài ngun hệ thống thiết kế chương trình ứng dụng đơn giản UDP thường dùng ứng dụng không địi hỏi độ xác cao ví dụ: dịch vụ thông báo giờ, tỉ giá, hay dịch vụ nhắn tin dùng cho việc truyền tải file có kích thước lớn hình ảnh, âm thanh, vv Chính ưu điểm nhà lập trình sử dụng UDP cho ứng dụng họ, người ta dùng nhiều cách để xác nhận cho gói liệu đến đích xác trọn vẹn Một ví dụ minh họa chế xác nhận: Client gởi gói liệu(package) cho server chờ đợi xác nhận từ server Server nhận gói liệu trả thông điệp phản hồi cho client xác nhận gói liệu nhận Nếu client chờ đợi khoảng thời gian cho phép(time out) mà khơng nhận phản hồi từ server cho gói liệu khơng đến đích truyển lại, sau nhiều lần không nhận phản hồi từ server giả định mối kết nối bị đứt hay server bị hỏng hóc Mơ Hình Kết Nối Theo Giao Thức UDP Client Create datagram socket Send data to server Receive data no Server Start App Client data Server data Exit? Receive data Send data to client Exit? yes Close Socket Create datagram socket no yes Exit App Close Socket Hình 12: Mơ hình kết nối theo giao thức UDP Giao thức TCP: TCP cung cấp khả truyền khơng lỗi gói liệu gởi đến máy nhận theo giao thức giao thức phải có trách nhiệm thơng báo kiểm tra xem liệu có đến đủ hay chưa, có lỗi hay khơng có lỗi Trước chuyển liệu có việc thiết lập kênh truyền hay máy Do phải trì mối kết nối kiểm tra liệu nên sử dụng TCP phải đòi hỏi chiếm thêm số tài nguyên cách lập trình cho giao thức khó (phải thực bước kiểm tra liệu theo yêu cầu TCP) Truyền liệu theo giao thức TCP thường áp dụng cho dịch vụ truyền tập tin, dịch vụ trực tuyến Internet địi hỏi có độ xác cao Mơ Hình Kết Nối Theo Giao Thức TCP Client Server Start App Create the socket Connect attempt Acquire Stream and Conduct Conversation Close Stream and Socket Exchange data Disconnect Start App Create the server socket Accept New Connection Acquire Stream and Conduct Conversation Close Stream and Socket no Hình 13: Mơ hình kết nối theo giao thức TCP Continue? yes Địa Chỉ IP: a Giới thiệu địa IP: Tất máy hệ thống mạng(LAN, WAN, Internet) có địa chỉ: địa vật lý(Mac Address) địa Internet Địa vật lý gọi Ethernet address dãy bit gồm 48 bit gán nhà sản xuất, địa biểu diễn dạng số thập lục phân (hecxa) Ví dụ : 3A : 9D : 10 : 60 : 7C : 1F Như card mạng(interface card) có địa địa quy định từ nhà sản xuất card mạng, nhiên địa vật lý khả xác định vị trí hệ thống mạng Để giải vấn đề người ta đưa địa IP(IP Address) Địa IP phải mạng có dạng thống nhất, địa IP gồm có byte có thành phần: địa đường mạng (Network ID) địa host(Host ID) Class ID Network ID Host ID 32 bits(4 byte) Địa IP Nếu máy tính nối mạng với Internet địa IP phải NIC(Network Information Center) cấp 3.2 Phân Loại Địa Chỉ IP Có tất lớp địa IP có lớp sử dụng lớp A, B, C Lớp A: Dùng cho hệ thống mạng có số lượng địa host lớn, số lượng lên đến 16 triệu địa host 31 30 24 23 Network ID Host ID Để nhận biết địa thuộc lớp người ta vào bit phần network ID, trường hợp lớp A: bit phần ID network bits đầu dùng cho phần Network ID lại 24 bits dành cho phần Host ID Như có 126(27) địa đường mạng 16.777.214 (224)địa Host ID Lớp B: Dùng cho hệ thống mạng trung bình số lượng Host ID lên đến khoảng 65 ngàn 31 30 29 1615 0 Network ID Host ID Địa lớp B nhận biết qua bit phần Network ID bit có giá trị Phần Network ID có 16 bit(2 byte) phần Host ID có 16 bit số địa đường mạng lớp B 16.382(214 -2)và số địa host 65.534(216 -2) Lớp C: Địa lớp C dùng cho mạng nhỏ có số lượng máy khơng vược q 254 máy 31 30 29 28 Network ID Host ID Có thể nhận biết địa lớp C thông qua bit phần Network ID, hai bit bật lên Phần NetWork ID có 2,097,150(2 21-2) địa đường mạng phần Host ID có 254(28-2) địa host Chúng ta xem số địa Host ID Network ID qua bảng sau Lớp Mạng A B C Số địa đường mạng 126 16,382 2,097,150 Số host địa mạng 16,777,214 65,534 254 b Subnet Mask(mặt nạ con): Subnet mask dãy 32 bit giống địa IP dùng kèm với địa IP để xác định mạng Khi có địa IP kèm theo subnet mask xác định địa đường mạng địa IP cách thực tốn tữ AND IP subnet cách mà router xác định cho gói liệu theo đường mạng để để đến máy nhận Ví dụ : địa IP:192.125.125.3 Subnet mask :255.255.255.0 CHƯƠNG 2: MẠNG INTERNET Internet công nghệ thông tin liên lạc mới, đại, tác động sâu sắc vào xã hội sống chúng ta, phương tiện cần thiết điện thoại hay tivi, mức độ bao quát Chẳng hạn điện thoại cho phép trao đổi thơng tin qua âm thanh, giọng nói Với Tivi, thơng tin nhận trực quan Cịn Internet đưa vào giới có tầm nhìn rộng bạn làm thứ: viết thư, đọc báo, xem tin, giải trí, tra cứu chí cịn thực phi vụ làm ăn, ….Vì Internet mạng mạng, tức bao gồm nhiều mạng máy tính kết nối lại với nhau, Số lượng máy tính nối mạng số lượng người truy cập vào mạng Internet tồn giới ngày tăng lên nhanh chóng Đặc biệt từ năm 1993 trở đi, mạng Internet không cho phép chuyển tải thơng tin nhanh chóng mà cịn giúp cung cấp thơng tin, diễn đàn thư viện tồn cầu Các thông tin đặt rải rác tồn cầu truyền thơng với thiết bị Modem đường dây điện thoại Hệ điều hành UNIX hệ phát triển mạnh với nhiều công cụ hổ trợ đảm bảo phần mềm ứng dụng chuyển qua lại họ máy khác (máy mini, máy tính lớn máy vi tính) Bên cạnh hệ điều hành UNIX BSD cung cấp nhiều thủ tục Internet bản, đưa khái niệm Socket cho phép chương trình ứng dụng thâm nhập vào Internet cách dễ dàng Internet tạm hiểu liên mạng gồm máy tính nối với theo nghi thức số thủ tục chung gọi TCP/IP (Transmission Control Protocol/Internet Protocol).Thủ tục nghi thức trước thiết lập phát triển cho đề án nghiên cứu Bộ Quốc Phịng Mỹ với mục đích liên lạc máy tính nối đơn lẻ mạng máy tính với mà khơng phụ thuộc vào hãng cung cấp máy tính Sự liên lạc bảo đảm liên tục trường hợp có nút mạng không hoạt động Ngày nay, Internet mạng máy tính có phạm vi tồn cầu bao gồm nhiều mạng nhỏ máy tính riêng lẻ kết nối với để liên lạc trao đổi thông tin Trên quan điểm Client / Server xem Internet mạng mạng Server, truy xuất hàng triệu Client Việc chuyển nhận thông tin Internet thực nghi thức TCP/IP Nghi thức gồm hai thành phần Internet protocol (IP) transmission control protocol (TCP) (được nguyên cứu phần sau) IP cắt nhỏ đóng gói thơng tin chuyển qua mạng, đến máy nhận, thơng tin ráp nối lại TCP bảo đảm cho xác thơng tin chuyền thông tin ráp nối lại đồng thời TCP yêu cầu truyền lại tin thất lạc hay hư hỏng Tùy theo thông tin lưu trữ mục đích phục vụ mà server Internet phân chia thành loại khác Web Server, email Server hay FTP Server Mỗi loại server tối ưu hóa theo mục đích sử dụng Từ quan điểm người sử dụng, Internet trông bao gồm tập hợp chương trình ứng dụng sử dụng sở hạ tầng mạng để truyền tải công việc thông tin liên lạc Chúng ta dùng thuật ngữ "interoperability" để khả hệ máy tính nhiều chủng loại hợp tác lại với để giải quuyết vấn đề Hầu hết người sử dụng truy cập Internet thực công việc đơn giản chạy chương trình ứng dụng máy tính gọi máy client mà khơng cần hiểu loại máy tính(Server) truy xuất, kỷ thuật TCP/IP, cấu trúc hạ tầng mạng hay Internet đường truyền liệu qua để đến đích nó.Chỉ có người lập trình mạng cần xem TCP/IP mạng cần hiểu vài chi tiết kỹ thuật Hình : Liên lạc Internet Internet bắt nguồn từ đâu? Internet đầu năm 1969 tên ARPANET(Advanced Research Projects Agency) cịn gọi ARPA Nó thuộc quốc phịng Mỹ (DoD) Đầu tiên có máy thiết kế để minh hoạ khả xây dựng mạng cách dùng máy tính nằm rải rác vùng rộng Vào năm 1972, ARPANET trình bày công khai, 50 trường đại học viện nghiên cứu nối kết vào Mục tiêu ARPANET nghiên cứu hệ thống máy tính cho mục đích qn phủ qn đội tìm kiếm phương cách để làm cho mạng tránh lỗi, mạng thiết kế cho phép văn thư lưu hành từ máy tính đến máy tính khác, phủ quân đội, máy tính có cơng dụng rõ ràng sâu rộng nhiên, mối bận tâm yếu tính đáng tin cậy có liên quan đến vấn đề sinh tử Kế hoạch ARPANET đưa nhiều đường nối máy tính Điều quan trọng máy tính bạn gởi văn thư đường khả dụng nào, thay qua đường cố định Đây nơi mà vấn đề giao thức xuất Giao thức mà internet sử dụng gì? - Giao thức hay cịn gọi nghi thức phương tiện để làm cho thông tin trở nên khả hữu Một (lọai) định phải thực hai hay nhiều máy tính muốn gởi nhận liệu Đầu tiên ARPANET đưa giao thức Host-to-Host Protocol, giao thức khơng đáng tin cậy giới hạn số máy Vào cuối năm 1970 mạng khác bung thực tế, mạng UUCP gồm nhóm rơì nối hàng trăm máy hàng máy Vào cuối năm 1980 mạng NSFNET mạng National Science Foundation phát triển để nối trung tâm siêu máy tính nó, mạng hấp dẫn cho tất nhà nghiên cứu viện đại học viện nghiên cứu Năm 1972, bắt đầu hệ thứ hai giao thức mạng, làm phát sinh nhóm giao thức gọi Transmission Control Protocol/ Internet Protocol viết tắt TCP/IP Năm 1983, TCP/IP giao thức cho ARPANET, TCP/IP trở thành giao thức mạng dùng rộng rãi Sau tất mạng tài trợ cá nhân hay xã hội -mạng ARPANET, MILNET, UUCP, BITNET, CSNET NASA Science Internet liên kết mạng khu vực NSFNET ARPANET giải tán ngày có nhiều mạng khác thêm vào - Ngày để thực việc truyền thơng qua mạng thơng qua trình duyệt Web, ta cần giao thức để thực công việc Mặc dù có nhiều giao thức để truyền thơng tin nhìn chung có hai giao thức thường lập trình viên sử dụng là: TCP/IP(IP: giao thức Internet, TCP: giao thức truyền tải) giao thức UDP(giao thức gói liệu người dùng) Vì chương trình em sử dụng giao thức TCP/IP nên sau em trình bày chi tiết giao thức Các dịch vụ kết nối đến Internet: Muốn truy nhập Internet, bạn phải đăng ký kết nối Có nhiều phương pháp để đăng ký kết nối, ln có phương pháp trình thiết kế ba phương pháp phổ biến là: Dịch vụ trực tuyến, nhà cung cấp dịch vụ Internet(ISP), truy cập trực tuyến - Dịch vụ trực tuyến(online service) doanh nghiệp: AOL, CompuServe, Microsoft Network(MSN), cung cấp nhiều dịch vụ truyền thơng, có truy cập Internet Khi sử dụng dịch vụ trực tuyến, bạn chạy chương trình kết nối họ để đăng nhập dịch vụ cung họ cung cấp, đến lúc kết nối để chạy Internet Explorer Dịch vụ trực tuyến thu cước phí hàng tháng(Không áp dụng cho người Việt Nam) - Nhà cung cấp dịch vụ Internet(ISP): công ty nhỏ hơn, chuyên dụng hơn, cung cấp tùy chọn không nhiều dịch vụ trực tuyến ISP cho phép truy nhập Internet theo với cước phí thấp, truy cập khơng giới hạn với cước phí cao Họ cấp cho khách tài khoản E-mail Ở Việt Nam có ba dịch vụ ISP hoạt động: VNN, FPT, NetNam - Truy nhập trực tuyến(direct access) khả dụng nhiều học viện giáo dục công ty lớn Thay sử dụng Modem, tổ chức thuê bao đường truyền chuyên dụng để cung cấp truy nhập Internet 24/24 Chương IIi: Một số hàm socket I Khái niệm socket: Trong mơ hình mạng để hai máy tính trao đổi thơng tin cho cần phải tạo kết nối chúng Trong trình làm việc người ta nhận thấy nhà lập trình ứng dụng khó khăn việc thiết lập kết nối truyền tải liệu máy tính với Vì người ta xây dựng khái niệm socket, khái niệm đưa đầu năm 80 nhà khoa học máy tính California Berkeley Khái niệm đưa từ ý tưởng phân tầng, Windows sockets Application Programming Interface(Winsock API) thư viện hàm hãng Berkeley Software Distribution of UNIX đưa Nhằm làm đơn giản hóa q trình thiết lập kết nối chuyển liệu socket dựa giao thức TCP/IP tạo môi trường trung gian cho ứng dụng giao thức bên Socket xem cấu trúc liệu trừu tượng(asbtraction data structure) dùng tạo kênh truyền(channel) để gởi nhận liệu process chương trình hay máy môi trường mạng với Hay nói cách đơn giản xem socket “cơ chế ổ cắm” Khi kết nối client Server tương tự việc cắm phích điện vào ổ cắm điện client thường xem phích cắm điện, cịn server xem ổ cắm điện, ổ cắm cắm vào nhiều phích điện khác server phục vụ cho nhiều client khác Server socket Client socket Hình 14: minh họa chế socket Trong q trình truyền, nhận liệu cần có máy đóng vai trị server máy đóng vai trò client, server phải tạo socket chờ đợi yêu cầu kết nối từ client client tạo socket cho riêng xác định vị trí server (dựa vào tên server hay địa server mạng) tiến hành việc kết nối với server, sau kết nối thiết lập client server tiến hành việc trao đổi liệu với Tóm lại Socket đầu (endpoint) trao đổi liệu q trình, qua ứng dụng WinSock gởi / nhận liệu qua mạng Có hai loại Socket : Stream Socket : Dựa nghi thức TCP ( Tranmission Control Protocol ), việc truyền liệu thực hai trình thiết lập kết nối Dữ liệu truyền tin cậy, trình tự khơng lập lại Dữ liệu truyền dịng liên tục byte khơng phân biệt ranh giới record Datagram Socket : Dựa nghi thức UDP ( User Datagram Protocol ), việc truyền liệu khơng u cầu có thiết lập kết nối hai q trình Dữ liệu truyền khơng tin cậy, khơng trình tự lập lại Dữ liệu truyền dịng record II.Lập trình Winsock: WinSock API (Windows Sockets Application Programming Interface) thư viện hàm giao diện lập trình mạng cho Microsoft Windows WinSock tương thích với họ nghi thức mạng TCP/IP a.Khái niệm Port :Port xác định trình máy mạng Một TCP/IP Socket gồm địa IP kết hợp với port ? xác định trình mạng Một số port dành riêng : UDP Ports : Reversed Echo 37 Time 42 Name Server 53 Domain Name Server 69 Trivial File Transfer Program ( TFTP ) 514 System Log TCP Ports : Reversed TCP Multiplexor 20 FTP_ Data Connection 21 FTP_ Command Connection 23 TELNET 25 SMTP 42 Name Server 53 Domain Name Server 79 Finger_ find a active user Các file cần thiết : WINSOCK.DLL hay WSOCK32.DLL ( tuỳ version 16 hay 32 bit Windows ) WINSOCK.LIB hay WSOCK32.LIB WINSOCK.H Giới thiệu số hàm WinSock: Dưới giới thiệu chức số hàm WinSock, khơng trình bày prototype hàm Các hàm khởi động WinSock : Dùng để khởi đầu kết thúc trình sử dụng WinSock WSAStartup() : Khởi động WinSock WSACleanup() : Kết htúc WinSock WSAGetLastError() : Lấy mã sai vừa xảy Các hàm Socket : Dùng để thiết lập trình trao đổi liệu mạng socket() : tạo socket truyền liệu bind() : định danh cho socket vừa tạo (gán port cho socket) listen() : lắng nghe kết nối accept() : chấp nhận kết nối từ client connect() : kết nối với server send(), recv() : gởi, nhận liệu với stream socket sendto(), recvfrom() : gởi, nhận liệu với datagram socket Các hàm khác : inet_addr() : chuyển từ địa IP dạng số thập phân có chấm sang địa internet inet_ntoa() : ngược lại gethostname() : cho tên máy hành gethostbyname(),WSAAsyncGetHostByName() : cho địa IP ứng với tên máy gethostbyaddr(),WSAAsyncGetHostByAddr() : cho tên máy ứng với địa IP WinSock error: Lỗi send data WSANOTINITIALISED A successful AfxSocketInit must occur before using this API WSAENETDOWN The Windows Sockets implementation detected that the networ k subsystem failed WSAEACCES The requested address is a broadcast address, but the appropriate flag was not set WSAEINPROGRESS A blocking Windows Sockets operation is in progress WSAEFAULT The lpBuf or lpSockAddr parameters are not part of the user address space, or the lpSockAddr argument is too small (less than the size of a SOCKADDR structure) WSAENETRESET The connection must be reset because the Windows Sockets implementation dropped it WSAENOBUFS The Windows Sockets implementation reports a buffer deadlock WSAENOTCONN The socket is not connected (SOCK_STREAM only) WSAENOTSOCK The descriptor is not a socket WSAEOPNOTSUPP MSG_OOB was specified, but the socket is not of type SOCK_STREAM WSAESHUTDOWN The socket has been shut down; it is not possible to call SendTo on a socket after ShutDown has been invoked with nHow set to or WSAEWOULDBLOCK The socket is marked as nonblocking and the requested operation would block WSAEMSGSIZE The socket is of type SOCK_DGRAM, and the datagram is larger than the maximum supported by the Windows Sockets implementation WSAECONNABORTED The virtual circuit was aborted due to timeout or other failure WSAECONNRESET The virtual circuit was reset by the remote side WSAEADDRNOTAVAIL The specified address is not available from the local machine WSAEAFNOSUPPORT Addresses in the specified family cannot be used with this socket WSAEDESTADDRREQ A destination address is required WSAENETUNREACH The network cannot be reached from this host at this time Lỗi receive data WSANOTINITIALISED A successful AfxSocketInit must occur before using this API WSAENETDOWN The Windows Sockets implementation detected that the network subsystem failed WSAENOTCONN The socket is not connected WSAEINPROGRESS A blocking Windows Sockets operation is in progress WSAENOTSOCK The descriptor is not a socket WSAEOPNOTSUPP MSG_OOB was specified, but the socket is not of type SOCK_STREAM WSAESHUTDOWN The socket has been shut down; it is not possible to call Receive on a socket after ShutDown has been invoked with nHow set to or WSAEWOULDBLOCK The socket is marked as nonblocking and the Receive operation would block WSAEMSGSIZE The datagram was too large to fit into the specified buffer and was truncated WSAEINVAL The socket has not been bound with Bind WSAECONNABORTED The virtual circuit was aborted due to timeout or other failure WSAECONNRESET The virtual circuit was reset by the remote side Stream Socket : Dùng Datagram Socket : ... sinh nhóm giao thức gọi Transmission Control Protocol/ Internet Protocol viết tắt TCP/ IP Năm 19 83, TCP/ IP giao thức cho ARPANET, TCP/ IP trở thành giao thức mạng dùng rộng rãi Sau tất mạng tài... ta cần giao thức để thực công việc Mặc dù có nhiều giao thức để truyền thơng tin nhìn chung có hai giao thức thường lập trình viên sử dụng là: TCP/ IP(IP: giao thức Internet, TCP: giao thức truyền... Close Socket Hình 12: Mơ hình kết nối theo giao thức UDP Giao thức TCP: TCP cung cấp khả truyền khơng lỗi gói liệu gởi đến máy nhận theo giao thức giao thức phải có trách nhiệm thơng báo kiểm tra