网络协议系列一 - 基本认识
Posted 1024星球
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络协议系列一 - 基本认识相关的知识,希望对你有一定的参考价值。
互联网的出现,彻底改变了人们的生活方式,足不出户就可以购物、聊天、看电影、买车票等。
思考:数据是如何从一个设备传递到另一个设备的?
这一切都是由网络协议来规定的。没有网络协议,就没有今天的互联网/物联网。
一、搭建环境
要想真正了解网络之间数据如何传输?协议的约束条件?就需要一套能够发起网络请求和处理请求的环境。
1.1. 客户端
使用浏览器即可(会基本的html+CSS+JS即可)。
1.2. 服务端
以Java为例。
1.2.1. 必装工具
-
JDK:https://www.oracle.com/java/technologies/javase-downloads.html
-
Tomcat:https://tomcat.apache.org/
-
Intellij IDEA Ultimate:https://www.jetbrains.com/idea/download/
运行Tomcat
Windows:
/tomcat-package/bin/startup.bat
Mac或Linux:
/tomcat-package/bin/startup.sh
1.2.2. Java的跨平台原理
JVM(Java Virtual Machine):Java虚拟机。
Java跨平台:一次编译,到处运行。
- 编译生成和平台无关的字节码文件(
class
文件) - 由对应平台的JVM解析字节码为机器指令(010101)
- 如果代码有语法错误,将编译失败,并不会生成字节码文件(失败后不会运行JVM程序,最终导致Java程序运行失败)
1.2.3. C/C++的跨平台原理
C/C++的跨平台:使用平台相关的编译器生成对应平台的可执行文件。
扩展:C++的是C Plus Plus的简写。
1.2.4. 客户端和服务器交互
客户端发送网络请求给服务器,服务器使用Tomcat软件监听客户端发送的请求(含端口号),然后执行对应的Java代码把结果返给客户端。而字节码文件需要JVM运行环境才能正常运行(Tomcat本身也是Java编写的)。
1.3. 网络抓包工具
浏览器(Chrome、Firefox)、Fiddler、Wireshark、Charles
1.4. 模拟网络工具
用来模拟网络环境(交换机、路由器之间的切换)。
Xshell(只有Windows版本)、Packet Tracer(注册地址)、GNS3
二、什么是协议?
在生活中我们会经常遇到租房协议,协议内容约束了房东和房客之间的关系和条件。但租房协议基本没有统一(基本上每个人的租房协议格式都不太一样),让双方在法律层面都有所顾忌。试想一下,如果租房协议有一个国家/国际标准,会怎么样呢?
2.1. OSI
网络协议的概念基本和上面的描述一致,客户端向服务端发送数据,服务端向客户端响应数据,如果没有固定的标准数据格式,就会产生数据混乱,而且极其低效。所以为了更好地促进互联网网络的发展,国际标准化组织ISO在1985年制定了网络互连模型OSI。
OSI参考模型(Open System Interconnect Reference Model),具有7层结构:
2.2. TCP/IP
在实际应用场景中,其实只有4层,即TCP/IP协议:
在学校或学术研究机构,会把数据链路层也加上去,因为数据链路层和物理层非常重要,对了解数据传输本质有关键性作用。
2.3. Client-Server
客户端请求服务端过程:
客户端的数据经过每一层格式化包装后,通过物理层传给服务端,然后服务端反向解包最终得到客户端传入的原始数据。
无论是什么协议,都要经过上面的过程。因为不同协议区别基本上是在应用层。
以上是关于网络协议系列一 - 基本认识的主要内容,如果未能解决你的问题,请参考以下文章