TCP协议
每个tcp连接的端点是有一个ip地址和一个端口号唯一标识的。TCP是一个可靠的协议,除非整个网络出现问题,数据将被完好远洋正确的传送到另一个端点。这个可靠性是通过一下几个规则实现的:
(1)
为了防止数据在传输的过程中被损坏,每个信息包上都有一个校验码。这个校验码就是一个用来保证信息包在传输过程中没有被更改的代码。当信息包到达目的地的时候,接受方会对比校验码和接收到的数据。如果校验码不对,该信息包被省略
(2)
为了防止信息包丢失,TCP会要求接收方没收到一个信息包就反馈一下。若果接受方没有提供反馈,发送方会自动重新发送一次。TCP会一直尝试发送信息报,直到接受方收到信息为止或者它会判断出网络连接断了,返回给程序一个错误提示
(3)
为了防止信息包重复或者顺序错误,TCP每传送一个信息包都会发送一个序号。接受方会检查这个序号,并把信息包按顺序排列。若果收到一个已经检查过的序号,该信息包会被丢弃
路由
在Intenet上负责接受信息包并决定如何把它们传送到目的地的设备叫路由器。
UDP协议
它被用来从一个从一个系统向其他系统传送非常短的消息。它既不能保证一定接受到数据,也不能保证数据只接收一次,还不能保证接收到的数据顺序和发送时候的一样,它只能保证接收到的数据是完整的
TCP/UDP协议选择规则:
TCP:
- 需要一个可靠地数据传输,以确保数据完整无缺的到达目的地
- 协议需要不止一个请求和服务器的回答
- 发送较多的数据
- 初始连接出现短暂的延迟是可以容忍的
UDP:
- 不太关心数据包是否到达或者是否完整,按顺序到达
- 协议只包含基本的请求和回答
- 需要尽快建立网络回话
- 只传送很少一部分数据