网络通信基础

news2024/11/24 4:51:15

2022年圣诞节到来啦,很高兴这次我们又能一起度过~

祝大家圣诞快乐🎄

网络互连的目的是进行网络通信, 也即是网络数据传输, 再具体一点, 是网络主机中的不同进程间, 基于网络传输数据.

 

那么, 在组建的网络中, 如何判断到底是从哪台主机, 将数据传输到那台主机呢? 这就需要使用IP地址来标识了.

IP地址

概念

IP地址 (Internet Protocol Address) 是指互联网协议地址, 又译为网际协议地址. 

IP地址是IP协议提供的一种统一的地址格式, 它为互联网上的每一个网络和每一台主机分配一个逻辑地址, 以此来屏蔽物理地址的差异.

简单来说, IP地址用于定位主机的网络地址.

就像我们发收快递一样, 需要知道对方的地址才能发收快递, 才能把你的包裹送到你手里, 不会送错.

格式

IP地址是一个32位的二进制数, 通常被分割为4个 “8位二进制数”  (也就是4个字节), 如:
01100100.00000100.00000101.00000110.

通常用 "点分十进制" 的方式来表示, 即 a.b.c.d 的形式 (a,b,c,d都是0~255之间的十进制整数) . 如:127.0.0.1

特殊IP

像上面写的127.0.0.1就是特殊IP,  127.*的IP地址用于本机环回测试, 通常都是127.0.0.1

端口号

IP地址解决了网络通信时, 定位主机的问题, 那么问题又来了, 数据传输到目的主机后, 由哪个进程来接收数据呢, 这个时候就需要端口号来标识了.

概念

在网络通信中, 端口号用来标识主机中发送数据, 接收数据的进程. 总的来说就是: 端口号用于定位主机中的进程.

类似于发送快递, 不仅仅需要收货地址(IP地址), 还需要写收货人(端口号).

格式

端口号是 0~65535 范围的数字, 在网络通信中, 进程可以通过绑定一个端口号, 来发送及接收网络数据.

注意

两个不同的进程, 不能绑定同一个端口号, 但一个进程可以绑定多个端口号.

一个进程启动后, 系统会随机分配一个端口(这个端口一般被称之为启动端口), 在代码里面, 进入网络编程时, 需要绑定端口号(用于收发数据的端口).

认识协议

我们都知道, 网络通信是基于二进制 0/1 数据来传输的, 然而我们平时需要传输的数据可能会有: 图片 视频 文字等等, 不同类型的数据, 格式大概率是不同的, 要是大家想发什么发什么我们是看不懂数据的, 所以我们就需要协议来规范双方的数据格式.

概念

网络协议, 是网络通信 (即网络数据传输), 经过的所有网络设备 都必须遵守的一组约定 or 规则. 他通常由三要素组成:

  1. 语法: 即数据与控制信息的结构或格式
  2. 语义: 需要发出哪种控制信息, 完成什么动作或者做出什么响应
  3. 时序: 对于事件实现顺序的说明

网络协议最终体现为网络上传输的数据包的格式.

协议的作用

为什么需要协议呢?

因为计算机厂商很多, 操作系统也很多, 各种计算机网络设备也很多, 为了让大家都能顺利的进行通信, 就需要约定一个通用的规则大家一起遵守, 这就是网络协议.

端口

系统的端口号是 0-65535, 其中 0-1023被称为知名端口号

例如:

  1. 22端口, 预留给SSH服务器绑定SSH协议
  2. 80端口, 预留给Http服务器绑定Http协议

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA物联网云平台源码/Modbus/视频接入 物联网智能看板源码

