网络编程 --------- 1、网络编程基础知识

1、通信  

    通信的本质其实就是某种物理信号的传输 

    通信需要具备的两个基本条件: 
        (1)媒介(物理层面),例如:线缆、光纤 
        (2)协议(软件层面),例如:网络协议 
 

2、网络 

   网络是一种连接计算机主机和设备的方式,它使数据可以透过网络媒体传播。全球互联网的始网叫做阿帕网,为了使各种不同的计算机之间互联,阿帕网制定一套计算机通信协议(即TCP/IP协议) ,它们针对计算机如何连接和组网 做出了详细的规定。  

   网络采用 分而治之 的方法 
            把网络的功能划分成不同的模块,用分层的形式有机的组合在一起。在每一层定义了很多协议 这些协议的总称 就是 TCP/IP协议 。且每层实现不同的功能,每层之间 向上一层提供服务,同时使用下一层提供的服务 

   网络体系结构 指的是网络的层次结构 和 每层使用的协议  
        两个非常重要的体系结构: 
            OSI 
            TCP/IP 


3、网络协议层次模型


        功能模块之间存在相互调用的关系  ----> 层次关系 

    1) OSI  开放式系统互联 Open System Interconnect 


                七层模型 (理想化模型)

            应用层 :提供各种应用程序的接口 
                    让你的系统知道你的数据包 是哪一个应用程序发出去的

            表示层 :转换数据格式 以及 加密解密
                    主要是对发送/接收的数据 加密解密 压缩解压缩
                    确保一个系统的应用程序发送的数据 能够被另一个系统的应用程序接收和识别

            会话层 : 负责建立连接、维护会话 和 断开连接

            传输层 :主要负责端到端的数据传输 
                    主要起到可靠传输的作用,建立端到端的连接,定义一些数据传输协议和端口

            网络层 :寻址 和 路由 
                    主要负责将数据包从源地址 传输到  目标地址 

            数据链路层 :差错校验、链路管理、流量控制 
                    主要将收到的数据包进行 物理地址(如MAC地址)的封装和解封装 
            
            物理层 :主要是定义物理设备的标准


    2)TCP/IP 四层模型  

        应用层  
            定义了各种应用程序之间的通信协议 
                如: 
                    HTTP 超文本传输协议
                    FTP 文件传输协议
                    SMTP 简单邮件传输协议 
                    SSH  安全的远程登录协议 
                    Telnet 远程登录协议 
                    ...

        传输层  
            主要负责端到端的数据传输,解决数据如何传输的问题 

                TCP :传输层控制协议 Transport Control Protocol         类似于 “打电话”
                        是一种面向连接的传输层协议,能够提供可靠的通信(数据无误、不丢失、不重                              复、按序到达) 
                        ---> 建立连接、三路握手、四次挥手、重发机制 

                UDP : 用户数据报协议 User Datagram Protocol            类似于 “发短信”
                        是一种不可靠的无连接的传输层协议,在数据发送之前,不需要连接 
                        可以进行高效的数据传输 “实时实用”

        网络层 
            主要负责将数据包从源地址 传输到  目标地址,实现不同网络之间的数据交换 
                IP协议 :Internet Protocol  互联网协议      逻辑地址(IP地址)

        网络接口层(数据链路层/物理层)  
            主要负责将数据包从网络层传递到物理层,实现物理层的传输  


    
   注意:网络数据是如何传输的? 
            分层传输 
                数据的封装和拆包的过程   
                每一层实现各自的功能和协议 


4、常见的网络设备 

    集线器(物理层) 
        把数据传输到其他的端口

    交换机(数据链路层)
        物理地址(如MAC地址)的集合 

    路由器(网络层)
        路由选择协议 负责选择最佳的路,选择网络数据的下一站 

    互联网 将所有的网络连接到一起 

    网关 实现不同网络之间的通信  


        ==========================
     ps. 路由器:是使用IP地址寻址,实现从源IP地址 到 目标IP地址的端到端的通信 
                工作原理: 
                    (1)路由器收到数据包,先会提取目标IP地址和子网掩码,计算目标的物理地址
                    (2)根据目标物理地址 查询路由表,如果找到了的目标物理地址,就从相应的出口发送数据到下一站 
                    (3)如果没有找到,就看是否有默认路由,如果有,就从默认路由发送数据到下一站 
                    (4)如果没有指定默认,向源地址发送不可达报文,通知源地址找不到目标地址 
                    (5)如果是直接路由,就直接发送数据到下一站 

