Python Web学习笔记之TCP、UDP、ICMP、IGMP的解释和区别
TCP与UDP解释
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
TCP与UDP的区别:
1、基于连接与无连接
2、对系统资源的要求(TCP较多,UDP少)
3、UDP程序结构较简单
4、流模式与数据报模式
5、TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证
ICMP(Internet 控制消息协议,Internet Control Message Protocol)协议用来给IP协议提供控制服务,允许路由器或目标主机给数据的发送方提供反馈信息。需要发送反馈信息的情况包括:数据包不能被发送到 目标主机,路由器缓冲区溢出导致数据包被删除,路由器想要把流量重定向到另外一个更短的路由上等。ICMP协议是IP协议的一部分,任何实现了IP协议的 设备同时也被要求实现ICMP协议。
IGMP(互联网组管理协议)是一种互联网协议,提供这样一种方法, 使得互联网上的主机向临近路由器报告它的广播组成员。 广播使得互联网上的一个主机向网上确认对于源主机发送内容感兴趣的计算机发送信息。
IGMP(Internet
Group Message
Protocol):Internet组管理协议,提供internet网际多点传送的功能,即将一个ip包拷贝给多个host,windows系列采用
了这个协议,因为此项技术尚不成熟,因此被一些人用来攻击windows系统,尤其是对win98,因为对win95有oob攻击.
用户数据报协议(UDP)是 ISO 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 UDP 协议基本上是 IP 协议与上层协议的接口。 UDP 协议适用端口分辨运行在同一台设备上的多个应用程序
参考:http://blog.51cto.com/misujun/850439