OSI七层和TCP/IP四层的关系
OSI引入了服务、接口、协议的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型
OSI先有模型,后有协议;先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型
OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准
TCP:transmission control protocol 传输控制协议
UDP:user data protocol 用户数据报协议
为何会有TCP/IP协议
在世界各地,各种电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法千差万别。计算机使用者意识到,计算机只是单兵作战,并不会发挥太大的作用,只有将它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。
然而简单的连到一起是远远不够的,就如同语言不同的两个人互相见面,完全不能交流信息。因而他们需要定义一些共通的东西来进行交流,TCP/IP由此而生。TCP/IP不是一个协议,而是一个协议族的统称,里面包括了IP协议、IMCP协议、TCP协议以及http、ftp、pop3协议等等。电脑有了这些,就好像学会了外语一样,就可以和其他的计算机终端自由交流了。
TCP/IP协议分层
TCP/IP协议族按照层次由上到下,层层包装。
应用层
向用户提供一组常用的应用程序,比如电子程序、文件传输访问、远程登陆等。远程登陆TELNET使用TELNET协议提供在网络其他主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。
传输层
提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且加入分组丢失,必须重新发送。
网络层
负责相邻计算机之间的通信。其功能包括三个方面:
一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口
二、处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿机,则转发该数据报
三、处理路径、流控、阻塞等问题。
网络接口层
这是TCP/IP的最底层,负责接受IP数据报并通过网络发送,或者从网络上接收物理帧,抽出IP数据报,交给IP层。
IP是无连接的
IP用于计算机之间的通信
IP是无连接的通信协议。它不会占用两个正在通信的计算机之间的通信线路。这样,IP就降低了对网络线路的需求。每条线可以同时满足许多不同的计算机之间的通信需要。
通过IP,消息(或其他数据)被分割为小的独立的包,并通过因特网在计算机之间传送
IP负载将每个包路由至它的目的地。
IP地址
每个计算机必须有一个IP地址才能够连入因特网
每个IP包必须有一个地址才能发送到另一台计算机
网络上每一个节点都必须有一个独立的Internet地址(也叫IP地址)。通常使用的IP地址是一个32bit的数字,也就是我们常说的IPV4标准,这32bit的数字分为四组,也就是常见的255.255.255.255的样式。IPv4标准上,地址被分为五类,我们常用的是B类地址。需要注意的是IP地址是网络号+主机号的组合。
CP/IP(“CP/IP协议(Transfer ControlnProtocol/Internet Protocol)叫做传输控制/网际协议,又叫网络通讯 协议,这个协议是Internet国际互联网络的基础)使用32个比特来编制,一个计算机字节是8比特,所以TCP/IP使用了4个字节。
一个计算机字节可以包含256个不同的值:
00000000、00000001、00000010、00000011、00000100、00000101、00000110、00000111、00001000 ....... 直到 11111111。
这也是为什么 TCP/IP 地址是介于 0 到 255 之间的 4 个数字。
TCP使用固定的连接
TCP用于应用程序之间的通信
当应用程序希望通过TCP与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP将在两个应用程序之间建立一个全双工(full-deplex)的通信。
这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。
域名
12个阿拉伯数字很难记忆,使用一个名称更容易。
用于TCP/IP地址的名字被称为域名,如:baidu.com
当键入一个想:http://www/baodu.com的域名时,域名会被一种DNS程序翻译为数字。
在全世界,数量庞大的DNS服务器被接入因特网。DNS服务器负责将域名翻译为TCP/IP地址,同时负载使用新的域名信息更新彼此的系统。
当一个新的域名连同其TCP/IP地址一同注册后,全世界的DNS服务器都会对此信息进行更新。
TCP/IP
TCP/IP意味着TCP和IP再一起协同工作。
TCP负责应用软件(如浏览器)和网络软件之间的通信。
IP负责计算机之间的通信
TCP负责将数据分割并装入IP包,然后在它们到达的时候重新组合它们
IP负责将包发送至接收者。
概念模型
OSI七层网络模型 | TCP/IP四层概念模型 | 对应网络协议 |
---|---|---|
应用层(Application) | HTTP、TFTP, FTP, NFS, WAIS、SMTP | |
表示层(Presentation) | 应用层 | Telnet, Rlogin, SNMP, Gopher |
会话层(Session) | SMTP, DNS | |
传输层(Transport) | 传输层 | TCP, UDP |
网络层(Network) | 网络层 | IP, ICMP, ARP, RARP, AKP, UUCP |
数据链路层(Data Link) | FDDI, Ethernet, Arpanet, PDN, SLIP, PPP | |
物理层(Physical) | 数据链路层(网络接口层) | IEEE 802.1A, IEEE 802.2到IEEE 802.11 |
七层模型
OSI七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。因此其最主要的功能就是:帮助不同类型的主机实现数据传输。完成中继功能的节点通常称为中继系统。一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部信息。如网桥工作时,是以MAC头部来决定转发端口的,因此显然它是数据链路层的设备。具体而言:
- 物理层:网卡、网线、集线器、中继器、调制解调器
- 数据链路层:网桥、交换机
- 网络层:路由器
- 网关工作在第四层及其以上层。
集线器是物理层设备,采用广播的形式来传输信息。
交换机就是用来进行报文交换的机器,多为链路层设备,能够进行地址学习,采用存储转发的形式来交换报文。
路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。选择通畅快速的近路,能大大提高通信速度,减轻网络系统通信负荷节省网络系统资源,提高网络系统畅通率。
物理层
在OSI参考模型中,物理层(Physical Layer)是参考模型的最底层。物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。
数据链路层
数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错、能可靠传输数据帧的数据链路。在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。数据链路层的具体工作是:接收来自物理层的位流形式的数据,并封装成帧,传输到上一层;同样,也将来自上层的数据帧,拆装成位流形式的数据转发到物理层,并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。
网络层
网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层。它在下两层的基础上向资源子网提供服务。其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。具体来说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。一般地,数据链路层是解决同一个网络内节点之间的通信,而网络层主要解决不同子网间的通信。例如在广域网之间通信时,必然会遇到路由(即两节点间可能由多条路径)选择问题。
传输层
传输层(Transport Layer)是OSI模型的第四层。因此该层是通信子网和资源子网的接口和桥梁,起到承上启下的作用。该层的主要任务是:向用户提供 可靠的端到端的差错和流量控制,保证报文的正确传输。传输层的作用是:向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。该层常见的协议:TCP/IP中的TCP协议和UDP协议。传输层提供会话层和网络层之间的传输服务,这种服务从会话层获得数据,并在必要时,对数据进行分割。然后,传输层将数据传递给网络层,并确保数据能正确无误地传送到网络层。因此,传输层负责提供两节点之间数据的可靠传输,当两节点的联系确定后,传输层则负责监督工作。
综上,传输层的主要功能是:监控服务质量
会话层
会话层(Session Layer)是OSI模型的第五层,是用户应用程序和网络之间的接口,主要任务是:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此,会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。用户可以按照半双工、单工和全双工的方式建立会话。当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC(介质访问控制子层)地址或网络层的逻辑地址不同,它们是为用户专门设计的,更便于用户记忆。
表示层
表示层(Presentation Layer)是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是:处理用户信息的表示问题,如编码、数据格式转换和加密解密等
应用层
应用层(Application Layer)是OSI模型的最高层,它是计算机用户、以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其它六层工作的基础上,负载完成网络中应用程序与网络操作系统之间的联系,建立和结束使用者之间的联系,并完成网络用户提出的各种网络服务以及应用所需的监督、管理和服务等各种协议。此外,该层还负责协调各个应用程序间的工作。
交换机工作原理
交换机拥有一条很高带宽的内部总线和内部交换矩阵。交换机的所有的端口都挂接在这条总线上,控制电路收到数据包之后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口,目的MAC若不存在则广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部MAC地址表中。使用交换机也可以把网络“分段”,通过对照MAC地址表,交换机只允许必要的网络流量通过交换机。通过交换机的过滤和转发,可以有效的隔离广播风暴,减少误包和错包的出现,避免共享冲突。
交换机在同一时刻可进行多个端口对之间的数据传输。每一端口都可视为独立的网段,连接在其上的网络设备独自享有全部的带宽,无须同其他设备竞争使用。当节点A向节点D发送数据时,节点B可同时向节点C发送数据,而且这两个传输都享有网络的全部带宽,都有着自己的虚拟连接。总之,交换机是一种基本MAC地址识别,能完成封装转发数据包功能的网络设备。交换机可以"学习"MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由原地址到达目的地址。
集线器
集线器的英文称为“Hub”,集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI参考模型的第一层,即“物理层”。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用CSMA/CD(即带冲突检测的载波监听多路访问技术)介质访问控制机制。集线器每个接口简单的收发比特,收到1就转发1,收到0就转发0,不进行碰撞检测。集线器属于纯硬件网络低层设备,基本上不具有类似于交换机的“智能记忆”能力和“学习”能力,它也不具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送。也就是说当它要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点。HUB是一个多端口的转发器,当以HUB为中心设备时 ,网络中某条线路产生了故障,并不影响其他线路的工作。所以HUB在局域网中得到了广泛的应用。大多数的时候它用在星型与树型网络拓扑结构中。
集线器与交换机的区别
集线器,它的作用是可以简单的理解为:将一些机器连接起来组成一个局域网。而交换机(又名交换式集线器)作用与集线器大体相同。但是两者在性能上有区别:集线器采用的是共享带宽的工作方式,而交换机是独享带宽。这样在机器很多或数据量很大时,两者将会有明显差异。
- 工作位置不同:集线器工作在物理层,而交换机工作在数据链路层
- 工作方式不同:集线器是一种广播方式,当集线器的某个端口工作时其他端口都能收听到信息;交换机工作时端口互不影响。
- 带宽不同:集线器是所有端口共享一条带宽,在同一时刻只能有两个端口传输数据;而交换机每个端口独占一条带宽
- 性能不同:交换机以MAC地址进行寻址,有一定额外的寻址开销;集线器以广播方式传送数据,流量小时性能下载不明显,适用于共享总线的局域网。
路由器与交换机的区别
总的来说,路由器与交换机的主要区别体现在以下几个方面:
- 工作层次不同。最初的交换机是工作在数据链路层,而路由器一开始就设计工作在网络层。由于交换机工作在数据链路层,所以它的工作原理比较简单,而路由器工作在网络层,可以得到更多的协议信息,路由器可以做出更加只能的转发效率。
- 数据转发所依据的对象不同。交换机是利用物理地址或者MAC地址来确定转发数据的目的地址;而路由器则是利用IP地址来确定数据转发的地址。IP地址是在软件中实现的,描述的是设备所在的网络,MAC地址通常是硬件自带的,由网卡生产商来分配的,而且已经固化到了网卡中,一般来说是不可更改的,而IP地址则通常由网络管理员或系统自动分配。
- 传统的交换机只能分割冲突域,不能分割广播域;而路由器可以分割广播域。由交换机连接的网段仍属于同一个广播域,广播数据包会在交换机连接的所有网段上传播,在某些情况下会导致通信拥挤和安全漏洞。连接到路由器上的网段会被分配成不同的广播域,广播数据不会穿过路由器。虽然第三层以上交换机具有VLAN功能,也可以分割广播域,但是各子广播之间是不能通信交流的,它们之间的交流仍然需要路由器。
- 交换机负责同一个网段的通信,而路由器负责不同网段的通信。路由器提供了防火墙的服务,路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而可以防止广播风暴。
路由表
路由表是指路由器或者其他互联网网络设备上存储的一张路由信息表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳的传输路径,并将该数据有效的传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在,为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使用,表中包含的信息决定了数据转发的策略。路由表可以是由系统管理员固定设置好的,也可以由系统动态修改,可以由路由器自动调整,也可以由主机控制。
- 静态路由表:由系统管理员事先设置好固定的路由表称之为静态(static)路由表,一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络结构的改变而改变。
- 动态路由表:动态(Dynamic)路由表是路由器根据网络系统的运行情况而自动调整的路由表。路由器根据路由选择协议(Routing Protocol)提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。
路由器通常依靠所建立及维护的路由表来决定如何转发。路由表能力是指路由表内所容纳路由表项数量的极限。路由表中的表项内容包括:
- destination mask pre costdestination:目的地址,用来标识IP包的目的地址或者目的网络
- mask:网络掩码,与目的地址一起标识目的主机或路由器所在的网段的地址。
- pre:标识路由加入IP路由表的优先级。可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用
- cost:路由开销,当到达一个目的地的多个路由优先级相同时,路由开销最小的将成为最优路由
- interface:输出接口,说明IP包将从该路由器哪个接口转发。nexthop:下一跳IP地址,说明IP包所经过的下一个路由器。