TCP/IP贯穿在我们学习计算机的生涯中,但TCP/IP终究是个什么玩意儿?在了解他之前我们先看一段历史:
实现网络通信的过程不可谓不艰辛,这段历史表明OSI模型是实现网络通信的一种非常可靠的模型,他的结构大致如下:
但,OSI模型其实只是一种抽象化的设计,他是一种结构,相比于人的骨架,但是没有血肉。他只是告诉我们通过这样的方式流程可以实现网络通信。
然而,TCP/IP协议模型确是完完整整,有血有肉也有骨架。且TPC/IP模型是在互联网发展过程中逐渐形成的,非常符合实际。 但了解过TCP/IP和OSI的伙伴其实也知道,TCP/IP也是基于OSI模型来设计的,所以在了解TCP/IP之前,我们有必要了解一下OSI模型。
一、OSI模型🍉
1.1物理地址和物理层🎈
物理地址也称为硬件地址、链路适配器地址、网卡(NIC)地址,或者MAC地址。物理地址是网络设备将信息最终传至指定网络结点所需的地址,由它所在的局域网或广域网定义。之所以使用“最终”这个词,是因为系统常在开始(在较高层)时寻址到一些符号名,如命令“Ftp Serverhost”中的主机名。其中“Serverhost”是用户试图使用FTP(TCP/IP)应用程序和协议与之建立连接的目的主机名字。对于连接到这台主机的用户而言,必须能从该符号名中得到其物理地址,然后利用此物理地址以许可的寻址规范找到目的主机。这时,类似DNS这样的名字服务进程从符号名中获得一个逻辑地址,TCP/IP协议栈将这一逻辑地址称为IP地址。
对于大多数局域网,包括以太网和IEEE 802.11 WLAN,物理地址可采用6字节(48位)或2字节(16位)两种中的任意一种。但随着局域网规模越来越大,一般采用6字节的物理地址,即用12个十六进制数表示,每2个十六进制数之间用冒号隔开,如00:02:3f:00:11:4d就是一个物理地址。物理地址与具体的物理局域网无关,即无论将带有这个地址的硬件(如网卡等)接入到局域网的何处,都有相同的物理地址,它由厂商写在网卡的只读存储器(ROM)中。可见,物理地址实际上就是网卡(NIC)地址或网络标识符EUI-48。当这块网卡插入到某台计算机后,网卡上的标识符EUI-48就成为这台计算机的物理地址。
物理层:初学者会很自然地将物理地址与OSI参考模型的物理层联系在一起。然而,物理地址实际上是由OSI参考模型的数据链路层负责处理的。物理层仅仅通过物理介质发送和接收比特流,而并不关心这些比特流是否具有诸如地址之类的有意义的组织形式。物理层的操作依赖于其所选择的网络拓扑结构。例如,以太网中的格式、帧和比特周期就与令牌环网中的不同。
1.2数据链路层🎈
根据联网目的的不同,可以将物理地址分为两大基本类型:局域网(LAN)地址与广域网(WAN)地址。LAN地址常见于以太网和令牌环网环境,而WAN地址则常用于高级数据链路控制(HDLC)及帧中继协议寻址。
物理地址支持平面网络模型。这意味着物理地址无法进行路径选择,因为物理地址仅仅能指定一台主机,而不能同时指定网络和主机。若要成为可路由的地址,就必须像TCP/IP一样,同时指定主机地址和网络地址。在数据链路层,仅仅通过寻址表与第2层进行通信的设备无法通过网络(第3层)进行通信。
物理地址是最低一级的地址,它包含在数据链路层使用的帧中。物理地址直接管理网络(局域网或广域网)。这种地址的长度和格式是可变的,取决于具体的网络。例如,绝大多数局域网使用写在网络卡上6字节(48位)的物理地址。LocalTalk则使用1字节的动态地址,它在站点每次入网时动态变化。
物理地址可以是单播地址(一个接收者)、多播地址(一组接收者)或广播地址(由网络中的所有系统接收)。例如,以太网支持单播地址(6字节)、多播地址和广播地址,有些网络则不支持多播地址或广播地址。当必须把帧发送给一组接收者或所有的系统时,多播地址或广播地址必须用单播地址来模拟,这意味着要使用单播地址发送多个分组。
1.3逻辑地址和网络层🎈
逻辑地址对于普通的通信服务是必需的,这种通信服务与底层的物理网络无关。在互联网环境中仅使用物理地址是不合适的,因为不同网络可以使用不同的地址格式。因此,需要一种通用的编址系统,用来唯一地标志每一台主机,而不管底层使用什么样的物理网络。逻辑地址就是为此目的而设计的。目前,采用IPv4协议的因特网逻辑地址是32位的地址。在因特网上没有两台主机具有同样的逻辑地址。逻辑地址与物理地址不同,逻辑地址通常用于软件而非硬件。逻辑地址主要有以下两种:
▶ 网络地址,由网络层处理;
▶ 端口或进程地址,由传输层处理。
逻辑地址也可以是单播地址(单个接收者)、多播地址(一组接收者)或广播地址(对网络中的所有系统)。然而,广播地址存在一些局限性。
网络层:类似“192.168.59.8”这样的IP地址属于逻辑地址。在IP网络中,网络管理员会为每台主机分配一个唯一的IP地址。IP地址是一个32位的地址,包括地址的主机部分和网络部分。图1.1所示的三层网络结构层次对这一概念进行了说明。
第3层地址允许建立多个路由网络。图中的三层网络结构可以将本地网段内的信息流隔离在本层内,而只允许不同网段间需要通信的主机跨层通信。这样就可以将信息流控制在底部两层,即接入层和汇聚层,而只允许通往广域网的信息流通过核心层。这一点可利用路由选择和第3层地址得以实现。
1.4传输层🎈(端口号的意义)
对于从源主机把许多数据传送到目的主机来说,IP地址和物理地址是必须使用的;但到达目的主机并不是在因特网上进行数据传输的最终目的。一个系统若只能从一台计算机向另一台计算机发送数据,显然是不够的。如今的计算机是多进程设备,即可以在同一时间运行多个进程。因特网通信的最终目的是使一个进程能够与另一个进程通信。为此,需要有一种方法对不同的进程进行标志。换言之,进程也需要有地址。给一个进程指派的标号称为端口地址。诸如“23”之类的端口号(进程地址)也属于逻辑地址。设备通过其端口地址向高层传送信息,通过其端口号跟踪多种同步的即时作业。
软件开发人员经常使用一些默认的端口号来初始化即时作业。
传输层不仅负责为应用程序寻址,而且可在第3层协议的基础上提供可靠的通信。传输层提供流量控制、视窗、数据排序及恢复
1.5会话层🎈
OSI参考模型的第5层至第7层处理数据本身,端到端的数据传输则由较低的4层处理。
会话层负责建立、管理和终止应用程序之间的会话。会话由两个或多个表示层实体之间的对话组成。
会话层为表示层提供服务。它使表示层实体之间的对话同步,并负责它们之间数据的交换。除了对会话进行管理,会话层还提供对话单元同步、服务类别(CoS)以及关于第5、6、7层会话异常的报告。
1.6表示层🎈
表示层可以保证格式相同的系统的应用层所发出的信息在目的系统的应用层中仍然可读。必要时,表示层可在不同的多种数据表达格式之间进行转换。
1.7应用层🎈(网关的作用)
应用层最贴近用户。它不支持其他层,而是向OSI参考模型之外的应用程序进程提供服务。
在应用层可以确定和证实指定对等实体的可达性,使双方的应用程序同步,为应用程序的错误恢复和数据完整性控制建立一致的流程。同时,应用层也判断对于指定通信所需的资源是否存在。
二 、TCP/IP👑
TCP/IP模型是一种网络通信协议体系,它由两个部分组成:传输控制协议(TCP)和Internet协议(IP)。TCP/IP模型是当前互联网上广泛应用的网络协议体系。
2.1 TCP/IP模型和OSI模型🎈
TCP/IP协议体系各层所具有的功能如下:
▶ 网络接口层——完成OSI参考模型中物理层和数据链路层的功能,依赖于所在网络的类型,提供位传送和帧传送服务,并实现将物理地址(MAC地址)与逻辑地址(IP地址)相互映射的机制;
▶ 网际互联层——通过多个网络向其目的结点传送数据报,其功能与OSI参考模型的网络层类似;
▶ 传输层——与OSI参考模型传输层的功能相同,提供可靠性及流控制,实现面向应用软件的通信复用;
▶ 应用层——面向不同业务为网络通信提供各种各样的高级协议和应用程序。
虽然具体名称和实现细节可能有所不同,但可以看出TCP/IP模型和OSI模型实现的功能是一样。
2.2 IPv4和IPv6🎈
1983年,IP就已经成为因特网(当时称为ARPANET)的正式标准。随着因特网的不断发展,IP也在不断地推出新的版本。IP从开始到现在共有6个版本,在此仅介绍后3个版本。
IPv4:1981年完成的IP版本4,即IPv4(RFC 791),是TCP/IP协议栈中的核心协议,它向传输层提供了一种无连接的尽力而为的数据传输服务,是实现网络互联的基本协议。随着因特网技术的进步,之后又有许多RFC阐明并定义了IPv4寻址、在某种特定网络介质上运行的IP,以及IPv4的服务类型(ToS)字段等标准。
IPv4除定义了IP数据报及其确切的格式之外,还定义了一套规则,即IPv4地址及其分配方法,用于指明IP数据报如何处理和怎样控制错误。
大部分因特网目前使用IPv4。然而这个版本具有明显的缺点,主要问题是因特网的地址只有32位长,而且地址空间还要分成不同的类。随着因特网的飞速增长,对预测的用户数设计的32位地址已经不能满足需求。此外将地址空间划分为不同类型也限制了可用的地址数。
IPv5:IPv5是基于OSI参考模型提出来的。它是一个试验性的实时流协议,由于层次的改变很大和预期费用很高,这个版本始终没有越过RFC建议阶段,因此没能得到广泛的应用。
IPv6:当前应用在互联网上的IPv4成功地连接着全球范围内的数亿台主机。但是,随着计算机网络规模的不断扩大,IPv4的不足越来越明显,不但地址空间匮乏,路由表过于庞大,而且也不能很好地支持实时业务。针对这种情况,因特网工程任务组(IETF)制定并发布了RFC 2373,一个用来取代IPv4的新一代互联网协议——IPv6。
IPv6又称为IPng(下一代IP)。IPv6大幅度提高了编址能力,它使用16字节(128位)地址,而不是IPv4中使用的4字节(32位)地址。因此,IPv6可容纳的网络用户数量很大。在IPv6中,简化了IP数据报格式,而且还可以灵活地增加一些功能。直观体现如下:
- IPv4地址是32位长,通常表示为四个由点分隔的十进制数(例如:192.168.0.1)
- 而IPv6地址是128位长,通常表示为八组由冒号分隔的十六进制数(例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
IPv6支持网络层的鉴别以及数据的完整性和保密性。它可以处理实时数据(如音频和视频)的传输,以及可携带采用其他协议的数据。IPv6还能够处理拥塞和路由发现,其性能优于IPv4。随着互联网的发展应用,IPv6将替换IPv4。
三、《Web》🍉
3.1 究竟什么是Web?🎈
何谓Web?从Web(万维网)诞生起,人们就没有给它一个确切的定义。有人认为它是一种计算机程序,有人认为它是一类信息检索工具,也有人认为它是一种Internet网络协议。这些说法都是从某个侧面对Web进行的描述,仅仅反映了Web某一方面的特征。至于将Web定义为Internet的一种使用界面,虽然比较准确地反映了Web的基本特征,但仍然不够全面。在Internet上,Web不但提供了信息检索的多种使用界面,还形成了一种信息资源的组织与管理方式;它既包含计算机硬件,又包含计算机软件;它既涉及电子信息出版,又涉及网络通信技术。Web使用的客户机/服务器技术,代表了当代先进的分布式信息处理技术。可以说,正是由于Internet、超文本和多媒体这3个20世纪90年代领先技术的互相结合,才导致了Web的诞生。Web并非某种特殊的计算机网络,而是一个大规模、联机式的信息存储场所。
3.2 应运而生的超媒体🎈
对于大多数用户来说,最具有吸引力的是Web的按需操作。当用户需要某种信息时,就能得到他所要的内容。Web上的信息不仅可以是超文本文件,还可以是语音、图形、图像、动画等。就像通常的多媒体信息一样,这里有一个对应的名称,即超媒体(Hypermedia)。
超媒体包括超文本,也可以用超链接连接起来,形成超媒体文档。超媒体文档的显示、检索、传送功能全部由浏览器实现。Web除了可以按需操作,还有很多让人喜爱的特性。在Web上发布信息非常简单,只需付出很小的代价就能成为信息发布者。表单、Java小程序等可以使用户与Web站点、Web页面进行交互。
总结:“因此,我们也可以说Web是一个分布式的超媒体系统。”