当前位置: 首页 > news >正文

初始网络通信

目录

一:网络发展史

1.1:⽹络互连

1.2:局域⽹LAN

1.3:⼴域⽹WAN

二:⽹络通信基础

2.1:IP地址

2.2:端口号

2.3:协议

2.4:协议分层

1:OSI七层模型

2:TCP/IP五层

2.5:封装和分⽤

1:封装

2:分用


一:网络发展史

独⽴模式
独⽴模式:计算机之间相互独⽴;

1.1:⽹络互连

随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同⼯作来完成业务,就有了⽹络互连。
⽹络互连:将多台计算机连接在⼀起,完成数据共享。
数据共享本质是⽹络数据传输,即计算机之间通过⽹络来传输数据,也称为⽹络通信。
根据⽹络互连的规模不同,可以划分为局域⽹和⼴域⽹。

1.2:局域⽹LAN

局域⽹,即 Local Area Network,简称LAN。
Local 即标识了局域⽹是本地,局部组建的⼀种私有⽹络。
局域⽹内的主机之间能⽅便的进⾏⽹络通信,⼜称为内⽹;局域⽹和局域⽹之间在没有连接的情况下,是⽆法通信的。
局域⽹组建⽹络的⽅式有很多种:
(1)基于⽹线直连

(2)基于集线器组建

(3)基于交换机组建

(4)基于交换机和路由器组建(重点关注)

局域网:就是一片区域,就好比网吧打游戏,只能这个网吧的人在一起打游戏。

1.3:⼴域⽹WAN

⼴域⽹,即 Wide Area Network,简称WAN。

通过路由器,将多个局域⽹连接起来,在物理上组成很⼤范围的⽹络,就形成了⼴域⽹。⼴域⽹内部的局域⽹都属于其⼦⽹。

路由器把更多的局域网链接起来
网游就是代表,整个中国乃至世界的人都可以一起玩游戏

二:⽹络通信基础

⽹络互连的⽬的是进⾏⽹络通信,也即是⽹络数据传输,更具体⼀点,是⽹络主机中的不同进程间,基于⽹络传输数据。

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

2.1: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地址

2.2:端口号

概念
在⽹络通信中,IP地址⽤于标识主机⽹络地址,端⼝号可以标识主机中发送数据、接收数据的进程。
简单说:端⼝号⽤于定位主机中的进程。
类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货⼈(端⼝号)。
想起来我们mysql中使用jdbc链接数据库  有一个这样的表示 jdbc:mysql://127.0.0.1:3306
这个3306就是端口号

用来区分设备上不同的应用程序
格式
整数(16位的整数,无符号)
端⼝号是0~65535范围的数字,在⽹络通信中,进程可以通过绑定⼀个端⼝号,来发送及接收⽹络数据

问题:
有了IP地址和端⼝号,可以定位到⽹络中唯⼀的⼀个进程,但还存在⼀个问题,⽹络通信是基于⼆进制0/1数据来传输,如何告诉对⽅发送的数据是什么样的呢?
⽹络通信传输的数据类型可能有多种:图⽚,视频,⽂本等。同⼀个类型的数据,格式可能也不同,如发送⼀个⽂本字符串“你好!”:如何标识发送的数据是⽂本类型,及⽂本的编码格式呢?
基于⽹络数据传输,需要使⽤协议来规定双⽅的数据格式。

2.3:协议

通信双方对于数据传输格式的约定
网络的本质是传输“光信号”/“电信号”/“电磁波”
光信号:提供光纤 玻璃丝 激光 通过不同的频率 表示0/1 
电信号:通过网线(高低电平)表示0/1
电磁波:wifi
约定协议:就是0101的数据格式(就是表示多少个1表示什么含义,多少个0表示什么含义)

作⽤
为什么需要协议?
就好⽐⻅⽹友,彼此协商胸⼝插⽀玫瑰花⻅⾯,这就是⼀种提前的约定,也可以称之为协议。
计算机⽣产⼚商有很多;
计算机操作系统,也有很多;
计算机⽹络硬件设备,还是有很多;
如何让这些不同⼚商之间⽣产的计算机能够相互顺畅的通信?
就需要有⼈站出来,约定⼀个共同的标准,⼤家都来遵守,这就是 ⽹络协议;

2.4:五元组

在TCP/IP协议中,⽤五元组来标识⼀个⽹络通信:
1. 源IP:标识源主机

