Socket面试题整理
2020-04-26 12:02
141 查看
Socket是什么?
socket是应用层与传输层的一个抽象,将复杂的TCP/IP协议隐藏在Socket接口之后,只对应用层暴露简单的接口
socket是一种特殊的文件,它也有文件描述符,进程可以打开一个socket,并且像处理文件一样对它进行read()和write()操作,而不必关心数据是怎么在网络上传输的
socket是一个tcp连接的两端
Socket如何唯一标识一个进程?
socket基于tcp协议实现,网络层的ip地址唯一标识一台主机,而传输层的协议+端口号可以唯一标识绑定到这个端口的进程
通信双方如何进行端口绑定?
通常服务端启动时会绑定一个端口提供服务,而客户端在发起连接请求时会被随机分配一个端口号
Socket属于网络的哪一层?
Socket不算是一个协议,它是应用层与传输层间的一个抽象层。它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用,以实现进程在网络中通信
Socket是全双工的吗?
基于TCP协议,是全双工的
HTTP协议是全双工的吗?
HTTP 协议设计的初衷本身就是请求/响应模式,这是规范决定的。不过在技术上是可以利用下层的 TCP 来进行全双工通信的。
Socket与WebSocket的区别
Socket是应用层与传输层的一个抽象,将复杂的TCP/IP协议隐藏在Socket接口之后,只对用户暴露简单的接口
而WebScoket是应用层协议,它也是基于TCP实现,同时借助了HTTP协议建立连接
WebSocket连接过程:
- 服务端与客户端建立TCP连接(三次握手)、建立HTTP连接
- 客户端(浏览器)向服务端发送一个请求头包含
Upgrade: websocket Connection: Upgrade
的HTTP请求,申请升级到Websocket连接 - 服务端回应的响应头:
HTTP/1.1 101 Switching Protocals Connection: Upgrade Upgrade: websocket
同意升级协议,至此双方将基于WebSocket协议通信
参考资料
相关文章推荐
- java面试题收集整理(1)
- 全套BAT大厂面试题整理锦集
- 面试题、排序、socket总结
- 【IT笔试面试题整理】连续子数组的最大和
- 【IT笔试面试题整理】二叉搜索树转换为双向链表
- Android面试题整理
- 腾讯大牛Linux运维工程师12道面试题整理
- Oracle SQL 面试题(整理)
- Java基础面试题整理
- web前端面试题整理(HTML篇)
- 面试题整理
- TCP/IP 面试题整理
- Android面试题整理【转载】
- 2018年1月iOS招人心得(附面试题)- 答案整理
- 全新整理:微软、Google等公司的面试题及解答、第61-70题
- 常见面试题整理--计算机网络篇(转)
- 常见面试题整理--计算机网络篇(每位开发者必备)
- android面试题整理(2)
- 【Unity】面试题整理
- js面试题整理