网络发展
独立模式: 计算机之间相互独立;
网络互联: 多台计算机连接在一起, 完成数据共享;
局域网 LAN: 计算机数量更多了, 通过交换机和路由器连接在一起;
广域网 WAN: 将远隔千里的计算机都连在一起;
所谓 "局域网" 和 "广域网" 只是一个相对的概念. 比如, 我们有 "天朝特色" 的广域网, 也可以看做一个比较大的局域网.
初识协议
"协议" 是一种约定
计算机之间的传输媒介是光信号和电信号. 通过 "频率" 和 "强弱" 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式.
协议分层
协议本质也是软件,在设计上为了更好的进行模块化,解耦合,也是被设计成为层状结构的
软件分层的好处
- 在这个例子中, 我们的"协议"只有两层:语言层、通信设备层。
- 但是实际的网络通信协议,设计的会更加复杂, 需要分更多的层
- 但是通过上面的简单例子,我们是能理解,分层可以实现解耦合,让软件维护的成本更低
OSI 七层模型
- 其实在网络角度,OSI 定的协议 7 层模型其实非常完善,但是在实际操作的过程中,会话层、表示层是不可能接入到操作系统中的,所以在工程实践中,最终落地的是 5 层协议。
- 但是要理解上面的话,需要我们学习完网络才可以理解,这里就知道就可以。
TCP/IP 五层(或四层)模型
TCP/IP 是一组协议的代名词,它还包括许多协议,组成了 TCP/IP 协议簇.
TCP/IP 通讯协议采用了 5 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求
网卡属于OSI的物理层与链路层,它工作在物理层和数据链路层的MAC子层。
物理层我们考虑的比较少,我们只考虑软件相关的内容.因此很多时候我们直接称为TCP/IP 四层模型
再识协议
为什么要有 TCP/IP 协议?
- 首先,即便是单机,你的计算机内部,其实都是存在协议的,比如:其他设备和内存通信,会有内存协议。其他设备和磁盘通信,会有磁盘相关的协议,比如:SATA,IDE,SCSI 等。只不过我们感知不到罢了。而且这些协议都在本地主机各自的硬件中,通信的成本、问题比较少。
- 其次,网络通信最大的特点就是主机之间变远了。任何通信特征的变化,一定会带来新的问题,有问题就得解决问题,所以需要新的协议咯。
所以,为什么要有 TCP/IP 协议?本质就是通信主机距离变远了
什么是 TCP/IP 协议?
- TCP/IP 协议的本质是一种解决方案
- TCP/IP 协议能分层,前提是因为问题们本身能分层
TCP/IP 协议与操作系统的关系 ( 宏观上,怎么实现的 )
所以究竟什么是协议?
网络传输基本流程
局域网(以太网为例)通信原理
认识 MAC 地址
而其中每层都有协议,所以当我进行进行上述传输流程的时候,要进行封装和解包
下面我们明确一下概念
- 报头部分,就是对应协议层的结构体字段,我们一般叫做报头
- 除了报头,剩下的叫做有效载荷
- 故,报文 = 报头 + 有效载荷
然后,我们在明确一下不同层的完整报文的叫法
数据在网络中发送的时候,一定最终要在硬件上跑