2. 源端⼝号:标识源主机中该次通信发送数据的进程

3. ⽬的IP:标识⽬的主机

4. ⽬的端⼝号:标识⽬的主机中该次通信接收数据的进程

5. 协议号:标识发送进程和接收进程双⽅约定的数据格式


举个例子理解
收件人地址(目的ip) 收件人(目的端口号)
发件人地址(源ip) 发件人(源端口号)
走顺丰/圆通/申通(协议)

2.4:协议分层

由于网络通信本身就是一个非常非常复杂的话题,解决复杂的问题就要有复杂的方案
一个协议就会非常非常非常复杂,所以我们就要把协议拆分,但是拆分后意味着数目就会变多,那就需要分层,约定协议和协议之间的调用关系。

协议分层类似于打电话时,定义不同的层次的协议

这就是协议分层,电话一个协议,使用什么语言也是一个协议,

分层的作⽤
为什么需要⽹络协议的分层?
分层最⼤的好处,类似于⾯向接⼝编程:定义好两层间的接⼝规范,让双⽅遵循这个规范来对接。
在代码中,类似于定义好⼀个接⼝,⼀⽅为接⼝的实现类(提供⽅,提供服务),⼀⽅为接⼝的使⽤类(使⽤⽅,使⽤服务):

对于使⽤⽅来说,并不关⼼提供⽅是如何实现的,只需要使⽤接⼝即可

对于提供⽅来说,利⽤封装的特性,隐藏了实现的细节,只需要开放接⼝即可。

让我们看看真实的网络分层结构

1:OSI七层模型

OSI:即Open System Interconnection,开放系统互连
OSI 七层⽹络模型是⼀个逻辑上的定义和规范:把⽹络从逻辑上分为了7层。
OSI 七层模型是⼀种框架性的设计⽅法,其最主要的功能使就是帮助不同类型的主机实现数据传输;

OSI 七层模型既复杂⼜不实⽤:所以 OSI 七层模型没有落地、实现。
实际组建⽹络时,只是以 OSI 七层模型设计中的部分分层,也即是以下 TCP/IP 五层(或四层)模型来实现

2:TCP/IP五层

TCP/IP五层(或四层)模型
TCP/IP是⼀组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采⽤了5层的层级结构,每⼀层都呼叫它的下⼀层所提供的⽹络来完成⾃⼰的需求。

应⽤层:负责应⽤程序间沟通,如简单电⼦邮件传输(SMTP)、⽂件传输协议(FTP)、⽹络远程访问协议(Telnet)等。我们的⽹络编程主要就是针对应⽤层(就是程序员自己说的算,数据如何使用什么的)。

传输层:不关心中间的传输过程,只关心传输的起点和终点。

⽹络层:负责任意两个节点的之间的路径规划

数据链路层:负责两个相邻节之间的通信,(通过网线光纤直连的两个设备)

物理层:负责光/电信号的传递⽅式。⽐如现在以太⽹通⽤的⽹线(双绞 线)、早期以太⽹采⽤的的同轴电缆(现在主要⽤于有线电视)、光纤,现在的wifi⽆线⽹使⽤电磁波等都属于物理层的概念。物理层的能⼒决定了最⼤传输速率、传输距离、抗⼲扰性等。集线器(Hub)⼯作在物理层。

概念可能太片面了,接下来我举一个例子来表示这个模型
首先还是快递事件,我在淘宝买一件衣服,我需要填写收件地址收件人收件电话,卖家需要填发货人发货地址电话,我和卖家就是传输层,不需要关系快递的中间路线,只关心发给谁,从那发货。这就是传输层


卖家把快递给快递公司,快递公司就需要规划路线,比如发件地址上海,收件地址西安,那么路线就这样规划上海-南京-无锡-西安,这就是网络层

负责上海-西安的路径规划

路线规划好,那么我们就要实施
上海-南京(水运货船)
南京-无锡(空运飞机)
无锡-西安(陆运火车)
西安-我(电三轮)
每个环节都是快递小哥进行具体实施,只关心他负责的这一段,不在乎快递去哪里,从哪里来的这就是数据链路层


然后我们这一路利用的河道、航线、轨道、马路这就是物理层。

那么拿到衣服,我是自己穿,还是送人,还是摆着看?没有人知道
这就是应用层

⽹络设备所在分层
对于⼀台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四层;

对于⼀台路由器,它实现了从⽹络层到物理层,也即是TCP/IP五层模型的下三层;

