网络编程(基础)

一、OSI体系结构

        ISO(国际标准化组织)制定了一个国际标准OSI(开放式通讯系统互联参考模型),对通讯系统进行了标准化。

定义了7层模型:

 

二、TCP/IP协议介绍

OSI模型是一个理想化的模型已经很少使用,没有完整的实现,但是模型本身非常通用。

TCP/IP协议 是Internet事实上的工业标准

2.1网络接口与物理层(网络访问层)

功能:包括ip地址与物理地址的映射(MAC),以及将上一层的ip报文封装层帧,转换成二进制比特流传输

MAC:物理地址,48bit全球唯一,网卡编号,网络设备的身份标识(cmd ---> ipconfig/all),由厂商出厂后确定。

由电气电子工程协会IEEE定义的。

改变网络环境后,IP地址变,MAC地址不变

ARP/RARP 地址解析协议/逆向地址解析协议

ARP(Address Resolution Protocol):通过ip地址获取其对应的mac地址。

RARP(Reverse Address Resolution Protocol):通过mac地址获取其对应的ip地址。

PPP(Point to Point Protocol)协议:拨号协议(GPRS/3G/4G)

MTU:1500bytes

MSS:1460bytes

2.2网络层

负责在主机之间的通讯中选择数据包传输的路径,即选择路由。

i. IP协议(Internet Protocol)

ip协议根据数据包的目的ip地址来决定如何投递数据包。

如果数据包不能直接投递给目标主机,那么ip协议就为他寻找下一个合适的下一跳路由器。

ii. ICMP协议(Internet Control Management Protocol)

英特网控制管理协议,ping检测网络就是用这个协议

用于在IP主机、路由器之间传递控制消息

iii. IGMP协议(Internet Group Management Protocol)

英特网分组管理协议,组播,广播。

2.3传输层(重点!)

负责提供应用程序之间通讯服务,这种服务又称之为端到端

传输层与网络层不同,传输层只关心通讯的 起始端 和 目的端,并不在乎数据包的传输中转过程。

TCP:(transmission control Protocol 传输控制协议):提供面向连接的,一对一的可靠数据传输协议。

UDP:(user datagram Protocol 用户数据报协议):提供无连接的,不可靠的尽力的传输协议,但是效率更高

TCP和UDP的异同点(重点!!!)

相同点:他们是同属于传输层的协议。

不同点:

TCP:1.TCP是提供面向连接的,可靠的数据传输协议。

           2.它能提供数据无误,数据无丢失,数据无失序,数据无重复到达的通信。

           3.传输效率低,耗费资源多。

           4.数据的收发是不同步,会存在粘包的情况。

适用场景:适用于对传输质量要求比较高,以及传输大量数据的通信。在需要可靠传输场景的时候,通常使用TCP;

例如:账户密码登录的时候,道具购买,网购的时候。

UDP:1.UDP提供无连接的,尽力的,不保证数据可靠的传输服务。

           2.数据有可能在传输过程中丢失,失序,重复。

           3.传输效率高

           4.限制每次传输的数据大小,超出部分直接删除。

           5.数据的收发是同步的,不存在粘包现象。

适用场景:适用于发送小尺寸的,不需要可靠传输的场景。在接收到数据后,给出应答比较困难的网络中使用。

例如: 直播,通信软件的语音视频。

2.4应用层

负责处理应用程序的逻辑

i. HTTP/HTTPS

超文本传输协议,万维网数据通信的基础

http:明文发送, https加密传输

ii. 邮件协议

收:POP3(post office protocol)邮局协议第三个版本

从服务器接收右键,接收完后服务器就没有这个邮件了;

发:SMTP(简单邮件传输协议)

IMAP:交互式邮件存储协议,与POP3类似的邮件访问标准协议之一。

收取邮件后,服务器上邮件依然存在,如果删除、标记服务器也会做相应操作。

iii. FTP(FILE Transfer Protocol)

文件传输协议,是用于在网络上进行文件传输的一套标准协议,使用TCP传输

iv. TFTP

简单文件传输协议,适用于在网络上进行文件传输的一套标准协议,使用UDP传输

v.DNS:域名解析

Telnet/ssh :远程登录

2.5网络封包与拆包

MTU :

Maximum Transmission Unit 最大传输单元

物理接口(数据链路层)提供给上层(网络层(IP层))最大一次传输数据的大小。

规定了数据链路层所能传送最大数据长度

以太网为例,缺省MTU=1500字节,这是以太网接口对IP层的约束

如果IP层>1500字节需要发送,需要分片才能发送(分片:帧)

MSS:

Maximum Segment Size 最大报文长度

TCP提交给IP层最大分段大小,指TCP报文所允许传送数据部分最大长度。

不包含TCP头,MSS式TCP来限制应用层最大发送字节数。

如果MTU=1500,则MSS = 1500-20(IP header)-20(TCP header) =1460字节

如果应用有2000字节要发,需要2 Segment

第一个TCP Segment = 1460 第二个TCP Segment = 540

三、IP地址:

IP地址是因特网中主机的标识,每个数据包都必须携带目的IP地址和源IP地址,路由器依靠此信息为数据包选择路由。

3.1IP地址的分类

IPv4:采用4个字节的无符号整数,共32bit来存储IP地址。2^32个 = 42.9亿多

局域网:让在同一个网络环境下的主机使用同一个广域网IP。任何一个IP地址都可以通过其他软件或者设备创建一个新的局域网。

WAN:wide area network 广域网

LAN:local area network 局域网

在同一个网络环境下,两台主机的局域网IP地址不能一致,若一致会导致数据包不知道该发给谁

在不同网络环境下,两台主机的局域网IP地址可以一致,因为他们的广域网IP不一致。

IPv6:采用16个字节的无符号整数,共128bit来存储IP地址。2^128。(IPv4和IPv6不兼容)

现在处于IPv4往IPv6过渡阶段。

3.2IP地址划分

由于IP地址基数比较大,所以为了提高寻径效率,则将IP地址划分成二级IP地址;

二级IP地址 = 网络号 + 主机号

网络号:确定计算机从属的物理网络地址(确定是哪个村子的)

主机号:确定网络号后,用主机号标识该网络号中的所有主机。(确定是哪个村子后,在村子中找到设备的编号)

注意:

         1.ABC类称之为基本类,只有ABC类的IP地址可以分配给主机使用

         2.D类不表示网络,用于特殊用途,组播

         3.E类不表示网络,保留或者实验室使用。

3.3点分十进制

为了方便记忆,使用点分十进制。

将32位IP地址的二进制数,以8bit为一组,用十进制表示,利用点分割。

特殊的IP地址:不能分配给主机使

网络地址:代表该网络--->有效网络号+全是0的主机号

广播地址:向该IP地址发送数据,代表向当前局域网内的所有主机发送数据。--->有效网络号+全是1的主机号

3.4子网掩码(重点!)

二级IP地址划分后,主机的基数还是比较大,所以引入了另外一个概念:子网掩码。利用子网掩码可以将主机号进行再次划分:

IP = 网络号 + 子网号 + 主机号

三级划分比较灵活,可以选择划分,也可以选择不划分,可以选择划分出2部分,4部分,8部分...2^n(n=0,1,2......)

3.5子网掩码的概念

子网掩码:用于将一个大的IP网络中的主机号划分为若干小的子网络(常用)。

                  或者将若干个小网络组合成一个大的局域网(称之为超网技术)

1.指明一个IP地址的哪些位表示的是主机所在的子网

2.指明哪些位表示的是主机的位掩码。

3.子网掩码不能单独使用,必须结合IP地址一起使用

子网掩码的格式:子网掩码的长度是与IP地址长度一样长的32位无符号整数。是由一串连续的1后面跟着一串连续的0组成。

1.默认情况下,1的个数与IP地址中网络号的个数一致。

2.默认情况下,0的个数与IP地址中主机号的个数一致。

IP地址 & 子网掩码 ==> 子网网段

特殊的IP地址:

1.每个子网网段中,都有自己的子网网段地址。有效网络号+有效子网号+全是0的主机号 。 掐头

2.每个子网网段中,都有自己的子网广播地址。 去尾

总结:每个子网网段都需要掐头去尾

3.5网关

网关是一个网络通向其他网络的IP地址

目前家用路由器一般使用192.168.1.1和192.168.0.1作为LAN接口的地址,这个两个也是最常用的网关地址。

3.6域名系统

由于使用IP地址来指定计算机不方便人们记忆,且输入时候容易出错,用字符标识网络种计算机名称方法。这种命名方法就像每个人的名字,这就是域名(Domian Name)

域名服务器(Domain Name server):用来处理IP地址和域名之间的转换。

域名系统(Domain Name System,DNS):域名翻译成IP地址的软件

一个域名,可以绑定多个ip

域名结构

例如域名 www.baidu.com.cn 从右向左看

cn为高级域名,也叫一级域名,它通常分配给主干节点,取值为国家名,cn代表中国

