title: 《网络协议》01. 基本概念
date: 2022-08-30 09:50:52
updated: 2023-11-04 07:28:52
categories: 学习记录:网络协议
excerpt: 互联网、网络互连模型(OSI,TCP/IP)、计算机通信基础。
comments: false
tags:
top_image: /images/backimg/SunsetClimbing.png
网络协议
网络协议从入门到底层原理。
1:互联网&协议
互联网(internet)的出现,彻底改变了人们的生活方式,足不出户就可以购物、聊天、看电影、买车票、上班等。
数据是如何从一个设备传递到另一个设备的?
- 这一切都是由网络协议来规定的。
- 没有网络协议,就没有今天的互联网。
什么是协议?
- 协议就是通用的标准。
- 如果没有一个国际通用的标准,那么相互之间的交互就会很麻烦。
1.1:跨平台原理
C/C++ 跨平台原理 :
使用平台相关的编译器生成对应平台的可执行文件。
Java 跨平台的原理:
C/C++ 编译之后可直接生成平台对应的可执行文件 。
Java编译之后生成字节码文件。对于操作系统来说,不是可执行文件。
1.2:客户端与服务器
其中,后端使用 Java 的一种结构如下:
客户端向服务器请求:
http://IP地址:端口号/项目
例:
http://10.10.125.41:8080/qq/login/...
2:网络互连模型
- 国际标准:OSI 参考模型(7层)
- 实际应用:TCP/IP 协议(4层)
- 学习研究:(5层)
为了更好地促进互联网络的研究和发展,国际标准化组织 ISO 在 1985 年制定了网络互连模型 OSI 参考模型(Open System Interconnect Reference Model)。
网络请求过程 :不管什么协议,都是经过下列的 包装 + 解包 过程。
3:计算机通信基础
先不考虑无线连接的问题。
- 需要得知对方的 IP 地址。
- 最终是根据 MAC 地址(网卡地址),输送数据到网卡,被网卡接收。
- 如果网卡发现数据的目标 MAC 地址是自己,就会将数据传递给上一层进行处理。
- 如果网卡发现数据的目标 MAC 地址不是自己,就会将数据丢弃,不会传递给上一层进行处理。
3.1:网线直连
- 需要用交叉线(不是直通线)
- 同一网段
- ping 走的是 ICMP 协议。
- ARP 协议:已知 IP 地址,不知道 MAC 地址时,通过广播获取 MAC 地址。
右边出现的 3 个 ARP 包,实际上是一次完整的发送请求、接收响应的过程。
ICMP 包同理。
3.2:同轴电缆
同轴电缆(Coaxial),连接同一网段。
3.3:集线器
集线器(Hub),连接同一网段。
集线器相比同轴电缆唯一的优点:连着集线器的某一个设备中间线路出问题,不会影响到连着集线器的其他设备的通信。
3.4:网桥
网桥(Bridge)。还是连接同一网段。
能够通过自学习得知每个接口那侧的 MAC 地址,从而起到隔绝冲突域的作用。
3.5:交换机
交换机(Switch)。依旧是连接同一网段。
若全球所有设备都用交换机连接:
- 他们必然处于同一网段,因此 IP 地址可能会不够用。
- 第一次发送数据包仍然需要 ARP 广播,耗费大量时间。
- 形成广播风暴,只要有一个设备发送 ARP 广播,全球设备都能收到。
3.6:路由器
路由器(Router)。路由器含有网关(Gateway),网关也有 IP 和 MAC 地址。
主机在发数据之前,首先会判断目标主机的 IP 地址跟它是否在同一个网段:
- 在同一个网段:ARP广播、通过交换机 / 集线器传递数据
- 不在同一个网段:通过路由器转发数据
无奈夜长人不寐,数声和月到帘栊。
------《捣练子令 · 深院静》(五代)李煜