文章目录
- 数据链路层的功能
- ARP协议
- DNS-------域名解析(浅浅的了解一下)
- 在浏览器中输入URL后,发生的事情(经典面试题)
- ICMP协议
- NAT技术
- 代理服务器
- 网络核心知识大总结
数据链路层的功能
对比理解网络层。
网络层 : 路由选择 和 地址管理 (选择路径)
数据链路层 : 在一个局域网中,两个相连节点之间的信息传递 (脚踏实地一步一步的走)
数据链路层的报文称为 : 数据帧
数据帧的格式:
MAC地址 : 网卡的硬件地址,长度是48位,6字节。在网卡出厂时就固定的。 与ip地址并不是一 一 对应的关系,
因为一台主机可以绑定多个网卡。
那么MAC地址和ip地址的区别是什么呢?
ip地址是路途总体的起点和终点。
MAC地址描述的是路途中相邻区间的起点和终点。
ARP协议
在同一个局域网内,已经知道目的IP地址,如何获得获得目的MAC地址。
ARP协议的主要功能是 : IP地址转化位MAC地址
RARP协议的主要功能是 : MAC地址转化为IP地址
也就是说, 我们只要懂了ARP协议的原理, RARP的原理也基本上懂了。
ARP不是一个单纯的数据链路层的协议, 而是一个在数据链路层中比交MAC帧协议稍微高的协议,因为它可以被MAC帧封装。
在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;
数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;
因此在通讯前必须获得目的主机的硬件地址
ARP协议工作的大致流程:
ARP报文的协议格式
实际上在局域网中ARP协议的一次请求和响应
源主机发出ARP请求,询问“IP地址是IPB的主机的硬件地址是多少”, 并将这个请求广播到本地网
段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播);
目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自
己的硬件地址填写在应答包中。 如果不符合直接丢弃。
DNS-------域名解析(浅浅的了解一下)
DNS是一整套从域名映射到IP的系统。 是在应用层
我们在URL中输入 www.baidu.com 实际上 DNS会帮助我们解析成一个IP地址。
例如: www.baidu.com 主机名.次级域名.顶级域名.根域名
com: 一级域名. 表示这是一个企业域名. 同级的还有 “net”(网络提供商), “org”(非盈利组织) 等.
baidu: 二级域名, 公司名.
www: 主机域名
在浏览器中输入URL后,发生的事情(经典面试题)
只要知识框架够牢固 : 和面试官讲 3个小时没有问题。
例如在浏览器中输入 : www.baidu.com
这种是自由发挥的题目,越详细越好,并且说的越多越好。 但不能说错了。
1, 应用层会进行域名解析,通过域名获得对应的目的IP。
2, 应用层发送一个http请求, 请求的格式是: 首行,头部, 空行, 正文。
其中首行包括了请求方法,http版本,网址。
头部有: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束
3,然后向下交付给传输层, 传输层tcp通过三次握手建立链接,(还可以谈谈为什么是三次握手,当断开连接的时候的4次挥手)tcp协议保证可靠传输。其中保证可靠传输和提高传输效率的主要机制有:确认应答,超时重传,快重传,延迟应答,捎带应答,滑动窗口,拥塞窗口。 (这些机制也可以挑几个展开说说)
4,传输层向下交付给网络层,网络层ip协议主要是路由选择和地址管理。 其中ip协议受数据链路层的MTU的影响可能产生ip分片,,,其中 分片的细节可以展开谈谈,为什么会分片,如何分片,如何组装,谁来控制分片等等。
5,网络层向下交付给数据链路层,主要功能是保证局域网中相邻节点之间的通信。通过ARP协议获得目的MAC地址,如何获得ARP协议获得MAC地址也可以展开谈谈。
6,当对端主机收到请求后,经过一系列的解包到达对端的应用层,应用层返回一个http响应,其中响应分为 首行,头部,正文 。
首行: [版本号] + [状态码] + [状态码解释] (也可以详细说说状态码 和 状态码的解释)
Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束
Body: 空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中的一个Content-Length属性来标识Body的长度;
如果服务器返回了一个html页面, 那么html页面内容就是在body中
7,发送方收到http响应后,类似于经过文本分析解读就可以获得相关的网络资源了,例如收到一个html网页并显示。
ICMP协议
它是一个网络层协议,主要的功能是:
确认IP包是否成功到达目标地址
通知在发送过程中IP包被丢弃的原因
ICMP也是基于IP协议工作的. 但是它并不是传输层的功能, 因此人们仍然把它归结为网络层协议
ICMP只能搭配IPv4使用. 如果是IPv6的情况下, 需要是用ICMPv6
ping命令就是基于ICMP协议的, 在网络层。无端口号的概念。 主要是检测网络状态
而传输层才关注端口号。
面试官挖坑系列 : telnet是23端口, ssh是22端口, 那么ping是什么端口?
NAT技术
NAT技术当前解决IP地址不够用的主要手段, 是路由器的一个重要功能。
NAT能够将私有IP对外通信时转为全局IP。
在NAT路由器内部, 有一张自动生成的, 用于地址转换的表。 其中私有ip和被转换后的全局ip互为键值,
这样就可以当数据包返回的时候发送给局域网中要通信的那一台主机。
例如:
其中转换的ip有 : 源ip地址和目的ip地址 转换后就是 全局源ip 和 全局目的ip , 他们互为键值。
也就是通过一对可以确定另外一对。
代理服务器
代理服务器是一种应用比较广的技术
代理服务器: 客户端像代理服务器发送请求, 代理服务器将请求转发给真正要请求的服务
器; 服务器返回结果后, 代理服务器又把结果回传给客户端.
1,可以对发送请求的主机进行身份验证,
2,加速内网服务, 例如 : 负载均衡, 让主机享受服务器资源均衡。
3,可以对内网的主机请求进行筛查。
网络核心知识大总结
应用层的作用: 满足我们日常需求的网络程序, 都是在应用层
能够根据自己的需求, 设计应用层协议.
了解HTTP协议.
理解DNS的原理和工作流程
传输层的作用: 负责数据能够从发送端传输接收端.
理解端口号的概念.
认识UDP协议, 了解UDP协议的特点.
认识TCP协议, 理解TCP协议的可靠性. 理解TCP协议的状态转化.
掌握TCP的连接管理, 确认应答, 超时重传, 滑动窗口, 流量控制, 拥塞控制, 延迟应答, 捎带应答特性.
理解TCP面向字节流, 理解粘包问题和解决方案.
能够基于UDP实现可靠传输.
理解MTU对UDP/TCP的影响
网络层的作用: 在复杂的网络环境中确定一个合适的路径.
理解IP地址, 理解IP地址和MAC地址的区别.
理解IP协议格式.
了解网段划分方法
理解如何解决IP数目不足的问题, 掌握网段划分的两种方案. 理解私有IP和公网IP
理解网络层的IP地址路由过程. 理解一个数据包如何跨越网段到达最终目的地.
理解IP数据包分包的原因.
了解ICMP协议.
了解NAT设备的工作原理
数据链路层的作用: 两个设备(同一种数据链路节点)之间进行传递数据
以太网是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑
结构, 访问控制方式, 传输速率等;
以太网帧格式
理解mac地址
理解arp协议
理解MTU