JAVA物联网云平台使用 Java 语言、主流技术组合(MQTT、Spring Boot、Shiro、MyBatis、Druid、Ehcache、Thymeleaf、Bootstrap、Swagger)开发,支持多数据源,支持代码一键生成。 1、包含物联网云平台源码(源码全部开放&a…

【Three.js入门】灯光与阴影、平行光阴影属性、聚光灯的属性和应用

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端 📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀未…

百趣代谢组学分享:针灸改善乳腺癌相关性疲劳!非靶代谢组学…

非靶代谢组学肠道菌群测序:改善乳腺癌相关性疲劳—针灸! 文章标题:Acupuncture ameliorates breast cancer-related fatigue by regulating the gut microbiota-gut-brain axis 发表期刊:Frontiers in Endocrinology 影响因子&#xff1…

HTML5 新增元素

文章目录HTML5 新增元素概述headernavarticleasidesectionfooter表单元素新增type属性值(验证型)新增type属性值(取值型)output元素addressprogressmeterfigure 和 figcaptionfieldset 和 legendascriptHTML5 新增元素 概述 HTM…

BOM对象

1、什么是BOM BOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 window。 BOM 由一系列相关的对象构成,并且每个对象都提供了很多方法与属性。 BOM 缺乏标…

B端产品-筛选功能如何设计

相信大家在设计B端产品时,最常打交道的就是列表,而列表最常用的一个功能就是搜索,别小看一个简简单单的搜索功能,其实里边的门道也是有很多的。那么如何设计一个好用的搜索栏呢?今天就与大家分享一下,自己负…

【动态规划篇】最少分割回文 编辑距离 不同的子序列

🌠作者:阿亮joy. 🎆专栏:《数据结构与算法要啸着学》 🎇座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉…

音视频技术开发周刊 | 277

每周一期,纵览音视频技术领域的干货。新闻投稿:contributelivevideostack.com。GNNear:基于近内存处理的大规模图神经网络训练加速器图神经网络(GNNs)已经成为分析非欧几里得图数据的最新算法。然而,实现高效的GNN训练是一项挑战&…

西门子1513CPU冗余组态

西门子1513R冗余配置 1、打开博图16软件,新建项目,添加新设备,在弹出的控制器目录下找到CPU 1513R-1 PN硬件,然后系统自动生成PLC_1和PLC_2; 2、打开设备组态中的网络视图,添加接口模块; 3、在…

Springboot 统计 代码执行耗时时间 ,玩法多到眼花

前言 近日群里有萌新提到关于统计代码执行时间的事: 开始 System.currentTimeMillis() 减去 结束 System.currentTimeMillis() 等于 耗时 其实我个人感觉OK的,就这样就蛮好的,很多项目都是这样用的。 简简单单的挺好。 这一篇就是 …

基于Java( jsp+servlet+javabean)+SQL sever 2017实现(Web)高校选课管理系统【100010058】

一、需求分析 开发意义: 随着信息技术不断向深入发展,越来越多的学校开始着手信息化建设。其中学生选课、成绩信息化管理就是其中重要的一块内容。学生选课与成绩信息规模大、项目条数多、信息量庞大,传统的人工管理方式显然已经无法满足要求…

买不到的数目(蓝桥杯C/C++A组真题详解)

题目详细: 题目思路: 对于这个题有一个定理 如果 a,b 均是正整数且互质,那么由 axby,x≥0,y≥0 不能凑出的最大数是 : a*b-a-b 具体的证明过程这里就不赘述 感兴趣的同学可以自行查找 这里就提供一种思…

rk3568 | rk平台GPIO冲突检测小技巧

上一篇我们讲解了如何编写gpio驱动,但是实际操作中,经常发现gpio引脚被占用的情况发生,那么本篇文章就详细讲解rxw平台下如何快速定位gpio复用问题以及如何解决。 一、GPIO寄存器查找 要想查看某个GPIO引脚可以配置的功能以及地址信息&…

Http协议基础

Http 是什么? Http 作为 WWW 的重要组成部分被提出 (World Wide Web) 而当时的 WWW 是为了帮助研究者更好的进行知识共享 基本理念:文档之间的相互关联形成超文本,最终连成相互参阅的 WWW Http (Hyper Text Transfer Protocol) 用于定义文…

QUIC的优势与缺陷

被寄予厚望的下一代互联网传输协议,QUIC究竟有哪些优点呢? 总结如下: 多路复用:QUIC升华了HTTP/2中的多路复用技术,实现了基于互相独立的多流(多通道)数据传输,从根本上解决了TCP存在…

基于C语言学生信息教务管理系统编程设计

一.实现功能 1.从键盘添加学生信息 2.从文件添加学生信息 3.显示学生信息到屏幕 4.显示学生信息到文件 5.删除学生信息 6.插入学生信息 7.查找学生信息 8.成绩排名 二、相关代码 #include<stdio.h> #include<stdlib.h> //使用malloc函数以及exit函数 #include<…

力扣(LeetCode)1759. 统计同构子字符串的数目(C++)

题目描述 双指针数学 根据同构字符串的定义&#xff0c;还有示例&#xff0c;发现同构子字符串的数量&#xff0c;只和字母相同的区间有关。如abbcccaa&#xff0c;有 444 个影响答案的区间&#xff0c;直观切分为a bb ccc aa&#xff0c;用空格划分区间。遍历的任务就是维护这…

灵动岛前端Ui

一、前言 灵动岛&#xff08;Dynamic Island &#xff09;是什么&#xff1f; 灵动岛&#xff0c;是苹果公司iPhone 14 Pro系列 [2] 交互UI&#xff0c;让虚拟软件和硬件的交互变得更为流畅。当有来电、短信等通知时&#xff0c;灵动岛会变化它的形态&#xff0c;以便让用户能…

【大数据】M1 mac win docker安装kafka+mysql+canal

文章目录kafkadocker-compose创建kafka容器启动以后&#xff0c;访问容器&#xff0c;并且发送消息测试问题Exception in thread "main" kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTINGmysqldocker…

LAPS本地管理员密码之使用PowerShell查看和重置密码

目录 一、PowerShell策略设置 二、引入AdmPwd.PS模块 三、查看密码 四、强制重置密码 文章主要介绍在部署了LAPS后&#xff0c;怎么使用PowerShell查看和管理域内本地管理员密码。需要注意的是被操作的电脑需要加域&#xff0c;所有操作都在域内环境下进行。 LAPS介绍 LAP…