Linux服务器--TCP/IP协议族

TCP/IP协议族体系结构以及主要协议

TCP/IP协议族是一个四层协议系统,每一层完成不同的功能,通过若干协议来实现,上层协议使用下层协议提供的服务

这里写图片描述

1.1数据链路层

【1】数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。
【2】常用的两个协议:ARP(Address Resolve Protocol, 地址解析协议)RARP(Reverse Address Resolve Protocol, 逆地址解析协议);它们实现了IP地址和机器物理地址之间的相互转换。

为什么要进行地址转换?

网络层使用IP地址寻找一台机器,而数据链路层使用物理地址寻找一台机器,因此网络层只有现将目标机器的IP地址转化成物理地址,才能使用数据链路层提供的服务。

1.2网络层

【1】网络层实现数据包的选路和转发。WAN(广域网)通常使用众多分级的路由器来连接分散的主机或LAN(局域网),因此,通信的两台主机一般不是直接相连的,而是通过多个中间节点连接的。网络层的任务就是选择这些中间节点,确定两台主机之间的通信路径。
【2】最核心的协议:IP协议(Internet Protocol, 因特网协议):根据数据包的目的IP地址来决定如何投递它。 ICMP协议(Internet Control Message Protocol, 因特网控制报文协议):它是IP协议的重要补充,主要用于检测网络连接。

ICMP报文格式:
这里写图片描述

8位类型用于区分报文类型,分为两大类:一类是差错报文,另一类是查询报文。
16位校验对整个报文进行循环冗余校验(Cyclic Redundancy Check, CRC),以检验报文在传输过程中是否损坏。

ps: ICMP协议并非严格意义上的网络层协议,因为它使用处于同一层的IP协议提供的服务(一般来说,上层协议使用下层协议提供的服务)

1.3传输层

【1】传输层为两台主机上的应用程序提供端到端的通信。
【2】主要协议:TCP协议、UDP协议、SCTP协议
TCP:为应用层提供可靠的,面向连接的和基于流的服务。
UDP:为应用层提供不可靠的,无连接的和基于数据报的服务。
SCTP:为了在因特网上传输电话信号而设计的。

1.4应用层

【1】应用层负责处理应用程序的逻辑。
【2】协议:telnet协议:远程登录协议、OSPF协议:动态路由更新协议、DNS协议:机器域名到IP地址的转换。

2.封装

  应用程序数据在发送到物理网络上之前,将沿着协议栈从上往下依次传递。每层协议都将在上层数据的基础上加上自己的头部信息(有时还包括尾部信息),这个过程称为封装。
这里写图片描述

经过TCP封装后的数据称为TCP报文段
经过UDP封装后的数据称为UDP数据报
经过IP封装后的数据称为IP数据报
经过数据链路层封装的数据称为帧:帧的最大传输单元(Max Transmit Unit, MTU).即帧最多能携带多少上层协议数据,通常受到网络类型的限制。例如下图以太网帧的MTU是1500字节,因此过长的数据报可能需要被分片传输。
这里写图片描述

3.分用

  当帧到达目的主机时,沿着协议栈自底向上依次传递。各层协议依次处理帧中本层负责的头部数据,以获取信息,并最终将处理后的帧交给目标应用程序,这个过程称为分用。

4.ARP协议工作原理

ARP协议能实现任意网络层地址到任意物理地址的转换,我们仅讨论从IP地址到以太网地址(MAC地址)的转换。其工作原理是:

主机向自己所在的网络广播一个ARP请求,该请求包含目标机器的网络地址。此网络上的其他机器都将收到这个请求,但只有被请求的目标机器会回应一个ARP应答,其中包含自己的物理地址。

4.1以太网ARP请求/应答报文详解

这里写图片描述

  • 硬件类型字段定义物理地址的类型。
  • 协议类型字段表示要映射的协议地址类型。
  • 硬件地址长度字段和协议地址长度字段,单位为字节。
  • 操作字段指出4种操作类型:ARP请求(值为1),ARP应答(值为2),RARP请求(值为3)和RARP应答(值为4)。
  • 最后4个字段指定通信双方的以太网地址和IP地址。

发送端填充除目的端以太网地址外的其他3个字段,以构建ARP请求并发送。接收端发现该请求的目的端IP地址是自己,就把自己的以太网地址填进去,然后交换两个目的端地址和两个发送端地址,以构建ARP应答并返回。

4.2ARP高速缓存的查看和修改

【1】通常,ARP维护一个高速缓存,其中包含经常访问或最近访问的机器的IP地址到物理地址的映射,这样就避免了重复的ARP请求,提高了发送数据包的速度。
【2】Linux下可以使用arp命令来查看和修改ARP高速缓存
这里写图片描述
arp  -d //删除ARP缓存
arp  -s //添加ARP缓存

5.DNS工作原理

5.1DNS查询和应答报文详解

【1】DNS是一套分布式的域名服务系统。每个DNS服务器上都存放着大量的机器名和IP地址的映射,并且是动态更新的。
【2】DNS查询和应答报文的格式
这里写图片描述

  • 16位标识字段用于标记一对DNS查询和应答
  • 16位标志字段用于协商具体的通信方式和反馈通信状态
  • 接下来的4个字段则分别指出DNS报文的最后4个字段的资源记录数目

5.2Linux下访问DNS服务

【1】要访问DNS服务,首先要知道DNS服务器的IP地址。Linux使用/etc/resolv.conf文件来存放DNS服务器的IP地址。
这里写图片描述

【2】Linux下一个常用的访问DNS服务器的客户端程序host,比如,向DNS服务器查询机器www.baidu.com的IP地址:
这里写图片描述
host命令的输出:机器名www.baidu.com是www.a.shifen.com的别名,并且该机器名对应两个IP地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值