socket层的一些疑问
2020-04-24 本文已影响0人
小咕咕coco
背景知识:
- 互联网协议:链路(加mac地址)、IP(加ip地址)、TCP/UDP(加端口)、应用层协议(各自的结构
- TCP:加了确认机制(可靠传输)的UDP
- socket:简单说:封装实现了TCP机制的API
socket是什么:
- 应用层和传输层之间的一个抽象层
- 把TCP/IP实现为接口,供应用层调用
- 文件哲学:
起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。 - 更详细的工作原理和使用方法:https://www.jianshu.com/p/01b9a454de5a
一定要用吗/所有实现都在用吗
- 大部分都是:jsp底层就是:
jsp在是这么传输数据的:先转换成servlet(jsp所转化的servlet是HttpServlet,是对http协议的封装),再编译为.class字节码,servlet底层是socket - 如果不用:自己实现TCP机制/自己弄协议代替TCP并实现该协议:即“自己组装IP数据包 直接写网卡”
WebSocket:
是一个新的协议,补充HTPP的功能(持久连接、服务器主动向客户端推送信息等
参考链接:
https://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html
https://blog.csdn.net/Special23/article/details/54140508
https://www.zhihu.com/question/49054567/answer/135784448