`网络协议栈`标签下的文章
OSI模型和TCP/IP模型
steve 发表于 标签: 网络协议栈
协议栈
协议栈是一整套完整的网络协议层次,它们一起协同工作,提供网络互联能。它被成为栈,是因为它一般被设计为等级层次结构,每一层都能支持上层通讯使用下层通讯。
层次的数量因模型的不同而不同,TCP/IP 模型有5层(应用层,传输层,网络层,数据链路层和物理层)。OSI模型有7层(应用层,表示层,会话层,传输层,网络层,数据链路层和物理层)。
两个设备间想正常的通讯必须拥有相同的协议栈,这样不同的操作系统之间的电脑才能够正常的通讯。
OSI模型
应用层
定义数据传输协议,例如文件传输用的是FTP还是HTTP
表示层
将应用层传输的数据转化成下层能理解的标准格式,同样的,表示层将接受自会话层的数据转换成应用层能理解的格式。
会话层
一旦资料被转换成正确的格式,发送端主机必须与接收端主机建立一个会话。它主要负责建立、维持和终止与远端主机的会话。会话通常在应用程序间建立。属于软件层面的应用。
传输层
传输层负责维持流控制。例如:windows操作系统上各个应用程序和自身都需要进行网络通讯,传输层提取来自不同程序的数据,并把他们整合为一个单独的数据流。
传输层也负责错误检查和在必要时进行数据恢复。实质上,传输层确保所有的数据能从传输端主机发送到接收端主机。
网络层
网络层决定数据如何到达接收者。它处理像寻址、路由和逻辑协议之类的工作。网络层在资源与目的主机之间创造逻辑路径,也叫虚电路,虚电路为每个数据包提供一条通往目的地的通道。网络层也负责它自己的错误处理,以及数据包的排序和拥塞控制。
数据包的排序是非常重要的,因为许多协议限制了最大数据包的大小,当一个数据过大时,会将数据拆分成多个数据包,这时,网络层就会为每个数据包分配一个序列号。当接收端的网络层接收到数据时,就会检查数据包序列号,并重新组装数据,并检查是否有数据包遗失。
数据链路层
数据链路层可以进一步分为两层,介质访问控制层(MAC)和逻辑链路控制层(LLC),MAC层通过它的MAC地址建立计算机在网络上的身份,MAC地址是硬件给网络适配器分配的地址,它是最终发送和接受数据包时使用的地址。LLC层控制帧同步,并提供一定程度上的错误检查机制。
物理层
物理层是硬件上的规范,定义了什么是用于传输和接收数据的(硬件设备)。
OSI模型的工作原理
数据从主机发送到接收端时,首先从应用层到物理层流动,这时候数据每流经一层都会附带对应层次的协议头,协议头是附加在数据开头处的一段信息,除了物理层不会。接收端接受的数据是自下而上流动的,从物理层到应用层,每一层都会读取对应协议头的信息,用来决定接收端每一层该如何处理接收的信息。读取完之后会去除掉对应层次的协议头信息。
这些协议头根据它们收到的协议头的层次不同而包含不同的信息,但是,都能够告诉对等层许多重要的信息,包括数据包大小,帧和数据报。
每一层的协议头和数据被称为数据包。虽然看起来有点混乱,但每一层给它的服务数据单元都有不同的名字,以下是OSI模型每一层的服务数据单元的通用名称。
层次 | 封装单元 | 设备 | 关键词/描述 |
---|---|---|---|
应用层 | 数据 | PC | 为应用程序提供网洛服务 |
表示层 | 数据 | 为应用层提供标准化的接口 | |
会话层 | 数据 | 主机之间的通讯 | |
传输层 | 报文段 | 提供端到端的消息传递和数据恢复(可靠性)。按合适的顺序分隔/组传数据。 | |
网络层 | 数据包 | 路由器 | 逻辑选址和路由选择、路由、报告传输错误。 |
数据链路层 | 帧 | 网桥、交换机、NIC | 物理地址和介质访问。 |
物理层 | 位 | 中继器、集线器、收发器 | 二进制信号传输和编码 |
TCP/IP模型
应用层
是OSI参考模型中的应用层、展示层、会话层三者综合体。它定义了TCP/IP应用协议与传输层服务交互的主机应用程序接口如何使用网络。
应用层包含所有高级协议: DNS,HTTP,Telnet,FTP,SNMP(简单网络管理协议),SMTP,DHCP(动态主机配置协议),RDP(远程桌面连接协议)。
传输层
和OSI模型中的传输层功能对应,有错误重传和错误诊断功能,充当应用层的传输服务,使用的是TCP或者UDP协议。一个是基于连接的,一个是基于性能的。
互联网层
和OSI的网络层对应,他们的目的是将数据包通过独立的路径选择传输到目的地。
数据的路由和传输时互联网层的主要作用,也是这个体系的关键元素。这一层的主要协议有:IP(网络互连协议),ICMP(互联网控制消息协议),ARP(地址解析协议),RARP(逆地址解析协议)和IGMP(互联网组管理协议)。
网络接口层
定义了数据传输的物理细节,和OSI的数据链路层和物理层功能类似。它主要包含的协议有:以太网、令牌环网、FDDI、X.25、帧中继等。
TCP/IP模型和OSI模型主要区别
OSI模型是参考实现,TCP/IP是OSI模型的具体实现
TCP/IP协议被认为是互联网发展的标准,而OSI模型则是一个通用的独立于具体协议的标准。
TCP/IP由四个等级层次组成,OSI有7层。