计算机网络
什么是网络
物理连接介质+互联网通信协议
为何要有网络?
为了方便数据的传输和通信
OSI七层协议
应用层
表示层
会话层
传输层:tcp协议/udp协议
网络层:ip协议
数据链路层:以太网协议
物理层:传输电信号
以太网协议
早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet
ethernet规定
一组电信号构成一个数据包,叫做“帧”
每一数据帧分成:报头head和数据data两部分
head | data |
---|
head包含:(固定的18个字节)
发送者/源mac地址,6个字节
接收者/目标mac地址,6个字节
数据类型,6个字节
data包含:(最短46个字节,最长1500字节)
数据包的具体内容
head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
mac地址
ethernet规定接入Internet的设备都必须具备网卡,每块网卡的mac地址是世界唯一的
mac地址由48位组成(6个字节,通常表示12个16进制数),前3位是表示厂商编号,后3位表示某个网络产品(如网卡)的系列号
IP协议
ip协议
数据包
head+data:head放源ip地址,目标ip地址
ip地址的通信--路由协议
ip地址+mac地址是全世界范围内唯一一台计算机
ip地址由32位2进制数组成,分为4段每段8位,范围是
00000000.00000000.00000000.00000000-11111111.11111111.11111111.11111111
转换为10进制范围是
0.0.0.0-255.255.255.255
IP地址 网络地址:
IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络。
广播地址:
广播地址通常称为直接广播地址,是为了区分受限广播地址。
广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网络内的所有主机都能收到该广播消息。
例如:172.12.11.255主机部分全是1,指的是在172.12.11这个网段进行广播
回环地址
127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。
有限广播地址
255.255.255.255用于全网广播(同一个局域网下,不能跨局域网)
0.0.0.0
指已经不是真正意义上的ip地址,它表示的是所有不清楚主机和目的网络,这里的不清楚指的是在本机路由表里没有特定条目指明如何到达
将ip地址中的网络位和主机位固定下来后,ip地址被分成了不同的积累:A类,B类,C类,D类,E类
上面缺少的IP地址是有特殊用途的IP地址
A、B、C类私有地址
私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。
A类私有地址: | 范围是:10.0.0.0~10.255.255.255 | 表示1个A类地址 |
---|---|---|
B类私有地址: | 范围是:172.16.0.0~172.31.255.255 | 表示16个B类地址 |
C类私有地址: | 范围是:192.168.0.0~192.168.255.255 | 表示255个C类地址 |
子网掩码:
所谓子网掩码,就是表示子网络特征的一个参数,它在形式上等同于IP地址,也是一个32位2进制数字,子网掩码对应的IP地址的网络部分标记位1,IP地址的主机部分标记0
知道子网掩码,就能判断任意两个IP地址是否在同一个子网络,方法就是将两个IP地址分别与子网掩码进行AND运算(两数位都是1,运算结果为1,否则为0),比较结果是否相同,相同就是在同一子网络(同一局域网)。
0.0.0.0/24表示IP地址的前24位为网络位,后8位为主机位
/+数字,数字表示IP地址的网络位为多少位
引入 :
1.两台计算机通信,必须获取对方的ip地址
2.通信分为两类
局域网
跨局域网
ARP协议(地址解析协议)
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。
ARP协议获取目标mac,怎么获取?
在一个局域网LAN内,靠的是目标mac地址找到对方在哪里,即只要目标mac地址是谁,数据包就送给谁.
如果跨局域网通信进行通信,要拿到的目标mac是网关的mac地址.
mac地址:FF-FF-FF-FF-FF-FF(广播地址)具有特殊意义,收到该mac地址表示,发送者想要自己的mac地址
ARP协议会将ip地址转换成mac地址(要么是局域网内一台计算机的mac地址,要么是网关的mac地址,不能是公网计算机的mac地址)
TCP协议
数据段
head+data:head放的源端口,目标端口
端口在本机唯一即可
tcp通信之前必须建立双向通道
三次握手:
客户端先向服务端发送连接请求
服务端确认连接请求并向客户端发送连接请求
客户端再向服务端发送确认连接请求
连接时的状态:
断链接4次挥手:
客户端发送完数据向服务端发送断开连接的请求
服务端确认
服务端接收完数据向客户端发送断开连接的请求
客户端确认
断开时的状态
UDP协议
UDP协议-不可靠协议
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。
Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。面向连接的是 TCP,该协议几乎做了所有的事情。
Socket(套接字)
所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口
Socket是对传输层及以下的封装
DHCP
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
网络通信实现
想要实现网络通信,每台主机需具备四要素
本机的IP地址
子网掩码
网关IP地址
DNS服务所在机器的IP地址
获取这四要素分两种方式
静态获取:手动配置
动态获取 通过DHCP获取:
以太网头 | IP头 | UDP头 | DHCP数据包 |
---|
(1)以太网头:
设置发出方(本机)的MAC地址和接收方(DHCP服务器)MAC地址,前者是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF
(2)IP头:
设置发出方的IP地址和接收方的IP地址,这时对于两者,本机都不知道,于是发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255
(3)最后的UDP头,设置发出方的端口和接收方的端口,这一部分是DHCP协议规定好的,发出方是68端口,接收方是67端口
DNS: 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
负责把域名解析成IP地址
DNS查询方式:
递归查询:比较少用
迭代查询
DNS域名解析的顺序如下:
浏览器缓存
当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址(若曾经访问过该域名且没有清空缓存便存在)
系统缓存
当浏览器缓存中无域名对应IP则会自动检查用户计算机系统Hosts文件DNS缓存是否有该域名对应IP;
路由器缓存
当浏览器及系统缓存中均无域名对应IP则进入路由器缓存中检查,以上三步均为客户端的DNS缓存;
ISP-DNS缓存
当在用户客户端查找不到域名对应IP地址,则将进入ISP-DNS缓存中进行查询。比如你用的是电信的网络,则会进入电信的DNS缓存服务器中进行查找;
根域名服务器
当以上均未完成,则进入根域名服务器进行查询。全球仅有13台根域名服务器,1个主根域名服务器,其余12为辅根域名服务器。根域名收到请求后会查看区域文件记录,若无则将其管辖范围内顶级域名(如.com)服务器IP告诉本地DNS服务器;
顶级域名服务器
顶级域名服务器收到请求后查看区域文件记录,若无则将其管辖范围内主域名服务器的IP地址告诉本地DNS服务器;
主域名服务器
主域名服务器接收到请求后查询自己的缓存,如果没有找到便进入下一级域名服务器进行查询,并重复该步骤直至找到正确的记录;
本地(不是本机的是当前网络环境的)域名服务器把返回的结果保存到缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个IP地址与Web服务器建立链接。
子网划分与VLAN介绍
子网划分定义: Internet组织机构定义了五种IP地址,有A、B、C三类地址。A类网络有126个,每个A类网络可能有16777214台主机,它们处于同一广播域。而在同一广播域中有这么多节点是不可能的,网络会因为广播通信而饱和,结果造成16777214个地址大部分没有分配出去。可以把基于每类的IP网络进一步分成更小的网络,每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于每类的网络地址的主机部分创建的。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。
广播域:同一个局域网
本文章使用limfx的vscode插件快速发布