今天博客访问量终于过了10万,写了3年博客了,太不容易了~~~~
最近出差罗马尼亚,下班之后就在看《计算机网络》,今天看完了“网络层”。具体实现倒是没什么可说的,主要领悟了以下几个思想:
1、分层
无论是OSI的7层模型,还是TCP/IP的5层模型,都体现了分层的思想
各层只做自己的事情
依赖下层提供的服务,但不依赖下层的细节
下层不依赖上层(NAT是一个例外)
……
看起来和应用开发的分层架构多么相像。我认为最大的好处就在于,每一层的改动,都不会对其他层造成影响,于是可以放心地修改;另外,分层便于实现分布式部署(比如说,数据链路层在网卡和交换机里实现,网络层在路由器里实现……)
2、服务与协议分离
N层为N+1层提供的服务,可以类比为JAVA中的“接口”;支撑服务的协议,则类比为JAVA中的“实现”
从N+1层来看,只是简单地调用第N层的服务,而不关注第N层的协议细节。比如说,在网络层拿到帧数据包后,只是简单地将下层的“帧头”抛弃掉,只需要关注该层的“IP数据包”;而传输层拿到IP数据包之后,又简单地抛弃了“IP头”,只关注该层的“TCP数据包”。第N层协议的细节,在N+1层是不感知的
这使得下层的实现可以随意替换。对于应用层来说,传输层使用TCP协议还是UDP协议,都是毫无影响的,这大大降低了应用层开发的难度。就像在JAVA开发中,DAL层使用hibernate,或者mybatis,或者jdbc,对于Service层也是毫无影响,只要保证DAO的接口是稳定的
3、对等进程
两个交互的进程,通信实际上是先自顶向下,再自底向上传输的;但是在逻辑上,仿佛这两个进程是直接通信的一样。比如两个应用要想通信,他们的传输层必须都理解TCP协议,或者都理解UDP协议,否则就无法正常通信
类似的,web service的客户端和服务端,经常是异构的。比如服务端是用java开发的,而客户端是用C#开发的,那么在应用层(不是说网络模型里的应用层,这里可以大致理解为业务逻辑层),是不能互相理解的。但是在应用层下面,都需要理解soap协议。服务端的这一层,负责将java数据和SOAP协议的转换;在客户端,则要转换c#数据和SOAP协议
4、逻辑和物理分离
物理的以太网,称为LAN;逻辑上的以太网,则是VLAN
多个LAN可以组成一个VLAN,相应的,一个LAN也可以拆分成多个VLAN。在控制网络连通性的同时,却可以不影响物理的连接(并不需要把网线插来拔去),非常方便
类似的,在servlet规范里,每个servlet都有一个URL name,和一个class name,通过deployment name来映射
如果class name的实现替换或者修改了,完全不影响访问。最直接的一个好处是,页面里写的URL,都不需要修改了。这也算是逻辑和物理的分离
如果URL直接对应实现类,那么一旦实现类发生变化,原有的URL就全部失效了,只要是稍微大一点的应用,到处修改URL的工作量都是非常大的,相当于要把整个公司的网线都检查重连一遍
5、总结
这些都是最基本的原理,如果不提上下文的话,很难分辨说的是计算机网络,还是应用程序开发。很有一种“万法同一”的感觉,最近几年,所学很杂,但是常常会有这样的感觉:不同领域的知识,往往在本质上是相通的,而且可以互相印证,联系。有时候想想,觉得十分奇妙
- 大小: 969.7 KB
分享到:
相关推荐
在信息技术迅猛发展的今天,计算机网络已成为我们日常生活和工作中不可或缺的一部分。它不只是技术的简单集合,更是现代信息社会的基础设施。对于计算机专业学生而言,理论知识的学习虽然重要,但实际操作能力的培养...
计算机网络与通信技术课程学习心得(1).doc该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
根据给定文件的部分内容,我们可以提炼出关于计算机网络技术的几个关键知识点。首先需要指出的是,文档中出现的诸如日期、百分比和数字序列似乎是不相关的信息,可能是OCR识别错误,因此我们可以将这部分内容忽略。...
这里里面包含了一些常用的计算机网络的命令,主要是在windows的dos窗口下的
计算机网络是计算机科学的重要分支,涉及计算机技术与通信技术的融合,是通过通信设施将地理位置分散的具有独立功能的计算机系统连接起来,在网络软件的管理下,实现资源共享和信息传递的系统。中国地质大学的...
计算机网络——自顶向下,主要是书籍!大学课程
大学计算机基础学习感想 在信息时代,计算机技术的应用日益广泛与深入,社会对计算机的要求也在不断提高。大学生掌握计算机技术成为了必然要求。通过自学《大学计算机基础》与《大学计算机基础实践教程》,可以掌握...
计算机网络组网技术学习心得全文共2页,当前为第1页。计算机网络组网技术学习心得全文共2页,当前为第1页。学习心得 计算机网络组网技术学习心得全文共2页,当前为第1页。 计算机网络组网技术学习心得全文共2页,...
计算机网络技术是现代信息技术的核心组成部分,它通过连接各种计算设备,实现了信息的快速传播和共享。在《计算机网络技术与应用》这门课程中,学生深入学习了网络的基础知识、局域网技术、TCP/IP协议、网络互连、...
- Telnet是一种远程登录协议,允许用户从远程计算机连接到另一台计算机。 #### 实验目的 - **掌握交换机的管理特性**:理解如何管理交换机,包括远程访问等功能。 - **学会配置交换机支持Telnet操作的相关语句**:...
【大一计算机学习心得感想】 在大一的计算机学习过程中,我深刻体验到计算机技术的快速发展和教育理念的更新。计算机已经渗透到各个领域,成为我们生活和工作的重要工具。学习计算机不仅仅是学习如何操作,更是对...
4. 网络与通信:介绍计算机网络的构成、网络协议、互联网的工作原理以及数据传输的基本概念。 5. 计算机伦理和法律问题:随着信息技术的飞速发展,计算机伦理和法律问题也越来越重要。这包括隐私保护、数据安全、...
大学的《大学计算机基础》课程则为我们构建了全面的计算机知识框架,包括硬件结构、操作系统、网络基础、数据处理等方面,使我们能够理解计算机的工作原理,为今后更高级的计算机技术学习打下坚实的基础。...
计算机网络实验报告摘要 本实验报告的主要内容为计算机网络实验,分为两个实验:实验一:双队列模型和实验二:802.11 无线竞争模型。这两个实验都是关于计算机网络的实验模型,旨在模拟服务器处理包的过程和无线...
这两本教材提供了从硬件到软件的全面知识,包括计算机系统的组成、操作系统的工作原理、网络基础知识等,这些都是理解和掌握计算机技术的基础。对于师范生而言,熟悉办公软件如Word、Excel的高级功能,能提升未来...
《计算机网络》课程设计报告是针对计算机网络领域中路由器配置的实践性学习,旨在通过静态路由和动态路由的配置,让学生深入理解网络通信的基本原理和实际操作。本报告分为两个部分,分别是静态路由配置实验和动态...
进入大学,计算机知识的需求陡增,我们需要深入理解计算机硬件、操作系统、网络和软件应用等方面的内容。《大学计算机基础》和《大学计算机基础实践教程》这两本书提供了全面的学习资源,帮助我们从硬件到软件,从...