计算机网络基础
可以参考这个,这是我当时刷题的发现,有一些东西在后续没有去讲解就找了一系列的视频去看了一下。 【计算机网络基础——协议的本质(数据在网络中的传输)】 https://www.bilibili.com/video/BV1a846efEbC/?share_source=copy_web&vd_source=3d92aa9d33df3e75ad29563ed567d683### 网络预备知识
网络通信
通信/通讯需要具备两个基本条件:
- 传输介质:(物理层面)
- 网线,光纤
- 协议:(软件层面)
- 网络通信协议
网络协议层次模型
层次:把不同的功能封装成不同功能模块。
为什么叫做层次?
因为被封装的模块只能按照已有顺序进行调用,不能越级调用:
A 模块(用户层)
---
B 模块(OS层)
---
C 模块(硬件层)A模块不能直接调用C模块,只能通过先调用B模块的接口,通过B模块的接口来调用C模块。
OSI 七层模型
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 硬件层
应用层
应用层协议
应用层
PDU
接口
表示层
表示层协议
表示层
接口
会话层
会话层
传输层
传输层
传输层
数据段
接口
网络层
网络层协议
网络层
数据包
接口
数据链路层
数据链路层协议
数据链路层
帧
接口
物理层
物理层协议
物理层
比特
层
主机A
主机B
数据单元TCP/IP 四层模型
- 应用层
- 应用协议:http,https,tftp,ftp,DNS,QQ协议,BT
- 传输层
- 主要作用:解决数据如何传输的问题
- 协议:
- TCP:Transmission Control protocol 传输层控制协议
- 是一种面向连接的传输层协议,它可以提供高可靠的通信。
- 高可靠的通信:即数据无误、数据无丢失、数据无失序、数据无重复到达的一种通信。
- 建立连接/断开连接:三次握手和四次挥手
ADATA STN报文 SYN报文 ACK报文 ACK报文 三次握手 B A 四次挥手 B 重发机制 "面向连接"
- UDP:User Datagram Protocol 用户数据报协议
- 它是不可靠的无连接协议。
- 在数据发送之前,因为不需要进行连接就可以直接发送数据。
- "实时应用"
- TCP:Transmission Control protocol 传输层控制协议
- 网络层
- IP:IP地址(网卡的逻辑上的编号)
- ICMP
- 设备驱动与硬件层
- 硬件:
- 网卡
- 网络
- MAC协议:
- MAC地址(网卡的物理地址 48bits)
- 硬件:
网络数据传输
分层传输:
- 封包过程
- 拆包过程
A端 封包过程 拆包过程 B端
data(123) 123
应用层 /app(data) app(data) 应用层
传输层 /tra(app(data)) tra(app(data)) 传输层
网络层 /net(tar(data)) net(tar(data)) 网络层
设备驱动和硬件 /hard(net(data)) hard(net(data)) 设备驱动和硬件网络设备功能
- 路由器:主要功能“路由”
- 选择网络数据包的下一站。
- 网关:连接两个或以上网络。
- 交换机(switch):
- 扩展端口
- 有源:增强信号
- 猫(modern):调制解调器
- ads1猫
- 光纤猫
互联网地址(IP地址)
互联网:internet
互联网上的每一个接口(网卡)都必须有一个唯一的 internet 地址(也叫:IP地址)。协议上的逻辑地址。
进行通信的时候,用到这个 IP 地址唯一标识一台主机(一个网卡)。
IPv4 地址:
- 32bits IP 地址(42亿)
- 表示方式:
- 点分十进制:每8个 bit 位为一组,中间用
.分割- 示例:
11010010 01001001 10001100 00000010→210.73.140.2
- 示例:
- 点分十进制:每8个 bit 位为一组,中间用
IPv6 地址:
- 128bits IP 地址
IPv4 地址分类
IPv4 地址的 32bits 分为两部分:
- 网段号:标识某个网段(连续高位表示)
- 主机号:标识特定网段中的特定主机(连续低位表示)
| 类型 | 最高位 | 网络号 | 主机号 | 地址范围 |
|---|---|---|---|---|
| A类 | 0 | 7bits | 24bits | 0.0.0.0 ~ 127.255.255.255 |
| B类 | 10 | 14bits | 16bits | 128.0.0.0 ~ 191.255.255.255 |
| C类 | 110 | 21bits | 8bits | 192.0.0.0 ~ 223.255.255.255 |
| D类 | 1110 | - | 多播组号 28bits | 224.0.0.0 ~ 239.255.255.255 |
| E类 | 11110 | - | 保留 | 240.0.0.0 ~ 247.255.255.255 |
- 私有地址范围:
192.168.0.0~192.168.255.255
子网掩码(netmask)
用于指定 IP 地址中哪些 bits 是网段号,哪些是主机号:
- 子网掩码为
1的 bit 位表示网段号 - 子网掩码为
0的 bit 位表示主机号 - 示例:
- 子网掩码
255.255.254.0→11111111 11111111 11111110 00000000 192.168.1.4和192.168.2.5是否同一网段?网段号不同 → 不是同一网段xxxxxxxx xxxxxxxx 00000001 xxxxxxxx → 192.168.1.4 xxxxxxxx xxxxxxxx 00000010 xxxxxxxx → 192.168.2.5
- 子网掩码
端口号
TCP 和 UDP 采用 16bits 的端口标识应用程序:
- IP 地址唯一标识网络中的主机
- 端口号标识主机上的特定网络应用
- 完整网络应用标识:
IP地址 + 传输层协议(TCP/UDP) + 端口号
端口号分类(由 IANA 管理):
- 知名端口:1~1023
- ftp:21
- http:80
- MySQL:3306
- 注册端口:1024~49151
- 动态/私有端口:49152~65535
