从理论到实践网络编程模型:(BIO、NIO、AIO)同步与异步模型的原理与应用 (三)

网络分层模型与协议

现代网络通信技术的核心在于分层模型, 为了方便管理,每一层负责的事情不同(加密、转码等等),故障以后能够高效处理通过各层对下层的依赖和对上层的适配 。不同的设备和应用可以实现高效、可靠的通信。每一个层次都有对应的协议,地域法律和宪法的关系,地域法律是上层,宪法是下层,上层部分要包括下层的所有内容。

应用层协议:HTTP、FTP、SMTP

在网络通信的最高层,应用层协议负责处理特定类型的数据交流(客户端和服务器)。以下是三种常见的应用层协议:

  1. HTTP(HyperText Transfer Protocol) :用于网页浏览,是网络上信息交换的基础协议。请求行、请求头和请求正文。按F12------>Network------>请求标头
  • 请求行 请求方式(get、post···) 请求资源路径 协议版本
  • 请求头 一些信息携带 如:接收数据格式长度、浏览器信息等等
  • 请求体 提交post存放参数
  • HTTP的基本工作流程(http的三次握手)
    客户端发送请求:当你在浏览器中输入一个网址并按下回车时,浏览器会向服务器发送一个HTTP请求。
    服务器处理请求:服务器收到请求后,会处理这个请求,比如找到对应的网页或数据。
    服务器发送响应:处理完请求后,服务器会把结果发送回浏览器,这个结果就是HTTP响应。
    客户端接收响应:浏览器接收到响应后,会显示网页内容。

https是在http上加了一层加密

  1. FTP(File Transfer Protocol) :用于文件传输,提供了在客户端和服务器之间上传和下载文件的功能。

  2. SMTP(Simple Mail Transfer Protocol):用于电子邮件的发送和接收,保证邮件能够在不同服务器之间传输。

传输层:TCP/UDP端口

传输层协议如TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)负责在主机之间传输数据。每种协议都有其独特的特性:

  1. TCP:提供可靠的连接,保证数据包按序到达。这对于需要精确数据传输的应用非常重要,如网页浏览和文件传输。
  2. UDP:提供快速但不可靠的数据传输,没有连接建立和错误校验的过程,适用于对速度要求高但对数据完整性要求较低的应用,如视频流和在线游戏。

端口号用于标识特定的应用进程。常见的端口号如FTP的21端口,HTTP的80端口和SMTP的25端口。

网络层:IP地址

网络层协议最常见的是IP(Internet Protocol)。IP地址用于标识网络中的每一台设备。IP协议负责将数据包从源地址传送到目的地址。

  1. IPv4:采用32位地址,广泛使用但地址空间有限。
  2. IPv6:采用128位地址,提供了更大的地址空间以应对互联网设备急剧增加的需求。
数据链路层:以太网与MAC地址

数据链路层主要负责在同一网络中的设备之间传输数据。以太网协议是这一层中最常见的协议之一。以下是其关键要素:

  1. 以太网帧:电信号数据被打包成帧,每个帧的最大长度为1518字节。
  2. MAC地址:每个设备的网卡都有一个唯一的MAC地址,用于在局域网内识别设备。帧的表头包含源和目的MAC地址。
物理层:电信号

在网络通信的最底层,电信号用于在物理介质上传输数据。这一层包括了电缆、光纤和无线电波等传输介质。

数据封装过程

  1. 电信号到以太网帧:电信号数据被打包成以太网帧,帧的长度为1518字节,其中表头包含源和目的MAC地址(18字节)。

  2. IP数据包:在数据链路层之上,网络层将数据封装成IP数据包,并将重要的网络标识信息(如IP地址)写入数据包中。

  3. TCP/UDP数据包:在传输层,数据被进一步封装成TCP或UDP数据包,包含应用层数据和传输层标头(如端口号)。

  4. 应用层数据:最终,应用层协议如FTP、HTTP和SMTP将应用标头写入数据包内,实现特定类型的数据交流。

从理论到实践网络编程模型:(BIO、NIO、AIO)同步与异步模型的原理与应用 (一)
从理论到实践网络编程模型:(BIO、NIO、AIO)同步与异步模型的原理与应用 (二)
从理论到实践网络编程模型:(BIO、NIO、AIO)同步与异步模型的原理与应用 (三)

相关推荐
yaoxin5211231 天前
384. Java IO API - Java 文件复制工具:Copy 示例完整解析
java·开发语言·python
编程牛马姐1 天前
独立站SEO流量增长:提高Google排名的优化方法
前端·javascript·网络
NotFound4861 天前
实战指南如何实现Java Web 拦截机制:Filter 与 Interceptor 深度分享
java·开发语言·前端
2401_873479401 天前
如何从零搭建私有化IP查询平台?数据采集、清洗、建库到API发布全流程
服务器·网络·tcp/ip
一 乐1 天前
医院挂号|基于springboot + vue医院挂号管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·医院挂号管理系统
鱼鳞_1 天前
Java学习笔记_Day29(异常)
java·笔记·学习
FS_Marking1 天前
CWDM vs DWDM:区别是什么?
网络
烟锁池塘柳01 天前
一文讲透 C++ / Java 中方法重载(Overload)与方法重写(Override)在调用时机等方面的区别
java·c++·面向对象
一叶飘零_sweeeet1 天前
深入拆解 Fork/Join 框架:核心原理、分治模型与参数调优实战
java·并发编程
云烟成雨TD1 天前
Spring AI Alibaba 1.x 系列【23】短期记忆
java·人工智能·spring