计算机网络基础:TCP/IP
计算机网络是不可靠的,存在丢包、乱序、延时;因此需要设计相应的协议规范网络
TCP/IP 协议簇
TCP/IP 协议簇:传输控制协议簇(TCP)和网际协议簇(IP),里面包含了上百个各种功能的协议,是 Internet 国际互联网的基础。
这里只大概说明计算机网络应用用到的简单协议,需要更详尽的研究请参阅《TCP/IP详解 卷1:协议》,全书共三卷:《卷2:实现》、《卷3:TCP事务协议、HTTP、NNTP和UNIX域协议》
OSI 七层模型
TCP/IP 四层模型
TCP 协议
TCP 协议是 Transmission Control Protocol(传输控制协议)的缩写,它是一种面向连接的、可靠的、面向字节流的传输层通信协议。
主要特点
- 面向连接的一对一通信
- 保序、不重复、不丢失的可靠交付
- 双方均可收发全双工通信
- 与上层应用采用面向字节流的的交互方式
交互方式
三次握手
IP 协议
IP 协议是 Internet Protocol(网际互连协议)的缩写,位于网络层,旨在解决互联网问题,实现大规模、异构网络的互联互通;分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。
版本
目前一共两个版本:IPv4
和IPv6
,后者还能没有普及。
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 因特网组管理协议