我们可以看下面的图片来加深印象
- OSI和TCP/IP模型:
(再看各位大佬的面经的时候可以知道计算机网络这一门时必考面经,所以今天就打算看一看网络这一块的内容。)
首先我们必须要知道TCP/IP模型时复习的重点(废话吗!),从我们的应用层开始吧。
#应用层:
##定义:允许访问OSI环境的手段(应用协议数据单元APDU)
##特点:
- 解决某一类应用问题。
- 规定应用进程在通信时所遵循的协议。
- 许多协议都是基于客户服务器方式。
- 描述的是进程之间服务和被服务的关系。
- 客户是服务请求方,服务器是服务提供方。
###FTP协议:
ftp协议就是我们常说的文件传输协议
-熟知端口(21):控制端口
-熟知端口(20):数据端口
###HTTP协议:
HTTP协议就是我们说的超文本协议,学习html的时候就会有类似的QA问题:
- 用什么协议实现万维网上各种超链的链接?——超文本传送协议 HTTP。
- 怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链? ——超文本标记语言 HTML
然后夸苏的记忆一下URL的格式:<协议>://<主机>:<端口>/<路径>
<协议>:一般有两种:ftp、http、https
<主机>:是存放资源的主机在因特网中的域名
<端口>:一般可省略,http默认端口是80
<路径>:到某个特定的主页
我们输入www.baidu.com时候其实并不是我们想象中的那么简单,也是经过了许多步骤:
百度页面:http://www.baidu.com
(1) 浏览器分析超链指向页面的 URL。
(2) 浏览器向DNS请求解析 www.baidu.com 的 IP 地址。
(3) 域名系统DNS解析出百度服务器的IP地址。
(4) 浏览器与服务器建立TCP连接
(5) 浏览器发出取文件命令
(6) 服务器给出响应,把文件html文件发给浏览器。
(7) TCP 连接释放。
(8) 浏览器显示xxx.html中的所有文本。
(之后应该会详细的,再细说)
###Telnet协议:
一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。
###SMTP协议:
邮件传送协议,用于发送邮件。服务器开放的是25号端口。
###POP3协议:
它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。
###DNS协议:
用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
这个协议对应着我们上面http协议的打开页面发生了什么的第二步,第三步。现在让我们在好好的详细讲解一下。
- 输入www.baidu.com
- pc会向本地的DNS服务器发送请求,即你的网络接入服务商,如移不动,联不通等等。
- 本地的DNS服务器接收到请求后,它首先会问问自己有没有?也即是查找缓存记录,有就直接返回结果,你就得到了正确的IP地址啦
- 如果没有则继续向上询问DNS根服务器。又没有?再向上问域服务器,不过这个时候请求的对象发生了变化,请求的对象是.com域服务器。.com域服务器收到请求后,不会直接返回域名和IP地址的对应关系,告诉本地DNS服务器,你的域名的解析服务器的地址。
- 本地DNS服务器再次向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。
###DHCP协议:
一个局域网的网络协议,使用UDP协议工作,用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
##总结:
应用层好像没什么会的ftp协议没有怎么了解过,似乎有什么控制流与数据流,匿名ftp等等emmm不会啊!,然后http/https的应该会在(写一篇文章?)来详细的梳理下,然后dns大概就只了解这个简单的解析过程。大概这就是咸鱼吧哈哈~(如果有大佬看了后,可以纠正我的错误或者知道一下,谢谢!)