1.TCP和UDP是传输层两个重要的协议。
TCP提供面向连接、可靠的字节流服务。使用TCP协议的两端必须先建立连接,才能开始数据的读写,双方必须都为连接分配必要的数据结构。TCP有发送缓冲区和接收缓冲区,TCP模块发出的数据报的个数和应用程序执行的写操作次数之间没有固定的关系。TCP的连接是全双工的。
UDP提供面向无连接,不可靠的数据报服务。发送端每执行一次写操作,UDP模块就将其封装成UDP数据报并发送,接收端必须及时接收,否则就会丢包。
2.TCP的可靠传输体现的几个方面
(1)发送应答机制。发送端发送的每个TCP报文段都必须接到接收方的应答。
(2)超时重传机制。发送端在发送一个TCP报文后,立即启动一个定时器,如果在定时器时间内没有收到应答报文,则重传该TCP报文。
(3)对TCP报文进行重排、整理。因为TCP报文最终是被以IP数据报传输的,IP数据报是乱序、重复的,TCP会对IP数据报进行排序整理,再交给应用层。
3.TCP报文的报头
(1)16位端口号:进行TCP通信时,客户端的端口号通常是系统自己选择的临时端口号,服务器使用知名端口号。