TCP/IP

TCP/IP常考内容整理

OSI七层模型和TCP/IP四层模型

OSI七层模型

图片来源:计算机网络漫谈

TCP、UDP协议区别

TCP:

  • TCP是面向连接的,可靠的,基于字节流的传输通信协议;
  • 数据包都有序号,对方收到发送ACK确认,未收到ACK则重传;
  • 使用校验和检验数据在传输过程中是否有误。

UDP:

  • UDP是非连接的传输通信协议;
  • 不维护连接状态;
  • 尽最大努力交付,不保证可靠交付;
  • 面向报文,只添加头部,无拆分/合并。

TCP三次握手与四次挥手

  • TCP三次握手

三次握手

  1. 建立连接时,客户端发送SYN包到服务器,并进入SYN_SENT状态,等待服务器确认;
  2. 服务器收到SYN包,并确认该SYN,同时自己发送一个SYN+ACK包,进入SYN_RECV状态;
  3. 客户端收到SYN+ACK包,向服务器发送确认包ACK,进入ESTABLISHED状态。

意义:

  • 为了初始化Sequence Number的初始值;
  • 为了防止已失效的连接请求报文突然传到了服务器端,进而产生错误。

  • TCP四次挥手

TCP四次挥手

  1. Client发送FIN关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态;
  2. Server收到FIN,发送ACK给Client,Server进入CLOSE_WAIT状态。此后可以继续进行未完成的Server -> Client数据传输;
  3. Server发送一个FIN,用来关闭Server -> Client数据传送,进入LAST_ACK状态;
  4. 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
Ty.Wings wechat
欢迎您订阅我的公众号,并在GitHub上为我Star!