计算机网络基础

参考文章:计算机网络总结
参考课程:深入浅出计算机网络
交换机简介
VLAN详细介绍
计算机网络八股1
八股2

计算机网络

1 概述

1.1名词
  • 广域网WAN、城域网MAN、局域网LAN、无线局域网WLAN
  • 电路交换、分组交换
  • 公用网络、专用网络
  • 性能指标: 速率:bps=bit/s ;
    时延:发送时延、传播时延、排队时延、处理时延 ;
    往返时间RTT:数据报文在端到端通信中的来回一次的时间。
    单工,半双工,全双工
1.2 网络层次结构

网络结构非常复杂,通过分层,简化问题;
各层独立;各层之间完全解耦。(只要保证外包装能被上下层识别,内部数据怎么封装自己决定)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.物理层

  • 传输比特流,负责物理连接,提供传输数据的物理介质
  • 设备有:中继器(放大器)、集线器(多端口中继器),半双工,不能隔离冲突域也不能隔离广播域;

3.数据链路层

3.1 概述

在物理层基础上,将网络层数据可靠的传输至相邻节点的网络层;
即在不可靠的物理介质上提供可靠的传输;
重要知识点:以太网协议IEEE802.3;交换机(如何通信、寻址)、网桥;帧结构

相应功能:

  • 物理地址寻址:每台设备拥有一个第一无二的MAC地址,共6字节,48位,使用十六进制表示FF-FF-FF-FF-FF-FF;
  • 数据的成帧:该层中数据的基本单位: 在这里插入图片描述
  • 流量控制:
  • 数据的检错:差错检测:奇偶校验码、循环冗余校验码CRC
  • 重发:

在这里插入图片描述
在这里插入图片描述

MAC地址、IP地址、ARP协议

数据链路层:MAC(Media Access Control)地址,也叫物理地址,但实际是数据链路层的地址,网络接口的唯一标识,并不是设备的唯一地址。 2^48 位

IP地址

internet和路由器使用的地址。标识两部分信息
网络编号:标识网络
主机编号:标识同一网络中的主机(或者路由器各个接口)

在数据包转发过程中,源ip和目的ip地址不变,mac地址逐个网络改变。
转发过程中 只知道下一个设备的ip并不知道mac地址,因此需要ARP协议

ARP协议(地址解析协议)

用于将ip地址解析为MAC地址。
ARP发送请求报文,里面有目的地址的ip,通过广播方式。其他同一网络中的主机都能收到请求,收到后进行判断,并决定是否发送响应报文,里面有自己的ip和mac

交换机
帧交换表:MAC地址-接口 ,通过自学习算法自动建立
根据MAC地址进行帧转换。
工作在 数据链路层和物理层
工作在全双工方式
隔离碰撞域但不隔绝广播域(VLAN除外)

生成树协议STP

冗余链路能够提高以太网可靠性,但网络环路会带来问题:
	广播风暴,主机收到重复的广播帧,交换机的帧交换表振荡(漂移)
为了解决以上问题,使用STP:
	自动计算并构建一个逻辑上没有环路的网络(通过阻塞),并确保联通整个网络。(有各个链路有正常状态,阻塞状态、故障状态)

虚拟局域网VLAN

当广播域过大,不隔离广播域会导致广播风暴。
分割广域网方法:路由器。路由器默认情况下不对广播数据包进行转发,但价格较高

在这里插入图片描述
在这里插入图片描述

以华为交换机为例:
有三种端口 access(用于连接主机,一个端口只属于一个VLAN) trunk(交换机之间连接,同一个端口可以属于不同Vlan) hybrid(综合以上两种接口,)
VLAN id叫做PVID

4、网络层

4.1 概述

实现网络互联,即数据包在网络之间的传输
要实现网络层任务,需要解决一下问题

  • 网络层向运输层提供怎样的服务(可靠传输与不可靠传输:对丢包、失序、误码)
  • 网络寻址问题
  • 路由选择问题,即通过路由表找到要发送的端口。使用TCP/IP协议
    相关协议:ARP 网际控制报文协议(ICMP):允许主机或路由器报告差错情况和有关异常情况的报告(应用:Ping用来测试两个主机之间的连通性,tracert用来跟踪一个分组从源点到终点的路径);网际组管理协议(IGMP):通知路由器特定组播的信息。
    在这里插入图片描述

4.2 两种服务

1、面向连接的虚电路服务
2、 无连接的数据报服务(internet使用的方式)
在这里插入图片描述

4.3 IPv4

4.3.2 分类编址

在这里插入图片描述
A类 一个网络可分配16,777,216 -2 个地址
B类 可分配 65536-2 个地址 ,但是注意路由中的端口也占用地址
C类 : 254个

划分子网

