网络七层模型
- 应用层 (应用层,表示层,会话层)
- 封装数据:
- 根据不同的协议,封装不同格式的数据
- http (超文本传输协议)
- HTTPS (加密传输的超文本传输协议)
- FTP (文件传输协议)
- SMTP (调子邮件传输协议)
- 封装数据:
- 传输层:
- 封装端口:
- 指定传输协议(TCP协议/UDP协议)
- 网络层:
- 封装ip:
- ipv4版本 / ipv6
- 数据链路层:
- 封装mac地址:
- 指定mac地址(arp协议[ip->mac] / rarp协议[mac->ip])
- 物理层:
- 打成数据包,变成二进制的字节流,通过网络进行传输
交换机和路由器
- 交换机: 从下到上拆2层,拆到数据链路层
- 路由器: 从下到上拆3层,拆到网络层(得到对应的网段)
网络传输流程
- arp : ip -> mac
tcp和udp
-
tcp
- TCP(Transmission Control Protocol)一种面向连接的、可靠的、传输层通信协议(比如:打电话)
- 优点:可靠,稳定,传输完整稳定,不限制数据大小
- 缺点:慢,效率低,占用系统资源高,一发一收都需要对方确认
- 应用:Web浏览器,电子邮件,文件传输,大量数据传输的场景
-
udp
- UDP(User Datagram Protocol)一种无连接的,不可靠的传输层通信协议(比如:发短信)
- 优点:速度快,可以多人同时聊天,耗费资源少,不需要建立连接
- 缺点:不稳定,不能保证每次数据都能接收到
- 应用:IP电话,实时视频会议,聊天软件,少量数据传输的场景
-
三次握手:
-
四次挥手:
- MSL为最大报文段生存时间
- 默认规定MSL为2分钟,但实际应用中常用的是30秒,1分钟和2分钟等。
socket
- tcp
- udp
- socketserver: 都是基于socket封装的