| |
|
|
开发:
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都是是传输层协议,但是两者具有不同的特性,同时也具有不同的应用场景。 |
|
|
| 网络协议 最新文章 |
| 使用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图书馆 购物 三丰科技 阅读网 日历 万年历 2025年10日历 | -2025/10/30 21:11:58- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |