网站首页 服务项目 客户案例 我们优势 主机域名 关于黑羽 联系黑羽

资讯中心
了解网站建设资讯引领网站建设开发方向
字节一面后续:TCP/IP 四层模型了解么?每一层都有哪些协议?

本文转载自微信公众号「CS指南」,作者大白。转载本文请联系CS指南公众号。
大家好,我是大白。
这是 「面试现场」操作系统 的姊妹篇计算机网络,这个系列我会通过真实面试的形式向你讲解某个具体的知识点。
下面是正文。
面试官:上次我们聊了网络分层相关的内容,今天我们继续延伸一下,来聊聊每一层具体做了什么事情。
大白:好的好的!
面试官:开始之前,我们先来回顾一下 TCP/IP 4 层模型。

TCP-IP-4-model
面试官:通常我们建议从应用层向网络接口层学习。你先说说应用层主要做了什么工作吧?
大白: 应用层位于传输层之上,主要提供两个终端设备上的应用程序之间信息交换的服务,它定义了信息交换的格式,消息会交给下一层传输层来传输。 我们把应用层交互的数据单元称为报文。

应用层协议定义了网络通信规则,对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如支持 Web 应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。

network-layer
面试官:那你先聊聊 HTTP 协议吧!
大白:超文本传输协议(HTTP,HyperText Transfer Protocol)主要是为 Web 浏览器与 Web 服务器之间的通信而设计的。
当我们使用浏览器浏览网页的时候,我们网页就是通过 HTTP 请求进行加载的,整个过程如下图所示。

HTTP请求过程
https://www.seobility.net/en/wiki/HTTP_headers
HTTP 协议是基于 TCP 协议的,发送 HTTP 请求之前首先要建立 TCP 连接也就是要经历 3 次握手。目前使用的 HTTP 协议大部分都是 1.1。在 1.1 的协议里面,默认是开启了 Keep-Alive 的,这样的话建立的连接就可以在多次请求中被复用了。
另外, HTTP 协议是”无状态”的协议,它无法记录客户端用户的状态 一般我们都是通过 Session 来记录客户端用户的状态如何判断邮箱是真正存在的?。
面试官:SMTP 协议了解吗?
大白:简单邮件传输协议(SMTP,Simple Mail Transfer Protocol)的缩写,基于 TCP 协议,用来发送电子邮件。
注意 :接受邮件的协议不是 SMTP 而是 POP3 协议。
SMTP 协议这块涉及的内容比较多,下面这两个问题比较重要:
电子邮件的发送过程?
比如我的邮箱是“dabai@cszhinan.com”,我要向“xiaoma@qq.com”发送邮件,整个过程可以简单分为下面几步:

一个电子邮件被发送的过程
https://www.campaignmonitor.com/resources/knowledge-base/what-is-the-code-that-makes-bcc-or-cc-operate-in-an-email/
如何判断邮箱是真正存在的?
很多场景(比如邮件营销)下面我们需要判断我们要发送的邮箱地址是否真的存在,这个时候我们可以利用 SMTP 协议来检测:
推荐几个在线邮箱是否有效检测工具:

面试官:POP3/IMAP 协议了解吗?
大白:巴拉巴拉说了一大堆。。。
面试官:这两个协议没必要多做阐述,只需要了解 POP3 和 IMAP 两者都是负责邮件接收的协议即可。另外,需要注意不要将这两者和 SMTP 协议搞混淆了。SMTP 协议只负责邮件的发送,真正负责接收的协议是 POP3/IMAP。
IMAP 协议相比于 POP3 更新一点,为用户提供的可选功能也更多一点,几乎所有现代电子邮件客户端和服务器都支持 IMAP。大部分网络邮件服务提供商都支持 POP3 和 IMAP。
面试官:应用层文件传输使用的是什么协议?
大白:文件传输协议 FTP(File Transfer Protocol)
面试官:可以简单介绍一下吗?
大白:FTP 协议主要提供文件传输服务,基于 TCP 实现可靠的传输。使用 FTP 传输文件的好处是可以屏蔽操作系统和文件存储方式。
FTP 是基于客户—服务器(C/S)模型而设计的,在客户端与 FTP 服务器之间建立两个连接。如果我们要基于 FTP 协议开发一个文件传输的软件的话,首先需要搞清楚 FTP 的原理。关于 FTP 的原理,很多书籍上已经描述的非常详细了:
FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接(其它客户服务器应用程序一般只有一条 TCP 连接):
这种将命令和数据分开传送的思想大大提高了 FTP 的效率。

FTP工作过程
面试官:域名是是如何被解析为 IP 地址的?
大白:域名系统(DNS,Domain Name System)将人类可读的域名 (例如,www.baidu.com) 转换为机器可读的 IP 地址 (例如,220.181.38.148)。 我们可以将其理解为专为互联网设计的电话薄。

