物理层
通过电缆、无线等方式将计算机连接起来,负责传输0,1信号
链路层
确定0,1信号的传输方式,以太网协议为主,规定链路层传输的数据结构为帧(标头+数据),发送方须知对方MAC地址
帧结构
6字节 | 6字节 | 2字节 | 46~1500 | 4字节 |
---|---|---|---|---|
源MAC | 目标MAC | 类型:IP\APR | DATA | 帧校验 |
MAC地址
表示网卡的地址,每个网卡都有唯一的MAC地址用来定位数据的发送和接受方。总长48bit,使用12位16进制表示,FF-FF-FF-FF-FF-FF,前6位表示厂商编码,后6位为流水号
ARP协议
通过IP地址确定目标MAC地址,原理是通过将目标MAC地址设置为FF:FF:FF:FF:FF:FF,在子网中广播,接收的主机从协议中取出IP地址与自己的IP比较,相同则回复自己的MAC地址。
广播
在同一子网中通过广播的方式传输帧,子网中所有机器将帧中的目标MAC与自己的MAC地址比较,相同则处理。
网络层
MAC地址已经能够唯一确定主机了,为什么还需要网络层呢?由于链路层传输数据的方式为广播,仅适用于同一子网中,所以我们需要通过一种方式来确定主机是否在同一子网中,此时出现了IP地址。通过IP地址和子网掩码来确定主机是否在同一子网中。发送方须知对方MAC地址+IP地址
IP4协议
服务类型:吞吐、时延、可靠
NF:表示是否偏移
MF:表示是否还存在偏移帧
偏移:以8字节为基本单位
特点
- 无连接:每个数据报独立处理
- 不可靠:尽力而为,不保证数据一定传输到位
ICMP协议
Internet控制报文协议,传递网络通不通、主机是否可达、路由是否可用等网络本身的消息。ping和 tracert 都利用 ICMP 协议来实现网络功能
传输层
网络层可以实现不同主机之间互联,但对于具体是主机中哪个应用发送的数据,是不知道的,这里就引入了传输层,增加端口来表示主机中的具体应用。发送方须知对方MAC地址+IP地址+端口
端口
范围0~65535,其中0~1023操作系统使用
udp协议
不可靠(尽可能交付但不保证一定交付),无连接(不用进行握手)
tcp协议
可靠,面向字节流,提供有序无差错的数据传输
标志
- URG:紧急指针有效
- ACK:确认序号有效
- PSH:尽快交付给引用层
- RST:重置连接
- SYN:同步发起连接
- FIN:释放连接
3次握手及4次挥手
握手
挥手
应用层
基于TCP
HTTP协议
HyperText Transfer Protocol 超文本传输协议,是一个简单的请求-响应协议。
HTTP/0.9
GET /index.html
只能返回HTML类型
HTTP/1.0
在0.9的基础上增加了POST和HEAD请求方法
请求
GET /index.html HTTP/1.0
Accept: /
响应
HTTP/1.0 200 OK
Content-Type: text/plain
<html> <p> test</p> </html>
HTTP/1.1
1.引入持久连接,Connection:keep-alive
2.引入管道机制,在同一个TCP连接,允许浏览器发送多个
请求
3.引入Content-length,表明响应体长度,用以界定请求的结束
4.分块传输,Transfer-Encoding: chunked
5.增加头部OPTIONS、PUT等,增加host请求头
请求行+请求头+空行+请求体
状态行+响应头+空行+响应体
HTTP/2
1.二进制协议
2.多工
3.数据流
4.头信息压缩
5.服务器推送
MIME
Multipurpose Internet Mail Extensions,多用途互联网邮件扩展,对传统邮件类型拓展,不再仅限于传输ASCII字符。
MIME-Version: 1.0
Content-Type: text/plain; charset=“ISO-8859-1” 表明内容编码及类型(主/次)
基于UDP
DHCP协议
Dynamic Host Configuration Protocol,动态主机配置协议,为主机分配IP地址。在同一子网中存在一台主机为其他机器分配IP地址。ipv4 67服务器,68客户端;ipv6 udp 546、udp 547
动态获取IP地址过程:发出方目前仅知道自己的MAC地址,发出MAC地址+对方MAC地址:FF-FF-FF-FF-FF-FF,原IP 0.0.0.0和对方IP255.255.255.255,广播发送,由于MAC地址为FF-FF··所以主机会查看IP地址,DHCP服务器会接受该信息,然后发送DHCP服务器的MAC地址+发送方的MAC地址,原IP 分配给发送方的IP地址和对方IP255.255.255.255。
DNS协议
Domain Name System,域名系统,将域名解析为IP地址。根域名->顶级域名->次域名
解析过程
- 本地hosts文件
- 本地DNS解析器缓存
- TCP/IP参数中设置的首选DNS服务器
- 根DNS服务器
- 顶级域名服务器
- 次级域名服务器