美文网首页程序员
网络协议综述

网络协议综述

作者: Leo_up_up | 来源:发表于2020-05-15 15:42 被阅读0次

要学习网络协议,我们要知道,网络协议有三大要素,分别是语法,语义,顺序

语法:就是这一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等。

语义:就是这一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本一般来说就没有意义。

顺序:就是先干啥,后干啥。例如,可以先加上某个数值,然后再减去某个数值。

不过,只有通过网络协议,才能使一大片机器互相协作、共同完成一件事。

协议长什么样子呢,我们来看一下

HTTP/1.1 200 OK

Date: Tue, 27 Mar 2018 16:50:26 GMT

Content-Type: text/html;charset=UTF-8

Content-Language: zh-CN

<!DOCTYPE html>

<html>

<head>

<base href="https://pages.kaola.com/" />

<meta charset="utf-8"/> <title>网易考拉3周年主会场</title>

接下来以双十一为例,说一下网络协议。

我们在浏览器里面输入 https://www.kaola.com ,这是一个URL。但是浏览器只是知道这给名字,并不知道具体地址,想要知道地址,就只能通过地址簿协议(DNS)或者更精确的(HTTPDNS)去查找,最终就会得到一个这样的地址:106.114.138.24。这个是IP地址,是互联网世界的“门牌号”。

知道了目标地址,浏览器就开始打包它的请求。对于普通的浏览请求,往往会使用HTTP协议;但是对于购物的请求,往往需要进行加密传输,因而会使用HTTPS协议。无论是什么协议,里面都会写明“你要买什么和买多少”。

应用层时http请求样式

DNS,HTTP,HTTPS这些都是应用层的协议,应用层对请求进行了一些封装,然后将请求下发到下一层,即传输层,这里的下发是通过socket编程来实现的。

传输层有两种协议,分别是无连接的UTP协议和面向连接的TCP协议,面向连接的意思就是,TCP协议会保证这个包一定会到达目的地,如果每到达,就会一直提交直到到达。

传输层时的请求

这里的TCP里面有两个端口,分别是浏览器端口和电商端口。操作系统根据端口来判断,它得到的通过socket编程传来的包应该发给哪个进程。

通过传输层传来的包,浏览器就会将这个包交给操作系统的网络层,网络层的协议是IP协议,它里面包含了源地址和目标地址。

源地址:浏览器所在机器的IP地址

目标地址:电商网站机器IP地址

网络层

操作系统知道了目标IP地址后,就要去寻找这台机器,而去寻找这样一台机器,就需要网关这样一个东西。

在操作系统启动的时候,它会被DHCP协议配置一个IP地址以及一个默认的网关192.168.1.1。

那么怎么将这个地址发送到网关呢,在本地通信的时候,就要靠“吼”,操作系统大喊:谁是192.168.1.1,这时网关就会说,我是,我的地址是村东头,这个村东头就是MAC地址,而大吼的那一个是ARP协议。

MAC层

找到网关地址后,操作系统就将IP包发送到下一层,也就是MAC层,MAC层就包含了网关的MAC地址,因此这个包就能顺利的到达网关。

网关往往是一个路由表,网关收到包后,会根据自己的知识,判断下一步该往哪里走,路由到最后一个时,会找寻目标地址的服务器,它大吼一声,然后目标服务器发来它的MAC地址,通过这个MAC地址,就能寻找到这个服务器并且将包发送到目标服务器上。

上面这样一个流程是将请求包发出去,从浏览器所在服务器发经过一层层封装发送到目标服务器,当目标服务器接收到时,取下MAC头,发送给网络层,在网络层发现IP地址对上了,就取下IP头,IP头里写上封装,即TCP,取出然后发送给传输层。

在传输层,即TCP层这里,对于每一个收到的包,都会发送一个包进行回复,来报平安,如果过了一段时间没收到,那么这里会继续重新发送这个包,直到收到了平安到达的回复。这个重试绝非你的浏览器重新将下单这个动作重新请求一次。对于浏览器来讲,就发送了一次下单请求,TCP层不断自己闷头重试。除非TCP这一层出了问题,例如连接断了,才轮到浏览器的应用层重新发送下单请求。

当平安到达后,也确认平安后,TCP头里面有目标端口号,通过这个端口号,就可以找到正在监听的这样一个服务。

整体流程 模拟传输,取头发头

servlet的作用就是是接收浏览器传给服务端的请求(request),并将服务端处理完的响应(response)返回给用户的浏览器,浏览器和服务端之间通过http协议进行沟通,其过程是浏览器根据用户的选择将相关信息按http协议报文的规范组装请求的http报文,报文通过网络传输到指定的服务器,服务器通过特定的web容器接收这个报文信息,例如:tomcat,jetty,jboss这样的web容器,web容器会将http报文解析出来,如果是用户请求,最终解析出来的报文信息会用一个request对象存储起来,服务端使用这个request做完相应的处理后,服务端程序将结果信息封装到response对象里,然后将response对象交给web容器,web容器则把这个response对象转变为http协议的报文,并将报文回传给浏览器,浏览器最后解析这个响应报文,将最终结果展示给用户。

相关文章

  • 网络协议-- 综述

    记住一点:只要是在网络上跑的包,都是完整的。可以有下层没上层,绝对不可能有上层没下层。对 TCP 协议来说,三次握...

  • 网络协议综述

    要学习网络协议,我们要知道,网络协议有三大要素,分别是语法,语义,顺序 语法:就是这一段内容要符合一定的规则和格式...

  • 网络交易协议综述

    第一章:交易协议 目前已知的用来写互联网交易协议的有 它们各自的特点是: 它们的缺点是: 它们的优点是: 第二章:...

  • 路由协议

    路由协议 一、综述 定义 路由(网关)协议是用来指定数据包转送方式的网络协议。Internet网络的主要节点设备是...

  • 20-RPC 协议综述

    本人在“极客时间”上购买了一套“趣谈网络协议”的课程,本文为该课程第32讲(RPC 协议综述)的课程笔记。 1.R...

  • 趣谈网络协议:第一模块 通信协议综述

    第一讲 为什么要学习网络协议? 1. 协议三要素 语法一段内容要符合一定的规则和格式 词法一段内容要代表某种意义 ...

  • QUIC协议综述

    注明: 本文翻译自The QUIC Transport Protocol: Design and Internet...

  • 理解基于 TCP 的应用层通信协议

    TCP 协议示意 关于七层网络通信的基本原理,特别推荐这篇图文并茂的长文《TCP/IP笔记 - 综述》 TCP 通...

  • 【游侠测评】Penta:存在多项重大风险,披着羊皮的狼?

    一.项目综述 Penta(称“梵塔网络”或“PNT) 是下一代区块链价值互联网的底层基础链与协议, 旨在基于 5 ...

  • 通信协议综述

    本篇作为学习笔记,文章内容来自“极客时间”专栏《趣谈网络协议》,如有侵权,请告知,必即时删除。 1、常用的网络协议...

网友评论

    本文标题:网络协议综述

    本文链接:https://www.haomeiwen.com/subject/eyiwnhtx.html