
1.1. 互联网并不是一个巨型网络,更不是一台巨型计算机
1.1.1. 互联网是基于数据包的网络
1.1.2. 互联网依存于协议和标准
1.2. 是一个松散、非结构化、混乱、自组织的网络集合
1.2.1. 是一个松散、非结构化、混乱、自组织的网络集合
1.2.2. 需要用名字和地址来标识网络和计算机
1.2.3. 需要在并不是直接相连的网络之间找到通信的路径,需要就信息采用何种格式传输达成协议,还需要在错误处理、时延、过载等许多不太显著的问题上达成协议
1.3. 所有的网络,尤其是互联网,都需要按照协议来处理数据格式、谁先发起通信请求、后续可以进行怎样的应答、错误如何处理等方面的问题
1.4. 互联网的所有接入方都要达成同样的协议和标准,如信息按什么格式组织,在计算机之间怎样交换,如何识别计算机身份并授权,以及错误发生了该如何处理
1.5. 互联网和电话系统并无本质区别,但互联网比电话系统更新、规模更大、更杂乱无章,变化也更快
1.6. 互联网初创于20世纪60年代,其初衷在于建造一个网络来连接广泛分散在不同地理位置的计算机
1.7. ARPANET
1.7.1. 1969年10月29日,ARPANET上的第一条消息从加州大学洛杉矶分校发出,到达350英里(550公里)外的斯坦福大学
1.7.1.1. 这一天可以看成互联网的诞生日
1.8. 网络又通过网关或路由器与其他网络相连,网关或路由器是专门用于将信息包从一个网络路由到另一个网络的计算机
1.9. 信息以包为单位在网络中传播
1.9.1. 数据包是具有指定格式的字节序列,不同的设备使用不同的数据包格式
1.10. 在互联网上,数据以IP(即Internet Protocol,互联网协议)包的形式被携带
1.11. 中央管理机构将一组连续的IP地址分配给网络管理员,网络管理员又将各个地址分配给该网络上的主机
1.12. 协议:必须有对规则和步骤的准确说明,给出所有这些组件和其他组件如何互操作,以便信息从一台计算机成功地复制到另一台计算机
1.12.1. 核心协议称为互联网协议(Internet Protocol, IP),它为传输中的信息定义了统一的传输机制和通用的格式
1.12.2. IP数据包是由不同类型的网络硬件使用它们各自的协议来承载的
1.12.3. 在IP之上,传输控制协议(Transmission Control Protocol,TCP)基于IP并进一步提供了一种可靠的机制,可以将任意长的字节序列从源发送到目的
1.12.4. 在TCP之上,更高层次的协议使用TCP来提供我们称之为“互联网”的服务,比如浏览、邮件、文件共享等。还有许多其他协议
1.13. 互联网的一个重要属性:说它是“哑”的,是因为它不理会数据
1.13.1. “哑网络”模式一直具有很高的生产力,因为它意味着任何有好想法的人都可以创建智能端点,并依赖网络来承载字节,期待电话或有线电视公司实施或支持好的想法是行不通的
2. 域名和地址2.1. 互联网的大部分核心技术是由一个松散的联盟组织—互联网工程任务组(Internet Engineering Task Force, IETF)开发的
2.2. “征求修正意见书”(Request for Comments, RFC),最终成了互联网的规范
2.2.1. RFC可以在网上找到,迄今为止已有9000多份了
2.2.2. 并非所有RFC都是很严肃的,可以看看1990年4月1日愚人节发布的RFC-1149,“A Standard for the Transmission of IP Datagrams on Avidan Carriers”(鸟类链路上的数据报传输标准)
2.3. 互联网名称与数字地址分配机构(Internet Corporationfor Assigned Names and Numbers,ICANN,其网址为icann.org)的非营利组织
2.4. ICANN最初是美国商务部管辖的一个署,但现在已经是独立的非营利组织,总部设在加州,主要资金来自注册商和域名注册的费用
2.5. 域名系统
2.5.1. 名称:人们试图直接访问的主机必须有一个方便使用的名称
2.5.1.1. 域名系统(Domain Name System, DNS)是互联网基础设施的重要组成部分,它在名称和IP地址之间进行转换
2.5.2. 域名系统(Domain Name System, DNS)提供了我们熟悉的分级命名方案
2.5.3. 域名具有逻辑结构,但不必具有任何地理意义
2.5.4. 域名系统不受地理位置的限制会带来很多有趣的结果
2.5.4.1. 图瓦卢将国家代码的权利出租给商业利益集团,他们会很乐意出售一个.tv域名
2.5.5. 在2009年,ICANN批准了一些国际化的顶级域名,比如作为中国域名.cn的另一个选项“.中国”
2.5.6. 只要你想要的域名还没被别人注册过,去注册一个你自己的域名是很简单的事
2.5.7. 2003年,有个叫迈克·罗(Mike Rowe)的加拿大中学生为自己的小软件公司建了个网站mikerowesoft.com,由于读音跟某软件巨头相似,该公司威胁要为此采取法律行动
2.5.7.1. 案件得到解决,迈克·罗换了个域名
2.6. IP地址
2.6.1. 地址:每台主机必须有一个地址,这个地址将在互联网上的所有主机中唯一标识这台主机
2.6.1.1. IP地址,具有32位(4字节)或128位(16字节)
2.6.1.2. 较短的地址用于互联网协议的第4版(IPv4),较长的地址用于第6版(IPv6)
2.6.1.3. IP地址类似于以太网地址
2.6.2. 每个网络和每台连接的主机必须都有IP地址,才能和其他网络和主机通信
2.6.3. IPv4地址是互不重复的32位二进制数,在整个网络上,一个时间点只能有一台主机使用这个值
2.6.4. 地址由ICANN以块为单位分配,而这些块又由接收它们的机构进行再分配
2.6.5. 单凭IP地址本身也是无法推断出地理位置的
2.6.6. IPv4地址只有2^32个,约43亿
2.6.7. 128位地址的IPv6
2.6.7.1. 大约有2^128或3×10^38个地址
2.6.7.2. 地址短缺的压力就会消失
2.6.7.2.1. 不会在短期内用完
2.7. 根服务器
2.7.1. DNS的关键功能是将名称转换为IP地址
2.7.2. 顶级域由一组根域名服务器处理,根域名服务器知道所有顶级域的IP地址
2.7.3. DNS使用了一种高效的搜索算法:在顶级域的初始查询中,便立即把那些在下一步查询中不可能碰到的地址排除掉了
3. 路由3.1. 路由:网络必须有一种机制为每个包找到从源到目的的路径
3.2. 路由用于寻找从源地址到目标地址的路径,因此在任何网络中,它都是核心的存在
3.3. 互联网的庞大规模要求采用分层结构来管理路由信息
3.3.1. 路由系统在物理上也存在某种层次结构
3.4. 在路由系统的最顶层,几万个自治系统提供了它们所包含的网络的路由信息
4. TCP/IP4.1. 互联网协议(Internet Procotol, IP),定义了单个包的格式和传输方式
4.2. 传输控制协议(Transmission Control Protocol,TCP),定义了IP包如何组合成数据流以及如何连接到服务
4.3. 两者合起来起就叫TCP/IP
4.4. TCP和IP最初由文特·瑟夫(Vint Cerf)和鲍勃·卡恩(Bob Kahn)于1973年设计,他们因此一起获得了2004年图灵奖
4.5. TCP提供了双向通信方式,从而使数据在两台计算机之间可靠地来回传输
4.6. 网关对IP数据包进行路由,尽管每个物理网络都有自己的IP数据包传输格式
4.7. 每个网关必须在数据包进出时在网络格式和IP之间进行转换
4.8. 互联网协议
4.8.1. IP是互联网的通用机制,是交换信息的通用语言
4.8.2. 互联网协议(IP)提供的是不可靠、无连接的数据包传递服务
4.8.3. 所谓“无连接”,就是每个IP包都是自包含的,和其他IP包无关
4.8.4. IP协议没有状态或记忆,也就是说这个协议一旦把包传给下一个网关,就不再保存关于这个包的任何信息
4.8.5. 互联网协议有一种错误模式倒是在明信片投递上没有的:IP包可以被复制,所以接收方可能会收到多份
4.8.6. 生存时间(Time To Live, TTL)
4.8.7. 承诺尽最大的努力服务,它甚至不能保证信息送达,更不用说多快了
4.9. 传输控制协议
4.9.1. 在互联网协议簇中,高层协议基于IP层的不可靠服务合成可靠的通信,其中最重要的就是传输控制协议—TCP
4.9.2. TCP能为用户提供可靠的双向数据流:一端输入数据,另一端流出数据,延迟很小,出错率很低,仿佛是一条从一头到另一头的直连线缆
4.9.3. TCP使用IP建立连接到目标主机特定端口的可靠流
5. 高层协议5.1. Telnet和SSH协议
5.1.1. 远程登录
5.1.2. Telnet提供了一种访问远程计算机的方式,就像直接连接到远程计算机一样
5.1.3. Telnet并不提供安全措施
5.1.4. Telnet的继任者SSH(Secure Shell)则因为双向加密了全部通信而得到广泛使用,可以用来安全地交换信息。SSH使用22端口
5.2. SMTP
5.2.1. 简单邮件传输协议
5.2.2. SMTP, Simple Mail Transfer Protocol
5.3. 文件共享和点对点协议
5.3.1. Napster
5.3.1.1. 2001年中期,法院判决Napster关闭其业务
5.3.1.2. 两年时间,从白手起家,到8000万用户,再到一无所有,这正是后来的流行语“互联网时代”的生动写照
5.3.2. 点对点,共享者就是其中的对等点(peer)
5.3.2.1. 只存在于对等点计算机上,从来不在中心服务器上
5.3.3. BitTorrent的点对点协议,它是由Bram Cohen在2001年开发的
5.3.4. 点对点网络除了合法性存疑的文件共享之外,还可以有其他用途
5.3.4.1. 比特币
5.4. 更高层协议则用TCP/IP创建互联网服务
5.5. 协议把系统划分为层,每一层为紧接着它的上一层提供服务,并调用其直接相连的下一层的服务
5.5.1. 把协议分层部署的模型是互联网运行的基础,是组织和控制复杂性并隐藏不相关实现细节的绝好方法
5.5.2. 每层只关注本层知晓如何完成的任务:硬件网络把字节从网络中的一台计算机传送到另一台、IP在互联网中传送数据包、TCP合成出来自IP的可靠数据流、应用协议用数据流来回发送数据
6. 物联网6.1. 智能手机只是能够使用标准电话系统的电脑,而所有现代手机也可以通过无线运营商,或Wi-Fi(如果有的话)接入互联网
6.2. 对物联网安全和隐私的关注远远落后于个人电脑和手机的技术水平
6.3. 数量惊人的设备正在“打电话回家”,即将信息发送回制造它们的国家的服务器