操作系统与网络 (10. 协议分层/传输流程)

我们坚持做一件事,并不是因为这样做了会有效果,而是坚信,这样做事对的!

10. 协议分层/传输流程

10.1 网络的发展历程

10.1.1 网络的分类

(1) 按覆盖范围划分
LAN (局域网: Local Area Network)
覆盖范围小 (一般为1KM以下) , 有边界,往往用于某一个群体, 传输速度一般较快(与
传输距离有关), 安全, 不同的局域网之间不能接通信.
MAN (城域网: Metropolitan Area Network)
覆盖范围中等 (一般为1KM-10KM之间) , 局限在一座城市范围内的区域性网络, 传输
速度比广域网块.
WAN (广域网: Wide Area Network)
覆盖范围大 (一般为10KM以上) , 可以说是无边界的, 传输速度慢, 不安全.
(2) 按拓扑结构划分
按物理拓扑分类
环形拓扑
总线型拓扑
星型拓扑
按逻辑拓扑分类
广播拓扑
令牌拓扑
(3) 按传输介质分
有线网络
包括双绞线, 同轴电缆, 光纤的有限介质连接的计算机网络.
无线网络
无线网采用微波, 红外线, 无线等传输.
(4) 按照服务方式来划分
客户机
服务器网
对等网
网络方式灵活, 安全性较低, 较难实现集中管理与监控.
客户机服务器网这种 网络的安全性较高,计算机的权限, 优先级易于控制, 监控容易实现, 网路管理能够规范化.
以太网和令牌环网
以太网指的是由Xerox公司创建并由Xerox, Inter和DEC公司联合开发的基带局域网范围, 当前使用的以太网协议一般是指EthernetII协议,到1985年, IEEE又发布了802.3/802.2以太网标准.
令牌环网简单理解就是大家想发信息就必须得到一个叫令牌的东西,令牌总线把总线型或树形网络中的各个工作站按一定顺序 (如按照接口地址大小) 排列成一个逻辑环,只有令牌持有者才能控制总线,才有发送信息的能力.
按照传输层技术来分,属于OSI参考类型的数据链路层

10.1.2 IP地址和MAC地址

(1) IP地址

  • 功能
    在网络中唯一标识一台主机
  • 本质
  • ipv4 (提到的版本默认为此版本)
  • uint32_t (是一个无符号的32位4字节的整数)
    我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;
    DHCP – 动态地址分配 (谁上网就给谁分配IP地址)
    NAT – 网络地址转换技术 (将数据中的源IP地址转换为中间转发设备的IP地址
    – 数据按照什么路径出去响应就应该按照什么路径回来)
  • ipv6
    uint8_t ip[16] (是一个无符号的128位8字节的整数)
    不兼容IPV4,导致IPV6的推广特别慢

(2) MAC地址

  • 功能
    MAC地址用来识别数据链路层中相连的节点;
  • 说明
    长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如:
    08:00:27:03:fb:19)
    10.1.3 port端口
    (1) 功能
    IP地址 + 端口号能够标识网络上的某一台主机的某一个进程;
    当计算机收到一个数据之后才能够通过数据中的端口信息来决定这个数据应该给哪个进程处理.
    (2) 本质
    uint16_t
    端口号是一个2字节16位的整数;
    (3) 范围
  • 0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端口号都是固定的;
  • 1024 - 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的.
  • 知名端口号
    ssh服务器, 使用22端口
    ftp服务器, 使用21端口
    telnet服务器, 使用23端口
    http服务器, 使用80端口
    https服务器, 使用443

(4) 特性
一个端口号只能被一个进程占用, 但是一个进程可以使用多个端口号

10.1.4 通信协议
  • 概念
    通信双方数据格式的约定
10.1.5 网络字节序

字节序

  • 定义
    cpu在内存中对数据进行存取的顺序
  • 特点
    针对数据类型存储大于一个字节的类型
    short/int/long/float/double
    主机字节序
    大端字节序
    低地址存高位
    小端字节序
    低地址存地位
    在网络通信中为了避免双方主机因为主机字节序不同而导致的数据二义性,网络数据流的地址应这样规定: 先发出的数据是低地址,后发出的数据是高地址;网络字节序采用大端字节序, 即低地址高字节.
    不管这台主机是大端机还是小端机, 都会按照这个TCP/IP规定的网络字节序来发送/接收数据;
    如果当前发送主机是小端, 就需要先将数据转成大端; 否则就忽略, 直接发送即可;

10.2 协议分层

10.2.1 概念

在通信环境中,对每一层提供的服务, 接口, 以及使用的协议进行封装, 使通信环境层次更加清
晰, 更加容易实现标准化, 更容易使用, 实现网络互联.

10.2.2 OSI七层模型 (开放系统互连)

分层
(1) 应用层
(2) 表示层
设备固有数据格式和网络标准数据格式的转换
(3) 会话层
通信管理, 负责建立和断开通信连接 (数据流动的逻辑通路).
(4) 传输层
(5) 网络层
(6) 数据链路层
(7) 物理层

  • 主要功能
    OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 优缺点
    优点 : 是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整.
    通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
    缺点 : 复杂并且不实用.
10.2.3 TCP/IP五层或四层模型

(1) 应用层
负责应用程序之间的数据沟通, 例如: HTTP (超文本传输协议)/FTP (传输文件协议)/DNS
(域名系统)/DHCP (动态主机设置协议)/SMTP (电子邮件传输)
(2) 传输层
负责端与端之间的数据传输,例如: TCP (传输控制协议)/UDP (用户数据报协议)
(3) 网络层
负责地址管理与路由选择,例如: IP(网络之间互连的协议), 路由器(网关设备)
(4) 数据链路层
负责相邻设备之间的数据帧的传送和识别, 例如: 网卡设备的驱动、帧同步(就是说从网线
上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校
验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
(5) 物理层
负责光电信号的传输, 例如: 以太网协议, 集线器工作在物理层,物理层的能力决定了最大
传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.

10.3 数据传输流程

10.3.1 数据包封装

不同的协议层对数据包有不同的称谓, 在传输层叫做段(segment), 在网络层叫做数据报 (datagram), 在链路层叫做帧(frame).
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header), 称为封装
(Encapsulation).
首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息.
数据封装成帧后发到传输介质上, 到达目的主机后每层协议再剥掉相应的首部, 根据首部中的
“上层协议字段” 将数据交给对应的上层协议处理.

10.3.2 数据包分用

你可能感兴趣的:(操作系统和网络)