计算机网络—网络协议

tech2022-09-18  91

OSI网络体系结构

网络体系结构的产生

利用“结构化”设计的方法和“分层”的思想对通信系统进行整体设计,为网络硬件、软件、协议、存取控制和拓扑提供标准,如此产生了网络体系结构。

OSI是什么?

ISO( International Organization for Standardization) 国际标准化组织 和 CCITT (International Telegraph and Telephone Consultative Committee )国际电报电话咨询委员会 联合制定了 OSI/RM 模型(Open System Interconnect/Reference Model,开放系统互联参考模型),简称OSI参考模型。OSI参考模型是一个概念性的框架,是用来协调各进程间通信标准的制定、实现开放系统环境中的互联性、互联操作性与应用的可移植性。OSI参考模型定义了网络互联的 七 层框架,从低到高分别是 物理层、 数据链路层、 网络层、 传输层、 会话层、 表示层、 应用层,每一层都有各自提供的服务和功能。通过网络之间的通信,即两个主机应用进程之间进行数据交换,数据经过每一层的变化最后实现通信的目的。

OSI的七层体系结构是怎样的?

Application ,to allow access to network resources.第七层应用层,是最高层、最接近用户的一层,用户可以利用不同的应用软件产生或得到不同类型(例如语音)的网络数据。这一层主要是为操作系统或网络应用程序提供访问网络服务的接口。Presentation, to tanslate , encrypt ,and compress(压缩) data.第六层表示层,提供格式化的表示和转换数据服务,解决上一层用户信息的语法表示问题,对数据进行压缩、格式转换、加密和解密等工作,并为下一层实现其功能做好准备。Session,to establish, manage, and terminate sessions.第五层会话层,该层负责在两个节点间建立端与端的连接,进行对话的连接、管理和拆除,但是会话层并不参与具体的传输,在表示层和会话层的数据被转换为数据单元。Transport,to provide reliable process-to-process message delivery and error recovery.第四层传输层,数据经过前三层已经做好了传输的准备,在传输层 数据单元 变为段(TCP,可靠,三次握手,应用于数据量小如电子邮件) 或者 报文(UDP,不可靠,应用于数据量大如音视频流),该层提供端到端(最终用户到最终用户)的透明的、可靠地数据传输服务,并处理端到端的差错控制和流程控制问题。Network,to move packets from source to destination,to provide Internetworking .第三层网络层,计算机网络通信中会经过多个数据链路和通信子网,网络层就是选择合适地网间路由和交换节点,来确保数据的即时传输。这一层还可以实现网络的拥塞控制、网际互连等功能。这层中通过IP地址来寻址,数据以分组为单位,称为报文分组数据(message packets)。Data link, to organize bits into frames, to provide hop-to-hop(中断式) delivery 第二层数据链路层,该层也用于数据传输,与网络层不同的,在这一层中通过MAC地址(物理地址)来寻址,并且给报文分组数据加上头部与尾部,变为我们所熟知的帧(frame)。数据链路层主要作用是通过校验、确认和反馈重发等手段 将 不可靠的物理链路改造成对网络层来说无差错的数据链路,并进行流量控制防止阻塞。 -Physical,to transmit bits over a medium,to provide mechanical and electrical specification(规范). 第一层物理层,最底层。如果说前几个层次的数据变化和传输比较虚拟,那在物理层数据就在具体的物理媒介中进行传输,此时数据被称为比特流,物理层上的传输介质有很多,例如光纤、双绞线、同轴电缆、无线电波等介质。物理层、数据链路层、网络层 这前三层是网络支持层,传输层、会话层、表示层、应用层这后四层是用户支持层。

OSI模型中的数据传输

