| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 初识网络协议 -> 正文阅读 |
|
[网络协议]初识网络协议 |
?????????络协议通常是由上到下,分成 5
层,分别是应?层,传输层,?络层,数据链路层和物理层。
????????
应用层(Transport Layer)
????????最上层的,也是我们能直接接触到的就是
应?层
(
Application Layer
),我们电脑或?机使用的应?软件都是在应
?层实现。那么,当两个不同设备的应?需要通信的时候,应?就把应?数据传给下?层,也就是传输层。
????????所以,应?层只需要专注于为?户提供应?功能,不?去关?数据是如何传输的,就类似于,我们寄快递的时候,
只需要把包裹交给快递员,由他负责运输快递,我们不需要关?快速是如何被运输的。
?????????且应?层是?作在操作系统中的?户态,传输层及以下则?作在内核态。
传输层(Application Layer)
????????作为应?间数据传输的媒介,帮
助实现应?到应?的通信
????????在传输层会有两个传输协议,分别是 TCP
和 UDP
。
????????TCP 的全称叫传输层控制协议(
Transmission Control Protocol
),?部分应?使?的正是
TCP
传输层协议,?
如
HTTP
应?层协议。
TCP
相?
UDP
多了很多特性,?如流量控制、超时重传、拥塞控制等,这些都是为了保证
数据包能可靠地传输给对?。
????????UDP 就相对很简单,简单到只负责发送数据包,不保证数据包是否能抵达对?,但它实时性相对更好,传输效率
也?。当然,
UDP
也可以实现可靠传输,把
TCP
的特性在应?层上实现就可以,不过要实现?个商?的可靠
UDP
传输协议,也不是?件简单的事情。
????????应?需要传输的数据可能会?常?,如果直接传输就不好控制,因此当传输层的数据包??超过 MSS
(
TCP
最?
报?段?度) ,就要将数据包分块,这样即使中途有?个分块丢失或损坏了,只需要重新这?个分块,?不?重新新
发送整个数据包。在
TCP
协议中,我们把每个分块称为?个
TCP
段
(
TCP Segment
)。
? 网络层(Internet Layer)
????????负责将数据从?个设备传输到另?个设备。
?????????络层最常使?的是 IP
协议(
Internet Protocol
),
IP
协议会将传输层的报?作为数据部分,再加上
IP
包头组装
成
IP
报?,如果
IP
报???超过
MTU
(以太?中?般为
1500
字节)就会
再次进?分?
,得到?个即将发送到?
络的
IP
报?。
?????????络层负责将数据从?个设备传输到另?个设备,世界上那么多设备,?该如何找到对?呢?因此,?络层需要有
区分设备的编号。
????????
????????我们?般? IP
地址给设备进?编号,对于
IPv4
协议,
IP
地址共
32
位,分成了四段,每段是
8
位。只有?个单纯
的
IP
地址虽然做到了区分设备,但是寻址起来就特别麻烦,全世界那么多台设备,难道?个?个去匹配?这显然
不科学.
????????因此,需要将 IP
地址分成两种意义:
?????????个是
?络号
,负责标识该
IP
地址是属于哪个??的;
?????????个是
主机号
,负责标识同???下的不同主机;
????????怎么分的呢?这需要配合
??掩码
才能算出
IP
地址 的?络号和主机号。那么在寻址的过程中,先匹配到相同的?
络号,才会去找对应的主机。
????????
????????除了寻址能?, IP
协议还有另?个?要的能?就是
路由
。实际场景中,两台设备并不是??条?线连接起来的,
?是通过很多?关、路由器、交换机等众多?络设备连接起来的,那么就会形成很多条?络的路径,因此当数据包
到达?个?络节点,就需要通过算法决定下?步?哪条路径。
????????
IP 协议的寻址作?是告诉我们去往下?个?的地该朝哪个?向?,路由则是根据「下?个?的地」选择路径。寻址更像在导航,路由更像在操作?向盘
。
数据链路层(Data Link Layer)
???????它主要为?络层提供链路级别传输的服务。
????????
????????每?台设备的?卡都会有?个 MAC
地址,它就是?来唯?标识设备的。路由器计算出了下?个?的地
IP
地址,再
通过
ARP
协议找到该?的地的
MAC
地址,这样就知道这个
IP
地址是哪个设备的了。
物理层(Physical Layer)
????????当数据准备要从设备发送到?络时,需要把数据包转换成电信号,让其可以在物理介质中传输,这?层就是
物理层
,它主要是为数据链路层提供?进制传输的服务。
|
|
网络协议 最新文章 |
使用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 3:26:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |