网络协议入门|(一)网络协议概述

为什么会有网络协议
举个例子,就比如我们如何让一台计算机知道我们想做的事,那我们就得告诉它一种它能明白的语言(尽管这种语言还是接近人类语言,机器不能读懂,需要进行翻译,这种工作交给编译器就好了),这种语言应包含三个方面:
1、语法:一段内容要符合一定的规则和格式,比如括号要成对等。
2、语义:一段内容必须包含一段含义
3、顺序:一段内容先干啥,后干啥
这样,计算机就能明白你的意思,并做相应的操作。但这只是控制一台计算机,如何控制成千上万台计算机组成的网络尼,这时,就需要网络协议。
网络协议是干什么的?
还是举个例子: 当你要打开一个购物网站(www.taobao.com)时,而这是一个URL,游览器只知道它是一串字符,但不知道它具体的地址在哪,这时网络协议通过这个URL(统一资源定位符)来通过DNS(域名系统)或者更佳精准的地址簿查找协议HTTPDNS来查找到对应的IP地址,比方说找到的IP地址是106.114.128.24
现在我们知道目标地址的IP地址了,现在我们打包客户的请求,比如客户的请求是“我要买什么,我要买多少”。对于普通的游览请求,往往会使用HTTP协议,而对于这种购物请求,需要进行加密传输,需采用HTTPS协议
以上的DNS,HTTP,HTTPS所在的层为应用层,经过应用层封装后,游览器会将应用层的包交给下一层去完成,通过socket(套接字)编程完成。下一层是传输层,传送层有两种协议:无连接的UDP协议和面向练得的TCP协议。UDP是不安全的协议,常常导致丢包,而对于支付来讲,往往使用TCP协议(TCP协议会保证这个包到达目的地,如果不能到达,就重新发送,直到到达)[这个重试绝非你的游览器重新将下单这个动作再请求一次,而是不断尝试一个请求]
TCP协议中有两个端口:一个是游览器的监听端口,一个是电商的服务器的监听端口,操作系统往往会根据这两个端口来判断,它得到的包应该给那个进程。
传输层将包封装好之后,游览器会将包交给操作系统的网络层,网络层的协议为IP协议,ip协议包括源IP地址(游览器IP地址)和目标IP地址(电商IP地址)。
现在我们知道了IP地址,也就是知道了门牌号,现在我们要通过这个门牌号找到目标机器。操作系统会首先判断,这个IP地址是本地人还是外地人,这可以通过门牌号就可以看出,显然电商应该不再本地,而在遥远的地方。
而现在操作系统要离开本地区远方,虽然不知道远方在何处,但我们可以类比一下:我们要出国要经过海关,那请求去外地就要经过网关(每台机器在启动时,就被被(DHCP)协议配置默认IP地址192.168.1.1)。
而操作系统如何将IP地址发送给网关尼?如果是本地通讯就基本靠“吼”,谁是192.168.1.1,这时村东头传来声音“我是”,这个本地地址就是MAC地址,而那一生吼就是ARP(地址解析协议)协议
于是操作系统就将IP包交给了下一层MAC层,网卡再将包发送出去,由于这个包里面是有MAC地址的,所以它能到达网关。
网关收到包之后,会根据自己的知识,判断下一步怎么走,网关往往是一个路由器,到某个IP地址该怎么走,这个叫做路由器表。
在这个再举个例子:唐僧去西天取经,那么唐僧一旦想要跨越城关,就得拿出通关文书,它的通关文书写着:自东土大唐(源IP地址)而来,去往西天取经(目标IP地址),每一座城的城关可类比做网关,每座城里面可以通过MAC地址来通信。而去往下一个城关怎么走,城关的士兵会告诉他的。最后终于到达最后一个城关,于是,在这个国家中吼一声,谁是目标IP,目标服务器就会回复一个MAC地址,网络包过关后,就会通过这个MAC地址找到目标服务器,目标服务器发现MAC地址对上后,去下MAC头来,发送给操作系统的网络层,发现IP也对上了,就去下IP头,IP头里面会写上上一层封装的 TCP协议,然后将其交给传输层,即TCP层。当网络包平安到达TCP层时,TCP头有目标端口号,通过这个端口号,可以找到电商网站的进程正在监听的这个端口号,电商的网站得到了HTTP请求时,就执行相应的操作,当所有的操作都完成后就会回复一个HTTPS的包,告知下单成功,这个HTTPS就像你来的时候一样,历经千辛万苦到达你的电脑。显示支付成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值