- TCP(传输控制协议)
是面向连接的协议。在收发数据前,一个TCP连接必须要经过“三次握手”建立可靠的连接。握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP连接都将被一直保持下去。与“三次握手”类似,断开一个TCP连接则需要“四次挥手”。
TCP充分实现了数据传输时的各种控制功能,可以进行丢包的重发控制,还可以对次序乱掉的分包进行顺序控制。TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。
TCP的包头结构:
源端口 16位
目标端口 16位
序列号 32位
回应序号 32位
TCP头长度 4位
reserved 6位
控制代码 6位
窗口大小 16位
偏移量 16位
校验和 16位
选项 32位
这样可以得出TCP包头的最小长度为20字节。
- UDP(用户数据报协议)
(1) 是面向无连接的协议,传输数据之前,源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络中。
(2) 由于不建立连接,因此就不需要维护连接状态,因此一台服务机可同时向多个客户机传输相同的消息。
(3) UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节,信息包的额外开销很小。
(4) 吞吐量不受拥挤控制算法的调节。
(5) UDP使用尽最大努力交付,即不保证可靠交付。
(6) UDP是面向报文的。
UDP的包头结构:
源端口 16位
目的端口 16位
长度 16位
校验和 16位
- TCP与UDP之间的区别:
- TCP是面向连接的;而UDP是面向无连接的,即发送数据之前不需要建立连接。
- TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错、不丢失、不重复且按序到达;UDP尽最大努力交付,即不保证可靠交付。
- TCP面向字节流;而UDP是面向报文的。
- TCP首部开销20字节;而UDP首部开销小,只需8个字节,UDP的结构简单。
- 对系统资源的要求(TCP较多,而UDP较少)。
- TCP对应的协议
- FTP:文件传输协议,使用21端口;
- Telnet:用于远程登录的端口,使用23端口。用户可以以自己的身份远程连接到计算机上,可以提供基于DOS模式下的通信服务。
- SMTP:简单邮件传输协议,用于发送邮件,使用25端口。
- POP3:它是和SMTP对应,POP3用于接收邮件,使用110端口。
- HTTP:超文本传输协议,是从Web服务器传输文本到本地浏览器的传送协议,使用80端口。
- UDP对应的协议
- DNS:用于域名解析服务,将域名地址转换为IP地址,使用53号端口。
- SNMP:简单网络管理协议,用来管理网络设备,使用161号端口。
- TFTP:简单文件传输协议,使用69号端口。