com为网络名,属于二级域名,它通常表示组织或部门

中国互联网二级域名共40个,edu表示教育部门,com表示商业部门,gov表示政府,军队mil等等

baidu为机构名,在此为三级域名,表示百度

www:万维网world wide web,也叫环球信息网,是一种特殊的信息结构框架。

3.7端口号

为了区分一台主机收到的数据包交给哪个进程处理,使用端口号来区分。程序启动后将端口号和进程绑定在一起。

网络里面的通讯是由 IP地址+端口号 来决定

端口号存储在 2个字节 无符号整数中 (unsigned short int)。[1, 65535]

众所周知的端口号:

1~1023 端口我们编程时候不要使用,是那些”VIP“应用程序占了

TCP 21端口:FTP文件传输服务

TCP 23端口:TELNET终端仿真服务

TCP 25端口:SMTP简单邮件传输服务

TCP 110端口:POP3邮局协议版本3

TCP 80端口:HTTP超文本传输服务

TCP 443端口:HTTPS加密超文本传输服务

UDP 53端口:DNS域名解析服务

UDP 69端口:TFTP文件传输服务

TCP和UDP的端口号是相互独立的

可以使用的:1024~49151,就是我们平时编写服务器使用的端口号

临时端口号:49152~65535,这部分是客户端运行时候动态选择的

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

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

相关文章

ElasticSearch DSL语句(bool查询、算分控制、地理查询、排序、分页、高亮等)

文章目录 DSL 查询种类DSL query 基本语法1、全文检索2、精确查询3、地理查询4、function score (算分控制)5、bool 查询 搜索结果处理1、排序2、分页3、高亮 RestClient操作 DSL 查询种类 查询所有:查询所有数据,一般在测试时使…

耗资170亿美元?三星电子在得克萨斯州建设新的半导体工厂

据报道,三星电子在得克萨斯州泰勒市建设的新的半导体工厂预计将于2024年下半年投入运营。这座工厂将成为三星电子在美国的第二座芯片代工厂,与位于得克萨斯州奥斯汀市的第一座工厂相距不远。 此次投资将耗资约170亿美元,显示了三星电子在半导…

Slingshot | 细胞分化轨迹的这样做比较简单哦!~(一)

1写在前面 今天是医师节,祝各位医护节日快乐,夜班平安,病历全是甲级,没有错误。🥰 不知道各位医师节的福利是什么!?😂 我们医院是搞了义诊活动,哈哈哈哈哈哈哈。&#x1…

Python可视化在量化交易中的应用(16)_Seaborn热力图

Seaborn中热力图的绘制方法 seaborn中绘制热力图使用的是sns.heatmap()函数: sns.heatmap(data,vmin,vmax,cmap,center,robust,annot,fmt‘.2g’,annot_kws,linewidths0,linecolor‘white’,cbar,cbar_kws,cbar_ax,square,xticklabels‘auto’,yticklabels‘auto’…

Linux 进程间通信——消息队列

一、消息队列的原理 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为含有一个类型,接收进程可以独立接收含有不同类型值得数据库。 消息实际上是一个数据块,这个数据块是一个结构体,结构体由自己命名。消…

Aurix TC3xx系列MCU ResourceM模块配置(多核资源分配)

文章目录 1 前言2 配置方法 >>返回总目录<< 1 前言 为减轻主核的负载率或者平衡各个核的资源分配&#xff0c;通常需要把一些MCU内部资源分配到从核上&#xff0c;在EB tresos工具中&#xff0c;通过ResourceM模块实现多核资源分配。 2 配置方法 ResourceMMaste…

mysql数据传输到mssql

一、找开Navicat Premium 12 此时目标数据库会创建一个同名的表

学习笔记:Opencv实现拉普拉斯图像锐化算法

2023.8.19 为了在暑假内实现深度学习的进阶学习&#xff0c;Copy大神的代码&#xff0c;记录学习日常 图像锐化的百科&#xff1a; 图像锐化算法-sharpen_lemonHe_的博客-CSDN博客 在环境配置中要配置opencv&#xff1a; pip install opencv-contrib-python Code and lena.png…

OpenCV基础知识(5)— 几何变换

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。OpenCV中的几何变换是指改变图像的几何结构&#xff0c;例如大小、角度和形状等&#xff0c;让图像呈现出缩放、翻转、旋转和透视效果。这些几何变换操作都涉及复杂、精密的计算。OpenCV将这些计算过程都封装成了非常灵活的…

开源了一套基于springboot+vue+uniapp的商城,包含分类、sku、商户管理、分销、会员、适合企业或个人二次开发

RuoYi-Mall-JAVA商城-电商系统简介 开源了一套基于若依框架&#xff0c;SringBoot2MybatisPlusSpringSecurityjwtredisVueUniapp的前后端分离的商城系统&#xff0c; 包含分类、sku、商户管理、分销、会员、适合企业或个人二次开发。 前端采用Vue、Element UI&#xff08;ant…

Debian10: 安装nut服务器(UPS)

UPS说明&#xff1a; UPS的作用就不必讲了&#xff0c;我选择是SANTAKTGBOX-850&#xff0c;规格为 850VA/510W&#xff0c;可以满足所需&#xff0c;关键是Debian10自带了驱动可以支持&#xff0c;免去安装驱动&#xff0c;将UPS通过USB线连接服务器即可&#xff0c;如下图所示…

Vue初识别--环境搭建--前置配置过程

问题一&#xff1a; 在浏览器上的扩展程序上添加了vue-devtools后不生效&#xff1a; 解决方式&#xff1a;打开刚加入的扩展工具Vue.js devtools的允许访问文件地址设置 问题二&#xff1a;Vue新建一个项目 创建一个空文件夹hrsone&#xff0c;然后在VSCode中打开这个空文件夹…

RequestRespons

文章目录 Request&Respons1 Request和Response的概述2 Request对象2.1 Request继承体系2.2 Request获取请求数据2.2.1 获取请求行数据2.2.2 获取请求头数据2.2.3 获取请求体数据2.2.4 获取请求参数的通用方式 2.3 IDEA快速创建Servlet2.4 请求参数中文乱码问题2.4.1 POST请…

基于Python的微博大数据舆情分析,舆论情感分析可视化系统,可作为Python毕业设计

运行效果图 基于Python的微博大数据舆情分析&#xff0c;舆论情感分析可视化系统 系统介绍 微博舆情分析系统&#xff0c;项目后端分爬虫模块、数据分析模块、数据存储模块、业务逻辑模块组成。 先后进行了数据获取和筛选存储&#xff0c;对存储后的数据库数据进行提取分析处…

postgresql 分类排名

postgresql 分类排名 排名窗口函数示例CUME_DIST 和 NTILE 排名窗口函数 排名窗口函数用于对数据进行分组排名。常见的排名窗口函数包括&#xff1a; • ROW_NUMBER&#xff0c;为分区中的每行数据分配一个序列号&#xff0c;序列号从 1 开始分配。 • RANK&#xff0c;计算每…

数学建模之“灰色预测”模型

灰色系统分析法在建模中的应用 1、CUMCM2003A SARS的传播问题 2、CUMCM2005A长江水质的评价和预测CUMCM2006A出版社的资源配置 3、CUMCM2006B艾滋病疗法的评价及疗效的预测问题 4、CUMCM2007A 中国人口增长预测 灰色系统的应用范畴大致分为以下几方面: (1&#xff09;灰色关…

“深度学习”学习日记:Tensorflow实现VGG每一个卷积层的可视化

2023.8.19 深度学习的卷积对于初学者是非常抽象&#xff0c;当时在入门学习的时候直接劝退一大班人&#xff0c;还好我坚持了下来。可视化时用到的图片&#xff08;我们学校的一角&#xff01;&#xff01;&#xff01;&#xff09;以下展示了一个卷积和一次Relu的变化 作者使…

IronPDF for .NET Crack

IronPDF for .NET Crack ronPDF现在将等待HTML元素加载后再进行渲染。 IronPDF现在将等待字体加载后再进行渲染。 添加了在绘制文本时指定旋转的功能。 添加了在保存为PDFA时指定自定义颜色配置文件的功能。 IronPDF for.NET允许开发人员在C#、F#和VB.NET for.NET Core和.NET F…

深入探讨API接口测试:从基础到高级策略

引言&#xff1a;API测试的重要性 在当前的技术趋势中&#xff0c;API&#xff08;应用程序接口&#xff09;已经成为连接各种系统和服务的基石。API不仅仅是大型企业的领域&#xff0c;中小型公司和初创公司也越来越依赖API来拓展他们的业务功能和跨系统通信。正因如此&#…

虚拟机问题

虚拟机无法识别USB设备 经排查为VMware USB Arbitration Service 没有启动,但是VMware USB Arbitration Service依赖于VMware Workstation Server启动 VMware USB Arbitration Service(VMUSBArbService)是由 VMware 虚拟化软件提供的一个服务,用于协调和管理主机系统上的…