0x01 什么是因特网?

1.1 具体构成描述

因特网是一个世界范围 的计算机网络,即它是一个互联了遍及全世界数十亿计算设备的网络。

​ 不久之前,这些计算设备大多数传统PC、服务器等等,然而现在有越来越多的非传统因特网设备与因特网相连,如智能手机、电视、游戏机、家用电器、手表等。

用因特网术语来说,这些设备都成为主机(host)或者端系统(end system)

  • 端系统通过**通信链路(communication link)分组交换机(packet switch)**连接到一起
  • 一台端系统要向另一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节。由此形成的信息包成为分组(packet)
  • 分组交换机:当今最著名的两种类型是路由器(router)链路层交换机(link-layer switch)
  • 从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机成为通过该网络的路径(path)
  • 端系统通过**因特网服务提供商(Internet Service Provider,ISP)**接入因特网
    • 每个 ISP 自身就是一个由多台分组交换机和多段通信链路组成的网络
    • 各 ISP 为端系统提供了各种不同类型的网络接入
    • ISP 也为内容提供者提供因特网接入服务,将Web站点和视频服务器直接连入因特网
    • 因特网就是将端系统彼此互联,因此为端系统提供接入服务的 ISP 也必须互联
  • 端系统、分组交换机和其他因特网部件都要运行一系列协议(protocol),这些协议控制因特网中信息的接收和发送
  • **TCP(Transmission Control Protocol,传输控制协议)IP(Internet protocol,国际协议)**是因特网中两个最为重要的协议
    • IP 协议定义了在路由器和端系统之间发送和接收的分组格式
    • 因特网的主要协议统称为 TCP/IP

1.2 服务描述

​ 从为应用程序提供服务的基础设施的角度来描述因特网

​ 因特网应用包括移动智能手机和平板电脑应用程序,其中包括即时讯息、来自云的音乐流、电影和电视流、在线社交网络以及多人游戏,因为这些应用程序涉及多个交换数据端系统,故它们被称为分布式应用程序(distributed application)

​ 运行在不同端系统上的软件需要互相发送数据,此时我们碰到一个核心问题:运行在一个端系统上的应用程序怎样才能指令因特网向运行在另一个端系统上的软件发送数据呢?

​ 与因特网相连的端系统提供了一个套接字接口(socket interface),该接口规定了运行在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序交付数据的方式

通俗来讲它就是一套发送程序必须遵循的规则集合,因此因特网能够将数据交付给目的地

这种规则就像你寄信需要遵循的规则,邮政服务有自己的“邮政服务接口”或一套规则,你必须遵循,这样邮政服务才能将信件成功送达。同理,因特网也有一个发送数据的程序必须遵循的套接字接口,使因特网向接收数据的程序交付数据

1.3 什么是协议?

1.3.1 人类活动的类比

​ 人类协议要求一方首先进行问候(如:你好),以开始与另一个人的通信。对 “你好” 的典型响应是返回一个 ”你好“ 报文,此时发话者可以继续向此人进行提问。而如果对 ”你好“ 的响应是 ”我没空“ 或某些不合时宜的回答,这就表明了一个勉强的或不能进行的通信,在此情况下,按照人类协议,发话者就不能再继续提问了。显然,发送和接收的报文、以及这些报文发送和接收所采取的动作,这些在一个人类协议中起到了核心作用。

​ 如果人们使用不同的协议(例如:一人理解这句话的意思,但另一人不理解),这些协议就不能交互,因而不能完成有用的工作。在网络中这个道理同样成立,即为了完成一项工作,要求两个(或多个)通信实体运行相同的协议。

1.3.2 网络协议

​ 网络协议类似于人类协议,除了交换报文和采取动作的实体是某些设备(计算机、智能手机、路由器等)的硬件或软件组件

​ 当你向一个Web服务器发出请求(即你在Web服务器中键入一个网页的URL),首先、你的计算机将向该Web服务器发送一条连接请求报文,并等待应答。若该Web服务器最终能接收到连接请求报文,就会返回一条连接响应报文。得知请求Web文档正常以后,计算机则在一条GET报文中发送要从这台web服务器上取回的网页名字。最后、web服务器向计算机返回该web网页(文件)。

​ **协议(protocol)**定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送 和/或 接收一条报文或其他事件所采取的动作。