folder Tahribat.com Forumları
linefolder Network - İnternet
linefolder TCP/IP Veri Gönderimi Hakkında Bir Soru



TCP/IP Veri Gönderimi Hakkında Bir Soru

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    blue_dream
    blue_dream's avatar
    Kayıt Tarihi: 04/Mart/2007
    Erkek

    Son kez "up" yapıyorum bir turlu sorunu cozemedigim icin kusura bakmayın. Burada bi suru networkcu abiler vardı ya bi el atsalar :/

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mx0TBT
    Mx0TBT's avatar
    Kayıt Tarihi: 13/Haziran/2007
    Erkek

    bu sistemi logmeın kullanıyo 

    yani client 80 port dan cıkıs yapıp bi siteye bağlancak ok

    server 80 port dan cıkıs yapıp siteye baglancak ok

    ok

    uppp


    Ölümlü dünya. Yasin 38. Ayet
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Destroyer
    Destroyer's avatar
    Kayıt Tarihi: 27/Eylül/2003
    Erkek

    Öncelikle ayrıntılı yazamadığım için kusura bakmayın. Kısaca anahtar bilgiyi vereyim. Zamanım olunca detaylı bir döküman yollarım.

    MSN'de webcam görüşmeleri blue_dream'in de dediği gibi birebir clientlar arasında olmaktadır. Ancak bu iletişim TCP üzerinden değil UDP üzerinden yapılmaktadır. Modemler üzerindeki NAT veya NAT2 sistemi bir clienttan diğer clienta direk bağlantı kurmayı önler. Bunu aşmanın ilk yolu eğermodeminiz, UPnP destekliyorsa bunu kullanarak port açtırmaktır. Bir çok program bunu kullanmaktadır. Bkz: Azureus, Bittorrent, MSN, Gtalk vb... Eğer modeminiz UPnP destelemiyorsa, iki clientın birbiriyle konuşmasını sağlamak için NAT veya NAT2'yi kandırmak gerekecektir. Bunun için de "Pinch hole" veya "Pinch holing" denilen method uygulanır. Ancak bu method için arada hep ayakta duran bir sunucu veya iki clientın erişebileceği ortam bir yer olması gerekir.  Bu sunucu veya ortak ortam iki client arasındaki bağlantının ilk aşamalarında bazı şeyleri organize etmek için kullanılır. Pinch hole methodu sadece UDP bağlantıları için geçerlidir, TCP'de işe yaramaz.

    Dosya gönderimi ise iki client arasında tamamen TCP üzerinden yapılır bunun için şart olan koşul iki clienttan en az birinin UPnP destekli modemin arkasında olmasıdır.

    Daha iyi anlamanız için bir örnek hazırlayacağım fakat şu an çok meşgulum.

     


    d.d.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Destroyer
    Destroyer's avatar
    Kayıt Tarihi: 27/Eylül/2003
    Erkek

    Az biraz ağ bilgisi olanların anlayacağı düzeyde örnek hazırladım.Örnekte Client1 ve Client2 ismindeki 2 kişinin MSN üzerinden webcam bağlantısını nasıl kurdukları anlatılıyor.

    NOT:Normalde NAT2 mapping tablolarında Destination IP diye bir alan daha var. O alanda hedef bilgisayarların LAN IP'leri tutulur. Ancak çok karmaşık olmasın diye orayı örnekte çizmedim.

     

    %3c3cinchhole


    d.d.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    blue_dream
    blue_dream's avatar
    Kayıt Tarihi: 04/Mart/2007
    Erkek

     

    Destroyer bunu yazdı:
    -----------------------------

    Öncelikle ayrıntılı yazamadığım için kusura bakmayın. Kısaca anahtar bilgiyi vereyim. Zamanım olunca detaylı bir döküman yollarım.

    MSN'de webcam görüşmeleri blue_dream'in de dediği gibi birebir clientlar arasında olmaktadır. Ancak bu iletişim TCP üzerinden değil UDP üzerinden yapılmaktadır. Modemler üzerindeki NAT veya NAT2 sistemi bir clienttan diğer clienta direk bağlantı kurmayı önler. Bunu aşmanın ilk yolu eğermodeminiz, UPnP destekliyorsa bunu kullanarak port açtırmaktır. Bir çok program bunu kullanmaktadır. Bkz: Azureus, Bittorrent, MSN, Gtalk vb... Eğer modeminiz UPnP destelemiyorsa, iki clientın birbiriyle konuşmasını sağlamak için NAT veya NAT2'yi kandırmak gerekecektir. Bunun için de "Pinch hole" veya "Pinch holing" denilen method uygulanır. Ancak bu method için arada hep ayakta duran bir sunucu veya iki clientın erişebileceği ortam bir yer olması gerekir.  Bu sunucu veya ortak ortam iki client arasındaki bağlantının ilk aşamalarında bazı şeyleri organize etmek için kullanılır. Pinch hole methodu sadece UDP bağlantıları için geçerlidir, TCP'de işe yaramaz.

    Dosya gönderimi ise iki client arasında tamamen TCP üzerinden yapılır bunun için şart olan koşul iki clienttan en az birinin UPnP destekli modemin arkasında olmasıdır.

    Daha iyi anlamanız için bir örnek hazırlayacağım fakat şu an çok meşgulum.

    -----------------------------

    Hocam, oncelikle cevapların icin cok cok tesekkurler...

    Benim tcp protokolunu kullanmam gerekiyor, yani UPnP destekli modem olması gerekiyor diyorsun. Suana kadar yuzlerce insan icinden hic birbirine msn'den dosya yollayamayan birine rastlamadıgıma gore kullanılacak olan modemlerin UPnP destekli olması zorunlulugu buyuk bir kısıt yada dezavantaj degil. Hocam, son olarak, modeme port actirmanın mantigi nedir, bunu aciklaman mumkun mu? Ilk basta iki client da server a baglı olacak, ve server bu iki client a birbirlerinin ip adreslerini ve hangi portu kullanmaları gerektigi bilgisini iletecek, peki bundan sonra?

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Destroyer
    Destroyer's avatar
    Kayıt Tarihi: 27/Eylül/2003
    Erkek

    Anladım kadarıyla yukarıda anlattığım teknik ile şu an için işin yok. Ancak ileride dosya gönderimini TCP yerine UDP ile düzenlersen mutlaka bu tekniği kullanırsın. Sadece bir takım bağlantı ayarlarını uygulama seviyesi protokolune kaydırırmış olursun o kadar.

    Şu anda satılan tüm modemler UPnP özelliği ile geldiği için birbirine dosya gönderemeyen kişilerle karşılaşmaman normal. Ancak dosya alıp verememe durumuna örnek verecek olursam iki farklı üniversite ağında bulunan iki kişiyi gösterebilirim. Diyelim Ali Boğaziçi ağında Veli ODTÜ ağında. Her ikisi kendi okul ağlarında bulunup internete okullarının BIM yönetiminde olan NAT2'ler vasıtasıyla çıkıyorlar. Üniversitelerde her önüne gelen UPnP kullanıp da NAT2 tablolarını değiştirmesin diye bu cihazların UPnP özelliklerini kapatırlar. Durum böyle olunca MSN üzerinden dosya gönderimi için ne Ali'nin bilgisayarı sunucu gibi ne de Veli'nin bilgisayarı sunucu gibi davranabilir, çünkü dışarıdan gelen bağlantı requestleri NAT2 tarafından sunucu gibi davranmak isteyen bilgisayarlara yönlendirilmezler.

    Port açtırmanın mantığı aslında çoğu kişinin bildiği ve uyguladığı bir şeydir. Modeminizin web arayüzüne girip port yönlendirme ekranından ayarlar yaparsınız ya, UPnP ile yapılanın hiçbir bir farkı yoktur. Nasıl elle internetten 5000 portundan gelen requestleri LAN'daki 192.168.1.100 IP'li bilgisayarın 4005 portuna yönlendir diyorsak, UPnP işlemleri de bunu SNMP ve bazı başka protokoller konuşarak gerçekleştirmektedir.

    UPnP özelliğini kullanabilmek için işletim sisteminizin bunu desteklemesi ve programcı için API sunması gerekmektedir ki şu anda tüm işletim sistemleri bunu sağlamaktadır. Windows'a yönelik bir uygulama geliştireceksen Win32 API'sini incelemeli ve hangi sistem callarının UPnP ile ilgili olduğunu bulmalısın. Benim zamanında Windows için yazdığım JAVA UPnP Native kütüphanelerim var. Şu anda arşivlerimde bulabilir miyim bilmiyorum. İşini yararsa ve eğer bulabilirsem sana gönderirim.

     

    Aşağıdaki resimde modemimin üzerinde UPnP ile oluşturulmuş port yönlendirmesini görüyorsunuz. Azureus bir torrent clientı ve şu anda "Band of Brothers" indiriyorum :) . Dosya transferi için Azureus'un kendisi UPnP özelliğini kullanarak NAT2 üzerinde kendisi için bir port yönlendirmesi yapmış.

     

    %3cAT2

     

     


    d.d.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    blue_dream
    blue_dream's avatar
    Kayıt Tarihi: 04/Mart/2007
    Erkek

    destroyer hocam, tekrar cok tesekkurler, nasıl yapmam gerektigini tam olarak anlamıs oldum. benim uygulamayı geliştirdigim dil java :) eger yazdıgın kutuphaneleri bulabilir de benimle paylasırsan cok makbule gecer gercekten :)

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zfc
    zfc's avatar
    Kayıt Tarihi: 08/Ocak/2010
    Erkek

    Ek bir bilgi ihtiyaç duyanlara.
    CCNA Discovery I chapter 6'yı okurken karşılaştım.

     

    ---

    In either case, it is necessary for a server to know which service is being requested by a client. Client requests can be identified because the request is made to a specific destination port. Clients are pre-configured to use a destination port that is registered on the Internet for each service. 

    Ports are broken into three categories and range in number from 1 to 65,535. Ports are assigned and managed by an organization known as the Internet Corporation for Assigned Names and Numbers (ICANN).

    Well-Known Ports

    Destination ports that are associated with common network applications are identified as well-known ports. These ports are in the range of 1 to 1023. 

    Registered Ports

    Ports 1024 through 49151 can be used as either source or destination ports. These can be used by organizations to register specific applications such as IM applications. 

    Private Ports

    Ports 49152 through 65535, often used as source ports. These ports can be used by any application.

    The table shows some of the more common well-known ports. 

    --- 

Toplam Hit: 3552 Toplam Mesaj: 19