进程A首先在应用层调用各种应用软件产生各种网络数据,这些数据就是进程A与进程B要交换的信息。表示层从应用层接受数据后,对数据进行加密、压缩等操作使数据变为表示层的数据单元,便于下面的传输工作。会话层为表示层的数据单元添加 建立会话 所需的相关信息,建立 进程A和进程B之间的联系,进行对会话的连接和管理,此时 表示层的数据单元 变为 会话层数据单元。成功建立会话后,数据单元进入传输层,在这层数据单元添加上TCP或UDP协议的头部,变为段或报文,实现端到端的传输。段或报文进入网络层,由于数据可能很长,网络层就将其分为一个个较短的数据字段,变为数据分组,并选择合适的路由,再进入下一层的传输。为了实现信道上的无差错传输,数据链路层为分组数据加上了“保护措施”即头部和尾部,将分组数据变为帧。物理层提供数据传输的通路,将帧变为比特流,在各种介质上传输。数据通路可以是直接一次性在两个数据端连接起来,也可以通过多次数据传输连接而成的,即中转,中转时,会经过物理层比特流的传输至数据链路层的帧传输,再到网络层的分组后又进入下一个数据链路层的帧传输至物理层的比特流传输…如此依次循环知道数据被传输到另一个数据端。进程A在OSI参考模型中数据传输工作类似对数据进行一次次的打包加密,当比特流达到另一个数据端B时,数据在OSI模型中的传输就如同一次次的拆包解密解压工作,最终将原始数据完整地传输到进程B,结束此次数据的传输。

TCP/IP网络协议

TCP/IP协议特点

目前广泛商用的体系结构是TCP/IP协议,它适应了全世界范围内的数据通信需要。TCP/IP协议一共分为6个版本,现在用的是IPv4,是第四版,有的地区在用IPv6,IPv6也被称为下一代的IP协议。它具有以下几个特点: 1.开放的协议标准 2.独立于特定的计算机硬件与操作系统 3.独立于特定的网络硬件,可以运行在局域网、广域网、更适于互联网中 4.独立的网络地址分配方案,使得整个TCP/IP设备在网中都有唯一的地址 5.标准化的高层协议,可以提供多种可靠的服务。

TCP/IP层次结构

TCP/IP协议只有四个层次,从高到低分别为 应用层、传输层(Internet layer)、互联层 和 主机—网络层(Host to Network)。TCP/IP协议中的 应用层 对应 OSI参考模型中 的 应用层 、表示层 和 会话层 ,执行它们的任务,对数据做最初的处理形成数据单元。其中包含HTTP(网络传输协议)、Telnet(远程终端协议)、FTP(文件收发协议)、SMTP和POP3(邮件收发协议)、DNS(域名系统)、SNMP(网络管理协议)等协议。TCP/IP协议中的 传输层 和 互连层 对应 OSI参考模型 中的 传输层 和 网络层 ,其中传输层包含TCP(面向连接的传输控制协议)、UDP(面向无连接的传输控制协议)这两个重要协议,,互连层包含IP、ICMP、IJMP、ARP、RARP协议。TCP/IP协议中的 主机—网络层 对应 OSI参考模型 中的的 数据链路层 和 物理层 ,其中包含分组交换网的X.25、帧中继、ATM、Ethernet、Token Ring等协议。

OSI参考模型与TCP/IP协议优缺点比较

OSI分析:OSI本身在表示层和会话层内容就非常少,在实现使也有很多不可行性 OSI参考模型的优点:层次清晰、概念清楚、体系结构完整。 OSI参考模型的缺点:层次数量和内容选择不是很好、参考模型过于复杂、寻址流控与差错控制在每一层都重复出现,降低系统效率

TCP/IP协议的优点:层次简单、传输效率高 TCP/IP协议的缺点:服务、接口与协议的区别上不清晰,而且它不适用与其他非TCP/IP协议族;物理层与数据链路层做的是两个不同工作,归为一层不合理。

综合OSI参考模型和TCP/IP协议我们可以提出另一种较为合理的参考模型,将其分为五层,从高到低分别为应用层、传输层、网络层、数据链路层和物理层。

应用层协议FTP

FTP (File Transfer Protocol) 文件传输协议,将文件从一台主机传输到另一台主机的协议,文件传输的方式可以是:网页传输、应用程序实现文件上传下载、两台主机直接相连传输。

FTP是基于传输协议TCP的一个协议。同大多Internet服务一样,FTP也是一个客户/服务器系统,即FTP包含两部分:FTP服务器(存储和传输文件)、FTP客户端(用户使用它通过FTP协议与服务器传送文件或访问位于服务器上的资源)。

FTP文件传输时: 1.控制链路,实现链路的连接,通过控制命令,首先客户端会向服务器端发送一个连接请求,这是客户端会为进程选择一个临时的端口号通知给链路后面用于数据传输,同时服务器端会响应客户端连接请求,并在20号端口用于数据的发送和接受。 2.数据链路,实现文件的上传与下载 3.控制链路,客户端向服务器端请求关闭,服务器端同意请求,拆除整个连接的链路,所以说在数据链路上工作方向是双向的。

对于搭建FTP服务器,通常可以使用Server U软件;对于FTP客户端,简单的我们可以直接利用浏览器,也可以使用专门软件,例如CuteFTP、FlashFTP、FTPExplorer等

一个 FTP服务器进程 可以同时为多个 客户进程 提供服务。FTP服务器包含两部分:主进程(负责接收新的请求)、多个从属进程(负责处理单个请求)。

FTP服务器 主进程接受请求的步骤:

1.打开服务器的21号端口,使 控制 连接链路 打开 2.服务器端 等待 客户进程 发出 连接请求,客户端 打开一个 临时端口 ,用于数据连接。 3.服务器端 接收到 连接请求 并 响应,打开20号 或 其他 大于1024号端口 用于数据连接, 并建立数据连接。 4.服务端 启动 从属进程 来处理 客户进程发送的请求 5.从属进程 对 客户进程 处理完毕后, 客户端 发送关闭连接请求,服务端响应后终止此次文件传输 6.服务器端 回到等待状态, 继续接受其他进程发送的请求。主进程与从属进程的处理是并发执行的。

FTP两种工作模式

Port 模式 ,主动模式,客户端先在 FTP服务器 的 21号端口建立连接, 发送Port命令,并打开一个 随机端口(之前在控制链路上约定好的) 与 服务器20号端口 进行 数据发送和接收。内部客户端不能用Port模式和PTP服务器进行连接,服务器20号无法和内部进行连接。

Passive 模式,被动模式,客户端发送Passive命令,服务器端与客户端建立连接 打开一个 大于1024号的端口,不再是确定的20号端口。由于Passive 模式下在服务器端打开的是一个任意端口, 很多防火墙设置时不允许接收外部发起的连接,防火墙不允许客户端修改内部的端口号,所以许多防火墙或内网的FTP服务器不支持Passive模式。

不同在于建立连接时服务器端使用的端口,一个是固定20,一个是随机大于1024.

应用层协议HTTP

HTTP (Hyper Text Transfer Protocol)超文本传输协议,定义了 万维网客户进程 (即浏览器)怎样向万维网服务器请求万维网文档,以及服务器怎样把 文档 传送给 浏览器。从层次的较角度看,他是万维网能够可靠的交换文件(包括文本、声音、图像等各种多媒体文档)的重要基础。他还能确定传输文档中的那一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP的工作过程

一个HTTP的操作称为一个事务

在双方建立连接之前,首先要知道对方的地址,使用DNS服务。第一步浏览器分析超链接,http://www.baidu.com/index.htm,第二步浏览器向DNS请求解析,提取出域名:www.baidu.com,通过DNS服务得到对应的IP地址,第三步根据IP地址双方就可以建立起TCP连接

1.客户与 服务器 建立 TCP 连接,计算机系统中有一个专门为HTTP开放默认端口:80端口,还有一个备用的8080端口,主要用于万维网传输信息的协议。

2.建立连接后,客户机发送一个请求给服务器,请求具有专门的请求格式和请求报文。

  请求格式:URL ——协议版本号 ——MIME信息   MIME信息:请求修饰符——客户机信息——可能内容

 请求报文:请求行——请求头部——空行——请求体   请求行:请求类型——URL——HTTP版本

