简单谈谈计算机网络

  12 * * * 请求超时。

  13 22 ms 22 ms 31 ms 123.125.114.144

  跟踪完成。

  二、应用层

  对于应用层,我想绝大多数人,应该是最熟悉的了。尤其是从事软件开发的人。这类应用程序体系结构是由应用程序研发者设计,不过多是利用的现代所流行的俩种主流体系结构之一:C/S结构(客户 - 服务器),P2P结构(对等体系)。

  C/S结构:在这种体系中,总有一个需要一直打开的主机,我们称为服务器(server),它服务于其他称为客户(client)主机的请求。服务器总是具有一个固定的地址,大家都知道的地址,称为IP地址。比如 baidu.com 的IP地址之一为 180.149.132.47 。啥?你不知道 baidu.com 的地址,但是你知道 baidu.com 这个名字吧,又因为存在DNS服务(后面说),所以想当于了解。在这种结构下,值得注意的是,其他客户主机之间是不可以之间进行通信的。

  P2P结构:在对等(Peer-to-peer)体系中,每台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。通常这些资源和服务包括:信息的共享和交换、计算资源(如CPU计算能力共享)、存储共享(如缓存和磁盘空间的使用)、网络共享、打印机共享等。

  2x01.是什么在通信

  对于学习过操作系统,或阅读过unix网络编程的人,对Tcp echo服务器应该不会陌生。当前进程通过fork()生成另外一个进程,一个进程发送一句话,然后另外一个接收到,并且显示在屏幕上。所以,我们可以想得到,在应用层而言,忽略下层数据传输细节,那么通信的其实就是进程。然而我们不怎么关注同一台主机上进程间的通信,而关注不同端系统上的进程间的通信。那么就不得不一个新东西: 套接字 ,主机上应用层与运输层的接口,但是应用程序开发者对于运输层的控制仅限于:

  选择运输层的协议

  也许能设定几个运输层的参数,比如最大换成数,和最大报文段长度等。

  2x02.网络应用

  互联网从诞生到现在不过短短百年,但是对于人类社会的影响确实翻天覆地。试想,一百年前的时候,你能身处中华,却知道美国现在发生着选举大会吗?你能通过一个东西随身携带万卷书吗?你能实时与你远在他乡的好友实时通讯吗?不能,都不能。但是现在可以。那么接下来,就介绍几个极为流行的应用以及它的应用层协议吧。

  HTTP:Hyper Text Transfer Protocol(超文本传输协议)的缩写。常有俩个程序实现,客户机-服务器,并且分别运行在不同的端系统上。其下的支撑运输协议是使用的TCP,而且由于http服务器并不保存关于客户的任何信息,所以 http 也被称为是一个无状态协议。但是为了跟踪用户的输入(比如用户的购物车商品),网站会提供一个用户身份的识别码,存放在cookie中,每次再访问网站则自动将cookie加入到HTTP报文头部,实现身份的识别。

物联网

  交互过程

  FTP:File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。同时,它也是一个应用程序。通过使用俩个并行的TCP链接来传输文件,一个是控制链接,一个是数据链接,控制链接用于在俩个主机之间传输控制信息,如用户标识,口令,命令。数据链接用于实际发送一个。

  DNS:Domain Name System(域名系统)的缩写,运行在UDP协议之上。就像我们上面提到的 baidu.com 怎么转换成ip地址,这个就是DNS的服务。下面来介绍一下。首先,总的来说,DNS采用了分布式的设计方案。如下。

物联网

  DNS服务器层次结构

  每个组织,如一个大学,一个院系,一个公司都会有一台本地DNS服务器,当一台主机想要访问 baidu.com 的ip地址时,会先发送她的查询请求到本地DNS服务器,里面查找是否有 baidu.com 的ip地址。没有的话,本地DNS服务器就把这个请求转发到根DNS服务器,然后根DNS服务器把 com DNS服务器地址发送给本地DNS服务器,然后本地DNS服务器发送查询请求到 com DNS服务器,完成名字与ip地址的转换。