• 网络编程的原理和基础概念


    目录

    IP地址

    端口号

    协议 

    协议分层 

    OSI七层网络模型

    TCP(传输层)/IP(网络)五层模型 

    五元组 

    基础概念 

    网络编程的原理 

    网络编程模型


    在了解网络编程之前先要知道什么是网络。

    网络指的是多台计算机之间进行连接而形成像网结构的一种形象比喻,而网络通讯就是指网络中的计算机进行信息交流和资源共享的操作。根据通讯规模的大小又可将网络分成局域网(LAN)和广域网(WAN),这个大家都知道就不详说。为了实现网络通信,就必须知道要访问的主机地址,也就是IP,还要知道主机上上面的进程也就是端口号(Port),同时还要知道它们之间是通过什么方式沟通的,也就是要知道它们沟通的协议是什么。这三点是网络通讯最基本的条件,这就好比你去寄快递,寄快递就要在快递单上面写对方的地址和电话号码,然后你们决定是通过顺丰送还是圆通送。地址对应IP,对方电话号码对应端口号,邮寄方式对应协议。

    IP地址

    IP地址是用来访问电脑主机的,它由32位二进制数组成,占用4个字节,比如“127.0.0.1”这个IP就表示本机地址。

    端口号

    端口号是电脑中进程的访问入口,就像之前MySQL一样,它的端口号就是3306,你如果在DS窗口中没有输入正确的端口号,你就不能访问到MySQL进程。端口号在计算机中占两个字节,可表示的数字范围为0~65535。 

    协议 

    网络通讯中的一种约定,比如电子邮件传输需要遵循SMTP协议,文件传输需要遵循FTP协议。这就好比你和外国人交流,就要说英语,和国人交流你就要说汉语。

    协议分层 

    因为协议就是一种约定,都是可以自定义的,因此在计算机早期就有很多约定,比如上面提到的。但是从软硬件层面上面来看,最主要还是分为七层,这也就是现在的OSI七层网络模型。七层模型中从下到上依次是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。其中上面的三层可以统称为一层也就是应用层,我们将第二种表示形式称为TCP/IP五层模型

    OSI七层网络模型

    TCP(传输层)/IP(网络层)五层模型 

    五元组 

    在TCP/IP协议中用五元组来标识一个网络通信,五元组包含:

    1.源IP

    2.目标IP

    3.源端口号

    4.目的端口号

    5.协议号 

    用五元组来标识一次网络通讯:

    基础概念 

    客户端:主动请求数据的一方

    服务器:被动接收请求的一方

    请求(request):客户端给服务器发送请求的数据

    响应(response):服务器给客户端返回的数据

    客户端与服务器交流的方式:

    • 一问一答:客户端发一个请求,服务器返回一个响应
    • 一问多答:客户端发一个请求,服务器返回多个响应 
    • 多问一答:客户端发多个请求,服务器返回一个响应
    • 多问多答:客户端发多个请求,服务器返回一个响应

    网络编程的原理 

    网络上不同的主机通过不同的进程,以编程的形式实现网络数据传输

    在我们自己编程的时候肯定是不可能有多台主机的,但是一台电脑上面,只要进程不同也可以实现网络编程。

    网络编程模型

    1.客户端构造请求并发送给服务器

    2.服务器接收到请求并解析

    3.服务器处理请求里面的业务

    4.服务器将处理的结果返回给客户端

    5.客户端接收响应并显示

    注意:客户端和服务器是相对的,主要看谁发送,谁被动接收 

    协议层之间的封装和分用 

    • 不同的协议层对数据包有不同的称呼,在传输层叫做段,在网络层叫做数据报,在链路层叫做帧。
    • 应用层数据通过协议栈发送到网络上,每层协议都要加上一个数据首部,称为封装。
    • 首部信息中包含了一些类似于首部的长度,荷载长度,上层协议是什么等。
    • 数据封装成帧后发到传输介质上,到达目的主机后每层协议在去掉相应的首部,根据首部中的“上层协议字段”将数据交给对应的上层协议处理。

    发送方层层构造数据就叫做封装,接收方层层解析数据就叫做分层。 

     

     

    下面演示一个案例:

  • 相关阅读:
    解决Python中使用requests库遇到的身份验证错误
    阿里 P7 到底是怎样的水平?
    王道计算机考研 操作系统学习笔记 + 完整思维导图篇章三: 内存管理
    【Tensorflow 2.12 简单智能商城商品推荐系统搭建】
    C语言--每日五道选择题--Day3
    gin-vue-admin V2.5手动创建后台API和调用流程
    Android12 展锐sl8541平台USB转串口(pl2303、ch343)以及APP访问权限
    Sophon CE社区版上线,免费Get轻量易用、高效智能的数据分析工具
    RK3568平台开发系列讲解(调试篇)系统运行相关频率设置
    企业信息化安全方案设计实战参考
  • 原文地址:https://blog.csdn.net/yahid/article/details/126077093