GIAO THUC TCP/IP Giao thuc protocol Giao thức là một tập hợp các quy tắc giao tiếp giữa hai hệ thống giúp chúng hiéu va trao đôi dữ liệu được với nhau.. gọi là server -Quá trình có yêu
Trang 1LAP TRINH MANG Thoi gian 45 tiét li thuyét, 15 tiét thuc hanh
Thi cuối kỳ: trắc nghiệm và tự luận
Thực hành theo sự phân nhóm, có điểm danh và làm báo cáo
Tài liệu tham khảo:
Trang 2LAP TRINH MANG
Nội dung chương trình
Tổng quan về lập trình mạng
Lập trình mạng với thư viện Winsock của Windows Lap trinh multicasting
Lập trình mạng với hệ thông Web
Lập trình mạng với hệ thông Email
Lập trình mạng với hệ thông truyền File
Trang 51 Mo hinh OSI
4) Transport |a - Transpqrt Fratocol_ _ _ _ _ _ _ »| Transpot | TPDU
3] Network |&dp| Neatwork |&e-| Neatwork be ++} Network Packet
Trang 6
Tang 1 (tang vat ly-Physical): cung cap cac phương tiện truyén tin,
thủ tục khởi động, duy trì huỷ bỏ các liên két vat ly cho phép truyén
các dòng dữ liệu ở dạng bit
Tang 2 (tang lién kết dữ liệu-Data Link): thiết lập, duy trì, huỷ bỏ các
liên kết dữ liệu kiểm soát luồng dữ liệu, phát hiện và khắc phục các
sai sót truyên tin
Tang 3 (tang mạng-Network): chọn đường truyền tin trong mạng, thực
hiện kiểm soát luông dữ liệu, khắc phục sai sót, cắt hợp dữ liệu
Tang 4 (tâng giao vận-Transport): kiểm soát giữa các nút của luông
dữ liệu, khắc phục sai sót, có thể thực hiện ghép kênh và cắt hợp dữ
liệu
Tâng 5 (tâng phiên-Session): thiết lập, duy trì đồng bộ hoá và huỷ bỏ
các phiên truyền thông Liên kết phiên phải được thiết lập thông qua
đối thoại và các tham số điều khiến
Tang 6 (tâng trình dữ liệu-Presentation): biêu diễn thông tin theo cú
pháp dữ liệu của người sử dụng Loại mã sử dụng và vấn đề nén dữ
liệu
Tang 7 (tâng áp dụng-Application): là giao diện giữa người và môi
trường hệ thống mớ Xử lý ngữ nghĩa thông tin, tầng này cũng có
chức năng cho phép truy cập và quản chuyền giao tệp, thư tín điện tử
Trang 72 Data link nang Data link
(Hên kêt dữ liệu) mạng (Hên kêt dữ liệu)
Trang 9Header li cẫadecr Nhan
FTETREYTE HEưnrrf remrzartt BIFraTiESE Frame
4 !11Ó < SCAU SCARE wa Et 1 ates ; Fair Sclit Neanendent)
Header |] Header ] Header Data} [railer Medium dependent)
Trang 102 GIAO THUC TCP/IP
Giao thuc (protocol)
Giao thức là một tập hợp các quy tắc giao tiếp giữa hai hệ thống
giúp chúng hiéu va trao đôi dữ liệu được với nhau
OSI Medel TCP/IP
Layers = = Protocol _ Tor stp Protocet
Kiến trúc giao thức TCP/IP
Trang 112 GIAO THUC TCP/IP
Trang 12
Tang 3 str dung giao thức IP, tầng 4 có thể sử dụng giao thức TCP ở chế độ
có nôi kêt hoặc UDP ở chê độ không nỗi kêt
Tang 9 lả tâng ứng dụng Môi loại ứng dụng phải định nghĩa một loại giao
thức đề các ứng dụng này trao đôi thông tin với nhau Ví dụ
>Ứng dụng Web sử dụng giao thức HTTP để tải các trang web từ webserver
về webbowser
>Ứng dụng thư điện tử sử dụng giao thức SMTP để chuyền tiếp mail gửi đi
đến mail server của người nhận và dùng giao thức POP3 hoặc IMAP để nhận
mail về cho người đọc
>Ứng dụng truyền tải tập tin sử dụng giao thức FTP để tải các tập tin từ các
FTP server ở xa về máy người dùng hay ngược lại
>
Trang 13
Theo mo hinh client — server, mot chương trình ứng dụng được chia làm 2
phan
-Quá trình chuyên cung cấp một số phục vụ nào đó ví dụ phục vụ web, phục
vụ tập tin, phục vụ thư điện tử gọi là server
-Quá trình có yêu cầu sử dụng các dịch vụ do server cung cấp được gọi là
client
Giao tiếp giữa server và client được thực hiện dưới hình thức trao đổi thông
diép (message) Request message tv client va Reply message từ phía
server
Trang 143 MO HINH CLIENT — SERVER
Quá trình đang thực thi
Quá trình đang chờ đợi
Trang 154 CAC CHE BDO GIAO TIEP
Giao tiếp giữa client va server có thê diễn ra ở hai chế dé la blocked va non —
Trang 164 CAC CHE BDO GIAO TIEP
Trang 175.1 Giới thiệu socket
- Socket la mét giao dién lap trinh wng dung (API — Application Programming
Interface) được giới thiệu đâu tiên trong ấn bản Unix — BSD 4.2 dưới dạng các hàm hệ thống trong ngôn ngữ C Ngày ngay, socket được hỗ trợ hầu hết trên
các hệ điều hành: Windows, Linux và trong nhiều ngôn ngữ lập trình như C, C++, Java, VC++, Dot.net
- Socket cho phép thiết lập các kênh giao tiếp mà hai đầu kênh được đánh dau bởi hai công (port)
> < Hoa >
Trang 18
5.1 Giới thiệu socket
Có hai kiéu socket
- AF_ UNIX: chỉ cho phép giao tiếp giữa các quá trình trong cùng một máy tính
- AF_ INET: cho phép giao tiếp giữa các quá trình trên những máy tính khác
nhau
Trang 199 SOCKET
5.2 Khái niệm céng (port)
Đề thực hiện các cuộc giao tiếp, quá trình cần có công của socket mà mình sử
dụng Môi công giao tiêp thê hiện một địa chỉ xác định trong hệ thông,
F~~~~T~""~~rTrTr"""rTr"""h¬ BO a
| a Anu _ B2C | |
Trang 20
9 SOCKET
5.2 Khái niệm céng (port)
Số hiệu công gán cho socket phải duy nhất trên máy tính, có giá trị trong
khoảng 0 — 65535 (16 bit), các công từ 1 tơi 1023 được dành riêng cho các quá
Trang 219 SOCKET
5.2 Khái niệm céng (port)
Số hiệu công gán cho socket phải duy nhất trên máy tính, có giá trị trong
khoảng 0 — 65535 (16 bit), các công từ 1 tơi 1023 được dành riêng cho các quá
Trang 229 SOCKET
5.2 Khái niệm céng (port)
Số hiệu công gán cho socket phải duy nhất trên máy tính, có giá trị trong
khoảng 0 — 65535 (16 bit), các công từ 1 tơi 1023 được dành riêng cho các quá
Trang 239 SOCKET
5.2 Khái niệm céng (port)
Số hiệu công gán cho socket phải duy nhất trên máy tính, có giá trị trong
khoảng 0 — 65535 (16 bit), các công từ 1 tơi 1023 được dành riêng cho các quá
Trang 249 SOCKET
5.3 Giao tiếp TCP va UDP
Giao tiếp có kết nỗi sử dụng giao thức TCP
Giao tiếp không có kết nỗi sử dụng giao thức UDP
Tôn tại kênh giao tiếp giữa hai bên Không tôn tại kênh giao tiệp ảo giữa
Dữ liệu được gửi đi theo chế độ đảm | Dữ liệu được gửi đi theo chế độ
bảo: có kiểm tra lỗi, truyền lại gói tin | không đảm bảo
lỗi hay mất, đảm bảo thứ tự đến của | pe liệu không chính xác, tốc độ
Cac gol tin truyền nhanh
Dữ liệu chính xác, tốc độ truyền cham | Thich hợp cho các ứng dụng cần tốc
độ không cần chính xác cao
Trang 25
-bind() server yêu cầu gán số hiệu công cho socket
-listen() server lắng nghe các yêu câu kết nỗi từ các client trên cổng đã được gán
Trang 269 SOCKET
5 4 M6 hinh Client — Server sw dung TCP
Giai doan 2: client tao socket, yêu câu thiết lập một kết nối tới server
-connect() client gửi yêu cầu connect tới server có dia chi IP va port xac định
-accept() server chấp nhận kết nỗi của client khi đó một kênh giao tiếp ảo được hình thành, client và server có thê trao đổi thông tin qua kênh giao tiếp ảo này
Trang 279 SOCKET
5 4 M6 hinh Client — Server sw dung TCP
Giai doan 3: trao déi thong tin gitva client va server
-Sau khi chap nhận yêu cau két néi,théng thuong server thực hiện lệnh read va
nghẽ (blocked) cho tới khi có thông điệp từ client gửi tới
-Server phân tích và thực thi yêu câu, kết quả sẽ được gửi về cho client bằng lệnh
write()
-Sau khi gửi yêu cầu bằng lệnh write(), client chờ nhận thông điệp từ server bang
lệnh read()
Trang 289 SOCKET
5 4 M6 hinh Client — Server sw dung TCP
- Việc trao đổi thông tin giữa client và server phải tuân thủ theo giao thức của
ứng dụng
Giai đoạn 4: Kết thúc phiên làm việc
Trang 29
5 4 M6 hinh Client — Server sw dung TCP
-Các câu lệnh read(), write() có thể được thực hiện nhiều lần
-Kênh ảo sẽ mất đi khi server hoặc client thực hiện đóng socket bằng lệnh
close()
Trang 309 SOCKET
5 4 M6 hinh Client — Server sw dung TCP
Toản bộ quá trình -
Trang 32
9 SOCKET
5 5 M6 hinh Client — Server sw dung UDP
Gial doan 2: client tao socket
-socket() client yéu cau tao mét socket để có thể sử dụng các dịch vụ của tầng vận chuyến, thông thường hệ thông tự động gán một sô hiệu công còn rảnh cho socket
của client
Trang 339 SOCKET
5 5 M6 hinh Client — Server sw dung UDP
Giai doan 3: trao déi thong tin gitva client va server
Trang 34
5 6 M6 hinh Client — Server sw dung TCP/UDP
Chương trình server ở chế độ đồng thời sử dụng TCP
- Tạo socket(), đăng ký địa chỉ socket với hệ thống,
- Đặt socket ở trạng thái chờ, lắng nghe kết nồi
- Khi có request từ client, chấp nhận kết nỗi, tạo một process con đề xử lý Quay
lại trạng thái chờ, lắng nghe kết nỗi mới
- Công việc của proccess mới gồm:
“Nhận thông tin kết nỗi của client
„Giao tiếp với client theo giao thức đã thiết kế
“Đóng kết nối và kết thúc proccess con
Trang 35
5 6 M6 hinh Client — Server sw dung TCP/UDP
Chương trình server ở chế độ đồng thời sử dụng UDP
-Tao socket
-Lap viec nhan dữ liệu từ client, đối với một dữ liệu nhận tạo proccess (quá trình)
đê xử lý, tiêp tục nhận dữ liệu từ client
-Công việc của proccess mới:
Nhận thông tin của proccess cha truyền đến, lây thông tin socket
„Xử lý và gửi thông tin về cho client theo giao thức lớp ứng dụng đã thiết kế
„Kết thúc