Bu soru zaten yanıtlanmış olarak işaretlenmiş olmasına rağmen, OP'de sorulan bazı ek soruları ele almak istedim.
Bu bağlantı noktaları fiziksel nesneler mi?
Hiçbir bağlantı noktası fiziksel nesne değildir.
Bağlantı noktası numarası 16 bit işaretsiz bir tamsayıdır, yani kullanım için kullanılabilir bağlantı noktası aralığı 1 ila 65535 arasındadır (bağlantı noktası numarası 0 ayrılmıştır ve kullanılamaz). Bir işlem, giriş veya çıkış kanallarını bir tür dosya tanımlayıcı olan Internet soketleri aracılığıyla bir aktarım protokolü, bir bağlantı noktası numarası ve bir IP adresi ile ilişkilendirir. Bu işlem bağlama olarak bilinir ve ağ üzerinden veri gönderilmesini ve alınmasını sağlar.
Bunlar bilgisayarımın bir parçası mı? Fiziksel bir şey bile mi? Veya kodla mı yazılmış? Bu kod nerede? İsletim sistemi? Bir liman gerçekte nedir?
İşletim sisteminin ağ yazılımı, tüm uygulama bağlantı noktalarından giden verileri ağa iletmek ve paketin IP adresini ve bağlantı noktası numarasını eşleştirerek gelen ağ paketlerini bir işleme iletmekle görevlidir.
Aynı taşıma protokolünü kullanarak yalnızca bir işlem belirli bir IP adresine ve bağlantı noktası birleşimine bağlanabilir. Bazen bağlantı noktası çakışmaları olarak adlandırılan yaygın uygulama hataları, birden çok program aynı protokolü kullanarak aynı IP adresindeki aynı bağlantı noktası numaralarına bağlanmaya çalıştığında ortaya çıkar.
Yukarıdaki paragraf, ağlarda bağlantı noktalarının / protokollerin neden kullanıldığını anlamanın anahtarıdır. Anlaşılan bir apon port numarası üzerinden veri ileten protokolü belirtmek için bir yolumuz olmasaydı, bilgisayarınızda aynı anda 1'den fazla şey yapamazsınız (e-postanızı kontrol edin ve web'i kullanın). e-posta istemcinizin verileri ile taradığınız web sitesinin verileri arasında ayrım yapmanın bir yolu yoktur.
Kaç tane bağlantı noktası var?
Bağlantı noktası numaraları üç aralığa göre çeşitli şekillerde atanır:
Tanınmış / Sistem Bağlantı Noktaları (0-1023) - Bu bağlantı noktası aralığı, yaygın olarak kullanılan ağ hizmeti türleri (HTTP / 80, HTTPS / 443, Telnet / 21, SSH / 22) sağlayan sistem işlemleri tarafından kullanılır.
Kayıtlı / Kullanıcı Portları (1024-49151) - 1024 ila 49151 arasındaki port numaralarının aralığı kayıtlı portlardır. Talep eden bir tüzel kişi tarafından başvuru üzerine IANA tarafından özel hizmet için atanırlar. (Webmin / 10000, HTTP Proxy / 8080, Uzak Masaüstü Protokolü / 3389 vb.)
Geçici / Dinamik / özel bağlantı noktaları (49152-65535) - aralık 49152-65535 dinamik veya özel bağlantı noktaları içeriyor olamaz IANA'da kayıtlı olması. Bu aralık özel veya geçici amaçlar ve geçici bağlantı noktalarının otomatik olarak atanması için kullanılır.
Bağlantı noktası sayısını artırabilir veya azaltabilir miyim?
Kullanılabilir bağlantı noktalarının sayısını artırabilme konusunda, ağın çalışmasına izin veren matematik (ikili) nedeniyle 65535'in üzerinde bir bağlantı noktası atayamazsınız - bu nedenle bu sorunun cevabı hayır, toplam kullanılabilir sayısını artıramazsınız. 65535 üzerindeki bağlantı noktaları.
Protokoller nelerdir?
Bilgisayar bilimlerinde, bir iletişim protokolü bilgisayarlar içinde veya arasında mesaj alışverişi için dijital kurallar sistemidir. Mesajlar bir bilgisayar ağı üzerinden değiş tokuş edildiğinde, kurallar sistemine ağ protokolü denir. Protokol temel olarak iki ağa bağlı cihazın iletişim kurabileceği bir dizi talimat / komut / çağrı üzerine kararlaştırılır. Protokoller ve web sunucuları üzerinde anlaşmaya varmadığımızı düşünün, tarayıcının ne yapacağını bilmediği web tarayıcılarına rastgele rastgele veri gönderdik mi? Neyse ki, HTTP'ye sahibiz ve oluşturulan her web tarayıcısı da aynı dili (HTTP) konuşan herhangi bir web sunucusuyla iletişim kurabilmesi için yazılıma dahil edilmiştir.
Bir tür kod olduklarını düşünürdüm .... Kendi protokolünüzü oluşturabilir misiniz? Protokol oluşturmak için hangi dili kullanıyorsunuz?
Evet, kendi protokollerinizi oluşturabilirsiniz. Protokoller çok çeşitli dillerde yazılmıştır. Yazılım geliştiricisi değilim, ancak kullandığınız dilin TCP / IP üzerinden iletişim kurabilen yazılım yazmanıza izin veren kütüphanelere sahip olduğundan eminim (diğer protokol paketleri vardır, ancak en çok TCP / IP'dir) yaygın olarak kullanılır) bir protokol yazmak için bu dili kullanabilirsiniz. Programlama dili 'C' protokol yazmak için en yaygın kullanılan dil gibi görünmektedir. Bunun nedeni ilk ağ protokollerinin birçoğunun 1970'lerde UNIX üzerinde geliştirilmesidir ve C, UNIX'in kendisinin yazıldığı dil olur.
Belirli bir bağlantı noktasını belirli bir protokolü çalıştırmak için nasıl edinebilirsiniz?
Bu işletim sistemleri arasında oldukça farklıdır. Örneğin, Windows'ta Uzak Masaüstü Protokolü'nün çalıştığı bağlantı noktası numarasını değiştirmek için kayıt defterini düzenlemeniz gerekir. Linux'ta, ağ hizmetlerinin çoğu, belirli bir ağ hizmeti için doğrudan bir .conf dosyasından yapılandırılabilir.
Yeni bir protokolü nasıl tanımlar veya icat edersiniz?
Yakın zamanda yeni bir ağ protokolü geliştiren birinin ve ne tür şeyler yapması gerektiğini blog yazısı için https://journal.paul.querna.org/articles/2012/02/22/designing-network-protocols/ adresine bakın. yol boyunca.