七层模型
七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
网络模型 : 对数据进行封装
socket编程: 在传输层上,可以使用tcp/udp协议
两台计算机进行通信时,必须遵守以下原则:
- 必须是同一层次进行通信,比如,A 计算机的应用层和 B 计算机的传输层就不能通信,因为它们不在一个层次,数据的拆包会遇到问题。
- 每一层的功能都必须相同,也就是拥有完全相同的网络模型。如果网络模型都不同,那不就乱套了,谁都不认识谁。
- 数据只能逐层传输,不能跃层。每一层可以使用下层提供的服务,并向上层提供服务。
TCP/IP
传输层
协议(Protocol)就是网络通信过程中的约定或者合同,通信的双方必须都遵守才能正常收发数据。
IP
网络层
IP:网络协议地址
一台计算机可以拥有一个独立的 IP 地址,一个局域网也可以拥有一个独立的 IP 地址(对外就好像只有一台计算机)
MAC
数据链路层
mac地址:局域网地址
现实的情况是,一个局域网往往才能拥有一个独立的 IP;换句话说,IP 地址只能定位到一个局域网,
MAC 地址才是能真正标识一台计算机的协议
mac地址是全球唯一标示一块网卡的 出厂时就被固化进去了
PORT
传输层
端口号
有了 IP 地址和 MAC 地址,虽然可以找到目标计算机,但仍然不能进行通信。
一台计算机可以同时提供多种网络服务,例如 Web 服务(网站)、FTP 服务(文件传输服务)、SMTP 服务(邮箱服务)等,
仅有 IP 地址和 MAC 地址,计算机虽然可以正确接收到数据包,但是却不知道要将数据包交给哪个网络程序来处理,所以通信失败。
为了区分不同的网络程序,计算机会为每个网络程序分配一个独一无二的端口号