Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Cách kết nối trực tiếp p2p qua internet?

  1. #1
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà nội
    Bài viết
    204

    Mặc định Cách kết nối trực tiếp p2p qua internet?

    Ko có box dự án nên post vào đây vậy

    Chúng ta thường dùng các ct chat, chuyển file qua internet đều phải qua 1 máy chủ trung gian. Ví dụ như chat = yahoo, ta ko kết nối đến thẳng máy của người đang chat với mình mà kết nối đến máy chủ của yahoo, gửi nội dung chat đến server của yahoo, rồi server này mới gửi đến máy người đang chat với mình. Cách này làm thông tin gửi đi sẽ rất chậm, 1 host ở việt nam mà lại phải gửi gói tin ra tận châu âu hay châu mĩ gì đó rồi mới về 1 host khác ở việt nam !
    Bình thường không thể thực hiện kết nối trực tiếp giữa 2 máy là vì hầu hết các máy trong mạng LAN đều được đặt ở trong NAT. NAT là 1 phương thức ánh xạ địa chỉ nội bộ và port để nối ra internet mà chỉ cần dùng 1 địa chỉ ip internet (để tiết kiệm dải địa chỉ internet đang cạn dần). Vì thế mà khi mọi người vào các trang web cho xem địa chỉ ip của mình đều thấy các máy trong mạng LAN có 1 địa chỉ ip duy nhất. Nhưng phương thức này làm chúng ta ko thể tạo lập kết nối theo cách bình thường đc.
    Muốn kết nối trực tiếp được qua NAT cần có cách đặc biệt, giống như CT hamachi vậy, nhưng ct mình làm ra mà lại phải đi cài đặt 1 ct của người khác thì xem ra ko hay lắm, muốn làm virus hay trojan thì càng ko thể làm vậy. Vì vậy em muốn làm 1 thư viện chuyên dùng để kết nối kiểu này (hình như chưa có ai làm thì phải), nhưng em cần 1 máy khác cũng nối internet để thử nghiệm. Nếu có ai hứng thú thì tham gia nhé.

    Đây là tài liệu chính(tiếng Anh): Peer-to-Peer_Communication_Across_Network_Address_Translat ors.doc
    Đã được chỉnh sửa lần cuối bởi hoanglinh9466 : 28-05-2007 lúc 09:55 PM.
    Life:\> dir

  2. #2
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Đề tài này hay đấy, trước anh thử dùng Winsock để kết nối tới máy khác, tuy nhiên cũng gặp vấn đề về IP. Nếu em cần một máy khác để thử nghiệm thì sẵn sàng, có điều không được gửi virus đâu nhé

  3. #3
    Ngày gia nhập
    08 2006
    Nơi ở
    TpHCM
    Bài viết
    202

    cảnh báo là không cấu hình NAT không làm được
    hamachi cũng vậy thôi, bạn không thể làm được nếu không cấu hình lại bảng NAT
    Hoặc lại phải dùng server trung gian

    Hãy xem bittorent hoặc emule đi, bạn có để ý là mỗi khi cài đặt nó đều có mục là test port, nếu không đụng đến bảng NAT, thì thực chất bạn không tham gia vào p2p
    Đã được chỉnh sửa lần cuối bởi nguyentuan2 : 31-05-2007 lúc 01:49 PM.

  4. #4
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà nội
    Bài viết
    204

    Cấu hình lại NAT đc. gọi là PortForwarding, nhưng dùng cách này ko hay, muốn cấu hình lại cũng cần 1 chút kĩ năng, ko phải người dùng nào cũng làm đc. Với lại muốn viết 1 con trojan mà lại bắt nạn nhân cấu hình NAT lại cho mình thì dở quá.
    Có 1 cách khác gọi là "punching hole". Để em trình bày vắn tắt nhé, chi tiết thì ở trong tài liệu:

    Với UDP: Đầu tiên cả 2 máy sẽ cùng trao đổi UDP với 1 server, server này sẽ lấy thông tin về ip address và port của 2 máy (ko phải là ip và port trong mạng nội bộ mà là ip đc. cung cấp bởi ISP và port của NAT device, để hiểu cần đọc các tài liệu về cách làm việc của NAT), sau đó gửi thông tin về port và ip của máy này cho máy kia. Cả 2 máy client sẽ liên tục gửi các gói UDP cho nhau với port và ip do server cung cấp. Điều này rất quan trọng. Bình thường nếu 1 máy gửi các gói UDP này đến máy kia thì sẽ bị NAT device lọc bỏ ngay lập tức, vì NAT device sẽ ko biết phải gửi tiếp các gói này đến máy nào trong mạng LAN. Nhưng nếu dùng số cổng và ip được dùng để trao đổi với server thì khác. Trong bảng NAT đã có sẵn thông tin về địa chỉ trong mạng LAN của máy client, nên nếu 2 máy client gửi các gói UDP cho nhau trong trường hợp này thì các gói này sẽ đến đúng đích mong muốn. Với TCP thì cũng làm gần giống như vậy.

    Mọi người đã hiểu chưa nhỉ, em trình bày hơi rối 1 tí. Mọi người cố gắng đọc cái tài liệu trên nhá.

    Vấn đề khó khăn nhất bây giờ là ko tìm thấy 1 server nào cho mình xem cổng ngoài của mình cả :( . Nhà em chỉ có 1 máy nối mạng internet, định tắt chức năng NAT của router đi (hơi mạo hiểm 1 tí) mà ko tìm thấy chỗ nào để tắt cả, tài liệu về router trên mạng có hướng dẫn mà sao kkhác quá.

    @nguyentuan2: Hồi trước em dùng hamachi, có cần cấu hình NAT gì đâu nhỉ? Thế mà bây giờ dùng thì chả bao giờ connect đc, nó báo là ko thể kết nối đến server của nó. Thế anh làm thế nào ???
    Life:\> dir

  5. #5
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà nội
    Bài viết
    204

    Bổ sung thông tin nha: đây là 1 dự án đã được thực hiện cách đây vài năm, trang web là midcom-p2p.sourceforge.net, nó đã làm 1 chương trình NAT check cho mình thử nghiệm, nhưng do đã chuyển qu dự án khác nên server này hiện ko còn hoạt động nên ko thể kiểm tra được nữa. Muốn thử thì có 1 CT server khác, mình lấy mã nguồn và dịch lại, kiếm 1 máy nối trực tiếp internet (ko có NAT) làm server và chạy CT server này.
    Life:\> dir

  6. #6
    Ngày gia nhập
    08 2006
    Nơi ở
    TpHCM
    Bài viết
    202

    Mặc định Cách kết nối trực tiếp p2p qua internet?

    bạn thân mến,
    mình đã xem lướt qua cái tài liệu của bạn, và thấy rằng dường như bạn chưa hiểu rõ về bảng NAT lắm
    Thực chất các máy tính trực tiếp tham gia trong quá trình p2p là những máy có địa chỉ IP thực, không thể là những máy trong mạng LAN

    Những máy trong mạng LAN chỉ có thể tham gia vào p2p gián tiếp thông qua 1 router (chính là rourter ADSL ở nhà bạn) nhờ việc cấu hình bảng NAT trên router

    Dễ nhất để bạn kiểm chứng điều này là bạn xóa toàn bộ bảng NAT trong router, viết ct mở 1 port (bind port) trên máy tính trong mạng LAN, bạn có thể dùng mọi phương pháp/ kỹ thuật để viết ct đó. Sau đó ra 1 máy tính ngoài dịch vụ chạy thử ct connect đến máy mà bạn đặt ct trong mạng LAN

    Nếu bạn làm được điều đó thì project của bạn mới có thể tiếp tục được

    Chúc bạn thành công

  7. #7
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà nội
    Bài viết
    204

    Ơ, cái tài liệu có phải do em viết đâu, với lại dự án này người ta đã thực hiện và thành công rồi mà. Thế theo anh thì tài liệu này hướng dẫn sai chứ gì ?? Em nghĩ anh chưa hiểu rõ cách thức "punching hole" là gì, chỉ đọc lướt qua thì ko hiểu đâu, anh đọc kĩ lại đi
    Life:\> dir

  8. #8
    Ngày gia nhập
    08 2006
    Nơi ở
    TpHCM
    Bài viết
    202

    đọc kỹ lại đi, trong tài liệu đó họ không nói như bạn nghĩ đâu

  9. #9
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Nói chung là forward-port với NAT chả liên quan gì đến nhau cả. Các máy tham gia vào một kết nối P2P nào đó qua internet cũng không cần đến forward-port. Forward port để dành cho việc khác

  10. #10
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà nội
    Bài viết
    204

    Thôi được, nếu em hiểu sai thì anh nguyentuan2 có thể nói cho em biết xem tài liệu đó hướng dẫn cái gì ko.
    Đã được chỉnh sửa lần cuối bởi hoanglinh9466 : 02-06-2007 lúc 08:56 AM.
    Life:\> dir

Các đề tài tương tự

  1. Có bạn nào viết thuê chương trình tính tiến Internet không ?
    Gửi bởi Runan89 trong diễn đàn Việc làm IT(tự do)
    Trả lời: 1
    Bài viết cuối: 07-08-2013, 10:24 AM
  2. IDM 6.11 full mới nhất, IDM 6.09 ***** 100% tiếng Việt - Internet Download Manager full
    Gửi bởi hoahong89 trong diễn đàn Software (Phần mềm) | Ebooks
    Trả lời: 0
    Bài viết cuối: 11-05-2012, 03:07 PM
  3. Download thật đơn giản với Internet Download Manager bằng Tiếng Việt
    Gửi bởi thienco0301 trong diễn đàn Software (Phần mềm) | Ebooks
    Trả lời: 0
    Bài viết cuối: 17-04-2012, 02:54 PM
  4. Những kinh nghiệm học tốt tiếng Anh qua internet
    Gửi bởi neverland87 trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 7
    Bài viết cuối: 01-03-2011, 04:15 PM
  5. Từ điển tiếng anh cho người dùng Email Internet & mạng máy tính
    Gửi bởi #include# trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 6
    Bài viết cuối: 16-01-2011, 12:38 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn