面向Web开发人员的计算机网络入门
你有没有想过信息是如何在计算机之间传输的?
这令人难以置信,而我们却一直在这样做——从fetch在应用程序中打电话到日常使用电脑。
让我们从 RESTful 协议的角度来探讨这个问题。我们的数据,比如我们想发给朋友的电子邮件,会被分解成“数据包”,这些数据包从一台计算机发出,然后在接收计算机上重新构建。让我们追踪一封从你的计算机(IP 地址为 1.2.3.4)发出的电子邮件,它如何通过互联网到达你朋友的计算机(IP 地址为 5.6.7.8)。
我们从图表的左上角开始,一直到右上角:
- 应用层是指我们访问https://gmail.com来撰写和发送电子邮件的层。如果您的邮件过长,在进入网络协议栈的 TCP 层时,它会被分割成多个数据包。
- 在TCP 层,数据包会根据数据类型分配到相应的端口号。IANA 负责管理和记录这些约定。就本文而言,我们只需记住:数据包会被分配到接收计算机对应的端口号即可。
- 在IP 层,我们的数据包会收到目标地址(例如*.,5.6.7.8* 的 IP 地址)。
- 最后,我们到达硬件层(例如以太网电缆),在这里,我们封装的字母数字数据(即字符串)被转换成电子信号,并通过电话线/电缆线(或者如果你有光纤,则通过光)发送。
就像 UPS 或 USPS 会将您的网购订单从海外仓库送到您家门口一样,您的电子邮件数据包也会在几毫秒内穿越互联网到达您“家门口”。到达 5.6.7.8 后,我们会反向执行上述步骤。借助校验和(一种用于确认数据包无遗漏或篡改的计算方法),我们发送的数据包会在您朋友的电脑上被收集并重新组装。
从技术角度来看,其中包含的数据(即电子邮件或图片)基本相同。但对于那些喜欢思考问题的人来说,重新组装的电子邮件真的和您发送的邮件一样吗?
在以后的文章中,我想更详细地探讨 OSI/TCP-IP 模型,探讨安全性和性能等主题,以帮助我们成为更好的程序员。
文章来源:https://dev.to/kylejb/an-introduction-to-computer-networking-for-web-developers-41lg

