今天是星期二,你好不容易今天准点下班,6点打卡。
心情因为下班的到来正美,恰好外卖小哥在小区门口遇见你,把你点的奢华外卖送到你手上。哎呀,心情更美了。
进门打开电脑,把外卖放在桌上,极具仪式感准备登录b站开一部快乐肥宅剧配饭时,你发现:在浏览器网址框内输入之后,经过,它就是一个典型的域名,图上的知乎也是。那B站的IP地址是啥?是,就是这么个道理。
简单来说,IP地址是人们在Internet上为了区分数以亿计的主机而给每台主机分配的一个专门的地址,通过IP地址就可以访问到每一台主机。
TCP/IP中也是使用IP地址和端口号来确定网络上某一台主机上的某一个程序。
IP本身没有什么实际的意义,很难记忆,所以才有了域名。但是路由器只认识二进制的IP地址,所以,你记住了域名,电脑记不住,就会出现一个问题:
当你使用域名访问某一个网站时,需要先将域名翻译成对应的IP地址,这个过程叫做“域名解析”。
诶?我平时输入的时候可没有翻译过啊,这背后是谁再操作?
老杨第二点就给你说明白。
补充一个小技巧:如果你想查看某一个网站的IP地址,要咋整?
老杨平时喜欢用ping来查看:通过win+R打开cmd ,输入ping+空格+域名就可以了。
DNS(Domain Name System)是指域名系统,它主要是提供一种从主机名到IP地址的目录服务。
而DNS协议是指将域名转换为IP地址的一个规则。
这就是第一点里提及的“域名解析”。
你平时输入网址的时候,没有人给你翻译成IP地址,但是客户端自动就是可以跳转到对应的页面去,就是DNS在后面的默默奉献。
为啥要特地整一个DNS呢?
因为一开始,咱们的域名和IP的对应关系都存在host的文件里。如果一个新的计算机要接入网络,或者某个IP需要改改,都要去信息中心定期对文件里的内容进行更新,延迟了很久,操作起来也贼麻烦。
所以才有了自动翻译机——DNS系统。
所以,当你输入时,再你按下回车键后,停顿的1-2秒内,DNS系统已经悄悄地帮你把这个b站的域名翻译成,这里的网址是域名,所以需要“翻译”成计算机能看懂的语言,就需要"DNS"出场。
所以,在你按下回车键enter之后:你的浏览器会率先使用DNS获得对应的IP地址。
如果本地的DNS服务器没有,就像更高级的DNS服务器求助,一直到你获得了B站的IP地址:110.76.40.240。
获取到了110.76.40.240之后,登录这个IP地址的需求就变成了你的“请求”。
浏览器会把你的这个“请求”变成HTTP请求报文发送给TCP。
在这个发送的过程里,就出现了最经典的“TCP的三次握手”场景。
具体是咋握手的,我们看这里:首先,TCP先收到了服务器发来的请求“有个用户要登录B站看番”。
这时候它有点慌,心里想:这个请求靠不靠谱啊?必须要测试一下,验证验证可不可靠!
所以,TCP设计的“三次握手”出现了,为的是让这俩货接触一下,自证清白,获取TCP的信任。
你的计算机给服务器发消息,“诶哥们,我能不能登个B站啊?”
服务器说:“可以啊大兄弟,这点小事算啥,你收得到我的信息吗?”
计算机说:“收到了!真是太好了,感恩的心感谢有你,祝哥们发大财!”
通过这三次握手,TCP确认了“我要登录B站看番”是ok的,接下来,它就会把你这个请求再次打包成一个IP报文,发送给B站的服务器。
在B站确认你的请求之后,它也会发送一个IP报文给你,以此表示确认建立链接。
经历上述几个过程以后,(也就是你在输入框里输入网址并按回车后的0.5秒内)你顺利打开了B站,开始看起快乐肥宅剧。
写到这里,觉得用这句话结尾,应该是最好的:
哪有什么岁月静好,不过是有人在替你负重前行。
原创:老杨丨8年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部