对于⼀台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;
不规划,只关心相邻节点

对于集线器,它只实现了物理层;

路由器和交换机可能出先面试题

2.5:封装和分⽤

1:封装

1.应用层
用户输入hello,点击发送按钮,qq应用程序能获取到hello字符串,把这个hello构造成“应用层数据包”这个应用层数据包时按照应用层协议来构造
假设按照下列格式:
发送者的用户id,接收者的用户id,信息的发送时间,信息的正文;
1234                   5678               2025年10-28 11:18  hello      
  这个就是拼接字符串
通过操作系统的api,把这个数据包交给下一层传输层

2.传输层(系统内核里面)
拿到数据后,传输层要按照传输层的协议 再来构造一个数据包
传输层涉及到的协议,主要就是TCP和UDP,此处以UDP为例
UDP数据包,包含报头+载荷(应用层数据包)

拼接UDP报头,就类似快递小哥,包装快递,并且贴标签(填写一个收件人地址什么的)
传输层把构造好的传输层的数据包,调用对应的api,交给网络层

这点提醒一下:网络协议分层之后,一定是上层调用下层,下层给上层提供服务,不能乱调用,或者跨层调用。不能越级

3.网络层
网络层最主要就是ip协议
ip协议也会在传输层数据包,基础上添加ip报头

把这个ip数据包,进一步的往下传输给数据链路层。

4.数据链路层
数据链路层最主要的的协议“以太网”(插网线/光纤通信的网络)wifi的协议是802.11
在以太网协议,在ip数据报的基础上,拼接上信息

把上述数据再交给物理层

5.物理层
把上述0101这样都数据,转换成光信号/电信号/电磁波,通过介质传输出去
以上这个过程就是封装,把这个hello套上辅助信息,一套一套。封装是发送发的操作流程

2:分用

是接收方的流程
1.物理层收到光电信号
把光电信号转换成0101数字信号,交给数据链路层

2.数据链路层

就会拿到这样数据包,然后以太网协议就会进行解析
去掉帧头帧尾,进一步交给网络层

3.网络层
到达网络层,然后ip协议,就再进一步解析

也会取出载荷,进一步交给传输层

4.传输层
到达传输层,UDP协议再进一步解析数据包,取出载荷,传给应用层

5.应用层

最后qq的应用层协议再进行解析,把这里的信息提取出来,显示到界面上。

了解封装和分用,可以这样理解,封装就是装快递,分用就是拆快递。
关于协议类型,每一层都可以知道上一次使用的什么协议

还有一些小知识点:
报/包/帧/段时网络传输数据的基本单位
段:TCP
报:UDP
包:ip
帧:数据链路层

http://www.dtcms.com/a/542365.html

相关文章:

  • 从MSF载荷生成到Windows防火墙绕过
  • 成品网站设计网站网站设计优缺点
  • 广州建设工程交易中心网站软件定制网站优化 seo一站式
  • orchestrator Web API
  • 营销型网站免费企业网站模版单页网站seo如何优化
  • MySQL之慢查询sql排查及优化
  • 如何实现企业网站推广的系统性哪家公司做跳转网站
  • Redis Cluster集群理论
  • 广州网站开发定制设计北京做网站的大公司
  • 求个网站你会感谢我的西安大雁塔高多少米
  • 59网站一起做网店电商详情页设计思路
  • 网站建设预算表样本wordpress 上一篇 下一篇
  • 江西 网站 建设 开发永辉企业微信app下载安装
  • 提升学历是什么意思百度地图优化
  • 竹子林网站建设php网站开发实践指南
  • 【测试理论和实践 4.测试用例】
  • Java—接口
  • 移动网站源码兰州需要做推广的公司
  • 公司架设网站费用怎么做分录自学it怎么入门
  • 不用代码做网站杭州品牌网站设计
  • 商城建站模板广州从化建设网站官网
  • 免费的游戏网站建设建网站软件工具
  • Spring Boot3零基础教程,SpringSecurity 测试,笔记81
  • 哪里有网站推广优化wordpress获取自定类型
  • wordpress读取mysql北京百度搜索优化
  • IntelliJ IDEA 常用快捷键
  • 枣阳网站建设 枣阳山水数码wordpress文章什么时候收录
  • 代码随想录day20:406.根据身高重建队列
  • Redis之IO多路复用 select,poll,epoll
  • 兰州电商网站建设南宁360网