【 网络原理 1】 网络编程原理基础知识

本文详细介绍了网络通信中的关键概念,包括IP地址的作用、端口号的标识作用、协议的重要性、协议分层原理、TCP/IP模型、封装与分用过程,以及客户端与服务器的交互。通过实例阐述了两台主机间网络通信的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇

                                 File & IOStream                     

🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇

今日推荐歌曲: death bed (coffee for your head )    -- Powfu / beabadoobee  🎵🎵


 系列文章目录

【 网络原理 1】 网络编程原理基础知识-优快云博客

【网络原理 2】UDP 协议的报文结构和注意事项-优快云博客

【网络原理 3】TCP协议的相关特性(三次握手,四次挥手)(万字详解)看完必懂 !-优快云博客

【网络原理 4 】应用层中 服务器和客户端的传输-优快云博客

【网络原理 5 】网络层中的 ” 主宰 “ IP 协议-优快云博客

【网络原理 6 】数据链路层-优快云博客

【网络原理 7】NAT 机制的工作流程-优快云博客

【网络原理 8】HTTP 协议的基本格式和 fiddler 的用法-优快云博客

【网络原理 9】HTTP协议 请求 & 响应 超详解 看这篇就够-优快云博客

【网络原理 10】HTTPS 协议 工作过程 超细节(精心配图)-优快云博客


目录

前言

一、IP 地址

二、端口号

三、 认识协议

四、协议分层

五、TCP/IP五层(或四层)模型

六、封装和分⽤

两台主机之间的网络通信流程

总结


前言

这里会详细介绍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)有多⻓,上层协议是什么等信息。
  • 数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部,根据⾸部中的"上 层协议字段"将数据交给对应的上层协议处理。

下图为数据封装的过程

下图为数据分⽤的过程

两台主机之间的网络通信流程

通常如下:

  1. 建立连接:客户端向服务器发送连接请求。
  2. 服务器响应:服务器接受连接请求并回复确认。
  3. 数据传输:客户端向服务器发送数据请求,服务器接收并处理请求,并返回相应的数据。
  4. 断开连接:通信结束后,客户端或服务器可以选择关闭连接。

总结

  1. IP地址(Internet Protocol Address):它是分配给设备以在网络上识别和通信的唯一标识符。IPv4地址由32位二进制数表示,通常以点分十进制表示,如192.168.1.1。IPv6地址则由128位二进制数表示,通常以八组十六进制数表示。

  2. 端口号(Port Number):在网络通信中,端口号用于标识特定的应用程序或服务。它是一个16位的数字,范围从0到65535。常见的端口号有一些预留给特定的服务,比如HTTP的80端口,HTTPS的443端口等。

  3. 协议(Protocol):网络通信中的协议是一组规则和约定,用于设备之间的通信。常见的网络协议包括TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)、HTTP(Hypertext Transfer Protocol)、HTTPS(HTTP Secure)等。

  4. 协议分层(Protocol Layering):网络协议分层是指将网络通信划分为不同的层次,每个层次负责不同的功能。常见的网络协议分层体系是OSI模型(Open Systems Interconnection model),包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

  5. 封装(Encapsulation):封装是指在发送端将数据添加到协议的头部和尾部,形成一个数据包或帧,以便在网络中传输。在接收端,数据包或帧被解封,以获取原始数据。

  6. 分用(Multiplexing):分用是将多个数据流合并到一个信道或介质中传输的过程。多路复用技术允许多个信号通过同一信道传输,从而提高了通信效率。

  7. 客户端(Client):客户端是指向服务器请求服务或资源的设备或程序。它通常是在用户端运行的软件,例如Web浏览器。

  8. 服务器(Server):服务器是指提供服务或资源的设备或程序。它通常是在网络中运行的软件,如Web服务器、邮件服务器等。

  9. 请求(Request):请求是客户端向服务器发送的消息,请求特定的服务或资源。例如,在Web浏览器中输入网址并按下回车键就是向服务器发送请求的行为。

  10. 响应(Response):响应是服务器对客户端请求的回复,包含请求的服务或资源。例如,当客户端请求一个网页时,服务器会发送包含该网页内容的响应。

  11. 建立连接:客户端向服务器发送连接请求。
  12. 服务器响应:服务器接受连接请求并回复确认。
  13. 数据传输:客户端向服务器发送数据请求,服务器接收并处理请求,并返回相应的数据。
  14. 断开连接:通信结束后,客户端或服务器可以选择关闭连接。

真嘟超级详细,都是手敲的 ,希望能帮助大伙,博客不易.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值