网络基础初识

IP地址

IP 代表了一台机器在网络上的一个位置,由32位二进制(4字节)表示 .为了简化表示,将4个字节由.符号分开,每一部分都是0~255的数字代表1字节.

  • 在终端cmd中输入ipconfig可以看到自己电脑的ipv4地址

端口号

端口号描述的是使用的应用软件,网络传输数据之后,通过IP找到电脑,又通过端口号来找到应用,数据就给到对应的应用使用.

  • 程序之间使用的端口号不能相同

进行一次网络通信,IP 和 端口各两个.

  • 源端口 源IP,
  • 目的IP 目的端口

协议

网络之间需要有约定好传输格式,遵守协议确保各厂家生产之间能够互通

协议分层

维护网络安全.实现网络通信.就要要遵守各种各样的协议,管理复杂多样的协议,采用分层结构. 上层调用下层功能,下层为上层提供服务.

  • 上层协议直接调用下层协议的内容,不需要了解细节.(封装好了)
  • 层与层之间的交流不能越级交流
  • 某层的更改不会对其他不相邻层造成影响.
  • TCP/IP 是现在最广泛使用的网络协议,(5层)
  1. 应用层
    应用拿到数据之后,数据要用来做什么用
  2. 传输层
    起点 在哪,发送到的目的地又在哪 (香港) -> (北京)
  3. 网络层
    规划一条传输路径 (香港) -> (广东) -> (北京)
  4. 数据链路层
    传输路径之间的方式,香港到广东坐船还是开车,广东到北京是飞机还是火车...
  5. 物理层
    硬件的配合使用

过程:

  1. 首先应用层应用将数据打包,通过应用开发者约定好的字符串连接方式,将各种各样的信息封装在一起
  2. 传输层 主要有TCP协议和UDP协议,TCP协议确保数据能准确到达,可能重复发送,UDP发送更快,但是不理会信息是否到达

传输层生成 生成一个报头,将报头和应用层发送过来的数据连接.

报头里面装载着一些传输的重要信息,UDP协议中报头装载了两地端口号 ,TCP更为复杂

  1. 网络层继续在前面添加了IP报头

传输层传过来的数据被封装在一起,由IP报头引领寻找目的IP

  1. 数据链路层,生成帧头和帧尾,中间IP报头以及它的内容再次封装放在帧头和帧尾之间.

5.物理层将以上二进制转换成光信号/电信号/电磁波信号传递给下一硬件


下一硬件又会一层一层的往上拆解

  1. 下一硬件物理层 -> 生成二进制信息

  2. 到达数据链路层拆解以太网帧头帧尾

  3. 到达网络层,拆解

然后再次封装,准备发送给下一硬件

又通过硬件发送到下一硬件,直到到达指定端口,被应用接收使用.

相关推荐
karry_k1 小时前
MyBatis批量insert-select踩坑:useGeneratedKeys=true 可能让PostgreSQL返回大量插入结果
java·后端
karry_k1 小时前
PostgreSQL 在 MyBatis 中执行正常 SQL 失效:一次 DELETE USING 踩坑记录
java·后端
SamDeepThinking5 小时前
从源码到代码:MyBatis-Flex 与 MyBatis-Plus 的逐项对比
java·后端·程序员
她的男孩8 小时前
Spring Boot 接 Flowable 工作流:用 3 个注解搭一个请假审批流程
java·后端·架构
荣码10 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
plainGeekDev11 小时前
Gson → kotlinx.serialization
android·java·kotlin
小bo波20 小时前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing
咖啡八杯21 小时前
GoF设计模式——备忘录模式
java·后端·spring·设计模式