计算机网络概览
# 网络
Q1: 为何要有网络?
A1: 为了方便数据的传输/通信.. 因而网络早期还有个别名 -- 信息高速公路.
打破了地域限制,提高了传数据的效率
Q2: 什么是网络?
A2: 网络= 物理连接介质 + 互联网通信协议/规定
1> 物理连接介质: 网卡、光纤、海底电缆等 把路先铺好啦;
2> 互联网通信协议根据功能的不同: OSI七层通信协议 -- 应表会传网数物
Q3: 现代网络设备互联的两种模式?有何特点?
A3: C/S (一个服务器可以对应多个客户端)
P2P(没有客户端服务端之分,只要两个主机都运行了对等连接软件p2p软件,即可平等对等的进行通信)
Q4:计算机网络的性能指标 时延包含哪几个部分?
A4: 时延 = 发送+连接+排队+处理
RTT 数据报文在端到端的通信中来回一次的时间
学计算机网络就是在学各种协议!!!
# OSI七层模型
OSI七层模型 | 作用 | 常见协议 | 数据 |
---|---|---|---|
应用层 | 为计算机用户提供接口和服务(一系列应用软件) | HTTP/FTP | data |
会话层 | 数据处理(编码解码、加密解密等) | ||
表示层 | 管理(建立、维护、重连)进程之间的通信会话 | ||
传输层 | 管理端到端(进程之间)的通信连接 | UTP/TCP | 段 segment |
网络层 | 解决在多个网络之间传输(路由)的问题 | IP/ICMP | 包/报 packet |
数据链路层 | 管理相邻节点之间的通信(同一个局域网) | Ethernet/ARP | 帧 frame |
物理层 | 解决使用何种信号来传输比特0和1的问题 | 位 bit |
发送数据是一个封装的过程,接收数据则是解封装.
数据封装过程 (从上到下从内到外依次加上每一层的head头部信息): 分段 - 打包 - 成帧 - 传位
数据解包过程 (从下到上从外到内依次丢掉每一层的head头部/首部信息)
局域网内一定是基于mac地址的广播通信:
1> 封装
2> 交换机(通常是二层设备,将二进制还原成数据帧,拆包可以看到目的mac,知道转发给谁后再封装成数据帧 传位)
3> 目的mac对应的局域网的那台主机,进行解包
与外网通信:
交换机看到的目的mac就是网关的mac啦
网关是三层设备(能将封装好的包拆到网络层) 网关根据路由表在外网中进行"hop-by-hop"
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# socket套接字层
所有基于网络通信写出来的软件本质都是套接字写出来的.
socket就是一个套接字软件程序.. 是对传输层及以下的封装. 它处于应用层与传输层之间.
它给应用层应用程序的开发提供了传输层及以下的一个个接口..
让程序员专注于程序的开发,不用实现网络传输底层的一系列的协议
下面我将从物理层、数据链路层、网络层...依次进行阐述..
每一小节会站在本层的角度进行介绍...过程中可能会对紧邻的上一小节进行补充..不断颠覆不断细化的过程!!