| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 计算机网络模型及协议简介 -> 正文阅读 |
|
[网络协议]计算机网络模型及协议简介 |
一、TCP/IP协议模型TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。 ?TCP/IP协议族按照层次由上到下来说,最上面的是应用层,这里面有http,ftp 等协议。第二层是传输层,TCP和UDP协议就在这个层次。第三层是包含IP协议及ARP协议的网络层,它负责对数据加上IP地址和其他的数据以确定传输的目标。第四层是网络接口层,该层是传输的硬件部分,为指向硬件部分之间的通信规范一个标准,使得这些硬件设备之间能够互相连接。 ? ? ?上图表示了TCP/IP协议中每个层的作用,而TCP/IP协议通信的过程其实就对应着数据入栈与出栈的过程。入栈的过程,数据发送方每层不断地封装首部与尾部,添加一些传输的信息,确保能传输到目的地。出栈的过程,数据接收方每层不断地拆除首部与尾部,得到最终传输的数据。 ? ?二、物理层物理层是协议最底下的一层,它上面所承接的是数据链路层发来的数据帧,物理层就负责把这些数据帧转化为一个个0和1,也就是数据比特流,然后在底层的物理传输媒体(网线、电缆、双绞线 光钎等等)上传递。 物理层需考虑怎样才能在连接各种计算机的传输媒体上传输数据比特流。硬件设备、传输媒体种类、通信手段多样,物理层要屏蔽掉这些差异,使上面的数据链路层感受不到这些差异,这样数据链路层只管如何完成本层的协议和服务。 ?物理层的信道复用技术包括时分复用、频分复用、波分复用与码分复用等。 物理层协议
三、数据链路层主要功能:用于两个设备(同一种数据链路节点)之间进行信息传递。 物理层负责0、1比特流与物理设备电压高低、光的闪灭之间的互换。数据链路层负责将0、1序列划分为数据帧从一个节点传输到临近的另一个节点,这些节点是通过MAC来唯一标识的(MAC,物理地址,一个主机会有一个MAC地址)。 MAC地址:
?为什么存在MAC地址还需要IP地址呢? 在数据链路层,存在多种异构的网络,比如以太网、令牌环网等,也就是数据链路层存在多种MTU,既多种不同的传输信道,如果只有MAC地址,在不同的网络之间是没有办法传输的,只能在MAC地址上封装一次抽象的IP地址来封装底层各种不同的网络。 MAC地址和IP地址的对比: 一个数据报中的源IP地址和目的IP地址是为了标识这个数据的起点和终点,源MAC地址和目的MAC地址是为了标识上一站的地址和下一站的地址,在一个数据报的传输过程中,IP一直不变,而MAC地址是一直在变的 四、网络层?网络层介于传输层和数据链路层之间,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传输服务。包含有以下几种协议。 1、IP协议IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGMP的数据都以IP数据格式传输。IP不是可靠的协议,没有提供一种数据未传达以后的处理机制,这被认为是上层协议:TCP或UDP要做的事情。 在IP层有一个类似数据链路层的地址标识,这就是IP地址。32位IP地址分为网络位和地址位,这样做可以减少路由器中路由表记录的数目,有了网络地址,就可以限定拥有相同网络地址的终端都在同一个范围内,那么路由表只需要维护一条这个网络地址的方向,就可以找到相应的这些终端了。 A类IP地址: 0.0.0.0~127.0.0.0 ?2、ARP协议?ARP (地址解析)协议是根据IP地址获取MAC地址的一种协议,是一种解析协议,如果主机不知道这个IP对应的是哪个主机的哪个接口,当主机发送一个IP包的时候,会首先查一下自己的ARP高速缓存(就是一个IP-MAC地址对应表缓存),如果查询的IP-MAC值对不存在,那么主机就向网络发送一个ARP协议广播包,这个广播包里面就有待查询的IP地址,而直接收到这份广播的包的所有主机都会查询自己的IP地址,如果收到广播包的某一个主机发现自己符合条件,那么就准备好一个包含自己的MAC地址的ARP包传送给发送ARP广播的主机。 而广播主机拿到ARP包后会更新自己的ARP缓存(就是存放IP-MAC对应表的地方)。发送广播的主机就会用新的ARP缓存数据准备好数据链路层的的数据包发送工作。 ?3、ICMP协议IP协议并不是一个可靠的协议,它不保证数据被送达,那么保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。ICMP是IP层的协议。当传送IP数据包发生错误,比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会。 五、传输层传输层主要是提供不同主机上的进程之间的逻辑通信(端到端的通信),即使在不可靠的网络层(主机之间的逻辑通信)传输下,传输层也能提供可靠的传输。(所谓的逻辑通信就是指:传输层之间看似是在水平方向传送数据,但是事实上这两个传输层之间并没有水平方向上的物理连接)。TCP/UDP都是是传输层协议,但是两者具有不同的特性,同时也具有不同的应用场景。 UDP面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会使IP太小。 TCP面向字节流,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。 相关应用什么时候应该使用TCP或UDP? 当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。 当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。 ?六、会话层会话层,主要功能是用来管理网络设备的会话连接,细分为三大功能:
Windows系统中共享文件用的是SMB协议,这是一个会话层的协议。 七、表示层表示层功能:电脑从网卡收到一串数据时,这些数据在电脑中都是都是二进制的格式,需要表示层将这些二进制转换成我们能够识别的数据。所以表示层的基本作用就是对数据格式进行编译,对收到或发出的数据根据应用层的特征进行处理,如处理为文字、图片、音频、视频、文档等,还可以对压缩文件进行解压缩、对加密文件进行解密等。 只有在表示层将数据处理完成后,才能将转格式编译后的数据呈现在应用程序中,让用户能够看懂。 现在互联网使用的通信标准是四层结构的TCP/IP协议模型,在TCP/IP协议栈中的应用层包含了OSI七层模型里的应用层、表示层、会话层三层。 八、应用层?应用层(Application layer)是七层OSI模型的第七层。应用层提供常见的网络应用服务也向表示层发出请求。应用层是开放系统的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。 应用层协议包括常见的HTTP,HTTPS,DNS及DHCP等。 |
|
网络协议 最新文章 |
使用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年12日历 | -2024/12/28 20:25:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |