TCP/IP之常用协议

Posted SpaceX7_s

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP/IP之常用协议相关的知识,希望对你有一定的参考价值。

ARP
ARP是网络层协议,在同一广播域内,将ip地址解析成MAC地址
ARP工作过程:

  • 源终端与目的终端第一次通讯时,源终端会根据目的ip地址,查询自身的arp表,arp表记录着ip地址与对应mac地址的对应关
  • 第一次查询不到目的mac地址,采用广播的方式发送arp请求,目的mac为 FFFF-FFFF-FFFF
  • 三层交换机的网关接收到arp数据报文,从对应的端口响应一个arp数据包,采用单播的方式发送,源mac地址为端口的mac地址,源终端在arp表中添加目的ip与端口mac地址的关系
  • 再发送下一个包的目的mac地址为端口的mac,三层交换机对数据包进行解封装获取目的ip地址,基于路由表查找转发
  • arp数据报文,没有ip头部,源目的ip与目的ip等关系存放在arp头部


无故ARP(免费arp)
请求型无故arp
使用场景:dhcp服务器在给终端分发ip地址是会发送一个无故ARP请求,确定该ip地址是否已经存在,采用广播的方式发送,发送ip和目的ip都是dhcp服务的ip地址,目的mac地址为全0

应答型无故arp
当一个交换机上存在两个路由,一个为备用路由,当主路由出现故障时,因为交换机mac的老化时间为300秒,为了低时延迟,会发送应答型arp,用于刷新mac地址表,目的mac地址全为 f,采用广播的方式发送

代理arp

如果终端没有设置网关,在不同网段之间通讯时,三层交换机就不能对目的ip地址进行查找转发,开启了代理arp,就可以代理的方式进行查表转发,

路由追踪TraceRoute(win指令 tracert)

  • 现实世界中的网络是由无数的计算机和路由器组成的一张的大网,应用的数据包在发送到服务器之前都要经过层层的路由转发。而Traceroute是一种常规的网络分析工具,用来定位到目标主机之间的所有路由器

  • ICMP全称为互联网控制报文协议,它常用于传递错误信息,ICMP协议是IP层的一部分,它的报文也是通过IP数据包来传输的。

  • TTL(time-to-live)是IP数据包中的一个字段,它指定了数据包最多能经过几次路由器。从我们源主机发出去的数据包在到达目的主机的路上要经过许多个路由器的转发,在发送数据包的时候源主机会设置一个TTL的值,每经过一个路由器TTL就会被减去一,当TTL为0的时候该数据包会被直接丢弃(不再继续转发),并发送一个超时ICMP报文给源主机。

工作过程

发送一个ICMP回显请求(echo request)数据包,服务器在收到回显请求的时候会向客户端发送一个ICMP回显应答(echo reply)数据包,在这之后的流程还是跟第一种方案一样。这样就避免了我们的traceroute数据包被服务器的防火墙策略墙掉。

基于ICMP实现的traceroute

  • 客户端发送一个TTL为1的ICMP请求回显数据包,在第一跳的时候超时并返回一个ICMP超时数据包,得到第一跳的地址。
  • 客户端发送一个TTL为2的ICMP请求回显数据包,得到第二跳的地址。
  • 客户端发送一个TTL为3的ICMP请求回显数据包,到达目标主机,目标主机返回一个ICMP回显应答,traceroute结束。
  • 如果路由的IP地址被设置隐藏,或者被防火墙屏蔽,那么会放回 ***
  • 前一个路由返回 *** ,但是可以获取下一个路由信息,说明该路由的信息被屏蔽,并不是出现故障

常见TCP应用协议

常见UDP应用协议

DNS

域名系统,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网

递归查询
查询一次就能获取结果,dns客户端进行域名查询时,先查询本机的host文件中有没有域名对应的关系,有则可以直接获取目的ip地址,host文件会定期刷新,没有则会向本地dns服务器查询,如果本地的dns服务器没有该域名对应的ip,则会先向根域名服务器发出查询,客户端只需要查询一次,就可以获取结果,这种称为递归查询,一般用于dns客户端与本地dns服务器之间

迭代查询

本地dns服务器没有域名对应的ip地址,则会先向根域名服务器发出查询请求,根服务器没有但会告诉本地dns服务器cn域名服务器可能,然后本地域名服务器又去查找cn服务器,这样一直迭代下去,但每次都需要自己去查找,而不是根服务器帮本地域名服务器查找,这种称为迭代查询,一般用于服务器与服务器之间

FTP协议(文件传输协议)

FTP有两种文件传输模式:
1.ASCLL(默认的文件传输模式),将文件装换成标准的ASCLL码再进行转发
2.Binary(二进制流模式,把文件按照比例转换成二进制进行转发)
FTP有两种传输方式:

  • 主动方式
  • 被动方式

FTP采用双TCP连接方式
(1)控制连接
用于ftp客户端与ftp服务器传输 ftp 控制命令及命令的执行信息
(2)数据连接
用于文件传输,包括数据的上传和下载,文件、图片等

FTP主动方式连接过程


主动连接ftp客户发送PORT命令,告诉ftp服务器用于数据传输的端口(端口随机产生)


ftp客户端给ftp服务器发送PASV命令,告诉服务器进入被动方式

以上是关于TCP/IP之常用协议的主要内容,如果未能解决你的问题,请参考以下文章

TCP/IP之常用协议

Winsock2 tcp/ip - 一些数据包被忽略可能是由于前一个数据包的空终止符

协议系列之TCP/IP协议

即时通讯开发之TCP/IP中的IP协议ARP协议

即时通讯开发之TCP/IP中的IP协议ARP协议

计算机网络——网络层02