美文网首页程序员
计算机网络-1.了解网络协议

计算机网络-1.了解网络协议

作者: 封不然 | 来源:发表于2018-08-07 22:59 被阅读73次

既然要讨论网络运维的东西,那首当其冲的应该是去了解我们所使用的计算机网络。就我个人广义上的理解,两台以上设备进行数据交换,就可以简单称之为一个网络。而他们之间是怎么沟通的呢,这就带出了网络第一个概念——协议。

协议是什么?举个简单的例子,在做看这片文章的应该大部分都是程序员,那么一定可以看得懂以下的一段文字(php)

public function helloWorld()
{
    echo 'hello world';
}

这是我们每个程序员开始学习计算机只是的第一段话“你好,世界”,这就可以称之为一种协议,是人类与计算机相互沟通的一种协议,只有通过这种协议,计算机才能知道我们想要做什么。当然中间过程还是很复杂的,语法解析以及其中编译原理就不进行详述了,只需理解其中三要素,语法,语意,顺序即可。

上述那个事例是说明人教给一台机器工作的案例,那么对于我们的网络来说,如何教给一大片的机器该做什么呢?这就需要网络协议。

相信对于大家,HTTP并不陌生,基本在每个网页前都会跟着http/https,这是我们日常上网,浏览网页最常使用的,也是本文想要描述的不同设备间一种沟通约定的协议。

列举几个我们的一个操作所经历的过程:
1.地址簿协议DNS/HTTPDNS: 当浏览器中输入一个URL地址,例如 www.baidu.com时,虽然我们知道它的域名,但是不知道具体访问的那台机器的地址是那里,需要用到这个协议去查询,查询到它的IP地址。
2.超文本传输协议HTTP/HTTPS:知道了目标机器地址以后,需要向目标机器提出自己的诉求,你需要知道什么信息,或者提交上去什么信息,例如买东西,要包含买什么,买多少。
3.传输控制协议TCP/用户数据报协议UDP:经过上层应用层的包装后,通过传输层进行传输,设置源和目标的端口号,一般来说使用TCP,TCP会保证包能够到达目的地,如果不能到达的话,会补发至到达。
4.IP协议:经过传输层的包装后,会将请求交给网络层,这就是IP协议,会将源IP地址,目标IP地址都包含进去,也为了目标告知目标是谁给他说的话。这里有一件要说的是,在操作系统中会判断这个地址是给远程的还是给本地的,如果远程的,就要去网关。(设备联网分配IP的DHCP协议再次不做细述)。
5.ARP协议:上面的包装完成后,请求会交与网关,跟唐僧西行取经的感觉类似,需要过关,交换通关文碟。入网时,经过DHCP分配IP后,所得的默认网关地址一般为192.168.1.1,这时候我们需要知道,谁是192.168.1.1,这时候使用的是ARP,广播询问谁是,网关回应,并会告知本地的MAC地址。(其实便于记忆,就记得,本地基本靠吼就行,哈哈。)
6.在出发前的最后一步,是交给链路层,MAC层写入mac地址。
7.路由协议 OSPF/BGP:数据包出网关了之后,可能要一路经历多个路由器才能到达目标服务器,那么中间应该怎么走,一直需要走到最后一个关卡,这时使用到的协议就是路由协议,一般常用的有OSPF和BGP。
8.请求到达后最后一个网关后,又会采取“本地一声吼”的策略,询问目标地址是谁,目标服务器会回复一个MAC地址来,如果对上了,就会取下MAC头到网络层,对上IP头,就会取下来到传输层(TCP),在这层里,对于每个包都会有回复包,说明已经收到了,具体的可以了解下“三次握手”,不反馈的话,源浏览器还会重试的。TCP头里面会有端口号,告知这个数据应该交给操作系统那个端口的程序进行处理。
9.程序拿到数据,处理内容,得到相应的结果,会回复一个http的包,跟来的时候一样,再经过上述的流程,回到浏览器请求的源地址,来告知用户操作结果。

我的天,一个简简单单的操作,可能就是鼠标点击以下就要经过那么多步骤,这还不包括其中如果目标机器是一个集群服务的话(云计算,容器,微服务等),那里该如何处理。

总结下:
1.协议三要素:语法,语意,顺序
2.网络数据包结构:MAC头,IP头,TCP头,HTTP头,数据体
3.网络五层模型:物理层,链路层,传输层,会话层,应用层;

相关文章

  • 什么是TCP/IP协议?三次握手指的是什么?为什么不是两次或四次

    1.背景介绍 要想了解什么是TCP/IP协议,就要知道什么是网络协议。书本上的定义:网络协议是为计算机网络中进行数...

  • 转载:什么是TCP/IP协议?三次握手指的是什么?为什么不是两次

    1.背景介绍要想了解什么是TCP/IP协议,就要知道什么是网络协议。书本上的定义:网络协议是为计算机网络中进行数据...

  • 计算机网络-1.了解网络协议

    既然要讨论网络运维的东西,那首当其冲的应该是去了解我们所使用的计算机网络。就我个人广义上的理解,两台以上设备进行数...

  • 【笔记】计算机网络和因特网

    1.计算机网络和因特网的概念 1.1计算机网络 计算机网络通过传输介质、通信设备和网络通信协议,把分散在不同地点的...

  • 2019-04-04 网络与信息安全基础知识

    主要考点:计算机网络基础知识、计算机网络分类、网络设备、网络标准、网络协议、TCP/IP 协议族、网络安全、网络信...

  • 计算机网络

    掌握计算机网络的基本概念、基本原理和基本方法。掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点...

  • 计算机网络基本要素和结构

    什么是计算机网络 计算机网络的要素 计算机网络的协议 计算机网络的服务 计算机网络的结构 什么是计算机网络 计算机...

  • 网络协议

    计算机网络知识计算机网络也是非常重要的知识点,服务之间通过不同的网络协议进行交互,例如HTTP协议、RPC协议、T...

  • 应用层

    title: 计算机网络 应用层 tag: 计算机网络 应用层协议分类 标准型网络应用 专用网络协议 C/S模式与...

  • 计算机网络体系结构及协议

    知道了解了计算机网络的基本概念,接下来我阐述一下我对计算机网络体系结构及协议的浅薄认识! 计算机网络通讯管理的核心...

网友评论

    本文标题:计算机网络-1.了解网络协议

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