Hỏi - đáp về TCP-IP

Thảo luận trong 'Khoa Khoa Học Máy Tính' bắt đầu bởi chip, 28 Tháng tư 2010.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. Offline

    chip

    • Thành viên sáng lập

    • Chíp sún
    Số bài viết:
    777
    Đã được thích:
    778
    Điểm thành tích:
    560


    Nhằm giúp các bạn thông suốt và nắm vững kiến thức cho môn học này, hôm nay mình mở topic này, nhằm đưa ra một số câu hỏi rùi tự trả lời, nếu các bạn có gì không rõ về môn học này, các giao thức,....Có thể post câu hỏi trực tiếp cùng thảo luận.


    Mở đầu nhé:
    Hỏi:Kinh nghiệm để học TCP-IP là gì?:018:

    Đáp::012:
    -Để hoc tốt môn này thì bạn cần phải thực hành.Thực hành đi đôi với lý thuyết, học lý
    thuyết mà cố nhớ lý thuyết thì thật khó:
    +Lý thuyết:nắm tất các các chức năng của từng tầng cũng như nguyên tắc hoạt động của từng giao thức trong các tầng
    đó.Và cuốn sách mà tôi chọn là(Internetworking với TCP-IP)
    +Công cụ:wireshark
    +Cách thưc hành:Sniff packets trên nhiều môi trường mạng, nhiều hệ điều hành, nhiều giao thức khác nhau.Đối chiếu với lý thuyến xem thử có đúng không
    +Mở rộng:Thử điều chỉnh gói tim và injec, xem thử hệ điều hành phản ứng thế nào.
    Nhưng quan trọng hơn vẫn là ở các bạn!

    “Tôi sẽ chuẩn bị và một ngày nào đó cơ hội sẽ đến với tôi”
  2. Offline

    chip

    • Thành viên sáng lập

    • Chíp sún
    Số bài viết:
    777
    Đã được thích:
    778
    Điểm thành tích:
    560
    Phần 1:Giao thức DNS và việc phân giải tên miền

    Một buổi học TCP-IP tí hỏi tèo , ê tèo ơi ông có biết tại sao khi mình gõ một cái tên miền ví dụ:www.kt.info thì nó lại phân giải tên miền thành địa chỉ IP được không?

    Tèo đứng ngô ra đó và không biết làm sao và cứ nghĩ trong đầu cài thằng quỹ này lấy ví dụ cũng lấy tên mà người nó thích:snicker: , po tay:

    Miêu tả bài toán:giả sử rằng một máy client gõ vào trình duyệt của mình với địa chỉ http://www.kt.info thì quá trình gói tin qua các tầng như thế nào trong TCP/IP để web server trả lại nội dung trang web cho client trong môi trường mạng internet.Chúng ta cùng nguyên cứu nhé.

    Khi người dung gõ địa chỉ http://www.kt.info lên trình duyệt của mình.Như chúng ta biết các gói tin khi truyền trên mạng chỉ xử lý dữ liệu ở lớp internet đó là các địa chỉ IP nguồn và đích.Câu hỏi đặt ra ở đây làm sao khi người dùng gõ địa chỉ http://www.kt.info thì có thể biết được địa chỉ IP của trang này chúng ta phân tích nhé. Tại nguồn gửi gói tin các host nguồn phải thiết lập địa chỉ IP đích với máy tính và các thiết bị mạng thì các host đích được đại diện bởi một địa chỉ IP.Trong khi đó với người dung việc nhớ một chuổi ký tự sẽ đơn giản hơn nhiều so với việc phải nhớ một địa chỉ IP, để giải quyết vấn đề này cần phải có một cơ chế ánh xạ giữa một chuỗi ký tự với một địa chỉ IP cơ chế đó chính là DNS.Chúng ta nói về dịch vụ DNS và giao thức của nó trong tầng ứng dụng nhé để các bạn hiểu kỹ hơn vì sao khi gõ địa chỉ http://www.kt.info thì có thể biết được địa chỉ IP trang này nhé.

    DNS(Domain name system):DNS được phát triển để ánh xạ tên miền với một địa chỉ IP.DNS được sử dụng rộng rãi trên internet, giao thức DNS đưa ra một dịch vụ tự động chuyển đổi một tên miền sang địa chỉ IP và ngược lại.Ở đây chúng ta có một câu hỏi thế giao thức DNS chuyển đổi một tên miền sang một địa chỉ IP thế nào ?

    Việc ánh xạ các tên miền thành địa chỉ.Chúng ta có một số khái niệm, cơ chế của tên miền trong việc ánh xạ các tên thành địa chỉ bao gồm các hệ độc lập, cùng hợp tác gọi là name server.Name server là một chương trình của server để cung cấp việc chuyển đổi tên miền thành các địa chỉ IP, nếu các bạn đã từng học win server 2k3 thì khái niệm này chính là DNS server.Client được gọi là các name resolever, sử dụng một hay nhiều DNS Server để chuyển đổi một tên.
    Cách dễ nhất để hiểu phương thức làm việc của các DNS server thì các bạn hãy hình dung chúng được bố trí trong một cấu trúc cây tương ứng với cấu trúc tên phân cấp như hình minh họa.
    [IMG]

    Gốc của cây là một server Root DNS, nhận biết được mức cao nhất và biết server DNS con nào sẽ giải tên miền khi client gửi lên.Nghĩa là khi client gửi lên Root DNS server một tên miền cần giải thì Root DNS server có thể chọn chính các DNS server cho tên đó.Nhìn vào trên hình mức 2 các bạn có thể thấy , một tập hợp các DNS server mỗi cái sẽ cung cấp câu trả lời cho một miền mức trên(com, org, edu, co), các DNS server tại mức này biết DNS server nào có thể giải tên miền con ở dưới miền của nó tức miền mức 3.Câu hỏi đặt ra ở đây tại sao chúng ta không dùng một Root DNS server luôn mà phải phân bố ra nhiều DNS server vơi nhiều cấp khác nhau như thế?Câu trả lời rất đơn giản với số lượng lớn các Domain name(tên miền) như thế nếu chỉ có một DNS server xử lý việc phân giải thì chắc chắn hiển nhiển sẽ dẫn đên DNS server bị quá tải. Đến đây các bạn đã hiểu được mối quan hệ giữa các DNS server, nhưng việc giải tên miền của các DNS server này như thế nào, liệu nó có đơn giản như chúng ta miêu tả ở trên, phân tích tiếp nhé.

    Giải tên miền:Về mặc khái niệm , tiến trình giải tên miền xử lý theo kiểu top-down, bắt đầu từ các Root DNS server và xử lý đến các server mức dưới.Có hai cách để sử dụng hệ tên miền :bằng cách liên hệ lần lượt các DNS server hoặc là yêu cầu DNS server này thực hiện toàn bộ việc giải tên miền.Đầu tiên client sẽ hình thành một câu hỏi tên miền có chưa tên được giải , lời khai báo về lớp của tên , kiểu câu trả lời và một mã để xác định xem DNS server này giải tên miền hoàn toàn hay không .Nó sẽ gửi câu hỏi này đến một DNS server để hỏi.

    Khi một DNS server nhận được câu hỏi, nó sẽ kiểm tra xem trong cơ sở dữ liệu của nó, tên miền này có nằm trong miền con(mức dưới nó) mà nó quản lý.Nếu đúng vậy nó sẽ chuyển tên này thành địa chỉ IP và nối câu trả lời vào câu hỏi trước khi gửi ngược trở về client.Ở đây chúng ta thấy có “nối câu trả lời vào câu hỏi”, vì trong định dạng thông điệp của giao thức DNS có trường QUESTION SECTION(câu hỏi) và ANSEWER SECTION (trả lời), để hiểu rõ các bạn có thể đọc thêm tài liệu về định dạng thông điệp DNS.Nếu trong cơ sở dữ liệu của DNS server này không có tên miền này thì nó sẽ liên lạc một DNS server nào khác để giải tên miền này và gửi câu trả lời về cho client.Chúng ta lại có hai câu hỏi ở đây:thứ nhất, làm thế nào một client có thể tìm ra một DNS server để bắt đầu việc tìm kiếm phân giải tên miền.Thứ hai, làm thế nào một DNS server có thể tìm ra các DNS server khác có thể phân giải tên miền khi mà nó không thể?Câu trả lời đơn giản, đến đây nếu bạn đã đọc và hiểu thì bạn có thể trả lời hai câu hỏi này, nhưng mình xin trả lời luôn.Đó là client phải biết cách liên lạc ít nhất một DNS server, không biết các bạn có để ý không nhé.:012:
    [IMG]

    Tương tự câu trả lời cho câu hỏi thứ hai:các DNS server cũng phải biết ít nhất một DNS server gốc.Tới đây , các bạn hãy suy nghĩ, trường hợp client gửi lên môt tên miền cần phân giải cho các DNS server, nhưng các DNS server này không thể phân giải phải chuyển cho các DNS server khác, cứ mỗi lần gõ địa chỉ tên miền và làm như thế thì thời gian chờ rất lâu.Thế thì câu hỏi đặt ra ơ đây có một cơ chế nào để rút ngắn sự tìm kiếm các DNS server có thể phân giải tên miền khi mà nó không thể, đó chính là :

    Vúng nhớ đệm(cache):các máy tính, server sử dụng vúng nhớ đệm đê tối ưu hóa chi phí tìm kiếm.Khi client yêu cầu DNS server phân giải một tên , đầu tiên client kiểm tra xem nó có nằm trong miền con của mình hay không .Nếu có thì sử dụng địa chỉ IP luôn,nếu không gửi cho DNS server, DNS server sẽ kiểm tra vùng đệm của nó xem tên này có được giải gần đây không , DNS server sẽ thông báo cho client lấy từ trong vùng đệm của nó nhưng ghi chú thêm thông tin”ngoài quyển quản lý DNS server”, và cung cấp cho client tên miền của một server, gọi là S , nơi nó đã lấy thông tin này.Như thế client nhanh chóng được câu trả lời.

    Trên đây là tổng quan về dịch vụ DNS cũng như giao thức của nó, thế thì sau khi chúng ra cùng nhau thảo luận xong nếu áp dụng cho bài toán chúng ta đưa ra đó là:khi người dung gõ vào trình duyệt của mình với địa chỉ: http://www.kt.info thì làm sao người dùng có thể biết địa chỉ IP trang này, cũng như quá trình gói tin qua các tầng
    như thế nào trong TCP/IP để web server trả lại nội dung trang web nhé, còn chờ gì nữa với những gì chúng ta phân tích về DNS,giờ chúng ta phân tích xem có đúng như những gì chúng ra nói không nhé.
    -Các công cụ hổ trợ:
    +Máy ảo:Phần mềm vmware, cài hệ điều hành xp, server 2003, một máy server cài windows server 2003 đã cài dịch vụ web server và DNS server.
    +Địa chỉ máy client:IP address:192.168.1.100
    Subnet mask:255.255.255.0
    DNS Server:192.168.1.1.
    +Địa chỉ máy Server:IP address:192.168.1.1
    Subnet mák:255.255.255.0
    DNS Server & web serser:192.168.1.1
    +wireshark:Phần mềm bắt gói tin, thứ không thể thiếu nếu bạn muốn trở thành một cao thủ trong môn này nói riềng cũng như chuyên ngành mạng nói chúng, ở đây tôi không hướng dẫn hay nói kỹ phần mềm này, mà chỉ dung nó để miêu tả những gì chúng ta phân tích.Nếu các bạn muốn tìm hiểu có thể lên google search để tìm them tài liệu nguyên cứu nhé.
    -Chúng ta bắt đầu nhé :khi máy client(192.168.1.100) gõ vào trình duyệt web địa chỉ http://www.kt.info , sau đó ở máy server tôi dùng wireshark để bắt gói tin, các bạn xem thế nào nhé:expect::
    [IMG]

    Các bạn hãy nhìn lên Frame 1(đầu tiên và được tô đậm đó), vì máy client(192.168.1.100) đã cấu hình và trỏ DNS server của mình là 192.168.1.1 do đó khi máy client gõ địa chỉ http://www.kt.info , như chúng ta đã phân tích về DNS ở trên các gói tin khi truyền dẫn trên mạng chỉ xử lý dữ liệu ở lớp internet.Do đó khi gõ địa chỉ http://www.kt.info để muốn biết địa chỉ IP của trang này, client đã gửi 1 gói (gói 1) đến địa chỉ DNS server có địa chỉ 192.168.1.1.Tại đây có hai câu hỏi nhé, ở đây máy server và máy client là trên cùng một mạng 192.168.1.0, như chúng ta biết việc truyền sữ liệu là do lớp 1 của TCP/IP phụ trách tức lớp Network access hay nói rõ hơn thì client muốn truyền dữ liệu cho server phải biêt địa chỉ MAC của máy server(192.168.1.1).Trong khi đó máy client(192.168.1.100) chỉ biết được địa chỉ IP của máy server , thế thì client làm sao truyền dữ liệu cho máy server tức truyền gói 1, hay nói một cách dễ hiểu làm cách nào để máy client có thể tìm được địa chỉ MAC của máy server, để trả lời cho câu hỏi này chúng ta cùng nhau phân tích một giao thức của lớp Internet , giao thức ARP.




    Còn nữa:Phần II tiếp tục với một giao thức không kém sự thú vị ARP.

    CHIP
  3. Offline

    chip

    • Thành viên sáng lập

    • Chíp sún
    Số bài viết:
    777
    Đã được thích:
    778
    Điểm thành tích:
    560
    Phần II:Giao thức ARP

    ARP(giao thức phân giải địa chỉ):Trong một hệ thống mạng một máy nguồn(gửi) nếu biết được địa chỉ IP của máy đích thì có thể biết được địa chỉ MAC của máy đích thông qua giao thức ARP.Thế giao thức ARP hoạt động thế nào, phân tích tiếp nào::045:

    Nguyên tắc hoạt động ARP:Khi một thiết bị mạng muốn biết địa chỉ MAC của một thiết bị mạng nào đó trên mạng mà nó đã biết địa chỉ của tầng Internet(IP,IPX,..) nó sẽ gửi một ARP request(yêu cầu) bao gồm địa chỉ MAC của nó và địa chỉ IP của thiết bị mà nó cần biết địa chỉ MAC trên toàn bộ miền broadcast.Mỗi một thiết bị nhận được request này sẽ so sánh địa chỉ IP trong request với địa chỉ tầng internet của mình(địa chỉ IP của mình).Nếu trùng địa chỉ IP thì thiết bị đó phải gửi ngược lại cho thiết bị gửi ARP request(trong đó có chưa địa chỉ MAC của mình).Đây là trường hợp trong mạng Lan, thế thì trong một hệ thống mạng với nhiều mạng khác nhau thì hoạt động của ARP như thế nào.

    ARP trong hệ thống mạng: Hoạt động của ARP trong một môi trường phức tạp hơn đó là hai hệ thống mạng gắn với nhau thông qua một Router C. Máy A thuộc mạng A muốn gửi gói tin đến máy B thuộc mạng B. Do các broadcast không thể truyền qua Router nên khi đó máy A sẽ xem Router C như một cầu nối hay một trung gian (Agent) để truyền dữ liệu. Trước đó, máy A sẽ biết được địa chỉ IP của Router C (địa chỉ Gateway) và biết được rằng để truyền gói tin tới B phải đi qua C. Tất cả các thông tin như vậy sẽ được chứa trong một bảng gọi là bảng định tuyến (routing table). Bảng định tuyến theo cơ chế này được lưu giữ trong mỗi máy. Bảng định tuyến chứa thông tin về các Gateway để truy cập vào một hệ thống mạng nào đó. Ví dụ trong trường hợp trên trong bảng sẽ chỉ ra rằng để đi tới LAN B phải qua port X của Router C. Bảng định tuyến sẽ có chứa địa chỉ IP của port X(địa chỉ gateway). Quá trình truyền dữ liệu theo từng bước sau :
    · Máy A gửi một ARP request (broadcast) để tìm địa chỉ MAC của port X.
    · Router C trả lời, cung cấp cho máy A địa chỉ MAC của port X.
    · Máy A truyền gói tin đến port X của Router.
    · Router nhận được gói tin từ máy A, chuyển gói tin ra port Y của Router. Trong gói tin có chứa địa chỉ IP của máy B. Router sẽ gửi ARP request để tìm địa chỉ MAC của máy B.
    · Máy B sẽ trả lời cho Router biết địa chỉ MAC của mình. Sau khi nhận được địa chỉ MAC của máy B, Router C gửi gói tin của A đến B.
    Trên thực tế ngoài dạng bảng định tuyến này người ta còn dùng phương pháp proxyARP, trong đó có một thiết bị đảm nhận nhiệm vụ phân giải địa chỉ cho tất cả các thiết bị khác.Theo đó các máy trạm không cần giữ bảng định tuyến nữa Router C sẽ có nhiệm vụ thực hiện, trả lời tất cả các ARP request của tất cả các máy .

    Đến đây chắc các bạn đã hiểu được giao thức ARP, nhưng vẫn còn tồn tại vấn đề đó là cứ mỗi lần muốn tìm địa chỉ MAC của một máy trong mạng thì phải gửi gói ARP request cho miền broadcast.Như chúng ta đã biết nếu cứ broadcast nhiều như thế dẫn đến tình trạng xung đột(Công nghệ Ethernet với giao thức truy cập đường truyền dò xung đột- CSMA/CD) xảy ra trong mạng.Để giải quyết vấn đề này đòi hỏi các thiết bị trong mạng cần có cơ chế lưu ARP gọi là bảng ARP(để biết vào cmd gõ lệnh arp –a).Khi một máy muốn gửi dữ liệu cho một máy khác, đầu tiên nó sẽ tìm kiếm trong bảng ARP xem có địa chỉ MAC nào ứng với địa chỉ IP của máy đích không, nếu có truyền dữ liệu trực tiếp mà không cần gửi ARP request đến miền broadcast , nếu không có nó sẽ tiến hành gửi gói ARP request để tìm địa chỉ MAC, sau đó lưu địa chỉ MAC này vào trong bảng ARP để sử dụng lần sau.Chú ý một điều các bảng ghi trong bảng ARP chỉ tồn tại 20 phút.

    Thật sự giờ mới biết những gì thầy nói là đúng , học và hiểu là một chuyển, tổng hợp những kiến thức đã học mới là vấn đề .Đến đây các bạn đã hiểu rõ về thế nào là giao thức ARP cũng như nguyên tắc hoạt động của nó, nhưng mình biết khi mới đọc tài liệu này các bạn vẫn còn bỡ ngỡ mình sẽ dùng phần mềm wireshark để miêu tả giao thức này cũng như tiếp tục bài toán của chúng ta.


    Quay lại bài toán, đó là làm sao máy client(192.168.1.100) có thể tìm được địa chỉ MAC của máy serrver(192.168.1.1).Xem nhé, phân tích gói tin xem thử có đúng những gì chúng ta phân tích trên kia không nhé.

    [IMG]

    Nhìn vào hình trên, ứng dụng vào bài toán mà chúng ta đang cần phân tích.Client muốn phân giải một tên miền đó là http://www.kt.info , thì phải gửi đến máy DNS server(192.168.1.1) để phân giải.Để gửi như thế, đầu tiên máy client(192.168.1.100), xem thử trong bảng ARP xem thể có địa chỉ MAC ứng với địa chỉ IP 192.168.1.1 không, nếu có nó sẽ gửi trực tiếp đến máy server luôn mà không cần phải gửi ARP request, nếu không clinet sẽ gửi một gói tin(gói thứ nhất , đầu tiên và tô đậm đó) hay nói theo sự phân tích ở trên là ARP request gồm địa chỉ IP của client 192.168.1.100 và địa chỉ MAC của client :00 :0c :29 :59 :0c :b1 (trên hình trên, nếu các bạn muốn hiểu kỹ hơn địa chỉ này, thì có thể tìm tài liệu lớp liên kết trong mô hình OSI để hiểu nó kỹ hơn), cùng với địa chỉ IP đích là máy server (192.168.1.1) gửi đến địa chỉ MAC đích chính là địa chỉ MAC của miền broadcast(FF :FF :FF :FF :FF :FF) với câu hỏi « who has 192.168.1.1 ?Tell 192.168.1.100 » có thể dịch nôm na thế này « Cho tôi hỏi địa chỉ MAC ứng với địa chỉ IP 192.168.1.100 này là nhiu « .Lúc này tất cả các máy trong mạng 192.168.1.0 điều nhận được gói này, nhưng chỉ có máy server (192.168.1.1) trả lời câu hỏi này vì địa chỉ IP đích trong gói tin của client gửi đến miền broacast là địa chỉ IP của máy server.Do đó máy server sẽ gửi lại một gói bên trong chứa địa chỉ MAC của mình cho client.Điều này thể hiện ở gói thứ hai trên hình đó « 192.168.1.1 is at 00 :50 :56 :c0 :00 :01 » .Ok đến đây chúng ta đã giải quyết được vấn đề thứ nhất giờ chúng ta tiếp tục bài toán nhé, sau khi client(192.168.1.100) tìm được địa chỉ MAC của DNS server(192.168.1.1) nó tiến hành gửi một gói tin chứ IP nguồn(192.168.1.100), IP đích(192.168.1.1), địa chỉ MAC nguồn(00 :0c :29 :59 :0c :b1), địa chỉ MAC đích(00 :50 :56 :c0 :00 :01) cùng vơi nội dung trường QUESTION SECTION(« địa chỉ IP của trang www.kt.info là nhiu vậy DNS server ».
    Nhìn hình nhé, gói đầu tiên đó, xem kỹ phần dữ liệu gói tin phía dưới nhé.Để có thể phân tích gói tin đòi hỏi các bạn phải biết cấu trúc khung của từng lớp, điều này phiền các bạn rùi, vì ở đây mình không thể noi rõ nội dung từng trường cho các bạn.Tiếp tục nào

    [IMG]


    Sau khi client gửi gói tin với yêu cầu server phân giải tên miền.Vấn đề lại nảy sinh, hỏi tiếp nhé, như chúng ta đã biết sự khác biệt giữa hai máy server và client chính là chổ:máy server là máy cung cấp các dịch vụ, đáp lại các yêu cầu cho các máy client, còn client là nơi gửi các yêu cầu đến server.Mặc khác, một server có thể cung cấp rất nhiều dịch vụ web server, FTP server, Mail server ,DNS server,..thế khi client gửi các yêu cầu dịch vụ thì server làm sao biết được client yêu cầu dịch vụ gì để có thể trả lời lại cho client.Vấn đề này sẽ được giải đáp sau khi chúng ta phân tích lớp vận chuyển(transport), cụ thể trong bài toán này là giao thức UDP. :smells:

    Còn nữa, mời các bạn đón xem tiếp:Phần III:Giao thức UDP
    Chip
    saobien190chickenkon thích bài này.
  4. Offline

    chip

    • Thành viên sáng lập

    • Chíp sún
    Số bài viết:
    777
    Đã được thích:
    778
    Điểm thành tích:
    560
    User Datagram Protocol-UDP

    UDP cung cấp cơ chế chính yếu mà các chương trình ứng dụng sử dụng để gửi datagram đến các chương trình các chương trình ứng dụng khác.Cùng với dữ liệu gửi đi, mỗi thông điệp UDP bao gồm một giá trị cổng đích và giá trị cổng nguồn, giúp cho các chương trình tại đích có thể phát chuyển thông điệp tới đúng nơi nhận và cho phép nơi nhận gửi lại.
    UDP cung cấp dịch vụ phát chuyển datagram không định hướng, không độ tin cậy,không sử dụng cơ chế ACK để bảo đảm rằng gói tin có đến đích được hay không, không xếp sắp thứ tự các gói tin, và cũng không gửi phản hồi sau khi máy đích có nhận hay không nhận được dữ liệu, sử dụng địa chỉ IP để chuyển thông điệp đến các máy. Vấn đề lại nảy sinh, ở đây UDP ACK để bảo đảm rằng gói tin có đến đích được hay không, không xếp sắp thứ tự các gói tin, và cũng không gửi phản hồi sau khi máy đích có nhận hay không nhận được dữ liệu.Thế thì UDP có cách gì để đảm bảo rằng dữ liệu bên nhận được nguyên vẹn hay không.Lại thêm vấn đề nữa rùi, để giải đáp vấn đề này chúng ta thử phân tích gói tin UDP .
    [IMG]
    Source Port Number:cổng nguồn có thể tùy chọn.
    Destination Port Number:cổng đích
    UDP Length:chứa độ dài của gói tin
    UDP checksum:trở lại vấn đề lúc nảy , đó là UDP có cách gì để đảm bảo dữ liệu bên nhận còn nguyên vẹn hay không.Lời giải đáp chính là ở trường UDP checksum.Cụ thể thế nào chúng ta tiếp tục phân tích cách mà UDP sử dụng trường này để đảm bảo rằng dữ liệu bên nhận còn nguyên vẹn như thế nào.Để tính checksum UDP gán một đầu giả vào UDP datagram(phần dữ liệu UDP).Mục đích của việc sử dụng một phần đầu giả này là kiểm chứng rằng UDP datagram có đến được đích chính xác không.Như thế để kiểm chứng gói tin có đến đúng đích không, UDP bên gửi sẽ tính một checksum cho UDP datagram truớc.Tại đích đến, UDP tiến hành kiểm chứng checksum.Nếu checksum trùng khớp, có nghĩa gói UDP datagram đến được đích của nó và cũng đến được đúng cổng giao thức máy đó.

    Thế là chúng ta đã hiểu cách mà UDP đảm bảo dữ liệu bên nhận được nguyên vẹn.Nhưng các bạn nên nhớ mấu chốt vấn đề của chúng ta không phải ở đây mà là:làm cách nào mà UDP có thể biết được client yêu cầu dịch vụ gì để mà có thể đáp lại cho client.Vấn đề là ở hai trường Source Port Number, Destination Port.Cổng đích xác đich dịch vụ, vì mỗi dịch vụ được đánh dấu bằng số hiệu cổng.Cổng nguồn là nơi mà UDP có thể phân biệt các client để từ đó trả lại kết quả cho client một cách chính xác.

    Một cách dễ hiểu nhất là hình dung UDP như một hàng đợi.Trong hầu hết các dịch vụ, khi dịch vụ được cài đặt , sẽ tạo ra một số hiệu port(cổng) đặc trưng cho riêng mình.Ví dụ:web server(80), FTP server(20,21), TFTP(69), DNS(53)…Khi UDP trên máy cung cấp các dịch vụ nhận được UDP datagram nó kiểm tra xem giá trị cổng đích có phù hợp với một trong các cổng đang tồn tại không.Nếu không gửi một thông điệp lỗi ICMP port unreachable và hủy bỏ datagram.Nễu có cổng phù hợp , UDP đặt datagram mới vào cổng nơi mà các ứng dụng client có thể truy xuất.Dĩ nhiên, có thể bị lỗi do cổng bị đầy, và UDP sẽ hủy bỏ các datagram gửi đến.

    Sau khi đọc xong một giao thức, chắc chắn các bạn sẽ cảm thấy hơi khó hiểu, dẫn đến chán , không muốn đọc tiếp, nhưng các bạn yên tâm đi sau mỗi giao thức chúng ta điểu có bài thực hành để các bạn hiểu.Sau khi các bạn đọc và hiểu UDP đến đây các bạn có thể giải tiếp bài toán còn giang giở.Chúng ta dừng chổ nào nhé, à làm sao server có thể đáp ứng các yêu cầu khi client gửi lên, nhìn hình tiếp nhé.
    [IMG]
    Sau khi nhận được gói tin từ máy client(192.168.1.100) với port nguồn(src port) của client là 1025 và port đích(domain) của server lầ 53.Server tiến hành kiểm tra xem port đích trong gói tin client gửi lên, xem thử có dịch vụ nào chạy với số hiệu cổng là 53 hay không.Nhưng máy server(192.168.1.1) là máy DNS server do đó cổng 53 đang hoạt động.Máy DNS server tiến hành trả lại kết quả mong muốn cho client chính là phân giải tên miền http://www.kt.info thành địa chỉ IP là 192.168.1.1(nhìn vào phàn dưới nôi dung gói tin nhé, gói thứ 3 được tô đậm).
    [IMG]


    Nội dung phần IV:
    -IP và định tuyến
    -Bài toán phân giải tên miền trên trường hợp mạng Internet.




    [FONT=&quot]
    [/FONT]
    saobien190, minhtam, chickenkon1 người khác thích bài này.
  5. Offline

    takechij

    • Windows 98

    • Try so hard
    Số bài viết:
    386
    Đã được thích:
    165
    Điểm thành tích:
    140
    bài này hình như là copy trên internet thì phải, mình có đọc qua rồi mà hok nhớ, nếu nói sai sori hen :045:
  6. Offline

    Mr.KeLLy

    • Thành Viên Mới

    Số bài viết:
    66
    Đã được thích:
    25
    Điểm thành tích:
    0
    Hazzzz !.
    Đã leech bài rồi mà còn mạnh dạng để là "chip" ở dưới nữa chứ.
    Nếu không lầm, bài này bên hvaonline. Vãi !
  7. Offline

    sunboy

    • Thành viên sáng lập

    • No thing
    Số bài viết:
    1.616
    Đã được thích:
    1.340
    Điểm thành tích:
    1.000
    Bạn có tin chắc là bạn không lầm không??? Lần sau hãy tìm hiểu kỹ trước khi kết luận vấn đề. Nhìn thời gian post bài và avatar của người post bạn sẽ biết bài này ai post và có leech hay không.

    http://www.hvaonline.net/hvaonline/posts/list/35305.hva
  8. Offline

    Mr.KeLLy

    • Thành Viên Mới

    Số bài viết:
    66
    Đã được thích:
    25
    Điểm thành tích:
    0
    Hahaha !
    Vãi xưởng.
    Không biết ai chưa xem kĩ.
    Kéo xuống mà xem bài comment, xem các bác pro bên hva nói gì kìa
  9. Offline

    congthangitvn

    • Thành viên sáng lập

    • Liên thông đại học 2012...!
    Số bài viết:
    2.232
    Đã được thích:
    1.550
    Điểm thành tích:
    1.450
    CHưa xem kĩ mà lại đưa ra bình luận rồi. nếu là ngừoi hiểu biết thì lần sau nên tìm hiểu cho kĩ rồi hãy nói nha. đừng để cho thiên hạ họ cười vào mặt
  10. Offline

    Mr.KeLLy

    • Thành Viên Mới

    Số bài viết:
    66
    Đã được thích:
    25
    Điểm thành tích:
    0
  11. Offline

    congthangitvn

    • Thành viên sáng lập

    • Liên thông đại học 2012...!
    Số bài viết:
    2.232
    Đã được thích:
    1.550
    Điểm thành tích:
    1.450
    Ko nói nhiều. nếu giỏi thì đi làm những việc khác có ích hơn đi. đừng có ngồi đó mà bới lông tìm vết vạch lá tìm sâu người đời họ khinh cho. người ta đã có lòng bỏ công viết cho mọi người cùng học hỏi trao đổi không ủng hộ thì thôi còn ở đó mà hách dịch chứng tỏ...

    Close topic
    saobien190 thích bài này.
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí