Bir port aynı anda bir process tarafından dinlenebilir. Fakat bir process birden fazla portu dinleyebilir.

Benzer belgeler
Soket IPC (bağlantı doğrultusunda olan istemci and sunucu operasyonları) Sunucu. İstemci. socket() Bir soket yarat. bind()

BLGM 344 DENEY 3 * AĞ PROGRAMLAMAYA GİRİŞ

BLGM 343 DENEY 8 * TCP İLE VERİ İLETİŞİMİ

HAZIRLAYAN BEDRİ SERTKAYA Sistem Uzmanı CEH EĞİTMENİ

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

Ayni sistem(host) üzerinde IPC. Ağ(network) aracılığı ile IPC

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

Bilgisayar Programcılığı Uzaktan Eğitim Programı. e-bilg 121 AĞ TEKNOLOJİLERİNİN TEMELLERİ Öğr. Gör. Bekir Güler

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI

BM 402 Bilgisayar Ağları (Computer Networks)

ÖRÜN (WEB) GÜVENLİĞİ. Hazırlayan: Arda Balkanay

TCP/IP. TCP (Transmission Control Protocol) Paketlerin iletimi. IP (Internet Protocol) Paketlerin yönlendirmesi TCP / IP

Web Tasarımının Temelleri

EC-485. Ethernet RS485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

ÖNDER BİLGİSAYAR KURSU. Sistem ve Ağ Uzmanlığı Eğitimi İçeriği

DHCP kurulumu için Client/Server mimarisine sahip bir ağ ortamı olmalıdır ki bu da ortamda bir Domain Controller olmasını zorunlu kılar.

Ağ Altyapısı ve Dağıtılmış İşlem

Socket Programming. Z. Cihan TAYŞİ

Ağ programlama (Network programming) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 13 1

T.C. KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

ĐZLEME(MONITORING) HĐZMETĐ

WEB TASARIMININ TEMELLERİ

Ağ Altyapısı ve Dağıtılmış İşlem

BM 402 Bilgisayar Ağları (Computer Networks)

DM-501 Tak-Çalıştır GPRS-UART Köprüsü

EC-232C. Ethernet RS232 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

HTTP. (Hyper Text Transfer Protocol)

Kurumsal Güvenlik ve Web Filtreleme

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı EKi Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU

DNS Nedir? HİKMET TÜYSÜZ

AĞ HİZMETLERİ. Öğr.Gör.Volkan ALTINTAŞ. Version 4.0

Bölüm3 Taşıma Katmanı. Transport Layer 3-1

MCR02-AE Ethernet Temassız Kart Okuyucu

DNS. Linux Yaz Kampı Bolu 2012 Eray Aslan

Kurumsal Güvenlik ve Web Filtreleme

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı EKi Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU

FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH.

ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ

BİLGİSAYAR AĞLARI VE İLETİŞİM

Exchange Server 2013 Kurulum Sonrası Yapılandırmalar

Saldırı Tespit ve Engelleme Sistemleri Eğitimi Ön Hazırlık Soruları

MutluSantral API Dokümanı. Versiyon 1.0.1

Hazırlayan: Barış Şimşek. Bitirme Çalışması Sunumu. Ocak 2001, Trabzon KTÜ

HAFTA-3 ARP (Address Resolution Protocol) (Adres Çözümleme Protokolü)

Devrim Seral. Proceedings/Bildiriler Kitabı. ve hatta siyasi yada politik nedenlerle sorun. (Domain Name System Amplification)

Karadeniz Teknik Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuarı ĐSTEMCĐ VE SUNUCU MĐMARĐLERĐ

Sunucularımızı Gözleyelim. Oğuz oguzyarimtepe ~ gmail.com

Bilindik engelleme yöntemlerinin dışında olan, kurumsal web filitreleri nasıl aşılır?

INTERNET INFORMATION SERVICES 6.0 DA WEB SAYFASI YAYINLAMAK

Fedora Core Ağ Ayarları

Bilgisayar Ağı Nedir?

