01-计算机网络协议核心知识|了解网络协议

一、前言

复习网络协议核心知识,进一步夯实基础,为后面 参与物联网、音视频、直播等领域的项目做一定的知识储备

1. 互联网

互联网的出现,彻底改变了人们的生活方式,足不出户就可以购物、聊天、看电影、买车票、上班等

  • 思考:数据是如何从一个设备传递到另一个设备的?
    • 这一切都是由网络协议来规定的。没有网络协议,就没有今天的互联网

2.为什么要学习网络协议?

  • 互联网、移动互联网、物联网,都离不开网络协议
    • 最熟悉的网络协议:HTTP
    • 为了满足各种需求,有各式各样的网络协议(HTTPS、SMTP、MQTT、RTMP等)
  • 随着物联网、音视频、直播等领域的发展,企业提高对开发人员网络基本功的要求,经常问网络协议的面试题
    • TCP和UDP的区别?说一下它们的报文格式?
    • TCP的流量控制和和拥塞控制?TCP如何实现可靠性传输?
    • 为什么连接是3次握手,关闭是4次挥手?
    • 7层模型与4层模型的区别?每一层的作用是什么?
    • 交换机与路由器的区别?
    • ……

二、搭建环境

要想真正了解网络之间数据如何传输?协议的约束条件?就需要一套能够发起网络请求和处理请求的环境。

1.1. 客户端

使用浏览器即可(会基本的HTML+CSS+JS即可)。

1.2. 服务端

以Java为例。

1.2.1. 必装工具

运行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. 网络抓包工具

浏览器(ChromeFirefox)、FiddlerWiresharkCharles

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

客户端请求服务端过程:

客户端的数据经过每一层格式化包装后,通过物理层传给服务端,然后服务端反向解包最终得到客户端传入的原始数据。

无论是什么协议,都要经过上面的过程。因为不同协议区别基本上是在应用层。

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYmFTs70' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片