初次学习前端,先了解互联网是如何工作的,以下内容来自于InternetWhitepaper

一:Internet address

Internet address are in the form nnn.nnn.nnn.nnn(nnn必须在0-255之间)

如果通过Internet service provider(ISP)接入互联网,会被分配临时IP地址;如果通过Local area network(LAN)接入互联网,那么IP地址是永久的或者它可能从DHCP(动态主机配置协议)服务器获取临时协议。

但是无论如何,如果你连接到互联网,则你的计算机具有唯一的IP地址。

如何知道自己计算机的IP地址?

启动命令提示符窗口,输入  ping www.yahoo.com (ping 可能是老式潜艇声呐系统发出的声音)

二:Protocol Stacks and Packets.(协议栈和数据包)

如果你想发送信息到别人的计算机上,必须将消息从字母文本转化为电子信号,通过互联网传输,然后翻译回字母文本。这是如何实现的呢?通过使用协议栈(Protocol stack),它通常内置于计算机的操作系统中,由于使用了两种主要的通信协议,因此internet上使用的协议栈被称为TCP/IP协议栈

b752bbc511eb4954a0696a4e9a12cbce.png

 

f18034fe5f40438d9b1d0cf269b199b7.jpg

 如果我们将一条信息发送给别人的计算机上,则会经过以下流程

18e1caf04aa24df982867cf2b098dfcd.jpg

 1.该消息将从计算机上协议栈的顶部开始,然后向下工作。

2.如果要发送的消息很长,则消息通过的每个堆栈层可能会将消息分解为更小的数据块。这是因为通过 Internet(以及大多数计算机网络)发送的数据是以可管理的块发送的。在 Internet 上,这些数据块称为数据包。

3.数据包将通过应用层并继续到达 TCP 层。为每个数据包分配一个端口号。端口将在后面解释,但足以说明许多程序可能正在使用 TCP/IP 堆栈并发送消息。我们需要知道目标计算机上的哪个程序需要接收消息,因为它将在特定端口上侦听。

4.通过TCP层后,数据包将进入IP层。这是每个数据包接收其目标地址 5.6.7.8 的位置。

5.现在,我们的消息包具有端口号和 IP 地址,它们已准备好通过 Internet 发送。硬件层负责将包含消息字母文本的数据包转换为电子信号并通过电话线传输它们。
6.在电话线的另一端,您的 ISP 直接连接到 Internet。ISP 路由器检查每个数据包中的目标地址并确定将其发送到何处。通常,数据包的下一站是另一个路由器。稍后将详细介绍路由器和 Internet 基础设施。
7.最终,数据包到达计算机 5.6.7.8。在这里,数据包从目标计算机的 TCP/IP 堆栈的底部开始,然后向上工作。
8.当数据包向上通过堆栈时,发送计算机的堆栈添加的所有路由数据(如 IP 地址和端口号)都将从数据包中剥离。
当数据到达堆栈顶部时,数据包已重新组装成其原始形式,“Hello computer 5.6.7.8!”

三:Networking Infrastructure

f3f62ad908484f728559bc74399fea81.jpg

 在这里,我们看到图 1 重新绘制了更多细节。通过电话网络与互联网服务提供商的物理连接可能很容易猜到,但除此之外可能还需要一些解释。

ISP 为其拨入客户维护调制解调器池。这由某种形式的计算机(通常是专用计算机)管理,该计算机控制从调制解调器池到主干网或专用线路路由器的数据流。此设置可以称为端口服务器,因为它“提供”对网络的访问。通常也在此处收集帐单和使用情况信息。

数据包通过电话网络和 ISP 的本地设备后,它们将被路由到 ISP 的主干网或 ISP 从中购买带宽的主干网。从这里开始,数据包通常会经过多个路由器,并通过多个主干网、专用线路和其他网络,直到找到目的地,即地址为 5.6.7.8 的计算机。但是,如果我们知道我们的数据包在互联网上的确切路线,那不是很好吗?有一种方法……

在命令提示符窗口中输入 

tracert www.yahoo.com

四:Internet infrastructure(互联网基础设施)

互联网骨干网由许多相互连接的大型网络组成。这些大型网络称为网络服务提供商或 NSP。一些大型 NSP 是 UUNet、CerfNet、IBM、BBN Planet、SprintNet、PSINet 等。这些网络相互对等以交换数据包流量。每个 NSP 需要连接到三个网络接入点或 NAP。在 NAP 上,数据包流量可能会从一个 NSP 的主干跳到另一个 NSP 的主干。NSP 还在大都市区交易所 (MAE) 上互连。MAE 的用途与 NAP 相同,但属于私有。NAP 是最初的 Internet 互连点。NAP 和 MAE 都称为 Internet 交换点或 IX。NSP 还向较小的网络出售带宽,例如 ISP 和较小的带宽提供商。下图显示了这种分层基础结构。

