3. 传输控制协议(TCP)
3.1 TCP协议的主要特点
(1)TCP是面向连接的传输层协议。即使用TCP协议之前必须先建立TCP连接。在传送数据完毕之后,必须释放己经建立的TCP连接。
(2)每一条TCP连接只能有两个端点,即只能是一对一的。
(3)TCP提供可靠交付服务,也就是说通过TCP连接传送的数据,无差错、不丢失、不重复且按序发送。
(4)TCP提供全双工通信。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。这就允许通信双方在任何时候都可以发送数据。
(5)面向字节流
①TCP中的“流”是指流入到进程或从进程流出的字节序列。“面向字节流”的含义是:是指TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。它并不知道所传送的字节流的含义(如是一个整型或自定义的结构体),其含义由应用层的接收双方自行协商的,但到了传输层其意义就不存在了。
②UDP发送的报文长度是应用程序给了的。但与UDP不同,如果应用程传送到TCP缓存的数据块太长,TCP就会把它划分得短一些再传送。如果应用程序一次只发一个字节,TCP会等待积累到足够多字节后再构成报文发送出去。一个TCP报文段的大小,只是根据对方给出的窗口值和当前网络的拥塞程度来决定的。
3.2 TCP报文的首部格式
(1)抓包分析TCP