网络TCP/UDP

1.计算机网络七层模型

网络TCP/UDP
网络TCP/UDP

2.四层模型

网络TCP/UDP
主要使用的协议:

  • 应用层: HTTP、DNS、SMTP、FTP、Telent
  • 传输层: TCP/UDP
  • 网络层: IP
  • 数据链路层:ARP、

3.TCP协议

TCP全称为 “传输控制协议(Transmission Control Protocol”),是面向字节流的,有链接的,可靠的传输协议。
1.三次握手四次挥手
网络TCP/UDP
TCP三次握手:

  • 第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;
  • 第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包;
  • 第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

简单来说三次握手的过程就是

  • 我要和你建立连接,你真的要和我建立连接么,我真的要和你建立连接,成功。

TCP四次挥手:

  • 1 关闭客户端到服务器的连接:首先客户端A发送一个FIN,用来关闭客户到服务器的数据传送,然后等待服务器的确认。其中终止标志位FIN=1,***seq=u
  • 2 服务器收到这个FIN,它发回一个ACK,确认号ack为收到的序号加1。
  • 3 关闭服务器到客户端的连接:也是发送一个FIN给客户端。
  • 4 客户段收到FIN后,并发回一个ACK报文确认,并将确认序号seq设置为收到序号加1。
    首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
    简单来说四次挥手就是:
  • A:我要和你断开连接。
  • B:好的,断吧我知道了。
  • B:我也要和你断开连接。
  • A:好的,断吧。

tcp协议保证可靠传输的机制

  • 确认应答(ACK)机制: ***+确认序号
    网络TCP/UDP
  • 超时重传机制:TCP内部实行,以单方向数据传输最大时间*2最为超时时间
  • 连接管理机制
  • 流量控制机制
  • 拥塞控制机制
    tcp保证传输效率的机制
  • 滑动窗口协议
  • 快速重传协议
  • 延迟应答
  • 捎带应答

4.UDP协议

UDP 全称是“用户数据报协议(User Datagram Protocol)”, 是面向数据报的,无连接的,不可靠的一种传输协议。

5.TCP和UDP对比

TCP UDP
面向字节流 面向数据报
可靠 不可靠
有连接 无连接

应用场景对比:

  • TCP用于可靠传输的情况, 应用于文件传输, 重要状态更新等场景;
  • UDP用于对高速传输和实时性要求较高的通信领域, 例如, 早期的QQ, 视频传输等. 另外UDP可以用于广播;

6.Http协议

HTTP是一个无状态的协议。无状态是指客户机(Web浏览器)和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息.HTTP遵循请求(Request)/应答(Response)模型。客户机(浏览器)向服务器发送请求,服务器处理请求并返回适当的应答。所有HTTP连接都被构造成一套请求和应答。