网络七层协议之部分协议详解
网络七层协议由上到下分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
主要介绍以下4层:
网络七层协议由上到下分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
主要介绍以下4层:
1) 链路层, 有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
链路层的主要目的有三个:为IP模块发送和接收IP数据报;为ARP模块发送ARP请求和ARP应答;为RARP发送RARP请求和RARP应答
2) 网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在T C P / I P协议族中,网络层协议包括 I P协议(网际协议), I C M P协议( I n t e r n e t互联网控制报文协议),以及I G M P协议( I n t e r n e t组管理协议)。
经常使用的ping程序就是向对方服务器或者主机发送一条ICMP报文,并等待TCMP的回显报文应答。
3) 运输层,主要为两台主机上的应用程序提供端到端的通信。在 T C P / I P协议族中,有两个互不相同的传输协议: T C P(传输控制协议)和 U D P(用户数据报协议)。T C P为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面, U D P则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。这两种运输层协议分别在不同的应用程序中有不同的用途,这一点将在后面看到。
4) 应用层,负责处理特定的应用程序细节,也是与用户打交道最多的协议层,几乎各种不同的 T C P / I P实现都会提供下面这些通用的应用程序:
• Telnet 远程登录。(ssh是建立在应用层和传输层上的)
• FTP 文件传输协议。(现在依然很常用的文件传输协议)
• SMTP 简单邮件传送协议。
• SNMP 简单网络管理协议。
一个应用想要通过网络进行通信,有一些协议层是必不可少的。从最开始的地址解析、选择协议、三次握手建立连接(tcp),再到大报文分片分段、广播多播、环回接口处理、失序报文重组、超时重发等等,是一个庞大且复杂的工作。不过,目前为止,涉及到编程的网络部分都已经被封装的简单易用,只要申请了专用的结构体(像sockaddr_in等),建立起链接,接下来的大部分事情只需要通过write和read便可完成,内部所做的大部分晦涩难懂的操作都被隐藏。就像一段简单的字符串‘hello world!’,一般需要添加传输协议头部、IP头部、以太网头部进行打包,然后通过插口对对应的物理层传输到目的地。
示例:
此为在虚拟机中ping百度时所发生的经过。
开始为本地主机向根名字服务器查询www.baidu.com,根名字服务器返回CNAME,指示这是一个域名,并附带返回此域名指向的真实的ip,于是,本地主机向Baidu所在的ip发送ICMP报文并回显应答。同时,服务器需要向本地主机对应的名字服务器询问本地主机的域名信息,交互完成后,正常回显本地主机的ICMP请求。