dns-overview
IP 地址是一个网卡再网络世界中的通讯地址,我们可以把它理解为我们现实世界中的家庭地址。
DNS 解析的完整流程是怎样的呢? (这个会在后面的文章中详细介绍到)

DNS 解析的完整流程
https://aws.amazon.com/cn/route53/what-is-dns/
Telnet:远程登录协议
面试官:远程登录协议了解吗?
大白:远程登陆协议,通过一个终端登陆到其他服务器,建立在可靠的传输协议 TCP 之上。Telnet 协议的最大缺点之一是所有数据(包括用户名和密码)均以明文形式发送,这有潜在的安全风险。这就是为什么如今很少使用 Telnet 并被一种称为 SSH 的非常安全的协议所取代的主要原因。
SSH:安全的网络传输协议
大白:SSH( Secure Shell)是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH 建立在可靠的传输协议 TCP 之上。
Telnet 和 SSH 之间的主要区别在于 SSH 协议会对传输的数据进行加密保证数据安全性。
面试官:好了!看来你小子没少花时间准备啊!我们再来看看传输层吧!
面试官:你先说说传输层主要做了什么工作吧?
大白: 传输层的主要任务就是负责向两台终端设备进程之间的通信提供通用的数据传输服务。 应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。
运输层主要使用以下两种协议:

transport-layer
大白:关于 TCP 和 UDP 的详细介绍咱们会在后面的文章中介绍到。
面试官:好家伙!TCP 和 UDP 还要留一手是吧?
大白:不急嘛!我们先把网络层聊完(反客为主)。
大白:网络层负责为分组交换网上的不同主机提供通信服务。 在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报,简称数据报。
注意 ??:不要把运输层的“用户数据报 UDP”和网络层的“IP 数据报”弄混。
网络层的还有一个任务就是选择合适的路由,使源主机运输层所传下来的分株,能通过网络层中的路由器找到目的主机。
这里强调指出,网络层中的“网络”二字已经不是我们通常谈到的具体网络,而是指计算机网络体系结构模型中第三层的名称.
互联网是由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议(Intert Prococol)和许多路由选择协议,因此互联网的网络层也叫做网际层或IP 层。

nerwork-layer
面试官:那我挑几个比较重要的协议,你给介绍一下呗!大白。
IP:网际协议
面试官:IP 协议了解么?
大白:网际协议 IP 是 TCP/IP 协议中最重要的协议之一,也是网络层最重要的协议之一,IP 协议的作用包括寻址规约、定义数据包的格式等等,是网络层信息传输的主力协议。目前 IP 协议主要分为两种,一种是过去的 IPv4,另一种是较新的 IPv6,目前这两种协议都在使用,但后者已经被提议来取代前者。
大白:关于 IP 协议的详细介绍咱们会在后面的文章中介绍到。
ARP:地址解析协议
面试官:ARP 协议呢?
大白:ARP 协议,全称地址解析协议(Address Resolution Protocol),它解决的是网络层地址和链路层地址之间的转换问题。因为一个 IP 数据报在物理上传输的过程中,总是需要知道下一跳(物理上的下一个目的地)该去往何处,但 IP 地址属于逻辑地址,而 MAC 地址才是物理地址,ARP 协议解决了 IP 地址转 MAC 地址的一些问题。
大白:关于 ARP 协议的详细介绍咱们会在后面的文章中介绍到。
NAT:网络地址转换协议
面试官:哎呦!有点东西!再说说 NAT 协议吧!
大白:NAT 协议(Network Address Translation)的应用场景如同它的名称——网络地址转换,应用于内部网到外部网的地址转换过程中。具体地说,在一个小的子网(局域网,LAN)内,各主机使用的是同一个 LAN 下的 IP 地址,但在该 LAN 以外,在广域网(WAN)中,需要一个统一的 IP 地址来标识该 LAN 在整个 Internet 上的位置。
大白:关于 NAT 协议的详细介绍咱们会在后面的文章中介绍到。
面试官:网络接口层呢?
大白:我们可以把网络接口层看作是数据链路层和物理层的合体。

network-interface-layer
最后再分享一个关于 OSI 七层模型非常不错的总结图片!
https://wsgzao.github.io/post/osi/
下面大白带大家简单总结一下每一层包含的协议和核心技术:

network-protocol-overview
应用层协议 :
传输层协议 :
网络层协议 :
网络接口层 :
网页制作的服务
网站开发服务
自贡黑羽网络品牌建站
自贡本地做网站就选黑羽网络
Tel:0813-5104030 15348110304 QQ或微信:22232591
地址:四川省自贡市自流井区丹佳大街泰丰大厦写字楼19楼10号
Copyright © 2018-2058 自贡黑羽网络科技有限公司 All rights reserved. ICP备案号 : ICP备12014994号-1 技术支持:黑羽网络
自贡网站建设,网页设计制作与开发,自贡网络公司推荐品牌,关键词: 自贡网站制作 自贡做网站 自贡网络公司 自贡网页制作 自贡做网站 网站地图xml 网站地图html 网站地图txt