网络-TCP/UDP/ARP/ICMP协议初步学习

总述

TCP/UDP协议位于传输层,基于IP、以太。
ICMP(Internet Control Message Protoco)协议基于IP、以太。
ARP协议基于以太。

通常ping,tracert指令基于ICMP协议开发。

TCP协议

TCP协议报文格式

网络-TCP/UDP/ARP/ICMP协议初步学习_第1张图片
1、Source Port: 源端口
2、Destination Port:目的端口
3、Sequence Number:序号字段,TCP链接中传输的数据流中每个字节都编上一个序号。本报文段所发送的数据的第一个字节的序号
4、Acknowledgment Number: 确认号,是期望收到对方的下一个报文段的数据的第1个字节的序号,即上次已成功接收到的数据字节序号加1。只有标识ACK为1,此字段有效
5、flag(control):标识(控制位),其中ACK(确认,只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效),SYN(发送请求连接,同步),FIN(表释放连接)常见。
6、window:窗口,TCP的流量控制,窗口起始于确认序号字段指明的值,这个值是接收端期望接收的字节数。窗口最大为65535字节。

TCP协议三次握手,开启通讯

网络-TCP/UDP/ARP/ICMP协议初步学习_第2张图片
PC1准备发数据给PC2过程描述
1、PC1数据包TCP报文中 Flags:SYN=1(表示发出请求是否可以和PC2建立连接),预设Seq=a(时间+内存),Ack=0(时间+内存)
2、PC2接收到PC1的请求,表示收到请求,回复 Seq=b(时间+内存),Ack=a+1,Flags:SYN=1(表示发出请求是否可以和PC1建立连接),ACK=1(表示同意和PC1建立连接)
3、PC1接收到PC2的信息,回复Seq=a+1,Ack=b+1,Flags:ACK=1(表示同意与PC2建立连接)

TCP协议报文交互

网络-TCP/UDP/ARP/ICMP协议初步学习_第3张图片

因为只有Flags:ACK=1时,确认号Ack才有效。故数据传输
1、PC1发PC2数据 Seq=a+1 载荷长度为12.
2、PC2接收到PC1的数据后,回复Ack=a+1+12(告诉PC已经收到了12长度),本身载荷长度为0
3、PC1收到PC2的消息后,发送Seq=a+1+12 载荷长度66
4、PC2收到PC2的消息后,回复Ack=a+13+66

TCP协议4次挥手,关闭通讯

网络-TCP/UDP/ARP/ICMP协议初步学习_第4张图片
PC1发送完数据,准备和PC2结束通讯过程
1、PC1数据包TCP报文中 Flags:FIN=1(表示发出请求准备和PC2断开连接),预设Seq=101(时间+内存),Ack=301(时间+内存)
2、PC2接收到PC1的请求,表示收到请求,回复 Seq=301,Ack=101+1,Flags:ACK=1(表示同意和PC1断开连接)
3、PC2发送给PC1请求,回复 Seq=301,Ack=101+1,Flags:ACK=1(表示同意和PC1断开连接),FIN=1(表示发出请求准备和PC1断开连接)
4、PC1接收到PC2的信息,回复Seq=101+1,Ack=302+1,Flags:ACK=1(表示同意与PC2断开连接)

UDP协议

UDP协议报文格式

网络-TCP/UDP/ARP/ICMP协议初步学习_第5张图片
1、Source Port:标识哪个应用程序发送(发送进程)。源端口号
2、Destination Port:标识哪个应用程序接收(接收进程)。目的端口
3、Length:UDP首部加上UDP数据的字节数

ARP初步学习

ARP称为地址解析协议
根据已知目标IP解析获得目标MAC
注:先查询目标IP是否在本机的ARP表中存在记录,若不存在,以广播的方式去寻找目标IP的MAC

实验抓包

网络-TCP/UDP/ARP/ICMP协议初步学习_第6张图片
网络-TCP/UDP/ARP/ICMP协议初步学习_第7张图片

步骤1,2 表示客户端通过IP确认服务器端的MAC
步骤3,4,5 建立TCP连接,三次握手
步骤6,7 数据交互
步骤8,9,10,11断开TCP连接,四次挥手

ICMP协议

网络-TCP/UDP/ARP/ICMP协议初步学习_第8张图片
ping指令是ICMP协议实现
tracert也是ICMP协议实现,其中华为的tracert,是通过TLL来控制。

你可能感兴趣的:(学习类,网络,tcp/ip,udp)