计算机自诞生伊始,经历了一系列演变与发展。大型通用机计算机、超级计算机、小型机、个人电脑、工作站、便携式电以及现如今的智能手机终端都是这一过程的产物。它们性能逐年增强,价格却逐年下降,机体规模也在逐渐变小。
随着计算机的发展,人们不再局限于单机模式,而是将一个个计算机连接在一起,形成一个计算机网络。从而实现信息共享,同事在能在两台物理位置较远的机器之间即时传递消息。
计算机网络根据规模可以分为WAN(Wide Area Network,广域网)和LAN(Local Area Network,局域网)。
将有业务往来的计算机连在一起便组成了私有网络,将多个私有网络连接一起就成了为公众使用的互联网。
随着互联网爆发性地发展与普及,信息网络如同我们身边的空气,触手可及。但是在以前,对一般人来说使用一台计算机都不是那么容易的事情。
计算机与网络大致可以分为7个阶段:
互联网是由许多独立发展的网络通信技术融合而成。能够使它们之间不断融合并实现统一的正是TCP/IP技术。 那什么是TCP/IP呢? TCP/IP是通信协议的统称。 那什么是协议呢?
协议就是计算机与计算机之间通过网络实现通信事先达成的一种“约定”。这种“约定”使那些由不同厂商的设备、不同的CPU以及不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。反之,如果使用的协议不同,就无法通信。
计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(protocol)。
协议中存在各式各样的内容。从电缆的规格到 IP 地址的选定方法、寻找异地用户的方法、双方建立通信的顺序,以及 Web 页面显示需要处理的步骤,等等。
像这样把与互联网相关联的协议集合起来总称为 TCP/IP。也有说法认为,TCP/IP 是指 TCP 和 IP 这两种协议。还有一种说法认为,TCP/ IP 是在 IP 协议的通信过程中,使用到的协议族的统称。
分组交换 是将大数据分割为一个个叫做包(Packet)的较小单位进行传输的方法。这里所说的包,就如同我们平常在邮局里见到的邮包。分组交换就是将大数据分装为一个个这样的邮包交给对方。
在计算机通信诞生之初,系统化和标准化并未得到足够的重视。因此不同厂商的设备,由于支持的协议不同,仍然无法实现正常的通信。 就好比语言交流:
随着计算机重要性的不断提高,很多公司开始逐渐意思是兼容性的重要意义。 为了解决上述问题,ISO组织制定了一个国际标准OSI,对通信系统进行标准化。
现在OSI所定义的协议虽然并没有得到普及,但是在OSI协议设计之初作为其指导方针的OSI参考模型却常被用于网络协议的制定当中。
TCP/IP并非是ISO定制的国际标准,而是由IETF所致力与推进标准化作业的一种协议。现在也作为业界标准,俨然已成为全世界所广泛应用的通信协议。
协议的标准化使得所有遵循标准协议的设备不再因计算机硬件或操作系统的差异而无法通信。因此,协议的标准化推动了计算机网络的普及。
ISO在制定标准化OSI之前,对网络体系结构相关的问题进行了充分的讨论并提出了作为通信协议涉及指标的OSI参考模型。这一模型将通信协议中的必要功能分成了7层。
** 为什么要分层呢?**
如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。而分层之后只需把变动的层替换掉即可。把各层之间的接口部分规划好之后,每个层次内部的设计就能够自由改动了。
值得一提的是,层次化之后,设计也变得相对简单了。处于应用层上的应用可以只考虑分派给自己的任务,而不需要弄清对方在地球上哪个地方、对方的传输路线是怎样的、是否能确保传输送达等问题。
协议分层就如同计算机软件中的模块化开发
举个打电话的例子:
1.物理层(Physical Layer)
物理层位于 OSI 参考模型的最低层,它直接面向原始比特流的传输。为了实现原始比特流的物理传输,物理层必须解决好包括传输介质、信道类型、数据与信号之间的转换、信号传输中的衰减和噪声等在内的一系列问题。另外,物理层标准要给出关于物理接口的机械、 电气、功能和规程特性,以便于不同的制造厂家既能够根据公认的标准各自独立地制造设备,又能使各个厂家的产品能够相互兼容。
2.数据链路层(Data Link Layer)
在物理层发送和接收数据的过程中,会出现一些物理层自己不能解决的问题。例如, 当两个节点同时试图在一条线路上发送数据时该如何处理?节点如何知道它所接收的数据 是否正确?如果噪声改变了一个分组的目标地址,节点如何察觉它丢失了本应收到的分组呢?这些都是数据链路层所必须负责的工作。
数据链路层涉及相邻节点之间的可靠数据传输,数据链路层通过加强物理层传输原始比特的功能,使之对网络层表现为一条无错线路。为了能够实现相邻节点之间无差错的数据传送,数据链路层在数据传输过程中提供了确认、差错控制和流量控制等机制。
3.网络层(Network Layer)
网络中的两台计算机进行通信时,中间可能要经过许多中间结点甚至不同的通信子网。 网络层的任务就是在通信子网中选择一条合适的路径,使发送端传输层所传下来的数据能 够通过所选择的路径到达目的端。
为了实现路径选择,网络层必须使用寻址方案来确定存在哪些网络以及设备在这些网络中所处的位置,不同网络层协议所采用的寻址方案是不同的。在确定了目标结点的位置后, 网络层还要负责引导数据包正确地通过网络,找到通过网络的最优路径,即路由选择。如果子网中同时出现过多的分组,它们将相互阻塞通路并可能形成网络瓶颈,所以网络层还需要提供拥塞控制机制以避免此类现象的出现。另外,网络层还要解决异构网络互连问题。
4.传输层(Transport Layer)
传输层是 OSI 七层模型中唯一负责端到端节点间数据传输和控制功能的层。传输层是 OSI 七层模型中承上启下的层,它下面的三层主要面向网络通信,以确保信息被准确有效地传输;它上面的三个层次则面向用户主机,为用户提供各种服务。
传输层通过弥补网络层服务质量的不足,为会话层提供端到端的可靠数据传输服务。它为会话层屏蔽了传输层以下的数据通信的细节,使会话层不会受到下三层技术变化的影响。但同时,它又依靠下面的三个层次控制实际的网络通信操作,来完成数据从源到目标的传输。传输层为了向会话层提供可靠的端到端传输服务,也使用了差错控制和流量控制等机制。
5.会话层(Session Layer)
会话层的功能是在两个节点间建立、维护和释放面向用户的连接。它是在传输连接的基础上建立会话连接,并进行数据交换管理,允许数据进行单工、半双工和全双工的传送。会话层提供了令牌管理和同步两种服务功能。
6.表示层(Presentation Layer)
表示层以下的各层只关心可靠的数据传输,而表示层关心的是所传输数据的语法和语义。它主要涉及处理在两个通信系统之间所交换信息的表示方式,包括数据格式变换、数据加密与解密、数据压缩与恢复等功能。
7.应用层(Application Layer)
应用层是 OSI 参考模型的最高层,负责为用户的应用程序提供网络服务。与 OSI 其他层不同的是,它不为任何其他 OSI 层提供服务,而只是为 OSI 模型以外的应用程序提供服务。包括为相互通信的应用程序或进行之间建立连接、进行同步,建立关于错误纠正和控 制数据完整性过程的协商等。应用层还包含大量的应用协议,如分布式数据库的访问、文件的交换、电子邮件、虚拟终端等。
许多通信协议,都对应了OSI参考模型7个分层中的某层。通过这一点,可以大致了解该协议在整个通信功能中的位置和作用。
举个例子:假设主机A的用户A要给主机B的用户B发送一封电子邮件:
发送方从第7层、第6层到第1层由上至下按照顺序传输数据,而接收端则从第1层、第2层到第7层由下至上向每个上一级分层传输数据。每个分层上,在处理由上一层传过来的数据时可以附上当前分层的协议所必须的“首部”信息。然后接收端对收到的数据进行数据“首部”与“内容”的分离,再转发给上一分层,并最终将发送端的数据恢复为原状。
网络与通信中可以根据其数据发送方法进行多种分类。
2.电路交换与分组交换
3.根据接收端数量来分
通信传输中,发送端和接收端都可以被视作通讯主体。它们都能由一个所谓的"地址"的信息标识出来。比如打电话,电话号码就是"地址",比如寄快递,家庭住址就是"地址"。
在TCP/IP通信中使用MAC地址,IP地址,端口号等信息作为地址标识。甚至在应用层中可以将电子邮件地址作为网络通信的地址。
地址具有唯一性 当地址总数多时,需要有层次性来快速定位。
搭建一套网络环境要涉及到各种各样的电缆和网络设备。
计算机之间通过电缆相互连接。电缆可以分为多种,包括双绞线电缆、光纤电缆、同轴电缆、串行电缆等。而媒介本身也可以被划分为电波、微波等不同类型的电磁波。
举个例子:电脑跟手机邮件有时候会不兼容,需要网关的转换
有时候为了控制流量或保证安全,会有代理服务器,防火墙等都是网关的一种。
比如谷歌被墙啊:
看图吧:
来个总结:
学习TCP/IP知识前需要先了解下计算机网络出现的背景及发展阶段,了解矛盾才能明白出现TCP/IP的必然性。
另外我们知道想要通信需要先遵守协议,为了更好的互联,要推动协议的标准化,然后标准化又促进了计算机网络的发展。
然后为了简便,谈到了协议的分层从而出现了OSI参考模型,知道了各层的分类及作用后,我们再看看现实生活中的网络构成及应用实态。
文章转载自:https://blog.csdn.net/wodeai1235/article/details/63683609