TCPIP vs konularında bir hoca çıksa da forum içi eğitim verse

Başlatan z, 17 Eylül 2016, 12:48:18

z

Nesnelerin interneti vs artık kaçınılmaz.

Kendi TCPIP kodlarımızı yazabilmek için konulara damardan girmek isteyenlere hitaben  TCPIP vs konularında forum içi eğitim verecek cengaverimiz yokmudur?

TCPIP nedir paket nedir nelerden oluşur formatı nasıldır vs vs....


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ByTEK

@z hocam TCP/IP için sıfırdan kod yazmanın zahmetli olacağını düşünüyorum. gerçi sizin ne kadar istekli olduğunuzu biliyorum.

Daha önce bir kaç hobi amaçlı arduino ile çalışmam olmuştu ama maalesef kütüphane kullanmıştım.

ilavetten aşağıdaki kitabı almıştım. İçinde arduino ve ESP8266 wireless modül ile neler yapılabileceğini anlatıyor.

http://www.idefix.com/Kitap/ESP8266-ve-Arduino-ve-Nesnelerin-Interneti/Hasbi-Sevinc/Egitim-Basvuru/Bilgisayar/urunno=0000000677246?gclid=Cj0KEQjw0_O-BRCfjsCw25CYzYoBEiQAqO9BDM9O3FevIBdbWY9ZJjwnUxPUZkvo7Eimg_Nk6PhKSNMaAqtY8P8HAQ

Barış beyin hazırladığı bir Kaynak daha önce verilmişti ama yeniden verelim  : http://www.barissamanci.net/Makale/3/microchip-stack-v520-yaptiginiz-donanimlari-dunyaya-acin/


z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

M_B

@z hocam iyi bir konuya parmak bastınız.
Şimdi bizleri bilgilendirecek gönüllü bir ustaya ihtiyacımız var.
Bu başlığı takipteyim. Bekliyorum
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

z

Bir hoca bekliyoruz. İnternetten merak ettiğim soruların cevabını bulup buraya da yazıyorum.


TCP/IP neyin kısaltmasıdır?

Transmission Control Protocol/Internet Protocol.

TCP/IP ne iş yapar nerede kullanılır?

TCP/IP protokolleri bilgisayarlar arası veri iletişiminin kurallarını koyar.

Farklı tipteki bilgisayarlarla network ortamı kurmaya yarar.

TCP/IP Nasıl bir protokoldür?

Yapı olarak iki katmanlı bir haberleşme protokolüdür.  ( !!!! Kimi dokümanlarda 4 katmandan bahsediliyor !!!!)

Üst Katman TCP(Transmission Control Protocol) verinin iletimden önce paketlere ayrılmasını ve karşı tarafta bu paketlerin yeniden düzgün bir şekilde birleştirilmesini sağlar.

Alt Katman IP (Internet Protocol) ise, iletilen paketlerin istenilen ağ adresine yönlendirilmesini kontrol eder.

TCP/IP Protokülünde İletişim Nasıl Kurulur?

TCP/IP, kullanılan ağlarda her bilgisayarın bir IP adresi vardır. Bu adresler paketlerin hedeflerine ulaşmasını sağlar. Her TCP/IP paketine, hedefe ulaştırılabilmesi için, alıcının IP adresi ve geri paket yollanabilmesi için göndericinin adresi yazılır. Yazılan adresler, gönderici ile alıcı bilgisayar arasındaki olası router cihazları tarafından okunup hedefine doğru yönlendirilir.



mesaj birleştirme:: 17 Eylül 2016, 14:13:43

TCP/IP Çalışma Esasları

TCP'nin çalışma esası üç faz altında incelenebilir:

1) Öncelikle hedefle bir bağlantı gerçekleşir.
2) Bağlantı gerçekleştikten sonra veri transferi yapılır.
3) Veri transferi yapıldıktan sonra da bağlantı sona erdirilir.

TCP'de bu üç fazın gerçekleşmesi için bazı ara durumlar (state) tanımlanmıştır. Bu durumlar aşağıdaki gibidir.

