我看孙鑫的教程时,网络编程中讲到TCP/IP模型,一共分四层,每一层都有每一层的协议,但是当讲到具体网络编程时,他说“基于TCP(面向连接)的socket编程,基于UDP(无连接)的socket编程”,为什么具体到编程的时候  ,要说TCP,UDP?
是不是因为网络程序都是进行数据传输的,而数据传输层就这两个协议,也就是说网络程序就分成基于TCP和UDP的两种我这样理解对吗?

解决方案 »

  1.   

    你的理解基本上是正确的
    一般的应用层协议都是基于TCP或者UDP之上的,TCP是可靠的,面向连接的协议,UDP则是不可靠的,非连接的传输层协议,因此他说“基于TCP(面向连接)的socket编程,基于UDP(无连接)的socket编程”
    当然也有的应用层协议既可以使用TCP传输,也可以通过UDP传输。
      

  2.   

    我们在逻辑层能控制的就是面向连接(TCP),和面向非连接(UDP)
    其他的如IP报头之类都是传输通信的时候自动加上的
      

  3.   

    基于TCP和UDP的传输方式不一样,使用的命令也不同。