网络初识(TCP / IP五层网络模型以及分析过程)

目录

一、网络初识

二、协议

1、什么是协议

2、协议的特性

3、协议分层的好处

三、TCP / IP五层网络模型

 在协议分层的背景下,如何通过网络传输


一、网络初识

  • 网络发展背景:单机阶段 -> 局域网阶段 -> 广域网阶段 -> 移动互联网阶段
  • 局域网:把一些设备通过交换机或者是路由器连接起来
  • 广域网:把多个局域网相互连接起来
  • IP地址:描述一个主机在互联网上的具体位置
  • 端口号:区分一个主机上的应用程序

二、协议

1、什么是协议

白话来说:协议,就是 "约定" ,发送方约定他发送数据是啥样的格式,接收方也得理解这个格式,两边对上号才能够进行正确的通信

2、协议的特性

协议之间是分层关系的,约定了层级与层级之间的调用关系。要求上层协议调用下层协议,下层协议给上层协议提供支持,不能跨层调用(方便管理)

3、协议分层的好处

1、分层之后就可以做到,层次之间,耦合程度比较低,上层协议不必了解下层协议的细节,下层也不必了解上层的细节

2、方便对某一层协议进行替换

三、TCP / IP五层网络模型

  1. 应用层:关注传来的数据要干啥用
  2. 传输层:不考虑中间路径,只关注起点和终点
  3. 网络层:负责两个遥远节点之间的路径规划
  4. 数据链路层:关注两个相邻节点之间的传输
  5. 物理层:网络通信的基础设施,网线,光纤,网络接口(网络上的高速公路)

 在协议分层的背景下,如何通过网络传输

封装 & 分用

发送方发送数据,要把数据从上到下,依次交给对应的层次协议,进行封装

接收方收到数据,要把数据从下到上,依次交给对应的层次协议,进行解析

以QQ发送消息为例简单说明

发送方:妈妈,生日快乐!

1、应用层(QQ应用程序)拿到上述用户数据,进行封装,封装成应用层数据包【本质上就是字符串的拼接】

 2、传输层拿到上述数据,应用层要调用传输层提供的API来处理这个数据,最典型的协议就是TCP和UDP(以UDP为例)

 3、传输层到网络层,此时UDP数据包已经有了,接下来就是要把这个数据包交给网络层协议,最常见的就是IP协议

 4、网络层交给数据链路层,最典型的协议是以太网(数据链路+物理层)

mac地址,也叫做物理地址,也是描述一个主机在网络上的位置

IP用来进行网络层的路径规划,mac用来进行描述数据链路层,两个即将进行传输的相邻节点

5、数据链路层要把上述以太网数据帧交给物理层,物理层要把上述0101的二进制数据,转换成光信号/电信号/电磁波信号,进行传输了


上述介绍的是数据的封装,接下来介绍数据的分用

接受的过程和上述过程刚好相反

发送,从上到下,依次封装,新增报头

接收,从下到上,依次分用,去掉报头

1、物理层,网卡,收到高低电平二进制数据,就会对这里的信号进行解析,还原成0101这样的二进制数据

2、从物理层交给数据链路层,此时就把上述0101这系列数据当作一个以太网数据帧(此处是从以太网线,收到的数据,就是要交给以太网协议来处理)

把帧头去掉,帧尾去掉,去除中间的载荷,再往上交给网络层,以太网数据帧帧头中有一个消息类型,根据整个类型就可以知道是网络层的IP协议

3、网络层

此时就由我网络层的IP协议进行解析数据报,也是去掉IP报头,最重要的就是取出载荷,交给更上层的传输层协议,IP数据报,报头中也有一个字段,标识当前传输层用的是哪个协议

 

4、传输层

此处是由UDP来解析处理的,还是去掉报头,取出载荷,把数据交给应用层

借助端口号来区分具体的应用程序,每个要接收网络数据的程序都需要关联一个端口号

 

5、应用层

由QQ这个程序,进行解析应用层数据包,取出数据字段,放到程序的界面中

 


真实的网络环境中,数据的传输中间可能要经历很多节点进行转发

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 在Docker中,我们可以使用`docker network create`命令来创建新的网络。创建新网络的命令格式为`docker network create [OPTIONS NETWORK`,其中`OPTIONS`是一些可选参数,`NETWORK`是新创建的网络的名称。 例如,我们可以使用以下命令创建一个名为`mynetwork`的新网络: ``` docker network create mynetwork ``` 创建新网络后,我们可以使用`docker network ls`命令来查看当前存在的网络列表,使用`docker network inspect`命令来查看特定网络的详细信息。在桥接模式下查看网络的命令是: ``` docker network inspect bridge ``` 对于网络模式的初识,我们可以使用`ip a`或者`ifconfig`命令来查看网络接口的信息,使用`docker network --help`命令来查看Docker网络模式相关的命令。 需要注意的是,创建新网络时可以指定网络驱动程序、子网、网关等参数来自定义网络的配置。更多关于Docker网络的详细信息可以参考Docker官方文档。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [如何使用Docker创建自定义网络](https://blog.csdn.net/m0_67094505/article/details/128283373)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值