网络协议相关面试问题-TCP与IP网络模型
互联网应用的实现主要是通过分层来实现的,每一层有自己相应的功能,上层依赖于下层,具体层次如下图:
下面具体一层层来了解:
物理层 / 实体层:
也就是将电脑通过物理的手段连接起来,其实也就是01电子信号的传输,这层有个了解既可,对于应用开发来说根据接触不到这么底层。
链接层:
- 链接层的协议
它位于物理层上方,而物理层只是一个01的电子信号,木有对信息号进分组,以太网协议规定了电信号的分组方式。下面则是以太网规定的数据包:
其中Head里面包含了发送者或接收者的地址,还有数据类型等,而Data则是数据包中的具体内容。
- mac地址
它长这样:
以太网规定每一个连接入网的所有设备都必须有一个网卡的接口,数据包必须是从一个网卡传递到另一个网卡上,而网卡的地址就是MAC地址。
- 广播
就算知道了网卡信息,如何发送给指定的计算机呢,看下图:
1号计算机想要给2号计算机发送消息,其3、4、5号计算机也会收到此消息,只是说该消息头部带有要接收的mac地址,如果跟本机匹配上那就处理该消息,否则就丢弃,这就是所谓的广播。
网络层:
在上一层链接层以太网可以从一个MAC地址通过广播的形式发送到另一个MAC地址,这从技术上是可以实现的,但是效率太低了, 另外广播的方式只能在同一个子网络上进行传递,如果是不同的子网络则广播就无法传递了,而互联网是由无数个子网络组成,所以要想从上海主机找到美国主机那用广播就没法实现了,所以网络层就诞生了。
- 作用:
背景:以太网采用广播方式发送数据包。
TODO:能够区分哪些MAC地址属于同一个子网络。
作用:使得我们能够区分不同的计算机是否属于同一个子网络
网络层出现之后每台主机就有了一个IP地址和一个MAC地址了,MAC地址是绑定在网卡上的,而IP地址是网络管理员分配的,是动态变化的,而IP地址是可以帮我们确定子网络,而MAC地址功能则不一样,它是将数据包送到该子网络的目标网卡,所以从逻辑上需要清楚一点:先处理网络IP地址再处理MAC地址。 - ip协议:
规定网络地址的协议。 - ip数据包:
根据IP协议发送的数据,而它的格式如下:
其中Head主要是存放一些数据的长度,IP地址等,而Data则是存放数据的具体内容,这是将IP数据包放在以太网数据包里的格式。
- arp协议:
背景:由于IP数据包是放在以太网数据包里发送的,所以说必须同时知道两个地址:一个是对方的MAC地址,另一个是对方的IP地址,通常情况下对方的IP地址是已知的,但是不知道对方的MAC地址,因为IP地址可以通过路由找到,而MAC地址是独一无二的,所以需要一个机制,能够从IP地址得到MAC地址。
核心原理:ARP协议也是发送一个数据包,它所在子网络的每一个主机都会收到这个数据包,然后从该数据包中提取出IP地址,再跟自身的IP地址进行比较,如果相同则做出回复并向对方报出自己的MAC地址,否则就会丢弃。这样有了ARP协议之后,我们就能够在同一个子网络内的主机MAC地址把它发送数据包到任意一个主机之上,跟链接层的广播异曲同工,只是广播对比的是MAC地址,而ARP协议对比的是IP地址。
传输层:
背景:根据前面的层目前已经有了IP地址和MAC地址了,就可以在互联网上的任意两台主机进行通讯了,那接下来问题来了:同一台主机许多程序都会用到网络,比如说:一边浏览网页,一边用qq跟朋友聊天,这时如果数据包从网络发来时怎么知道它是代表网页的内容,还是表示在线聊天的内容呢?所以此时还需要另外一个参数来表示数据包是供哪个应用程序使用的,这个参数就叫作端口号。
传输层的格式:
还是由Head+Data组成,而网络层是主机与主机的通讯,而到了传输层则是端口与端口之间的通讯了,其协议主要是有TCP和UDP。
应用层:
以上有了主机到主机之间的通讯和端口到端口之间的通讯之后,于是乎就可以实现应用程序之间的交流了。
应用层的作用,就是规定应用程序的数据格式。因为有各种各样的程序需要传递数据,比如说有EMAIL、www数据,此时就必须规定不同的协议不同的数据,这就是应用层所干的事,而结合物理层、网络层、传输层,格式就变成这样了:
以太网标头指的是MAC地址。
网络协议相关面试问题-TCP与IP网络模型的更多相关文章
- 网络协议相关面试问题-TLS与SSL握手
HTTPS是什么? HTTPS并不是一个单独的协议,而是对工作在一加密连接(SSL / TLS)上的常规HTTP协议.通过在TCP和HTTP之间加入TLS(Transport Layer Securi ...
- 网络协议相关面试问题-http协议相关面试问题
HTTP协议简介: 一些基本概念: 协议:指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则. HTTP协议:超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML ...
- 网络协议相关面试问题-DNS相关面试问题
对于网络上的大部通讯都是基于TCP/IP协议的, 其中最重要的是IP协议,它是基于IP地址的,而计算机通讯只能识别IP地址,如192.168.0.1,而不能识别像咱们在浏览器敲得见名之义的" ...
- 网络协议相关面试问题-https加密算法相关面试问题
密钥: 密钥是一种参数,它是在使用密码cipher算法过程中输入的参数,同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文.所以说算法既使公开了但是密钥参数不同其结果也是不同的,其中关于明文 ...
- PHP网络协议相关考点
HTTP状态码 HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码. HTTP状态码主要有5种,代表5种不同类型的响应: 1xx:信息性状态码,代表接 ...
- 网络协议抓包分析——TCP传输控制协议(连接建立、释放)
前言 TCP协议为数据提供可靠的端到端的传输,处理数据的顺序和错误恢复,保证数据能够到达其应到达的地方.TCP协议是面向连接的,在两台主机使用TCP协议进行通信之前,会先建立一个TCP连接(三次握手) ...
- TCP/IP网络协议基础知识集锦[转]
引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP协议簇是由OSI七层模型发展而来的,之所以 ...
- TCP/IP网络协议基础
实验楼学习网络协议传送门 一.TCP/IP简介 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了电 ...
- 对TCP/IP网络协议的深入浅出归纳
前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...
随机推荐
- 这可能是你少有的能get到测试用例编写精髓的机会!
自动化测试用例的编写是实现项目自动化的核心,合理的用例设计是保证自动化效益和实用性的关键,也直接决定了自动化脚本是否具备可扩展和可维护性.由此,本篇文章主要为大家介绍了测试用例编写的规范和注意事项. ...
- shell脚本常见的结构化函数
if-then if command then command fi if-then-else if command then command else command fi 嵌套if if comm ...
- 安装zabbix4.0 LTS
一.环境准备 1.https://www.zabbix.com/download?zabbix=4.4&os_distribution=centos&os_version=7& ...
- SpringCloud学习(五)路由网关(zuul)(Finchley版本)
在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统.一个简单的微服务系统如下图: ...
- [转帖]Grafana背后的Nginx和Apache Proxy
Grafana背后的Nginx和Apache Proxy https://ywnz.com/linuxyffq/5590.html 这个网站貌似非常非常好 在本文中,我将向你展示如何在Nginx和Ap ...
- [转帖]盖茨辉煌后将归隐 DOS之父仍为生计打拼(图)
盖茨辉煌后将归隐 DOS之父仍为生计打拼(图) http://www.sina.com.cn 2007年12月10日 09:43 新浪科技 https://tech.sina.com.cn/it/2 ...
- SQLSERVER 去除字符串中特殊字符
原文:SQLSERVER 去除字符串中特殊字符 /*========================================================================== ...
- pb datawindow 类型
DataWindow.Processing 判断 DataWindow 对象的类型 可用 DataWindow.Processing 判断 DataWindow 对象的类型,dw的类型如下: ...
- Dreamoon and Strings CodeForces - 477C (字符串dp)
大意: 给定字符串$s$, $p$, 对于$0\le x\le |s|$, 求$s$删除$x$个字符后, $p$在$s$中的最大出现次数. 显然答案是先递增后递减的, 那么问题就转化求最大出现次数为$ ...
- ipairs与pairs的区别
ipairs 和pairs在lua中都是遍历tbale的函数可是两者有差别 1.pairs遍历table中的全部的key-vale 而ipairs会依据key的数值从1開始加1递增遍历相应的table ...