Windows Server 2012 DHCP Kurulum ve Yapılandırma

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2. İçerik. IP ICMP MAC Tracert

Ağ Sızma Testleri ve 2. Katman Saldırıları Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

BİLGİSAYAR AĞLARI VE İLETİŞİM

TCP/IP protokol kümesini tanımlamak. Bu protokol kümesindeki katmanları sıralamak.

Bölüm 12: UDP ve TCP UDP (User Datagram Protocol)

Bilgisayar Ağları. Ağı oluşturan cihazlar. Coğrafi koşullara göre ağın sınıflandırılması (LAN, MAN, WAN)

Bölüm 5 İletim(Transport) Katmanı

IPv6 Geçiş Yöntemleri Analizi

AĞ TEMELLERİ 4.HAFTA CELAL BAYAR ÜNİVERSİTESİ AKHİSAR MESLEK YÜKSEKOKULU

F2114 GPRS MODEM İLE SERİ HABERLEŞME VE VCOM UYGULAMASI KILAVUZU

Ağ Topolojisi ve Ağ Yazılımları

EC-100. Ethernet RS232/422/485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

Dünyanın bilgisine açılan pencere... Ya da sadece yeni çağın eğlencesi...

Belge Ozan UÇAR tarafından yazılmıştır ve yazarın ismine sadık kalmak kaydı ile belge izin alınmaksızın her şekilde paylaşılabilir ve dağıtılabilir.

Đstanbul Teknik Üniversitesi Bilgi Đşlem Daire Başkanlığı. 9 Kasim 2007 INET-TR Ankara

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

WEB PROGRAMLAMA. PHP Temelleri 2. Dr. Erman Yukselturk

9. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Kets DocPlace Bilgi Bankası. 1. İstemcilerde sunucuya ulaşılamadı şeklinde bağlantı hatası alınıyor... 2

Sanal IPv6 Balküpü Ağı Altyapısı: KOVAN. Yavuz Gökırmak, Onur Bektaş, Murat Soysal, Serdar Yiğit

Internet Teknolojileri

WINDOWS SERVER 2008 R2 REMOTE DESKTOP SERVICES RD Connection Broker

Belgenin yeni sürümlerine adresinden ulaşabilirsiniz.


CELAL BAYAR ÜNİVERSİTESİ KÜTÜPHANE VERİTABANLARINA ÜNİVERSİTE DIŞINDAN ERİŞİM

ProFTPD FTP Sunucusu. Devrim GÜNDÜZ. TR.NET Sistem Destek Uzmanı.

Web Uygulamarına Yönelik DoS DDoS Saldırıları ve Performans Testleri. Barkın

Pac Dosyası İle Proxy Kullanmak

.: Linux Kullanıcıları Derneği. III. Linux ve Özgür Yazılım Şenliği Mayıs Milli Kütüphane Ankara :.

MaestroPanel Kurulum

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Đlk olarak 80 li yıllarda Amerikan Savunma Bakanlığı (DoD) tarafından OSI tabanlı sistemlere alternatif olarak geliştirilmiştir.

AĞ KULLANIM KILAVUZU. Yazdırma Günlüğünü Ağa Kaydetme. Sürüm 0 TUR

Wireshark Lab.: DNS. 1. nslookup

Bildiğimiz gibi commanda ekranın çok çeşitli sorgulamalar yapılabilir.bunlara örnek olarak

BİLGİSAYAR 4 MOLEKÜLER BİYOLOJİ VE GENETİK BÖLÜMÜ 1. DERS İNTERNET, TCP/IP, İNTERNETTE MESAJ VE BİLGİ AKTARIMI YARD. DOÇ. DR.

Internetin Yapı Taşları

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

İNTERNET VE BİLGİ AĞLARININ KULLANIMI

Tuğrul Boztoprak. 1 Haziran 2009 III. ULAKNET Çalıştay ve Eğitimi

Ağ Temelleri Semineri. erbil KARAMAN

KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI. Wireshark ile Ağ Paket Analizi

Toplu İleti Gönderimi

Ağ Protokolleri. Aysel Aksu. Nisan, 2016

Transkript:

Port Nedir? Bir network cihazından diğerine veri gönderilirken hedef cihazın bu veri ile ilgili ne yapacağına dair bir bilgi göndermeye bir yol sağlanmamıştır. TCP ve UDP bu soruna port adı verilen bir çözüm sağlar. Port network cihazı üzerinde atanan IP adreslerine bağlı bir uç noktadır. Portlar, network cihazı üzerindeki çalışan processler tarafından sahiplenilir ve process bu portu dinlediğini söyler. Portlar 16 bitlik sayılar halinde gösterilir. Bu da bir cihaz üzerindeki IP adresinin processlerin sahiplenebileceği 65535 olası port numarasına sahip olduğunu gösterir. Bir port aynı anda bir process tarafından dinlenebilir. Fakat bir process birden fazla portu dinleyebilir. Her uygulama port numarasını belirtmek zorundadır. Eğer belirtmezse işletim sistemi tarafondan otomatik olarak atanır. Network Socket Nedir? İnterface adresi ile port numarasının birleşimi socket olarak adlandırılır. Bir network socket, varlıkların işlemler arası iletişimi gerçekleştirebileceği sanal bir uç noktadır. Bir başka deyişle socketi evimizin kapısı gibi düşünebiliriz. Evimizden(Bilgisayar) dışarıya(network) çıkmak isteyen birisi bu kapılardan geçmek zorundadadır. Örneğin; web programları 80. portu, FTP programları 21. portu kullanan soket programlarıdır. İstemci process görevini tamamladıktan sonra bağlantıyı kapatarak ayrılır. Fakat server process hala o portu dinlemektedir. Başarılı bir socket bind işleminden sonra, sunucu process gelecek istemci bağlantısını dinlemeye başlar. Geçerli bir istemci oturumu için, sunucu process istemci process in isteğini kabul edebilir. Bu noktada, sunucu ile istemci arasında bağlatı kuruldu denilebilir. Daha sonra, istemci/sunucu istek/yanıt döngüsüne girer. İstemci process sunucu process e veri gönderir, sunucu process verileri işler ve istemciye cevap gönderir. İstemci process işini bitirdiğinde, bağlantıyı kapatarak çıkar. Bu noktada, server process dinleme durumundadır. Pratikte, bir server process i ilgili sanal kanallar üzerinden gelen binlerce müşteriden gelen eş zamanlı bağlantıları işlemek için birden çok thread ve subprocess ler içerir. Python socket Library s=socket.socket(family, type, protocol) family: AF_INET: Bu adres ailesi bir (host, port) çiftinden oluşmaktadır. Buradaki host domain adresi olabileceği gibi IPv4 adresi de olabilir. AF-INET6: Bu aile (host, port, flowinfo, scopeid) şeklinde bir tuple şeklinde kullanılır. flowinfo ve scopeid C deki scokaddr struct ındaki sin6_flowinfo ve sin6_scope_id üyelerini temsil eder. AF_BLUETOOTH: Bluetooth üzerinden işlem yapmaya yarar. Bunların dılında AF_UNIX, AF_CAN, AF_NETLINK, AF_ALG gibi parametreler de mevcuttur. type: Genelde UDP için SOCK_DGRAM, TCP için SOCK_STREAM kullanılır.