5、互联网的地址 IP地址 

    IP地址 :Internet Protocol Address  互联网协议地址 

        互联网网上的每一个接口(网卡)必须要有一个唯一的ip地址 ,协议上的逻辑地址,进行网络通信 用这个ip地址 唯一标识一台计算机 

        ipv4 : 32位    4个字节
        ipv6 :128位   16个字节  

    1)ipv4地址 

        表现形式: 点分十进制 
                    如:192.168.31.111 
                        172.4.0.1 
                    最后都会转换成一个无符号的32位的整数 

        组成: 
            网络号 用来表示每一个局域网  
            主机号 用来表示某个特点的局域网中的主机号 

        分类: 
            A类地址      0 + 网络号(7bits) + 主机号(24bits) 
                        ip地址的范围                          私有ip的范围 
                        0.0.0.0或1.0.0.0 ~ 127.255.255.255    10.0.0.0 ~ 10.255.255.255 

            B类地址     10 + 网络号(14bits) + 主机号(16bits)    
                        ip地址的范围                        私有ip的范围 
                        128.0.0.0 ~ 191.255.255.255         172.16.0.0 ~ 172.31.255.255 
    
            C类地址     110 + 网络号(21bits) + 主机号(8bits)    
                        ip地址的范围                        私有ip的范围 
                        192.0.0.0 ~ 223.255.255.255         192.168.0.0 ~ 192.168.255.255 

            D类地址     1110 + 多播地址 (28bits)
                        224.0.0.0 ~ 239.255.255.255 

            E类地址     留待后用 
                        240.0.0.0 ~ 255.255.255.255 

                特殊的IP地址 
                    127.0.0.1  回环地址  本地测试用 
                    169.254.0.0 ~ 169.254.255.255  自动配置地址 本地链路地址,用于主机自动获取地址失败后的临时通信
                    192.168.0.0 ~ 192.168.255.255  局域网地址 


        问:在设置一个ip地址,如何指定哪些是主机号,哪些是网络号? 
        答:netmask子网掩码  ---> 用来指定ip地址中,哪些是网络号,哪些是主机号 ,netmask中 为1的位  表示网络号为0的位  表示主机号 。

                例子: 
                        ip   192.168.31.104
                    netmask  255.255.255.0 

                    192.168.31.104
                 &  255.255.255.0
                --------------------------
                    192.168.31.0    网络号

6、端口 

    TCP 和 UDP 采用无符号16位端口号 来表示应用程序,TCP和UDP 的端口号是独立的。ip地址用来唯一标识网络中的一台计算机,一台主机可能有多个网络应用程序 

    一台主机网络应用程序由 :   ip地址  +  传输层协议(TCP/UDP) + 端口号   共同确定的 。
    端口号 本质上是一个无符号的short类型的整数: 0 ~ 65535 

            众所周知的端口号: 1 ~ 1023  
                        20/21  ftp  
                        22  ssh  
                        23  telnet  
                        25  smtp  
                        80  http  
                        443  https  
                        53  dns  
                        69  tftp  
                        5900  vnc  
                        ... 

                注册端口号: 1024 ~ 49151   

                动态/私有端口: 49152 ~ 65535  

7、总结 

    1)网络层次模型 
        OSI  七层模型
        TCP/IP 四层模型 

    2) TCP 
       UDP 

    3) IP地址  +  端口号 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/388223.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文献综述过程如何有助于综合各种来源的信息

VersaBot生成文献综述 文献综述过程在通过几个关键机制综合各种来源的信息方面发挥着至关重要的作用; 1. 批判性评估和比较: 你不能简单地单独总结每个来源;你积极地比较和对比他们的发现、方法和理论观点。这可以帮助您识别每个来源的共性…

安卓项目结构与日志工具

文章目录 安卓的项目结构app目录下的结构安卓的日志工具 安卓的项目结构 首先需要切换称Project模式。 .gradle和.idea :这两个目录下放置的都是Android Studio自动生成的一些文件,我们无须关心,也不用编辑。 app :项目中的代码、…

齿轮表面缺陷检测方案

齿轮是一种机械传动元件,通常由具有齿条的圆盘或圆柱体组成,用于传递动力和运动。齿轮通过齿与齿之间的啮合,将动力从一个轴传递到另一个轴,实现速度和扭矩的传递。齿轮通常用于机械设备、车辆传动系统和各种工业机械中。 齿轮通…

【网络世界】传输层协议

🌈前言🌈 欢迎收看本期【网络世界】,本期内容讲解TCP/IP协议栈中的传输层协议,即UDP协议和TCP协议。包含了他们的协议格式,特点等。介绍他们的应用场景,最后对比TCP与UDP协议。此外,还将介绍套接…

电商 API 接口的最佳实践与案例分析

在当今数字化的商业世界中,电商平台的发展日新月异,而 API 接口在其中扮演着至关重要的角色。通过合理地利用电商 API 接口,企业能够实现更高效的运营、更优质的用户体验以及更强大的业务拓展能力。本文将深入探讨电商 API 接口的最佳实践&am…

换根dp学习总结3

