计算机网络基础
计算机网络概念
利用通信线路和设备,将分散在不同地点、具有独立功能的多个计算机系统互连起来,按网络协议互相通信,在功能完善的网络软件控制下实现网络资源共享和信息交换的系统。
网络是现代通信技术与计算机技术结合的产物
简单来说就是:一些互相连接的、自治的计算机的结合
两个终端之间通信有五个要素
通信是双向的,主机A要发数据给主机B,主机B也要回复。
网络通信的发展:
- 简单网络:点对点网络
- 二层网络---星型拓扑:交换机(广域交换机+局域网交换机)、集线器
- 三层网络---树型拓扑:路由器连接不同的局域网(跨网段通信)
二三层交换机区别:二层划分局域网和作为集线器;三层具有二层所有功能,同时可以进行路由转发
- 企业网络基本架构
通信协议:
计算机网络中,连接和通信数据的规则被称为网络通信协议
OSI参考模型:(自上而下)---理想模型
- 应用层:为应用程序提供网络服务---提供和用户进行交互的界面
- 表示层:数据格式化、加密、解密---jpeg,gif,mp3对应编码
- 会话层:建立、维护、管理会话连接---实现应用连接和传输数据,例如QQ登录其他平台的游戏
- 传输层:建立、维护、管理端到端连接---TCP、UDP(QQ通信采用,信息发送但没接收到---发生丢包)给数据包打上端口号
- 网络层:IP寻址和路由选择---“数据发到哪里去”
网络设备:路由器、三层交换机
- 数据链路层:控制网络层与物理层之间通信---存在交换机,负责把数据包发给接收对象(交换机通过mac地址来识别设备)
网络设备:网桥、二层交换机
- 物理层:比特流传输---传输物理信号
网络设备:中继器、集线器、网线、光纤
TCP/IP模型:
应用层(应用、表示、会话):面向用户的终端应用
存在很多协议:FTP--文件传输协议20、21 SMTP--邮件服务25 DNS--域名解析53 HTTP--web浏览80 Telnet--远程登陆23
传输层:确保端对端的可靠传输
TCP/IP协议、UDP数据转发
网络层:路由转发,路由寻址
IP协议--给数据包分配IP地址 ICMP--互联网控制信息协议(测试互联ping) ARP--地址解析协议(IP转换为物理地址) RARP--反向地址转换协议(物理地址转换为IP地址)
地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗
网络接口层(数据链路、物理):提供接口,物理信号传输
物理寻址,数据帧分装
数据封装:
-
应用层接收数据---协议数据单元PDU
-
传输层:添加TCP报头---数据段Segment
-
网络层:添加IP报头---数据包Packet
-
网络接口层:封装数据链路层报头---数据帧Frame,之后把帧转为比特
TCP/IP模型详解
数据链路层:向该层用户提供透明的和可靠的数据传送服务
透明性是指该层上传输的数据的内容、格式及编码没有限制,也没有必要解释信息结构的意义;可靠的传输使用户免去对丢失信息、干扰信息及顺序不正确等的担心
在物理层中这些情况都可能发生,在数据链路层中必须用纠错码来检错与纠错
封装成帧:把网络层数据加头和尾,封装成帧,帧中包括源mac地址(S.MAC---source)和目的mac地址(D.MAC---destination)
以太网的mac地址:mac地址由两部分组成,分别是供应商代码和序列号。其中前24位代表供应商代码,由IEEE管理和分配,剩余24位由厂商自己分配
MAC地址(单播、组播、广播)
- 单播:点对点的通信,数据从一个发送者传输到一个明确的接收者
- 广播:广播帧的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF,一对所有,数据从一个发送者传输到网络中的所有设备
- 组播:选择性的广播,发送者将数据发送到一个特殊的组播地址,一对多通信,数据从一个发送者传输到一个接收者组
数据帧的发送和接收:
当主机接收到的数据帧所包含的目的mac地址是自己时,会把以太网封装剥掉后送往上层协议
数据的发送和接收:
- 发数据---封装自上而下 收数据---解封装自下而上
- 在冲突域中,所有主机都能收到源主机发送的单播帧
网络设备如何确定以太网数据帧的上层协议?
以太网帧中包含一个type字段,表示帧中的数据应该发送到上层哪个协议处理,比如:IP协议对应的type值为0x0800,ARP协议对应的是0x0806
终端设备接收到数据帧时,会如何处理?
主机检查帧头中的目的mac地址,如果目的mac地址不是本机mac地址,也不是本机侦听的组播或广播mac地址,则主机会丢弃收到的帧。如果目的mac地址是本机的mac地址,则接受该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果检查通过,就会剥离帧头和帧尾,然后根据帧头中的type字段来决定把数据发送到哪个上层协议进行后续处理。
网络层:
- IP报文头部:(32位)
标识:3位,R、DF、MF
协议号:TCP(6)、UDP(17)、ICMP(1)、IGMP(2)
- 生存时间:TTL
为避免环路导致的网络拥塞,IP报文头中包含一个生存时间TTL(Time To Live)字段。报文每经过一台三层设备,TTL值减1。当为0时,报文会被丢弃,同时,丢弃报文的设备会根据报文头中的源IP地址向源端发送ICMP错误信息
Linux系统默认64或255,Windows11一般默认128
TTL=默认值-经过的路由个数
同网段不过路由,不同网段需要路由
作用:如果网络中存在环路,则IP报文可能会在网络中循环而无法到达目的端。TTL字段限定了IP报文的生存时间,保证无法到达目的端的报文最终被丢弃。作用为防止数据包在网络中无限制地循环传输,以及帮助保障网络的正常运行和数据包的有效传递。
- IP=网络位+主机位(由32个二进制位组成)
计算主机数:
n为主机位;主机数为2^n;可用主机数:2^n-2(网络地址和广播地址)
网络地址(主机位全为0--0),广播地址(主机位全为1--255)
IP地址类型:
A类:8位 B类:16位 C类:24位
子网掩码:根据网络位来确定
作用:区分IP地址的网络号和主机号,网络号表示网络或子网,主机号表示网络或子网中的主机。用于划分IP地址,将其分成网络部分和主机部分
IP地址和掩码相乘=网络地址(二进制的相乘)
缺省子网掩码:导致地址使用率过低
变长子网掩码:避免IP地址浪费
- 点分十进制:IP v4
- 冒分十六进制:IP v6
- 网关:用来转发来自不同网段之间的数据包
传输层:进行端与端的通信(TCP传输控制协议和UDP用户数据包协议)
面向连接---TCP---提供可靠服务,面向无连接(可能会产生丢包)---UDP
网络通信三要素:
IP地址(互联网协议地址)
-
公网地址,私有地址(局域网内使用)
-
192.168.0.0---------192.168.255.255(常见的局域网)
-
查看ip地址的命令:
- windows操作系统
- ipconfig(windows查看本机ip的地址)
- MAC(物理地址) ipconfig /all
- MAC地址用于网络中唯一标识一个网卡,如果一台设备由一个或者多个网卡,则每个网卡都需要并会拥有唯一的一个MAC地址。
- linux操作系统
- ifconfig(linux查看主机ip)
- ping IP:检测网络是否互通
- windows操作系统
端口
-
端口数是由两个字节(byte)组成的,每个字节8位,16位,2的16次方(65536-1)
-
标识正在计算机设备上运行的进程(程序),被规定为一个 16 位的二进制,范围是 0~65535。
-
端口类型:
- 周知端口:0~1023,被预先定义的知名应用占用(如:HTTP占用 80,FTP占用21)
- 注册端口:1024~49151,分配给用户进程或某些应用程序。(如:Tomcat占 用8080,MySQL占用3306)
- 动态端口:49152到65535,之所以称为动态端口,是因为它 一般不固定分配某种进程,而是动态分配。
协议
- 数据在网络中传输的规则,常见的协议有UDP协议和TCP协议
-
UDP用户数据包协议特点:
- 1、UDP是一种无连接、不可靠传输的协议。
- 2、将数据源IP、目的地IP和端口封装成数据包,不需要建立连接
- 3、每个数据包的大小限制在64KB内
- 4、发送不管对方是否准备好,接收方收到也不确认,故是不可靠的
- 5、可以广播发送 ,发送数据结束时无需释放资源,开销小,速度快。
-
UDP协议应用场景:
- 语音通话,视频会话等。
-
TCP传输控制协议的特点:
- 1、使用TCP协议,必须双方先建立连接,它是一种面向连接的可靠通信协议。
- 2、传输前,采用“三次握手”方式建立连接,所以是可靠的
- 3、在连接中可进行大数据量的传输
- 4、连接、发送数据都需要确认,且传输完毕后,还需释放已建立的连接,通信效率较低
-
TCP协议应用场景:
- 对信息安全要求较高的场景,例如:文件下载、金融等数据通信。
-
TCP头部
-
URG:表示紧急指针是否有效;
-
ACK:表示确认号是否有效,携带ACK标志的数据报文段为确认报文段;
-
PSH:提示接收端的应用程序应该立即从TCP接受缓冲区中读走数据,为接受后数据腾出空间;
-
RST:表示要求对方重新建立连接,携带RST标志位的TCP报文段称为复位报文段;
-
SYN: 表示请求建立一个连接,携带SYN标志的TCP报文段称为同步报文段;
-
FIN:通知对方本端要关闭了,带FIN标志的TCP报文段称为结束报文段;
TCP头部中的确认标识位有什么作用? ACK ack序列号 seq+1
TCP报文头中的ACK标志位用于目的端对已收到数据的确认。目的端成功收到序列号为x的字节及之前的所有字节后,会以序列号x+1进行确认
TCP头部中有哪些标识位参与TCP三次握手? SYN、ACK
在TCP的三次握手过程中,要使用SYN和ACK标志位来请求建立连接和确认建立连接。SYN(同步)和ACK(确认)
三次握手
- TCP是一种可靠的,面向连接的全双工传输层协议。TCP连接的建立是一个三次握手的过程
四次挥手
- TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭
- TCP连接的建立是一个三次握手的过程,而TCP连接的终止则要经过四次挥手