🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇
File & IOStream
🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇
今日推荐歌曲: death bed (coffee for your head ) -- Powfu / beabadoobee 🎵🎵
系列文章目录
【网络原理 2】UDP 协议的报文结构和注意事项-优快云博客
【网络原理 3】TCP协议的相关特性(三次握手,四次挥手)(万字详解)看完必懂 !-优快云博客
【网络原理 4 】应用层中 服务器和客户端的传输-优快云博客
【网络原理 5 】网络层中的 ” 主宰 “ IP 协议-优快云博客
【网络原理 8】HTTP 协议的基本格式和 fiddler 的用法-优快云博客
【网络原理 9】HTTP协议 请求 & 响应 超详解 看这篇就够-优快云博客
【网络原理 10】HTTPS 协议 工作过程 超细节(精心配图)-优快云博客
目录
前言
这里会详细介绍IP地址、端口号、协议、协议分层、封装、分用、客户端、服务器、请求、响应、两台主机之间的网络通信流程 网络原理知识
一、IP 地址
概念
IP地址主要⽤于标识⽹络主机、其他⽹络设备(如路由器)的⽹络地址。简单说,IP地址⽤于定位主 机的⽹络地址。
就像我们发送快递⼀样,需要知道对⽅的收货地址,快递员才能将包裹送到⽬的地。
格式
IP地址是⼀个32位的⼆进制数,通常被分割为4个“8位⼆进制数”(也就是4个字节),如: 01100100.00000100.00000101.00000110。 通常⽤“点分⼗进制”的⽅式来表⽰,即a.b.c.d的形式(a,b,c,d都是0~255之间的⼗进制整数)。 如:100.4.5.6。
二、端口号
概念
在⽹络通信中,IP地址⽤于标识主机⽹络地址,端⼝号可以标识主机中发送数据、接收数据的进程。 简单说:端⼝号⽤于定位主机中的进程。
类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货⼈(端⼝号)。
格式
端⼝号是0~65535范围的数字,在⽹络通信中,进程可以通过绑定⼀个端⼝号,来发送及接收⽹络数 据。
问题: 有了IP地址和端⼝号,可以定位到⽹络中唯⼀的⼀个进程,但还存在⼀个问题,⽹络通信是基于⼆进 制0/1数据来传输,如何告诉对⽅发送的数据是什么样的呢? ⽹络通信传输的数据类型可能有多种:图⽚,视频,⽂本等。同⼀个类型的数据,格式可能也不同, 如发送⼀个⽂本字符串“你好!”:如何标识发送的数据是⽂本类型,及⽂本的编码格式呢? 基于⽹络数据传输,需要使⽤协议来规定双⽅的数据格式。
三、 认识协议
概念
协议,⽹络协议的简称,⽹络协议是⽹络通信(即⽹络数据传输)经过的所有⽹络设备都必须共同遵 从的⼀组约定、规则。如怎么样建⽴连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能 相互通信交流。 协议(protocol)最终体现为在⽹络上传输的数据包的格式。
作⽤
为什么需要协议? 比特就业课 就好⽐⻅⽹友,彼此协商胸⼝插⽀玫瑰花⻅⾯,这就是⼀种提前的约定,也可以称之为协议。
计算机之间的传输媒介是光信号和电信号。通过"频率"和"强弱"来表⽰0和1这样的信息。要想传递 各种不同的信息,就需要约定好双⽅的数据格式。
• 计算机⽣产⼚商有很多;
• 计算机操作系统,也有很多;
• 计算机⽹络硬件设备,还是有很多;
如何让这些不同⼚商之间⽣产的计算机能够相互顺畅的通信? 就需要有⼈站出来,约定⼀个共同的标准,⼤家都来遵守,这就是⽹络协议;
四、协议分层
对于⽹络协议来说,往往分成⼏个层次进⾏定义。 什么是协议分层 协议分层类似于打电话时,定义不同的层次的协议:
在这个例⼦中,我们的协议只有两层;但是实际的⽹络通信会更加复杂,需要分更多的层次。
分层的作⽤
为什么需要⽹络协议的分层? 分层最⼤的好处,类似于⾯向接⼝编程:定义好两层间的接⼝规范,让双⽅遵循这个规范来对接。 在代码中,类似于定义好⼀个接⼝,⼀⽅为接⼝的实现类(提供⽅,提供服务),⼀⽅为接⼝的使⽤ 类(使⽤⽅,使⽤服务):
• 对于使⽤⽅来说,并不关⼼提供⽅是如何实现的,只需要使⽤接⼝即可
• 对于提供⽅来说,利⽤封装的特性,隐藏了实现的细节,只需要开放接⼝即可。
这样能更好的扩展和维护,如下图:
五、TCP/IP五层(或四层)模型
TCP/IP模型是一种用于描述计算机网络中数据传输过程的分层架构。通常将其分为四层或五层,取决于不同的划分方法。以下是TCP/IP模型的各个层次及其功能:
五层模型
1. 物理层(Physical Layer):
- 这是最低层,涉及网络的物理连接和信号传输方式。它定义了数据在物理介质上如何传输,例如电缆、光纤、无线电波等。
2. 数据链路层(Data Link Layer):
- 此层处理直接连接的设备之间的通信,主要关注数据帧的传输。它包括错误检测、帧同步和流量控制等功能。常见的协议有以太网、Wi-Fi等。
3. 网络层(Network Layer):
- 这一层负责数据包在网络中的路由和转发。它处理逻辑地址(如IP地址)和路由选择,确保数据包可以从源设备到达目标设备。IP(Internet Protocol)是这一层的主要协议。
4. 传输层(Transport Layer):
- 这一层提供端到端的数据传输服务。它负责分段、数据完整性和流量控制。TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是这一层的主要协议。TCP提供可靠的连接,UDP则是不可靠的。
5. 应用层(Application Layer):
- 这是最高层,直接与用户应用程序交互。它负责提供特定的网络服务,例如HTTP、FTP、SMTP、DNS等。
四层模型
四层模型是另一种看待TCP/IP架构的方法,在这种模型中,通常合并物理层和数据链路层为一个层级,称为**网络接口层(Network Interface Layer)**,其他层次与五层模型相同:
1. **网络接口层(Network Interface Layer)**:
- 包括物理和数据链路相关的功能,处理设备之间的直接通信。
2. **网络层(Network Layer)**:
- 与五层模型中的网络层相同,负责数据包的路由和IP地址的管理。
3. **传输层(Transport Layer)**:
- 与五层模型中的传输层相同,处理端到端通信。
4. **应用层(Application Layer)**:
- 负责与应用程序交互,提供高级网络服务。
这两种模型都用于描述网络通信的不同方面,四层模型更接近实际的TCP/IP结构,而五层模型则提供了更详细的分层视角。
六、封装和分⽤
- 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报 (datagram),在链路层叫做帧(frame)。
- 应⽤层数据通过协议栈发到⽹络上时,每层协议都要加上⼀个数据⾸部(header),称为封装 (Encapsulation)。
- ⾸部信息中包了⼀些类似于⾸部有多⻓,载荷(payload)有多⻓,上层协议是什么等信息。
- 数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部,根据⾸部中的"上 层协议字段"将数据交给对应的上层协议处理。
下图为数据封装的过程
下图为数据分⽤的过程
两台主机之间的网络通信流程
通常如下:
- 建立连接:客户端向服务器发送连接请求。
- 服务器响应:服务器接受连接请求并回复确认。
- 数据传输:客户端向服务器发送数据请求,服务器接收并处理请求,并返回相应的数据。
- 断开连接:通信结束后,客户端或服务器可以选择关闭连接。
总结
-
IP地址(Internet Protocol Address):它是分配给设备以在网络上识别和通信的唯一标识符。IPv4地址由32位二进制数表示,通常以点分十进制表示,如192.168.1.1。IPv6地址则由128位二进制数表示,通常以八组十六进制数表示。
-
端口号(Port Number):在网络通信中,端口号用于标识特定的应用程序或服务。它是一个16位的数字,范围从0到65535。常见的端口号有一些预留给特定的服务,比如HTTP的80端口,HTTPS的443端口等。
-
协议(Protocol):网络通信中的协议是一组规则和约定,用于设备之间的通信。常见的网络协议包括TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)、HTTP(Hypertext Transfer Protocol)、HTTPS(HTTP Secure)等。
-
协议分层(Protocol Layering):网络协议分层是指将网络通信划分为不同的层次,每个层次负责不同的功能。常见的网络协议分层体系是OSI模型(Open Systems Interconnection model),包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
-
封装(Encapsulation):封装是指在发送端将数据添加到协议的头部和尾部,形成一个数据包或帧,以便在网络中传输。在接收端,数据包或帧被解封,以获取原始数据。
-
分用(Multiplexing):分用是将多个数据流合并到一个信道或介质中传输的过程。多路复用技术允许多个信号通过同一信道传输,从而提高了通信效率。
-
客户端(Client):客户端是指向服务器请求服务或资源的设备或程序。它通常是在用户端运行的软件,例如Web浏览器。
-
服务器(Server):服务器是指提供服务或资源的设备或程序。它通常是在网络中运行的软件,如Web服务器、邮件服务器等。
-
请求(Request):请求是客户端向服务器发送的消息,请求特定的服务或资源。例如,在Web浏览器中输入网址并按下回车键就是向服务器发送请求的行为。
-
响应(Response):响应是服务器对客户端请求的回复,包含请求的服务或资源。例如,当客户端请求一个网页时,服务器会发送包含该网页内容的响应。
- 建立连接:客户端向服务器发送连接请求。
- 服务器响应:服务器接受连接请求并回复确认。
- 数据传输:客户端向服务器发送数据请求,服务器接收并处理请求,并返回相应的数据。
- 断开连接:通信结束后,客户端或服务器可以选择关闭连接。
真嘟超级详细,都是手敲的 ,希望能帮助大伙,博客不易.