| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> OSI七层模型 -> 正文阅读 |
|
[网络协议]OSI七层模型 |
目录 一.什么是OSI参考模型国际标准化组织(ISO)提出的网络体系结构模型,称为开放系统互连参考模型(OSI/RM),通常简称为OSI参考模型.OSI七层模型自下而上依次为物理层、数据链路层、网络层、传输层、会话层、表示层,应用层。低三层统称为通信子网,它是为了联网而附加的通信设备,完成数据的传输功能;高三层为资源子网,完成数据的处理功能。简记为:“低传输,高处理”。 二.七层网络数据传输模型在应用层、会话层、表示层,数据以原本的形式进行传输,传输层为数据增添一个TCP的消息报文头,网络层再增添一个ip地址的报文的消息头,链路层添加一个以太信息,物理层将数据转为01二进制的电信号,这就是七层模型封包的过程。 7层模型解包的过程是封包的逆过程,物理层网卡的01电信号被转化为链路层的以太信息,在网络层解析ip地址,传输层分析处理TCP消息头,会话层建立socket连接,表示层将数据还原为text/png等格式,应用层向操作系统要信息。 三.各层的功能1.物理层意义——物理层实现在计算机网络中的各种硬件设备和传输介质上传输数据比特流,将比特从一个结点移到下一个节点;计算机网络的硬件设备与传输介质繁多,通信手段也有很多不同的方式,物理层为我们尽可能的屏蔽掉这些差异,使上层的数据链路层感受不到这些差异,数据链路层只需考虑本层的协议和服务如何完成 传输单位——比特 任务——透明的传输比特流 功能——在物理媒体上为数据段设备透明的传输原始比特流 物理层主要定义数据终端设备和数据通信设备的物理和逻辑连接方法,所以物理层协议也称为物理层接口标准。 物理层的接口标准 ①EIA-232C 该接口详细定义了连接头、电缆长度、数据传输逻辑及编码方式等 https://baike.baidu.com/item/EIA-232%E6%8E%A5%E5%8F%A3%E6%A0%87%E5%87%86/9392957?fr=aladdin ②CCITT的X21? 国际电话电报委员会规定的充电协议 2.数据链路层提供介质访问和链路管理 传输单位——帧 任务——将网络层传来的IP数据报组装成帧 功能——成帧、差错控制、流量控制、传输管理 差错控制功能:由于外界噪声的干扰,原始的物理连接在传输比特流时可能发生错误。两个结点之间如果规定了数据链路层协议,那么就可以检出这些差错,然后把收到的错误信息丢弃,这就是差错控制功能 流量控制功能:在两个相邻结点之间传送数据时,由于两个结点性能的不同,可能结点A发送数据的速率会比结点B接收数据的速率快,如果不加控制,那么结点B就会丢弃很多来不及接收的正确数据,造成传输线路效率的下降。流量控制可以协调两个节点的速率,使结点A发送数据的速率正好是结点B可接收的速率 数据链路层协议 ①PPP协议(点对点协议) 点对点的链路,目前使用最广泛的数据链路层协议PPP。用户使用拨号电话接入互联网时,用户计算机和ISP进行通信时使用的数据链路层协议就是PPP协议。 在使用电话线或者ISDN拨号上网时,首先用户向运营商的接入点拨打电话,电话接通后,输入用户名和密码进行登录操作。用户名和密码通过radius协议从RAS发送到认证服务器,认证服务器检验这些信息是否正确。当确认无误后,认证服务器会返回IP地址等配置信息,并将这些参数下发给用户。? ? 用户的计算机根据这些信息配置IP地址等参数,完成TCP/IP收发网络包的准备工作。 ?PPP协议主要有三个组成部分:(1)一个将IP数据报封装到串行链路的方法(2)链路控制协议LCP(3)网络控制协议NCP PPP协议的帧格式——PPP帧的首部和尾部分别为4个字段和2个字段。标志字段F=0x7E、地址字段A只能设置为0xff,实际上并不起作用。PPP是面向字节的,所有的PPP的帧的长度都是整数字节。 ②HDLC协议(高级数据链路控制) HDLC协议用于广域网的点对点连接,是一种常用并且比较简单的协议。HDLC面向比特实现透明传输, 在网络结点之间同步传输数据, HDLC不支持多协议。 HDLC设备以轮询时间间隔为周期,向链路上发送keepalive消息;5个周期内无法收到对方发出的收到对方发出的keepalive消息, HDLC设备就认为链路不可用;同一链路两端设备轮询的时间应该设置成相同的值?。 3.网络层IP选址和路由选择 要在全球范围内把数以百万计的网络互联起来,并且能够互相通信,是一项非常复杂的任务,此时需要解决许多问题,比如不同的寻址方案、不同的网络接入机制、不同的差错处理方法、不同的路由选择机制等。用户的需求是多样的,没有一种单一的网络能适应所有用户的需求,网络层所要完成的任务之一就是实现异构网路的互联。所谓网络互联,是指将两个以上的计算机网络,通过一定的方法,用一种或多种通信处理设备(即中间设备) 相互连接起来,以构成更大的网络系统。中间设备又称中继系统或中间系统 。使用物理层或者数据链路层的中继系统时,从网络层的角度看,它仍然使用的是一个网络,一般并不称为 网路互联;因此网络互联通常是指用路由器进行网络互联和路由选择。使用虚拟互联网络的好处是当互联网上的主机进行通信时,就好像在一个网络上进行通信一样,而看不见互联的具体网络异构细节。 ①ARP协议(地址解析协议) 使用ARP有以下情况:(1)发送方是主机,要把IP数据报发送到本网络上的另一个主机,这时用ARP协议找到目的主机的硬件地址 (2)发送方是主机,要把IP数据发送到另一个网路上的一个主机,这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成 (3)ARP网络欺骗 ②IP协议(网际协议) 网络层协议,提供的是简单灵活、无连接、尽最大努力交付的数据报服务;以及主机与主机之间的逻辑通信。IP协议目前使用的版本是IPV4和IPV6。IP协议的作用有:1.标识结点和链路——使用IP地址,唯一标识一个网络接口或一组网路接口;使用IP网络号,唯一标识一条链路 2.寻址和转发——路由器通过数据包的目的IP地址,将数据包转发到指定的网络接口 3.适应各种数据链路——根据不同的数据链路层协议类型,建立IP地址到链路层地址的映射关系;根据不同数据链路的MTU(最大传输单元),进行IP数据包的分片与重组。 4.传输层建立、选址和维护端到端的连接 传输层用于建立端到端的连接。 ①TCP协议的三次握手和四次挥手 简述:客户端和服务端有各自的ip地址,都有各自的应用进程,除了ip地址外,还需要端口号来保证应用进程不会发错。ip地址+端口号就形成了所谓的套接字socket,这就是握手的核心条件。客户端首先发给服务端一个SYN标识,SYN即(synchornization,同步),意思是客户端想和服务端进行数据的同步,在同步以后,就可以互发信息(TCP是全双工的);此外客户端还要向服务器发送一个SEQ信息,这个SEQ(sequence)是随机生成的,这是服务器判断累赘信息的依据;当服务器收到SYN以后,需要做出响应,他会把SYN和ACK同步开启,ACK表示acknowledgement,是确认的意思,SYN+ACK就是“确认同步”;客户端手打服务器的确认同步之后,自己也把ACK开启,并根据对方的确认号生成自己的序号.SYN,ACK,FIN这些标识,如果是1就开启,如果是0就关闭。 TCP连接的两个进程中的任何一个都能终止该连接,TCP连接释放的过程就称为四次挥手。想要断开链接的一方首先发送FIN和seq,对方收到后发送ACK表示确认,此时TCP处于半关闭状态;当没有数据要发送,就发一个FIN+ACK,想要断开的一方收到后再发一个ACK表示确认,等待2MSL后TCP将彻底断开。 为什么是握手三次? 面向连接的协议要做好两端的连接,需要三个报文确认连接的建立。可用性角度——如果只做两次握手,可以完成初始序号,但无法实现同步目标;防止旧的重复链接造成混乱,比如旧的SYN比新的SYN先到到服务器,三次握手可保证;四次握手也可以打成,但中间的两次可以合并成一次; 安全性角度——有效防止DDOS攻击 效率角度——四次握手也可以,但是三次效率更高 对于二次握手,服务器根本无法验证客户端真伪,对每个进来的连接都得分配连接资源,伪造的海量的SYN资源,很容易欺骗服务器,导致服务器开辟出大量的连接资源,很快导致服务器端的连接资源耗尽,等到合法连接申请到达的时候,服务器没有多余的资源,导致无法提供服务。 ②TCP可靠传输 TCP的任务是在IP层不可靠的、尽力而为服务的基础上建立一种可靠的数据传输服务。TCP提供可靠数据传输服务保证接收方进程从缓存区读出的字节流与发送方的字节流完全一样。TCP使用了校验、序号、确认和重传机制来达成这一目的。 5.会话层会话层主要用于管理网络设备的会话连接,具体细分为三个环节:1.建立会话:AB两台设备要通信,要建立一条会话供他们使用,在建立会话的过程中也会有身份验证,权限鉴定等环节; ①RPC协议(远程过程调用协议) 程序可以通过这个协议请求网络中的另一台计算机上某程序的服务而不需要知道网络细节。 目的:(1)调用非本机的方法(2)不同语言程序之间通讯(3)不了解底层通讯,像本地方法一样调用? ? ?? ②SSH协议(安全壳层协议)? ? ? ? ? ? 主要用来通过命令行远程登录和操控服务器,协议默认端口为22。SSH使用通信的两端使用非对称加密的方法加密网络连接,然后用密码对用户的身份进行验证。 6.表示层①HTTP协议(超文本传输协议) 在浏览器和服务器之间请求和响应的交互,必须遵循规定的格式和规则,这些格式和规则就是HTTP。因此HTTP有两类报文:请求报文(从web服务端向web服务器发起请求)和响应报文(从服务器对客户端请求的回答)。 用户单击鼠标后所发生的事情按照顺序如下:1.浏览器分析连接指向的URL;2.浏览器向DNS请求分析URL的IP地址;3.域名系统DNS解析出服务器的IP地址;4.浏览器与服务器建立TCP连接;5.浏览器发出HTTP请求;6.服务器通过http响应把文件发送给浏览器;7.TCP连接释放;8.浏览器解释文件,并将网页显示给用户 ②FTP协议 因特网使用最广的文件传输协议。提供交互式的访问,允许用户指明文件的类型及格式,并允许文件具有存取权限。 7.应用层? OSI的应用层功能是为所有终端用户访问各种共享网络服务提供了高效的OSI模型数据流。应用层的主要技术包括处理错误和恢复、网络上的数据流并提供完整的网络流量。应用层还用于开发网络应用程序。 ①SMTP协议(简单邮件传输协议) 具有连接建立——邮件传送——连接释放这三个阶段。 @POP3协议(邮件读取协议) 采用“拉”的通信方式,当用户读取邮件时,用户代理向服务器发出请求,拉取用户邮箱中的邮件。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:39:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |