DNS与hosts

58.DNS与TCP - 图1

三次握手

58.DNS与TCP - 图2

  • SYN是synchronize(同步)的缩写,这里的同步不是同步异步中的同步,而是同步信息中的同步
  • x,y一般从0开始,在这里就是个编号
  • ACK是acknowledge(获悉)的缩写
  1. SYN( x ) 请求同步(100)
  2. ACK( x+1 ) SYN( y ) 知道了(101) 请求同步(900)
  3. ACK( y+1 ) 知道了(901)

接下来就是正式开始发送HTTP的内容

为什么需要第三次?

为了防止一些错误的情况
比如第二次B发送同步请求,如果A不在第三次回应并挂断,B无法得知是否跟A建立了连接
这样做也是为了确保客户端(A端)能接收到服务端(B端)的数据

四次挥手

那么关闭TCP连接的时候该怎么做

58.DNS与TCP - 图3

  • FIN代表finish(完成)
  • 关闭的时候,x,y一般不为0
  • 也可以是B先发FIN,不一定是A先发FIN
  1. FIN( x )
  2. ACK( x+1 )
  3. FIN( y )
  4. ACK( y+1 )

TCP完整过程

三次握手与四次挥手组成了TCP连接的整个过程

TCP 和 UDP 的区别是什么?

1、基于连接与无连接;
2、对系统资源的要求(TCP较多,UDP少);
3、UDP程序结构较简单;
4、流模式与数据报模式 ;
5、TCP保证数据正确性,UDP可能丢包;
6、TCP保证数据顺序,UDP不保证。

  • TCP面向连接有状态,UDP无状态
  • TCP可靠,UDP不可靠
  • TCP传输效率较低,UDP较高