网络基础初识

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. 到达网络层,拆解

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

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

相关推荐
NE_STOP21 小时前
MyBatis-配置文件解读及MyBatis为何不用编写Mapper接口的实现类
java
后端AI实验室1 天前
用AI写代码,我差点把漏洞发上线:血泪总结的10个教训
java·ai
程序员清风1 天前
小红书二面:Spring Boot的单例模式是如何实现的?
java·后端·面试
belhomme1 天前
(面试题)Redis实现 IP 维度滑动窗口限流实践
java·面试
Be_Better1 天前
学会与虚拟机对话---ASM
java
开源之眼1 天前
《github star 加星 Taimili.com 艾米莉 》为什么Java里面,Service 层不直接返回 Result 对象?
java·后端·github
Maori3161 天前
放弃 SDKMAN!在 Garuda Linux + Fish 环境下的优雅 Java 管理指南
java
用户908324602731 天前
Spring AI 1.1.2 + Neo4j:用知识图谱增强 RAG 检索(上篇:图谱构建)
java·spring boot
小王和八蛋1 天前
DecimalFormat 与 BigDecimal
java·后端
beata1 天前
Java基础-16:Java内置锁的四种状态及其转换机制详解-从无锁到重量级锁的进化与优化指南
java·后端