blog posts

TCP/IP

TCP/IP Nedir? Nasıl Çalışır?

Örnek olarak FTP (File Transfer Protocol), dosya iletim protokolüdür. SMTP (Simple Mail Transfer Protocol) ise e-posta iletmek için kullanılırken, SSH protokolü Linux sistemler üzerinde güvenli bir tünel oluşturularak yönetim sağlama amacıyla kullanılmaktadır.

TCP/IP protokol ailesini anlayabilmemiz için öncelikle TCP ve IP protokollerini öğrenmemiz gerekmektedir.

 

TCP Nedir?

TCP (Transmission Control Protocol) bilgisayarlar arasındaki iletişimin, küçük paketler hâlinde ve kayıpsız olarak gerçekleştirilmesini sağlayan bir protokoldür. Aslında TCP (Transmission Control Protocol) protokolünün en önemli özelliği kimlik doğrulaması yapması ve veriyi karşı tarafa gönderirken veya alırken verinin bütünlüğünü sağlamasıdır. Gelişmiş bilgisayar ağlarında ortaya çıkan kayıpları önlemek için TCP protokolü yazılmıştır. HTTP, HTTPS, POP3, SSH, SMTP, TELNET ve FTP gibi günlük hayatta sıkça kullandığımız protokollerin veri iletimi TCP vasıtasıyla yapılır.

UDP protokolüne göre yavaş ancak güvenli bir veri iletişimi sağlar. UDP (User Datagram Protocol)  protokolünde ise verinin karşı bilgisayar tarafından alınıp alınmadığı kontrol edilmez ve veri iletişimi çok hızlı bir şekilde gönderilir.

TCP protokolü ilk olarak 1974 yılında A Protokol for Packet Network Intercommunication adı verilen bir makalede* duyurulmuştur. Veri bölünerek paketler halinde karşı tarafa iletilmesi sebebiyle paket anahtarlamalı olarak nitelendirilmektedir.

TCP (Transmission Control Protocol) Nasıl Çalışır?

TCP protokolünün çalışma mantığı üç başlıkta incelenebilir. Birinci aşamada hedefe bir bağlantı isteği gönderilir. İkinci aşamada bağlantının gerçekleştiği onaylanır ve veri transferi başlar. Üçüncü aşamada ise veri transferinin tamamlandığı taraflara iletilerek bağlantı sonlandırılır. Bu üç aşamanın gerçekleşmesi ‘’State’’ işlemi olarak tanımlanır.

TCP Bağlantısı Nasıl Kurulur?

TCP’de bu üç ana aşamanın gerçekleşmesi için bazı ara durumlar da gerçekleşmektedir. Bu ara durumlar aşağıdaki gibi sıralanmaktadır.

LISTEN

Sunucu tarafından bir TCP bağlantı isteğinin beklenildiği durumdur. Dinleme modu olarak adlandırılır.

SYN-SENT

Karşı tarafa TCP bağlantısı isteği gönderildikten sonra karşı taraftan bağlantı isteğine cevap verilmesi beklenilen durum olarak adlandırılır.

SYN-RECEIVED

SYN bayrağı ile yapılan bağlantı isteğine sunucunun SYN-ACK bayrağı ile cevap vermesi aşamasından sonraki bekleme durumu olarak adlandırılır.

ESTABLISHED

Bağlantı kurulduktan sonra gelen veri transferinin yapıldığı durumdur.

FIN-WAIT-1

Sunucu ve istemci tarafındaki bekleme durumudur.

FIN-WAIT-2

Karşı taraftan TCP bağlantısının bitirilme isteğinin beklendiği durumdur.

CLOSE-WAIT

Sunucu ve istemci tarafından bağlantı kapatma talebinin beklendiği durumudur.

CLOSING

Karşı tarafa bağlantının bitirilmesine dair bir ACK bayrağı gönderildikten sonra bağlantının bitmesini bekleme durumu olarak adlandırılır.

LAST-ACK

Sunucu ve istemci tarafında ACK beklendiği durumdur.

TIME-WAIT

Bekleme durumudur.

CLOSED

TCP bağlantısının tamamen bittiği durum olarak adlandırılır.

TCP bağlantısı kurulurken; yani iki bilgisayar birbiriyle TCP protokolü üzerinden bağlantı kurmak istediğinde aşağıdaki sıralama ile işlemler gerçekleşmeye başlar:

  1. X bilgisayarı Y bilgisayarına bir TCP SYN mesajı yollar.
  2. Y bilgisayarı X bilgisayarının isteğini aldığına dair bir TCP SYN+ACK mesajı yollar.
  3. X bilgisayarı Y bilgisayarına TCP ACK mesajı yollar.
  4. Y bilgisayarı bir ACK “TCP connection is ESTABLISHED” mesajı alır.

Üçlü el sıkışma adı verilen bu yöntem sonucunda TCP bağlantısı açılmış, süreç başarılı ve güvenli bir şekilde sağlanmış olur.

TCP Bağlantısının Aşamaları

Bir TCP bağlantısı yapılırken yukarıda anlattığımız gibi üçlü el sıkışma adı verilen (3-Way Handshake) bir işlem gerçekleştirilmektedir. Bu işlem sırası aşağıdaki gibi belirtilmektedir:

  1. İstemci, Sunucuya bir SYN paketi gönderir.
  2. Sunucu bu pakete karşılık olarak SYN-ACK veri paketleriyle cevap verir.
  3. Son aşamada İstemci bilgisayar, Sunucuya ACK mesajı gönderir ve ilk iletişim başlatılmış olur.

Eğer bu işlem sırasında İstemci karşı taraftaki Sunucunun dinlenmeyen (açık olmayan) bir portuna bağlantı isteği iletirse -ki bu işlem sırasında LISTEN modda olması gerekir- Sunucudan yukarıda belirtmiş olduğumuz SYN-ACK paketi cevabı yerine RST-ACK cevap paketi gönderilir. Bu noktada Sunucu bağlantıyı reddetmiş olur ve bağlantı kurulmaz. RST paketi ‘’reset’’ olarak tanımlanır ve açık bir bağlantıyı kesmek için de kullanılır.

IP Nedir?

IP, Türkçe açılımı ve çevirisiyle internet protokolünün kısaltmasıdır. Bilgisayarların birbirleri ile iletişiminde en önemli nokta olan ağ adreslemede kullanılan düzendir. IP (internet protokolü), iki bilgisayar arasındaki paketlerin yönlendirilmesini sağlayan bir protokol olarak tanımlanır. Yönlendirme protokolü olarak tanımlanan IP, veri için gerekli olan yönlendirmenin kurallarını belirlemektedir. IP’de verinin niteliği önemli değildir ve veri içeriği ile ilgilenmeden bu protokol sadece gideceği adresi belirler.

IP (Internet Protocol) Nasıl Çalışır?

IP çalışma mantığında TCP veri paketinin izleyeceği yol belirlenir. Bu işlem yapılırken de TCP katmanından gelen veri paketine kendi SEGMENT başlığını ekler. Bu durumda ortaya datagram çıkmış olur. IP (Internet Protocol), veriyi karşı tarafa yönlendirirken, alıcının bu veriyi kabul edeceği veya etmeyeceği konusunda bir doğrulama yapmaz. Hata kontrolü bir üst katmanın işidir ve bu sayede IP kendi başına çalışabilen bir protokol olarak bilinir.

TCP/IP Katmanları Nelerdir?

TCP ve IP birleşerek TCP/IP protokol ailesini oluşturmaktadır. Bu sayede bilgisayarlar arasında birden fazla iletişim metodu kullanılabilmektedir. Bu iletişim sırasında kullanılan TCP/IP katmanları ise aşağıdaki gibi belirtilmiştir.

TCP/IP Referans Modeli

  • 4. Katman – Uygulama
  • 3. Katman – Taşıma
  • 2. Katman – İnternet
  • 1. Katman – Ağ

Uygulama Katmanı: Uygulama katmanında farklı sunucular üzerindeki süreç ve uygulamalar arasındaki iletişim sağlanır. Bu iletişim sırasında ise HTTP, HTTPS, SSH, SMTP, TELNET ve FTP gibi protokoller kullanılmaktadır.

Taşıma Katmanı: Bir noktadan diğer noktaya veri akışını sağlayan katmandır. Bu katman üzerinde TCP ve UDP protokolleri kullanılmaktadır.

İnternet Katmanı: Router cihazları ile birbirlerine bağlanmış olan ağlar arasında verinin bir kaynaktan hedef bilgisayara kadar gerekli olan iletiminin sağlanması için kullanılır. Bu veri aktarımı sırasında kullanılan bilgiler internet katmanı ile transfer edilir.

Ağ Erişim Katmanı: Bu katmanda uç nokta ile ağ arasında yer alan bağlantı arabirimi kullanılır. Bilgisayar dili 0 ve 1’lerden oluşmaktadır ve bu katmandaki iletişim için veri paketleri 0 ve 1’lere dönüştürülerek taşınır.

Veri iletimi sırasında OSI Referans Modeline Göre aşağıdaki katmanlar kullanılır.

OSI Referans Modeline Göre Katmanlar

  • 7. Katman – Uygulama
  • 6. Katman – Sunum
  • 5. Katman – Oturum
  • 4. Katman – Taşıma
  • 3. Katman – Ağ
  • 2. Katman – Veri Bağlantısı
  • 1. Katman – Fiziksel Bağlantı

 

İşletmenizi ve İtibarınızı Siber Tehditlere Karşı Korumak İçin Berqnet Firewall’la Hemen İletişime Geçin!

TCP/IP Protokolleri

Bilgisayarlar arası veri iletişimi sırasında farklı katmanlara göre farklı protokoller kullanılmaktadır.

Donanım Katmanındaki Protokoller: Bu katmanda ARP ve RARP protokolleri kullanılır. ARP protokolü adres çözümleme için kullanılmaktadır. Bir IP adresinin hangi ağ kartına ait olduğunu belirleyen bir tabloya sahiptir. RARP protokolü ise ters ARP olarak adlandırılan hangi cihazın hangi IP adresi ile eşleşeceğini belirler.

IP Katmanındaki Protokoller: Bu katmanda birçok protokol kullanılmaktadır. ICMP protokolü hata veya benzeri amaçlarla kullanılan mesajlaşma protokolüdür. RIP, ağınızdaki yönlendirme cihazlarının tabloları için oluşturulmuştur. DHCP ise bir TCP/IP bağlantısı sırasında cihazlara otomatik olarak IP adresi ve geçici ağ maskesi gibi DNS tanımlama işlemlerini üstlenmektedir. Bu katmanda OSPF, IGMP gibi birçok farklı protokol kullanılır.

Taşıma Katmanındaki Protokoller: Bu katmanda UDP ve TCP protokollerini görmekteyiz. UDP protokolü yukarıda tanımlamış olduğumuz TCP protokolüne kıyasla çok daha hızlı ancak verinin bütünlüğünü ve karşı tarafa iletilip iletilmediğini kontrol etmediği için güvensiz olarak bilinir. UDP protokolü hızın gerekli olduğu yerlerde ve genelde video izleme gibi yayın yapan (Stream) veri türlerinde kullanılır. TCP protokolünde ise ilk gönderilen veri paketinden son pakete kadar tüm paketlerin kontrolü sağlanır.

Uygulama Katmanındaki Protokoller: Bu katmanda da birçok protokol kullanılmaktadır. DNS bu protokollerin en önemlisidir. DNS sayesinde alan adları çözülerek bu alan adlarına karşılık gelen IP adresleri belirlenir. HTTP ve HTTPS protokolleri de bu katmanda yer almaktadır. Güvenli ve güvensiz hiper metin gönderme işlemleri gerçekleştirilir. Web sitelerinin tarayıcılarımızda görüntülenmesini sağlayan protokol olarak bilinir. POP3 ve SMTP protokolleri ise e-posta mesajlaşması için kullanılan protokollerdir. Diğer bir yanda ise FTP ve FTPS dosya paylaşım protokollerini de bu katmanda görmekteyiz.