LISTEN:   (sunucu) İstemci tarafından bir TCP bağlantı isteğinin beklenildiği durum
SYN-SENT : (istemci) Karşı tarafa TCP bağlantısı isteği gönderildikten sonra karşı taraftan bağlantı isteğine cevap beklenilen durum
SYN-RECEIVED: (sunucu) İstemci tarafından SYN bayrağı ile yapılan bağlantı isteğine sunucunun SYN-ACK bayrağı ile cevap vermesinden sonraki bekleme durum
ESTABLISHED : (sunucu ve istemci) Bağlantı kurulduktan sonraki veri transferinin yapıldığı durum
FIN-WAIT-1: (sunucu ve istemci)
FIN-WAIT-2: (sunucu ve istemci) karşı taraftan TCP bağlantısının bitirilme isteğinin beklendiği durum
CLOSE-WAIT: (sunucu ve istemci)
CLOSING: (sunucu ve istemci) Karşı tarafa bağlantının bitirlmesine dair bir ACK bayrağı gönderildikten sonra bağlantının bitmesini bekleme durumu
LAST-ACK: (sunucu ve istemci)
TIME-WAIT :(sunucu ve istemci)
CLOSED: (sunucu ve istemci) TCP bağlantısının tamamen bittiği durum

TCP bağlantısı nasıl kurulur?

A bilgisayarı B bilgisayarına TCP yoluyla bağlanmak istediğinde şu yol izlenir:
A bilgisayarı B bilgisayarına TCP SYNchronize mesajı yollar
B bilgisayarı A bilgisayarının isteğini aldığına dair bir TCP SYN+ACKnowledgement mesajı yollar
A bilgisayarı B bilgisayarına TCP ACK mesajı yollar
B bilgisayarı bir ACK "TCP connection is ESTABLISHED" mesajı alır

Üç zamanlı el sıkışma adı verilen bu yöntem sonucunda TCP bağlantısı açılmış olur.

Veri iletimi

Bağlantı oluşturulduktan sonra, B bilgisayarı A bilgisayarından paketler almaya başlar. B, her aldığı paketten sonra bir süre bekledikten sonra en son düzgün olarak aldığı paket grubunu A'ya bildirir. Gelen bildirimlere göre A, daha sonra hangi paketleri yollaması gerektiğine karar verir ve yollar. Arada kaybolan paketler (veya paket alındı bilgileri) tekrar tekrar gönderir.

TCP bağlantısının sona erdirilmesi

Veri iletişimi bitince bilgisayarlardan herhangi biri diğerine TCP kapatma mesajı yollar. Diğer bilgisayar, kapatmayı teyid etme paketi ve kapatma isteği yollar. Son olarak, diğer bilgisayar da kapatma teyidini yollar ve bağlantı kapatılmış olur.

Bu işlemin adımları tam olarak şöyledir:

A bilgisayarı B bilgisayarına bağlantıyı sonlandırmak istediğine dair TCP FIN mesajı yollar.
B bilgisayarı A bilgisayarına bağlantı sonlandırma isteğini aldığına dair TCP ACK mesajı yollar.
B bilgisayarı A bilgisayarına bağlantıyı sonlandırmak istediğine dair TCP FIN mesajı yollar.
A bilgisayarı B bilgisayarına bağlantı sonlandırma isteğini aldığına dair TCP ACK mesajı yollar.

Bu işlemlerin sonunda TCP bağlantısı sonlandırılmış olur. Buna 4 zamanlı el sıkışma denir.[8]

Görüldüğü üzere, bağlantının kurulmasından farklı olarak bağlantı her cihaz için ayrıca kapatılmaktadır. Bunun nedeni, istenildiğinde bağlantının tek yönlü olarak açık tutulabilmesini sağlamaktır. Bunun için tek tarafın bağlantı kapama adımlarını gerçekleştirmesi gerekir.


TCP Segmenti

TCP bağlantı tabanlı (connection-oriented) bir protokoldür.  TCP bağlantı tabanlı bir protokol olduğu için iki bilgisayar, üçlü el şıkışma (3-way handshaking) yaptıktan sonra veri alışverişi yapmaya başlar.

TCP, taşıma katmanında verileri parçalara bölerek her bir parçanın önüne başlık bilgisi ekler. Başlık bilgisiyle birlikte bu veriye 'TCP Segmenti' denir.

TCP Segmentinin Yapısı


Bunun için https://tr.wikipedia.org/wiki/TCP  adresindeki tabloya bakmak gerekecek.


Kaynak Port (Source Port): Veriyi gönderen bilgisayarın kullandığı TCP portudur.

Hedef Port (Destination Port): Hedef bilgisayarın TCP portudur.

Sıra Numarası (Sequence Number): TCP'nin verinin böldüğü her bir segmentine verdiği numaradır.

Onay Numarası (ACK Number): Alınan bir SYN paketine karşılık olan onay mesajı ACK biti ile gönderilir.

Başlık Uzunluğu (Header Length/Data Offset): TCP başlığının uzunluğunu gösterir.

Rezerve Edilmiş (Reserved): İlerde kullanılmak üzere saklı tutulur.

Kod Bitleri ya da Bayraklar (Code Bits or Flags): Segment ile ilgili kontrol bilgilerini taşır.

Pencere (Window): Akış denetimi için kullanılır.

Hata Kontrol Bitleri (Checksum): Segmentin hatalı ulaşıp ulaşmadığını kontrol etmek için kullanılır.

Acil İşaretçisi (Urgent Pointer): Bir verinin acil olarak iletilmek istendiği durumlarda kullanılır.

Seçenek (Option): TCP segmentinin maksimum boyutunun bilgisini taşır.

Veri(Data):Verinin bulunduğu kısım.[12]

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Tamaammm. Hocamızı bulduk.

Hadi şu işe sen el at. 

Ders bitiminde kebap ta ısmarlarım.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ByTEK

Kaynak olarak değerlendirebilir.

Network – En Çok Kullanılan Aktif Cihazlar
http://www.sercanca.com/network-en-cok-kullanilan-aktif-cihazlar/

Daha çok Network te kullanılan aktif cihazların neler olduğuna değinmiştim.

z

İlk sorumu sorayım.

TCP/IP protokolü için ille de ethernet şartmıdır? İşi anlayıncaya kadar karşılıklı iki cihazı USART üzerinden bağlayıp TCP/IP protokolüne göre haberleşemezmiyiz?

Bu konuların tamamen dışındayım ama içgüdülerim TCP/IP protokolünü yazabilmek için ethernet haberleşmesine ihtiyacımız olmadığını söylüyor. Sonuçta birisi protokol diğerisi donanım.

Seri portu olan 2 işlemci kartını ya da PC'yi kullanarak  sadece 2 cihazdan oluşan network kurabiliriz.

Bu durumda doğrudan veri alma rutinlerini yazıp hemen üstüne TCP/IP protokolünü inşaa edebiliriz. Daha sonra donanımla ilgili yazılımları ethernet yazılımları ile değiştiririz.

Bu benim işime gelir bu güne kadar hiç ethernet donanımı kullanmadım haliyle bu donanıma yazılım da yapmadım.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ByTEK

@z bildiğim kadarıyla TCP IP ethernet yapısı üzerine kurulan bir protokol. COM ile verimli olacağına inanmıyorum. Hadi oldu diyelim. Hız bakımından yeterli geleceğini sanmıyorum. Günümüzde ethernet kartları min 100 mbps hızları var.

internette converter cihazların olduğunu gördüm. Ama sadece çevirici anladığım kadarıyla.

Eğer yapılabiliyorsa bilen birinden örnek yada kaynak bekliyorum.

mesaj birleştirme:: 18 Eylül 2016, 14:56:20


TCP detaylı anlatan kaynak.
https://tr.wikipedia.org/wiki/%C4%B0nternet_ileti%C5%9Fim_kurallar%C4%B1_dizisi

tunayk

Ethernet kablomuz aslen Rs422 benzeri full duplex ve işlemci tarafından izole olması dışında bir özelliği yok.  Tcp IP stack yazılımsal tarafta.  İstenirse işlemcilerin Rx Tx pinleri birleştirip çalışır pekala.

z

Bu aşamada iletişim hızını düşünmeye gerek yok. PRotokol yazılımını yaptıktan sonra ethernete geçebiliriz.

Çok mu yanlış düşünüyorum?  Sadece protokol kurallarını koda dökeceğiz. Sanki 1-2 günlük işi var gibime geliyor.

Seri portu forumda artık herkes avcunun içi gibi biliyor. Ethernet donanımının çoğunluğumuza yabancı olduğunu sanıyorum.

Bu nedenle seri portla işe başlamak çoğumuzu ürkütmez.

Ama dediğim gibi ben bu işlerden anlamam. Hissi yazıyorum.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ByTEK

TCP/IP denildiğinde tüm protokolleri kapsayan ana protokoller bütünüdür.

Protokol bir iletişim sürecinde bu bağlantıyı sağlayan noktalar arasındaki gidip gelen mesajlaşmayı düzenleye kurallar dizisidir. Bu protokoller birbirleriyle iletişim içinde bulunan gerek donanım gerekse yazılımlar arasında oluşur. İletişimin gerçekleşmesi için her öğenin bu protokolü kabul etmiş ve uyguluyor olması gerekir.

TCP/IP 'de bu şekilde oluşan yüzden fazla bilgi iletişim protokolün toplandığı bir protkoller ailesidir. Bunlardan en önemlileri TCP (transmission control protokol) ve IP (ınternet protokol) olduğu için bu ismi almıştır.

TCP (Transmission Control Protocol)

UDP (User Datagram Protocol)

TCP :  TCP veri aktarımı için güvenlidir fakat UDP 'ye göre daha yavaştır. TCP 'de paketlerin karşı tarafa ulaşıp ulaşmadığı kontrol edilir.

TCP, gönderilen veriler için özel bir paketi gönderir. Bu paket, gelmiş olan paketlerden hangi byte'a kadar olan kısmının doğru olarak alındığını gösterir. Gönderen taraf, kabul gelmediği sürece paketi arka arkaya birkaç kez yollar (belli bir süre sonra da pes eder)

UDP : Daha çok ses ve video paketlerinin gönderiminde kullanılır. TCP 'ye göre hızlıdır fakat güvenli değildir. Örneğin internet üzerinden canlı yayın uygulamaları, video görüntüleri UDP ile aktarılır.

Burayıda gözden geçirin Hocam : http://www.emrahustun.com/gunluk/ag-iletisim-protokolleri-tcp-ip-ve-arm-islemci/321

Yuunus

Z hocam olmaz, veri treninin uzunluğuna bakarsan dünya kadar flag adres data biti var kas yapayım derken göz çıkabilir en az 1500 bit veri katarının analiz edilmesi gerekir, hadi data kısmını es geçelim yine ortada hatrı sayılır bir veri blogu kalıyor. Bir ara uğraşayım dedim ama baktım amerikayi baştan keşfetmeye çalışıyorum bıraktım, bunun yerine protokol kutuphaneleri üzerine yoğunlassanız daha iyi olur nacizane önerim. Zaten bu kadar veriyi analiz edip cevap yollamak için bayağı iyi işlemcilere ihtiyaç var, ethernet rekabet acisindan. Zaten siz arastirmisinizdir.

z

Digiman hemen havlu atma durumuna girme. Hele bir yazmayı dene. Pratik yap.

Bana bu linkte anlatılanları kodlamak hiç zor gelmedi.  https://tr.wikipedia.org/wiki/TCP

Şu anda işyerindeyim ve verdiğiniz linklerin çoğuna teknik blokajlardan dolayı bakamıyorum.

Bu arada ethernete rekabet falan yok nerden çıkarttın bunu.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ByTEK

@z Teknik kısıtlamalara her zaman karşıydım. Eğer Firewall düzgün yapılandırılmadı ise sizi sorunsuz internete çıkartır. Eğer başarılı olursa loglamaya takılmazsınız.
Bu uygulamayı deneyin : https://psiphon3.com/tr/index.html