Lập trình mạng (Network Programming)

12 285 0
Lập trình mạng (Network Programming)

Đ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

TCPIP là gì: Đó là viết tắt của các chữ Transfer Control ProtocolInternet Protocol. TCPIP là chương trình giao tiếp của mà các chương trình của Windows sử dụng để giao tiếp qua TCPIP. TCPIP gồm 4 lớp giao thức, tương ứng với 7 lớp giao thức của chuẩn ISO OSI. Bốn lớp đó gồm (kể theo thứ tự từ trên xuống dưới): Application layer, Hosttohost layer, Internet layer, cuối cùng là Physical layer. TCP nằm ở lớp thứ 3 (Hosttohost layer), IP nằm ở lớp thứ 2 (Internet layer).

I Định nghĩa TCP/IP và OSI: TCP/IP: TCP/IP gì: Đó viết tắt chữ Transfer Control Protocol/Internet Protocol TCP/IP chương trình giao tiếp mà chương trình Windows sử dụng để giao tiếp qua TCP/IP TCP/IP gồm lớp giao thức, tương ứng với lớp giao thức chuẩn ISO OSI Bốn lớp gồm (kể theo thứ tự từ xuống dưới): Application layer, Host-to-host layer, Internet layer, cuối Physical layer TCP nằm lớp thứ (Host-to-host layer), IP nằm lớp thứ (Internet layer) Tên Application layer Host-to-host layer Internet layer Physical layer Số thứ tự TCP IP Đi từ xuống dưới, lớp ứng dụng xử lý thông tin lệnh gửi/nhận đến lớp TCP để truyền nhận liệu TCP viết tắt Transmission Control Protocol tạm dịch Cách thức điều khiển truyền TCP phụ trách việc truyền nhận liệu TCP giúp cho lớp ứng dụng (Application layer) sử dụng lớp IP (lớp IP lớp Internet có IP) (Internet Protocol, tạm dịch Giao thức liên mạng) cách suốt Điều có nghĩa lớp ứng dụng không cần biết đến phần cứng làm việc gì, sao, mà cần quan tâm đến việc xử lý liệu riêng TCP đảm trách việc nhận liệu gửi liệu đến chương trình cần nhận TCP có chức kiểm tra sửa lỗi thông qua việc đồng hoá (synchronize) thông tin đầu truyền liệu lời nhận biết (acknowledgement) từ phía nhận liệu - Lớp IP đảm trách việc tìm đường tối ưu để gửi liệu qua mạng đưa liệu xuống cho lớp vật lý (Physical layer) - Lớp vật lý thức chuyển liệu thành bit truyền liệu vào cáp (cable) Khi liệu đến lớp vật lý nhận liệu, gộp lại thành bit, byte chuyển lại cho lớp IP Đến lượt lớp IP sau kiểm tra liệu thuộc giao thức TCP trả liệu cho lớp Host-to-host layer (chính TCP hay Transport) OSI: Trước mô hình OSI đời mô hình TCP/IP có mặt phát triển với Internet Mô hình TCP/IP mang đặc điểm giống với OSI Mô hình OSI đời với mục đích đưa mô hình tổng quát để phát triển phân tích hệ thống mạng việc triển khai lại thực mô hình TCP/IP Mô hình OSI sau dùng mô hình tham chiếu ,dùng để giải thích rõ ràng mô hình TCP/IP Việc phân chia trình truyền thông thành lớp có lợi điểm sau : - Chia nhỏ trình truyền thông thành phần nhỏ để dễ quản lí - Các thành phần mạng chuẩn hóa để đảm bảo tính tương thích hãng khác - Việc thay đổi lớp không ảnh hưởng đến lớp khác - Quá trình truyền thông chia nhỏ mô tả chi tiết làm cho người học dễ dàng tiếp thu Physical layer :Mục đích physcial layer tạo tín hiệu điện , tín hiệu ánh sáng , sóng radio ,….để biểu diễn bit nhị phân Tại lớp physical , người ta định nghĩa chuẩn phương tiện truyền dẫn , đầu connector , chân cắm , cổng giao tiếp thiết bị , … Datalink layer :Tín hiệu điện truyền từ máy gửi đến máy nhận Máy nhận cần nắm rõ xem tín hiệu điện có phải dành cho hay không dành cho máy khác Lúc người ta nghĩ phải nhóm bit nhị phân thành nhóm gọi frame Trong frame chứa địa máy gửi địa máy nhận Thông qua địa frame, máy tính nhận biết frame có phải hay không gửi framenày cho Người ta thường gọi địa dạng PHYSICAL ADDRESS Ví dụ : địa MAC dạng physcial address Network layer :Các máy tính nằm chung khu vực địa lí ( ví dụ : nối chung vô switch ) phân biệt vớinhau địa physical address ( ví dụ : địa MAC ) Ta hình dung địa physical address số nhà , đường nhà khác phân biệt với số nhà SaigonCTT Viện Mắt nằm đường Điện Biên Phủ , địa SaigonCTT số 287B , Việt Mắt số 280 Ta nhận thấy dùng số nhà để phân biệt địa nhà với nhà khôngthực Ví dụ Hà Nội có nhà có địa 280 Điện Biên Phủ không phân biệt với Viện Mắt TPHCM Nếu muốn phân biệt rõ phải có lớp địa địa Thành phố địa : 280 Điện Biên Phủ TPHCM với 280 Điện Biên Phủ HN khác Tương tự , máy tính khu vực địa lí khác không sử dụng địa physicaladdress mà phải có lớp địa logical address ( ví dụ : địa IP ) Network layer định nghĩa địa logical address cho thiết bị mạng Mỗi vùng mạng khácnhau có vùng địa logical address khác Thiết bị hoạt động đặc trưng lớp network router Khi có nhu cầu kết nối vùng mạng lạivới , người ta dùng router Các frame từ lớp datalink đưa lên đóng gói thành packet Router làm nhiệm vụ vận chuyển packet từ nguồn tới đích Ta tưởng tượng packet giống thư router người đưa thư Lá thư có địa người gửi địa người nhận packet có địa máy gửi địa máy nhận Router đọc địa máy nhận, xác định xem máy nhận nằm vùng mạng gửi packet đến đích Ví dụ số chuẩn packet lớp network : AppleTalk, DECnet, IPX, IP, Vines, and XNS ; ip packet phổ biến sử dụng môi trường internet ngày Transport layer :Transport layer cung cấp dịch vụ vận chuyển liệu người dùng : reliable unreliable Reliable : truyền tin cậy , nghĩa đảm bảo liệu đến đích không bị hư hỏng Giả sử trình truyền data bị chế truyền theo kiểu reliable thực gửi lại data ( giống với dịch vụ gửi thư bảo đảm bưu điện )Unreliable : truyền không tin cậy , nghĩa cố gắng gửi liệu đến đích trình nàykhông đảm bảo Dữ liệu có đến máy nhận hay không Trước chuyển liệu , khối liệu lớn cắt thành thành phần nhỏ tạitransport layer , thành phần gọi segment Session layer :Máy tinh truy cập internet sử dụng nhiều loại dịch vụ khác , vừa sử dụng yahoo messenger , vừa duyệt web , vừa check email , ….Lớp session có nhiệm vụphân biệt đâu liệu dành cho ứng dụng yahoo messenger , đâu dành cho IE , đâu dành cho outlook … Presentation layer :Phụ trách định dạng liệu người dụng format khác Ví dụ hình ảnh đượclớp presentation trình bày dạng JPEG , GIF , liệu dạng video biểu diễndưới dạng AVI , MPEG , WMV , … Application layer :Lớp application cung cấp giao thức để ứng dụng người dùng truy cập vào hệ thống mạng Ví dụ trình duyệt web IE sử dung giao thức HTTP , Outlook express sử dụng giao thứcSMTP để gửi mail , giao thức POP3 để nhận mail So sánh hai mô hình: Giống nhau: - Đều mô hình phân lớp - Lớp Transport network mô hình OSI giống với lớp Transport Internet TCP/IP - Cả hai có lớp application Khác nhau: - Mô hình TCP/IP gộp lớp application, presentation senssion mô hình OSI thành lớp application - Mô hình TCP/IP gộp lớp physcial datalink thành lớp Network Access II Quá trình gửi một Message từ Host A đến Host X Đầu tiên chương trình ứng dụng máy A tạo message để gửi cho máy X với nội dung hình (được thực tầng thứ 1) Nội dung message chuyển đổi thành dạng bit nhị phân để chuyển lên phương tiện truyền dẫn (được thực tầng thứ 2) Card mạng máy tính A thực tạo tín hiệu điện tương ứng với bit nhị phân nói để truyền lên thiết bị truyền dẫn (được thực tầng ) Các tín hiệu điện qua nhiều thiết bị mạng khác trước đến đích (được thực tầng 4) Giả sử máy X nằm internet , tín hiệu điện gửi từ máy A tới máy X qua hàng chục chí hàng trăm thiết bị truyền dẫn khác (được thực tầng 5,6) Tại nơi nhận : máy X Ứng dụng máy X làm nhiệm vụ dịch ngược bit nhị phân message định dạng ban đầu (được thực tầng 7) Ngoài máy A muốn liên lạc với máy X, phải biết IP address (hoặc hostname/domainname) Máy A dò ARP cache (giao thức nằm tầng thứ 3) để tìm địa MAC đích có chưa, chưa dùng ARP gửi thông điệp (broadcast) đến toàn mạng Giới thiệu ARP và MAC: Mỗi thiết bị hệ thống mạng có hai địa Một địa Media Access Control ( MAC ) địa Internet Protocol ( IP ) - Địa MAC : địa card mạng gắn vào bên thiết bị, không thay đổi Địa IP thay đổi theo người sử dụng tùy vào môi trường mạng - ARP(Address Resolution Protocol) : giao thức IP, chức dùng để định vị host segment mạng cách phân giải địa IP địa MAC ARP thực điều thông qua tiến trình broadcast gói tin đến tất host mạng, gói tin chứa địa IP host cần giao tiếp Các host mạng nhận gói tin host có địa IP trùng với địa IP gói tin trả lời lại, lại tự động drop gói tin ARP (giao thức nằm tầng thứ 3) : giao thức đơn giản, đơn có loại message sau: * An ARP Request: máy tính A hỏi toàn mạng : " có địa IP này? " * An ARP Reply: máy tính B trả lời máy tính A : "tôi có IP đó, địa MAC " * An Reverse ARP Request: máy tính A hỏi toàn mạng : " có địa MAC này? " * An Reverse ARP Reply: máy tính B trả lời máy tính A: " có MAC đó, địa IP " Các trường hợp xảy ra: 1/ Host X segment với : Host A gửi thông điệp với địa IP đích (đã biết) MAC đích FF-FF-FF-FFFF-FF để hỏi xem MAC địa gì.Các host segment nhận xử lý gói này, host có địa IP trùng với yêu cầu gửi lại thông tin cho host A "IP có MAC : ".Host A nhập thông tin vào ARP cache (RAM).Khi muốn liên lạc với X lại tra ARP cache để biết địa MAC cần đến ARP gì? Trong protocol TCP/IP có ARP protocol ARP tự động cập nhật MAC tương ứng với IP xây dựng bảng ARP table máy tính mạng subnet Khi này, A X LAN, A muốn gửi packet cho X, match IP X với MAC tương ứng bang ARP Nếu A biết IP X , không match MAC tương ứng bảng ARP , gứi packet , gọi ARP request, với địa MAC broadcast FFFFFFFFFF Khi tất máy tính mạng nhận gói chuyển lên lớp Network; có máy có IP match với IP destination address ARP request gửi trả lại gói tin có chứa địa MAC tương ứng mà máy A muốn tìm Gói tin ARP reply Nếu Host X available Segment biết gói tin gửi cho nhờ vào địa IP mà Host A ghi gói tin ARP request trả lời gói tin ARP reply Gói tin ARP reply có MAC nguồn MAC Host X, MAC đích MAC Host A, Host A nhận gói tin tự nhiên biết MAC X Sau A nhận ARP reply , mở gói update bảng ARP table nó: IP MAC máy X 2/ Host X không segment với host A : Lúc phải nhờ đến router để forward yêu cầu đến segment khác Trong trường hợp này, router gửi địa MAC interface mà nhận gói ARP request Router cho máy gửi (máy A ) Nói cách khác để liên lạc với máy tính khác không nằm segment ta phải sử dụng đến "default gateway" Default Gateway phần host (máy tính) Nó địa IP interface router, cấu hình cho host Địa IP host Default Gateway phải segment mạng Khi này, máy gửi (A) kiểm tra xem máy nhận (X) có nằm subnet hay không Nếu không, đóng gói packet gửi với IP destination address máy nhận MAC address destinaiton Router nối với subnet Nếu Proxy ARP hay default gateway không cấu hình, "traffic" có thê rời khỏi subnet (một mạng cục bộ) Phải có hai cấu hình ( hay cho phép) để giao tiếp với segment mạng khác "IP source dest không thay đổi, có MAC source dest thay đổi thôi" Proxy ARP: Theo cách thức hoạt động proxy ARP, ta thấy client muốn biết MAC host đó, đơn giản broadcast ARP-Request lên mạng Router có trách nhiệm đáp trả lại ARP-Reply nhận thấy IPdestination thuộc mạng khác Như vậy, cấu hình IP cho client đơn giản, gánh nặng lại đè lên router Thử tưởng tượng sau phút, ARP-entry bị hủy bỏ, client thi broadcast lên mạng router "tiêu" chơi Ngoài ra, proxy ARP gặp bất lợi segment có tới router Chọn router nào, router có route đến mạng đích? Default-Gateway: Nếu client biết IP-dest không thuộc mạng nó, dùng MAC default-gateway để gửi gói tin, router default-gateway nhận lấy gói tin biết phải xử lý (dựa IP source/destination) Cách giảm tải cho router, giải trường hợp có nhiều router nối vào segment, đỡ gây nhầm lẫn Nếu Host A có cấu hình sử dụng Defaul gateway TCP/IP protocol gói tin ARP request dạng Broadcast mà gửi thẳng đến cho Router ( TCP/IP stack quy định vậy) Tất nhiên để gửi gói tin đến cho Router phải request MAC defaul gateway Router trước, sau có MAC default gateway Host A tạo gói tin ARP request MAC Host X với IP đích IP Host X, MAC đích MAC default gateway Khi Router gateway nhận gói tin Forward qua interface segment thích hợp, phần Datalink header lấy (Pull out) phần Datalink header gắn vào với mục đích để truyền Segment Host B Khi Host B nhận gói tin ARP request trả lời lại gói tin ARP reply gửi đến DefautGateway Segment Khi Router nhận gói tin làm việc tương tự gửi từ Host A (pull out Datalink header, gắn datalink header v.v ) Nếu Host A cấu hình default gateway (tất nhiên broadcast gói tin ARP request) Router Segment host A có chức ARP Proxy IP mà gói tin ARP request yêu cầu ROUTER so sánh với Routing Table nhận gói tin Match Routing table, sau forward qua Segment thích hợp Quá trình tương tự trường hợp A Như : default gateway segment cấu hình sai dẫn đến việc Host A liên lạc với Host X ngược lại Ngoài thời gian tồn ARP cache memory lâu công với việc có thay đổi MAC DF gateway dẫn đến việc tạm thời thực ARP request Ví dụ minh họa cho lý thuyết nêu (xin lưu ý IP cùa source destination không thay đổi có mac thay đổi thôi) Ta xem ví dụ sau để đễ hiểu Máy A -Router1 Router2 Router3 Máy X Đầu tiên máy A đóng gói gói tin sau IP nguồn IP máy A IP đích IP máy X xuống đến tầng datalink máy A xem máy X có subnet với không, truờng hợp không Lúc máy A dùng : MAC nguồn máy A MAC đích MAC interface router1 nối với subnet A Router1 xem IP đích có nằm subnet hay không truờng hợp không, lúc router đóng gói địa MAC nguồn MAC cùa interface mà router nối với router2, MAC đích sẻ MAC interface router2, router2 xử lý giống router chuyển đến router3 Router3 xem IP có nằm subnet không, có xem xét địa MAC tương ứng với IP (router3 biết tra bảng ARP có chứa máy X X subnet) ứng với IP router3 xác định đưọc MAC máy X, gửi Brodcast đến tất máy subnet có máy X máy X nhận gói tin có MAC trùng với MAC đích gói tin Máy A gửi gói tin gọi ARP request (ARP = Address Resolution Protocol) chế broadcast để tất máy nhận gói tin [...]... năng ARP Proxy thì căn cứ trên IP mà gói tin ARP request yêu cầu ROUTER sẽ so sánh với Routing Table của nó và nhận gói tin này nếu Match trong Routing table, sau đó sẽ forward qua Segment thích hợp Quá trình tiếp theo tương tự như trường hợp A Như vậy : nếu 1 trong 2 default gateway của 2 segment cấu hình sai thì sẽ dẫn đến việc Host A không thể liên lạc được với Host X và ngược lại Ngoài ra nếu thời

Ngày đăng: 23/08/2016, 20:30

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan