上海汽车网站建设,厦门人才网个人会员,中移建设有限公司官方网站,wordpress商店如何OSI参考模型与TCP/IP 1. OSI参考模型1.1 概念1.2 数据传输过程 2. TCP/IP2.1 概念2.2 数据传输过程 3. 对应关系4. 例子4.1 发送数据包4.2 传输数据包4.3 接收数据包 1. OSI参考模型
1.1 概念
OSI模型#xff08;Open System Interconnection Reference Model#xff09;Open System Interconnection Reference Model即开放式通信系统互联参考模型是国际标准化组织ISOInternational Organization for Standards提出的一个试图使各种计算机在世界范围内互连为网络的标准框架。 应用层Application Layer发什么表示层Presentation Layer以什么样的格式发会话层Session Layer分几次发传输层Transport Layer是否可靠发送/是否有数据丢失网络层Network Layer怎么发到数据链路层Data Link Layer收到数据分给哪些设备物理层Physical Layer数据传输至物理设备
1 应用层
针对特定应用协议为应用程序或用户请求提供各种请求服务规定应用程序的相关通信细节。
OSI参考模型最高层也是最靠近用户的一层为计算机用户、各种应用程序以及网络提供接口也为用户直接提供各种网络服务。
2表示层
数据编码、格式转换、数据加密。
该层可提供一种标准表示形式用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
数据压缩和加密也属于表示层可提供的转换功能。
3会话层
通信管理负责建立、管理和终止表示层实体之间的通信会话支持它们之间的数据交换。
该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
4传输层
管理两个节点之间的数据传输建立主机端到端的链接为会话层和网络层提供端到端可靠的和透明的数据传输服务确保数据能完整的传输到网络层。
5网络层
地址管理及路由选择通过路由选择算法为报文或通信子网选择最适当的路径。控制数据链路层与传输层之间的信息转发建立、维持和终止网络的连接。数据链路层的数据在这一层被转换为数据包然后通过路径选择、分段组合、顺序、进/出路由等控制将信息从一个网络设备传送到另一个网络设备。
6数据链路层
互联设备的数据帧传送和链路管理接收来自物理层的位流形式的数据封装成帧传送到网络层将网络层的数据帧拆装为位流形式的数据转发到物理层负责建立和管理节点间的链路通过各种控制协议将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
7物理层
管理通信设备和网络媒体之间的互联互通。传输介质为数据链路层提供物理连接实现比特流的透明传输。实现相邻计算机节点之间比特流的透明传送屏蔽具体传输介质和物理设备的差异。
1.2 数据传输过程
网络中传输的数据包由两部分组成:
一部分是协议所要用到的首部另一部分是上层传过来的数据
每个分层中都会对所发送的数据附加一个首部在这个首部中包含了该层必要的信息如发送的目标地址以及协议相关信息明确标明了协议应该如何读取数据。首部的结构由协议的具体规范详细定义。
在下一层的角度看从上一分层收到的包全部都被认为是本层的数据。 2. TCP/IP
2.1 概念 1应用层
TCP/IP模型将OSI参考模型中的会话层和表示层的功能合并到应用层实现。
主要协议HTTPHyperText Transfer Protocol、DNSDomain Name System、SMTPSimple Mail Transfer Protocol、FTPFile Transfer ProtocolTELNET、SNMPSimple Network Management Protocol
2传输层
在TCP/IP模型中传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。
传输层定义了两种服务质量不同的协议。
TCPTransmission Control Protocol传输控制协议是一种面向有连接的传输层协议能够正确处理在传输过程中丢包、传输顺序乱掉等异常情况保证两端通信主机之间的通信可达UDPUser Datagram Protocol用户数据报协议是一种面向无连接的传输层协议常用于分组数据较少或多播、广播通信以及视频通信等多媒体领域。
3网络层
网络层是整个TCP/IP协议栈的核心它的功能是把分组发往目标网络或主机。
网络层定义了分组格式和协议即IP协议Internet Protocol 。
4数据链路层
数据链路层控制网络层与物理层之间的通信主要功能是保证物理线路上进行可靠的数据传递。
为了保证传输从网络层接收到的数据被分割成特定的可被物理层传输的帧。帧是用来移动数据结构的结构包不仅包含原始数据还包含发送方和接收方的物理地址以及纠错和控制信息。其中的地址确定了帧将发送到何处而纠错和控制信息则确保帧无差错到达。如果在传达数据时接收点检测到所传数据中有差错就要通知发送方重发这一帧。
5物理层
该层负责比特流在节点之间的传输该层的协议既与链路有关也与传输的介质有关通俗来说就是把计算机连接起来的物理手段。
有时也将数据链路层与物理层合并称为网络接口层Network Access Layer。
2.2 数据传输过程 3. 对应关系 4. 例子
4.1 发送数据包
假设甲给乙发送电子邮件内容为:“早上好”。而从TCP/IP通信上看是从一台计算机A向另一台计算机B发送电子邮件。
1应用层处理
启动应用程序新建邮件将收件人邮箱填好再由键盘输入邮件内容“早上好”点击“发送”按钮开始通信。
应用在发送邮件的那一刻建立TCP连接从而利用这个TCP连接发送数据。它的过程首先是将应用的数据发送给下一层的TCP再做实际的转发处理。
首先应用程序中会进行编码处理相当于OSI的表示层功能。邮件编码后不一定会马上被发送出去因为有些邮件的软件有一次同时发送多个邮件的功能也可能会有用户点击“收信”按钮以后才一并接收新邮件的功能。这种何时建立通信连接何时发送数据的管理功能从某种宽泛的意义上看属于OSI参考模型中会话层的功能。
2传输层处理
TCP 根据应用层要求负责建立连接、发送数据以及断开连接。TCP 提供将应用层发来的数据顺利发送至对端的可靠传输。
TCP在应用层数据的前端附加一个TCP首部发给网络层。
TCP 首部中包括
源端口号和目标端口号识别发送主机跟接收主机上的应用序号用以发送的包中哪部分是数据Check Sum判断数据是否被损坏
3网络层处理
网络层将传输层传过来的TCP首部和TCP数据合起来当做自己的数据并在TCP首部的前端在加IP首部。
IP首部中包含
接收端IP地址以及发送端 IP地址判断其后面数据是TCP还是UDP的信息
IP包生成后参考路由控制表决定接受此IP包的路由或主机。随后IP包将被发送给连接这些路由器或主机网络接口的驱动程序以实现真正发送数据。
如果尚不知道接收端的MAC地址可以利用ARPAddress Resolution Protocol查找。只要知道了对端的MAC地址就可以将MAC地址和IP地址交给以太网的驱动程序实现数据传输。
4数据链路层的处理
数据链路层将IP包附加以太网首部并进行发送处理。
以太网首部中包含
接收端MAC地址和发送端MAC地址标志以太网类型的以太网数据的协议。
根据上述信息产生的以太网数据包将通过物理层传输给接收端。发送处理中的FCSFrame Check Sequence由硬件计算添加到包的最后FCS 的目的是为了判断数据包是否由于噪声而被破坏。
4.2 传输数据包
每个包首部中至少都会包含两个信息
发送端和接收端地址上一层的协议类型
每个包从前往后依此被附加了以太网包首部、IP包首部、TCP包首部或UDP包首部)以及应用的包首部和数据包的最后则追加了以太网包尾Ethernet Trailer。
此外每个分层的包首部中还包含一个识别位用来标识上一层协议的种类信息。例如以太网的包首部中的以太网类型IP中的协议类型以及TCP/UDP中两个端口的端口号等都起着识别协议类型的作用。应用的首部信息中有时也会包含一个用来识别其数据类型的标签。 4.3 接收数据包
数据包的接收流程是发送流程的逆序过程。
1数据链路层处理
主机收到以太网包以后首先从以太网的包首部找到MAC地址判断是否为发给自己的包。如果不是发给自己的包则丢弃如果是就查找以太网包首部中的类型域从而确定以太网协议所传送过来的数据类型。如该例中数据类型是IP包因此再将数据传给处理IP的子程序如果是其他诸如ARP的协议就把数据传给ARP处理。
如果以太网包首部的类型域包含了一个无法识别的协议类型则丢弃数据。
2网络层处理
IP 模块收到IP包首部及后面的数据部分以后也做类似处理。如果判断得出包首部中的IP地址与自己的IP地址匹配则接收数据并从中查找上一层的协议。如果上一层是TCP就将IP包首部之后的部分传给TCP处理如果是UDP则将IP包首部后面的部分传给UDP处理。
对于有路由器的情况下接收端地址往往不是自己的地址此时需要借助路由控制表在调查应该送达的主机或路由器以后再转发数据。
3传输层处理
TCP模块首先会计算一下Check Sum判断数据是否被破坏。然后检查是否在按照序号接收数据。最后检查端口号确定具体的应用程序。
数据接收完毕后接收端则发送一个“确认回执”给发送端。如果这个回执信息未能达到发送端那么发送端会认为接收端没有接收到数据而一直反复发送。
数据被完整地接收以后会传给由端口号识别的应用程序。
4应用层处理
接收端应用程序会直接接收发送端发送的数据。通过解析数据可以获知邮件的收件人地址是乙的地址。如果主机B上没有乙的邮件信箱那么主机B返回给发送端一个“无此收件地址”的报错信息。
该例中主机B上恰好有乙的收件箱所以主机B和收件人乙能够收到电子邮件的正文。邮件会被保存到本机的硬盘上。如果保存也能正常进行那么接收端会返回一个“处理正常”的回执给发送端。反之一旦出现磁盘满、邮件未能成功保存等问题就会发送一个“处理异常”的回执给发送端。
最终用户乙利用主机B上的邮件客户端接收并阅读由主机A上的用户甲所发送的电子邮件一“早上好”。