一、背景知识
作为一名程序员, 不可能不与网络打交道。我们一起来了解一下关于网络的基础知识。
1、什么是计算机网络
计算机网络,是指地理位置不同,具有独立功能的计算机及周边设备,通过在网络操作系统中连接的通信线路,管理和协调网络管理软件和网络通信协议,实现计算机系统的资源共享和信息传输的计算机系统。
计算机网络的基本功能是数据通信和资源共享。
资
源共享包括硬件、软件和数据资源的共享。
2、网络的分类
按照覆盖的地理范围来分:
广域网:广域网是一种公共数据网络,其可以将远隔千里的计算机连在一起。
局域网:局域网一般属于单位所有,用于将有限范围内的各种计算机、终端和外部设备连接起来。
城域网:是以IP为基础,通过计算机网络、广播电视台、电信网的三网融合,形成覆盖城市区域的网络通信平台。
比如:校园网就属于局域网
二、OSI---开放系统互连基本参考模型
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范
,顾名思义,把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器,交换机;
OSI七层模型是一种框架性的设计方法,其最主要的功能就是帮助不同类型的主机实现数据传输。
学习计算机网络原理的时候往往用的是五层协议的体系结构 : 物理层, 数据链路层, 网络层, 传输层和应用层。
但是我们今天了解一下七层都有什么吧。
1、物理层
我们都知道,计算机的世界里只有0和1, 存储在计算机中也是一大串0和1的组合。但是这些数字不能在真实的物理介质中传输,而需要把它转换为光信号或者电信号,,所以这一层负责将这些比特流与光电信号进行转换。
如果没有物理层, 那么也就不存在互联网,,不存在数据的共享, 因为数据无法在网络中流动。
所以,
物理层处于OSI参考模型的最低层,它利用传输介质为通信的主机之间建立,管理和释放物理连接,实现比特流的透明传输(传输单位是比特),保证比特流通过传输介质的正确传输。
2、数据链路层
数据在这一层不再是以比特流的形式传输,而是分割成一个一个的
帧
再进行传输。也就是说,数据链路层
是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现。
链路层应具备如下功能:
(1)链路连接的建立、拆除和分离
(2)帧定界和帧同步。链路层的数据传输单元是帧,协议不同,帧的长短和界面也有差别,但无论如何必须对帧进行定界;
(3)顺序控制,指对帧的收发顺序的控制;
(4)差错检测和恢复。还有链路标识,流量控制等等。差错检测多用方阵码校验和循环码校验来检测信道上数据的误码,而帧丢失等用序号检测。各种错误的恢复则常靠反馈重发技术来完成。
3、网络层
网络层是将网络地址翻译成对应的物理地址,通过路由选择算法为分组通过通信子网选择适当的传输路径,实现流量控制、拥塞控制和网络互联的功能;网络层用于本地L A N网段之上的计算机系统建立通信,它之所以可以这样做,是因为它有自己的路由地址结构,这种结构与第二层机器地址是分开的、独立的。这种协议称为路由或可路由协议。
为建立网络连接和为上层提供服务,网络层应具备以下主要功能:
(1). 路由选择和中继;
(2).激活,终止网络连接;
(3).在一条数据链路上复用多条网络连接,多采取 分时复用技术;
(4).检测与恢复;
(5).排序, 流量控制;
(6).服务选择;
(7). 网络管理。
4、传输层
传输层是两台计算机经过网络进行数据通信时,第一个端到端的层次,具有缓冲作用。当网络层服务质量不能满足要求时,它将服务加以提高,以满足高层的要求;当网络层服务质量较好时,它只用很少的工作。传输层还可进行复用,即在一个网络连接上创建多个逻辑连接。传输层也称为运输层。传输层只存在于端开放系统中,是介于低3层通信子网系统和高3层之间的一层,但是很重要的一层。因为它是源端到目的端对数据传送进行控制从低到高的最后一层。
主要功能是端开放系统之间数据的收妥确认。同时,还用于弥补各种通信网路的质量差异,对经过下三层之后仍然存在的传输差错进行恢复,进一步提高可靠性。另外,还通过复用、分段和组合、连接和分离、分流和合流等技术措施,提高吞吐量和服务质量。
这一层主要重点是两个协议 : UDP 和 TCP。在以后的文章会介绍这两个协议。
5、会话层
会话层负责在网络中的两节点之间建立、维持和终止通信。
会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。
会话层通过决定节点通信的优先级和通信时间的长短来设置通信期限。
6、表示层
它的主要作用之一是为异种机通信提供一种公共语言,以便能进行互操作。这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示法不同。与第五层提供透明的数据运输不同,表示层是处理所有与数据表示及运输有关的问题,包括转换、加密和压缩。除此之外,表示层协议还对图片和文件格式信息进行解码和编码。
例如,IBM 主机
使用EBCDIC编码,而大部分PC机使用的是ASCII码。在这种情况下,便需要表示层来完成这种转换。
7、应用层
OSI参考模型的最高层。
其功能是实现应用进程(如用户程序、终端操作员等)之间的信息交换。同时,还具有一系列业务处理所需要的服务功能。
应用层一般包括公共应用服务要素(CASE)和特定应用服务要素(SASE)。其中CASE提供应用进程中最基本的服务,向应用进程提供信息传送所必需的、但又独立于应用进程通信的能力。SASE实质上是各种应用进程在应用层中的映射,每一个SASE都针对某一类具体应用,例如文件传送、访问和管理(FTAM)、虚拟终端(VT)、消息处理系统(MHS)、电子数据互换(EDI)和目录查询等。
OSI七层模型的优点
OSI七层模型将服务、接口和协议这三个概念明确地区分开来,这样各个层之间具有很强的独立性, 所以:
(服务说明某一层为上一层提供一些什么功能,接口说明上一层如何使用下层的服务,而协议涉及如何实现本层的服务)
1、减少网络复杂度 ,一旦网络发生故障,可迅速定位故障所处层次,便于查找和纠错;
2、标准化 ,每一层都遵循同样的标准,便于不同的网络设备实现互操作
3、模块化
4、协作
5、加速发展 ,有效刺激网络技术革新,因为每次更新都可以在小范围内进行,不需对整个网络动大手术。
6、简单教学
三、TCP/IP五(四)层模型
1、什么是TCP/IP?
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.
如下:
2、分层介绍
(1)物理层: 负责光/电信号的传递方式.
比如现在以太网通用的网线(双绞线)、早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。
物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
(2)应用层
TCP/IP模型将OSI参考模型中的会话层和表示层的功能合并到应用层实现。
应用层面向不同的网络应用引入了不同的应用层协议。其中,有基于TCP协议的,如文件传输协议(File Transfer Protocol,FTP)、虚拟终端协议(TELNET)、超文本链接协议(Hyper Text Transfer Protocol,HTTP),也有基于UDP协议的。
(3)传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
在TCP/IP模型中,传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。在传输层定义了两种服务质量不同的协议。即:传输控制协议TCP(transmissioncontrol protocol)和用户数据报协议UDP(user datagram protocol)。
TCP协议是一个面向连接的、可靠的协议。它将一台主机发出的字节流无差错地发往互联网上的其他主机。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。TCP协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。
UDP协议是一个不可靠的、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合。
(4)网络层: 负责地址管理和路由选择.
例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网络层.
(5)网络接口层
对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等.