所有的通信方式都需要有规可循,有规可依,例如,串口通信之间确实方便,但是,发送方和解析方必须互相知道dui对方的解析方式,否则就会出现发了xi信息,但是却没有办法解析的问题。同样的,在网络通信方面,无论是不同的设备还是不同的应用之间,相互通信,也要遵循通信协议。
OSI参考模型分七层: TCP/IP协议分四层
应用层 | 应用层
表示层 | (HTTP\FTP\SMTP)
会话层 |
传输层 |传输层(TCP\UDP)
网络层 |网络层(IP \ARP)
数据链路层 |网络接口层
物理层 |
网络模型究竟是干什么呢?简而言之就是进行数据封装的。
我们所说的 socket 编程,是站在传输层的基础上,所以可以使用 TCP/UDP 协议,但是不能干「访问网页」这样的事情,因为访问网页所需要的 http 协议位于应用层。
两台计算机进行通信时,必须遵守以下原则:
- 必须是同一层次进行通信,
- 每一层的功能都必须相同,也就是拥有完全相同的网络模型。
- 数据只能逐层传输,不能跃层。
- 每一层可以使用下层提供的服务,并向上层提供服务。