用socket编程时,没有指定应用层协议就可以直接把client socket的数据发出去到server socket,socket编程不需要使用应用层协议吗?为啥用到了传输层协议(默认好像是TCP)却不用应用层协议?
2 回答
慕少森
TA贡献2019条经验 获得超9个赞
举个例子:
Http是应用层协议,TCP是网络层协议,应用层在TCP/IP四层架构中位于TCP的上一层
TCP连接在实现时要借助Socket(套接字 IP+端口号)
Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP 网络上的应用程序
HTTP连接需要指明资源的URL,发出请求的应用不知道服务器的IP,虽然域名服务器也是要把域名解析成IP地址,但不属于应用所关心的范畴,是网络层应该完成的工作。所以Http连接属于无状态的短连接,若再请求其他数据,需要再重新建立连接。客户端向服务器发送请求后,服务器才知道客户端的存在。
TCP连接实现时需要指明IP地址和端口号,就可以跟目的主机通过三次握手建立联系,该连接一直保持直到某一方提出取消连接,通过四次握手关闭连接。Socket支持TCP/UDP协议,如果使用TCP协议,那么socket连接就是TCP连接。
慕运维8079593
TA贡献1876条经验 获得超5个赞
tcp协议是4层协议,所有应用层协议都是基于tcp协议基础之上封装的协议。socket连接是tcp层连接。如果有实现特殊的需要,如实现web页面访问,使用http的7层协议实现。
添加回答
举报
0/150
提交
取消