TCP、UDP通信模式简介
基调
永远相信TCP数据传输的保障性,不然网络就如无根之水,错误将处处存在.以下论调都基于该信仰.
假设TCP存在错误传输数据可能,那没有人有胆量去下载一个1G的文件,因为下载该文件存在太多的TCP.
基于应用层保障的论调:应用层如果能保障的事情,必然会有一个基本的协议来完成这个事情,以减少开发者的工作量。
如有异议,请沟通和指证.希望保持认知的一致性.
引言
    注:这里讲的TCP是特指基于TCP的套接字(Socket)模式。
   
    两个协议都是基于IP协议,都在IP包外层附加了外壳数据。IP包的最大大小由网络路由媒介决定。但是实际传输时的大小,可以动态调整,会依据网络的拥堵度动态调整当前打包的IP包的大小。
MTUMax Translate Unit),最大传输单元。
以下是不同的路由媒介所能支持的默认最大MTU,含协议包头信息。
  Network Media          MTU(Bytes)
  16 Mbit/Sec Token Ring    17914
  4 Mbits/Sec Token Ring    4464
  FDDI                    4352
  Ethernet                  1500  Internet网络应用该媒介
  IEEE 802.3/802.2          1492
  X.25                    576  GPRS网络应用该媒介
如果发送了超越网络当中经过媒介的MTU,可能出现两种情况,分包或者抛弃(发送失败)。TCP包头中有一位描述是否允许包再分段的标识。
Socket层进行数据发送时,底层会自动决定每包的最大大小,如果传输在同一个网络中,绝对不会发生包再分段的情况。
当需要通信的两端进行握手时,会互相告知对方本方能支持的最大MTU,双方都将采用两者之间偏小的那个MTU。如从网关发送数据给终端,终端连接上网关时,握手过程中会交换各自能支持的最大MTU。从而避免了从网关发送数据到终端会有过大IP包的情况。
不管上述是何种过程,对于TCP交互,无需关注,只需要以流的概念去理解。而对于UDP交互,则可能需要考虑包过大而被再分段的情况。所以,在发送UDP包时,需要避免不要使用过大的UDP包数据,如果过大,则包被分段的概率高,并且丢失的概率也将高。
tcp ip协议下载安装两种协议的区别
序号
描述
TCP
UDP
1
有无连接状态
2
应用层使用是否需要考虑包的大小及发送情况
无需
需要
3
是否需要开启端口进行数据发送或接收
需要
需要
4
IP包大小的决定者
Socket
应用层
数据组拆包及流转

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。