网络基础(1)-----认识网络

计算机网络背景

网络发展

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的字节序不同,那么这两个计算机进行网络通信的时候那么就会出错。相同的数据传送过来的值就有可能发生变化。

解决:因为主机字节序对于网络通信的影响,因此在网络通信中定义了网络字节序标准:网络通信中必须使用打断字节序

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值