网络基础面试--互联网入门(一)

-- (一)互联网入门
-- 资料:https://mp.weixin.qq.com/s?__biz=MzU1MDE4MzUxNA==&mid=2247484217&idx=1&sn=c45590f25589d4641795a15661de7176&chksm=fba5340cccd2bd1aea4c792f88acf8dcd51d6997598be6b2c9ae93555c8a538e733f86129e8d&scene=21#wechat_redirect    -- 互联网协议入门

-- 1.什么是"互联网协议":对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理
-- 2.五层模型(有人分为7层有人分为4层,其实不用管,我们只要知道互联网分为若干层,从下到上他们干嘛)
	/*
		1.越下面的层,越靠近硬件;越上面的层,越靠近用户
		2.每一层都为了实现一种功能,就需要大家遵守共同规则
		3.大家都遵守的规则,就叫做"协议"(protocol)
		4.互联网的每一层,都定义了很多协议。这些协议的总称,就叫做"互联网协议"(Internet Protocol Suite)。
		它们是互联网的核心,下面介绍每一层的功能,主要就是介绍每一层的主要协议
	*/
	
	--  下面从下(底层)到上(软件应用)来说说互联网是怎么实现通讯的
	
	-- 实体层(P):规定了网络的电气特性,负责01信号传输
		-- 解释:电脑→电缆/光缆/双绞线/无线电波→电脑:实体层规定连接电脑的物理手段
		
	-- 链路层(L):确定01的分组方式(以太网协议)
		-- 解释:得到了01信号,但信号表达什么意思呢?这就是链路层功能
		-- q1:分组方式(规则/协议)?
			-- 以太网协议:一组电信号构成一个数据包,叫做"帧"(数据包)。每一帧分成两个部分:标头(Head)加数据(Data)
			-- MAC地址:上面提到的标头存储发送者接受者的地址,而这块地址就是网卡的地址,即MAC地址
			-- 网卡的地址:每块网卡出厂时,都有一个全世界独一无二的MAC地址
		-- q2:网卡如何知道对方的地址?
			-- ARP协议
		-- q3:有了MAC地址,系统怎样才能把数据包准确送到接收方?
			-- 向本网络内所有计算机发送(广播),让每台计算机自己判断,是否为接收方
			-- 每台电脑收到广播,拿着对方标头的接收方地址与自己的比较,如果相同,收下进一步处理
			
	-- 网络层(N):建立"主机到主机"的通信,区分哪些MAC地址属于同一个子网络,哪些不是(IP协议)
		-- 解释:链路层有一环是广播功能,需要向所有主机发送包,准确来说是向发送者的子网络发包,因此,必须找到一种方法,能够区分哪些MAC地址属于同一个子网络,哪些不是
		-- q1:相同/不同子网络如何发包?
			-- 同一子网络:路由发包
			-- 不同子网络:广播发包
		-- q2:如何区分是否子网络?
			-- 网络层的出现,让每台计算机拥有两种地址:MAC地址和网络地址,两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址(简称网址)则是管理员分配的
			-- 网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡
		-- q3:网络地址怎么组成(协议)?
			-- 规定网络地址的协议,叫做ip协议,其产生的地址,就叫做ip地址(网络地址)
			-- 广泛采用的是IP协议第四版,简称IPv4。这个版本规定,网络地址由32个二进制位,习惯上,我们用分成四段的十进制数表示IP地址,从0.0.0.0一直到255.255.255.255			
		-- q4:ip地址的特点:
			-- 两部分组成:网络部分+主机部分,形如192.168.20.32
			-- 处于同一个子网络的电脑,它们IP地址的"网络部分"必定是相同的
			-- 仅仅给出两个ip地址是无法分别是否同子网,不知道前几位是网络部分,需要"字母掩码"
		-- q5:字母掩码的特点:
			-- 网络部分全部为1,主机部分全部为0,比如255.255.255.0(32位网络,8位主机)
		-- q6:字母掩码怎么判断ip是否同一子网段?
			-- 将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是
		-- q7:ip协议干了什么?
			-- 为每一台计算机分配IP地址
			-- 确定哪些地址在同一个子网络
		-- q8:ip数据包太大怎么办?
			-- 以太网数据包的"数据"部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了
		-- q9:已知对方ip地址如何得到MAC地址?(ip地址一般是已知的)(这题跟q1和链路层的q3差不多)
			-- 网关(gateway),两台主机不在同一子网络,无法得知对方MAC地址只能把数据包扔到两个子网络连接处网关
			-- ARP协议,它发出一个数据包(在以太网数据包中)里面有对方的ip地址,和一个"广播"地址,广播地址能找到对方MAC地址
			
	-- 传输层(T):建立"端口到端口"的通信(UDP/TCP协议),区分哪个数据包是扔给哪个具体的"软件/应用"的
		-- 解释:有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立通信,但是同一台主机上有许多程序都需要用到网络。当一个数据包从互联网上发来的时候,你怎么知道,它是表示网页的内容,还是表示在线聊天的内容
		-- q1:什么是端口?
			-- 它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口
			-- "端口"是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口
			-- 不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系
		-- q2:常说的套接字又是什么?
			-- Unix系统把主机+端口,叫做"套接字"(socket)。有了它,就可以进行网络应用程序开发了
		-- q3:数据包怎么拿到端口信息呢?
			-- 把端口信息放入ip数据包,需要遵守UDP/Tcp协议,
		-- q4:UDP协议干了什么?
			-- UDP协议简单地将标头放在ip数据包的数据部分,大小不会超过ip数据包,不会被分割
			-- UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到
		-- q5:TCP协议干了什么?
			-- 为了提高网络可靠性,才有了TCP
			-- TCP通过'三次握手''四次挥手'解决可靠性的问题,保证数据不丢失
			-- TCP也是把标头放ip数据包里面,不会被分割
			
	-- 应用层(A):规定应用程序的数据格式
		/*
		解释:应用程序收到"传输层"的数据,接下来就要进行解读。由于互联网是开放架构,
		数据来源五花八门,必须事先规定好格式,否则根本无法解读。举例来说,TCP协议可以为各种各样的
		程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、
		网页、FTP数据的格式,这些应用程序协议就构成了"应用层"
		*/
	
	

猜你喜欢

转载自blog.csdn.net/qq_38056704/article/details/82820169