1.网络通信过程
1.1架构
c/s架构 c:client 服务器 s:server 客户端
客户端:安装在你电脑上的qq,浏览器(360浏览器、chrome浏览器、IE浏览器等),当我们使用qq发送消息的时候,消息先发送到了腾讯,然后腾讯在转发到你朋友的qq上,此时你的qq就是客户端,腾讯就是服务端。
b/s 架构 b:brower 浏览器
当我们使用浏览器来看京东的网站的时候,我们电脑上的浏览器就叫做客户端,京东就叫做服务端。
1.2内网/外网
内网:
所谓内网就是我们平常说的局域网。局域网就是在固定的一个地理区域内由2台以上的电脑用网线和其他网络设备搭建而成的一个封闭的计算机组。它可以是邻居之间的2台电脑,也可以是一幢100层大楼里的1000台电脑。局域网可以是独立封闭运行的,也可以是和外网相连接的。
外网/公网:
所谓外网,也就是广域网。是一种地域跨度非常大的网络集合。它是由无数个局域网+独立服务器构成的。
网络A里有一台IP地址为192.168.x.x的客户端,网络B里也可以有一台同样IP的电脑。那么。我们就说这2台机器分别在2个局域网里。但是在广域网内,所有的IP地址都是唯一的。这就是广域网和局域网的区别。如果只有内网的ip地址你是不能上网的,你上网肯定要通过一个外网地址,这个外网地址又称为公网地址,这个公网地址是全球唯一的,他在你的对外出口的路由器上,也就是你的外网网关地址。
2. OSI 模型
互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层
- 物理层
管理通信设备和网络媒体之间的互联互通,传输介质为数据链路层提供物理连接,实现比特流的透明传输。实现相邻计算机节点之间比特流的透明传送,屏蔽具体传输介质和物理设备的差异。
- 数据链路层
提供介质访问和链路管理。**接收来自物理层的位流形式的数据,封装成帧,传送到网络层;将网络层的数据帧,拆装为位流形式的数据转发到物理层;负责建立和管理节点间的链路,通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
mac地址在链路层。
每块网卡(有线、无线、蓝牙等)每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进
制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号),通过mac地址就可以查询到
它对应的厂商。这个mac地址是入网许可证,没有mac地址,就不能上网。
- 网络层
IP选址及路由选择通过路由选择算法,为报文或通信子网选择最适当的路径。控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。
ip地址主要用来做目标定位。公网ip地址有点像酒店地址,私有ip地址像酒店中的各个房间号,每个酒店
可能都有这个房间号,但是每个酒店的具体位置肯定是不同的。那么和mac地址有什么区别呢?mac地
址有点像人的身份证号,但是我怎么找到这个人呢?要先找到它的地址,这个地址就是ip地址。所有人
上网都需要一个公网ip地址。
世界上有个组织专门分配ip地址,这个组织叫做IANA,IANA(The Internet Assigned Numbers
Authority,互联网数字分配机构),ip、域名等都归它来管理。
- 传输层
数据通信,建立主机端到端的链接,为会话层和网络层提供端到端可靠的和透明的数据传输服务,确保数据能完整的传输到网络层。
- 会话层
创建、管理和维护会话。接收来自传输层的数据,负责建立、管理和终止表示层实体之间的通信会话,支持它们之间的数据交换。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
- 表示层
数据编码、格式转换、数据加密.提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。
- 应用层
为应用程序或用户请求提供各种请求服务。**OSI参考模型最高层,也是最靠近用户的一层,为计算机用户、各种应用程序以及网络提供接口,也为用户直接提供各种网络服务。
3.pdu
PDU protocol data unit 协议数据单元
应用层 APP_PDU
传输层 segment 分组/分段
网络层NET packet 包
数据链路层 frame 帧
物理层 bit比特
对等通信,同一层的pdu要才能一起通信
4.封装/解封装
5.以太Ⅱ型头部
D_MAC:源mac
S_MAC:目的mac
type 可以称之为:上层信息索引,上一层使用的协议。
6.mac
什么是MAC地址?
30-03-C8-6A-18-C3
(00110001)-03-C8-6A-18-C3
MAC地址中每一位都是HEX位,共计6个段,总长度为48bit
基于D_MAC确定数据帧的类型:
- 若D_MAC为全1,则该数据帧为广播类型的数据帧
- 若D_MAC从高到低的第8bit为0,则该数据帧为单播类型的数据帧
- 若D_MAC从高到低的第8bit为1,则该数据帧为组播类型的数据帧
MAC地址可以修改吗?
NIC中的MAC,不可以修改
NIC的MAC是被烧制到NIC芯片中的,因此不可以修改
数据帧中的MAC,是可以修改的
数据帧中的MAC地址填充是由程序控制的,默认情况下,是将NIC中的MAC地址信息提取出来填入指定位置。那么非默认情况下,可以人为修改程序执行逻辑,来实现相应的预期
3.ip地址划分
4.子网掩码的作用
ip地址分为两个部分
网络部分:标识子网,也就是网络位或者说网段
主机部分:标识主机
所谓"子网掩码",就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数
字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.10.1,如果已知网络部分是前24
位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制
就是255.255.255.0。
子网掩码:决定了一个网段的大小,网段大小决定了有多少个ip地址可以用,网段越大,ip地址越多。
ip地址:192.168.2.110 子网掩码:255.255.255.0
上面两个还有一个等效的写法:
192.168.2.110/24
192.168.2.118/24
10.0.0.0/8
172.16.0.0/16
8位、16位、24位等就是代表子网掩码的值的。数字越小的,表
示网段越大。
4.1利用ip地址计算网段的大小
首先知道"子网掩码",我们就能判断,任意两个IP地址是否处在同一个子网络。方法就是将两个IP地址与子网掩码分别进行二进制的AND运算,也叫与运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
比如,已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个
子网络?两者与子网掩码分别进行AND运算:
172.16.10.1: 10101100.00010000.00001010.00000001
255.255.255.0: 11111111.11111111.11111111.00000000
AND运算得网络地址结果:10101100.00010000.00001010.00000000->172.16.10.0
------------------------------------------------------------------------------------------------------------------
172.16.10.2:10101100.00010000.00001010.000000010
255.255.255.0:11111111.11111111.11111111.00000000
AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0
计算得到的172.16.10.0,就说明这个网段是172.16.10.x。
255.255.255.0前面的255.255.255对应二进制就是24个1,也就是对应的ip地址的前面24位是不变的,那么ip地址的这24位就是网络位,剩余的8位是主机位,网络位不变,主机位是可变的,可变的ip数量就是这个网段的ip地址数量,共2的8次方=256个,就可以写为172.16.10.1/24。但是172.16.10.0和172.16.10.255都被保留下来不让主机使用,172.16.10.0作为网络号,通过网络号可以找到这个网络号对应网段的网络了,172.16.10.255是广播地址。也就是可用ip地址个数位256-2=254个。
同一个网段的ip地址,物理线路接通就可以直接相互通信,不同网段的ip地址,即便是物理线路接通,也不可以直接通信,需要路由器才能相互通信!路由器能够帮我们转发给对应网段的主机。