TCP/IP常考内容整理
OSI七层模型和TCP/IP四层模型
图片来源:计算机网络漫谈
TCP、UDP协议区别
TCP:
- TCP是面向连接的,可靠的,基于字节流的传输通信协议;
- 数据包都有序号,对方收到发送ACK确认,未收到ACK则重传;
- 使用校验和检验数据在传输过程中是否有误。
UDP:
- UDP是非连接的传输通信协议;
- 不维护连接状态;
- 尽最大努力交付,不保证可靠交付;
- 面向报文,只添加头部,无拆分/合并。
TCP三次握手与四次挥手
- TCP三次握手
- 建立连接时,客户端发送SYN包到服务器,并进入SYN_SENT状态,等待服务器确认;
- 服务器收到SYN包,并确认该SYN,同时自己发送一个SYN+ACK包,进入SYN_RECV状态;
- 客户端收到SYN+ACK包,向服务器发送确认包ACK,进入ESTABLISHED状态。
意义:
- 为了初始化Sequence Number的初始值;
为了防止已失效的连接请求报文突然传到了服务器端,进而产生错误。
TCP四次挥手
- Client发送FIN关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态;
- Server收到FIN,发送ACK给Client,Server进入CLOSE_WAIT状态。此后可以继续进行未完成的Server -> Client数据传输;
- Server发送一个FIN,用来关闭Server -> Client数据传送,进入LAST_ACK状态;
- Client收到FIN后,进入TIME_WAIT状态,接着发送ACK给Server,Server进入CLOSED状态,Clinet等待2MSL进入CLOSED状态。
意义:因为全双工,发送和接收都需要FIN报文和ACK报文结束连接。
图片来源:简述TCP三次握手和四次挥手流程
常用端口号
协议 | 端口 | 解释 | TCP/UDP |
---|---|---|---|
FTP | 21 | 文件传输服务 | TCP |
TELNET | 23 | 终端仿真服务 | TCP |
SMTP | 25 | 简单邮件传输服务 | TCP |
DNS | 53 | 域名解析服务 | UDP |
HTTP | 80 | 超文本传输服务 | TCP |
POP3 | 110 | 邮局协议版本3 | TCP |
HTTPS | 443 | 加密的超文本传输服务 | TCP |