计算机网络是不可靠的,存在丢包乱序延时;因此需要设计相应的协议规范网络

TCP/IP 协议簇

TCP/IP 协议簇:传输控制协议簇(TCP)和网际协议簇(IP),里面包含了上百个各种功能的协议,是 Internet 国际互联网的基础。

这里只大概说明计算机网络应用用到的简单协议,需要更详尽的研究请参阅《TCP/IP详解 卷1:协议》,全书共三卷:《卷2:实现》、《卷3:TCP事务协议、HTTP、NNTP和UNIX域协议》

OSI 七层模型

OSI 七层模型

TCP/IP 四层模型

TCP/IP 四层模型

网络通讯协议图 2014 版

TCP 协议

TCP 协议是 Transmission Control Protocol(传输控制协议)的缩写,它是一种面向连接的可靠的面向字节流的传输层通信协议。

主要特点

  • 面向连接的一对一通信
  • 保序、不重复、不丢失的可靠交付
  • 双方均可收发全双工通信
  • 与上层应用采用面向字节流的的交互方式

交互方式

交互方式

三次握手

“三握手”过程

IP 协议

IP 协议是 Internet Protocol(网际互连协议)的缩写,位于网络层,旨在解决互联网问题,实现大规模、异构网络的互联互通;分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。

版本

目前一共两个版本:IPv4IPv6,后者还能没有普及。

IPv4

目前最流行的版本,使用点分十进制和二进制来表示,如:255.255.255.255(范围:0~255)和 11111111 11111111 11111111 11111111

IPv6

地址长度 128 位,由 8 块(个字段)组成,每一块都包含四位 16 进制数,用冒号分隔,范围从 0000:0000:0000:0000:0000:0000:0000:0000 至 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

内容

编址方案

分类寻址

IPv4 根据点分四组中的第一组地址范围被划分为五大类:A、B、C、D、E

类型 十进制首位 子网掩码 二进制首位
A 类 000-127 255.0.0.0 00000000
B 类 128-191 255.255.0.0 10000000
C 类 192-223 255.255.255.0 11000000
D 类 224-239 多路广播 11100000
E 类 240-255 保留地址 11110000
私有地址

即局域网内部可以自定义使用的 IP 地址

  • A 类:10.0.0.0-10.255.255.255
  • B 类:127.16.0.0-127.31.255.255
  • C 类:192.168.0.0-192.168.255.255

子网划分

将主机地址分为两个部分:子网网络地址和子网主机地址,形式如:

  • 未做子网划分的 ip 地址:网络地址+主机地址
  • 做子网划分后的 ip 地址:网络地址+(子网网络地址+子网主机地址)

假设对 C 类地址进行子网划分,网络地址 192.168.1.0,使用子网掩码 255.255.255.192 对其进行子网划分。

C 类地址中前 24 位是网络号,最后 8 位是主机号,根据子网掩码可知从 8 位主机号中借用 2 位作为子网号。

由于子网网络地址被划分成 2 位,那么子网地址就有 4 个,分别是 00、01、10、11,具体划分如下图:

封装格式

  • 协议报头
  • IP 报头


链路报头

转发规则

在发送 IP 包时,首先要确定 IP 包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将 IP 包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择相同位数最多的网络地址,也就是最长匹配。

服务

DNS 域名解析

ARP 与 RARP 协议

DHCP 动态获取 IP 地址

NAT 网络地址转换

ICMP 互联网控制报文协

IGMP 因特网组管理协议