网络基础知识(一)

1.计算机网络的层次结构:
经典的ISO七层结构为:物理层、链路层、网络层、传输层、会话层、表示层、应用层。

网络层关注的是数据包如何在路由之间传递,最终到达目的端

传输层关注的是端对端的数据传送(数据流

而在互联网的实际运用采用TCP/IP的四层架构

2.HTTP

HTTP/1.1是一种请求应答式的协议(参见园子里“HTTP协议详解”这篇文章);HTML5中加入了服务器端主动推送数据的功能,更适合于社交网络。

HTTP协议的详细规范可参见RFC2616技术规范。

2.1 缓存协商

缓存协商的意思是浏览器去服务器端询问页面有没有修改过,没有修改过则返回304直接使用缓存内容,否则返回新内容(详细介绍参见园子里“Conditional GET Request(缓存协商)”这篇文章)
协商步骤:
1)服务器发送带Last-midified:GMTtime 头的http response;
2)浏览器下次请求时带上if-modified-since:GMTtime http 请求头
3)服务端用本地Last-midified时间与if-modified-since比较,计算浏览器数据是否过期并发送响应
4)Etag的工作原理与Last-midified类似,不同点在于Etag的值是用户可自定义的

2.2 彻底缓存

彻底缓存的意思是在缓存失效之前不再需要跟服务器交互,常用的是Expires,Expires的值是一个绝对时间,由服务器产生。
这儿存在一个问题,就是服务器的时间可能给客户端的时间不一致导致缓存时间的偏差,要解决这个问题就要使用cache-control,它保存的是一个相对浏览器的时间。
如果同时存在cache-control和Expires怎么办呢?浏览器总是优先使用cache-control,如果没有cache-control才考虑Expires

3.FTP

FTP有主动和被动两种不同的工作模式(参见主动FTP模式与被动FTP模式FTP的主动被动模式)。

FTP协议的详细规范可参见RFC959技术规范。

4.HUB、SWITCH、ROUTER

集线器(Hub):工作在物理层,所有的端口在一个域中,某个端口收到数据时,只是简单的将这个报文广播发送其它所有端口,并且同一时刻只允许一台发数据,其它的计算机想要发数据,必须要等共用线路空闲下来才可以;

交换机(Switch):工作在链路层,各个端口都独享带宽,彼此之间不存在冲突,可以同时收发数据,在内部存储有端口与MAC地址的映射表,某个端口收到数据时,解析出报文中的MAC地址,将报文发送到指定端口,但所有端口仍在一个广播域中,无法阻止广播风暴(广播、组播报文中目的MAC地址是全F,在映射表中没有端口与其匹配);

路由器(Router):工作在网络层,基于路由表进行数据转发,某个端口收到数据时,解析出报文中的IP地址,将报文发送到指定端口;

更为详细的解释参见Hub/Switch/Router工作原理HUB、SWITCH、ROUTER这两篇文章

5.ICMP协议

网际控制信息协议是一个在主机和网关之间消息控制盒差错报告协议,使用IP作为底层支持,似乎是一个高层协议,实际上是IP的一部分,是针对IP协议的辅助功能协议,目的是为了当网络出现问题的时候返回控制信息,让IP协议变得更为可靠。

6.ARP协议

地址解析协议是针对IP协议的辅助功能协议,当IP报文要通过链路层发送的时候,必须获知目的IP地址所对应的MAC地址,通过发送含有目的IP地址的ARP广播报文,目的IP地址的主机会返回报文目的MAC地址的ARP报文,源主机由此建立IP地址与MAC地址的映射表。

posted on 2012-11-13 10:56  应无所住而生其心  阅读(214)  评论(0编辑  收藏  举报

导航