我也不想搞这么多,但是这东西真的太难了,因为我还是个蒟蒻。算了蒟蒻继续写这次的总结了 寻找全图最远路径问题——Computer ——题目来源于hdu2196 题意:题目就是说会输入多组数据,每组数据给你一个n,表示结点的总数…

SEO优化之a标签rel属性的使用

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

每日一题 ~乘积最大子数组

. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/maximum-product-subarray/description/ 题目分析 题目要求找出给定整…

基于SpringBoot+Vue的热门网游推荐网站(带1w+文档)

基于SpringBootVue的热门网游推荐网站(带1w文档) 基于SpringBootVue的热门网游推荐网站(带1w文档) 本系统选用B/S结构开发,它是一个提供可以对热门网游推荐进行信息管理的系统,用户可以在该系统获取最新动态,可以结识更多的朋友,产…

基于级联深度学习算法在双参数MRI中检测前列腺病变的评估| 文献速递-AI辅助的放射影像疾病诊断

Title 题目 Evaluation of a Cascaded Deep Learning–based Algorithm for Prostate Lesion Detection at Biparametric MRI 基于级联深度学习算法在双参数MRI中检测前列腺病变的评估 Background 背景 Multiparametric MRI (mpMRI) improves prostate cancer (PCa) dete…

SDK 多版本管理控制利器 SDKMAN 介绍及使用

一、SDKMAN 假如你同时参与了一个使用JDK 8的项目和一个采用JDK 17特性的项目。每次在两个项目之间切换时,你都面临着版本冲突的问题。如果有那么一个工具类似于 Python 中的 anaconda 工具,可以帮助你管理不同版本的 SDK ,是不是非常有用&a…

八股文无用?也许是计算机大学生的重要人生指南!

大家所说的"八股文"其实指的是那些固定、标准化的面试问题和答案,通常涉及特定的知识点和技术概念。 博主本人也是一枚大学生,个人也记背过相关的八股文,比如计算机网络里的TCP和UDP的区别、TCP三次握手和四次挥手的具体过程等等&a…

汽车电子KL15,KLR,KL30等术语解释

KL作为术语,是德语’klemme’的缩写,代表连接器或连接 缩略词解释KL15汽车电源的RUN模式KL50汽车电源的Crank模式KLR汽车电源的ACC模式KL30汽车蓄电池的正极,始终保持带电状态KL31汽车蓄电池的负极,持续与车辆接地连接KL4048V汽车…

遇到Websocket就不会测了?别慌,学会这个Jmeter插件轻松解决....

websocket 是一种双向通信协议,在建立连接后,websocket服务端和客户端都能主动向对方发送或者接收数据,而在http协议中,一个request只能有一个response,而且这个response也是被动的,不能主动发起。 websoc…

OpenCV C++的网络实时视频流传输——基于Yolov5 face与TCP实现实时推流的深度学习图像处理客户端与服务器端

前言 在Windows下使用TCP协议,基于OpenCV C与Yolov5实现了一个完整的实时推流的深度学习图像处理客户端与服务器端,为了达到实时传输的效果,客户端使用了多线程的方式实现。深度学习模型是基于onnxruntime的GPU推理。,实现效果如…

微服务架构三大利器:限流、降级与熔断

文章目录 前言一、限流(Rate Limiting)二、降级(Degradation)三、熔断(Circuit Breaker)四、三者关系总结 前言 限流、降级和熔断是分布式系统中常用的容错策略,它们各自承担着不同的角色&#…

干货 | 2024中国联通算力网络安全白皮书(免费下载)

本白皮书以国家整体安全观为指导,充分发挥网络安全现代产业链链长的主体支撑和融通带动作用,提出算力网络“新质安全、共链可信”的安全愿景和“构建开放融合内生免疫弹性健壮网安智治的一体化安全”的安全目标。从运营商开展网络建设和应用部署的角度出…

WebWorker处理百万数据

Home.vue <template><el-input v-model"Val" style"width: 400px"></el-input><el-button click"imgHandler">过滤</el-button><hr /><canvas id"myCanvas" width"500" height&quo…

Linux系统之DHCP服务配置

1、准备阶段 Windows&#xff08;客户端&#xff09;开启Vmnet8网卡Linux6&#xff08;服务端&#xff09;网络连接选择NAT模式&#xff0c;并配置IP地址为192.168.11.1/24Linux5&#xff08;客户端&#xff09;网络连接选择NAT模式将NAT的DHCP功能取消 2、DHCP服务器相关软件…

宝塔部署springboot vue ruoyi前后端分离项目,分离lib、resources

1、“文件”中创建好相关项目目录,并将项目相关文件传到对应目录 例如&#xff1a;项目名称/ #项目总目录 api/ #存放jar项目的Java项目文件 manage/ #vue管理后端界面 …