首页 > 后端开发 > Golang > 正文

网络基础知识

Mary-Kate Olsen
发布: 2024-10-06 06:07:31
原创
522 人浏览过

Network fundamentals

在系统设计领域,网络是将不同组件粘合在一起的粘合剂。无论您是构建 Web 应用程序、分布式系统,还是简单的后端服务,了解网络的工作原理都是确保顺畅通信、安全性和性能的关键。在本章中,我们将讨论网络的一些核心方面,这些方面对于构建可扩展且可靠的系统至关重要。


1.计算机网络基础

让我们从基础开始吧。 计算机网络是相互通信的互连设备(计算机、服务器、路由器等)的集合。它就像数据的邮政系统:它让不同的设备以数据包的形式发送和接收信息。当用户与在线服务(例如,您的食品配送应用程序)交互时,这些数据包会不断在其设备和为该应用程序提供支持的服务器之间来回发送。

网络类型:
  1. 局域网 (LAN):这是连接建筑物或校园等有限区域内的设备的网络。例如,计算机和打印机通过有线或无线连接进行通信的办公网络。 LAN 的主要特点是速度快且通常局限于狭小的空间。

示例:在典型的办公室中,员工的计算机通过 LAN 连接到打印机、文件服务器,有时甚至连接到电话。此设置允许快速共享资源。

  1. 广域网 (WAN):覆盖更广泛的区域并连接多个 LAN。将互联网视为 WAN 的最大示例。这是世界不同地区相互沟通的方式。

示例:想象一家在纽约、伦敦和东京设有办事处的大公司。办公室内部有 LAN,但为了相互通信,他们使用 WAN,可能利用互联网或专用连接。

网络层和 OSI 模型:

为了了解网络如何运作,我们使用OSI模型,它将网络分为七层:

  1. 物理层:这是硬件方面——电缆、交换机和无线传输。
  2. 数据链路层:管理同一本地网络上的设备之间的通信。
  3. 网络层:确定数据包如何从一个设备发送到另一台设备(例如路由)。
  4. 传输层:确保数据的可靠传输、管理流量控制和处理错误(这是 TCP 运行的地方)。
  5. 会话层:管理两个设备之间的连接,确保会话在需要时保持打开状态。
  6. 表示层:转换数据格式,以便系统相互理解。
  7. 应用程序层:浏览器和电子邮件客户端等应用程序运行的地方。这就是您与之交互的数据发挥作用的地方。

在系统设计中,我们大部分时间都关注第 3 层到第 7 层,尤其是在处理通信协议、安全性和数据流时。


2. HTTP/HTTPS、TCP/IP、DNS 和负载均衡器

HTTP/HTTPS

HTTP(超文本传输​​协议)HTTPS(HTTP 安全) 是用于网络通信的主要协议。它们定义了消息的格式以及在客户端(如浏览器)和服务器之间传输的方式。

  • HTTP 是您向网站发出的请求背后的协议。例如,当您加载网页时,浏览器会向托管该网页的服务器发出 HTTP 请求,然后服务器发回包含页面内容的 HTTP 响应。

示例:您在浏览器中输入“www.fooddelivery.com”,它会发送一个 HTTP 请求来获取主页。

  • HTTPS 是 HTTP 的安全版本。它对传输的数据进行加密,确保密码和信用卡号等敏感信息不会被攻击者拦截。

示例:当用户在您的送餐应用上下订单时,HTTPS 会确保他们的付款详细信息在从设备传输到您的服务器时经过加密且安全。

TCP/IP

TCP(传输控制协议)IP(互联网协议) 是为互联网提供动力的两个基本协议。

  • TCP memastikan komunikasi yang boleh dipercayai antara peranti. Ia memecahkan mesej kepada paket dan memastikan ia dihantar dengan betul dan mengikut susunan yang betul. Jika paket hilang di sepanjang jalan, TCP akan menghantarnya semula. Ini menjadikannya hebat untuk aplikasi yang integriti data adalah penting, seperti pemindahan fail atau penyemakan imbas web.

