TCP/IP 教程学习笔记
1. 网络基础知识
1.1 OSI七层模型
OSI是开放式系统互联通信参考模型,它将计算机网络体系结构分为七层。每一层都有自己独特的功能和协议。
- 应用层(application layer):该层处理应用程序和用户之间的交互操作。
- 表示层(presentation layer):该层负责数据格式的转换与表示。
- 会话层(session layer):该层负责建立、管理和终止会话连接。
- 传输层(transport layer):该层提供端到端的可靠传输服务,以及定义了TCP和UDP协议。
- 网络层(network layer):该层负责数据在网络中的传输和路由选择,包括IP协议。
- 数据链路层(data link layer):该层将数据转换为帧(Frame)并传输到下一层,包括MAC地址。
- 物理层(physical layer):该层定义物理设备的接口、电气标准和传输介质,如网线、光纤等。
1.2 TCP/IP四层模型
TCP/IP是实际网络中最常用的网络协议栈。它将网络分成四个层次,分别是:
- 应用层(application layer):该层处理应用程序和用户之间的交互操作。
- 传输层(transport layer):该层提供端到端的可靠传输服务,以及定义了TCP和UDP协议。
- 网际层(internet layer):该层负责数据在网络中的传输和路由选择,包括IP协议。
- 网络接口层(network interface layer):该层定义物理设备的接口、电气标准和传输介质,如网线、光纤等。
2. TCP/IP协议
2.1 IP协议
IP协议是TCP/IP协议族的网络层协议之一,它是一种无连接的、不可靠的协议。它主要有以下作用:
- 定义数据包的格式和传输方式。
- 为每个数据包分配一个地址(IP地址)。
- 进行路由选择和寻址转发。
下面是一个IP数据包的格式例子:
Copy Code 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2.2 TCP协议
TCP是一种基于连接、可靠交付、面向字节流的传输层协议。它能够在数据传输中提供许多功能,如错误检查、流量控制、拥塞控制等。
下面是一个TCP数据包的格式例子:
Copy Code 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3. 实例
以HTTP协议为例,HTTP是一种应用层协议,基于TCP协议实现。HTTP协议通常使用80端口进行传输,它的请求和响应数据格式如下:
3.1 请求数据格式
Copy CodeMETHOD /path/to/resource HTTP/1.1
Header1: value1
Header2: value2
...
HeaderN: valueN
Body
3.2 响应数据格式
Copy CodeHTTP/1.1 statusCode statusMessage
Header1: value1
Header2: value2
...
HeaderN: valueN
Body
通过这个例子可以看出,在实际的网络通信中,不同层次的协议会相互配合完成任务,例如HTTP协议依赖于TCP协议的可靠传输,而TCP协议则又依赖于IP协议的路由选择和寻址转发。