TCP/IP 的分层

img

TCP/IP 协议族分为四层: 链路层, 网络层, 运输层和应用层, 每一层各有不同的责任. 在 TCP/IP 中, 网络层和运输层之间的区别是最为关键的: 网络层(IP)提供点到点的服务, 而运输层(TCP 和 UDP)提供端到端的服务. 虽然 TCP 使用不可靠的IP服务, 但它却提供一种可靠的运输层服务. Telnet, Rlogin, SMTP 等应用都是基于 TCP 协议的用户进程. UDP 为应用程序发送和接收数据报. 一个数据报是指从发送方传输到接收方的一个信息单元(例如, 发送方指定的一定字节数的信息). 但是与 TCP 不同的是, UDP 是不可靠的, 它不能保证数据报能安全无误地到达最终目的. DNS(域名系统), TFTP(简单文件传送协议), 以及BOOTP(引导程序协议) 都是基于 UDP 协议的用户进程. SNMP 也使用了 UDP 协议, 但它还要处理许多其他的协议. IP 是网络层上的主要协议, 同时被 TCP 和 UDP 使用. TCP 和 UDP 的每组数据都通过端系统和每个中间路由器中的 IP 层在互联网中进行传输. ICMP 是 IP 协议的附属协议. IP 层用它来与其他主机或路由器交换错误报文和其他重要信息. Ping 和 Traceroute 用户进程都使用了ICMP. IGMP 是 Internet 组管理协议. 它用来把一个 UDP 数据报多播到多个主机. ARP(地址解析协议) 和 RARP(逆地址解析协议) 是某些网络接口(如以太网和令牌环网)使用的特殊协议, 用来转换 IP 层和网络接口层使用的地址.

数据进入协议栈时的封装

img

IP 地址

IPv4 地址长 32 bit, 通常写成四个十进制的数, 其中每个整数对应一个字节. 这种表示方法称作"点分十进制表示法(Dotted decimal notation)". 例如, 作者的系统就是一个 B 类地址, 它表示为: 140.252.13.33.

IPv6 地址长 128 bit, 通常使用 32 个 16 进制数表示. 如: 2001:0db8:85a3:08d3:1319:8a2e:0370:7344.

TCP 正常连接建立和关闭所对应的状态

img