网络的定义︰网络指用一个巨大的虚拟画面,把所有东西连接起来,也可以作为动词使用。在计算机领域中,网络就是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。凡将地理位置不同,并具有独立功能的多个计算机系统通过通信设备和线路而连接起来,且以功能完善的网络软件(网络协议、信息交换方式及网络操作系统等)实现网络资源共享的系统,可称为计算机网络。
通信,是指人与人、人与物、物与物之间通过某种媒介和行为进行的信息传递与交流。
网络通信,是指终端设备之间通过计算机网络进行的通信。
按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN)。
在计算机科学中,抽象和分层是我们的强力武器,我们可以利用它们让我们的计算机系统更加强大,完成各种”不可能“。
从操作系统,软件设计,网络协议栈等等,都体现了分层思想。
分层中,每个层次负责不同的功能。一般来讲,下层为上层提供服务,上层不要知道下层的具体实现细节,只需使用下层提供的服务。而层与层之间联系的桥梁就是“接口”(Interface)。OS调用硬件提供的api,软件调用OS提供的api,而用户调用软件提供的api。
举个例子,在计算机网络中,处于应用层的协议,如http,ftp等,可以”享受"传输层提供给他们的服务,他们无需考虑底层链路细节,无需考虑报文是如何到达接收方,这就是分层带来的好处!
我们有了分层之后,所带来的可复用性,亦是独立性等,都有助于我们更好的管理计算机这一庞大的系统。
ISO于1984年颁布了OSI参考模型。OSi参考模型是一个开放式体系结构,它规定将网络分为七层,从下往上依次是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
TCP/IP是传输控制协议/网际协议(TransmissionControlProtocol/InternetProtocol)的简称。早期的TCP/IP模型是一个四层结构,从下往上依次是网络接口层、互联网层、传输层和应用层。在后来的使用过程中,借鉴OSI的七层参考模型,将网络接口层划分为物理层和数据链路层,形成了一个新的五层结构。TCP/IP 是一系列协议的集合,所以严格的称呼应该是TCP/IP协议簇。
网络层及以下的通信为点到点通信(主机与主机)
1、物理层和数据链路层,TCP/IP 并没有定义任何特定的协议。它支持所有标准的、专用的协议,网络可以是局域网(如广泛使用的以太网)、城域网或广域网。所以,TCP/IP实际上只有三个层次。
2、网络层,TCP/IP定义了IP(InternetProtocol,网际协议),而IP又由四个支撑协议组成:ARP(地址解析协议)、RARP(逆地址解析协议)、ICMP(网际控制报文协议)和 IGMP(网际组管理协议)。
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源.
ICMP(网际控制报文协议): 用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息
3、传输层, 传统上,TCP/IP 有两个传输层协议:TCP(传输控制协议)和 UDP(用户数据报协议)。TCP协议传输更加稳定可靠,UDP协议传输效率更高。
4、应用层,TCP/IP定义了许多协议,如HTTP(超文本传输协议)、FTP(文件传输 协议)、SMTP(简单邮件传输协议)、DNS(域名系统)等。
在传输层中,TCP是传输控制协议 ,是一种面向连接的、可靠的、基于字节流的传输层通信协议,效率低,数据传输比较安全。而UDP是数据报协议,是一种面向无连接的传输层通信协议,效率高,但数据传输不安全,容易丢包。
数据封装的过程:
数据在各层之间是如何传输的:
1、应用层,数据被“翻译”为网络世界使用的语言——二进制编码数据。大家可以试想一下,人们需要通过计算机传输数据的形式千变万化、各式各样,有字母、数字、汉字、图片、声音等。这些信息对于单一通过弱电流传输的计算机来说太过于“复杂”,因此这些人类方便识别的信息被应用层通过各种特殊的编码过程转换成二进制数据。这就是上面所描述的“翻 译”过程,也是应用层在网络数据传输过程中最为核心的贡献。
2、传输层,上层数据被分割成小的数据段,并为每个分段后的数据封装TCP报文头部。它不可能看懂应用层传输具体数据的内容的,因此只能借助一种标识来确定接收到的数据对应的应用程序,这种标识就是端口。
3、网络层,上层数据被封装上新的报文头部——IP头部。值得注意的是,这里所说上层数据包括TCP头部,也就是说,这里的上层是指传输层。对于网络层而言,它是看不懂TCP报文头部中内容的,在IP头部中有一个关键的字段信息——IP地址,一组32位的二进制数组成的,用于标识网络的逻辑地址。网络层的传输过程与其很类似,在IP头部中包含目标IP地址和源IP地址,在网络传输过程中的一些中间设备,如路由器,会根据目标IP地址来逻辑寻址,找到正确的路径将数据转发到目的端。如果中间的路由设备发现目标的IP地址根本是不可能到达的,它将会把该消息传回发送端主机,因此在网络层需要 同时封装目标IP和源IP。
4、数据链路层,在数据链路层,上层数据被封装一个MAC头部,其内部有一个关键的字段信息——MAC地址,它由一组48位的二进制数组成。在目前阶段,我们先把它理解为固化在硬件设备中的物理地址,具有全球唯一性。网卡就有属于自己的唯一的MAC地址。和IP头部一样,在MAC头部也同时封装着目标MAC地址和源MAC地址。
5、物理层,传输过程无论在之前哪一层封装的报文头部还是上层数据信息都是由二进制数组成的,在物理层,将这些二进制数字组成的比特流转换成电信号在网络中传输。
数据解封装过程:
1、物理层,首先将电信号转换成二进制数据,并将数据送至数据链路层。
2、数据链路层,将查看目标 MAC 地址,判断其是否与自己的 MAC 地址吻合,并据此完成后续处理。如果数据报文的目标MAC 地址就是自己的MAC地址,数据的MAC头部将被“拆掉”,并将剩余的数据送至上一层;如果目标MAC地址不是自己的MAC地址,对于终端设备来说,它将会丢弃数据。
3、网络层与数据链路层类似,目标IP地址将被核实是否与自己的IP地址相同,从而确定是否送至上一层。
4、传输层,首先要根据TCP头部判断数据段送往哪个应用层协议或应用程序,然后将之前被分组的数据段重组,再送往应用层。
5、应用层,这些二进制数据将经历复杂的解码过程,以还原发送者所传输的原始信息。
相关数据传输的概念:
1、PDU:Protocol Data Unit,协议数据单元
OSI参考模型的PDU概念指:协议数据单元,同样也可以在TCP/IP五层结构沿用这个概念,PDU是指同层之间传递的数据单位名称。
2、TCP/IP五层结构体系中,上层数据被封装TCP头部后,这个单元称为段(Segment);数据段向下传到网络层,被封装IP头部后,这个单元称为包(Packet);数据包继续向下传送到达数据链路层,被封装MAC头部后,这个单元称为帧(Frame);最后帧传送到物理层,帧数据变成比特(Bits)流;比特流通过物理介质传送。
3、设备的概念:
常用的个人计算机和服务 器都属于应用层设备。
路由器属于网络层设备,因为路由器的主要功能是网络层的逻辑寻址。
交换机属于数据链路层设备(这里之所以说传统,是因为如今三层、四层的交换机已经非常普遍了),因为交换机的主要功能是基于MAC地址的二层数据帧交换。
网卡一般意义上定义在物理层,虽然目前有些高端的网卡甚至涵盖防火墙的功能,但其最主要、最基本的功能仍是物理层通信。还有就是硬件防火墙,理论上讲,它应该属于传输层设备,因为它主要基于传输层端口号来过滤上层应用数据的传输,但是需求永远是网络行业发展的原动力。
防火墙更注重整体解决方案的实现。对于病毒、木马、垃圾邮件的过滤已经成为防火墙的附属功能,而且已经在企业中广泛应用,因此,很多人愿意将防火墙归属于应用层。