网络协议概述(一)

目录

一、协议三要素

二、常用的网络协议

2.1 由url确定目标ip地址(DNS协议)

2.2 打包需要发送的信息(http/https协议)

2.3 有应用层到传输层(TCP协议保证应用层包一定送达)

2.4 有传输层到达网络层(进行包的外地传送)

2.5 目标服务器接收包后进行拆包和回复


        

协议:允许人类与计算机,计算机与计算机之间进行沟通的一种语言。英文释义是:a computer language allowing computers that are connected to each other to communicate。只有通过协议,计算机才能知道我们想让它做什么

一、协议三要素

        计算机语言作为程序员控制计算机工作的协议,具备了协议的三要素:语法、语义、顺序

(1)语法:一段内容要符合一定的规则和格式。例如括号要成对等。

(2)语义:一段内容要代表某种意义。例如数字减数字是有意义的,而数字减文本则一般无意义。

(3)顺序:就是这段内容中先要做什么后腰做什么是由顺序的。

        想要打通互联网世界,需要大片机器之间相互协作,这就需要网络协议:通过网络协议,让才能使一大片机器相互协作、共同完成一件事。

二、常用的网络协议

2.1 由url确定目标ip地址(DNS协议)

        这里以浏览器访问网页为例,我们在浏览器中输入https://www.baidu.com,这是一个url。浏览器此时只知道这个url不知道需要访问的资源的具体地点。于是浏览器打开“地址簿”去查找,可以使用一般的DNS去查找,也可以使用另一种更加精准的地址簿查找协议:HTTPDNS

        无论通过哪种查找方式最终都会得到一个ip地址:互联网世界的门牌号

2.2 打包需要发送的信息(http/https协议)

        知道了目标地址后,浏览器就会开始打包它的请求。对于普通的请求会使用http协议,而对于加密传输的请求则会使用https请求,无论是什么请求方式,协议中都会写明需要发送的信息。(ip-->http/https请求)

        DNS、http、https称为应用层,经过应用层封装后,浏览器会将应用层的包交给下一层去完成,这通过socket编程实现下一层是传输层。(http/https-->传输层)

2.3 有应用层到传输层(TCP协议保证应用层包一定送达)

        传输层有两种协议:无连接的协议UDP,面向连接的协议TCP。对于支付(较为重要的业务)来说,往往使用tcp协议。所谓面向连接就是:TCP会保证这个包能够到达目的地,如果不能到达,就会重新发送直至到达。TCP协议有两个端口:一个是浏览器监听端口。另一个则是目标地址服务器的监听端口,用于tcp三次握手。

        这里用写信的例子来简述上面的过程:

            这个过程就像是一份信你写好了,装进信封,根据收信人的名字(网址)从地址簿(DNS)里面查到了目的地的地址邮编(IP),然后交给邮局(传输层)传输,当然这个过程可能还有些波折。 1.你在信里面说: 亲爱的某某,我们以后写信联系吧(SYN=1发起一个新的连接),我有不能说的秘密跟你讲,但是我不确定收到信的是不是你,如果是你自己就请给我回信,我就跟你分享我的秘密(seq=x)。 2.收信人收到你的信后给你回信: 亲爱的某某某我也想跟你写信(SYN=1发起一个新的连接),我是我自己你可以接着给我写信了(ACK=1确认序列号有效)你可以从不能说的秘密开始接着往下讲(ack=x+1),另外我也有话对你讲(seq=y) 3.你收到信后很高兴,立刻回信: 我们终于联系上了(ACK=1确认序列号有效),我们接着说我的秘密......(seq=x+1),你有什么话跟我说下次写信告诉我(seq=y+1) 这就是TCP三次握手的过程。

        传输层封装完毕后,浏览器会将包交给操作系统的网络层(传输层-->网络层),网络层的协议是ip协议:ip协议中会有源ip地址和目标ip地址。

2.4 有传输层到达网络层(进行包的外地传送)

        操作系统根据门牌号找到目标机器:(网络层-->目标服务器),操作系统会根据ip地址判断这个目标是在本地还是外地。

        如果目标地址位于外地,则需要先去网关,而操作系统启动的时候,就会被 DHCP 协议配置 IP 地址,以及默认的网关的 IP 地址 192.168.1.1。操作系统会在本地通过大吼(我个人理解是广泛的在本地发送信号询问谁是网关)。网关得知有人找他后便会回应自己的地址,这个地址就是MAC地址(网关所处的地址是MAC地址),大吼则是ARP协议。(网络层ip-->MAC)

        当ip包到达MAC层(MAC层中包含客户端电脑的MAC和网关的MAC),网卡会将包发送出去到达网关。网关收到包后会判断下一步怎么走。网关往往是一个路由器,到某个ip地址怎么走叫作路由表。网关依照路由表一步步到达目标ip地址。

        路由器(网关)有点像玄奘西行路过的一个个国家的一个个城关。每个城关都连着两个国家,每个国家相当于一个局域网,在每个国家内部,都可以使用本地的地址 MAC 进行通信。(在局域网内部通过MAC地址通信

        一旦跨越城关,就需要拿出 IP 头来,里面写着贫僧来自东土大唐(就是源 IP 地址),欲往西天拜佛求经(指的是目标 IP 地址)。路过宝地,借宿一晚,明日启程,请问接下来该怎么走啊?

        上文说到网关收到包后会判断下一步该怎么走,是因为网关会与邻近的下一个网关进行沟通来判断应该怎么走。这种沟通的协议为路由协议(路由协议构成了路由表??)常用的有OSFP和BGP

        OSPF和BGP均为网络层协议。 内部网关协议 -- OSPF(Open Shortest Path First)开放最短路径优先, 最主要的特征就是使用分布式的链路状态协议。主要特点为:1. 向本自治系统中所有路由器发送信息。 2. 发送的信息就是与本路由器相邻的所有的路由器的链路状态,但这只是路由器所知道的部分信息。 3. 只有当链路层状态发生变化时,路由器才向所有的路由器用 洪泛法 发送此信息。 外部网关协议 -- 边界网关协议BGP BGP只能是力求寻找一条能够到达目的网络且比较好的路由,而非要寻找一条最佳路由。

        城关与城关之间是一个国家,当网络包知道了下一步去哪个城关,还是要使用国家内部MAC 地址(即利用当前所在的城关MAC地址去访问该国家的下一个城关,可以理解为一个城关用于入城,另一个用于出城,入城时城关会给你一个通行证),通过下一个城关的 MAC 地址,找到下一个城关,然后再问下一步的路怎么走,一直到走出最后一个城关。

        最后一个城关(目标ip所位于的国家的城关)知道这个网络包要去的地方。于是,对着这个国家吼一声,谁是目标 IP 啊?目标服务器就会回复一个 MAC 地址。网络包过关后,通过这个 MAC 地址就能找到目标服务器。(ip相当于告诉城关目标地址,MAC则是城关根据目标地址放入包中的对应城内通行证。

2.5 目标服务器接收包后进行拆包和回复

        目标服务器得到包后会进行拆包:目标服务器发现 MAC 地址对上了,取下 MAC 头来,发送给操作系统的网络层。发现 IP 也对上了,就取下 IP 头。IP 头里会写上一层封装的是 TCP 协议,然后将其交给传输层,即 TCP 层。TCP协议会保证包内的信息一定被目标服务器接收到,否则会一直进行重试。

        最终目标服务器得到http/https请求内容并对内容进行处理,处理完毕后会回复源ip地址一个https包告知处理的结果。

        

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值