anhhungxadieuvn
Moderator<br>Starcraft Rank 3rd<img src="/rank/ran
- 2/12/03
- 153
- 0
- Thread starter
- #281
Toliveistodie12 nói:Bài viết này tôi đã hỏi ở 1 Topic khác, nhưng xét ra thì hỏi ở đây cũng hợp lý... cho nên paste lại. Mong mọi người giúp đỡ. Cám ơn ...
Tôi dùng LAN, bị Firewall ( Socks Proxy và HTTP Proxy ) . Đại ý là như thế này : Comp muốn ra ngoài thì phải qua máy chủ của toà nhà, và máy này ra ngoài lại qua 1 máy chủ khác nữa. Tôi đã thử dùng nhiều cách mà vẫn không được, ^^ cuối cùng sử dụng biên pháp Connect vào 1 máy khác ( chung Network, nhưng máy đấy hơn 1 bậc là nó nằm ngoài toà nhà ==> chỉ cần qua 1 máy chủ là ra ngoài được ) để từ đó vào Battle.net thì cũng chỉ vào được để CHAT , chứ chẳng Join hay Creat được ! Nó bảo là cổng 6112 không chuyển được UDP Packet. Đã thử chỉnh Setting trong phần Firewall của COnnection, thêm từ cổng 6112 - 6119 UDP và TCP vào nhưng vẫn chẳng ăn thua tí gì. :( Connect trực tiếp từ máy của tôi thì càng không vào được BNet, vào Bnet để Chat cũng chẳng nổi . Các cao thủ giúp đỡ phát nhẩy ?^_^ Thanx !
- Thực tế trong trường hợp này là do cổng 6112 mặc định không được mở vì dùng proxy chỉ mở 1 số cổng proxy như http:80, 8080.... Dùng http_tunnel là hợp lý.
Ta xét sơ đồ của packet dữ liệu đi từ máy chơi ra NET và ngược lại như sau:
Incoming 6112 TCP -> Router (hoặc ADSL modem hoặc Proxy server) -> 6112 TCP -> Internal Lan
Outgoing 6112 TCP <- Router (hoặc ADSL modem hoặc Proxy server) <- 6112 TCP <- Internal Lan
Nếu báo lỗi là cổng 6112 không chuyển được data có 2 trường hợp xảy ra:
1. Đường từ máy của bạn ra LAN -> router cổng 6112 không mở -> có thể bị PC firewall hoặc là 1 lỗi nào đó -> bạn có thể tắt firewall (Norton Internet Sercurity, Zone Alarm...) hoặc disconnect card mạng rồi reconnect lại.
2. Đường từ LAN đến router hoặc proxy bị firewall tức là router hoặc proxy prohibit port đó và chỉ mở 1 số hữu hạn các cổng còn lại để thực hiện các dịch vụ cơ bản. Trường hợp này có thể sử dụng các chương trình tunnel -> giả lập để chuyển từ các cổng khác về cổng được mở ví dụ như là cổng 80 nếu là http proxy chẳng hạn.
Trong trường hợp này, ta có ban đầu:
SC program -> TCP 6112 -> LAN -> internet
Khi cài được tunnel :
SC program -> TCP 6112 -> Tunnel -> TCP 80 -> LAN -> internet
và chiều ngược lại tương tự.
- Còn lỗi high lantency thường gặp khi mạng nối qua router hoặc chuyển tiếp qua nhiều máy. Lý do không phải delay packet lớn. Mà chủ yếu là phụ thuộc quá trình bắt tay ban đầu SYN-ACK. Chính vì vậy với 2 máy trong LAN nối ra INTERNet = Modem ADSL chẳng hạn sẽ không join được vào game của nhau và ngược lại là do việc test của Game thực hiện lúc ban đầu để đo độ delay cho phép của mạng không đạt yêu cầu, do initial packets gửi qua từ máy Join về máy Create chậm hơn do router phải làm nhiệm vụ broadcast packet đó -> toàn LAN (trong LAN giờ đây không chỉ có part layer 1 mà có thể có switch layer 2 hoặc 3 hoặc các thiết bị khác nữa). Nên việc init packet không đáp ứng được tốc độ như bình thường -> chính điều này dẫn đến việc high lantency.
Vì vậy nên nhiều khi máy A - ADSL không join được vào B - ADSL. C - Dialup create game , A,B join C. Sau đó thì A và B có thể join vào game của người còn lại được là do quá trình bắt tay đã được thông qua. Những trạng thái có thể được lưu ở game cache 2 máy, Bnet cache, các thiết bị layer 2-3 (như router table, switch table...) trong mạng LAN của 2 máy đó.
Để giải quyết vấn đề này chúng ta thiết lập cho router mở virtual server:
Từ mô hình:
Incoming 6112 TCP -> Router (hoặc ADSL modem hoặc Proxy server) -> 6112 TCP -> Internal Lan
Outgoing 6112 TCP <- Router (hoặc ADSL modem hoặc Proxy server) <- 6112 TCP <- Internal Lan (OK)
Ta thấy phần từ LAN -> NET là Ok. Nhưng phần quan tâm chủ yếu để phục vụ cho game là phần từ NET -> LAN (đáp ứng examine handshake signals). Việc mở port sẽ làm nhiệm vụ nếu router (ADSL) nhận được incoming packets có port đích 6112, nó sẽ được chuyển ngay tới máy có địa chỉ IP xác định (máy chơi SC mà ta đặt khi thiết lập virtual server) trong LAN.
Phần này bác hoangpt đã trình bày. Các bạn tham khảo ở trang 1 của thread này.
.