做web开发呢,除了前端后端技术要熟练使用外,想要更进一步学习web原理,那必须还得了解计算机网络的一些基础知识。计算机网络范围其实很广,内容杂多。说来惭愧啊,上学时候,上课都没有认真思考,实验也没有充分发挥主观能动性,浪费了现有硬件资源来对网络进行更深的学习。但是,在日常工作中,对这些原理的东西也不能一概不知。就打算来说说,网络中的一些基础内容,包括:数据传输模型OSI,TCP/IP,TCP协议的建立与释放,IP数据报的传输与数据格式等等。
因为从计算机整个发展到现在的历程来看,从没有操作系统的单太计算机,只是用于数据简单处理的计算机,到后来的批处理系统,多道程序系统,到分时系统,实时系统的发展,计算机处理能力呈现爆炸性增长,伴随着处理能力提升,早起不同的计算机公司开发自己定义的计算机系统以及计算机通信协议,导致了不同的公司或者说不同的硬件底层支持的计算机的通信会很复杂,硬件的异构型造成了计算机通信的成本花费很大。特别是万维网的创建,更是将整个实验室,县城,市区到国家之间的计算机通信互联的现实需求推至顶端。
那么为了不同公司,不同类型的计算机进行通信更高效,方便,那么无规矩不成方圆。权威机构当然就联合起来,共同定制合理有效的计算机通信模型以及协议等等。也是适应时代发展的需要和推动计算机互联网的快速发展的必然结果。
该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。开放系统互联参考模型的系统结构共分7层。在该模型中层与层之间进行对等通信,且这种通信只是逻辑上的,真正的通信都是在最底层-物理层实现的,每一层要完成相应的功能,下一层为上一层提供服务,从而把复杂的通信过程分成了多个独立的、比较容易解决的子问题。--引用自
下面这张图,把整个OSI协议模型以及每层协议栈上的一些协议给列出来了:(图片来源自网络)
该OSI通信框架知道有7层,那七层,每层大致做得什么,有什么作用就够了。在此就不细说了。
TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。ARPANET是由美国国防部DoD() */
不同层次对应的硬件配置:(通常情况下,不包括三层交换机,四层交换机..)
物理层:网卡,网线,集线器,中继器,调制解调器
数据链路层:网桥,交换机
网关工作在第四层传输层及其以上
集线器是物理层设备,采用广播的形式来传输信息。
交换机就是用来进行报文交换的机器。多为链路层设备(二层交换机),能够进行地址学习,采用存储转发的形式来交换报文.。
路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率。交换机和路由器的区别?
交换机拥有一条很高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条总线上,控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口,目的MAC若不存在则广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部MAC地址表中。使用交换机也可以把网络“分段”,通过对照MAC地址表,交换机只允许必要的网络流量通过交换机。通过交换机的过滤和转发,可以有效的隔离广播风暴,减少误包和错包的出现,避免共享冲突。
交换机在同一时刻可进行多个端口对之间的数据传输。每一端口都可视为独立的网段,连接在其上的网络设备独自享有全部的带宽,无须同其他设备竞争使用。当节点A向节点D发送数据时,节点B可同时向节点C发送数据,而且这两个传输都享有网络的全部带宽,都有着自己的虚拟连接。假使这里使用的是10Mbps的以太网交换机,那么该交换机这时的总流通量就等于2×10Mbps=20Mbps,而使用10Mbps的共享式HUB时,一个HUB的总流通量也不会超出10Mbps。
总之,交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。
从过滤网络流量的角度来看,路由器的作用与交换机和网桥非常相似。但是与工作在网络物理层,从物理上划分网段的交换机不同,路由器使用专门的软件协议从逻辑上对整个网络进行划分。例如,一台支持IP协议的路由器可以把网络划分成多个子网段,只有指向特殊IP地址的网络流量才可以通过路由器。对于每一个接收到的数据包,路由器都会重新计算其校验值,并写入新的物理地址。因此,使用路由器转发和过滤数据的速度往往要比只查看数据包物理地址的交换机慢。但是,对于那些结构复杂的网络,使用路由器可以提高网络的整体效率。路由器的另外一个明显优势就是可以自动过滤网络广播。
**集线器与路由器在功能上有什么不同? **
首先说HUB,也就是集线器。它的作用可以简单的理解为将一些机器连接起来组成一个局域网。而交换机(又名交换式集线器)作用与集线器大体相同。但是两者在性能上有区别:集线器采用的式共享带宽的工作方式,而交换机是独享带宽。这样在机器很多或数据量很大时,两者将会有比较明显的。而路由器与以上两者有明显区别,它的作用在于连接不同的网段并且找到网络中数据传输最合适的路径。路由器是产生于交换机之后,就像交换机产生于集线器之后,所以路由器与交换机也有一定联系,不是完全独立的两种设备。路由器主要克服了交换机不能路由转发数据包的不足。
总的来说,路由器与交换机的主要区别体现在以下几个方面:
最初的的交换机是工作在数据链路层,而路由器一开始就设计工作在网络层。由于交换机工作在数据链路层,所以它的工作原理比较简单,而路由器工作在网络层,可以得到更多的协议信息,路由器可以做出更加智能的转发决策。
(2)数据转发所依据的对象不同
交换机是利用物理地址或者说MAC地址来确定转发数据的目的地址。而路由器则是利用IP地址来确定数据转发的地址。IP地址是在软件中实现的,描述的是设备所在的网络。MAC地址通常是硬件自带的,由网卡生产商来分配的,而且已经固化到了网卡中去,一般来说是不可更改的。而IP地址则通常由网络管理员或系统自动分配。(3)传统的交换机只能分割冲突域,不能分割广播域;而路由器可以分割广播域
由交换机连接的网段仍属于同一个广播域,广播数据包会在交换机连接的所有网段上传播,在某些情况下会导致通信拥挤和安全漏洞。连接到路由器上的网段会被分配成不同的广播域,广播数据不会穿过路由器。虽然第三层以上交换机具有VLAN功能,也可以分割广播域,但是各子广播域之间是不能通信交流的,它们之间的交流仍然需要路由器。(4)路由器提供了防火墙的服务
路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而可以防止广播风暴。上面的内容仅仅是网络的很小很小的基础知识部分,也是自己学习过程中一些总结。包括数据通信的OSI/TCP参考模型,并对数据通信中每层的协议栈进行分析和内部数据结构的图解,同时也将linux系统对每层协议的代码定义也罗列出来,帮助程序员加深理解。其实,内部还有很多东西值得去学习,分析,思考。这篇就到这....