您的位置:首页 > 理论基础 > 计算机网络

TCP/IP 体系常见协议图解

2014-04-15 17:42 567 查看
以前自己学习 《计算机网络》和 Socket 编程时,需要做笔记或者PPT之类,经常需要一些网络协议格式图,网上找的每个图都有自己的风格,不统一,索性自己画了一些常见的网络协议格式示意图,方面大家在做报告、PPT时引用。等有空了,会为每张图添加一些字段和相应的代码结构说明,现在先上图吧。




图 0 常见的网络协议

1. 数据链路层协议



图1 Ethernet Frame(以太网帧)
下面是以太网帧中 type 为指定值时,以太网帧中所携带数据使用的上层协议:

typeprotocol
0x0800IP
0x0806ARP
0x8035RARP
2. 网络层协议
ARP/RARP 处于数据链路层与网络层之间,没有明确划分,由于其也是使用以太网帧来封装,所以这里将其划到网络层



图 2 ARP/RARP 协议首部
MAC address type : 1 if ethernet

protocol address type: 0x0800 if IP

operationtypemeanming
1ARPrequest packet
2ARPrespond packet
3RARPrequest packet
4RARPrespoond packet


图 3 IP 协议首部

head length: 单位是4-Bytes

protocol typemeanning
1ICMP
2IGMP
3TCP
4UDP
head check sum:只检验IP数据报首部



图 4 ICMP 报文



图 5 ICMP 回显请求/回显应答 报文



图 6 ICMP 目标不可达/链接超时 报文
3. 传输层



图 7 TCP 协议首部

head len :单位是4B
check sum: TCP首部+TCP数据负载+TCP伪首部
6-bit的flag:{URG, ACK, PSH, RST, SYN, FIN} 通过位运算组合



图 8 UDP 协议首部

total length: UDP首部和UDP数据负载的长度之和
check sum: UDP首部+UDP数据负载+UDP伪首部



图 9 TCP/UDP 伪首部

protocol : 如果是 TCP 字段值为 6, 如果是 UDP 该字段值为 17
length: TCP/UDP 的首部和数据部分长度之和



图 10 常用熟知端口号
4. 应用层
HTTP 消息每行都以 “回车换行” 结束



图 11 HTTP 请求消息



图 12 HTTP 相应消息
5. 其他



图 13 TCP/IP 协议体系中的数据封装过程



图 14 WinPcap 捕获数据包的一般流程

转载请注明出处:http://blog.csdn.net/xiaohui_hubei/article/details/23772975
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: