当前位置:网站首页>网络基础(1)-----认识网络
网络基础(1)-----认识网络
2022-06-10 23:58:00 【梳碧湖的敲键人】
计算机网络背景
网络发展
1.独立模式:计算机之间相互独立。
2.网络互联:多台计算机连接在一起,完成数据共享。
其中,A,B,C是不同的计算机,但是他们共有一个服务器,通过服务器进行数据共享。
3.局域网和广域网
①:局域网(LAN):计算机数量多了,通过路由器和交换机连接起来,如下图:
其中交换机的作用就是将服务器和客户机连接起来,并且通过路由器与另外的服务器的交换机连接起来。(其实在现实生活中,交换机就是网线,通过网线将路由器连接起来)
②:广域网(WAN):将远隔千里的计算机进行连接起来。
也就是不同的局域网(LAN)间的连接,如①中的局域网,不同地区的,通过路由器进行连接起来。
ip地址和端口号
1.ip地址:每台计算机在网络中的唯一编号。
但是在IP协议中,共有两个版本的协议,分为Ipv4 和 Ipv6两种。
- Ipv4:uint32_t类型的整数。就是可以代表不到43亿个地址。
其中:
①:DHCP-动态分配地址-谁上网给谁分配ip地址。
②:NAT-地址转换技术,用于组件私网,私网内注意只用一个公网地址。 - Ipv6:uint8_t[16],他不会兼容Ipv4。他可代表Ipv4的许多倍,意思为Ipv6可以创建出来更多的ip地址。
我们通常用点分十进制的方法去表达ip地址,例如:192.169.1.2就是一个ip地址。
网络中的每条数据都有两个关键信息:源端ip地址,对端ip地址,描述一个数据从哪里来,要到那里去。
2.端口号:
①:概念:port,主机上的一个网络通信进程的标志,表示这个数据应该被主机上哪个进程处理。
②:数据类型:uint16_t类型数据。
③:注意:一个进程可以有多个端口,但是一个端口只能属于一个进程。
④:这样网络中每条信息就有两个关键信息:源端口号,对端口号。
一个完整的网络通信中,每条数据应该有源端ip地址,源端口号,对端ip地址,对端口号。这样在网络通信中才知道这个数据是从哪里来的,到哪里去,并且被哪个进程去处理
MAC地址
- 用来识别数据链路层相邻的两个节点。
- 长度为48位,及6个字节。一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
- 在网卡出厂时就确定了, 不能修改。mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)
网络的协议及模型
1.网络的协议:
其实网络和生活一样,网络的交流和人与人之间的交流一样,他们都必须有协议的存在,就如同,人与人之间通过普通话交流,如果每个地区都说自己的语言,那么交流就不能实现了,所以我们会将所有的话用相同的语言说出来,就如同网络一样,我们传输各种各样的数据,我们怎么知道这些数据是从哪里来,传到哪里去呢,所以,我们是有协议的,通过协议,我们就能知道数据里面的数据是干啥呢,从哪来到哪去呢。例如:计算机的生产厂商有很多,计算机的操作系统,计算机硬件设备都有很多,他们之所以能共同的存在而不起冲突,就是因为协议的存在,他们都遵循网络协议,这样才使不同型号的装置可以进行网络交流。
2.协议分层:
①:网络是复杂的,所以仅仅通过一个协议是无法完成网络的交流操作的。所以国际的一些标准化组织,通过网络通信环境中的不同的服务,将网络的通信环境分成了多个层次,并且每个层次都有自己的协议标准。
②:OSI七层网络模型如下:
但是,为了学习,我们一般使用的是TCP/IP五层模型。
③:TCP/IP五层网络模型:
网络传输的流程
在网络的传输中,发送方是自上而下的封装数据,而接收方是自下而上的解开一步步包装,最后得到最终的数据,下面,我们用上面所属的某些协议来模拟一下发送方与接收方的数据通信过程:
发送方通过每层的协议,来封装这个数据,直到封装到物理层,然后通过物理层进行数据传输,传输到接收方地址时,接收方由物理层开始往上,层层解开每层对应的协议,最终在应用层得到数据。
其中:注意的是,在物理层的传输过程中,会遇到路由器,因为我们是无法之间将数据通过物理层之间传送给接收方,会在路由器上选择路径,但是在路由器的路径选择时,只向上到网络层后,获取到下一个地址,又向下封装到物理层,然后继续去进行数据的传输。
网络字节序
1.字节序:cpu对内存中数据进行存取的顺序。
①:内存存储时,有高低地址之分,一块空间的其实位置就是底地址。
②:数据二进制:有高低位,左边是高位,右边是底位。
例如:0x01020304 :其中,左边是高位,右边是底位。
所以由高到低排序为01,02,03,04(按字节排序)。
2.主机字节序分类:
大端:低地址存高位。(内存低地址存储数据的高比特位)
小端:低地址存地位。(内存高地址存储数据的底比特位)
例如:
字节序:以字节为单位的顺序。
所以对于字节序,它对于char类型不起作用,它只针对于数据类型的存储单元大于一个字节的类型有效,例如:short,int,float,double以及等等,但是注意的是,对于数组类型的是按数组的的类型单个进行字节序排序,对于int arr[10],只需要考虑内部的单个int的字节序即可。
3.字节序对于网络通信的影响:
问题:由于字节序取决于cpu,不同架构的cpu可能字节序不同,那么如果不同的计算机使用了不同的cpu,并且这不同的cpu的字节序不同,那么这两个计算机进行网络通信的时候那么就会出错。相同的数据传送过来的值就有可能发生变化。
解决:因为主机字节序对于网络通信的影响,因此在网络通信中定义了网络字节序标准:网络通信中必须使用打断字节序。
边栏推荐
- 项目连接不到远程虚拟机The driver has not received any packets from the server.
- The principle and source code interpretation of executor thread pool in concurrent programming
- 五大类型负载均衡的原理场景详解
- About log traffic monitoring and early warning small project | flag log monitoring script
- adb循环输出内存信息到文件夹
- What is the difference between hubs, switches and routers?
- 【原】expdp参数CONTENT
- How to solve the deep paging problem in large factories (easy to understand)
- MySQL
- SqlServer中的锁
猜你喜欢

Google搜索为什么不能无限分页?

With a market value of 21.5 billion yuan, will the post-80s generation in Sichuan make TV history?

DevOps到底是什么意思?

MySQL

微信小程序实现OCR扫描识别

What is MYCAT? Get to know you quickly

Complete uninstallation of MySQL under Linux

The principle and source code interpretation of executor thread pool in concurrent programming

【ROS入门教程】---- 03 ROS工作空间与功能包

87.(leaflet之家)leaflet军事标绘-直线箭头修改
随机推荐
Network Engineer required course firewall security zone and basic operation of security policy
adb循环输出内存信息到文件夹
AQS explanation of concurrent programming
Deploy netron services through kubernetes and specify model files at startup
Google搜索为什么不能无限分页?
【NVIDIA驱动的顽固问题】---- /dev/sdax:clean,xxx/xxx files,xxx/xxx blocks ---- 最全解决方法
logback日志框架
DeepStream系列之鱼眼相机测试
Load balancing strategy graphic explanation
C语言实现设置桌面壁纸
LeetCode 8. 字符串转换整数 (atoi)(中等、字符串)
Wechat applet to realize OCR scanning recognition
Pirate OJ 146 character string
QT program plug-in reports an error plugin xcb
中小企业数字化转型为什么这么难?
The JVM determines whether an object can be recycled
Room first use
CentOS7 实战部署MySQL8(二进制方式)
浅谈有赞搜索质量保障体系 v2021
Optimization of startup under SYSTEMd, deleting useless SYSTEMd services