计算机网络
A day in the life of an application
Network Applicatios——联网应用程序
- Read and write data over network——通过网络来进行数据的读写
- Dominant model:bidirection, reliabel byte stream connection
联网应用程序的强大功能是您可以拥有多台计算机,每台计算机拥有自己的私人数据,每个数据可能由不同的人拥有和控制,交流信息。与本地应用不同,本地应用程序只能访问本地应用程序上的数据,系统中,联网的应用程序可以在全球范围内交换数据。
例如,我们考虑使用网络浏览器阅读杂志,出版社运行的服务器具有所有杂志的文章,并且还具有来自过去问题的所有文章,更正或添加文章后,你可以立即看到更新的版本,整个背面的文章目录可能对您来说太大了,因此你可以,按需进行加载。如果你没有网络,只需要有人向你发送DVD或者USB,其他可移动存储设备。
因此基本的模型是你有两台计算机,每台计算机在本地运行一个程序,程序通过网络进行通信。用的最常见的通信模型是双向的,可靠的字节流。
计算机A上运行的程序A可以写入通过网络传输的数据,从而,然后计算机B上运行的程序,B可以读取到它,当然这里还有其他一些常用的一些模式。可靠的双向字节流仍是迄今为止最常见的一种模式。
Byte Stream Model
右侧的计算机B,正在等待其他计算机连接到它,他可能是一个web服务器,左侧的计算机A要与B一通信,举例,它是一台移动设备,运行网络浏览器的手机, A和B建立了连接。
在当A将数据写入连接时,它通过网络传输,而B可以读取到该数据,同样,如果B将数据写入了连接,则该数据将通过网络传输,而A可以读取到它。
任何一方都可以关闭该连接,例如当web浏览器完成,从web服务器请求数据时,它可以断开连接,同样如果服务器愿意,他也可以关闭连接。如果你曾经在网络浏览器中看到错误消息,说连接重置,意味着网络服务器在网络连接时关闭了连接,但是浏览器他却没想到,不然服务器也可以拒绝连接,您可能会看到连接,便被拒绝或者浏览器等待了很长时间,因为服务器甚至没有任何响应。
World Wide Web(HTTP)——万维网
万维网使用称为HTTP的东西工作,HTTP代表超文本传输。你在浏览器中看到http://…,表示他正在使用HTTP进行通信。在HTTP中客户端打开与服务器的连接,并向其发送命令,最常见的命令是get,它请求页面, HTTP被设计为以文档为中心的程序通信方式,例如,如果我们在浏览器中输入: (http://www.baidu.com),浏览器将会打开一个链接,到服务器www.baidu.com并发送对网站根页面的get请求,服务器收到请求,检查请求是否有效,用户可以访问该请求。
request:"GET / HTTP/1.1"
response:"HTTP/1.1 200 OK"
基本的模型很简单,客户端通过写入连接来发送请求,服务器读取,处理请求,并写入对连接的响应.
Bit Torrent
Bit Torrent是一个程序,允许人们共享和交换大文件,要不然请求从服务器向web发送文档的网络不同于web,客户端在Bit Torrent中请求其他客户的文件,为了使单个客户端可以并行的从许多客户端发出请求,Bit Torrent破坏了文件,文件分解成为片段的数据块,另一个客户从另一个客户下载完整的作品时,他会告诉其他客户,它具有该部分,因此他们也可以下载它,合作的客户的集合称为群,Bit Torrent使用与万维网完全相同的机制,可靠的双向字节流,但是他以稍微复杂的方式使用它,让客户想要下载文件时,他首先必须找到一个叫做torrent的文件,通常您是通过互联网找到的,然后使用猜测的方式下载,这个种子文件描述了有关你要下载的数据文件的一些信息,还会告诉Bit Torrent该洪流的跟踪者是谁,跟踪者是一个节点,用于跟踪哪些客户端是该客户端的成员,要加入种子,你的客户端,再次通过HTTP与跟踪器联系,以请求列表,你的客户端打开与其中一些客户端的连接,并开始进行请求文件。