Contoh: Jika apl penghantaran makanan anda menghantar butiran pelanggan ke pelayan, TCP memastikan keseluruhan mesej dihantar tanpa kehilangan sebarang bahagian.

  • IP bertanggungjawab untuk menangani dan menghalakan paket ke destinasi yang betul. Fikirkan alamat IP sebagai alamat pada sampul surat; mereka memberitahu rangkaian tempat untuk menghantar data.

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 (Sistem Nama Domain):

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.

  • Contoh: Apabila pengguna menaip "www.fooddelivery.com" dalam penyemak imbas mereka, peranti mereka menanyakan pelayan DNS untuk mencari alamat IP yang dikaitkan dengan domain itu, kemudian membuat permintaan kepada pelayan itu.
Pengimbang Beban:

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.

  • Contoh: Bayangkan sekarang waktu makan tengah hari dan semua orang cuba membuat pesanan pada apl penghantaran makanan anda. Anda mempunyai 10 pelayan bersedia untuk mengendalikan permintaan, tetapi bukannya semua trafik pergi ke satu pelayan, pengimbang beban menyebarkan permintaan secara sama rata. Ini memastikan tiada pelayan yang terlebih beban, menghalang masa henti dan memastikan masa tindak balas yang cepat untuk pengguna.

3. Rangkaian Penghantaran Kandungan (CDN)

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.

Faedah CDN:
  • Latensi Dikurangkan: Memandangkan data disampaikan daripada pelayan yang lebih dekat dengan pengguna, mereka mengalami masa pemuatan yang lebih cepat.
  • Pengagihan Muatan: CDN membantu mengurangkan beban pada pelayan utama anda dengan memunggah permintaan untuk kandungan statik seperti imej, fail CSS dan skrip.
  • Ketersediaan Dipertingkat: Walaupun pelayan utama anda terputus, CDN boleh terus menyiarkan versi cache tapak anda, meningkatkan ketersediaan.

4. SSL, TLS dan Keselamatan dalam Rangkaian

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.

SSL dan TLS:
  • SSL ialah protokol asal untuk melindungi komunikasi, tetapi sebahagian besarnya telah digantikan dengan TLS yang lebih selamat. Apabila anda melihat "https://" dalam URL tapak web, ini bermakna sambungan terjamin menggunakan SSL/TLS.

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.

  • Handshake-Prozess: TLS verwendet einen Handshake-Prozess, um eine sichere Verbindung herzustellen. Der Client (Browser des Benutzers) und der Server tauschen kryptografische Schlüssel aus, um eine sichere Verbindung herzustellen. Sobald die Verbindung hergestellt ist, wird die gesamte nachfolgende Kommunikation verschlüsselt.

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.

Bedeutung der Sicherheit im Netzwerk:

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:

  • Verschlüsselung: Verschlüsseln Sie sensible Daten während der Übertragung immer mit Protokollen wie TLS, um Man-in-the-Middle-Angriffe zu verhindern.
  • Firewall-Schutz: Verwenden Sie Firewalls, um den Zugriff auf Ihre Server einzuschränken. Lassen Sie nur vertrauenswürdigen Datenverkehr über vordefinierte Ports zu und blockieren Sie nicht autorisierte Versuche.
  • API-Ratenbegrenzung: Schützen Sie Ihr System vor DDoS-Angriffen (Distributed Denial of Service), indem Sie die Anzahl der Anfragen begrenzen, die jeder Client innerhalb eines bestimmten Zeitfensters stellen kann.

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.

  • Sicherheitsüberwachung: Verwenden Sie Überwachungstools, um ungewöhnliche Verkehrsmuster oder potenzielle Einbrüche zu erkennen. Tools wie **Intrusion Detection Systems (

IDS)** kann Ihnen helfen, Sie zu warnen, wenn versucht wird, in Ihr Netzwerk einzudringen.

Zertifikate:

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.

Zwei-Faktor-Authentifizierung (2FA):

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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板