1. FTP Nedir?
FTP (File Transfer Protocol) Internete bağlı bir bilgisayardan diğerine (her iki yönde de) dosya aktarımı yapmak için geliştirilen bir internet protokolü ve bu işi yapan uygulama programlarına verilen genel addır. İlk geliştirilen internet protokollerinden biridir. FTP protokolü ile bir başka bilgisayardan bir başka bilgisayara dosya aktarımı yapılırken, o bilgisayar ile etkileşimli-aynı anda (on-line) bağlantı kurulur ve protokol ile sağlanan bir dizi komutlar yardımıyla iki bilgisayar arasında dosya alma/gönderme işlemleri yapılır.
2. FTP yapmak ne demektir?
FTP yapmak için nelere ihtiyacım var?
FTP yapmak, bir bilgisayara FTP protokolü ile bağlanmak eylemini anlatan yarı Türkçe yarı İngilizce bir deyimdir. FTP yapmak için,
· Bağlanacağımız bilgisayarın internet adresi (nümerik ya da sembolik formatta)
· Bağlanacağımız bilgisayarda dosyalarına ulaşmak istediğimiz hesapla ilgili kullanıcı numarası ve varsa şifresi
· Internet erişimi olan, üzerinde FTP yazılımı bulunan bir bilgisayar
· Bağlanacağımız bilgisayarda, FTP protokol komutlarını yorumlayacak çalışır durumda bir FTP Servis programı (FTP Sitesi) gereklidir.
3. FTP nasıl yapılır? Temel FTP komutları nelerdir?
Genel kullanım : ftp şeklindedir.
Bundan sonra, ilgili bilgisayara bağlanıldığında, kullanıcı numarası ve parola (password) sorulur. Daha sonra da, o kullanıcının makinesına baglanılmış olur. Bu şekilde, etkileşimli bir ortamda, (genellikle ftp> ile gösterilir) bazı komutlar verilerek iki makine arasında dosya işlemleri, ayrıca bağlanılan makineda bazı temel dosya/disk işlemleri (dizin açma, dosya silme vb) yapılabilir. Bazı temel FTP komutları ve kısa tanımları aşağıda listelenmiştir.:
Standart FTP komutları :
cd : Dizin değiştirme (cd ) (cd .. : bulunulan dizinden bir öndekine geçme)
pwd : Bulunulan dizinin ismini verir
dir : Bulunulan dizindeki dosyaları listeleme
ls : Bulunulan dizindeki dosyaları kısa olarak listeleme (Örnek kullanımlar : ls -lr : ayrıntılı, tersten alfabetik listeleme; ls -lr |more : sayfa sayfa listeleme (dizin içinde cok fazla sayıda dosya varsa bu kullanım oldukça yararlıdır)
get : Dosya alma (get (). ( seçimliktir, kullanılmayabilir. Bu durumda dosya_adı aynen kullanılacaktır.
put : Dosya gönderme (put ()
mget : Birden fazla dosya almak istendiğinde kullanılır.
Örnek kullanımlar: mget *.zip, mget a*.* vb..
mput : Birden fazla dosya göndermek istendiğinde kullanılır.
ascii : Dosya aktarımlarında aktarım modu olarak ASCII kullanılacağını belirtme.
binary : Dosya aktarımlarında aktarım modu olarak BINARY kullanılacağını belirtme. Arşiv dosyaları (zip, arj, z, zoo, hqx vb), calıştırılabilir programlar (.exe, .com), resim formatlı programlar (gif, jpeg vb) FTP ile alınmadan/ya da gönderilmeden önce mutlaka bu komut verilmelidir.
delete : FTP yapılan yerde bir dosyayı silme (delete , eğer yetkiniz varsa kullanabileceğiniz bir komuttur)
mkdir : FTP yapilan yerde yeni bir dizin oluşturma (mkdir , eğer yetkiniz varsa kullanabileceğiniz bir komuttur)
rmdir : FTP yapılan yerde boş bir dizini silme (rmdir , eğer yetkiniz varsa kullanabileceğiniz bir komuttur) help : Kullanılabilecek komutlar ile ilgili bir yardım ekranı çıkarır.
lcd : FTP ortamından çıkmadan, kendi makinenizda dizin değiştirmenizi olanaklı kılar.
close : FTP ortamından çıkmadan, sadece ilgili bağlantıyı kapatmak için kullanılır.
quit : FTP ortamından çıkmak ve bağlantıyı kapatmak için kullanılır (bye komutu da aynı işi görür). Bazı FTP merkezleri, tüm bir dizini sıkıştırarak gönderme kabiliyetine sahiptir. Söz gelimi, linux isimli bir alt dizini, GET linux linux.zip şeklinde sıkıştırılmış olarak alabiliriz. Ancak, bu özellik her FTP merkezinde olmayabilir.
4. ANONYMOUS FTP nedir?
FTP işlemi sırasında, güvenlik olarak, bağlanacağımız makinedeki kullanıcı numarası (User Name) ve parola (Password) bilgilerini bilmemiz gerekir (Program, bunları bize sorar). Bağlanılan makine, kişiye özel ve parolasını sadece bizim bildiğimiz bir makine olabileceği gibi, herkese açık bir arşiv merkezi de olabilir. Böyle merkezlere herkesin kolayca erişip dosya almasını sağlamak için tek tip bir kullanıcı numarası tanımlanmıştır:
Bu merkezlere ftp yapıldığında kullanıcı ismi olarak anonymous (ya da ftp) girildiğinde, bizden parola olarak Kendi e-posta adresimizi girmemiz istenir. Parola yazılırken görülmez. Bu sizi sakın şaşırtmasın !!! Şifre olarak kesinlikle kullandığınız bilgisayarın şifresini girmeyin!
Örnek olarak; ftp ftp.kocbey.com user ftp password mehmet@kocbey.com (yazarken görünmez) Burada, şifre olarak e-mail adresinin girilmesi genellikle istatistiksel amaçlar içindir. Web üzerinden yapılan anonymous FTP'lerde şifre girilmesine gerek kalmaz. Yukarıda, ftp.kocbey.com 'a yapılan örnek bir anonymous ftp görülmektedir. Kullanıcının yazdığı komutlar koyu renk, diğerleri açık renk verilmiştir.
5. Web üzerinden FTP nasıl yapılır?
Son zamanlardaki genel gidiş, tüm Internet servislerine daha becerikli ve etkileşimli ortamlardan erişilmesi ve farklı servislerin etkileşimli olarak kullanılması şekilde kendini göstermektedir. Bu ortamlardan en popüler'dir. FTP de dahil olmak üzere pek çok internet servisi ve ilave pek çok özellik bu ortamlar üzerinden kullanılabilir. Dolayısıyla, FTP yapmanın bir diğer yolu da, Web üzerinden FTP yapmaktır. Bu yöntem hem kullanım açısından daha kolaydır (komutları ezberlemek /bilmek zorunda değilsiniz) hem de daha efektif sonuçlar alırsınız. Binary bir dosyayı, yanlışlıkla, standart FTP programları ile kolayca ASCII modda almanız mümkün. Bu gibi sakıncalar Web üzerinden yapılan FTP'lerde ortadan kalkmaktadır. Ayrıca, Bookmark ve cache gibi faydalı özelliklerinden dolayı da bu ortamların sağladıkları bazı kolaylıklar vardır. Çoğu Web istemcisinin sağladığı grafik ara birim özelliğini de unutmamak gerek. Böylelikle, sözgelimi standart resim formatlarında olan bir resim dosyasını aldığınız anda görüntüyü ekrana da gönderebilirsiniz.
6. VM/CMS üzerinden FTP yapıldığında hata veriyor. GET komutuyla nasıl alabiliriz?
Bu problem, VM/CMS'in dosya isimlendirme sisteminin farklılığından kaynaklanıyor. Örnek olarak, bağlandığımız FTP arşivinden INDEX isimli bir dosyayı almak istersek, GET INDEX INDEX.TXT diyebiliriz. Bu durumda dosya, A diskinde INDEX TXT isminde saklanacaktır. sample-index.tar.Z isimli bir dosyayı da geçici olarak oluşturduğumuz T diskine almak isteyelim. Bu durumda uygun GET komutu; GET sample-index.tar.Z S_INDEX.TARZ.T olabilir. (Binary transfer etmeyi ve dosyanın orijinal formatının biçimini unutmayın!!!). Böylece ilgili dosya T diskine S_INDEX TARZ olarak kopyalanacaktır.
7. FTP yaparken, bir dosyayı nasıl almadan okuyabilirim ?
Bunu yapamazsınız. Bir dosyayı görüntülemek için onu transfer etmelisiniz. FTP ortamından çıkmadan, aldığınız bir dosyayı listeleyebilirsiniz. Bunun için, unix'te '!cat ', vm/cms'te 'CMS type ' , dos için, '!type ' kullanılır. Bu komutları FTP ortamından çıkmadan verin. Eğer Netscape, Mosaic vb gibi bir Web istemcisi ile FTP yapıyorsanız, programın "setup"ından transfer edilecek dosya tipi için bir listeleyici (viewer) program tanımlayarak (bu, txt dosya (metin dosyası) için bir editör) dosya transferini doğrudan ekrana yönlendirebilirsiniz. Web sadece TXT dosyaların değil, diğer formatlardaki dosyaların da (ses, görüntü, video vb) transfer edilirken ekrana yönlendirilmesini sağlar.
8. İsmini bilinen bir dosyanın hangi FTP merkezinde olduğunu nasıl bulabiliriz?
Bu işi yapan sistem ARCHIE olarak adlandırılır. Archie ile binlerce herkese açık (anonymous) FTP merkezindeki milyonlarca dosyanın kayıtlı olduğu veri tabanları taranır ve aranan dosyanın (eğer varsa) hangi FTP merkezlerinde olduğu ilgili alt dizinleriyle birlikte sorgulayan kişiye bildirilir. ARCHIE, dünyada bulunan değişik Archie servislerine (Archie Servers) ARCHIE programı ile doğrudan, yine bu servis sağlayıcılarına Telnet ile doğrudan bağlanarak kullanılabilir ve sorgulama yapılır. Archie sorgulaması e-mail ile de yapılabilir. Kullanımı özetlemek gerekirse,
· Yerel bir Archie programı ile ARCHIE kullanımı :ARCHIE eudora --> isminde eudora olan tum dosyaları/alt dizinleri bulundukları FTP merkez isimleri ile birlikte listeler.
· Gopher içinden Archie : Gopher içinden ilgili Menüyü bulur, gelen tarama menüsünde ilgili kelimeyi girerek tarama yaptırırsınız. Tarama sonucunda ilgili nesneler bir menü olarak sunulur. Menüden seçilen dosyalar ftp ile alınır.
· Web içinden Archie : Bir kaç tane archie'yi destekleyen CGI formu var. Web icinden biraz daha yeteneklidir; archie sunucusunu, taramanın türünü seçebilirsiniz. tarama sonucunda gene ftp ile istediğiniz dosyayı alabilirsiniz.
· e-mail ile Archie kullanımı : Archie servis sağlayıcısına bir e-mail mesajı içinde 'help' komutu gönderilirse e-mail erişimi ile kullanılabilen komutlar hakkında bilgi alınabilir.
· Telnet ile ARCHIE kullanımı : Archie servis sağlayıcısına Telnet yaptıktan sonra, kullanıcı ismi olarak 'archie' girilmesi gerekir. Daha sonra, help komutu ile kullanılan komutlar hakkında bilgi alınabilir.
Bazı archie servisleri şunlardır : archie.internic.net, archie.rutgers.edu, archie.sura.net, archie.doc.ic.ac.uk, archie.funet.fi, archie.th-darmstadt.de, archie.uqam.ca, archie.ans.net
Ayrıca, web üzerinden de benzeri taramalar yapabileceğiniz iyi bir servis var: FTP Search. . Bu servis, iyi bir kullanıcı arayüzü ve zengin seçenekleri ile, aradığımız programların bulunduğu siteleri ve dizin bilgilerini bize vermektedir.
. servisi de, benzer amaçlar için kullanılabilir.
9. FTP ile bir dosyayı alırken, bağlantı kesilirse tekrar aktarıma devam edilebilir mi?
Özellikle düşük hızlı bağlantılarda ve modem ile yapılan bağlantılarda karşılaştığımız bir problem!. Dosya aktarımı yarım kalmışsa, kaldığınız yerden aktarıma devam etme şansınız her zaman olmayabilir. Standart FTP buna izin vermez. Ancak, bazı ftp siteleri "bu tip yarım aktarımlara" izin verebilir. Bu durumda, kullandığınız FTP programında da (reget, resume vb) benzeri komutlar varsa, aktarıma kaldığınız yerden devam edebilirsiniz. Eğer win95/nt altından bağlantı yapıyorsanız, CuteFTP ( .) bu tip sorunlarınızı çözecektir. Ayrıca, BulletProof FTP de benzer işi yapar. Aynı zamanda, web (http) transferlerinizi de doğrudan bu program üzerinde yapabilirsiniz. Daha fazla bilgi için Raksnet Tucows arşivinden alınabilir ( .)
10. FTP yaparken dikkat edilmesi gereken hususlar var mı?
Tabii ki var!! Aşağıdaki hususlara dikkat etmemek çoğunlukla bir sürü boşa giden zamana mal olacaktır.
· n> EXE, ZIP vb gibi dosyaları BINARY aktarın (transfer edin). FTP'de (genellikle) varsayılan aktarım biçimi ASCII dir.
· Anonymous FTP'de, bir directory içine girdiğinizde, genellikle, oradaki dosyaların isim, byte olarak büyüklük, tarih ve içeriğini belirten kısa açıklama satırlarının olduğu 'okubeni (readme)' dosyaları (bazen de INDEX dosyaları) vardır. Öncelikle bu ASCII dosyaları alıp okumak size çok yardımcı olacaktır.
· Anonymous FTP'de, şifre olarak Lütfen e-mail adresinizi doğru olarak girin. Bazı FTP merkezleri, e-mail adresinin uygunsuz girilmesi (ya da girilmeyip boş geçilmesi) durumunda FTP yapmanıza izin vermemektedir.
· Unix'te küçük/büyük harf ayrımı olduğunu her zaman akılda bulundurun. Özellikle, aktaracağınız dosyaların isimlerini tam yazın ve küçük/büyük harf ayrımlarına dikkat edip aynısını yazın.
· Kullandığınız bilgisayarın işletim sistemine özgü kısıt/özellikleri de bilmekte fayda var. (yerel dosya adı vermeler, dosya içeriği görme vb gibi özellikleri kullanabilmeniz için -sözgelimi, DOS işletim sisteminde, dosya adı ve uzantısı için birtakım kısıtlamalar var).
11. Anonymous FTP'de dosya gönderilmesi ve incoming dizininin kullanımı
FTP'de bağlandığımız makineye dosya göndermek istersek, bunu PUT komutu kullanarak yapıyoruz. Anonymous FTP'lerde bağlandığımız makineye bir dosya gönderme (yani yazma) hakkımız -genellikle- yoktur. FTP siteleri, kullanıcıların belli bir süre dosyalarını koyabilmeleri için bir dizin açmışlardır : bu dizinin adı incoming. genellikle kök (root) dizininde, ya da pub'ın altında (pub/incoming) olarak bulunur. Anonymous FTP lerde, sadece incoming dizinine yazma yetkimiz vardır. Buraya alt dizin açabilir, program kopyalayabiliriz (PUT ile). incoming özellikle, kullanıcıların internet'te buldukları ilginç programları başkaları ile paylaşabilmeleri için güzel bir ortam. Bazı sitelerde incoming kullanımı kısıtlanmış olabilir. Bu kısıtlamalar değişiktir. Dizin açma, dosya upload etme (gönderme), dosya silme, incoming içindeki dosyaları görme, incoming içindeki dosya sayısı ve uzunluk limitleri vb gibi özelliklerden bir kısmı ya da tamamı iptal edilmiş olabilir.
Incoming kullanımında uymamız gereken bazı kurallar var :
· Herşeyden önce, incoming dizini herkesin kullanımına açık. Bu yüzden, fazla sayıda ve büyüklükte dosyayı bu alanda tutmalıyız.
· incoming'e koyduğumuz bir dosyayı bir süre sonra silmeyi unutmamalıyız. Ancak, başkalarının upload ettiği dosyalara dokunmamamız lazım.
· incomin içinde lisanslı yazılımlar, uygunsuz dosyalar, prpoaganda içeren dosyalar vb bulundurmamalıyız.
· Eğer bir program koymuşsak (söz gelimi unzip.exe), aynı isimde kısa bir açıklama dosyası da koyup programın kısa bir tanımını burada vermeliyiz (mesela, unzip.txt -dosya içinde, pkzip.exe'nin ZIP dosyalarını açan bir DOS programı olduğunu söyleyebiliriz).
· incoming'in uygunsuz kullanımına rastladığımızda, ilgili FTP Sitesi yöneticisine haber vermeliyiz.
12. Internet erişimim yok. E-mail ile FTP yapabilir mi?
Evet, yapabilirsiniz. e-mail ile FTP komutlarının gönderildiği servisler vardır. Bu servisler, komutları mail gönderen kişinin adına işlerler ve sonucu mail ile kullanıcıya gönderirler. Eğer kullanıcı bir dosya istemişse, bu, genellikle, uuencode edilmiş olarak küçük parçalar halinde e-mail ile gönderilir. Türkiye'de böyle bir servis var. Bu servisin adı 'Bilserv (Bilkent Mail Server)'. Bilserv Servisi Bilkent Üniversitesi'nde çalışmaktadır.
Bilkent Mail Server: Mail server otomatik cevaplama yeteneği olan bir programdır. Bilkent-server@bilkent.edu.tr, ve bilserv@bilkent.edu.tr, ya da mail-server@bilkent.edu.tr adreslerine bir dosya içinde gönderilen komutlara göre bazı bilgi ve/veya dosyaları belirtilen adrese gönderir. Program, komutları belirli bir syntax'ta beklemektedir; gönderilen dosya'yı okuduktan sonra şayet ciddi bir hata yoksa istenen bilgi ve/veya dosyaları gönderecektir. Program her zaman bir alındı mesajı (dosya içinde) gönderecektir: Hatanın nerede olduğunu ve çok kısa bir komut özeti gönderecektir.
Mail Server çok yetenekli bir programdır ve FTP yanında size dosya temelli pek çok hizmet sunar. Bilkent Mail Server hakkında daha ayrıntılı bilgiyi, ' .' adresine bir e-mail mesaji içinde HELP komutunu göndererek elde edebilirsiniz. Ayrıca,
send bilkent-arsiv.txt
end satırlarını bu adrese gönderirseniz, Bilserv'i ve Bilkent Arşivlerini anlatan bir dökümana da erişebilirsiniz.
13. Grafik Arabirimli FTP ne demektir?
Klasik anlamda FTP yaparken, klavye ile bir takım komutlar yazarız. Son yıllarda geliştirilen bazı programlar kullanıcının bu komutları vermesine gerek kalmadan grafik bir ara birim ile daha kolay FTP yapmasına olanak tanırlar. FTP komutları ya pull-down/pop-up menülerden alınır; ya da tek bir fare tıklatması ile değisik FTP komutları icra edilir. Bu tip programlara bir örnek, PC/Windows altında çalışan, John Junod'un geliştirdiği .'dir. ( .'dan alınabilir). Unix ortamında xftp/oftp/mftp, ftptool gibi programlar vardır. Gopher ve Web içinden yapacağınız FTP de bu tip FTP'lere benzer. Aşağıda, WS_FTP (sürüm 4.10) için klasik ekran düzeni görülmektedir. Sol taraftaki bilgiler yerel diske ait, sağ taraftakiler ise bağlandığımız yere aittir. Kullanıcı, menü sistemi yardımıyla dosya transferi ve bazı temel FTP operasyonlarını gerçekleştirir.
14. Türkiye'deki FTP merkezleri nerelerdir?
Bunların tam listesini "Internet Services in Turkey" sayfalarında bulabilirsiniz. Pek çok yerel Web servisinde de, benzer şekilde, Türkiye'deki FTP merkezlerine linkler vardır.en iyileri www.karanlikdunya.com da bulunur
15. FSP nedir?
FSP (File Send Protocol ?), FTP'ye alternatif olarak geliştirilen bir protokoldür. FTP'ye olan en büyük üstünlüğü, yarıda kalan bir dosya transferi işlemine kaldığı yerden daha sonra devam edilmesine izin vermesidir. Hat hızları arttıkça bu protokol popüleritesini yitirmiştir.
16. FTP'nin Geleceği
Web istemcileri (listeleyici, browser) ilk çıktığı andan itibaren, standart URL-ler ile, gopher menülerine benzer bir yapı içinde FTP yapılmasına imkan tanımışlardır. Halen günümüzdeki en popüler FTP uygulamaları da böyledir. Eskiden metin bazlı bir sürü komutla yapılan FTP'ler yerini büyük çoğunlukla Web içinden menülü FTP lere, ya da grafik arabirimli FTP'lere terketmiştir. Web'in çok renkli ve entegre sistemi içinde dosya transferi de yerini almıştır ve gerek dosyaların arşivlerden listelenmesi, gerekse bunlar üzerinde çalışan tarama sistemleri Web ile bütünleşmeye başlamıştır. Yakında günlerde klasik anlamdaki FTP kullanımının yavaş yavaş azalacağını bekleyebiliriz.
----------
FTP mesajLarının anLamLarı (!)
1 ile baslayanlar
1 ile baslayanlar
Genellikle yeni bir isleme basladiginizda karsilasacaginiz mesajlardir.
110 -----> Tekrarlama isaretlendi.
120 -----> Sunucu birazdan hazir olacak.
125 -----> Baglanti acik, transfer basladi.
150 -----> Dosyanin durumunda sorun yok, hala daha gecerli.
---------------------------------------------------------------------------------------------------
2 ile baslayanlar
Genellikle islem tamamlandiginda karsiniza cikarlar.
200 -----> Dogru Istek.
202 -----> Istek yerine getirildi.
211 -----> Sistem durumu veya yardimi.
212 -----> Dizin durumu.
213 -----> Dosya durumu.
214 -----> Yardim mesaji.
215 -----> ISIM sistem tipi (isim=Assigned Numbers listesindeki yasal sunuculardan herhangi birisidir)
220 -----> Sunucu yeni kullanici icin hazir.
221 -----> Server ile baglanti kesildi/cikis yapildi.
225 -----> Data baglantisi acik
226 -----> Data baglantisi kapatiliyor. Erisim basarili.
227 -----> Pasif moda geciliyor.
230 -----> Kullanici isminiz ile giris yaptiniz, ilerleyebilirsiniz.
250 -----> Istemis oldugunuz islem kabul edildi ve tamamlandi.
257 -----> Yol ismi yaratildi.
---------------------------------------------------------------------------------------------------
3 ile baslayanlar
Isteklerinizin kabul edildigi fakat daha ileri gitmeniz icin biraz daha kanit gostermeniz gerektigini soyleyen mesajlardir.
331 -----> Kullanici adi kabul edildi. Sifre giriniz.
332 -----> Giris icin bir hesaba ihtiyaciniz var.
350 -----> Istenilen bilgi islemi askiya alindi.
---------------------------------------------------------------------------------------------------
4 ile baslayanlar
Genellikle isteginizin kabul edilmedigi durumlarda ortaya cikan mesajlardir fakat cogunlukla gecicidir. Isleminizi daha sonra tekrar denemeniz yararli olacaktir.
421 -----> Ftp hatalarinin en meshur olanidir. Birkac anlama gelebilir.
Sunucunun asiri mesgul veya iceride cok kullanici oldugunu,
Sunucuda daha fazla ileriye gidemeyeceginizi,
Sunucuya giris hakkiniz olmadigini,
Sunucunun zaten kapasitesinin ustunde oldugunu....
425 -----> Data baglantisi acilamiyor.
426 -----> Baglanti kesildi, transfer iptal edildi.
450 -----> Istediginiz dosyayi alamazsiniz. Dosya artik yok veya mesgul.
451 -----> Istediginiz islem iptal edildi.
452 -----> Istenilen islem alinamadi cunku sistemde yeterli alan yok.
---------------------------------------------------------------------------------------------------
5 ile baslayanlar
Tamamen negatif mesajlardir. Isteginizin olmayacagi anlamina gelir.
500 -----> Yazim hatasi, tanimlanamayan komut.
501 -----> Parametrelerde veya metinde yazim hatasi.
502 -----> Yerine getirelemeyecek bir istekte bulundunuz.
503 -----> Isteginizde hata olustu.
504 -----> Isteginiz bu parametrelerde yerine getirilemez.
530 -----> Giris yapamadiniz.
532 -----> Yedeklenen dosyalar icin bir hesaba ihtiyaciniz var.
550 -----> Dosya artik yok veya dosya bulunamadi.
552 -----> Istek iptal edildi. On gordugunuz payi geciyorsunuz.
553 -----> Istek iptal edildi. Yasadisi dosya ismi.