在系统设计领域,网络是将不同组件粘合在一起的粘合剂。无论您是构建 Web 应用程序、分布式系统,还是简单的后端服务,了解网络的工作原理都是确保顺畅通信、安全性和性能的关键。在本章中,我们将讨论网络的一些核心方面,这些方面对于构建可扩展且可靠的系统至关重要。
让我们从基础开始吧。 计算机网络是相互通信的互连设备(计算机、服务器、路由器等)的集合。它就像数据的邮政系统:它让不同的设备以数据包的形式发送和接收信息。当用户与在线服务(例如,您的食品配送应用程序)交互时,这些数据包会不断在其设备和为该应用程序提供支持的服务器之间来回发送。
示例:在典型的办公室中,员工的计算机通过 LAN 连接到打印机、文件服务器,有时甚至连接到电话。此设置允许快速共享资源。
示例:想象一家在纽约、伦敦和东京设有办事处的大公司。办公室内部有 LAN,但为了相互通信,他们使用 WAN,可能利用互联网或专用连接。
为了了解网络如何运作,我们使用OSI模型,它将网络分为七层:
在系统设计中,我们大部分时间都关注第 3 层到第 7 层,尤其是在处理通信协议、安全性和数据流时。
HTTP(超文本传输协议) 和 HTTPS(HTTP 安全) 是用于网络通信的主要协议。它们定义了消息的格式以及在客户端(如浏览器)和服务器之间传输的方式。
示例:您在浏览器中输入“www.fooddelivery.com”,它会发送一个 HTTP 请求来获取主页。
示例:当用户在您的送餐应用上下订单时,HTTPS 会确保他们的付款详细信息在从设备传输到您的服务器时经过加密且安全。
TCP(传输控制协议) 和 IP(互联网协议) 是为互联网提供动力的两个基本协议。
Contoh: Jika apl penghantaran makanan anda menghantar butiran pelanggan ke pelayan, TCP memastikan keseluruhan mesej dihantar tanpa kehilangan sebarang bahagian.
Contoh: Apabila anda membuat permintaan daripada telefon anda, ia menggunakan alamat IP anda untuk menghalakan data ke pelayan. Pelayan mempunyai alamat IP sendiri, membenarkan paket kembali kepada anda dengan betul.
TCP/IP bersama-sama membentuk tulang belakang komunikasi internet. Ia seperti perkhidmatan pos yang boleh dipercayai: TCP memastikan kandungan pakej adalah utuh dan IP memastikan ia sampai ke tempat yang betul.
DNS adalah seperti buku telefon internet. Daripada mengingati alamat IP (yang seperti nombor telefon untuk pelayan), kami menggunakan nama domain seperti "www.example.com." DNS menyelesaikan nama ini menjadi alamat IP, jadi peranti anda tahu tempat untuk menghantar permintaan.
pengimbang beban adalah penting apabila menskala secara mendatar. Ia adalah alat yang mengedarkan trafik masuk merentas berbilang pelayan untuk memastikan tiada pelayan tunggal yang terharu. Ini menjadikan sistem anda lebih berskala dan tahan terhadap kesalahan.
CDN ialah cara yang bijak untuk mengurangkan kependaman dan meningkatkan prestasi untuk pengguna yang tersebar di seluruh lokasi yang berbeza. CDN ialah rangkaian pengedaran pelayan yang diletakkan di seluruh dunia yang menyimpan versi cache kandungan anda. Apabila pengguna meminta sesuatu daripada tapak web anda, CDN menyediakan kandungan tersebut daripada pelayan yang paling dekat dengan mereka dan bukannya daripada pelayan utama anda, mengurangkan masa yang diperlukan untuk memuatkan.
Contoh: Katakan apl penghantaran makanan anda mempunyai pelanggan di India dan A.S., tetapi pelayan utama anda terletak di Eropah. Tanpa CDN, pengguna di India mungkin mengalami masa muat yang perlahan kerana permintaan mereka perlu pergi ke Eropah. Tetapi dengan CDN, pelayan di India boleh menyiarkan imej cache, butiran restoran dan kandungan statik, menjadikan apl berasa lebih pantas.
Keselamatan ialah kebimbangan utama dalam mana-mana sistem, dan teknologi utama untuk memastikan komunikasi selamat melalui rangkaian ialah SSL (Lapisan Soket Selamat) dan TLS (Keselamatan Lapisan Pengangkutan). Protokol ini menyulitkan data yang dihantar antara pelanggan dan pelayan, memastikan maklumat sensitif, seperti kata laluan dan butiran pembayaran, dilindungi daripada penyadap.
Contoh: Dalam apl penghantaran makanan anda, apabila pengguna menyerahkan maklumat kad kredit mereka untuk membuat pembayaran, data tersebut disulitkan menggunakan TLS sebelum dihantar ke pelayan. Ini memastikan bahawa walaupun seseorang memintas data, mereka tidak dapat membacanya kerana ia disulitkan.
Beispiel: Wenn ein Benutzer Ihre App öffnet, durchlaufen sein Gerät und Ihre Server diesen Handshake, um zu vereinbaren, wie die Daten verschlüsselt werden, bevor vertrauliche Informationen wie Anmeldedaten oder Zahlungsinformationen übertragen werden.
In jedem System, in dem Daten über Netzwerke übertragen werden, ist Sicherheit von größter Bedeutung. Hier sind einige wichtige Sicherheitspraktiken zur Gewährleistung eines sicheren Systems:
Beispiel: Nehmen wir an, ein böswilliger Akteur versucht, Ihre Essensliefer-App zu überfordern, indem er Millionen gefälschter Anfragen sendet. Eine API-Ratenbegrenzung kann diese Anfragen drosseln und einen Systemabsturz verhindern.
IDS)** kann Ihnen helfen, Sie zu warnen, wenn versucht wird, in Ihr Netzwerk einzudringen.
Um SSL/TLS zu aktivieren, benötigen Sie ein SSL-Zertifikat, das die Identität Ihrer Website oder Ihres Servers überprüft. Zertifikate werden von vertrauenswürdigen Stellen namens Certificate Authorities (CAs) ausgestellt, die garantieren, dass Ihre Website legitim ist.
Beispiel: Wenn Sie ein SSL-Zertifikat für die Domain Ihrer Lebensmittelliefer-App erwerben, wird es von einer Zertifizierungsstelle wie Let’s Encrypt oder DigiCert ausgestellt. Dies zeigt den Benutzern, dass ihre Daten sicher sind und dass sie tatsächlich mit Ihrer App interagieren und kein Betrüger sind.
Die Implementierung von 2FA ist eine zusätzliche Sicherheitsebene, bei der Benutzer zwei Formen der Identifizierung angeben müssen (normalerweise etwas, das sie wissen, wie ein Passwort, und etwas, das sie haben, wie ein mobiles Gerät). Dies macht es für Angreifer viel schwieriger, Konten zu kompromittieren.
Beispiel: In Ihrer Essensliefer-App kann die Aktivierung von 2FA für Benutzer dazu beitragen, unbefugten Zugriff zu verhindern, selbst wenn ihr Passwort gestohlen wird.
以上是网络基础知识的详细内容。更多信息请关注PHP中文网其他相关文章!