疑惑:
- 在学习计算机网络时出现在我们眼前的是大量的协议,这些协议可以理解为一组规则,规定双方的通信需要满足哪些要求、根据要求填写相应的信息。
- 但是这些协议都存在在哪里?这是一直困惑我的?程序里?之前写过一些应用程序,也没有涉及到协议的部分,百思不得其解,直到遇到了socket。
结论:
- 先说结论,链路层、网络层、传输层中的这些协议都存放在内核里,内核是操作系统的核心,掌管着计算机的资源。socket就是套接字,应用程序可以通过socket使用这些协议,socket是实现系统调用的API。
- socket的功能主要有两点,一是将应用程序数据在用户缓存区和TCP/UDP内核发送缓冲区相互复制。二是应用程序可以通过socket修改内核中各层协议的头部信息或者其他数据结构,从而更加精细的控制底层的通信。
QA:
- 协议在电脑哪里?
在内核里,也就是在操作系统里。 - 协议的存在形式?
是代码描述的。 - socket与TCP/IP协议族的关系?
socket是应用程序使用TCP/IP协议族的API,是接口。