IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> ip和端口的本质与作用,网络协议栈 -> 正文阅读

[网络协议]ip和端口的本质与作用,网络协议栈

协议

定义

协议

什么是协议:协议就是双方约定同一种语言进行沟通

什么是网络协议:通信双方,约定通信时使用的数据格式进行网络通信

协议分层:网络是有分层结构的,每一个分层当中有不同的网络协议,不同的网络协议完成不同的事情,不同的分层都有自己要完成的事情
	
网络协议簇:指的是很多网络协议组成的,称之为协议簇

体系结构:体系结构规定了网络的分层,以及每一个分层需要完成的功能,以及每一个分层拥有的协议,还规定了每一个分层与自己上下层的关系

ISO七层模型(网络模型,网络的分层模型)

物数网传会表应
	①物理层
	②数据链路层
	③网络层
	④传输层
	⑤会话层
	⑥表示层
	⑦应用层

工业当中并没有广泛的应用,因为划分的太繁琐

TCP/IP四层(或五层)模型

应用层:程序员写的代码,都是应用层代码,换句话说,程序员是工作在这一层的

传输层:端与端之间的传输,端指的是端口(端点 port)

网络层:IP地址管理和路由选择
	典型的设备:路由器
	
数据链路层:网络数据帧的传输,负责相邻设备之间的传输
	典型的设备:交换机

物理层:将二进制数据转化成光电信号,进行传输
	典型的设备:集线器(放大信号)

数据流向

假设在使用微信进行聊天,A发出一条消息,从A的应用层传递到传输层再到网络层经数据链路层传递到物理层,
在物理层转化为二进制数据通过光电信号传输到B的物理层,而从A的应用层到物理层便是A的网络协议栈。到达
B的物理层后向上传递,经过数据链路层到网络层再传输层最后到达应用层在B的微信上边显示出接收到的消息。

即:

1、网络数据的转发需要先经历自己的网络协议栈,进而通过网络将数据转化成为光电信号,传输到对端机器
2、对端机器收到数据之后,需要经历自己的机器网络协议栈的层层向上递交,一直将数据递交到应用层的的应用程序当中

ip、端口的本质和作用

ip地址:ipv4版本的ip地址
	本质:uint32_t(无符号32位)的整数,范围(0~42亿+),也就意味着ipv4版本的ip地址只有42亿多个
	
	ipv4版本的地址,通常是使用点分十进制的方式来表示的,例如“172.11.10.1”
	
	点分十进制:以“.”分隔出来了4个部分,每一个部分占用1个字节,换句话说每一个部分的每一个数字的范围都是(0~255)
	
	作用:可以在网络当中唯一标识一台主机
		即一个(公网)ip地址只能被一台机器所占用,一台机器可以拥有多个ip地址
	
端口:
	本质:unit16_t(无符号16位)的整数,范围(0~65535)
	作用:在一台机器中唯一标识一个进程
		引申出来的含义:一个端口只能被一个进程所绑定,但一个进程可以绑定多个端口

一条网络数据在网络转发时,需要具备哪些条件?

网络数据的五元组信息:
	{源ip地址, 源端口, 目的ip, 目的端口, 协议}
	网络数据中一定是存在五元组信息的,否则网咯就没有办法进行转发

	例如需要寄一件快递,需要有收件人信息,收件人地址,快递公司,自己的信息和地址,其中自己的信息和地址对应的就是源ip地址与端口,
	快递公司代表的便是协议,收件人信息和地址代表的便是目的ip与端口

网络协议栈在进行数据转发的时候做了哪些事?

数据的封装:
	A在应用层输入一个为[A]的消息 
	[A]
	进入到传输层后传输层会给数据加上一个传输层头 
	[传输层头] [A]
	进入网络层后数据被加上网络层头,也就是ip头
	[网络层头] [传输层头] [A]
	进入数据链路层打上以太头,在数据末尾加上一个CRC帧尾
	[以太头] [网络层头] [传输层头] [A] [CRC帧尾]
	进入物理层后将拿到的二进制数据转换成为光电信号传到B

数据的分用:
	B的物理层先拿到了数据
	[以太头] [网络层头] [传输层头] [A] [CRC帧尾]
	递交给数据链路层,数据链路层在递交给网络层之前要去掉以太头和CRC帧尾
	[网络层头] [传输层头] [A]
	网络层拿到数据,在递交给传输层之前去掉网络层头
	[传输层头] [A]
	传输层拿到数据,去掉传输层头,将数据递交给应用层
	[A]

对于接收端而言,所有的网络数据都是需要经历网络协议栈的,但是这么区分网络数据到底是属于哪一个应用程序的?

通过端口进行区分
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 12:01:15  更:2021-07-29 12:01:43 
 
开发: 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年5日历 -2024/5/4 2:38:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码