当前位置: 技术问答>linux和unix
socket 和 协议 的关系
来源: 互联网 发布时间:2017-05-15
本文导语: 我是初学者 一直搞不清楚这俩的关系 看到网上一篇文章说socket是介于传输层和应用层之间、把很多东西都封装成接口函数的一个“包” 这样在进行网络方面的编程的时候,程序员就能把注意力只集中在程序的实现...
我是初学者
一直搞不清楚这俩的关系
看到网上一篇文章说socket是介于传输层和应用层之间、把很多东西都封装成接口函数的一个“包” 这样在进行网络方面的编程的时候,程序员就能把注意力只集中在程序的实现上而不需要过多地去考虑那些协议了
对此,我有两个问题:
1)传输层的协议不光只有tcp和udp 还有其他协议 socket是只是实现了tcp和udp吗?其他的协议没有实现?
2)socket是否也固定了应用层的协议?或者说,socket能不能规定我现在传输的数据要用应用层的哪个协议去传输?
一直搞不清楚这俩的关系
看到网上一篇文章说socket是介于传输层和应用层之间、把很多东西都封装成接口函数的一个“包” 这样在进行网络方面的编程的时候,程序员就能把注意力只集中在程序的实现上而不需要过多地去考虑那些协议了
对此,我有两个问题:
1)传输层的协议不光只有tcp和udp 还有其他协议 socket是只是实现了tcp和udp吗?其他的协议没有实现?
2)socket是否也固定了应用层的协议?或者说,socket能不能规定我现在传输的数据要用应用层的哪个协议去传输?
|
1)socket编程也可以用其它的协议啊,甚至裸协议都可以。
2)socket没有应用层的协议
你可以这样想象,socket就是一个封装,让网络编程从底层协议里解脱出来。
2)socket没有应用层的协议
你可以这样想象,socket就是一个封装,让网络编程从底层协议里解脱出来。
|
建议看《tcp/ip详解》卷一、《UNIX网络编程》第1卷
|
socket就是一个TCP/IP协议栈对外的一个接口