概述
7层协议 | 5层协议 | TCP/IP 体系结构 |
作用 | 协议 |
---|---|---|---|---|
应用层 | 应用层 | 应用层 | 为特定应用程序提供数据传输服务 | HTTP(超文本传输协议) DHCP(动态主机配置协议) DNS、FTP、电子邮件协议 |
表示层 | 负责数据格式的转换 (加密数据、压缩解压) |
|||
会话层 | 建立及管理会话 (服务器验证用户登录) |
|||
传输层 | 传输层 | 传输层 | 为进程提供数据传输服务 | TCP、UDP (MAC地址+IP地址+端口号) |
网络层 | 网络层 | 网际层 | 为主机提供数据传输服务 | IP协议 (MAC地址+IP地址) |
数据链路层 | 数据链路层 | 网络接口层 | 同一链路的主机提供数据传输服务 封装成帧 |
以太网 |
物理层 | 物理层 |
传输层
TCP和UDP的区别?
- TCP是面向连接、一对一的、传输速度慢、的可靠传输、有流量控制,拥塞控制,面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),
- UDP无连接、一对一,一对多,多对一,多对多都可以的、传播速度快的 、尽可能正确交付。面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部)
应用场景:TCP用于可靠传输(例如:文件传输)和UDP用于实时应用(例如:视频、电话、直播等)。
详细说明TCP三次握手机制

首先1服务端一直处于监听(listen)状态。
- 客户端主动发送请求,向服务端发送同步报文和随机初始序列号,并进入send状态,等待服务器确认
- 服务器收到请求报文,若同意连接,就发送同步确认报文和随机序列号,并进入recv。
- 客服端收到确认报文和随机序列号后,向服务端发送确认号和序列号
-
为什么TCP一定是3次握手?非2次
防止过期的连接请求报文突然又传送到服务器,因而产生错误和浪费资源。
- 因为双方都进入”ESTABLISHED”状态便不会接收任何内容,若此时某些断开的确认报文正在发送,就没有可以接收的客户端了,因而使得服务器资源造成浪费。
- 三次握手才能让双方都确认自己和对方的发送和接收能力都正常。
- 第一次:客户端发送内容,服务端接收内容
- 服务端确定自己接收能力和客服端发送能力正常。
- 第二次:服务端发送内容,客户端接收内容
- 客服端确认自己的发送能力(ACK确认报文)和接收能力正常。
- 第三次:客户端发送内容,由服务端接收
- 服务端确认自己的发送能力和接收能力正常。
- 告知对方自己的初始序列号值,并确认收到对方的初始序列号值。