protocol: default değeri 0 dır. o anda kullanılan hostun ismini öğrenmek için; print(socket.gethostname()) kullanılır. Bir domainin ip adresini kullanmak için gethostbyname kullanılır. for host in ["burakkiymaz.com", "www.python.org","burak"]: print("%15s : %s"%(host, socket.gethostbyname(host))) print("%15s : ERROR : %s"%(host, error.args[1])) burakkiymaz.com : 104.18.45.59 www.python.org : 151.101.112.223 burak : ERROR : Name or service not known Daha fazla bilgiye erişmek için gethostbyname_ex kullanılır. for host in ["burakkiymaz.com", "www.python.org","burak"]: print(host) hostname, aliases, addresses = socket.gethostbyname_ex(host) print("hostname: ", hostname) print("aliases: ", aliases) print("adresses: ", addresses) print("%15s : ERROR : %s"%(host, error.args[1])) print() burakkiymaz.com Hostname: burakkiymaz.com Aliases: [] Adresses: ['104.18.45.59', '104.18.44.59'] www.python.org Hostname: python.map.fastly.net Aliases: ['www.python.org'] Adresses: ['151.101.112.223'] burak burak : ERROR : Name or service not known Eğer sunucunun IP adresi biliniyorsa ip adresi üzerinden tarama yapmak için gethostbyaddr kullanılır. İlgili servisin hangi portta hizmet verdiği hakkında bilgi almak için getservbyname kullanılır.

import urllib.parse for url in [ 'http://burakkiymaz.com', 'https://www.mybank.com', 'ftp://prep.ai.mit.edu', 'gopher://gopher.micro.umn.edu', 'smtp://mail.sdu.edu.tr', 'imap://mail.example.com' ]: parsed_url = urllib.parse.urlparse(url) port = socket.getservbyname(parsed_url.scheme) print("%6s : %s" %(parsed_url.scheme, port)) http : 80 https : 443 ftp : 21 gopher : 70 smtp : 25 imap : 143 Verilen adresle ilgili bilgi edinmek için getaddrinfo kullanılır. def get_constants(prefix): return dict( (getattr(socket, n), n) for n in dir(socket) if n.startswith(prefix) ) families = get_constants('af_') types = get_constants('sock_') protocols = get_constants('ipproto_') for response in socket.getaddrinfo('burakkiymaz.com', 'http'): family, socktype, proto, canonname, sockaddr = response print('family: : ', families[family]) print('type : ', types[socktype]) print('protocol : ', protocols[proto]) print('canonical name : ', canonname) print('socket Address : ', sockaddr) Family: : AF_INET Type : SOCK_STREAM Protocol : IPPROTO_TCP Canonical name : socket Address : ('104.18.44.59', 80) Bir Client üzerinden server sockete bağlanma import sys

sock = socket.socket(socket.af_inet, socket.sock_stream) print('socket oluşturulamadı') print('reason: ',error) sys.exit() print('socket oluşturuldu.') hedef_sunucu = input("bağlanmak istediğiniz sunucuyu giriniz: ") hedef_port = input("hedef port numarasını giriniz: ") sock.connect((hedef_sunucu, int(hedef_port))) print("socket %s üzerindeki %s portuna bağlandı"%(hedef_sunucu, hedef_port)) sock.shutdown(2) print("socket %s üzerindeki %s portuna bağlanamadı") print("sebep: ",error) sys.exit() socket oluşturuldu. Bağnamka istediğiniz sunucuyu giriniz: burakkiymaz.com Hedef port numarasını giriniz: 80 Socket burakkiymaz.com üzerindeki 80 portuna bağlandı Veri gönderip alan bir TCP socket client oluşturma HOST = "www.linux.org" PORT = 80 BUFFER_SIZE = 4096 ADDR = (HOST, PORT) client_sock = socket.socket(socket.af_inet, socket.sock_stream) client_sock.connect(addr) while True: data = 'GET / HTTP/1.0\r\n\r\n' if not data: break client_sock.send(data.encode('utf-8')) data = client_sock.recv(buffer_size) if not data: break print(data.decode('utf-8')) client_sock.close()

HTTP/1.1 200 OK Date: Wed, 22 Feb 2017 11:40:32 GMT Server: Apache Last-Modified: Mon, 25 Jul 2016 13:28:43 GMT Accept-Ranges: bytes Content-Length: 111 Connection: close Content-Type: text/html <html><head><meta HTTP-EQUIV="refresh" CONTENT="0;URL=/cgi-sys/defaultwebpage.cgi"></head><body></body></html>