一、简述的计网基础只是不涉及具体协议内容
1.讲一下TCP/IP网络模型
2.每一层有什么协议、职责
3.IP和路由跟ARP熟悉吗
4.Mac地址熟悉吗,mac可以脱离IP直接发送消息吗,mac和ip怎么配合保证数据发送的
4.TCP四层模型每一层封装的格式
5.输入一个网址到网页显示,期间发生了什么,描述一下过程
HTTP:首先的首先输入一个url,表示我想要请求的资源,资源由服务器域名+文件名构成,此时可以生成HTTP请求。
DNS:发送请求需要由对方的ip地址,域名是不能当IP用的,还需要经过DNS服务器的解析Domain Name System
解析路线:
1.浏览器缓存-操作系统缓存-hosts缓存-本地DNS服务器
2.都没有,那么就从根DNS服务器再逐层向下,每次指明一个询问的方向,根DNS服务器-顶级域NDS服务器-权威DNS服务器
协议栈:协议栈的设计贯穿了从应用程序到硬件网口。但是使用上是以传输层为分界点,传输层向上为应用层提供调用的接口,应用层不用关系传输层的实现(只需要通过调用socket套接字描述符进行操作)
传输层向下,也就是从网络层到网络接口(物理链路)都是内核管理的。
协议栈对数据进行层层包装实现传输。在传输层加上TCP头保障可靠传输,在网络层添加IP头保证路由转发,在网口层再添加MAC头保证发送给正确的对象(说的是路由)。进入以太网后就重复查路由表和更新MAC地址的操作,直到到达目标服务器,再逐层去掉添加的各自头,最后一层tcp头里有端口号,把数据发给正确的端口号,解析数据,进行渲染。
要请求一个数据,通常第一次请求的是一个html页面,要正确渲染还需要加载js文件,资源文件,css文件,浏览器会发起多个并发的请求将这些文件都获取到,然后展现渲染最终的图片。
6.Linux网络协议栈
写的很乱没看懂,只记得一点 可以看出socket的接收和发送缓存是使用一个双链表将sk_buff组织起来的。
以及我的服务器的逻辑都是针对的应用层,调用的创建socket套接字的函数也只是网络协议栈中的传输层提供给我的接口,在需要进行读写操作的时候使用的都是文件描述符,而文件描述符是内核组织的一个文件描述表中的一个变量,也就是说还是通过切换到内核态才进行数据的拷贝的。
二。HTTP
HTTP是啥:
是超文本传输协议,是传输的超文本数据的规范,不是不是定义的怎么传输,怎么传输那是tcpip的事情。超文本指的是http中很常用的html超文本,里还嵌入了一些资源链接,浏览器有能力识别出这些标签并且解释。
常见状态码有哪些
标签:八股,HTTP,IP,计网,传输,DNS,传输层,服务器 From: https://www.cnblogs.com/synapse331/p/17703172.html