959ecc1a8c2c48cab1f6d546dcb9d19e.png

 五:The Internet Routing Hierachy(Internet路由层次结构)

没有计算机知道其他计算机的位置,并且数据包不会发送到每台计算机。用于将数据包发送到其目的地的信息包含在连接到 Internet 的每个路由器保存的路由表中。

路由器是分组交换机。路由器通常在网络之间连接,以在它们之间路由数据包。每个路由器都知道它的子网以及它们使用的 IP 地址。路由器通常不知道“上面”的IP地址是什么。检查下面的图 5。连接骨干网的黑匣子是路由器。顶部较大的 NSP 主干网在 NAP 上连接。在它们下面有几个子网络,在它们下面有更多的子网络。底部是两个连接了计算机的局域网。

5c5e1955fd7b4a6f820cb0ed6d1bf585.png

 当数据包到达路由器时,路由器会检查原始计算机上的 IP 协议层放置的 IP 地址。路由器检查其路由表。如果找到包含 IP 地址的网络,则数据包将发送到该网络。如果找不到包含 IP 地址的网络,则路由器会通过默认路由发送数据包,通常沿主干层次结构向上发送到下一个路由器。希望下一个路由器会知道将数据包发送到哪里。否则,数据包将再次向上路由,直到到达 NSP 主干网。连接到NSP主干网的路由器拥有最大的路由表,在这里,数据包将被路由到正确的主干网,在那里它将开始通过越来越小的网络“向下”旅行,直到找到目的地。

六:Domain Names and Address Resolution(域名和地址解析)

DNS是一个分布式数据库,用于跟踪计算机的名称及其在互联网上的相应IP地址。
许多连接到 Internet 的计算机都托管 DNS 数据库的一部分以及允许其他人访问它的软件。这些计算机称为 DNS 服务器。没有 DNS 服务器包含整个数据库;它们只包含其中的一个子集。如果 DNS 服务器不包含另一台计算机请求的域名,则 DNS 服务器会将请求计算机重定向到另一台 DNS 服务器。

ef5c7d39b8764f1bbbe766f8760bf416.png

 域名服务的结构类似于 IP 路由层次结构。请求名称解析的计算机将被重定向到层次结构的“向上”,直到找到可以解析请求中的域名的 DNS 服务器。图 6 说明了层次结构的一部分。树的顶部是域根。一些较老的、更常见的域出现在顶部附近。未显示的是全球众多的DNS服务器,这些服务器构成了层次结构的其余部分。

在设置 Internet 连接时(例如,在 Windows 中用于 LAN 或拨号网络),通常将一个主 DNS 服务器和一个或多个辅助 DNS 服务器指定为安装的一部分。这样,任何需要域名解析的 Internet 应用程序都能够正常运行。例如,当您在 Web 浏览器中输入 Web 地址时,浏览器首先连接到您的主 DNS 服务器。获取您输入的域名的 IP 地址后,浏览器将连接到目标计算机并请求您想要的网页。

七:Internet Protocols Revisited(回顾互联网协议)

正如前面关于协议栈的部分所暗示的那样,人们可以推测 Internet 上使用了许多协议。这是真的;Internet 运行需要许多通信协议。这些协议包括 TCP 和 IP 协议、路由协议、介质访问控制协议、应用程序级协议等。以下各节介绍了 Internet 上一些比较重要和常用的协议。首先讨论更高级别的协议,然后讨论较低级别的协议。

八:Application Protocols: HTTP and the World Wide Web(应用协议:HTTP和万维网)

互联网上最常用的服务之一是万维网 (WWW)。使 Web 正常工作的应用程序协议是超文本传输协议或 HTTP。不要将其与超文本标记语言 (HTML) 混淆。HTML 是用于编写网页的语言。HTTP 是 Web 浏览器和 Web 服务器用于通过 Internet 相互通信的协议。它是一种应用程序级协议,因为它位于协议栈中 TCP 层的顶部,并由特定应用程序用来相互通信。在这种情况下,应用程序是 Web 浏览器和 Web 服务器。

HTTP 是一种基于文本的无连接协议。客户端(Web 浏览器)向 Web 服务器发送 Web 元素(如网页和图像)的请求。服务器处理请求后,客户端和服务器之间通过 Internet 的连接将断开。必须为每个请求建立新连接。大多数协议都是面向连接的。这意味着相互通信的两台计算机通过 Internet 保持连接打开。但是,HTTP 不会。在客户端发出 HTTP 请求之前,必须与服务器建立新连接。

当您在 Web 浏览器中键入 URL 时,会发生以下情况:

如果 URL 包含域名,则浏览器首先连接到域名服务器并检索 Web 服务器的相应 IP 地址。
Web 浏览器连接到 Web 服务器并发送所需网页的 HTTP 请求(通过协议栈)。
Web 服务器接收请求并检查所需的页面。如果该页面存在,则 Web 服务器会发送该页面。如果服务器找不到请求的页面,它将发送 HTTP 404 错误消息。(404 的意思是“找不到页面”,任何上过网的人都可能知道。
Web 浏览器接收回页面并关闭连接。
然后,浏览器解析页面并查找完成网页所需的其他页面元素。这些通常包括图像、小程序等。
对于所需的每个元素,浏览器会针对每个元素向服务器发出额外的连接和 HTTP 请求。

查看 - 使用 Telnet 客户端使用 HTTP 检索网页

 

Telnet 是 Internet 上使用的远程终端服务。它的使用最近有所下降,但它是研究互联网的一个非常有用的工具。在 Windows 中,找到默认的 telnet 程序。它可能位于名为 telnet.exe 的 Windows 目录中。打开后,下拉“终端”菜单,然后选择“首选项”。在首选项窗口中,选中“本地回显”。(这样,您在键入 HTTP 请求时就可以看到它。现在下拉“连接”菜单,然后选择“远程系统”。输入 www.google.com 作为主机名,输入 80 作为端口。(默认情况下,Web 服务器通常侦听端口 80。按连接。现在类型
获取 / HTTP/1.0

,然后按两次 Enter。这是对 Web 服务器根页面的简单 HTTP 请求。您应该看到一个网页闪烁,然后会弹出一个对话框,告诉您连接已丢失。如果要保存检索到的页面,请在 Telnet 程序中打开日志记录。然后,您可以浏览网页并查看用于编写它的 HTML。

九:Application Protocols: SMTP and Electronic Mail(应用程序协议:SMTP 和电子邮件)

另一种常用的 Internet 服务是电子邮件。电子邮件使用称为简单邮件传输协议或 SMTP 的应用程序级协议。SMTP 也是一种基于文本的协议,但与 HTTP 不同,SMTP 是面向连接的。SMTP 也比 HTTP 更复杂。SMTP 中的命令和注意事项比 HTTP 中的命令和注意事项要多得多。

当您打开邮件客户端阅读电子邮件时,通常会发生以下情况:

邮件客户端(Netscape Mail、Lotus Notes、Microsoft Outlook 等)打开与其默认邮件服务器的连接。邮件服务器的 IP 地址或域名通常是在安装邮件客户端时设置的。

邮件服务器将始终传输第一封邮件以标识自身。

客户端将发送一个 SMTP HELO 命令,服务器将以 250 OK 消息响应该命令。

根据客户端是否正在检查邮件、发送邮件等,相应的 SMTP 命令将发送到服务器,服务器将做出相应的响应。

此请求/响应事务将一直持续到客户端发送 SMTP QUIT 命令为止。然后服务器将说再见,连接将关闭。

十:Transmission Control Protocol(传输控制协议)

协议栈中的应用层下是 TCP 层。当应用程序打开与 Internet 上另一台计算机的连接时,它们发送的消息(使用特定的应用程序层协议)将沿着堆栈向下传递到 TCP 层。TCP 负责将应用程序协议路由到目标计算机上的正确应用程序。为此,使用端口号。端口可以看作是每台计算机上的单独通道。例如,您可以在阅读电子邮件的同时浏览网页。这是因为这两个应用程序(Web 浏览器和邮件客户端)使用不同的端口号。当数据包到达计算机并沿协议栈向上移动时,TCP 层会根据端口号决定哪个应用程序接收数据包。

十一:Internet Protocol(网际协议)

与 TCP 不同,IP 是一种不可靠、无连接的协议。IP 并不关心数据包是否到达目的地。IP 也不知道连接和端口号。IP 的工作也是将数据包发送和路由到其他计算机。IP 数据包是独立的实体,可能会无序到达或根本不到达。TCP 的工作是确保数据包到达并按正确的顺序排列。IP 与 TCP 的唯一共同点是它接收数据并将自己的 IP 标头信息添加到 TCP 数据中的方式。

原文作者 Rus Shuler(2002)

相关书籍

TCP/IP Illustrated, Volume 1, The Protocols.

W. Richard Stevens.

Addison-Wesley, Reading, Massachusetts. 1994.

Encyclopedia of Networking.

Tom Sheldon.

Osbourne McGraw-Hill, New York. 1998.

Firewalls and Internet Security; Repelling the Wiley Hacker.
William R. Cheswick, Steven M. Bellovin.
Addison-Wesley, Reading, Massachusetts. 1994.
Data Communications, Computer Networks and Open Systems. Fourth Edition.
Fred Halsall.
Addison-Wesley, Harlow, England. 1996.
Telecommunications: Protocols and Design.
John D. Spragins with Joseph L. Hammond and Krzysztof Pawlikowski.
Addison-Wesley, Reading, Massachusetts. 1992.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值