网络协议五层模型
物理层
两个网络设备间实现比特流的透明传输,传输010101二进制的电信号。
数据链路层
把物理层的电信号分组,每一组叫一个数据报/数据帧,每一数据帧分成:报头head和数据data两部分
即每一个数据报都是由报头和数据两部分组成。
报头:固定18个字节,6:发送者地址/6:接收者地址/6:数据类型
mac地址:发送端和接收端的地址便是指网卡的地址,即Mac地址
广播:计算机底层,只要在一个局域网,都是靠广播的方式,但是只在一个局域网内通信 ,会出现广播风暴。
网络层
引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址
IP:ipv4: 32位2进制表示:点分十进制表示:从0.0.0.0 到 255.255.255.255,范围是有限的,不能表示出所有的网络设备,于是出现了ipv6
子网掩码:通过子网掩码和ip判断两个ip是否处于同一个网段,通过ip地址和子网掩码做按位与运算
-
172.16.10.1:10101100.00010000.00001010.000000001
- 255.255.255.0:11111111.11111111.11111111.00000000
- AND运算得网络地址结果:10101100.00010000.00001010.000000000->172.16.10.0
-
172.16.10.2:10101100.00010000.00001010.000000010
-
255.255.255.0:11111111.11111111.11111111.00000000
-
AND运算得网络地址结果:10101100.00010000.00001010.000000000->172.16.10.0
结果都是172.16.10.0,因此它们在同一个子网络。
-
IP和MAC有转换关系:主机172.16.10.10/24访问172.16.10.11/24
ARP协议:广播的方式发送数据包,获取目标主机的mac地址
mac地址学习:mac地址和ip地址的映射表
第一次接受到就会在ip/mac映射表中增加一条数据
任何一种协议都有头和内容
传输层
传输层功能:建立端口到端口的通信
运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。
TCP协议:
- TCP 是面向连接的运输层协议。
- 每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一)。
- TCP 提供可靠交付的服务。
- TCP 提供全双工通信。
- 面向字节流。
TCP三次握手和四次挥手
UDP协议:
特点:
-
UDP 是无连接的,即发送数据之前不需要建立连接。
-
UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
-
UDP 是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。
-
UDP 支持一对一、一对多、多对一和多对多的交互通信。
-
UDP 的首部开销小,只有 8 个字节。
端口:
我们通过IP和Mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。
应用层
应用层功能:规定应用程序的数据格式。
例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。
上网流程分析:
1.在浏览器输入www.baidu.com
2.会取dns服务器通过域名解析成ip地址
3.向ip+端口号这个地址发送请求,就会访问到百度的服务器
socket:在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信