网络协议FTP、TCP

网络协议FTP、TCP

(仅作为个人笔记,如有雷同,请联系删除。。)

1、FTP:文件传输协议。

  由两个部分组成:FTP服务器 + FTP客户端

  FTP服务器用来存储文件,用户可以在FTP客户端通过FTP协议访问位于服务器上的资源。

  使用端口:默认使用tcp端口中的20、21端口。
    20端口:用于传输数据
    21端口:用于传输控制信息

  
  

2、TCP协议:

  TCP报文:TCP首部 + 数据部分

网络协议FTP、TCP_第1张图片

TCP首部:默认长度20字节,加上选项部分,最长可达60字节

  源端口:16 bit
  
  目的端口:16 bit

  序号:32 bit

  确认号:32 bit

  数据偏移:4 bit

  保留字段:6 bit

  控制位:6 bit

  窗口字段:16 bit

  校验和:16 bit

  紧急指针:16 bit

  选项:长度可变,最长40字节


TCP的三次握手
            A       B
 1、SYN=1,ACK=0:   ----------------->
 2、SYN=1,ACK=1:   <----------------
 3、SYN=0,ACK=1:   ----------------->

网络协议FTP、TCP_第2张图片

TCP的四次挥手
           A      B

 1、FIN=1,ACK=0: -------------->

 2、ACK=1 :     <---------------

 3、FIN=1 :     <---------------

 4、ACK=1 :     ---------------->

网络协议FTP、TCP_第3张图片

为什么连接的时候是三次握手,关闭的时候却是四次握手?—— 全双工通信

————:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

你可能感兴趣的:(网络,网络)