网络是几乎可以实时相互发送和接收数据的计算机和其他设备的集合。数据传输的物理介质有线缆。无线网络会通过无线电波传播数据。就像空气和固体都能传播声音一样,传播介质并没有什么神秘可言。
网络中的每个机器成为一个节点。大多数节点是计算机,但是打印机、路由器、网桥、网关、哑终端、可口可乐机也都是节点。
每个网络节点都有地址,这是用于唯一标识节点的一个字节序列。每个地址的字节越多,可用的地址就越多,就可以有更多的设备同时连入网络。
不同的网络会以不同的方式分配地址。比如以太网(ethernet)地址与物理以太网硬件关联,以太网硬件的生产厂家使用预分配的厂商编码确保他们的硬件地址和其他厂家的硬件地址不冲突。每家厂商都要负责保证不会生产出两块地址相同的以太网卡。因特网(Internet)地址通常由负责分配地址的组织分配给计算机。
有些网络中,节点还有易于辨识的名字。例如www.51job.com。某一时刻一个特定的名字通常就指向一个地址。但是,名字并不与地址锁定,可以更改。
所有现代计算机网络都是包交换(分组交换)网络:流经网络的数据分割成小块,称为包(也称为分组),每个包都单独加以处理。每个包都包含了由谁发送和将发往何处的信息。将数据分为单独的带有地址的包,其最重要的优点是,多个即将交换的包可以在一条线缆上传输,这使得建立网络的成本更低:多个计算机可以互不干扰的使用同一条线缆。分包还有一个好处:可以进行校验,检测包在传输中是否遭到破坏。
那么最重要的是:计算机来回出传递数据时还需要提供些什么。协议(protocol)是定义计算机如何通信的一组明确的规则:包括地址格式、数据如何分包等。针对网络通信的不同方面,定义有很多不同的协议。例如,超文本传输协议(http,hypertext transfer protocol)定义了web浏览器如何与服务器通信。开放、公开的协议标准允许不同厂家的软件和设备相互通信:web服务器不关心客户端是unix工作站、android手机还是一个ipad,因为所有客户端都使用相同的http,与平台无关。