TCP/IP协议族

TCP/IP协议族是一个四层协议系统,自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同的功能,且通过若干协议来实现,上层协议使用下层协议提供的服务,体系结构图及主要协议如下图所示:

数据链路层:

数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介(比如以太网、令牌环等)上的传输。不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供一个统一的接口。数据链路层常用的两个协议ARP(地址解析协议)和RARP(逆地址解析协议),它们实现了IP地址和机器物理地址(通常是MAC地址,以太网、令牌环和802.11无线网络都使用MAC地址)之间的转换。

网络层使用IP地址寻址一台机器,而数据链路层使用物理地址寻址一台机器,因此网络层必须先将目标机器的IP地址转换成其物理地址,才能使用数据链路层提供的服务,这就是ARP协议的用途。RARP协议仅用于网络上的某些无盘工作站。因为缺乏存储设备,无盘工作站无法记住自己的IP地址,但我们可以利用网卡上的物理地址来向网络管理者(服务器或网络管理软件)查询自身的IP地址。运行RARP服务的网络管理者通常存有该网络上所有机器的物理地址到IP地址的映射。

网络层:

网络层实现数据包的选路和转发。WAN(广域网)通常使用众多分级的路由器来连接分散的主机或LAN(局域网),因此,通信的两台主机一般不是直接相连的,而是通过多个中间节点(路由器)连接的。网络层的任务就是选择这些中间节点,以确定两台主机之间的通信路径。同时,网络层对上层协议隐藏了网络拓扑连接的细节,使得在传输层和网络应用程序看来,通信的双方是直接相连的。

网络层最核心的协议是IP协议(因特网协议),IP协议根据数据包的目的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机,那么IP协议就为它寻找合适的下一跳路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终达到目标主机,或者由于发送失败而被丢弃。可见,IP协议使用逐跳的方式确定通信路径。另一个重要的协议是ICMP协议(因特网报文控制协议),它是IP协议的重要补充,主要用于监测网络连接。ICMP协议使用的报文格式如下图所示:

8位类型字段用于区分报文类型。它将ICMP报文分为两大类:一类是差错报文,这类报文主要用来回应网络错误,比如目标不可到达(类型值为3)和重定向(类型值为5);另一类是查询报文,这类报文用来查询网络信息,比如ping程序就是使用ICMP报文查看目标是否可达到(类型值为8)的。有的ICMP报文还使用8位代码字段来进一步细分不同的条件。比如重定向报文使用代码值0表示对网络重定向,代码值1表示对主机重定向。ICMP报文使用16位检验和字段对整个报文(包括头部和内容部分)进行循环冗余校验(CRC),以校验报文在传输过程中是否损坏。ICMP协议并非严格意义上的网络层协议,因为它使用处于同一层的IP协议提供的服务(一般来说,上层协议使用下层协议提供的服务)。

传输层:

传输层为两台主机上的应用程序提供端到端的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。下图展示了传输层和网络层的这种区别:

上图中垂直的实现箭头表示TCP/IP协议族各层之间的实体通信(数据包确实是沿这些线路传递的),而水平的虚线箭头表示逻辑通信线路。该图中还附带了描述了不同物理网络的连接方法。可见,数据链路层封装了物理网络的电气细节;网络层封装了网络连接的细节;传输层则为应用程序封装了一条端到端的逻辑通信链路,它负责数据的收发、链路的超时重连等。

传输层的协议主要有三个:TCP(传输控制协议)、UDP(用户数据报协议)、SCTP(流控制传输协议)。TCP协议为应用层提供可靠的、面向连接的和基于流的服务。UDP则与TCP协议完全相反,它为应用层提供不可靠、无连接和基于数据报的服务。SCTP协议是一种相对较新的传输层协议,它是为了在因特网上传输电话信号而设计的。关于TCP和UDP详细的区别,我将会在下一篇博客中做详细的解释。

应用层:

应用层负责处理应用程序的逻辑。数据链路层、网络层和传输层负责处理网络通信细节,这部分必须既稳定又高效,因此它们都在内核空间中实现。而应用层则在用户空间实现,因为它负责处理众多逻辑,比如文件传输、名称查询和网络管理等。如果应用层都在内核中实现,则会使内核变得非常庞大。当然,也有少数服务器程序是在内核中实现的,但这样的代码实现起来较复杂,不够灵活,且不便于移植。

应用层常用的协议:

ping是应用程序而不是协议,它利用ICMP报文检测网络连接,是调试网络环境的必备工具。

telent协议是一种远程登录协议,它使我们能在本地完成远程任务。

OSPF(开放最短路径优先)协议是一种动态路由更新协议,用于路由器之间的通信,以告知对方各自的路由信息。

DNS(域名服务)协议提供机器域名到IP地址的转换。

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值