您的位置:首页 > 理论基础 > 计算机网络

TCP/IP协议栈及OSI参考模型详解

2018-01-23 11:39 204 查看
OSI参考模型

OSI RM:开放系统互连参考模型(open systeminterconnection reference model)

OSI参考模型具有以下优点:

简化了相关的网络操作;

提供设备间的兼容性和标准接口;

促进标准化工作;

结构上可以分隔;

易于实现和维护。

20世纪60年代以来,计算机网络得到了飞速增长。各大厂商为了在数据通信网络领域占据主导地 位,纷纷推出了各自的网络架构体系和标准,如IBM公司的SNA,Novell IPX/SPX协议,Apple公司的AppleTalk协议,DEC公司的DECnet,以及广泛流行的TCP/IP协议。同时,各大厂商针对自己的协议生产出了不同的硬件和软件。各个厂商的共同努力促进了网络技术的快速发展和网络设备种类的迅速增长。但由于多种协议的并存,也使网络变得越来越复杂;而且,厂商之间的网络设备大部分不能兼容,很难进行通信。

为了解决网络之间的兼容性问题,帮助各个厂商生产出可兼容的网络设备,国际标准化组织ISO于1984年提出了OSI RM(OpenSystem Interconnection Reference Model,开放系统互连参考模型)。OSI 参考模型很快成为计算机网络通信的基础模型。在设计OSI 参考模型时,遵循了以下原则:各个层之间有清晰的边界,实现特定的功能;层次的划分有利于国际标准协议的制定;层的数目应该足够多,以避免各个层功能重复。

OSI分层





通常OSI参考模型第一层到第三层称为底层(lower layer),又叫介质层(media layer),底层负责数据在网络中的传送,网络互连设备往往位于下三层,以硬件和软件的方式来实现。OSI参考模型的第五层到第七层称为高层(upper layer),又叫住几层(host layer),高层用于保障数据的正确传输,以软件方式来实现。

OSI七层功能:





TCP/IP协议栈





由于OSI模型和协议比较复杂,所以并没有得到广泛的应用。

而TCP/IP(transfer control protocol/internet protocol,传输控制协议/网际协议)模型因其开放性和易用性在实践中得到了广泛的应用,TCP/IP协议栈也成为互联网的主流协议。





TCP/IP模型各个层次分别对应于不同的协议。TCP/IP协议栈是数据通信协议的集合 ,包含许多协议。其协议栈名字来源于其中最主要的两个协议TCP(传输控制协议)和IP(网际协议)。TCP/IP协议栈负责确保网络设备之间能够通信。它是一组规则,规定了信息如何在网络中传输。

TCP/IP模型的层间通信与数据封装





TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU(协议数据单元)彼此交换信息,确保网络设备之间能够通信。





A. 传输层数据中加入TCP报头后得到PDU被称为segment(数据段);

B. 数据段被传递给网络层,网络层添加IP报头得到的PDU被称为packet(数据包);

C. 数据包被传递到数据链路层,封装数据链路层报头得到的PDU被称为frame(数据帧);

D. 帧被转换为比特,通过网络介质传输。

这种协议栈向下传递数据,并添加报头和报尾的过程称为封装,数据被封装并通过网络传输后,接收设备将删除添加的信息,并根据报头中的信息决定如何将数据沿协议栈上传给合适的应用程序,这个过程称为解封装。不同设备的对等层之间依靠封装和解封装来实现相互间的通信。

物理层

物理层功能:

规定介质类型、接口类型、信令类型;

规范在终端系统之间激活、维护和关闭物理链路的电气、机械、流程和功能等方面的要求;

规范电平、数据速率、最大传输距离和物理接头等特征。





物理层标准规定了物理介质和用于将设备与物理介质相连的接头。

如上图,局域网常用的物理层标准有IEEE指定的以太网标准802.3、令牌总线标准802.4、令牌环网标准802.5以及美国国家标准组织ANSI的X3T9.5委员会制订的光缆标准FDDI(fiber distributed data interface,光纤分布式数据接口)等。广域网常用的物理层标准有电子工业协会和电信工业协会EIA/TIA制定的公共物理层接口标准EIA/TIA-232(即RS-232)、国际电信联盟ITU制定的串行线路接口标准V.24和V.35、以及有关各种数字接口的物理和电气特性的标准G.703等。

物理层介质和物理层设备:

物理层介质:

同轴电缆(coaxical cable)

双绞线(twisted pair)

光纤(fiber)

无线电波(wireless raido)

同轴电缆:





同轴电缆是一种早期使用的传输介质,同轴电缆的标准分为两种,10BASE2和10BASE5.这两种标准都支持10Mbps的传输速率,最长传输距离分别为185米和500米。10BASE5和10BASE2的同轴电缆使用

的同轴电缆的直径分别为9.5mm和5mm,所以前者又称为粗缆,后者又称为细缆。一般情况下,10BASE2同轴电缆使用BNC接头,10BASE5同轴电缆使用N型接头。目前,10Mbps的传输速率早已不能满足目前企业网络需求,因此同轴电缆在目前企业网络中很少应用。

双绞线





双绞线采用了一对互相绝缘的金属导线互相绞合的方式来抵御一部分外界电磁波干扰。把两根绝缘的铜导线按一定密度互相绞在一起,可以降低信号干扰的程度,每一根导线在传输中辐射的电波会被另一根线上发出的电波抵消,“双绞线”的名字也是由此而来的。

与同轴电缆相比双绞线(twistedpair)具有更低的制造和部署成本,因此在企业网络中被广泛应用。双绞线可分为屏蔽双绞线(shieldedtwisted pair,STP)和非屏蔽双绞线(unshieldedtwisted pair,UTP)。屏蔽双绞线在双绞线与外层绝缘封套之间有一个金属屏蔽层,可以屏蔽电磁干扰。

双绞线有很多种类型,不同类型的 双绞线所支持的传输速率一般也不相同。例如,3类双绞线支持10Mbps传输速率;5类双绞线支持100Mbps传输速率,满足快速以太网标准;超5类双绞线及更高级别的双绞线支持千兆以太网传输。

双绞线线序:

568A线序:

1-绿白,2-绿,3-橙白,4-蓝,5-蓝白,6-橙,7-棕白,8-棕

568B线序:

1-橙白,2-橙,3-绿白,4-蓝,5-蓝白,6绿,7-棕白,8-棕

根据网线两端连接网络设备的不同,网线又分为直通线(平行线)和交叉线两种。

直通线(平行线)就是按照前面介绍的568A标准或568B标准制作(即双绞线两端的线序一样,568A的线序不常用,现主流用的都是568B的线序)

交叉线的一端保持原来的线序,另一端把1和3对调,2和5对调。

直通线和交叉线的应用:

1. 同种类型设备之间使用交叉线连接,不同类型设备之间使用直通线连接;

2. 路由器和PC属于DTE(DataTerminal
Equipment,数据终端设备)类型设备,交换机和HUB数据DCE(Data Circuit-terminatingEquipment,数据通信设备)类型设备。

光纤





双绞线和同轴电缆传输数据时使用的是电信号,而光纤传输数据时使用的是光信号。光纤支持的传输速率包括10Mbps,100Mbps,1Gbps,10Gbps,甚至更高。根据光纤传输光信号模式的不同,光纤又可分为单模光纤和多模光纤。单模光纤只能传输一种模式的光,不存在模间色散,因此适用于长距离高速传输。多模光纤允许不同模式的光在一根光纤上传输,由于模间色散较大而导致信号脉冲展宽严重,因此多模光纤主要用于局域网中的短距离传输。光纤连接器种类喝多,常用的连接器包括ST,FC,SC,LC连接器。

串口电缆





网络通信中常常会用到各种各样的串口电缆。常用的串口电缆标准为RS-232,同时也是推荐的标准。但是RS-232的传输速率有限,传输距离仅为6米。其他的串口电缆标准可以支持更长的传输距离,例如RS-422和RS-485的传输距离可达1200米。RS-422和RS-485串口电缆通常使用V.35接头,这种接头在上世纪80年代已经淘汰,但是现在仍在帧中继、ATM等传统网络上使用。V.24是RS-232标准的欧洲版。RS-232本身没有定义接头标准,常用的接头类型为DB-9和DB-25。现在,RS-232已逐渐被FireWire、USB等新标准取代,新产品和新设备已普遍使用USB标准。

冲突域





如图是一个10BASE5以太网,每个主机都是用同一根同轴电缆来与其它主机进行通信,因此,这里的同轴电缆又被称为共享介质,相应的网络被称为共享介质网络,或简称为共享式网络。共享式网络中,不同的主机同时发送数据时,就会产生信号冲突的问题,解决这一问题的方法一般是采用载波侦听多路访问/冲突检测技术(carrier sense multiple access/collisiondetection)。

CSMA/CD的基本工作过程如下:

1. 终端不停地检测共享线路的状态。如果线路空闲,则可以发送数据;如果线路不空闲,则等待一段时间后继续检测(延时时间由退避算法决定)。

2. 如果有另一个设备同时发送数据,两个设备发送的数据会产生冲突。

3. 终端设备检测到冲突之后,马上停止发送自己的数据,并发送特殊阻塞信息,以强化冲突信号,使线路上其他站点能够尽早检测到冲突。

4. 终端设备检测到冲突后,等待一段时间之后再进行数据发送(延时时间由退避算法决定)。

CSMA/CD的工作原理可简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发。

物理层设备:中继器和集线器

数据链路层

数据链路层又分为MAC子层和LLC子层





MACSub-layer:media
access controlsub-layer介质访问控制子层

MAC子层负责指定数据如何通过物理线路进行传输,并向下与物理层通信,它定义了物理编址、网络拓扑、线路规范、错误通知、按序传递和流量控制等功能。

LLCSub-layer:logic
link control sub-layer逻辑链路控制子层

LLC子层负责识别协议类型并对数据进行封装以便通过网络进行传输。LLC子层主要执行数据链路层的大部分功能和网络层的部分功能。如帧的收发功能,在发送时,帧由发送的数据加上地址和CRC校验等构成,接收时将帧拆开,执行地址识别、CRC校验,并具有帧顺序控制、差错控制、流量控制等功能。此外,它还执行数据报、虚电路、多路复用等部分网络层的功能。

数据链路层协议





数据链路层协议规定了数据链路层帧的封装方式。

局域网常用的数据链路层协议有IEEE802.2 LLC标准。

广域网常用的数据链路层协议有:

HDLC(high-level
data link control,高级数据链路控制)

PPP(point-to-point protocol,点到点协议)

FR(frame relay,帧中继)

数据链路层-以太网地址(MAC地址)





网络设备的MAC地址是全球唯一的。MAC地址由48个二进制位组成,通常我们用十六进制数字来表示。其中前6位十六进制数字由IEEE统一分配给设备制造商,后6位十六进制数字由厂商自行分配。

网络层

功能:在不同的网络之间转发数据包

提供逻辑地址,如果数据跨网络传递,则需要使用逻辑地址来寻址。

路由:将数据报文从一个网络转发到另一个网络。

设备:路由器、三层交换机

网络层协议





常用网络层协议有:

IP(Internet
Protocol):IP为网络层最主要的协议,其功能即为网络层的主要功能,一是提供逻辑编址,二是提供路由功能,三是报文的封装和解封装。ICMP、ARP、RARP协议辅助IP工作。

ICMP(Internet Control Message Protocol)是一个管理协议并为IP提供信息服务,ICMP消息承载在IP报文中。

ARP(Address
Resolution Protocol)实现IP地址到硬件地址的动态映射,即根据已知的IP地址获得相应的硬件地址。

RARP(Reverse
Address Resolution Protocol)实现硬件地址到IP地址的动态映射,即根据已知的硬件地址获得相应的IP地址。

网络层地址:网络地址在网络层唯一标识一台网络设备。

网络地址包含两部分:网络ID+主机ID(下节主要内容)

传输层

主要功能:

分段上层数据;

建立端到端连接;

将数据从一端主机传送到另一端主机;

保证数据按序、可靠、正确传输。

传输层协议:





传输层协议主要包含传输控制协议TCP(transfer control protocol)和用户数据报文协议UDP(user datagram protocol)





TCP提供面向连接的、可靠的字节流服务。面向连接意味着使用TCP协议作为传输层协议的两个应用之间在相互交换数据之前必须建立一个TCP连接。TCP通过确认、校验、重组等机制为上层应用提供可靠的传输服务。但是TCP连接的建立以及确认、校验等机制都需要耗费大量的工作并且会带来大量的开销。

UDP提供简单的、面向数据报的服务。UDP不保证可靠性,即不保证报文能够到达目的地。UDP适用于更关注传输效率的应用,如SNMP、Radius等,SNMP监控网络并断续发送告警等消息,如果每次发送少量信息都需要建立TCP连接,无疑会降低传输效率,所以诸如SNMP、Radius等更注重传输效率的应用程序都会选择UDP作为传输层协议。另外,UDP还适用于本身具备可靠性机制的应用层协议。

应用层功能

为用户提供接口、处理特定的应用;

数据加密、解密、压缩、解压缩;

定义数据表示的标准。

应用层协议





应用层有许多协议,以下协议可以帮助您使用和管理 TCP/IP 网络:

FTP(File TransferProtocol) 文件传输协议。用于传输独立的文件,通常用于交互式用户会话。

HTTP(HypertextTransfer Protocol)超文本传输协议。
用于传输那些构成万维网上的页面的文件。

TELNET :远程终端访问。用于传送具有TELNET控制信息的数据。它提供了与终端设备或终端进程交互的标准方法,支持终端到终端的连接及进程到进程分布式计算的通信。

SMTP(Simple MessageTransfer Protocol)简单邮件传输协议


POP3(Post OfficeProtocol)邮局协议用于发送和接收邮件。

DNS(Domain NameServer)是一个域名服务的协议,提供域名到IP地址的转换,允许对域名资源进行分散管理。

TFTP(Trivial FileTransfer Protocol)简单文件传输协议。设计用于一般目的的、高吞吐量的文件传输。

RIP(RoutingInformation Protocol)路由器用来在
IP 网络上交换路由信息的协议。

SNMP(Simple NetworkManagement Protocol)用于收集网络管理信息,并在网络管理控制台和网络设备(例如路由器、网桥和服务器)之间交换网络管理信息。

Radius(RemoteAuthentication Dial In User Service)拨号接入远端认证协议完成接入用户的认证、授权、计费功能的协议。

TCP/IP协议栈的封装过程





以传输层采用TCP或者UPD、网络层采用IP、链路层采用Ethernet为例,可以看到TCP/IP中报文的封装过程如上图所示。用户数据经过应用层协议封装后传递给传输层,传输层封装TCP头部,交给网络层,网络层封装IP头部后,再交给数据链路层,数据链路层封装Ethernet帧头和帧尾,交给物理层,物理层以比特流的形式将数据发送到物理线路上。

TCP Segment





TCP协议概述:

TCP为应用程序提供一种面向连接的、可靠的服务。

TCP的可靠性:

面向连接的传输

最大报文段长度

传输确认机制

首部和数据的检验和

流量控制

TCP首部格式





TCP使用IP作为网络层协议,TCP数据段被封装在一个IP数据包内。TCP数据段由TCP Head(头部)和TCP Data(数据)组成。

TCP最多有60个字节的首部,如果没有任选字段,正常的长度是20字节。TCP Head如上图标识的一些字段组成,这里列出几个常用的字段。

16位源端口号:TCP会为源应用程序分配一个源端口号。

16位目的端口号:目的应用程序的端口号。每个TCP段都包含源和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP地址和目的端IP地址可以唯一确定一个TCP连接。

32位序列号:用于标识从TCP发端向TCP收端发送的数据字节流。

32位确认序列号:确认序列号包含发送确认的一端所期望收到的下一个序号。确认序列号为上次成功收到的数据序列号加1。

4位首部长度:表示首部占32bit字的数目。因为TCP首部的最大长度为60字节。

16位窗口大小:表示接收端期望接收的字节,由于该字段为16位,因而窗口大小最大值为65535字节。

16位检验和:检验和覆盖了整个TCP报文段,包括TCP首部和TCP数据。该值由发端计算和存储并由接收端进行验证。

TCP的三次握手(建立连接)和四次挥手(断开连接)

TCP连接的建立是一个三次握手的过程。如图所示:





1、请求端(通常也称为客户端)发送一个SYN段表示客户期望连接服务器端口,初始序列号为a。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息