3.服务器接到请求侯,给予相应的响应信息。与请求类似,也有专门的格式和响应报文,响应报文里包含着所请求的文件

 相应格式:状态行——MIME信息   状态行:协议版本号——一个成功或错误的代码   MIME信息:服务器信息——实体信息——可能的内容

 响应报文:状态行——响应头部——空行——响应体   状态行:HTTP版本——状态码——状态短语

4.客户端接收服务器所返回的信息,即响应报文,通过HTTP协议以超文本格式在屏幕上显示出来,显示到并通过浏览器显示在用户的显示屏上,此时客户端与服务器就断开连接。

如果上述过程出现错误,产生的错误信息将返回到客户端,并在显示屏上输出。对于用户来说,上述工作过程是HTTP自动完成的,用户只要用鼠标点击,等待信息显示浏览即可。

URL

URL(Uniform Resource Locator)统一资源定位符,通过URL的组成,我们在浏览器输入URL时,其中的域名会被提取出来,并用DNS服务将其解析为IP地址。之后就进行HTTP服务,建立连接,发送请求,接收消息应答,断开连接,最终就会在浏览器上浏览到我们想要浏览的页面。 URL格式:Method:// Host : Port /Path

客户端发送请求的两种方式

GET方式:是向服务器发索取数据的一种请求,以 实体 方式得到由 请求 URI 所指定资源的信息,如果请求URI只是一个数据的产生过程,那么最终要在响应实体中返回的是 处理过程的结果 所 指向的资源,而不是处理过程的描述。请求报文的文件命令:GET/chn/index.htm,意思得到chn文件夹下index.htm文件POST方式:是向服务器提交数据的一种请求,用来向目的服务器发出请求,要求它接受背负在请求后面的实体,并把它当作请求队列中请求URL所指定资源的附加新子项,POST被设计成用同一的方法实现下列功能: 1.对现有资源的解释 2.向电子公告栏、新闻组、邮件列表或类似讨论组发信息 3.提交数据块 4.通过附加操作来扩展数据库

传输层协议TCP

传输层将应用层的数据进行封装以后产生一个一个进程process,这些进程通过复用技术进行封装,封装成message,接着送到网络层进行IP封包以后进入到网络链路中进行处理,在接收端可以通过网络层然后到达传输层,利用解复用技术将进程还原成一个一个的process。

什么是TCP协议

Transmission Control Protocol 传输控制协议,他在应用程序间(process to process)建立了一条虚拟链路。在TCP/IP协议中传输层有四个任务: 一组包、二 通过滑动窗口(Sliding window,是一种流量控制技术。早期的网络通信中,通信双方不会考虑网络的拥挤情况直接发送数据。由于大家不知道网络拥塞状况,同时发送数据,导致中间节点阻塞掉包,谁也发不了数据,所以就有了滑动窗口机制来解决此问题。即容许发送方在接收任何应答之前传送附加的包。接收方告诉发送方在某一时刻能送多少包(称窗口尺寸))实现连接控制、三 寻址、 四 通过 序号确认 来提供可靠性。TCP的六个特点:   面向连接的传输;   端到端的通信;   高可靠性;   确保数据传输的正确性,不出现丢失或乱序;   全双工方式传输,即在发送数据的同时也能够接收数据,两者同步进行;   采用字节流方式,即以 字节 为单位传输字节 序列;   紧急数据传送功能.

TCP的数据格式

TCP数据 被 封装 在一个 IP数据报 中,传送的 数据单位协议 是 TCP 报文段。TCP报文段 包含 TCP首部 和 TCP数据 部分。发送的报文都有 递增 的 序列号 , 序号 和 确认号 用来确保 传输的可靠性。每个报文都设立一个 定时器 ,设定一个 最大时延。对超过最大时延 仍没有收到确认信息 的报文 就认为已经 丢失,需要 重传。

TCP首部结构:

源端口和目的端口:各占2字节。端口是传输层与应用层的服务接口,传输层的 复用 和 分用功能 都要通过 端口 才能实现。

序号:占4字节。TCP连接中 传送的 数据流 中的 每一个 字节 都编上一个 序号。序号字段 的 值 则指的是 本报文段 所发送的 数据的 第一个字节的序号。

确认号:占4字节,是 期望 收到 对方的 下一个报文段的数据的第一个字节的序号。

数据偏移:占4位,它指出 TCP报文段的 数据起始处 距离TCP报文段的起始处 有多远, “数据偏移”的单位是32位字(以4字节为计算单位)。

保留:占6位,保留为今后使用,但目前应置为0。

紧急URG:当URG=1时,表明 紧急指针字段 有效。它告诉系统此报文段中有 紧急数据,应尽快传送(高优先级的数据)。

确认ACK:只有当 ACK=1 时 确认号字段 才有效,ACK=0时,确认号无效。

推送PSH:当 TCP 收到 PSH = 1的 报文段,就尽快地 交付接收应用进程,而不再等到整个 缓存 都填满了后再向上交付。

复位RST :当RST=1时,表明 TCP 连接中出现 严重差错 (如由于主机崩溃或其他原因),必须释放连接,然后再 重新 建立运输连接。

同步SYN:SYN = 1表示这是一个 连接请求报文 或 连接接受报文。

终止 FIN:用来释放一个连接。FIN=1 表明 此报文段的 发送端 的数据 已发送完毕,并要求释放 运输连接。

检验和:占 2 字节。检验和字段 检验的范围 包括 首部和数据 这两部分,在计算检验和 时,要在 TCP 报文段 的前面加上 12字节 的 伪首部。

紧急指针:占 16 位。指出 在 本报文段中 紧急数据 共有 多少个字节(紧急数据放在本 报文段 数据 的最前面)。

选项:长度可变。TCP最初只规定了一种选项,即 MSS(Maximum Segment Size,最大报文段长度)。MSS 告诉 对方 TCP:“我的缓存所能接收的 报文段的数据字段的最大长度是 MSS 个字节。” MSS是 TCP 报文段中的 数据字段 的最大长度,数据字段加上 TCP首部 才 等于整个的 TCP报文段。

填充:为了使整个首部长度是 4 字节 的整数倍。

窗口:占 2 字节。窗口字段 用来 控制 对方发送的数据量 ,单位为 字节。TCP 连接的一端 根据设置的 缓存空间 大小 确定 自己的接收窗口大小,然后 通知对方 以确定对方的 发送窗口 的上限。

TCP的数据传输的过程

TCP协议的工作有三个阶段:连接建立,数据传输,连接释放

1、连接建立:建立一个连接需要三次握手,第一次握手,这时客户端会发送一个SYN的包到服务器,并且进入到SYN SEND状态,等待服务器确认。第二次握手是服务器收到一个SYN包时必须给客户一个SYN的确认,同时自己也会发一个SYN的包,也就是SYN+ACK的确认包,此时服务器进入到SYN RECEIV状态。第三次握手,客户端收到服务器SYN + ACK的包以后,向服务器发送一个确认包ACK,当这个包发送完后,客户端和服务器之间就建立起来TCP连接,进入到ESTABLISH状态。    A 向 B 发出 连接请求报文段 ,其 首部 中 的 同步位SYN = 1,选择序号 seq = x,表明 传送数据时 的 第一个数据字节 的 序号是x    B 收到 连接请求报文段 后,如果 同意,则 发回: SYN = 1,ACK = 1,确认号 ack = x + 1,选择的序号 seq = y , 进行确认;    A 收到 此报文段后 向B给出 确认,发送 ACK = 1、确认号ack = y + 1,并通知上层应用进程连接已经建立。B 收到 主机 A 的 确认后,也通知B的上层应用进程 TCP连接 已经建立。

2、数据传输:连接建立后即可进行数据传输

3、连接释放:终止一个连接要经过四次挥手,假设客户端向服务器端发起中断连接请求,它向服务器端发送一个FIN报文请求,服务器端接到报文请求后会给客户端一个ACK的回馈,告诉客户端请求收到但没准备好,请等待进一步回馈,此时客户端进入到FIN WAIT状态,在这个状态中它在等服务器端的FIN报文,当服务器端将数据及已经完全发送完毕后,会向客户端发送一个FIN的报文,这个FIN报文意思是,我服务器端的数据也完成了,现在我们可以关闭连接了。但这时,客户端不是很相信网络,服务端不知道要关闭,所以客户端向服务端发送一个ACK,此时客户端进入TIME WAIT状态,当服务器端没收到ACK,还可以进行重传,收到后就可以断开连接了。这时候客户端会等待一个2MSL,也就是一个最大报文段生存时间,如果这个时间到了还没收到服务器端的任何回复,就说明服务器端已正常关闭。    数据传输 结束后,通信的双方 都 可释放连接。例如:A的应用进程先 发出 连接释放报文段,并 停止 再发送数据,主动关闭TCP连接。A 连接释放报文段首部的FIN = 1,其序号seq = u,等待B的确认。    B发出确认,ACK=1,确认号ack = u+1,而这个 报文段自己的序号seq =v。TCP服务器进程 通知 高层应用进程,从 A 到 B 这个方向的连接就释放了,TCP 连接处于 半关闭状态。若 B 发送数据,A仍要接收。    若B已经没有要向A发送的数据,B发出连接释放报文,段首部的FIN = 1,ACK=1,ack=u + 1,seq = w,其应用进程就通知TCP释放连接。    A收到 连接释放报文段 后,必须 发出确认,在 确认报文段中 ACK = 1,确认号ack=w + 1,序号seq = u + 1。

  TCP连接必须经过时间 2MSL 后才真正释放掉,2MSL的时间是 为了保证 A 发送的 最后一个ACK报文段 能够 到达B。防止“已失效的连接请求报文段”出现在本连接中。A 在发送完最后一个ACK报文段后,再经过时间2MSL,就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。这样就 可以使 下一个新的连接中 不会出现 这种旧的连接请求报文段。

传输层协议UDP

UDP(User Datagram Protocol,用户数据报协议 )是一种 无连接 的 传输层协议,提供 面向事务的 简单 不可靠 信息传送服务。在网络中它与 TCP协议一样用于 处理数据包,但是它是一种 不可靠的 传输协议。UDP提供了 无连接通信,且 不对传送数据包进行可靠性 保证,适合于 一次传输少量数据, UDP传输的可靠性 由应用层负责(校验和)。

UDP报文

-UDP协议分为 首部字段 和 数据字段 ,其中 首部字段 只占用 8 个字节,分别是个占用两个字节的 源端口 、目的端口 、长度 和 检验和。

源端口和目的端口:各2个字节,UDP协议使用 端口号 为不同的 应用 保留其各自的 数据传输通道。端口号的有效范围 是从 0到65535。一般来说,大于 49151的端口号都代表动态端口。

长度:2个字节,是 指包括 报头 和 数据部分 在内 的 总 字节数。报头的 长度 是 固定的,主要用来 计算 可变长度的 数据部分 (又称为 数据负载 )。数据报 的 最大长度根据 操作环境 的 不同 而 各异。从理论上说,包含 报头 在内的 数据报 的最大长度为65535字节。但是,一些 实际应用 往往会 限制 数据报 的 大小,有时会降低到8192字节。

校验和:2个字节,保证数据的安全。校验值 首先在 数据发送方 通过 特殊的算法 计算得出,在传递到 接收方 之后,还需要 再 重新计算。如果某个 数据报 在传输过程中被第三方篡改 或者 由于线路噪音 等原因受到 损坏,发送和接收方的校验计算值 将不会相符,由此 UDP协议可以检测 是否 出错。在进行 检验和 计算时,会添加一个 伪首部 一起进行运算。

伪首部:12个字节,包括4个字节的 源IP地址、4个字节的 目的 IP地址、1个字节 的0、一个字节的 数字17、以及 占用 2个字节 UDP 长度。伪首部 不是 报文 的 真正首部,只是引入为了计算校验和。UDP 检验和 会把 首部和数据一起进行校验。接收端进行的校验 和 与UDP报文中的 校验和 相与,如果无差错应该全为1。若有误,则将报文丢弃 或者 发给应用层、并附上 差错 警告。

UDP 协议 建立在 IP协议 之上。使用UDP时,先从 进程的缓冲区 输出一个 UDP数据报,把生成的 UDP数据报直接封装在IP数据报 中进行传输,在传输层 使用UDP协议时,发送端 不需要 发送缓冲区。被封装在IP中的UDP数据报 再 通过 网络传输到目标主机的IP层 后,由目标主机的 UDP层 根据 目标端口号 送到 接收该数据的相应进程。

UDP协议特点

是无连接的。相比于TCP协议,UDP协议在传送数据前不需要建立连接,当然也就没有释放连接,这就使得UDP的 传输效率高。是尽最大努力交付的。UDP协议 无法保证数据能够准确的交付 到目的主机,也不需要对接收到的UDP报文进行确认。是面向报文的。UDP协议将应用层传输下来的数据封装在一个 UDP包 中,不进行拆分 或 合并。运输层在收到对方的UDP包后,会去掉 首部 后,将 数据 原封不动的交给 应用进程。没有 拥塞控制 。UDP协议的 发送速率 不受 网络的拥塞度影响。UDP支持一对一、一对多、多对一和多对多的交互通信。UDP的 头部 占用较小,只占用8个字节。UDP 设计简单,保证了UDP在工作时的高效性和低延时性。

正是这些特点,UDP通常被用于输送延时小(应用层设备与网络设备非常紧密),对可靠性要求不高,有少量数据要进行传输的情况,如DNS(域名服务)、TFTP(简单文件传输)、SNMP(简单网络管理协议、语音和视频)等。

互连层/网际层协议IP

IP(Internet Protocol,网络互连的协议)是TCP/IP协议簇中的核心协议,也是TCP/IP 的载体。所有的 TCP, UDP, ICMP(Internet Control Message Protocol,因特网控制报文协议)及 IGMP(Internet Group Management Protocol,因特网组管理协议)数据都以 IP数据报 格式传输。它是为 计算机网络相互连接 进行通信 而 设计的协议。与IP协议配套使用的四个协议:ARP,地址解析协议、RARP,逆地址解析协议、ICMP、IGMPIP提供 不可靠 的,无连接 的 数据传送服务。不可靠 指它不能 保证IP数据报 能成功到达 目的地。IP仅 提供 最好 的 传输服务。当 发生 某种 错误时,如 某个路由器 暂时用完了 缓冲区,IP 有一个 简单的 错误处理算法:丢弃该数据报,然后发送ICMP消息给 信源。任何要求 的 可靠性 必须由 上层 来提供。无连接 指IP 并不维护 任何关于后续 数据报 的 状态信息。每个数据报 的 处理 是相互独立的。IP数据报 可以不按 发送顺序接收。如果 一信源 向相同的 信宿 发送两个 连续 的 数据报(先是A,然后是B)每个 数据报 都是 独立 的进行 路由选择,可能 选择不同的路线,因此 B 可能 在 A到达之前 先到达。

MTU

链路层 具有最 大传输单元MTU 这个特性,它限制了 数据帧 的最大长度,不同的网络类型 都有一个 上限值。例如 以太网 的 MTU 是 1500。

IP协议的分片和重组

当提交给 数据链路层 进行传送时,一个 IP分片 或一个 很小的无需分片的IP数据报称为分组。数据链路层在 分组 前面加上它自己的 首部,并发送得到的 帧。

IP首部包含了分片和重组所需的信息。

如果 网络层 有 数据包 要传,而且数据包的长度超过了MTU,那么网络层就要对数据包进行 分片 操作,使每一片的长度都小于或等于MTU。一个分片在到达 接收主机 的 路径 中,还可能被 继续分片 ,因此,分片的IP数据报可能会 以不同的路径 传输到接收主机,接收主机通过一系列的 重组,将其还原为一个完整的 IP数据报,再提交给上层 协议处理。 IP寻址路由的过程 在网际层中IP如何利用路由器进行IP数据报文分组寻址及转发的工作?

1、搜索 分组地址 与 路由表中 目的地址域 完全相同的入口,如果找到这样的入口,则将 分组 发给 下一个路由器地址 中 指定的地址(下一个 路由器 或 直 连网络接口)。

2、如果1不成功,则搜索 分组的目的网络地址 与 路由表中 目的地址域 相同的入口,如果 能找到, 则将分组发给 下一个路由器地址域中 指定的路由器地址。

3、如果2不成功,则搜索 路由表中 目的地址域 为“default”的入口,如果找到就将分组 发给 指定的 路由器。

4、如果3仍不成功,则说明 分组不可投递 ,通常将 “主机不可达” 或 “网络不可答” 的信息 发送给产生这个分组的应用程序。

网络接口层协议ATM

ATM(Asynchronous Transfer Mode,异步传输模式),以信元为单位的,它是用来提高用户 综合访问速度 的一项技术。在 交换形式 上而言,ATM 是面向 连接的 链路,任何一个 ATM 终端 与 另一个用户 通信 的时候都需要 建立连接,所以,ATM 拥有 电路交换 的特点。在ATM交换方式中,文本、语音、视频等所有 数据将被分解为 长度固定的 信元(cell)。信元有一个5字节的信元头(header)与一个48字节的用户数据(user data),信元长度为固定53字节。ATM技术是目前唯一实现QoS的技术(Quality of Service,服务质量,QoS是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。现在的路由器一般均支持QoS);同时支持语音、数据、图像等宽带业务、技术成熟,标准化程度高;在业界被广泛支持;具有良好的网络互联和互通能力;不断演进以适应不断出现的新业务。

ATM网络模型中的UNI和NNI

UNI(Uer Network Interface,用户-网络接口):UNI 为ATM网中的 用户网络接口,它是 用户设备 与 网络之间 的接口,直接面向 用户。按其所在位置 不同又可分为公用网 UNI 和 专用网UNI(P-UNI),PUNI不必象公网接口考虑严格的一致性,因而PUNI接口形式更多、更灵活。NNI(Network to Network Interface,网络节点接口):一般为两个 交换机 之间的接口,同样也分为公网NNI(和专用网NNI(PNNI)。公网NNI和PNNI的差别很大,如公网NNI的信令为 No.7信令体系的宽带ISDN(Integrated Services Digital Network,综合业务数字网,是一个数字电话网络国际标准,是一种典型的电路交换网络系统。)用户部分,而PNNI则完全基于UNI接口,仍采用UNI信令结构。

ATM信元交换过程

物理链路 是连接 ATM交换机-ATM交换机、ATM交换机-ATM主机 的物理线路。每条物理链路可以包含一条或多条 虚通路VP,每条虚通路VP又可以包含一条或多条 虚通道VC。

光纤中有多条芯

VP:在虚通路一级,两个ATM端用户间建立的连接被称为 虚通路连接 ,而两个ATM 设备间的 链路 被称为 虚通路链路(VPL,virtual path link)。那么,一条虚通路连接 是由 多段 虚通路链路 组成的。

   每一段 虚通路链路VPL 都是由 虚通路标识符(VPI,virtual path identifier)标识的。每条物理链路中的VPI值是惟一的。

   虚通路可以是永久的,也可以是交换式的。

   每条虚通路中可以有单向或双向的数据流,ATM支持不对称的数据速率,即允许两个方向的数据速率可以是不同的。

VC:在虚通道一级,两个ATM端用户间建立的连接被称为 虚通道连接 ,而两个ATM设备间的链路称为虚通道链路(VCL,virtual channel link)。虚通道连接VCC是由多条虚通道链路VCL组成的。

   每一条虚通道链路VCL都是用虚通道标识符(VCI,virtual channel identifier)来标识的。

   根据虚通道建立方式的不同,虚通道又可分为以下两类:永久虚通道(PVC,permanentvirtual channel)、交换虚通道(SVC,switched virtual channel)。

   虚通道中的数据流可以是单向的,也可以是双向的。当虚通道双向传输信元时,两个方向的通信参数可以是不相同的。

ATM交换的本质上是分组交换,ATM交换又分为VP交换和VC交换两种,VPI和VCI只在两个物理节点之间有意义。

最新回复(0)