【转】OSI七层模型传输过程的通俗理解

SI参考模型将网络划分为了七层,从上到下依次是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。教科书上隔层的功能是这样写的:


        下面举个也许不太恰当的例子来记录我的理解:你来到公司,打开电脑,准备开始一天的工作,你打开了多个应用程序,邮件、QQ、浏览器、股市行情软件等等,注意这些应用程序并不位于应用层,只是与应用层协议交互。当然,当这些应用程序被打开时会与服务器进行一系列的通信,这个通信过程是经历了OSI的各层的。
        这时,你需要给一个同事发个邮件,你新建了一个邮件开始编写,写完邮件正文后,你填好邮件主题,键入收件人的邮件地址。当你点击发送邮件的按钮时,这个发送邮件的通信过程就开始了OSI七层模型旅行之路。
        首先来到的是应用层。这一层确定了你的邮件是以什么方式发送出去,是SMTP还是IMAP?在发送邮件的同时,你还是浏览网页查阅资料,你在点击每一个链接的时候,应用层确定了是用HTTP还是HTTPS。或者说,用户通过应用程序向应用层提出了一系列应用请求,比如发送邮件、访问网页等。
        表示层收到了发送邮件的请求,这时它会将需要传输的数据进行编码和转换,形成一种大家都认识的表现形式。我们都知道,不同的操作系统对于文字、语音、图片、视频的编解码方式都是不同的,假如你用的是一台Windows 10操作系统的电脑,而你的同事用的是Mac OS操作系统,虽然操作系统的编码处理方式不同,但在数据传输过程中如果没有一个统一的数据格式的定义,恐怕对方收到数据后恢复出来的内容和你发出的大相径庭,甚至根本就是不可理解的。
        通过表示层的处理,数据已经准备好了,接下来就到了会话层出马的时候了。你的主机会帮你与邮件服务器建立会话,主机会问服务器:“你好,我是主机,你是邮件服务器吗?我需要和你建立连接。”,服务器会答复说:“你好,我是邮件服务器,连接已经建立。”,这时,发送邮件的会话就算是建立好了,当完成邮件数据传输后,表示层又会断开连接,即终止会话。刚才说过,在发送邮件的同时,你还是浏览网页,你点开了很多个页面,每打开的一个页面都是你和对方建立的一个会话。同时你还在和同事QQ聊天,每个聊天窗口背后其实也是一个会话。会话层就是帮你和对方建立连接的一个过程。就像打电话,你要先和对方接通电话,然后才能开始通话。
        建立连接后就可以开始进行数据传输了。传输层接收来自应用程序的各种数据:文字、语音、图片、视频,然后将这些数据合并到一个数据流中,再将数据进行分段并编号,最后发送出去。在数据传输的过程中可能会出现各种异常,比如数据包丢失、数据损坏等等,传输层就承担了保证数据传输正确的功能,如流量控制、数据重发等。简单的说,传输层就是表示层准备好数据、会话层建立连接后,正式开始数据传输的第一步。
        到了这个时候,数据就要走出家门出去闯荡了。临出门前,你告诉它:“去找邮件服务器吧,它在深圳,门牌号是XX路YY号”。网络层可不知道这个门牌号的位置,但是它知道怎么去深圳,就像你从北京寄快递到深圳,快递公司只知道怎么去深圳最快,但你要寄到的这个地址恐怕就只有当地的快递员才知道了。网络层就是快递公司,下面要讲的数据链路层就是快递员。网络层了解每个网络的编址、会跟踪设备在网络中的位置、可以准确计算出最佳的数据传输路径。网络层可以计算出从你所在的北京到深圳有哪些路线,哪条路线此时此刻是最快的。
        数据终于到了深圳,到了快递员——数据链路层手里,与网络层类似,数据链路层对网络虽然不熟,但是却对本地网络中的每台设备了如指掌。它可以通过硬件地址找到每一台设备。数据链路层从数据这里得知要去XX路YY号,轻而易举地就将数据送了过去。
        最后说下物理层,这一层就相对简单了,就是信号转换和物理传输,将数据转换成光信号、电信号,然后通过光缆、铜缆传输。

 

以下内容摘自《图解TCP/IP》

应用层、传输层、网络层和数据链路层

应用层

应用层决定了向用户提供应用服务时通信的活动。
TCP/IP 协议族内预存了各类通用的应用服务。比如,FTP(File
Transfer Protocol,文件传输协议)和 DNS(Domain Name System,域
名系统)服务就是其中两类。
HTTP 协议也处于该层。

传输层

传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据
传输。
在传输层有两个性质不同的协议:TCP(Transmission Control
Protocol,传输控制协议)和 UDP(User Data Protocol,用户数据报
协议)。

网络层(又名网络互连层)

网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数
据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计
算机,并把数据包传送给对方。
与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所
起的作用就是在众多的选项内选择一条传输路线。


链路层(又名数据链路层,网络接口层)


用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱
动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等
物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在
链路层的作用范围之内。

 

 

### OSI七层模型简介 OSI(Open Systems Interconnection)七层模型是一种概念框架,用于描述网络通信中的各个层次及其功能。该模型由国际标准化组织(ISO)制定,旨在提供一种通用的语言来帮助理解和实现不同网络系统的互操作性。 #### 物理层 (Layer 1) 物理层定义了硬件设备之间的电气、机械、过程性和功能性特性。它关注的是比特流的实际传输介质,例如电缆、光纤或其他物理媒介[^1]。 常见的协议和技术包括Ethernet、RS-232等。数据单位为**bits**。 #### 数据链路层 (Layer 2) 数据链路层负责节点间的可靠数据传输,确保数据帧无误地从一个节点传递到另一个节点。此层还包括错误检测和纠正机制[^3]。 典型技术有以太网(Ethernet)、Wi-Fi等。数据单位为**frames**。 #### 网络层 (Layer 3) 网络层处理逻辑地址分配和路由选择,决定数据包如何从源到达目标。IP寻址和子网掩码是这一层的核心内容[^4]。 常见协议包括IPv4、IPv6等。数据单位为**packets**。 #### 传输层 (Layer 4) 传输层提供了端到端的通信服务,确保消息被完整交付给接收方的应用程序。它还管理流量控制、分割与重组等功能[^3]。 主要协议有TCP(面向连接)和UDP(无连接)。数据单位为**segments** 或 **datagrams**。 #### 会话层 (Layer 5) 会话层建立、管理和终止两个应用进程之间的对话。它可以创建同步点以便恢复中断的会话。 #### 表示层 (Layer 6) 表示层解决用户信息的表现形式问题,涉及加密解密、压缩解压以及字符编码换等问题[^3]。 #### 应用层 (Layer 7) 这是最接近用户的层面,直接向用户提供各种网络服务,如文件传输、电子邮件发送等。许多熟知的服务都位于这一层,比如HTTP、FTP、SMTP等[^4]。 数据单位通常称为**messages**。 ```python # 示例:模拟简单的HTTP求 import requests response = requests.get('https://www.example.com') print(response.status_code) # 输出状态码 print(response.text[:100]) # 打印前100个字符的内容 ``` ### 总结 OSI七层模型不仅明确了每一层的具体职责,而且促进了跨厂商的产品兼容性与发展创新[^2]。通过将复杂的网络通信分解成多个相对独立的部分,使得整个系统更加易于维护和发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值