- 协议号
协议号是存在于IP数据报的首部的20字节的固定部分,占有8bit.该字段是指出此数据报所携带的是数据是使用何种协议,以便目的主机的IP层知道将数据部分上交给哪个处理过程。也就是协议字段告诉IP层应当如何交付数据。
协议号 | 协议类型 | 说明 |
---|---|---|
0 | HOPOPT | IPv6逐跳选项 |
1 | ICMP | Internet控制消息 |
4 | IP | IP中的IP(封装) |
5 | ST | 流 |
6 | TCP | 传输控制 |
17 | UDP | 用户数据报 |
27 | RDP | 可靠数据协议 |
37 | DDP | 数据报传送协议 |
45 | IDRP | 域间路由协议 |
53 | SWIPE | 采用加密的IP |
112 | VRRP | 虚拟路由器冗余协议 |
- 端口
端口的作用是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层的进程。端口号存在于UDP和TCP报文的首部,而IP数据报则是将UDP或者TCP报文做为其数据部分,再加上IP数据报首部,封装成IP数据报。
一、数据流向过程
1.客户端发送一个数据包给ip,然后ip将进来的数据发送给传输协议(tcp或者udp)
2.传输协议再根据数据包的第一个报头中的协议号和端口号来决定将此数据包给哪个应用程序。
IP协议号确定送给哪个模块(TCP/UDP/ICMP…)处理
协议号+端口号唯一的确定了接收数据包的网络进程(也叫网络服务)。tcp和udp中的端口31指的并不是同一个端口。但是对于同一个协议,端口号确实唯一的。
二、协议详解
1)ARP协议
- ARP概述
①ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址
②在网络通信中,主机和主机通信的数据包需要依据OSI模型从上到下进行数据封装,当数据封装完整后,再向外发出。所以在局域网的通信中,不仅需要源目IP地址的封装,也需要源目MAC的封装。
③一般情况下,上层应用程序更多关心IP地址而不关心MAC地址,所以需要通过ARP协议来获知目的主机的MAC地址,完成数据封装
目的:将IP地址映射成物理地址,在数据包离开计算机之前,必须要找到目的硬件的地址。
过程:一个ARP请求在网上广播,请求由一个进程接收,它回复物理地址
高速缓存:存放最近Internet地址到硬件地址之间的映射记录,每一项的生存时间一般为20分钟。
对于一个ARP请求来说,除了目的端硬件地址外所有的其他字段都有填充值,当系统收到一份目的端为本机的ARP的请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,最后把它发送回去。
基于功能来考虑,ARP是链路层协议;基于分层/包封装来考虑,ARP是网络层协议
2)ICMP协议
ICMP协议的功能主要有:
- 确认IP包是否成功到达目标地址
- 通知在发送过程中IP包被丢弃的原因
1.ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议
2.ICMP只能搭配IPv4使用,如果是IPv6的情况下, 需要是用ICMPv6
3.ping命令是基于ICMP,是在网络层,不涉及端口