从主机号中借用一部分作为子网号:
在这里插入图片描述
在这里插入图片描述
一个c类地址 192.158.230.0,使用子网掩码255.255.255.128进行子网划分,则子网掩码为255.255.255.1000 0000
即可划分为子网1 192.158.230.10000000 和子网0 192.158.230.0000 0000 ;
子网0的网络地址为 192.158.230.0;广播地址为:192.158.230.127(0111 1111) 可分配地址范围为 192.158.230.1 ~ 192.158.230.126
子网0的网络地址为 192.158.230.1;广播地址为:192.158.230.255(1111 1111) 可分配地址范围为 192.158.230.128 ~ 192.158.230.254

无分类编址的IPv4地址

CIDR: 在地址后面加上斜线“/”,后面是网络前缀所占用的比特数量。
128.14.35.7/20
在这里插入图片描述

私有地址

只能用作本地地址,不能用作公网地址
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

10.0.0.0 – 10.255.255.255
172.16.0.0 – 172.31.255.255
192.168.0.0 – 192.168.255.255

NAT地址转换

NAT路由器,至少有一个全球IP地址,能够将网络中私有地址转换成临时全球IP地址
对内网起到保护作用,拥有NAT的路由器就是一个网关
通过 NAT 路由器的通信必须由专用网内的主机发起。 专用网内部的主机不能充当服务器用, 因为互联网上的客户无法请求专用网内的服务器提供服务。(NAPT加端口号)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.传输层 TCP/UDP 端口

概述

运输成直接为应用进程之间的逻辑通信提供服务,即某个进程使用某个端口进行通信
在这里插入图片描述

运输层端口号、复用与分用的概念

在这里插入图片描述

常见端口号
在这里插入图片描述

在这里插入图片描述

举例:输入地址后的运行过
在这里插入图片描述
在这里插入图片描述

UDP和 TCP对比

UDP 向上提供无连接不可靠传输服务,如果发生误码、丢失问题,并不关心,因此适用于实时应用
TCP提供可靠传输服务,不会出现传输差错(误码、丢失、乱序、重复),使用场景:文件传输
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
报文构成
在这里插入图片描述
在这里插入图片描述

TCP流量控制

在这里插入图片描述
在这里插入图片描述

TCP

TCP

TCP3报文握手4报文挥手

在这里插入图片描述

三次握手 是为了防止已经失效的链接请求报文段突然又传送到了TCP服务器,从而产生错误。

 SYN 同步, seq 序号,每发送一个报文(非空),后面+1;ACK 确认 ack 确认

在这里插入图片描述
在这里插入图片描述

TCP报文段的首部格式

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. 应用层

在这里插入图片描述

(客户/服务器)C/S (对等方式)P2P

在这里插入图片描述

动态主机配置协议DHCP

DNS

FTP

电子邮件SMTP

WWW万维网

浏览器,web服务器就是www,也是http服务器,常见的linux下web服务器Nginx、Apache、tomcat
浏览器内核 -> 负责渲染

url
在这里插入图片描述
http://www.example.com/index.html?color=red
协议 主机 路径 参数 默认情况下,HTTP连接使用80端口

html css JavaScript
111

超文本传输协议HTTP :浏览器怎样请求WWW的文档,万维网服务器怎样传文件给浏览器
在这里插入图片描述

Cookie :在服务器上记录用户信息
在这里插入图片描述
在这里插入图片描述

缓存与代理服务器
在这里插入图片描述
练习
在这里插入图片描述

7 常见问题

问题:
1)在计算机网络的5层结构中,每一层的功能大概是什么?
2)交换机的功能?https://www.bilibili.com/video/BV1na4y1L7Ev
3)路由器的功能?https://www.bilibili.com/video/BV1hv411k7nA
4)防火墙的功能?https://www.bilibili.com/video/BV1CZ4y137tC
5)IP地址是什么?https://www.bilibili.com/video/BV1m54y117zG
6)为什么需要子网掩码?
7)网关是什么意思?
8)内(私/局域)网IP和公网IP的区别?
9)MAC地址是什么意思?
10)127.0.0.1 是什么意思?
11)应用层协议是什么意思?应用层协议的通讯端口是什么意思? 21、22、23、80、1521、3306、3389是什么端口?
12)为什么我家和你家的电脑没有公网IP?
13)共享上网是什么意思?为什么需要共享上网?
14)你家的用电脑可以访问有公网IP的服务器,有公网IP服务器能访问你家的电脑吗?
15)为什么我家的电脑不能访问你家的电脑?
16)网站的域名是什么?为什么需要域名?
17)DNS服务器是什么?
18)为什么我家电脑上的QQ软件可以给你家电脑上的QQ软件发信息?中间是怎么通讯的?
19)输入网页到网页显示,中间经历了那些过程

参考答案:

  1. 防火墙的功能:,针对IP地址、域名、协议、软件、端口或关键字来指定规则从而控制通信
  1. 用于划分子网,划分子网后,每个子网拥有自己的ip地址范围,通信范围,路由器也会根据子网掩码来决定怎样转发数据包,从而将数据转发到正确的网络。通过使用不同的子网掩码,可以限制不同子网之间的通信或者设置访问权限,提高网络安全性。
  1. 网关(Gateway)是一个网络中连接不同网络的设备或者程序,它可以实现不同网络之间的数据交换和转发。
    网络层网关(路由器):用于连接不同的物理局域网(LAN)或广域网(WAN),负责将数据包从源地址传输到目标地址。
    应用层网关:也被称为代理服务器,用于处理来自客户端应用程序的请求,并与其他服务器进行通信,提供安全性、访问控制、缓存等功能。
    防火墙:作为安全网关,监视和控制进出网络的流量,并根据预定义规则阻止或允许特定类型的流量通过。
  1. 127.0.0.1是本地回环地址,也被称为"localhost"。在网络编程中,它通常用于指向本机的IP地址。当你在浏览器中输入127.0.0.1时,会访问自己的计算机上运行的本地服务器。
  2. 用于应用程序之间进行通信和数据交换的协议集合。它定义了数据交换的格式、语义和规则,使得不同设备上的应用程序可以相互通信。
    **通讯端口(Communication Port)**是在计算机系统中,为了区分不同应用程序或服务而分配的数字标识符。通过使用端口号,计算机可以将传入的数据包与特定的应用程序关联起来,并将其传递给正确的目标。
    21:FTP (File Transfer Protocol) - 用于文件传输
    22:SSH (Secure Shell) - 安全远程登录和文件传输
    23:Telnet - 远程登录服务
    80:HTTP (Hypertext Transfer Protocol) - 超文本传输协议,用于Web页面请求和响应
    1521:Oracle Database Default Listener - Oracle数据库监听器
    3306:MySQL Database - MySQL数据库服务
    3389:Remote Desktop Protocol (RDP) - 远程桌面协议,用于远程连接到Windows操作系统
  1. 为了节约公网IP地址的使用,路由器会分配一个私有IP地址给每个设备,这些私有IP地址只在家庭网络内部可见。当设备需要与互联网进行通信时,路由器会对其发送和接收的数据包进行网络地址转换(NAT),使用路由器自身拥有的公网IP地址作为出口。这意味着在你家和我家的电脑上,我们实际上都是使用了相同的公网IP地址进行互联网通信。因此,从外部观察角度来看,我们两个电脑具有相同的公网IP地址。
  2. 共享上网和上一个问题类似,多个设备通过同一个网络连接来访问互联网。通过共享上网,只需一个主要的网络接入点(如路由器),就可以将多个设备同时连接到互联网。
  3. 在典型的家庭网络环境中,通常情况下无法直接从公网上访问到家庭内部的电脑。这是因为大多数家用路由器会使用网络地址转换(NAT)来将局域网中的多个设备映射到单个公网IP地址上。通过设置端口转发或DMZ主机,可以使得有公网IP服务器能够访问家庭内部的特定电脑。但这样做需要仔细配置和考虑网络安全问题,确保只开放必要的端口,并采取适当的防护措施来保护电脑免受潜在威胁。
  4. 根据目标电脑所用的远程访问协议(如RDP、VNC等),在您家中的电脑上使用相应的远程访问工具,输入目标网络的公共IP地址相应端口号进行连接。
  1. QQ软件连接到服务器,此服务器充当一个中介.当两台设备(比如你家电脑和朋友家电脑)都成功连接到服务器后,服务器会帮助建立两台设备之间的点对点连接。进行数据传输消息将通过互联网以数据包的形式传输,并通过所使用协议(如TCP/IP)来确保可靠地传递。一旦目标设备接收到数据包,其上运行的QQ软件会解析数据并在界面上显示相应信息(渲染)。
  2. DNS解析: 浏览器首先将输入的网页地址发送给本地DNS服务器,DNS服务器负责将域名转换为对应的IP地址。如果DNS服务器缓存中有对应的IP地址,则直接返回;否则,它会向其他DNS服务器发出请求来获取正确的IP地址。
    -TCP连接建立:一旦获得目标网页服务器的IP地址,浏览器就会与该服务器建立TCP连接。这是通过三次握手进行的,在此过程中确保客户端和服务端之间能够可靠地通信。
    -发送HTTP请求: 一旦TCP连接建立完成,浏览器就会向目标服务器发送一个HTTP请求。该请求包含了要获取的网页资源信息,如GET请求或POST请求等。
    -服务器处理请求: 目标服务器收到浏览器发送的HTTP请求后,开始处理该请求。它可能需要读取数据库、执行逻辑操作或者访问其他服务来生成响应数据。
    -响应数据返回: 一旦服务器处理完毕,并生成了相应的响应数据,它将通过TCP连接将数据发送回浏览器。响应数据通常是以HTML、CSS、JavaScript等格式组成的。
    -浏览器渲染页面: 浏览器接收到响应数据后,开始解析HTML、CSS等内容,并根据这些内容构建网页的DOM结构和样式。然后,浏览器将解析后的内容显示在用户界面上,呈现出完整的网页。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值